@payloadcms/richtext-lexical 3.57.0-internal.1d2ebbc → 3.57.0-internal.266049e

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 (176) hide show
  1. package/dist/exports/client/{Field-PKJPWZJL.js → Field-BJACUMFU.js} +2 -2
  2. package/dist/exports/client/Field-BJACUMFU.js.map +7 -0
  3. package/dist/exports/client/bundled.css +1 -1
  4. package/dist/exports/client/{chunk-YCH4JNUH.js → chunk-SEPPJCZ6.js} +2 -2
  5. package/dist/exports/client/component-VDJI45F2.js +2 -0
  6. package/dist/exports/client/component-VDJI45F2.js.map +7 -0
  7. package/dist/exports/client/index.d.ts +2 -0
  8. package/dist/exports/client/index.d.ts.map +1 -1
  9. package/dist/exports/client/index.js +35 -10
  10. package/dist/exports/client/index.js.map +4 -4
  11. package/dist/features/align/server/i18n.d.ts.map +1 -1
  12. package/dist/features/align/server/i18n.js +6 -0
  13. package/dist/features/align/server/i18n.js.map +1 -1
  14. package/dist/features/blockquote/server/i18n.d.ts.map +1 -1
  15. package/dist/features/blockquote/server/i18n.js +3 -0
  16. package/dist/features/blockquote/server/i18n.js.map +1 -1
  17. package/dist/features/blocks/client/index.d.ts.map +1 -1
  18. package/dist/features/blocks/client/index.js +5 -0
  19. package/dist/features/blocks/client/index.js.map +1 -1
  20. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts +6 -0
  21. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts.map +1 -0
  22. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js +24 -0
  23. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js.map +1 -0
  24. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts +6 -0
  25. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts.map +1 -0
  26. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js +20 -0
  27. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js.map +1 -0
  28. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts +12 -0
  29. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -0
  30. package/dist/features/blocks/client/markdown/markdownTransformer.js +348 -0
  31. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -0
  32. package/dist/features/blocks/premade/CodeBlock/Component.d.ts +53 -0
  33. package/dist/features/blocks/premade/CodeBlock/Component.d.ts.map +1 -0
  34. package/dist/features/blocks/premade/CodeBlock/Component.js +68 -0
  35. package/dist/features/blocks/premade/CodeBlock/Component.js.map +1 -0
  36. package/dist/features/blocks/premade/CodeBlock/converter.d.ts +7 -0
  37. package/dist/features/blocks/premade/CodeBlock/converter.d.ts.map +1 -0
  38. package/dist/features/blocks/premade/CodeBlock/converter.js +46 -0
  39. package/dist/features/blocks/premade/CodeBlock/converter.js.map +1 -0
  40. package/dist/features/blocks/premade/CodeBlock/converterClient.d.ts +2 -0
  41. package/dist/features/blocks/premade/CodeBlock/converterClient.d.ts.map +1 -0
  42. package/dist/features/blocks/premade/CodeBlock/converterClient.js +4 -0
  43. package/dist/features/blocks/premade/CodeBlock/converterClient.js.map +1 -0
  44. package/dist/features/blocks/premade/CodeBlock/index.d.ts +7 -0
  45. package/dist/features/blocks/premade/CodeBlock/index.d.ts.map +1 -0
  46. package/dist/features/blocks/premade/CodeBlock/index.js +39 -0
  47. package/dist/features/blocks/premade/CodeBlock/index.js.map +1 -0
  48. package/dist/features/blocks/server/i18n.d.ts.map +1 -1
  49. package/dist/features/blocks/server/i18n.js +9 -0
  50. package/dist/features/blocks/server/i18n.js.map +1 -1
  51. package/dist/features/blocks/server/index.js +1 -1
  52. package/dist/features/blocks/server/index.js.map +1 -1
  53. package/dist/features/blocks/server/markdown/getLexicalToMarkdown.d.ts +6 -0
  54. package/dist/features/blocks/server/markdown/getLexicalToMarkdown.d.ts.map +1 -0
  55. package/dist/features/blocks/server/markdown/getLexicalToMarkdown.js +27 -0
  56. package/dist/features/blocks/server/markdown/getLexicalToMarkdown.js.map +1 -0
  57. package/dist/features/blocks/server/markdown/getMarkdownToLexical.d.ts +7 -0
  58. package/dist/features/blocks/server/markdown/getMarkdownToLexical.d.ts.map +1 -0
  59. package/dist/features/blocks/server/markdown/getMarkdownToLexical.js +22 -0
  60. package/dist/features/blocks/server/markdown/getMarkdownToLexical.js.map +1 -0
  61. package/dist/features/blocks/server/markdown/linesFromMatchToContentAndPropsString.d.ts.map +1 -0
  62. package/dist/features/blocks/server/markdown/linesFromMatchToContentAndPropsString.js.map +1 -0
  63. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts +15 -0
  64. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -0
  65. package/dist/features/blocks/server/{markdownTransformer.js → markdown/markdownTransformer.js} +6 -48
  66. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -0
  67. package/dist/features/heading/client/index.d.ts.map +1 -1
  68. package/dist/features/heading/client/index.js +60 -0
  69. package/dist/features/heading/client/index.js.map +1 -1
  70. package/dist/features/heading/server/i18n.d.ts.map +1 -1
  71. package/dist/features/heading/server/i18n.js +3 -0
  72. package/dist/features/heading/server/i18n.js.map +1 -1
  73. package/dist/features/heading/server/index.d.ts.map +1 -1
  74. package/dist/features/heading/server/index.js +1 -0
  75. package/dist/features/heading/server/index.js.map +1 -1
  76. package/dist/features/horizontalRule/server/i18n.d.ts.map +1 -1
  77. package/dist/features/horizontalRule/server/i18n.js +3 -0
  78. package/dist/features/horizontalRule/server/i18n.js.map +1 -1
  79. package/dist/features/indent/server/i18n.d.ts.map +1 -1
  80. package/dist/features/indent/server/i18n.js +4 -0
  81. package/dist/features/indent/server/i18n.js.map +1 -1
  82. package/dist/features/link/server/i18n.d.ts.map +1 -1
  83. package/dist/features/link/server/i18n.js +4 -0
  84. package/dist/features/link/server/i18n.js.map +1 -1
  85. package/dist/features/lists/checklist/server/i18n.d.ts.map +1 -1
  86. package/dist/features/lists/checklist/server/i18n.js +3 -0
  87. package/dist/features/lists/checklist/server/i18n.js.map +1 -1
  88. package/dist/features/lists/orderedList/server/i18n.d.ts.map +1 -1
  89. package/dist/features/lists/orderedList/server/i18n.js +3 -0
  90. package/dist/features/lists/orderedList/server/i18n.js.map +1 -1
  91. package/dist/features/lists/unorderedList/server/i18n.d.ts.map +1 -1
  92. package/dist/features/lists/unorderedList/server/i18n.js +3 -0
  93. package/dist/features/lists/unorderedList/server/i18n.js.map +1 -1
  94. package/dist/features/paragraph/server/i18n.d.ts.map +1 -1
  95. package/dist/features/paragraph/server/i18n.js +4 -0
  96. package/dist/features/paragraph/server/i18n.js.map +1 -1
  97. package/dist/features/relationship/server/i18n.d.ts.map +1 -1
  98. package/dist/features/relationship/server/i18n.js +3 -0
  99. package/dist/features/relationship/server/i18n.js.map +1 -1
  100. package/dist/features/textState/i18n.d.ts.map +1 -1
  101. package/dist/features/textState/i18n.js +3 -0
  102. package/dist/features/textState/i18n.js.map +1 -1
  103. package/dist/features/upload/client/component/index.d.ts +2 -0
  104. package/dist/features/upload/client/component/index.d.ts.map +1 -1
  105. package/dist/features/upload/client/component/index.js +28 -24
  106. package/dist/features/upload/client/component/index.js.map +1 -1
  107. package/dist/features/upload/client/component/pending/index.d.ts +3 -0
  108. package/dist/features/upload/client/component/pending/index.d.ts.map +1 -0
  109. package/dist/features/upload/client/{pendingComponent → component/pending}/index.js +1 -1
  110. package/dist/features/upload/client/component/pending/index.js.map +1 -0
  111. package/dist/features/upload/client/index.d.ts.map +1 -1
  112. package/dist/features/upload/client/index.js +1 -2
  113. package/dist/features/upload/client/index.js.map +1 -1
  114. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  115. package/dist/features/upload/client/nodes/UploadNode.js +6 -0
  116. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  117. package/dist/features/upload/client/plugin/index.d.ts +6 -0
  118. package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
  119. package/dist/features/upload/client/plugin/index.js +67 -31
  120. package/dist/features/upload/client/plugin/index.js.map +1 -1
  121. package/dist/features/upload/server/i18n.d.ts.map +1 -1
  122. package/dist/features/upload/server/i18n.js +3 -0
  123. package/dist/features/upload/server/i18n.js.map +1 -1
  124. package/dist/features/upload/server/index.d.ts.map +1 -1
  125. package/dist/features/upload/server/index.js +1 -4
  126. package/dist/features/upload/server/index.js.map +1 -1
  127. package/dist/features/upload/server/nodes/UploadNode.d.ts +16 -0
  128. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  129. package/dist/features/upload/server/nodes/UploadNode.js +9 -2
  130. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  131. package/dist/features/upload/server/nodes/conversions.d.ts +0 -3
  132. package/dist/features/upload/server/nodes/conversions.d.ts.map +1 -1
  133. package/dist/features/upload/server/nodes/conversions.js +20 -20
  134. package/dist/features/upload/server/nodes/conversions.js.map +1 -1
  135. package/dist/field/Field.d.ts.map +1 -1
  136. package/dist/field/Field.js +1 -1
  137. package/dist/field/Field.js.map +1 -1
  138. package/dist/field/bundled.css +1 -1
  139. package/dist/i18n.d.ts.map +1 -1
  140. package/dist/i18n.js +6 -0
  141. package/dist/i18n.js.map +1 -1
  142. package/dist/index.d.ts +1 -0
  143. package/dist/index.d.ts.map +1 -1
  144. package/dist/index.js +1 -0
  145. package/dist/index.js.map +1 -1
  146. package/dist/utilities/jsx/collectTopLevelJSXInLines.js +2 -2
  147. package/dist/utilities/jsx/collectTopLevelJSXInLines.js.map +1 -1
  148. package/package.json +7 -7
  149. package/dist/exports/client/Field-PKJPWZJL.js.map +0 -7
  150. package/dist/exports/client/component-3PENNOM3.js +0 -2
  151. package/dist/exports/client/component-3PENNOM3.js.map +0 -7
  152. package/dist/exports/client/pendingComponent-WFSCE6LJ.js +0 -2
  153. package/dist/exports/client/pendingComponent-WFSCE6LJ.js.map +0 -7
  154. package/dist/features/blocks/client/markdownTransformer.d.ts +0 -17
  155. package/dist/features/blocks/client/markdownTransformer.d.ts.map +0 -1
  156. package/dist/features/blocks/client/markdownTransformer.js +0 -144
  157. package/dist/features/blocks/client/markdownTransformer.js.map +0 -1
  158. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.d.ts.map +0 -1
  159. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.js.map +0 -1
  160. package/dist/features/blocks/server/markdownTransformer.d.ts +0 -22
  161. package/dist/features/blocks/server/markdownTransformer.d.ts.map +0 -1
  162. package/dist/features/blocks/server/markdownTransformer.js.map +0 -1
  163. package/dist/features/upload/client/nodes/PendingUploadNode.d.ts +0 -17
  164. package/dist/features/upload/client/nodes/PendingUploadNode.d.ts.map +0 -1
  165. package/dist/features/upload/client/nodes/PendingUploadNode.js +0 -57
  166. package/dist/features/upload/client/nodes/PendingUploadNode.js.map +0 -1
  167. package/dist/features/upload/client/pendingComponent/index.d.ts +0 -7
  168. package/dist/features/upload/client/pendingComponent/index.d.ts.map +0 -1
  169. package/dist/features/upload/client/pendingComponent/index.js.map +0 -1
  170. package/dist/features/upload/server/nodes/PendingUploadNode.d.ts +0 -42
  171. package/dist/features/upload/server/nodes/PendingUploadNode.d.ts.map +0 -1
  172. package/dist/features/upload/server/nodes/PendingUploadNode.js +0 -92
  173. package/dist/features/upload/server/nodes/PendingUploadNode.js.map +0 -1
  174. /package/dist/exports/client/{chunk-YCH4JNUH.js.map → chunk-SEPPJCZ6.js.map} +0 -0
  175. /package/dist/features/blocks/server/{linesFromMatchToContentAndPropsString.d.ts → markdown/linesFromMatchToContentAndPropsString.d.ts} +0 -0
  176. /package/dist/features/blocks/server/{linesFromMatchToContentAndPropsString.js → markdown/linesFromMatchToContentAndPropsString.js} +0 -0
@@ -0,0 +1,39 @@
1
+ import { codeConverter } from './converter.js';
2
+ /**
3
+ * @experimental - this API may change in future, minor releases
4
+ */
5
+ export const CodeBlock = args => {
6
+ const languages = args?.languages || {
7
+ js: 'JavaScript',
8
+ plaintext: 'Plain Text',
9
+ ts: 'TypeScript'
10
+ };
11
+ return {
12
+ slug: args?.slug || 'Code',
13
+ admin: {
14
+ jsx: '@payloadcms/richtext-lexical/client#codeConverterClient'
15
+ },
16
+ fields: [{
17
+ name: 'language',
18
+ type: 'select',
19
+ defaultValue: args?.defaultLanguage || Object.keys(languages)[0],
20
+ options: Object.entries(languages).map(([key, value]) => ({
21
+ label: value,
22
+ value: key
23
+ }))
24
+ }, {
25
+ name: 'code',
26
+ type: 'code',
27
+ admin: {
28
+ components: {
29
+ Field: {
30
+ clientProps: args,
31
+ path: '@payloadcms/richtext-lexical/client#CodeComponent'
32
+ }
33
+ }
34
+ }
35
+ }],
36
+ jsx: codeConverter
37
+ };
38
+ };
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["codeConverter","CodeBlock","args","languages","js","plaintext","ts","slug","admin","jsx","fields","name","type","defaultValue","defaultLanguage","Object","keys","options","entries","map","key","value","label","components","Field","clientProps","path"],"sources":["../../../../../src/features/blocks/premade/CodeBlock/index.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nimport type { AdditionalCodeComponentProps } from './Component.js'\n\nimport { codeConverter } from './converter.js'\n\n/**\n * @experimental - this API may change in future, minor releases\n */\nexport const CodeBlock: (args?: AdditionalCodeComponentProps) => Block = (args) => {\n const languages = args?.languages || {\n js: 'JavaScript',\n plaintext: 'Plain Text',\n ts: 'TypeScript',\n }\n\n return {\n slug: args?.slug || 'Code',\n admin: {\n jsx: '@payloadcms/richtext-lexical/client#codeConverterClient',\n },\n fields: [\n {\n name: 'language',\n type: 'select',\n defaultValue: args?.defaultLanguage || Object.keys(languages)[0],\n options: Object.entries(languages).map(([key, value]) => ({\n label: value,\n value: key,\n })),\n },\n {\n name: 'code',\n type: 'code',\n admin: {\n components: {\n Field: {\n clientProps: args,\n path: '@payloadcms/richtext-lexical/client#CodeComponent',\n },\n },\n },\n },\n ],\n jsx: codeConverter,\n }\n}\n"],"mappings":"AAIA,SAASA,aAAa,QAAQ;AAE9B;;;AAGA,OAAO,MAAMC,SAAA,GAA6DC,IAAA;EACxE,MAAMC,SAAA,GAAYD,IAAA,EAAMC,SAAA,IAAa;IACnCC,EAAA,EAAI;IACJC,SAAA,EAAW;IACXC,EAAA,EAAI;EACN;EAEA,OAAO;IACLC,IAAA,EAAML,IAAA,EAAMK,IAAA,IAAQ;IACpBC,KAAA,EAAO;MACLC,GAAA,EAAK;IACP;IACAC,MAAA,EAAQ,CACN;MACEC,IAAA,EAAM;MACNC,IAAA,EAAM;MACNC,YAAA,EAAcX,IAAA,EAAMY,eAAA,IAAmBC,MAAA,CAAOC,IAAI,CAACb,SAAA,CAAU,CAAC,EAAE;MAChEc,OAAA,EAASF,MAAA,CAAOG,OAAO,CAACf,SAAA,EAAWgB,GAAG,CAAC,CAAC,CAACC,GAAA,EAAKC,KAAA,CAAM,MAAM;QACxDC,KAAA,EAAOD,KAAA;QACPA,KAAA,EAAOD;MACT;IACF,GACA;MACET,IAAA,EAAM;MACNC,IAAA,EAAM;MACNJ,KAAA,EAAO;QACLe,UAAA,EAAY;UACVC,KAAA,EAAO;YACLC,WAAA,EAAavB,IAAA;YACbwB,IAAA,EAAM;UACR;QACF;MACF;IACF,EACD;IACDjB,GAAA,EAAKT;EACP;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/server/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,eAAO,MAAM,IAAI,EAAE,OAAO,CAAC,gBAAgB,CA4T1C,CAAA"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/server/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,eAAO,MAAM,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAqU1C,CAAA"}
@@ -260,6 +260,15 @@ export const i18n = {
260
260
  },
261
261
  label: 'Block'
262
262
  },
263
+ ta: {
264
+ inlineBlocks: {
265
+ create: '{{label}} உருவாக்கவும்',
266
+ edit: '{{label}} திருத்தவும்',
267
+ label: 'இன்லைன் தொகுதிகள்',
268
+ remove: '{{label}} நீக்கவும்'
269
+ },
270
+ label: 'தொகுதிகள்'
271
+ },
263
272
  th: {
264
273
  inlineBlocks: {
265
274
  create: 'สร้าง {{label}}',
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","names":["i18n","ar","inlineBlocks","create","edit","label","remove","az","bg","cs","da","de","en","es","et","fa","fr","he","hr","hu","it","ja","ko","my","nb","nl","pl","pt","ro","rs","ru","sk","sl","sv","th","tr","uk","vi","zh"],"sources":["../../../../src/features/blocks/server/i18n.ts"],"sourcesContent":["import type { GenericLanguages } from '@payloadcms/translations'\n\nexport const i18n: Partial<GenericLanguages> = {\n ar: {\n inlineBlocks: {\n create: 'أنشئ {{label}}',\n edit: 'تحرير {{التسمية}}',\n label: 'الكتل الداخلية',\n remove: 'إزالة {{التسمية}}',\n },\n label: 'كتل',\n },\n az: {\n inlineBlocks: {\n create: 'Yarat {{label}}',\n edit: '{{label}} redaktə et',\n label: 'Sıralı Bloklar',\n remove: '{{label}} silin',\n },\n label: 'Bloklar',\n },\n bg: {\n inlineBlocks: {\n create: 'Създайте {{етикет}}',\n edit: 'Редактирай {{етикет}}',\n label: 'Вградени блокове',\n remove: 'Премахнете {{етикет}}',\n },\n label: 'Блокове',\n },\n cs: {\n inlineBlocks: {\n create: 'Vytvořte {{štítek}}',\n edit: 'Upravit {{label}}',\n label: 'Inline bloky',\n remove: 'Odstraňte {{label}}',\n },\n label: 'Bloky',\n },\n da: {\n inlineBlocks: {\n create: 'Opret {{label}}',\n edit: 'Rediger {{label}}',\n label: 'Indlejrede blokke',\n remove: 'Fjern {{label}}',\n },\n label: 'Blokke',\n },\n de: {\n inlineBlocks: {\n create: 'Erstelle {{label}}',\n edit: 'Bearbeite {{label}}',\n label: 'Inline-Blöcke',\n remove: 'Entferne {{label}}',\n },\n label: 'Blöcke',\n },\n en: {\n inlineBlocks: {\n create: 'Create {{label}}',\n edit: 'Edit {{label}}',\n label: 'Inline Blocks',\n remove: 'Remove {{label}}',\n },\n label: 'Blocks',\n },\n es: {\n inlineBlocks: {\n create: 'Crear {{etiqueta}}',\n edit: 'Editar {{etiqueta}}',\n label: 'Bloques en línea',\n remove: 'Eliminar {{label}}',\n },\n label: 'Bloques',\n },\n et: {\n inlineBlocks: {\n create: 'Loo {{label}}',\n edit: 'Muuda {{label}}',\n label: 'Sisseehitatud plokid',\n remove: 'Eemalda {{label}}',\n },\n label: 'Plokk',\n },\n fa: {\n inlineBlocks: {\n create: 'ایجاد {{برچسب}}',\n edit: 'ویرایش {{برچسب}}',\n label: 'بلوک‌های درون خطی',\n remove: 'حذف {{برچسب}}',\n },\n label: 'بلوک ها',\n },\n fr: {\n inlineBlocks: {\n create: 'Créer {{label}}',\n edit: 'Modifier {{label}}',\n label: 'Blocs en ligne',\n remove: 'Supprimer {{label}}',\n },\n label: 'Blocs',\n },\n he: {\n inlineBlocks: {\n create: 'צור {{תווית}}',\n edit: 'ערוך {{תווית}}',\n label: 'בלוקים משורשרים',\n remove: 'הסר {{תווית}}',\n },\n label: 'חסימות',\n },\n hr: {\n inlineBlocks: {\n create: 'Stvori {{oznaka}}',\n edit: 'Uredi {{label}}',\n label: 'Unutrašnji blokovi',\n remove: 'Ukloni {{oznaka}}',\n },\n label: 'Blokovi',\n },\n hu: {\n inlineBlocks: {\n create: 'Hozzon létre {{címke}}',\n edit: 'Szerkesztés {{címke}}',\n label: 'Beágyazott blokkok',\n remove: 'Távolítsa el a {{label}}',\n },\n label: 'Blokkok',\n },\n it: {\n inlineBlocks: {\n create: 'Crea {{etichetta}}',\n edit: 'Modifica {{label}}',\n label: 'Blocchi in linea',\n remove: 'Rimuovi {{label}}',\n },\n label: 'Blocchi',\n },\n ja: {\n inlineBlocks: {\n create: '{{label}}を作成する',\n edit: '{{label}}を編集する',\n label: 'インラインブロック',\n remove: '{{ラベル}}を削除します',\n },\n label: 'ブロック',\n },\n ko: {\n inlineBlocks: {\n create: '{{label}} 생성하기',\n edit: '{{label}} 수정하기',\n label: '인라인 블록',\n remove: '{{label}} 제거하세요',\n },\n label: '블록',\n },\n my: {\n inlineBlocks: {\n create: 'Cipta {{label}}',\n edit: 'Sunting {{label}}',\n label: 'Inline Blocks [SKIPPED]',\n remove: 'Buang {{label}}',\n },\n label: 'တံတားများ',\n },\n nb: {\n inlineBlocks: {\n create: 'Opprett {{label}}',\n edit: 'Rediger {{label}}',\n label: 'In-line blokker',\n remove: 'Fjern {{label}}',\n },\n label: 'Blokker',\n },\n nl: {\n inlineBlocks: {\n create: 'Maak {{label}}',\n edit: 'Bewerk {{label}}',\n label: 'Inline Blocks',\n remove: 'Verwijder {{label}}',\n },\n label: 'Blokken',\n },\n pl: {\n inlineBlocks: {\n create: 'Utwórz {{label}}',\n edit: 'Edytuj {{etykieta}}',\n label: 'Blokowanie w linii',\n remove: 'Usuń {{etykieta}}',\n },\n label: 'Bloki',\n },\n pt: {\n inlineBlocks: {\n create: 'Crie {{label}}',\n edit: 'Editar {{label}}',\n label: 'Blocos em linha',\n remove: 'Remova {{label}}',\n },\n label: 'Blocos',\n },\n ro: {\n inlineBlocks: {\n create: 'Creează {{eticheta}}',\n edit: 'Editați {{eticheta}}',\n label: 'Blocuri in linie',\n remove: 'Ștergeți {{etichetă}}',\n },\n label: 'Blocuri',\n },\n rs: {\n inlineBlocks: {\n create: 'Креирај {{label}}',\n edit: 'Измени {{label}}',\n label: 'Уметнути блокови',\n remove: 'Уклони {{label}}',\n },\n label: 'Блокови',\n },\n 'rs-latin': {\n inlineBlocks: {\n create: 'Kreiraj {{label}}',\n edit: 'Izmeni {{label}}',\n label: 'Umetnuti blokovi',\n remove: 'Ukloni {{oznaka}}',\n },\n label: 'Blokovi',\n },\n ru: {\n inlineBlocks: {\n create: 'Создать {{label}}',\n edit: 'Изменить {{метка}}',\n label: 'Встроенные блоки',\n remove: 'Удалить {{метка}}',\n },\n label: 'Блоки',\n },\n sk: {\n inlineBlocks: {\n create: 'Vytvorte {{označenie}}',\n edit: 'Upraviť {{label}}',\n label: 'Inline bloky',\n remove: 'Odstráňte {{label}}',\n },\n label: 'Bloky',\n },\n sl: {\n inlineBlocks: {\n create: 'Ustvari {{oznaka}}',\n edit: 'Uredi {{label}}',\n label: 'Vrstični bloki',\n remove: 'Odstrani {{label}}',\n },\n label: 'Bloki',\n },\n sv: {\n inlineBlocks: {\n create: 'Skapa {{label}}',\n edit: 'Redigera {{etikett}}',\n label: 'Inline-blockar',\n remove: 'Ta bort {{etikett}}',\n },\n label: 'Block',\n },\n th: {\n inlineBlocks: {\n create: 'สร้าง {{label}}',\n edit: 'แก้ไข {{label}}',\n label: 'บล็อกแบบอินไลน์',\n remove: 'ลบ {{label}}',\n },\n label: 'บล็อค',\n },\n tr: {\n inlineBlocks: {\n create: '{{Etiketi}} oluşturun',\n edit: \"{{Etiket}}'i düzenleyin\",\n label: 'Satır İçi Bloklar',\n remove: '{{Etiketi}} kaldırın',\n },\n label: 'Bloklar',\n },\n uk: {\n inlineBlocks: {\n create: 'Створити {{label}}',\n edit: 'Редагувати {{label}}',\n label: 'Вбудовані блоки',\n remove: 'Видалити {{мітку}}',\n },\n label: 'Блоки',\n },\n vi: {\n inlineBlocks: {\n create: 'Tạo {{label}}',\n edit: 'Chỉnh sửa {{nhãn}}',\n label: 'Khối nội tuyến',\n remove: 'Xóa {{nhãn}}',\n },\n label: 'Khối',\n },\n zh: {\n inlineBlocks: {\n create: '创建{{label}}',\n edit: '编辑 {{label}}',\n label: '内联块',\n remove: '删除{{label}}',\n },\n label: '区块',\n },\n 'zh-TW': {\n inlineBlocks: {\n create: '創建 {{label}}',\n edit: '編輯 {{label}}',\n label: '內聯區塊',\n remove: '移除 {{label}}',\n },\n label: '區塊',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,IAAA,GAAkC;EAC7CC,EAAA,EAAI;IACFC,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAE,EAAA,EAAI;IACFL,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAG,EAAA,EAAI;IACFN,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAI,EAAA,EAAI;IACFP,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAK,EAAA,EAAI;IACFR,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAM,EAAA,EAAI;IACFT,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAO,EAAA,EAAI;IACFV,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAQ,EAAA,EAAI;IACFX,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAS,EAAA,EAAI;IACFZ,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAU,EAAA,EAAI;IACFb,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAW,EAAA,EAAI;IACFd,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAY,EAAA,EAAI;IACFf,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAa,EAAA,EAAI;IACFhB,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAc,EAAA,EAAI;IACFjB,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAe,EAAA,EAAI;IACFlB,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAgB,EAAA,EAAI;IACFnB,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAiB,EAAA,EAAI;IACFpB,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAkB,EAAA,EAAI;IACFrB,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAmB,EAAA,EAAI;IACFtB,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAoB,EAAA,EAAI;IACFvB,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAqB,EAAA,EAAI;IACFxB,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAsB,EAAA,EAAI;IACFzB,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAuB,EAAA,EAAI;IACF1B,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAwB,EAAA,EAAI;IACF3B,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACA,YAAY;IACVH,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAyB,EAAA,EAAI;IACF5B,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACA0B,EAAA,EAAI;IACF7B,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACA2B,EAAA,EAAI;IACF9B,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACA4B,EAAA,EAAI;IACF/B,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACA6B,EAAA,EAAI;IACFhC,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACA8B,EAAA,EAAI;IACFjC,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACA+B,EAAA,EAAI;IACFlC,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAgC,EAAA,EAAI;IACFnC,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACAiC,EAAA,EAAI;IACFpC,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;EACA,SAAS;IACPH,YAAA,EAAc;MACZC,MAAA,EAAQ;MACRC,IAAA,EAAM;MACNC,KAAA,EAAO;MACPC,MAAA,EAAQ;IACV;IACAD,KAAA,EAAO;EACT;AACF","ignoreList":[]}
1
+ {"version":3,"file":"i18n.js","names":["i18n","ar","inlineBlocks","create","edit","label","remove","az","bg","cs","da","de","en","es","et","fa","fr","he","hr","hu","it","ja","ko","my","nb","nl","pl","pt","ro","rs","ru","sk","sl","sv","ta","th","tr","uk","vi","zh"],"sources":["../../../../src/features/blocks/server/i18n.ts"],"sourcesContent":["import type { GenericLanguages } from '@payloadcms/translations'\n\nexport const i18n: Partial<GenericLanguages> = {\n ar: {\n inlineBlocks: {\n create: 'أنشئ {{label}}',\n edit: 'تحرير {{التسمية}}',\n label: 'الكتل الداخلية',\n remove: 'إزالة {{التسمية}}',\n },\n label: 'كتل',\n },\n az: {\n inlineBlocks: {\n create: 'Yarat {{label}}',\n edit: '{{label}} redaktə et',\n label: 'Sıralı Bloklar',\n remove: '{{label}} silin',\n },\n label: 'Bloklar',\n },\n bg: {\n inlineBlocks: {\n create: 'Създайте {{етикет}}',\n edit: 'Редактирай {{етикет}}',\n label: 'Вградени блокове',\n remove: 'Премахнете {{етикет}}',\n },\n label: 'Блокове',\n },\n cs: {\n inlineBlocks: {\n create: 'Vytvořte {{štítek}}',\n edit: 'Upravit {{label}}',\n label: 'Inline bloky',\n remove: 'Odstraňte {{label}}',\n },\n label: 'Bloky',\n },\n da: {\n inlineBlocks: {\n create: 'Opret {{label}}',\n edit: 'Rediger {{label}}',\n label: 'Indlejrede blokke',\n remove: 'Fjern {{label}}',\n },\n label: 'Blokke',\n },\n de: {\n inlineBlocks: {\n create: 'Erstelle {{label}}',\n edit: 'Bearbeite {{label}}',\n label: 'Inline-Blöcke',\n remove: 'Entferne {{label}}',\n },\n label: 'Blöcke',\n },\n en: {\n inlineBlocks: {\n create: 'Create {{label}}',\n edit: 'Edit {{label}}',\n label: 'Inline Blocks',\n remove: 'Remove {{label}}',\n },\n label: 'Blocks',\n },\n es: {\n inlineBlocks: {\n create: 'Crear {{etiqueta}}',\n edit: 'Editar {{etiqueta}}',\n label: 'Bloques en línea',\n remove: 'Eliminar {{label}}',\n },\n label: 'Bloques',\n },\n et: {\n inlineBlocks: {\n create: 'Loo {{label}}',\n edit: 'Muuda {{label}}',\n label: 'Sisseehitatud plokid',\n remove: 'Eemalda {{label}}',\n },\n label: 'Plokk',\n },\n fa: {\n inlineBlocks: {\n create: 'ایجاد {{برچسب}}',\n edit: 'ویرایش {{برچسب}}',\n label: 'بلوک‌های درون خطی',\n remove: 'حذف {{برچسب}}',\n },\n label: 'بلوک ها',\n },\n fr: {\n inlineBlocks: {\n create: 'Créer {{label}}',\n edit: 'Modifier {{label}}',\n label: 'Blocs en ligne',\n remove: 'Supprimer {{label}}',\n },\n label: 'Blocs',\n },\n he: {\n inlineBlocks: {\n create: 'צור {{תווית}}',\n edit: 'ערוך {{תווית}}',\n label: 'בלוקים משורשרים',\n remove: 'הסר {{תווית}}',\n },\n label: 'חסימות',\n },\n hr: {\n inlineBlocks: {\n create: 'Stvori {{oznaka}}',\n edit: 'Uredi {{label}}',\n label: 'Unutrašnji blokovi',\n remove: 'Ukloni {{oznaka}}',\n },\n label: 'Blokovi',\n },\n hu: {\n inlineBlocks: {\n create: 'Hozzon létre {{címke}}',\n edit: 'Szerkesztés {{címke}}',\n label: 'Beágyazott blokkok',\n remove: 'Távolítsa el a {{label}}',\n },\n label: 'Blokkok',\n },\n it: {\n inlineBlocks: {\n create: 'Crea {{etichetta}}',\n edit: 'Modifica {{label}}',\n label: 'Blocchi in linea',\n remove: 'Rimuovi {{label}}',\n },\n label: 'Blocchi',\n },\n ja: {\n inlineBlocks: {\n create: '{{label}}を作成する',\n edit: '{{label}}を編集する',\n label: 'インラインブロック',\n remove: '{{ラベル}}を削除します',\n },\n label: 'ブロック',\n },\n ko: {\n inlineBlocks: {\n create: '{{label}} 생성하기',\n edit: '{{label}} 수정하기',\n label: '인라인 블록',\n remove: '{{label}} 제거하세요',\n },\n label: '블록',\n },\n my: {\n inlineBlocks: {\n create: 'Cipta {{label}}',\n edit: 'Sunting {{label}}',\n label: 'Inline Blocks [SKIPPED]',\n remove: 'Buang {{label}}',\n },\n label: 'တံတားများ',\n },\n nb: {\n inlineBlocks: {\n create: 'Opprett {{label}}',\n edit: 'Rediger {{label}}',\n label: 'In-line blokker',\n remove: 'Fjern {{label}}',\n },\n label: 'Blokker',\n },\n nl: {\n inlineBlocks: {\n create: 'Maak {{label}}',\n edit: 'Bewerk {{label}}',\n label: 'Inline Blocks',\n remove: 'Verwijder {{label}}',\n },\n label: 'Blokken',\n },\n pl: {\n inlineBlocks: {\n create: 'Utwórz {{label}}',\n edit: 'Edytuj {{etykieta}}',\n label: 'Blokowanie w linii',\n remove: 'Usuń {{etykieta}}',\n },\n label: 'Bloki',\n },\n pt: {\n inlineBlocks: {\n create: 'Crie {{label}}',\n edit: 'Editar {{label}}',\n label: 'Blocos em linha',\n remove: 'Remova {{label}}',\n },\n label: 'Blocos',\n },\n ro: {\n inlineBlocks: {\n create: 'Creează {{eticheta}}',\n edit: 'Editați {{eticheta}}',\n label: 'Blocuri in linie',\n remove: 'Ștergeți {{etichetă}}',\n },\n label: 'Blocuri',\n },\n rs: {\n inlineBlocks: {\n create: 'Креирај {{label}}',\n edit: 'Измени {{label}}',\n label: 'Уметнути блокови',\n remove: 'Уклони {{label}}',\n },\n label: 'Блокови',\n },\n 'rs-latin': {\n inlineBlocks: {\n create: 'Kreiraj {{label}}',\n edit: 'Izmeni {{label}}',\n label: 'Umetnuti blokovi',\n remove: 'Ukloni {{oznaka}}',\n },\n label: 'Blokovi',\n },\n ru: {\n inlineBlocks: {\n create: 'Создать {{label}}',\n edit: 'Изменить {{метка}}',\n label: 'Встроенные блоки',\n remove: 'Удалить {{метка}}',\n },\n label: 'Блоки',\n },\n sk: {\n inlineBlocks: {\n create: 'Vytvorte {{označenie}}',\n edit: 'Upraviť {{label}}',\n label: 'Inline bloky',\n remove: 'Odstráňte {{label}}',\n },\n label: 'Bloky',\n },\n sl: {\n inlineBlocks: {\n create: 'Ustvari {{oznaka}}',\n edit: 'Uredi {{label}}',\n label: 'Vrstični bloki',\n remove: 'Odstrani {{label}}',\n },\n label: 'Bloki',\n },\n sv: {\n inlineBlocks: {\n create: 'Skapa {{label}}',\n edit: 'Redigera {{etikett}}',\n label: 'Inline-blockar',\n remove: 'Ta bort {{etikett}}',\n },\n label: 'Block',\n },\n ta: {\n inlineBlocks: {\n create: '{{label}} உருவாக்கவும்',\n edit: '{{label}} திருத்தவும்',\n label: 'இன்லைன் தொகுதிகள்',\n remove: '{{label}} நீக்கவும்',\n },\n label: 'தொகுதிகள்',\n },\n th: {\n inlineBlocks: {\n create: 'สร้าง {{label}}',\n edit: 'แก้ไข {{label}}',\n label: 'บล็อกแบบอินไลน์',\n remove: 'ลบ {{label}}',\n },\n label: 'บล็อค',\n },\n tr: {\n inlineBlocks: {\n create: '{{Etiketi}} oluşturun',\n edit: \"{{Etiket}}'i düzenleyin\",\n label: 'Satır İçi Bloklar',\n remove: '{{Etiketi}} kaldırın',\n },\n label: 'Bloklar',\n },\n uk: {\n inlineBlocks: {\n create: 'Створити {{label}}',\n edit: 'Редагувати {{label}}',\n label: 'Вбудовані блоки',\n remove: 'Видалити {{мітку}}',\n },\n label: 'Блоки',\n },\n vi: {\n inlineBlocks: {\n create: 'Tạo {{label}}',\n edit: 'Chỉnh sửa {{nhãn}}',\n label: 'Khối nội tuyến',\n remove: 'Xóa {{nhãn}}',\n },\n label: 'Khối',\n },\n zh: {\n inlineBlocks: {\n create: '创建{{label}}',\n edit: '编辑 {{label}}',\n label: '内联块',\n remove: '删除{{label}}',\n },\n label: '区块',\n },\n 'zh-TW': {\n inlineBlocks: {\n create: '創建 {{label}}',\n edit: '編輯 {{label}}',\n label: '內聯區塊',\n remove: '移除 {{label}}',\n },\n label: '區塊',\n },\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@ import { createServerFeature } from '../../../utilities/createServerFeature.js';
3
3
  import { createNode } from '../../typeUtilities.js';
4
4
  import { blockPopulationPromiseHOC } from './graphQLPopulationPromise.js';
5
5
  import { i18n } from './i18n.js';
6
- import { getBlockMarkdownTransformers } from './markdownTransformer.js';
6
+ import { getBlockMarkdownTransformers } from './markdown/markdownTransformer.js';
7
7
  import { ServerBlockNode } from './nodes/BlocksNode.js';
8
8
  import { ServerInlineBlockNode } from './nodes/InlineBlocksNode.js';
9
9
  import { blockValidationHOC } from './validate.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["fieldsToJSONSchema","flattenAllFields","sanitizeFields","createServerFeature","createNode","blockPopulationPromiseHOC","i18n","getBlockMarkdownTransformers","ServerBlockNode","ServerInlineBlockNode","blockValidationHOC","BlocksFeature","feature","config","_config","isRoot","parentIsLocalized","props","_props","validRelationships","collections","map","c","slug","sanitized","fields","name","type","blockReferences","blocks","inlineBlocks","requireFieldLevelRichTextEditor","blockConfigs","_block","block","find","b","Error","push","inlineBlockConfigs","ClientFeature","generatedTypes","modifyOutputSchema","collectionIDFieldTypes","currentSchema","field","interfaceNameDefinitions","length","flattenedFields","generateSchemaMap","schemaMap","Map","blockFields","admin","components","unshift","Block","BlockLabel","Label","set","markdownTransformers","nodes","getSubFields","node","blockType","getSubFieldsData","graphQLPopulationPromises","validations","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/blocks/server/index.ts"],"sourcesContent":["import type {\n Block,\n BlocksField,\n BlockSlug,\n Config,\n FieldSchemaMap,\n FlattenedBlocksField,\n} from 'payload'\n\nimport { fieldsToJSONSchema, flattenAllFields, sanitizeFields } from 'payload'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { blockPopulationPromiseHOC } from './graphQLPopulationPromise.js'\nimport { i18n } from './i18n.js'\nimport { getBlockMarkdownTransformers } from './markdownTransformer.js'\nimport { ServerBlockNode } from './nodes/BlocksNode.js'\nimport { ServerInlineBlockNode } from './nodes/InlineBlocksNode.js'\nimport { blockValidationHOC } from './validate.js'\n\nexport type BlocksFeatureProps = {\n blocks?: (Block | BlockSlug)[] | Block[]\n inlineBlocks?: (Block | BlockSlug)[] | Block[]\n}\n\nexport const BlocksFeature = createServerFeature<BlocksFeatureProps, BlocksFeatureProps>({\n feature: async ({ config: _config, isRoot, parentIsLocalized, props: _props }) => {\n const validRelationships = _config.collections.map((c) => c.slug) || []\n\n const sanitized = await sanitizeFields({\n config: _config as unknown as Config,\n fields: [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blockReferences: _props.blocks ?? [],\n blocks: [],\n },\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blockReferences: _props.inlineBlocks ?? [],\n blocks: [],\n },\n ],\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n\n const blockConfigs: Block[] = []\n for (const _block of (sanitized[0] as BlocksField).blockReferences ??\n (sanitized[0] as BlocksField).blocks) {\n const block =\n typeof _block === 'string' ? _config?.blocks?.find((b) => b.slug === _block) : _block\n if (!block) {\n throw new Error(\n `Block not found for slug: ${typeof _block === 'string' ? _block : _block?.slug}`,\n )\n }\n blockConfigs.push(block)\n }\n\n const inlineBlockConfigs: Block[] = []\n for (const _block of (sanitized[1] as BlocksField).blockReferences ??\n (sanitized[1] as BlocksField).blocks) {\n const block =\n typeof _block === 'string' ? _config?.blocks?.find((b) => b.slug === _block) : _block\n if (!block) {\n throw new Error(\n `Block not found for slug: ${typeof _block === 'string' ? _block : _block?.slug}`,\n )\n }\n inlineBlockConfigs.push(block)\n }\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#BlocksFeatureClient',\n generatedTypes: {\n modifyOutputSchema: ({\n collectionIDFieldTypes,\n config,\n currentSchema,\n field,\n i18n,\n interfaceNameDefinitions,\n }) => {\n if (!blockConfigs?.length && !inlineBlockConfigs?.length) {\n return currentSchema\n }\n\n const fields: FlattenedBlocksField[] = []\n\n if (blockConfigs?.length) {\n fields.push({\n name: field?.name + '_lexical_blocks',\n type: 'blocks',\n blocks: blockConfigs.map((block) => {\n return {\n ...block,\n flattenedFields: flattenAllFields({ fields: block.fields }),\n }\n }),\n })\n }\n if (inlineBlockConfigs?.length) {\n fields.push({\n name: field?.name + '_lexical_inline_blocks',\n type: 'blocks',\n blocks: inlineBlockConfigs.map((block) => {\n return {\n ...block,\n flattenedFields: flattenAllFields({ fields: block.fields }),\n }\n }),\n })\n }\n\n if (fields.length) {\n // This is only done so that interfaceNameDefinitions sets those block's interfaceNames.\n // we don't actually use the JSON Schema itself in the generated types yet.\n fieldsToJSONSchema(\n collectionIDFieldTypes,\n fields,\n interfaceNameDefinitions,\n config,\n i18n,\n )\n }\n\n return currentSchema\n },\n },\n generateSchemaMap: ({ config }) => {\n /**\n * Add sub-fields to the schemaMap. E.g. if you have an array field as part of the block, and it runs addRow, it will request these\n * sub-fields from the component map. Thus, we need to put them in the component map here.\n */\n const schemaMap: FieldSchemaMap = new Map()\n\n if (blockConfigs?.length) {\n for (const block of blockConfigs) {\n const blockFields = [...block.fields]\n\n if (block?.admin?.components) {\n blockFields.unshift({\n name: `_components`,\n type: 'ui',\n admin: {\n components: {\n Block: block.admin?.components?.Block,\n BlockLabel: block.admin?.components?.Label,\n },\n },\n })\n }\n schemaMap.set(`lexical_blocks.${block.slug}.fields`, {\n fields: blockFields,\n })\n schemaMap.set(`lexical_blocks.${block.slug}`, {\n name: `lexical_blocks_${block.slug}`,\n type: 'blocks',\n blocks: [block],\n })\n }\n }\n\n if (inlineBlockConfigs?.length) {\n // To generate block schemaMap which generates things like the componentMap for admin.Label\n for (const block of inlineBlockConfigs) {\n const blockFields = [...block.fields]\n\n if (block?.admin?.components) {\n blockFields.unshift({\n name: `_components`,\n type: 'ui',\n admin: {\n components: {\n Block: block.admin?.components?.Block,\n BlockLabel: block.admin?.components?.Label,\n },\n },\n })\n }\n\n schemaMap.set(`lexical_inline_blocks.${block.slug}.fields`, {\n fields: blockFields,\n })\n\n schemaMap.set(`lexical_inline_blocks.${block.slug}`, {\n name: `lexical_inline_blocks_${block.slug}`,\n type: 'blocks',\n blocks: [block],\n })\n }\n }\n\n return schemaMap\n },\n i18n,\n markdownTransformers: getBlockMarkdownTransformers({\n blocks: blockConfigs,\n inlineBlocks: inlineBlockConfigs,\n }),\n\n nodes: [\n createNode({\n // @ts-expect-error - TODO: fix this\n getSubFields: ({ node }) => {\n if (!node) {\n if (blockConfigs?.length) {\n return [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: blockConfigs,\n },\n ]\n }\n return []\n }\n\n const blockType = node.fields.blockType\n\n const block = blockConfigs?.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(blockConfigs)],\n node: ServerBlockNode,\n validations: [blockValidationHOC(blockConfigs)],\n }),\n createNode({\n // @ts-expect-error - TODO: fix this\n getSubFields: ({ node }) => {\n if (!node) {\n if (inlineBlockConfigs?.length) {\n return [\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: inlineBlockConfigs,\n },\n ]\n }\n return []\n }\n\n const blockType = node.fields.blockType\n\n const block = inlineBlockConfigs?.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(inlineBlockConfigs)],\n node: ServerInlineBlockNode,\n validations: [blockValidationHOC(inlineBlockConfigs)],\n }),\n ],\n sanitizedServerFeatureProps: _props,\n }\n },\n key: 'blocks',\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["fieldsToJSONSchema","flattenAllFields","sanitizeFields","createServerFeature","createNode","blockPopulationPromiseHOC","i18n","getBlockMarkdownTransformers","ServerBlockNode","ServerInlineBlockNode","blockValidationHOC","BlocksFeature","feature","config","_config","isRoot","parentIsLocalized","props","_props","validRelationships","collections","map","c","slug","sanitized","fields","name","type","blockReferences","blocks","inlineBlocks","requireFieldLevelRichTextEditor","blockConfigs","_block","block","find","b","Error","push","inlineBlockConfigs","ClientFeature","generatedTypes","modifyOutputSchema","collectionIDFieldTypes","currentSchema","field","interfaceNameDefinitions","length","flattenedFields","generateSchemaMap","schemaMap","Map","blockFields","admin","components","unshift","Block","BlockLabel","Label","set","markdownTransformers","nodes","getSubFields","node","blockType","getSubFieldsData","graphQLPopulationPromises","validations","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/blocks/server/index.ts"],"sourcesContent":["import type {\n Block,\n BlocksField,\n BlockSlug,\n Config,\n FieldSchemaMap,\n FlattenedBlocksField,\n} from 'payload'\n\nimport { fieldsToJSONSchema, flattenAllFields, sanitizeFields } from 'payload'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { blockPopulationPromiseHOC } from './graphQLPopulationPromise.js'\nimport { i18n } from './i18n.js'\nimport { getBlockMarkdownTransformers } from './markdown/markdownTransformer.js'\nimport { ServerBlockNode } from './nodes/BlocksNode.js'\nimport { ServerInlineBlockNode } from './nodes/InlineBlocksNode.js'\nimport { blockValidationHOC } from './validate.js'\n\nexport type BlocksFeatureProps = {\n blocks?: (Block | BlockSlug)[] | Block[]\n inlineBlocks?: (Block | BlockSlug)[] | Block[]\n}\n\nexport const BlocksFeature = createServerFeature<BlocksFeatureProps, BlocksFeatureProps>({\n feature: async ({ config: _config, isRoot, parentIsLocalized, props: _props }) => {\n const validRelationships = _config.collections.map((c) => c.slug) || []\n\n const sanitized = await sanitizeFields({\n config: _config as unknown as Config,\n fields: [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blockReferences: _props.blocks ?? [],\n blocks: [],\n },\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blockReferences: _props.inlineBlocks ?? [],\n blocks: [],\n },\n ],\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n\n const blockConfigs: Block[] = []\n for (const _block of (sanitized[0] as BlocksField).blockReferences ??\n (sanitized[0] as BlocksField).blocks) {\n const block =\n typeof _block === 'string' ? _config?.blocks?.find((b) => b.slug === _block) : _block\n if (!block) {\n throw new Error(\n `Block not found for slug: ${typeof _block === 'string' ? _block : _block?.slug}`,\n )\n }\n blockConfigs.push(block)\n }\n\n const inlineBlockConfigs: Block[] = []\n for (const _block of (sanitized[1] as BlocksField).blockReferences ??\n (sanitized[1] as BlocksField).blocks) {\n const block =\n typeof _block === 'string' ? _config?.blocks?.find((b) => b.slug === _block) : _block\n if (!block) {\n throw new Error(\n `Block not found for slug: ${typeof _block === 'string' ? _block : _block?.slug}`,\n )\n }\n inlineBlockConfigs.push(block)\n }\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#BlocksFeatureClient',\n generatedTypes: {\n modifyOutputSchema: ({\n collectionIDFieldTypes,\n config,\n currentSchema,\n field,\n i18n,\n interfaceNameDefinitions,\n }) => {\n if (!blockConfigs?.length && !inlineBlockConfigs?.length) {\n return currentSchema\n }\n\n const fields: FlattenedBlocksField[] = []\n\n if (blockConfigs?.length) {\n fields.push({\n name: field?.name + '_lexical_blocks',\n type: 'blocks',\n blocks: blockConfigs.map((block) => {\n return {\n ...block,\n flattenedFields: flattenAllFields({ fields: block.fields }),\n }\n }),\n })\n }\n if (inlineBlockConfigs?.length) {\n fields.push({\n name: field?.name + '_lexical_inline_blocks',\n type: 'blocks',\n blocks: inlineBlockConfigs.map((block) => {\n return {\n ...block,\n flattenedFields: flattenAllFields({ fields: block.fields }),\n }\n }),\n })\n }\n\n if (fields.length) {\n // This is only done so that interfaceNameDefinitions sets those block's interfaceNames.\n // we don't actually use the JSON Schema itself in the generated types yet.\n fieldsToJSONSchema(\n collectionIDFieldTypes,\n fields,\n interfaceNameDefinitions,\n config,\n i18n,\n )\n }\n\n return currentSchema\n },\n },\n generateSchemaMap: ({ config }) => {\n /**\n * Add sub-fields to the schemaMap. E.g. if you have an array field as part of the block, and it runs addRow, it will request these\n * sub-fields from the component map. Thus, we need to put them in the component map here.\n */\n const schemaMap: FieldSchemaMap = new Map()\n\n if (blockConfigs?.length) {\n for (const block of blockConfigs) {\n const blockFields = [...block.fields]\n\n if (block?.admin?.components) {\n blockFields.unshift({\n name: `_components`,\n type: 'ui',\n admin: {\n components: {\n Block: block.admin?.components?.Block,\n BlockLabel: block.admin?.components?.Label,\n },\n },\n })\n }\n schemaMap.set(`lexical_blocks.${block.slug}.fields`, {\n fields: blockFields,\n })\n schemaMap.set(`lexical_blocks.${block.slug}`, {\n name: `lexical_blocks_${block.slug}`,\n type: 'blocks',\n blocks: [block],\n })\n }\n }\n\n if (inlineBlockConfigs?.length) {\n // To generate block schemaMap which generates things like the componentMap for admin.Label\n for (const block of inlineBlockConfigs) {\n const blockFields = [...block.fields]\n\n if (block?.admin?.components) {\n blockFields.unshift({\n name: `_components`,\n type: 'ui',\n admin: {\n components: {\n Block: block.admin?.components?.Block,\n BlockLabel: block.admin?.components?.Label,\n },\n },\n })\n }\n\n schemaMap.set(`lexical_inline_blocks.${block.slug}.fields`, {\n fields: blockFields,\n })\n\n schemaMap.set(`lexical_inline_blocks.${block.slug}`, {\n name: `lexical_inline_blocks_${block.slug}`,\n type: 'blocks',\n blocks: [block],\n })\n }\n }\n\n return schemaMap\n },\n i18n,\n markdownTransformers: getBlockMarkdownTransformers({\n blocks: blockConfigs,\n inlineBlocks: inlineBlockConfigs,\n }),\n\n nodes: [\n createNode({\n // @ts-expect-error - TODO: fix this\n getSubFields: ({ node }) => {\n if (!node) {\n if (blockConfigs?.length) {\n return [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: blockConfigs,\n },\n ]\n }\n return []\n }\n\n const blockType = node.fields.blockType\n\n const block = blockConfigs?.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(blockConfigs)],\n node: ServerBlockNode,\n validations: [blockValidationHOC(blockConfigs)],\n }),\n createNode({\n // @ts-expect-error - TODO: fix this\n getSubFields: ({ node }) => {\n if (!node) {\n if (inlineBlockConfigs?.length) {\n return [\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: inlineBlockConfigs,\n },\n ]\n }\n return []\n }\n\n const blockType = node.fields.blockType\n\n const block = inlineBlockConfigs?.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(inlineBlockConfigs)],\n node: ServerInlineBlockNode,\n validations: [blockValidationHOC(inlineBlockConfigs)],\n }),\n ],\n sanitizedServerFeatureProps: _props,\n }\n },\n key: 'blocks',\n})\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import type { NodeWithHooks } from '../../../typesServer.js';
2
+ import { type Transformer } from '../../../../packages/@lexical/markdown/index.js';
3
+ export declare function getLexicalToMarkdown(allNodes: Array<NodeWithHooks>, allTransformers: Transformer[]): (args: {
4
+ editorState: Record<string, any>;
5
+ }) => string;
6
+ //# sourceMappingURL=getLexicalToMarkdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLexicalToMarkdown.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/server/markdown/getLexicalToMarkdown.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAG5D,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,iDAAiD,CAAA;AACxD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,EAC9B,eAAe,EAAE,WAAW,EAAE,GAC7B,CAAC,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,KAAK,MAAM,CAsBxD"}
@@ -0,0 +1,27 @@
1
+ import { createHeadlessEditor } from '@lexical/headless';
2
+ import { getEnabledNodesFromServerNodes } from '../../../../lexical/nodes/index.js';
3
+ import { $convertToMarkdownString } from '../../../../packages/@lexical/markdown/index.js';
4
+ export function getLexicalToMarkdown(allNodes, allTransformers) {
5
+ const lexicalToMarkdown = ({
6
+ editorState
7
+ }) => {
8
+ const headlessEditor = createHeadlessEditor({
9
+ nodes: getEnabledNodesFromServerNodes({
10
+ nodes: allNodes
11
+ })
12
+ });
13
+ try {
14
+ headlessEditor.setEditorState(headlessEditor.parseEditorState(editorState)) // This should commit the editor state immediately
15
+ ;
16
+ } catch (e) {
17
+ console.error('getLexicalToMarkdown: ERROR parsing editor state', e);
18
+ }
19
+ let markdown = '';
20
+ headlessEditor.getEditorState().read(() => {
21
+ markdown = $convertToMarkdownString(allTransformers);
22
+ });
23
+ return markdown;
24
+ };
25
+ return lexicalToMarkdown;
26
+ }
27
+ //# sourceMappingURL=getLexicalToMarkdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLexicalToMarkdown.js","names":["createHeadlessEditor","getEnabledNodesFromServerNodes","$convertToMarkdownString","getLexicalToMarkdown","allNodes","allTransformers","lexicalToMarkdown","editorState","headlessEditor","nodes","setEditorState","parseEditorState","e","console","error","markdown","getEditorState","read"],"sources":["../../../../../src/features/blocks/server/markdown/getLexicalToMarkdown.ts"],"sourcesContent":["import { createHeadlessEditor } from '@lexical/headless'\n\nimport type { NodeWithHooks } from '../../../typesServer.js'\n\nimport { getEnabledNodesFromServerNodes } from '../../../../lexical/nodes/index.js'\nimport {\n $convertToMarkdownString,\n type Transformer,\n} from '../../../../packages/@lexical/markdown/index.js'\nexport function getLexicalToMarkdown(\n allNodes: Array<NodeWithHooks>,\n allTransformers: Transformer[],\n): (args: { editorState: Record<string, any> }) => string {\n const lexicalToMarkdown = ({ editorState }: { editorState: Record<string, any> }): string => {\n const headlessEditor = createHeadlessEditor({\n nodes: getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n })\n\n try {\n headlessEditor.setEditorState(headlessEditor.parseEditorState(editorState as any)) // This should commit the editor state immediately\n } catch (e) {\n console.error('getLexicalToMarkdown: ERROR parsing editor state', e)\n }\n\n let markdown: string = ''\n headlessEditor.getEditorState().read(() => {\n markdown = $convertToMarkdownString(allTransformers)\n })\n\n return markdown\n }\n return lexicalToMarkdown\n}\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ;AAIrC,SAASC,8BAA8B,QAAQ;AAC/C,SACEC,wBAAwB,QAEnB;AACP,OAAO,SAASC,qBACdC,QAA8B,EAC9BC,eAA8B;EAE9B,MAAMC,iBAAA,GAAoBA,CAAC;IAAEC;EAAW,CAAwC;IAC9E,MAAMC,cAAA,GAAiBR,oBAAA,CAAqB;MAC1CS,KAAA,EAAOR,8BAAA,CAA+B;QACpCQ,KAAA,EAAOL;MACT;IACF;IAEA,IAAI;MACFI,cAAA,CAAeE,cAAc,CAACF,cAAA,CAAeG,gBAAgB,CAACJ,WAAA,GAAqB;MAAA;IACrF,EAAE,OAAOK,CAAA,EAAG;MACVC,OAAA,CAAQC,KAAK,CAAC,oDAAoDF,CAAA;IACpE;IAEA,IAAIG,QAAA,GAAmB;IACvBP,cAAA,CAAeQ,cAAc,GAAGC,IAAI,CAAC;MACnCF,QAAA,GAAWb,wBAAA,CAAyBG,eAAA;IACtC;IAEA,OAAOU,QAAA;EACT;EACA,OAAOT,iBAAA;AACT","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import type { SerializedEditorState } from 'lexical';
2
+ import type { NodeWithHooks } from '../../../typesServer.js';
3
+ import { type Transformer } from '../../../../packages/@lexical/markdown/index.js';
4
+ export declare function getMarkdownToLexical(allNodes: Array<NodeWithHooks>, allTransformers: Transformer[]): (args: {
5
+ markdown: string;
6
+ }) => SerializedEditorState;
7
+ //# sourceMappingURL=getMarkdownToLexical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMarkdownToLexical.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/server/markdown/getMarkdownToLexical.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAG5D,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,iDAAiD,CAAA;AACxD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,EAC9B,eAAe,EAAE,WAAW,EAAE,GAC7B,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,KAAK,qBAAqB,CAkBvD"}
@@ -0,0 +1,22 @@
1
+ import { createHeadlessEditor } from '@lexical/headless';
2
+ import { getEnabledNodesFromServerNodes } from '../../../../lexical/nodes/index.js';
3
+ import { $convertFromMarkdownString } from '../../../../packages/@lexical/markdown/index.js';
4
+ export function getMarkdownToLexical(allNodes, allTransformers) {
5
+ const markdownToLexical = ({
6
+ markdown
7
+ }) => {
8
+ const headlessEditor = createHeadlessEditor({
9
+ nodes: getEnabledNodesFromServerNodes({
10
+ nodes: allNodes
11
+ })
12
+ });
13
+ headlessEditor.update(() => {
14
+ $convertFromMarkdownString(markdown, allTransformers);
15
+ }, {
16
+ discrete: true
17
+ });
18
+ return headlessEditor.getEditorState().toJSON();
19
+ };
20
+ return markdownToLexical;
21
+ }
22
+ //# sourceMappingURL=getMarkdownToLexical.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMarkdownToLexical.js","names":["createHeadlessEditor","getEnabledNodesFromServerNodes","$convertFromMarkdownString","getMarkdownToLexical","allNodes","allTransformers","markdownToLexical","markdown","headlessEditor","nodes","update","discrete","getEditorState","toJSON"],"sources":["../../../../../src/features/blocks/server/markdown/getMarkdownToLexical.ts"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\n\nimport { createHeadlessEditor } from '@lexical/headless'\n\nimport type { NodeWithHooks } from '../../../typesServer.js'\n\nimport { getEnabledNodesFromServerNodes } from '../../../../lexical/nodes/index.js'\nimport {\n $convertFromMarkdownString,\n type Transformer,\n} from '../../../../packages/@lexical/markdown/index.js'\nexport function getMarkdownToLexical(\n allNodes: Array<NodeWithHooks>,\n allTransformers: Transformer[],\n): (args: { markdown: string }) => SerializedEditorState {\n const markdownToLexical = ({ markdown }: { markdown: string }): SerializedEditorState => {\n const headlessEditor = createHeadlessEditor({\n nodes: getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n })\n\n headlessEditor.update(\n () => {\n $convertFromMarkdownString(markdown, allTransformers)\n },\n { discrete: true },\n )\n\n return headlessEditor.getEditorState().toJSON()\n }\n return markdownToLexical\n}\n"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ;AAIrC,SAASC,8BAA8B,QAAQ;AAC/C,SACEC,0BAA0B,QAErB;AACP,OAAO,SAASC,qBACdC,QAA8B,EAC9BC,eAA8B;EAE9B,MAAMC,iBAAA,GAAoBA,CAAC;IAAEC;EAAQ,CAAwB;IAC3D,MAAMC,cAAA,GAAiBR,oBAAA,CAAqB;MAC1CS,KAAA,EAAOR,8BAAA,CAA+B;QACpCQ,KAAA,EAAOL;MACT;IACF;IAEAI,cAAA,CAAeE,MAAM,CACnB;MACER,0BAAA,CAA2BK,QAAA,EAAUF,eAAA;IACvC,GACA;MAAEM,QAAA,EAAU;IAAK;IAGnB,OAAOH,cAAA,CAAeI,cAAc,GAAGC,MAAM;EAC/C;EACA,OAAOP,iBAAA;AACT","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linesFromMatchToContentAndPropsString.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/server/markdown/linesFromMatchToContentAndPropsString.ts"],"names":[],"mappings":"AAAA,wBAAgB,qCAAqC,CAAC,EACpD,aAAa,EACb,KAAK,EACL,cAAc,EACd,cAAc,EACd,UAAU,EACV,YAAY,GACb,EAAE;IACD,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,GAAG;IACF;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;CACpB,CAqJA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linesFromMatchToContentAndPropsString.js","names":["linesFromStartToContentAndPropsString","isEndOptional","lines","regexpEndRegex","startLineIndex","startMatch","trimChildren","propsString","content","linesCopy","slice","isWithinContent","contentSubTagStartAmount","bracketCount","quoteChar","isSelfClosing","isWithinCodeBlockAmount","beforeStartLine","index","endlineLastCharIndex","endLineIndex","mainLoop","lineIndex","lineCopy","entries","line","trim","amountOfBeginningSpacesRemoved","i","length","charIndex","char","nextChar","match","undefined","Error","join","JSON","stringify","afterEndLine"],"sources":["../../../../../src/features/blocks/server/markdown/linesFromMatchToContentAndPropsString.ts"],"sourcesContent":["export function linesFromStartToContentAndPropsString({\n isEndOptional,\n lines,\n regexpEndRegex,\n startLineIndex,\n startMatch,\n trimChildren,\n}: {\n isEndOptional?: boolean\n lines: string[]\n regexpEndRegex?: RegExp\n startLineIndex: number\n startMatch: RegExpMatchArray\n trimChildren?: boolean\n}): {\n /**\n * The matched string after the end match, in the same line as the end match. Useful for inline matches.\n */\n afterEndLine: string\n /**\n * The matched string before the start match, in the same line as the start match. Useful for inline matches.\n */\n beforeStartLine: string\n content: string\n endLineIndex: number\n endlineLastCharIndex: number\n propsString: string\n} {\n let propsString = ''\n let content = ''\n const linesCopy = lines.slice(startLineIndex)\n\n let isWithinContent = false // If false => is within prop\n let contentSubTagStartAmount = 0\n\n let bracketCount = 0\n let quoteChar: null | string = null\n let isSelfClosing = false\n let isWithinCodeBlockAmount = 0\n\n const beforeStartLine = linesCopy[0]!.slice(0, startMatch.index)\n let endlineLastCharIndex = 0\n\n let endLineIndex = startLineIndex\n\n mainLoop: for (const [lineIndex, lineCopy] of linesCopy.entries()) {\n const line = trimChildren ? lineCopy.trim() : lineCopy\n let amountOfBeginningSpacesRemoved = 0\n if (trimChildren) {\n for (let i = 0; i < lineCopy.length; i++) {\n if (lineCopy[i] === ' ') {\n amountOfBeginningSpacesRemoved++\n } else {\n break\n }\n }\n }\n\n let charIndex = 0\n\n if (lineIndex === 0) {\n charIndex = (startMatch.index ?? 0) + startMatch[0].length - amountOfBeginningSpacesRemoved // We need to also loop over the \">\" in something like \"<InlineCode>\" in order to later set isWithinContent to true\n }\n\n while (charIndex < line.length) {\n const char = line[charIndex]\n const nextChar = line[charIndex + 1]\n\n if (!isWithinContent) {\n if (char === '{' && !quoteChar) {\n bracketCount++\n } else if (char === '}' && !quoteChar) {\n bracketCount--\n } else if ((char === '\"' || char === \"'\") && !quoteChar) {\n quoteChar = char\n } else if (char === quoteChar) {\n quoteChar = null\n }\n\n if (char === '/' && nextChar === '>' && bracketCount === 0 && !quoteChar) {\n isSelfClosing = true\n endLineIndex = lineIndex\n endlineLastCharIndex = charIndex + 2\n\n break mainLoop\n } else if (char === '>' && bracketCount === 0 && !quoteChar) {\n isWithinContent = true\n charIndex++\n continue\n }\n\n propsString += char\n } else {\n if (char === '`') {\n isWithinCodeBlockAmount++\n }\n\n if (isWithinCodeBlockAmount % 2 === 0) {\n if (char === '<' && nextChar === '/') {\n contentSubTagStartAmount--\n\n if (contentSubTagStartAmount < 0) {\n if (content[content.length - 1] === '\\n') {\n content = content.slice(0, -1) // Remove the last newline\n }\n endLineIndex = lineIndex\n // Calculate endlineLastCharIndex by finding \">\" in line\n for (let i = charIndex; i < line.length; i++) {\n if (line[i] === '>') {\n endlineLastCharIndex = i + 1\n\n break\n }\n }\n break mainLoop\n }\n } else if (char === '/' && nextChar === '>') {\n contentSubTagStartAmount--\n\n if (contentSubTagStartAmount < 0) {\n if (content[content.length - 1] === '\\n') {\n content = content.slice(0, -1) // Remove the last newline\n }\n endLineIndex = lineIndex\n endlineLastCharIndex = charIndex + 2\n break mainLoop\n }\n } else if (char === '<' && nextChar !== '/') {\n contentSubTagStartAmount++\n }\n }\n\n content += char\n }\n\n charIndex++\n }\n\n if (isWithinContent) {\n if (content?.length > 0 && lineIndex > 0) {\n content += '\\n'\n }\n } else {\n propsString += '\\n'\n }\n\n if (regexpEndRegex && contentSubTagStartAmount < 0) {\n // If 0 and in same line where it got lowered to 0 then this is not the match we are looking for\n const match = line.match(regexpEndRegex)\n if (match?.index !== undefined) {\n endLineIndex = lineIndex\n endlineLastCharIndex = match.index + match[0].length - 1\n break\n }\n }\n\n if (lineIndex === linesCopy.length - 1 && !isEndOptional && !isSelfClosing) {\n throw new Error(\n 'End match not found for lines ' +\n lines.join('\\n') +\n '\\n\\n. Start match: ' +\n JSON.stringify(startMatch),\n )\n }\n }\n\n const afterEndLine = linesCopy[endLineIndex]!.trim().slice(endlineLastCharIndex)\n\n return {\n afterEndLine,\n beforeStartLine,\n content,\n endLineIndex: startLineIndex + endLineIndex,\n endlineLastCharIndex,\n propsString,\n }\n}\n"],"mappings":"AAAA,OAAO,SAASA,sCAAsC;EACpDC,aAAa;EACbC,KAAK;EACLC,cAAc;EACdC,cAAc;EACdC,UAAU;EACVC;AAAY,CAQb;EAcC,IAAIC,WAAA,GAAc;EAClB,IAAIC,OAAA,GAAU;EACd,MAAMC,SAAA,GAAYP,KAAA,CAAMQ,KAAK,CAACN,cAAA;EAE9B,IAAIO,eAAA,GAAkB,MAAM;EAAA;EAC5B,IAAIC,wBAAA,GAA2B;EAE/B,IAAIC,YAAA,GAAe;EACnB,IAAIC,SAAA,GAA2B;EAC/B,IAAIC,aAAA,GAAgB;EACpB,IAAIC,uBAAA,GAA0B;EAE9B,MAAMC,eAAA,GAAkBR,SAAS,CAAC,EAAE,CAAEC,KAAK,CAAC,GAAGL,UAAA,CAAWa,KAAK;EAC/D,IAAIC,oBAAA,GAAuB;EAE3B,IAAIC,YAAA,GAAehB,cAAA;EAEnBiB,QAAA,EAAU,KAAK,MAAM,CAACC,SAAA,EAAWC,QAAA,CAAS,IAAId,SAAA,CAAUe,OAAO,IAAI;IACjE,MAAMC,IAAA,GAAOnB,YAAA,GAAeiB,QAAA,CAASG,IAAI,KAAKH,QAAA;IAC9C,IAAII,8BAAA,GAAiC;IACrC,IAAIrB,YAAA,EAAc;MAChB,KAAK,IAAIsB,CAAA,GAAI,GAAGA,CAAA,GAAIL,QAAA,CAASM,MAAM,EAAED,CAAA,IAAK;QACxC,IAAIL,QAAQ,CAACK,CAAA,CAAE,KAAK,KAAK;UACvBD,8BAAA;QACF,OAAO;UACL;QACF;MACF;IACF;IAEA,IAAIG,SAAA,GAAY;IAEhB,IAAIR,SAAA,KAAc,GAAG;MACnBQ,SAAA,GAAY,CAACzB,UAAA,CAAWa,KAAK,IAAI,KAAKb,UAAU,CAAC,EAAE,CAACwB,MAAM,GAAGF,8BAAA,CAA+B;MAAA;IAC9F;IAEA,OAAOG,SAAA,GAAYL,IAAA,CAAKI,MAAM,EAAE;MAC9B,MAAME,IAAA,GAAON,IAAI,CAACK,SAAA,CAAU;MAC5B,MAAME,QAAA,GAAWP,IAAI,CAACK,SAAA,GAAY,EAAE;MAEpC,IAAI,CAACnB,eAAA,EAAiB;QACpB,IAAIoB,IAAA,KAAS,OAAO,CAACjB,SAAA,EAAW;UAC9BD,YAAA;QACF,OAAO,IAAIkB,IAAA,KAAS,OAAO,CAACjB,SAAA,EAAW;UACrCD,YAAA;QACF,OAAO,IAAI,CAACkB,IAAA,KAAS,OAAOA,IAAA,KAAS,GAAE,KAAM,CAACjB,SAAA,EAAW;UACvDA,SAAA,GAAYiB,IAAA;QACd,OAAO,IAAIA,IAAA,KAASjB,SAAA,EAAW;UAC7BA,SAAA,GAAY;QACd;QAEA,IAAIiB,IAAA,KAAS,OAAOC,QAAA,KAAa,OAAOnB,YAAA,KAAiB,KAAK,CAACC,SAAA,EAAW;UACxEC,aAAA,GAAgB;UAChBK,YAAA,GAAeE,SAAA;UACfH,oBAAA,GAAuBW,SAAA,GAAY;UAEnC,MAAMT,QAAA;QACR,OAAO,IAAIU,IAAA,KAAS,OAAOlB,YAAA,KAAiB,KAAK,CAACC,SAAA,EAAW;UAC3DH,eAAA,GAAkB;UAClBmB,SAAA;UACA;QACF;QAEAvB,WAAA,IAAewB,IAAA;MACjB,OAAO;QACL,IAAIA,IAAA,KAAS,KAAK;UAChBf,uBAAA;QACF;QAEA,IAAIA,uBAAA,GAA0B,MAAM,GAAG;UACrC,IAAIe,IAAA,KAAS,OAAOC,QAAA,KAAa,KAAK;YACpCpB,wBAAA;YAEA,IAAIA,wBAAA,GAA2B,GAAG;cAChC,IAAIJ,OAAO,CAACA,OAAA,CAAQqB,MAAM,GAAG,EAAE,KAAK,MAAM;gBACxCrB,OAAA,GAAUA,OAAA,CAAQE,KAAK,CAAC,GAAG,CAAC,GAAG;gBAAA;cACjC;cACAU,YAAA,GAAeE,SAAA;cACf;cACA,KAAK,IAAIM,CAAA,GAAIE,SAAA,EAAWF,CAAA,GAAIH,IAAA,CAAKI,MAAM,EAAED,CAAA,IAAK;gBAC5C,IAAIH,IAAI,CAACG,CAAA,CAAE,KAAK,KAAK;kBACnBT,oBAAA,GAAuBS,CAAA,GAAI;kBAE3B;gBACF;cACF;cACA,MAAMP,QAAA;YACR;UACF,OAAO,IAAIU,IAAA,KAAS,OAAOC,QAAA,KAAa,KAAK;YAC3CpB,wBAAA;YAEA,IAAIA,wBAAA,GAA2B,GAAG;cAChC,IAAIJ,OAAO,CAACA,OAAA,CAAQqB,MAAM,GAAG,EAAE,KAAK,MAAM;gBACxCrB,OAAA,GAAUA,OAAA,CAAQE,KAAK,CAAC,GAAG,CAAC,GAAG;gBAAA;cACjC;cACAU,YAAA,GAAeE,SAAA;cACfH,oBAAA,GAAuBW,SAAA,GAAY;cACnC,MAAMT,QAAA;YACR;UACF,OAAO,IAAIU,IAAA,KAAS,OAAOC,QAAA,KAAa,KAAK;YAC3CpB,wBAAA;UACF;QACF;QAEAJ,OAAA,IAAWuB,IAAA;MACb;MAEAD,SAAA;IACF;IAEA,IAAInB,eAAA,EAAiB;MACnB,IAAIH,OAAA,EAASqB,MAAA,GAAS,KAAKP,SAAA,GAAY,GAAG;QACxCd,OAAA,IAAW;MACb;IACF,OAAO;MACLD,WAAA,IAAe;IACjB;IAEA,IAAIJ,cAAA,IAAkBS,wBAAA,GAA2B,GAAG;MAClD;MACA,MAAMqB,KAAA,GAAQR,IAAA,CAAKQ,KAAK,CAAC9B,cAAA;MACzB,IAAI8B,KAAA,EAAOf,KAAA,KAAUgB,SAAA,EAAW;QAC9Bd,YAAA,GAAeE,SAAA;QACfH,oBAAA,GAAuBc,KAAA,CAAMf,KAAK,GAAGe,KAAK,CAAC,EAAE,CAACJ,MAAM,GAAG;QACvD;MACF;IACF;IAEA,IAAIP,SAAA,KAAcb,SAAA,CAAUoB,MAAM,GAAG,KAAK,CAAC5B,aAAA,IAAiB,CAACc,aAAA,EAAe;MAC1E,MAAM,IAAIoB,KAAA,CACR,mCACEjC,KAAA,CAAMkC,IAAI,CAAC,QACX,wBACAC,IAAA,CAAKC,SAAS,CAACjC,UAAA;IAErB;EACF;EAEA,MAAMkC,YAAA,GAAe9B,SAAS,CAACW,YAAA,CAAa,CAAEM,IAAI,GAAGhB,KAAK,CAACS,oBAAA;EAE3D,OAAO;IACLoB,YAAA;IACAtB,eAAA;IACAT,OAAA;IACAY,YAAA,EAAchB,cAAA,GAAiBgB,YAAA;IAC/BD,oBAAA;IACAZ;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import type { Block } from 'payload';
2
+ import type { NodeWithHooks } from '../../../typesServer.js';
3
+ import { type MultilineElementTransformer, type TextMatchTransformer, type Transformer } from '../../../../packages/@lexical/markdown/index.js';
4
+ export declare function createTagRegexes(tagName: string): {
5
+ regExpEnd: RegExp;
6
+ regExpStart: RegExp;
7
+ };
8
+ export declare const getBlockMarkdownTransformers: ({ blocks, inlineBlocks, }: {
9
+ blocks: Block[];
10
+ inlineBlocks: Block[];
11
+ }) => ((props: {
12
+ allNodes: Array<NodeWithHooks>;
13
+ allTransformers: Transformer[];
14
+ }) => MultilineElementTransformer | TextMatchTransformer)[];
15
+ //# sourceMappingURL=markdownTransformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdownTransformer.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/server/markdown/markdownTransformer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EACzB,KAAK,WAAW,EACjB,MAAM,iDAAiD,CAAA;AAaxD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM;;;EAiB/C;AACD,eAAO,MAAM,4BAA4B,8BAGtC;IACD,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,YAAY,EAAE,KAAK,EAAE,CAAA;CACtB,KAAG,CAAC,CAAC,KAAK,EAAE;IACX,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAC9B,eAAe,EAAE,WAAW,EAAE,CAAA;CAC/B,KAAK,2BAA2B,GAAG,oBAAoB,CAAC,EA+BxD,CAAA"}
@@ -1,12 +1,11 @@
1
- import { createHeadlessEditor } from '@lexical/headless';
2
1
  import { $parseSerializedNode } from 'lexical';
3
- import { getEnabledNodesFromServerNodes } from '../../../lexical/nodes/index.js';
4
- import { $convertFromMarkdownString, $convertToMarkdownString } from '../../../packages/@lexical/markdown/index.js';
5
- import { extractPropsFromJSXPropsString } from '../../../utilities/jsx/extractPropsFromJSXPropsString.js';
6
- import { propsToJSXString } from '../../../utilities/jsx/jsx.js';
2
+ import { extractPropsFromJSXPropsString } from '../../../../utilities/jsx/extractPropsFromJSXPropsString.js';
3
+ import { propsToJSXString } from '../../../../utilities/jsx/jsx.js';
4
+ import { $createServerBlockNode, $isServerBlockNode, ServerBlockNode } from '../nodes/BlocksNode.js';
5
+ import { $createServerInlineBlockNode, $isServerInlineBlockNode, ServerInlineBlockNode } from '../nodes/InlineBlocksNode.js';
6
+ import { getLexicalToMarkdown } from './getLexicalToMarkdown.js';
7
+ import { getMarkdownToLexical } from './getMarkdownToLexical.js';
7
8
  import { linesFromStartToContentAndPropsString } from './linesFromMatchToContentAndPropsString.js';
8
- import { $createServerBlockNode, $isServerBlockNode, ServerBlockNode } from './nodes/BlocksNode.js';
9
- import { $createServerInlineBlockNode, $isServerInlineBlockNode, ServerInlineBlockNode } from './nodes/InlineBlocksNode.js';
10
9
  export function createTagRegexes(tagName) {
11
10
  const escapedTagName = tagName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
12
11
  // Regex components
@@ -355,45 +354,4 @@ function getMarkdownTransformerForBlock(block, isInlineBlock) {
355
354
  }));
356
355
  return toReturn;
357
356
  }
358
- export function getMarkdownToLexical(allNodes, allTransformers) {
359
- const markdownToLexical = ({
360
- markdown
361
- }) => {
362
- const headlessEditor = createHeadlessEditor({
363
- nodes: getEnabledNodesFromServerNodes({
364
- nodes: allNodes
365
- })
366
- });
367
- headlessEditor.update(() => {
368
- $convertFromMarkdownString(markdown, allTransformers);
369
- }, {
370
- discrete: true
371
- });
372
- return headlessEditor.getEditorState().toJSON();
373
- };
374
- return markdownToLexical;
375
- }
376
- export function getLexicalToMarkdown(allNodes, allTransformers) {
377
- const lexicalToMarkdown = ({
378
- editorState
379
- }) => {
380
- const headlessEditor = createHeadlessEditor({
381
- nodes: getEnabledNodesFromServerNodes({
382
- nodes: allNodes
383
- })
384
- });
385
- try {
386
- headlessEditor.setEditorState(headlessEditor.parseEditorState(editorState)) // This should commit the editor state immediately
387
- ;
388
- } catch (e) {
389
- console.error('getLexicalToMarkdown: ERROR parsing editor state', e);
390
- }
391
- let markdown = '';
392
- headlessEditor.getEditorState().read(() => {
393
- markdown = $convertToMarkdownString(allTransformers);
394
- });
395
- return markdown;
396
- };
397
- return lexicalToMarkdown;
398
- }
399
357
  //# sourceMappingURL=markdownTransformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdownTransformer.js","names":["$parseSerializedNode","extractPropsFromJSXPropsString","propsToJSXString","$createServerBlockNode","$isServerBlockNode","ServerBlockNode","$createServerInlineBlockNode","$isServerInlineBlockNode","ServerInlineBlockNode","getLexicalToMarkdown","getMarkdownToLexical","linesFromStartToContentAndPropsString","createTagRegexes","tagName","escapedTagName","replace","openingTag","closingTag","optionalWhitespace","mandatoryClosingBracket","startPattern","endPattern","regExpEnd","RegExp","regExpStart","getBlockMarkdownTransformers","blocks","inlineBlocks","length","transformers","block","transformer","getMarkdownTransformerForBlock","concat","isInlineBlock","jsx","regex","slug","toReturn","push","allNodes","allTransformers","type","dependencies","export","node","getFields","blockType","toLowerCase","nodeFields","lexicalToMarkdown","exportResult","fields","hasProps","props","Object","keys","children","getEndIndex","match","endlineLastCharIndex","isEndOptional","lines","getTextContent","regexpEndRegex","startLineIndex","startMatch","trimChildren","importRegExp","customStartRegex","regExp","content","propsString","index","import","markdownToLexical","blockFields","closeMatch","htmlToLexical","openMatch","inlineBlockNode","sanitizedChildren","includes","child","split","sanitizedChild","doNotTrimChildren","handleImportAfterStartMatch","customEndRegex","undefined","rootNode","optional","afterEndLine","beforeStartLine","unsanitizedContent","endLineIndex","endsWith","slice","startsWith","prevNodes","nextNodes","markdown","root","firstPrevNode","append","lastChild","getChildren","linesInBetween","line","childrenString","join","trim"],"sources":["../../../../../src/features/blocks/server/markdown/markdownTransformer.ts"],"sourcesContent":["import type { ElementNode, SerializedLexicalNode } from 'lexical'\nimport type { Block } from 'payload'\n\nimport { $parseSerializedNode } from 'lexical'\n\nimport type { NodeWithHooks } from '../../../typesServer.js'\n\nimport {\n type MultilineElementTransformer,\n type TextMatchTransformer,\n type Transformer,\n} from '../../../../packages/@lexical/markdown/index.js'\nimport { extractPropsFromJSXPropsString } from '../../../../utilities/jsx/extractPropsFromJSXPropsString.js'\nimport { propsToJSXString } from '../../../../utilities/jsx/jsx.js'\nimport { $createServerBlockNode, $isServerBlockNode, ServerBlockNode } from '../nodes/BlocksNode.js'\nimport {\n $createServerInlineBlockNode,\n $isServerInlineBlockNode,\n ServerInlineBlockNode,\n} from '../nodes/InlineBlocksNode.js'\nimport { getLexicalToMarkdown } from './getLexicalToMarkdown.js'\nimport { getMarkdownToLexical } from './getMarkdownToLexical.js'\nimport { linesFromStartToContentAndPropsString } from './linesFromMatchToContentAndPropsString.js'\n\nexport function createTagRegexes(tagName: string) {\n const escapedTagName = tagName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\n // Regex components\n const openingTag = `<${escapedTagName}`\n const closingTag = `</${escapedTagName}`\n const optionalWhitespace = `\\\\s*`\n const mandatoryClosingBracket = `>`\n\n // Assembled regex patterns\n const startPattern = `${openingTag}(?=\\\\s|>|$)` // Only match the tag name\n const endPattern = `${closingTag}${optionalWhitespace}${mandatoryClosingBracket}`\n\n return {\n regExpEnd: new RegExp(endPattern, 'i'),\n regExpStart: new RegExp(startPattern, 'i'),\n }\n}\nexport const getBlockMarkdownTransformers = ({\n blocks,\n inlineBlocks,\n}: {\n blocks: Block[]\n inlineBlocks: Block[]\n}): ((props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n}) => MultilineElementTransformer | TextMatchTransformer)[] => {\n if (!blocks?.length && !inlineBlocks?.length) {\n return []\n }\n\n let transformers: ((props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer)[] = []\n\n if (blocks?.length) {\n for (const block of blocks) {\n const transformer = getMarkdownTransformerForBlock(block, false)\n\n if (transformer) {\n transformers = transformers.concat(transformer)\n }\n }\n }\n\n if (inlineBlocks?.length) {\n for (const block of inlineBlocks) {\n const transformer = getMarkdownTransformerForBlock(block, true)\n\n if (transformer) {\n transformers = transformers.concat(transformer)\n }\n }\n }\n\n return transformers\n}\n\nfunction getMarkdownTransformerForBlock(\n block: Block,\n isInlineBlock: boolean,\n): Array<\n (props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer\n> | null {\n if (!block.jsx) {\n return null\n }\n const regex = createTagRegexes(block.slug)\n const toReturn: Array<\n (props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer\n > = []\n\n if (isInlineBlock) {\n toReturn.push(({ allNodes, allTransformers }) => ({\n type: 'text-match',\n dependencies: [ServerInlineBlockNode],\n export: (node) => {\n if (!$isServerInlineBlockNode(node)) {\n return null\n }\n\n if (node.getFields()?.blockType?.toLowerCase() !== block.slug.toLowerCase()) {\n return null\n }\n\n const nodeFields = node.getFields()\n const lexicalToMarkdown = getLexicalToMarkdown(allNodes, allTransformers)\n\n const exportResult = block.jsx!.export({\n fields: nodeFields,\n lexicalToMarkdown,\n })\n if (exportResult === false) {\n return null\n }\n if (typeof exportResult === 'string') {\n return exportResult\n }\n\n const hasProps = exportResult.props && Object.keys(exportResult.props)?.length > 0\n const props = exportResult.props ?? {}\n\n if (exportResult?.children?.length) {\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}>${exportResult.children}</${nodeFields.blockType}>`\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}/>`\n },\n getEndIndex: (node, match) => {\n const { endlineLastCharIndex } = linesFromStartToContentAndPropsString({\n isEndOptional: false,\n lines: [node.getTextContent()],\n regexpEndRegex: regex.regExpEnd,\n startLineIndex: 0,\n startMatch: match,\n trimChildren: false,\n })\n\n return endlineLastCharIndex\n },\n importRegExp: block.jsx?.customStartRegex ?? regex.regExpStart,\n regExp: /___ignoreignoreignore___/g,\n replace(node, match) {\n const { content, propsString } = linesFromStartToContentAndPropsString({\n isEndOptional: false,\n lines: [node.getTextContent()],\n regexpEndRegex: regex.regExpEnd,\n startLineIndex: 0,\n startMatch: {\n ...match,\n index: 0,\n },\n trimChildren: false,\n })\n\n if (!block?.jsx?.import) {\n // No multiline transformer handled this line successfully\n return\n }\n\n const markdownToLexical = getMarkdownToLexical(allNodes, allTransformers)\n\n const blockFields = block.jsx.import({\n children: content,\n closeMatch: null,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: match,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return\n }\n\n const inlineBlockNode = $createServerInlineBlockNode({\n blockType: block.slug,\n ...(blockFields as any),\n })\n\n node.replace(inlineBlockNode)\n },\n }))\n\n return toReturn\n }\n\n toReturn.push(({ allNodes, allTransformers }) => ({\n dependencies: [ServerBlockNode],\n export: (node) => {\n if (!$isServerBlockNode(node)) {\n return null\n }\n\n if (node.getFields()?.blockType?.toLowerCase() !== block.slug.toLowerCase()) {\n return null\n }\n\n const nodeFields = node.getFields()\n const lexicalToMarkdown = getLexicalToMarkdown(allNodes, allTransformers)\n\n const exportResult = block.jsx!.export({\n fields: nodeFields,\n lexicalToMarkdown,\n })\n if (exportResult === false) {\n return null\n }\n if (typeof exportResult === 'string') {\n return exportResult\n }\n\n const hasProps = exportResult.props && Object.keys(exportResult.props)?.length > 0\n const props = exportResult.props ?? {}\n\n if (exportResult?.children?.length) {\n const children = exportResult.children\n let sanitizedChildren = ''\n\n // Ensure it has a leftpad of at least 2 spaces. The data is saved without those spaces, so we can just blindly add it to every child\n if (children.includes('\\n')) {\n for (const child of children.split('\\n')) {\n let sanitizedChild = ''\n if (!block?.jsx?.doNotTrimChildren && child !== '') {\n sanitizedChild = ' '\n }\n sanitizedChild += child + '\\n'\n\n sanitizedChildren += sanitizedChild\n }\n } else {\n sanitizedChildren = (block?.jsx?.doNotTrimChildren ? '' : ' ') + children + '\\n'\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}>\\n${sanitizedChildren}</${nodeFields.blockType}>`\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}/>`\n },\n handleImportAfterStartMatch: block.jsx?.customEndRegex\n ? undefined\n : ({ lines, rootNode, startLineIndex, startMatch, transformer }) => {\n const regexpEndRegex: RegExp | undefined =\n typeof transformer.regExpEnd === 'object' && 'regExp' in transformer.regExpEnd\n ? transformer.regExpEnd.regExp\n : transformer.regExpEnd\n\n const isEndOptional =\n transformer.regExpEnd &&\n typeof transformer.regExpEnd === 'object' &&\n 'optional' in transformer.regExpEnd\n ? transformer.regExpEnd.optional\n : !transformer.regExpEnd\n\n const {\n afterEndLine,\n beforeStartLine,\n content: unsanitizedContent,\n endLineIndex,\n propsString,\n } = linesFromStartToContentAndPropsString({\n isEndOptional,\n lines,\n regexpEndRegex,\n startLineIndex,\n startMatch,\n trimChildren: false,\n })\n\n let content = ''\n\n if (block?.jsx?.doNotTrimChildren) {\n content = unsanitizedContent.endsWith('\\n')\n ? unsanitizedContent.slice(0, -1)\n : unsanitizedContent\n } else {\n // Ensure it has a leftpad of at least 2 spaces. The data is saved without those spaces, so we can just blindly add it to every child\n if (unsanitizedContent.includes('\\n')) {\n const split = unsanitizedContent.split('\\n')\n let index = 0\n for (const child of split) {\n index++\n\n if (child.startsWith(' ')) {\n content += child.slice(2)\n } else {\n // If one child is misaligned, skip aligning completely, unless it's just empty\n if (child === '') {\n content += child\n } else {\n content = unsanitizedContent.endsWith('\\n')\n ? unsanitizedContent.slice(0, -1)\n : unsanitizedContent\n break\n }\n }\n\n content += index === split.length ? '' : '\\n'\n }\n } else {\n content =\n (!unsanitizedContent.startsWith(' ')\n ? unsanitizedContent\n : unsanitizedContent.slice(2)) + '\\n'\n }\n }\n\n if (!block?.jsx?.import) {\n // No multiline transformer handled this line successfully\n return [false, startLineIndex]\n }\n\n const markdownToLexical = getMarkdownToLexical(allNodes, allTransformers)\n\n const blockFields = block.jsx.import({\n children: content,\n closeMatch: null,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: startMatch,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return [false, startLineIndex]\n }\n\n const node = $createServerBlockNode({\n blockType: block.slug,\n ...blockFields,\n } as any)\n\n if (node) {\n // Now handle beforeStartLine and afterEndLine. If those are not empty, we need to add them as text nodes before and after the block node.\n // However, those themselves can contain other markdown matches, so we need to parse them as well.\n // Example where this is needed: \"Hello <InlineCode>inline code</InlineCode> test.\"\n let prevNodes: null | SerializedLexicalNode[] = null\n let nextNodes: null | SerializedLexicalNode[] = null\n // TODO: Might not need this prevNodes and nextNodes handling if inline nodes are handled by textmatch transformers\n\n if (beforeStartLine?.length) {\n prevNodes = markdownToLexical({ markdown: beforeStartLine })?.root?.children ?? []\n\n const firstPrevNode = prevNodes?.[0]\n if (firstPrevNode) {\n rootNode.append($parseSerializedNode(firstPrevNode))\n }\n }\n\n rootNode.append(node)\n\n if (afterEndLine?.length) {\n nextNodes = markdownToLexical({ markdown: afterEndLine })?.root?.children\n const lastChild = rootNode.getChildren()[rootNode.getChildren().length - 1]\n\n const children = ($parseSerializedNode(nextNodes[0]!) as ElementNode)?.getChildren()\n if (children?.length) {\n for (const child of children) {\n ;(lastChild as ElementNode).append(child)\n }\n }\n }\n }\n\n return [true, endLineIndex]\n },\n regExpEnd: block.jsx?.customEndRegex ?? regex.regExpEnd,\n regExpStart: block.jsx?.customStartRegex ?? regex.regExpStart,\n // This replace is ONLY run for ``` code blocks (so any blocks with custom start and end regexes). For others, we use the special JSX handling above:\n type: 'multiline-element',\n replace: (rootNode, children, openMatch, closeMatch, linesInBetween) => {\n if (block?.jsx?.import) {\n if (!linesInBetween) {\n // convert children to linesInBetween\n let line = ''\n if (children) {\n for (const child of children) {\n line += child.getTextContent()\n }\n }\n\n linesInBetween = [line]\n }\n\n let childrenString = ''\n if (block?.jsx?.doNotTrimChildren) {\n childrenString = linesInBetween.join('\\n')\n } else {\n childrenString = linesInBetween.join('\\n').trim()\n }\n\n const propsString = openMatch[1]?.trim()\n\n const markdownToLexical = getMarkdownToLexical(allNodes, allTransformers)\n\n const blockFields = block.jsx.import({\n children: childrenString,\n closeMatch: closeMatch as RegExpMatchArray,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: openMatch as RegExpMatchArray,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return false\n }\n\n const node = $createServerBlockNode({\n blockType: block.slug,\n ...blockFields,\n } as any)\n\n if (node) {\n rootNode.append(node)\n }\n\n return\n }\n return false // Run next transformer\n },\n }))\n\n return toReturn\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/heading/client/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AA2B7D,eAAO,MAAM,oBAAoB,wGA6E/B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/heading/client/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AA2B7D,eAAO,MAAM,oBAAoB,wGAmF/B,CAAA"}
@@ -1,8 +1,11 @@
1
1
  'use client';
2
2
 
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
3
5
  import { $createHeadingNode, $isHeadingNode, HeadingNode } from '@lexical/rich-text';
4
6
  import { $setBlocksType } from '@lexical/selection';
5
7
  import { $getSelection, $isRangeSelection } from 'lexical';
8
+ import { useEffect } from 'react';
6
9
  import { H1Icon } from '../../../lexical/ui/icons/H1/index.js';
7
10
  import { H2Icon } from '../../../lexical/ui/icons/H2/index.js';
8
11
  import { H3Icon } from '../../../lexical/ui/icons/H3/index.js';
@@ -73,6 +76,10 @@ export const HeadingFeatureClient = createClientFeature(({
73
76
  return {
74
77
  markdownTransformers: [MarkdownTransformer(enabledHeadingSizes)],
75
78
  nodes: [HeadingNode],
79
+ plugins: [{
80
+ Component: HeadingPlugin,
81
+ position: 'normal'
82
+ }],
76
83
  sanitizedClientFeatureProps: props,
77
84
  slashMenu: {
78
85
  groups: enabledHeadingSizes?.length ? [slashMenuBasicGroupWithItems(enabledHeadingSizes.map(headingSize => {
@@ -105,4 +112,57 @@ export const HeadingFeatureClient = createClientFeature(({
105
112
  }
106
113
  };
107
114
  });
115
+ const HeadingPlugin = t0 => {
116
+ const $ = _c(9);
117
+ const {
118
+ clientProps
119
+ } = t0;
120
+ const {
121
+ enabledHeadingSizes: t1
122
+ } = clientProps;
123
+ let t2;
124
+ if ($[0] !== t1) {
125
+ t2 = t1 === undefined ? ["h1", "h2", "h3", "h4", "h5", "h6"] : t1;
126
+ $[0] = t1;
127
+ $[1] = t2;
128
+ } else {
129
+ t2 = $[1];
130
+ }
131
+ const enabledHeadingSizes = t2;
132
+ let t3;
133
+ if ($[2] !== enabledHeadingSizes) {
134
+ t3 = enabledHeadingSizes.at(-1);
135
+ $[2] = enabledHeadingSizes;
136
+ $[3] = t3;
137
+ } else {
138
+ t3 = $[3];
139
+ }
140
+ const lowestAllowed = t3;
141
+ const [editor] = useLexicalComposerContext();
142
+ let t4;
143
+ let t5;
144
+ if ($[4] !== editor || $[5] !== enabledHeadingSizes || $[6] !== lowestAllowed) {
145
+ t4 = () => {
146
+ if (!lowestAllowed || enabledHeadingSizes.length === 6) {
147
+ return;
148
+ }
149
+ return editor.registerNodeTransform(HeadingNode, node => {
150
+ if (!enabledHeadingSizes.includes(node.getTag())) {
151
+ node.setTag(lowestAllowed);
152
+ }
153
+ });
154
+ };
155
+ t5 = [editor, enabledHeadingSizes, lowestAllowed];
156
+ $[4] = editor;
157
+ $[5] = enabledHeadingSizes;
158
+ $[6] = lowestAllowed;
159
+ $[7] = t4;
160
+ $[8] = t5;
161
+ } else {
162
+ t4 = $[7];
163
+ t5 = $[8];
164
+ }
165
+ useEffect(t4, t5);
166
+ return null;
167
+ };
108
168
  //# sourceMappingURL=index.js.map