@payloadcms/richtext-lexical 4.0.0-internal.2fddfc0 → 4.0.0-internal.3aa3d85

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 (302) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/exports/client/Field-XH5C4HFU.js +2 -0
  3. package/dist/exports/client/Field-XH5C4HFU.js.map +7 -0
  4. package/dist/exports/client/bundled.css +1 -1
  5. package/dist/exports/client/chunk-X3D4LZS7.js +2 -0
  6. package/dist/exports/client/chunk-X3D4LZS7.js.map +7 -0
  7. package/dist/exports/client/index.d.ts +0 -2
  8. package/dist/exports/client/index.d.ts.map +1 -1
  9. package/dist/exports/client/index.js +24 -25
  10. package/dist/exports/client/index.js.map +4 -4
  11. package/dist/features/blockquote/client/index.js +2 -2
  12. package/dist/features/blockquote/client/index.js.map +1 -1
  13. package/dist/features/blockquote/server/index.js +2 -2
  14. package/dist/features/blockquote/server/index.js.map +1 -1
  15. package/dist/features/blocks/client/component/index.css +2 -2
  16. package/dist/features/blocks/client/componentInline/index.css +8 -8
  17. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts +1 -1
  18. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts.map +1 -1
  19. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js +1 -1
  20. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js.map +1 -1
  21. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts +1 -1
  22. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts.map +1 -1
  23. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js +5 -2
  24. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js.map +1 -1
  25. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts +1 -2
  26. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -1
  27. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
  28. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.css +1 -1
  29. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.css +2 -4
  30. package/dist/features/blocks/premade/CodeBlock/Component/index.css +5 -5
  31. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts +1 -1
  32. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -1
  33. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
  34. package/dist/features/blocks/server/schema.d.ts.map +1 -1
  35. package/dist/features/blocks/server/schema.js +3 -2
  36. package/dist/features/blocks/server/schema.js.map +1 -1
  37. package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -1
  38. package/dist/features/converters/lexicalToMarkdown/index.js +1 -1
  39. package/dist/features/converters/lexicalToMarkdown/index.js.map +1 -1
  40. package/dist/features/converters/markdownToLexical/index.d.ts.map +1 -1
  41. package/dist/features/converters/markdownToLexical/index.js +5 -2
  42. package/dist/features/converters/markdownToLexical/index.js.map +1 -1
  43. package/dist/features/debug/jsxConverter/client/plugin/style.css +2 -2
  44. package/dist/features/experimental_table/client/index.js +2 -2
  45. package/dist/features/experimental_table/client/index.js.map +1 -1
  46. package/dist/features/experimental_table/markdownTransformer.d.ts +2 -2
  47. package/dist/features/experimental_table/markdownTransformer.d.ts.map +1 -1
  48. package/dist/features/experimental_table/markdownTransformer.js +6 -3
  49. package/dist/features/experimental_table/markdownTransformer.js.map +1 -1
  50. package/dist/features/experimental_table/server/index.js +2 -2
  51. package/dist/features/experimental_table/server/index.js.map +1 -1
  52. package/dist/features/format/bold/feature.client.js +1 -1
  53. package/dist/features/format/bold/feature.client.js.map +1 -1
  54. package/dist/features/format/bold/feature.server.d.ts.map +1 -1
  55. package/dist/features/format/bold/feature.server.js +1 -1
  56. package/dist/features/format/bold/feature.server.js.map +1 -1
  57. package/dist/features/format/inlineCode/feature.client.js +1 -1
  58. package/dist/features/format/inlineCode/feature.client.js.map +1 -1
  59. package/dist/features/format/inlineCode/feature.server.d.ts.map +1 -1
  60. package/dist/features/format/inlineCode/feature.server.js +1 -1
  61. package/dist/features/format/inlineCode/feature.server.js.map +1 -1
  62. package/dist/features/format/italic/feature.client.js +1 -1
  63. package/dist/features/format/italic/feature.client.js.map +1 -1
  64. package/dist/features/format/italic/feature.server.d.ts.map +1 -1
  65. package/dist/features/format/italic/feature.server.js +1 -1
  66. package/dist/features/format/italic/feature.server.js.map +1 -1
  67. package/dist/features/format/strikethrough/feature.client.js +1 -1
  68. package/dist/features/format/strikethrough/feature.client.js.map +1 -1
  69. package/dist/features/format/strikethrough/feature.server.d.ts.map +1 -1
  70. package/dist/features/format/strikethrough/feature.server.js +1 -1
  71. package/dist/features/format/strikethrough/feature.server.js.map +1 -1
  72. package/dist/features/heading/client/index.js +2 -2
  73. package/dist/features/heading/client/index.js.map +1 -1
  74. package/dist/features/heading/markdownTransformer.d.ts +2 -2
  75. package/dist/features/heading/markdownTransformer.d.ts.map +1 -1
  76. package/dist/features/heading/markdownTransformer.js +6 -19
  77. package/dist/features/heading/markdownTransformer.js.map +1 -1
  78. package/dist/features/heading/server/index.js +2 -2
  79. package/dist/features/heading/server/index.js.map +1 -1
  80. package/dist/features/horizontalRule/client/index.js +2 -2
  81. package/dist/features/horizontalRule/client/index.js.map +1 -1
  82. package/dist/features/horizontalRule/client/markdownTransformer.d.ts +2 -2
  83. package/dist/features/horizontalRule/client/markdownTransformer.d.ts.map +1 -1
  84. package/dist/features/horizontalRule/client/markdownTransformer.js +1 -1
  85. package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -1
  86. package/dist/features/horizontalRule/client/plugin/index.css +2 -2
  87. package/dist/features/horizontalRule/server/index.js +2 -2
  88. package/dist/features/horizontalRule/server/index.js.map +1 -1
  89. package/dist/features/horizontalRule/server/markdownTransformer.d.ts +2 -2
  90. package/dist/features/horizontalRule/server/markdownTransformer.d.ts.map +1 -1
  91. package/dist/features/horizontalRule/server/markdownTransformer.js +1 -1
  92. package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -1
  93. package/dist/features/link/client/index.js +2 -2
  94. package/dist/features/link/client/index.js.map +1 -1
  95. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +3 -3
  96. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  97. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +7 -11
  98. package/dist/features/link/markdownTransformer.d.ts +4 -4
  99. package/dist/features/link/markdownTransformer.d.ts.map +1 -1
  100. package/dist/features/link/markdownTransformer.js +2 -2
  101. package/dist/features/link/markdownTransformer.js.map +1 -1
  102. package/dist/features/link/markdownTransformer.spec.js +10 -10
  103. package/dist/features/link/markdownTransformer.spec.js.map +1 -1
  104. package/dist/features/link/server/baseFields.js.map +1 -1
  105. package/dist/features/link/server/index.js +2 -2
  106. package/dist/features/link/server/index.js.map +1 -1
  107. package/dist/features/link/server/schema.d.ts.map +1 -1
  108. package/dist/features/link/server/schema.js +4 -2
  109. package/dist/features/link/server/schema.js.map +1 -1
  110. package/dist/features/lists/checklist/client/index.js +1 -1
  111. package/dist/features/lists/checklist/client/index.js.map +1 -1
  112. package/dist/features/lists/checklist/server/index.js +1 -1
  113. package/dist/features/lists/checklist/server/index.js.map +1 -1
  114. package/dist/features/lists/orderedList/client/index.js +1 -1
  115. package/dist/features/lists/orderedList/client/index.js.map +1 -1
  116. package/dist/features/lists/orderedList/server/index.js +1 -1
  117. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  118. package/dist/features/lists/unorderedList/client/index.js +1 -1
  119. package/dist/features/lists/unorderedList/client/index.js.map +1 -1
  120. package/dist/features/lists/unorderedList/server/index.js +1 -1
  121. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  122. package/dist/features/relationship/server/schema.d.ts +3 -3
  123. package/dist/features/relationship/server/schema.d.ts.map +1 -1
  124. package/dist/features/relationship/server/schema.js +22 -5
  125. package/dist/features/relationship/server/schema.js.map +1 -1
  126. package/dist/features/textState/feature.client.js +1 -1
  127. package/dist/features/textState/feature.client.js.map +1 -1
  128. package/dist/features/toolbars/fixed/client/Toolbar/index.css +2 -2
  129. package/dist/features/toolbars/inline/client/Toolbar/index.css +2 -13
  130. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +8 -12
  131. package/dist/features/toolbars/shared/useToolbarStates.d.ts.map +1 -1
  132. package/dist/features/toolbars/shared/useToolbarStates.js +3 -1
  133. package/dist/features/toolbars/shared/useToolbarStates.js.map +1 -1
  134. package/dist/features/typesClient.d.ts +1 -1
  135. package/dist/features/typesClient.d.ts.map +1 -1
  136. package/dist/features/typesClient.js.map +1 -1
  137. package/dist/features/typesServer.d.ts +2 -2
  138. package/dist/features/typesServer.d.ts.map +1 -1
  139. package/dist/features/typesServer.js.map +1 -1
  140. package/dist/features/upload/client/component/index.css +9 -9
  141. package/dist/features/upload/client/plugin/index.js +5 -5
  142. package/dist/features/upload/client/plugin/index.js.map +1 -1
  143. package/dist/features/upload/server/index.js +2 -2
  144. package/dist/features/upload/server/index.js.map +1 -1
  145. package/dist/features/upload/server/markdownTransformer.d.ts +2 -2
  146. package/dist/features/upload/server/markdownTransformer.d.ts.map +1 -1
  147. package/dist/features/upload/server/markdownTransformer.js +1 -1
  148. package/dist/features/upload/server/markdownTransformer.js.map +1 -1
  149. package/dist/features/upload/server/schema.d.ts +4 -4
  150. package/dist/features/upload/server/schema.d.ts.map +1 -1
  151. package/dist/features/upload/server/schema.js +26 -6
  152. package/dist/features/upload/server/schema.js.map +1 -1
  153. package/dist/field/Diff/converters/unknown/index.css +1 -1
  154. package/dist/field/Field.js +1 -1
  155. package/dist/field/Field.js.map +1 -1
  156. package/dist/field/ViewSelector.css +1 -1
  157. package/dist/field/bundled.css +1 -1
  158. package/dist/field/index.css +11 -11
  159. package/dist/index.d.ts +2 -2
  160. package/dist/index.d.ts.map +1 -1
  161. package/dist/index.js +7 -50
  162. package/dist/index.js.map +1 -1
  163. package/dist/lexical/LexicalEditor.css +2 -2
  164. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  165. package/dist/lexical/LexicalEditor.js +2 -36
  166. package/dist/lexical/LexicalEditor.js.map +1 -1
  167. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  168. package/dist/lexical/LexicalProvider.js +7 -22
  169. package/dist/lexical/LexicalProvider.js.map +1 -1
  170. package/dist/lexical/plugins/DecoratorPlugin/index.css +1 -1
  171. package/dist/lexical/plugins/MarkdownShortcut/index.d.ts.map +1 -1
  172. package/dist/lexical/plugins/MarkdownShortcut/index.js +1 -1
  173. package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
  174. package/dist/lexical/plugins/SlashMenu/index.css +1 -5
  175. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.css +1 -1
  176. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.css +3 -3
  177. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +1 -1
  178. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  179. package/dist/lexical/theme/EditorTheme.css +18 -19
  180. package/dist/lexical/ui/ContentEditable.css +5 -5
  181. package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts +17 -0
  182. package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts.map +1 -0
  183. package/dist/lexical/utils/markdown/convertFromMarkdownString.js +27 -0
  184. package/dist/lexical/utils/markdown/convertFromMarkdownString.js.map +1 -0
  185. package/dist/lexical/utils/markdown/convertFromMarkdownString.spec.js +88 -0
  186. package/dist/lexical/utils/markdown/convertFromMarkdownString.spec.js.map +1 -0
  187. package/dist/lexical/utils/markdown/createBlockNode.d.ts +1 -1
  188. package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
  189. package/dist/lexical/utils/markdown/createBlockNode.js.map +1 -1
  190. package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts +25 -0
  191. package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts.map +1 -0
  192. package/dist/lexical/utils/markdown/normalizeMarkdown.js +91 -0
  193. package/dist/lexical/utils/markdown/normalizeMarkdown.js.map +1 -0
  194. package/dist/lexical-proxy/@lexical-markdown.d.ts +1 -1
  195. package/dist/lexical-proxy/@lexical-markdown.d.ts.map +1 -1
  196. package/dist/lexical-proxy/@lexical-markdown.js +1 -1
  197. package/dist/lexical-proxy/@lexical-markdown.js.map +1 -1
  198. package/dist/types/schema.d.ts.map +1 -1
  199. package/dist/types/schema.js +12 -5
  200. package/dist/types/schema.js.map +1 -1
  201. package/dist/utilities/applyBaseFilterToFields.d.ts.map +1 -1
  202. package/dist/utilities/applyBaseFilterToFields.js.map +1 -1
  203. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  204. package/dist/utilities/generateImportMap.js +3 -7
  205. package/dist/utilities/generateImportMap.js.map +1 -1
  206. package/package.json +22 -27
  207. package/dist/@types/assets.d.js +0 -2
  208. package/dist/@types/assets.d.js.map +0 -1
  209. package/dist/exports/client/Field-VW7ZGT6K.js +0 -2
  210. package/dist/exports/client/Field-VW7ZGT6K.js.map +0 -7
  211. package/dist/exports/client/chunk-4EIYXZ6H.js +0 -12
  212. package/dist/exports/client/chunk-4EIYXZ6H.js.map +0 -7
  213. package/dist/exports/server/rsc.browser.d.ts +0 -11
  214. package/dist/exports/server/rsc.browser.d.ts.map +0 -1
  215. package/dist/exports/server/rsc.browser.js +0 -10
  216. package/dist/exports/server/rsc.browser.js.map +0 -1
  217. package/dist/features/blockquote/markdownTransformer.d.ts +0 -3
  218. package/dist/features/blockquote/markdownTransformer.d.ts.map +0 -1
  219. package/dist/features/blockquote/markdownTransformer.js +0 -33
  220. package/dist/features/blockquote/markdownTransformer.js.map +0 -1
  221. package/dist/features/format/bold/markdownTransformers.d.ts +0 -6
  222. package/dist/features/format/bold/markdownTransformers.d.ts.map +0 -1
  223. package/dist/features/format/bold/markdownTransformers.js +0 -23
  224. package/dist/features/format/bold/markdownTransformers.js.map +0 -1
  225. package/dist/features/format/inlineCode/markdownTransformers.d.ts +0 -3
  226. package/dist/features/format/inlineCode/markdownTransformers.d.ts.map +0 -1
  227. package/dist/features/format/inlineCode/markdownTransformers.js +0 -6
  228. package/dist/features/format/inlineCode/markdownTransformers.js.map +0 -1
  229. package/dist/features/format/italic/markdownTransformers.d.ts +0 -4
  230. package/dist/features/format/italic/markdownTransformers.d.ts.map +0 -1
  231. package/dist/features/format/italic/markdownTransformers.js +0 -12
  232. package/dist/features/format/italic/markdownTransformers.js.map +0 -1
  233. package/dist/features/format/strikethrough/markdownTransformers.d.ts +0 -3
  234. package/dist/features/format/strikethrough/markdownTransformers.d.ts.map +0 -1
  235. package/dist/features/format/strikethrough/markdownTransformers.js +0 -6
  236. package/dist/features/format/strikethrough/markdownTransformers.js.map +0 -1
  237. package/dist/features/lists/checklist/markdownTransformers.d.ts +0 -3
  238. package/dist/features/lists/checklist/markdownTransformers.d.ts.map +0 -1
  239. package/dist/features/lists/checklist/markdownTransformers.js +0 -12
  240. package/dist/features/lists/checklist/markdownTransformers.js.map +0 -1
  241. package/dist/features/lists/orderedList/markdownTransformer.d.ts +0 -3
  242. package/dist/features/lists/orderedList/markdownTransformer.d.ts.map +0 -1
  243. package/dist/features/lists/orderedList/markdownTransformer.js +0 -12
  244. package/dist/features/lists/orderedList/markdownTransformer.js.map +0 -1
  245. package/dist/features/lists/shared/markdown.d.ts +0 -6
  246. package/dist/features/lists/shared/markdown.d.ts.map +0 -1
  247. package/dist/features/lists/shared/markdown.js +0 -57
  248. package/dist/features/lists/shared/markdown.js.map +0 -1
  249. package/dist/features/lists/unorderedList/markdownTransformer.d.ts +0 -3
  250. package/dist/features/lists/unorderedList/markdownTransformer.d.ts.map +0 -1
  251. package/dist/features/lists/unorderedList/markdownTransformer.js +0 -12
  252. package/dist/features/lists/unorderedList/markdownTransformer.js.map +0 -1
  253. package/dist/field/clientEntry.d.ts +0 -29
  254. package/dist/field/clientEntry.d.ts.map +0 -1
  255. package/dist/field/clientEntry.js +0 -86
  256. package/dist/field/clientEntry.js.map +0 -1
  257. package/dist/lexical/utils/guard.d.ts +0 -5
  258. package/dist/lexical/utils/guard.d.ts.map +0 -1
  259. package/dist/lexical/utils/guard.js +0 -9
  260. package/dist/lexical/utils/guard.js.map +0 -1
  261. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts +0 -2
  262. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts.map +0 -1
  263. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js +0 -2
  264. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js.map +0 -1
  265. package/dist/packages/@lexical/markdown/LexicalMarkdownHardLineBreak.spec.js +0 -160
  266. package/dist/packages/@lexical/markdown/LexicalMarkdownHardLineBreak.spec.js.map +0 -1
  267. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts +0 -14
  268. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts.map +0 -1
  269. package/dist/packages/@lexical/markdown/MarkdownExport.js +0 -220
  270. package/dist/packages/@lexical/markdown/MarkdownExport.js.map +0 -1
  271. package/dist/packages/@lexical/markdown/MarkdownImport.d.ts +0 -19
  272. package/dist/packages/@lexical/markdown/MarkdownImport.d.ts.map +0 -1
  273. package/dist/packages/@lexical/markdown/MarkdownImport.js +0 -199
  274. package/dist/packages/@lexical/markdown/MarkdownImport.js.map +0 -1
  275. package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts +0 -11
  276. package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts.map +0 -1
  277. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +0 -304
  278. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +0 -1
  279. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts +0 -173
  280. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts.map +0 -1
  281. package/dist/packages/@lexical/markdown/MarkdownTransformers.js +0 -352
  282. package/dist/packages/@lexical/markdown/MarkdownTransformers.js.map +0 -1
  283. package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts +0 -22
  284. package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts.map +0 -1
  285. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +0 -91
  286. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +0 -1
  287. package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts +0 -21
  288. package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts.map +0 -1
  289. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +0 -54
  290. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +0 -1
  291. package/dist/packages/@lexical/markdown/importTextTransformers.d.ts +0 -18
  292. package/dist/packages/@lexical/markdown/importTextTransformers.d.ts.map +0 -1
  293. package/dist/packages/@lexical/markdown/importTextTransformers.js +0 -54
  294. package/dist/packages/@lexical/markdown/importTextTransformers.js.map +0 -1
  295. package/dist/packages/@lexical/markdown/index.d.ts +0 -29
  296. package/dist/packages/@lexical/markdown/index.d.ts.map +0 -1
  297. package/dist/packages/@lexical/markdown/index.js +0 -39
  298. package/dist/packages/@lexical/markdown/index.js.map +0 -1
  299. package/dist/packages/@lexical/markdown/utils.d.ts +0 -34
  300. package/dist/packages/@lexical/markdown/utils.d.ts.map +0 -1
  301. package/dist/packages/@lexical/markdown/utils.js +0 -267
  302. package/dist/packages/@lexical/markdown/utils.js.map +0 -1
@@ -1,267 +0,0 @@
1
- /* eslint-disable regexp/no-obscure-range */ /* eslint-disable regexp/no-empty-group */ /* eslint-disable regexp/no-empty-capturing-group */ /* eslint-disable regexp/optimal-quantifier-concatenation */ /* eslint-disable regexp/no-misleading-capturing-group */ /* eslint-disable regexp/no-contradiction-with-assertion */ /* eslint-disable regexp/no-super-linear-backtracking */ /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- */import { $isListItemNode, $isListNode } from '@lexical/list';
8
- import { $isHeadingNode, $isQuoteNode } from '@lexical/rich-text';
9
- import { $isParagraphNode, $isTextNode } from 'lexical';
10
- const autoFormatBase = {
11
- markdownFormatKind: null,
12
- regEx: /(?:)/,
13
- regExForAutoFormatting: /(?:)/,
14
- requiresParagraphStart: false
15
- };
16
- const paragraphStartBase = {
17
- ...autoFormatBase,
18
- requiresParagraphStart: true
19
- };
20
- const markdownHeader1 = {
21
- ...paragraphStartBase,
22
- export: createHeadingExport(1),
23
- markdownFormatKind: 'paragraphH1',
24
- regEx: /^# /,
25
- regExForAutoFormatting: /^# /
26
- };
27
- const markdownHeader2 = {
28
- ...paragraphStartBase,
29
- export: createHeadingExport(2),
30
- markdownFormatKind: 'paragraphH2',
31
- regEx: /^## /,
32
- regExForAutoFormatting: /^## /
33
- };
34
- const markdownHeader3 = {
35
- ...paragraphStartBase,
36
- export: createHeadingExport(3),
37
- markdownFormatKind: 'paragraphH3',
38
- regEx: /^### /,
39
- regExForAutoFormatting: /^### /
40
- };
41
- const markdownHeader4 = {
42
- ...paragraphStartBase,
43
- export: createHeadingExport(4),
44
- markdownFormatKind: 'paragraphH4',
45
- regEx: /^#### /,
46
- regExForAutoFormatting: /^#### /
47
- };
48
- const markdownHeader5 = {
49
- ...paragraphStartBase,
50
- export: createHeadingExport(5),
51
- markdownFormatKind: 'paragraphH5',
52
- regEx: /^##### /,
53
- regExForAutoFormatting: /^##### /
54
- };
55
- const markdownHeader6 = {
56
- ...paragraphStartBase,
57
- export: createHeadingExport(6),
58
- markdownFormatKind: 'paragraphH6',
59
- regEx: /^###### /,
60
- regExForAutoFormatting: /^###### /
61
- };
62
- const markdownBlockQuote = {
63
- ...paragraphStartBase,
64
- export: blockQuoteExport,
65
- markdownFormatKind: 'paragraphBlockQuote',
66
- regEx: /^> /,
67
- regExForAutoFormatting: /^> /
68
- };
69
- const markdownUnorderedListDash = {
70
- ...paragraphStartBase,
71
- export: listExport,
72
- markdownFormatKind: 'paragraphUnorderedList',
73
- regEx: /^(\s{0,10})- /,
74
- regExForAutoFormatting: /^(\s{0,10})- /
75
- };
76
- const markdownUnorderedListAsterisk = {
77
- ...paragraphStartBase,
78
- export: listExport,
79
- markdownFormatKind: 'paragraphUnorderedList',
80
- regEx: /^(\s{0,10})\* /,
81
- regExForAutoFormatting: /^(\s{0,10})\* /
82
- };
83
- const markdownOrderedList = {
84
- ...paragraphStartBase,
85
- export: listExport,
86
- markdownFormatKind: 'paragraphOrderedList',
87
- regEx: /^(\s{0,10})(\d+)\.\s/,
88
- regExForAutoFormatting: /^(\s{0,10})(\d+)\.\s/
89
- };
90
- const markdownHorizontalRule = {
91
- ...paragraphStartBase,
92
- markdownFormatKind: 'horizontalRule',
93
- regEx: /^\*\*\*$/,
94
- regExForAutoFormatting: /^\*\*\* /
95
- };
96
- const markdownHorizontalRuleUsingDashes = {
97
- ...paragraphStartBase,
98
- markdownFormatKind: 'horizontalRule',
99
- regEx: /^---$/,
100
- regExForAutoFormatting: /^--- /
101
- };
102
- const markdownInlineCode = {
103
- ...autoFormatBase,
104
- exportFormat: 'code',
105
- exportTag: '`',
106
- markdownFormatKind: 'code',
107
- regEx: /(`)(\s*)([^`]*)(\s*)(`)()/,
108
- regExForAutoFormatting: /(`)(\s*\b)([^`]*)(\b\s*)(`)(\s)$/
109
- };
110
- const markdownBold = {
111
- ...autoFormatBase,
112
- exportFormat: 'bold',
113
- exportTag: '**',
114
- markdownFormatKind: 'bold',
115
- regEx: /(\*\*)(\s*)([^*]*)(\s*)(\*\*)()/,
116
- regExForAutoFormatting: /(\*\*)(\s*\b)([^*]*)(\b\s*)(\*\*)(\s)$/
117
- };
118
- const markdownItalic = {
119
- ...autoFormatBase,
120
- exportFormat: 'italic',
121
- exportTag: '*',
122
- markdownFormatKind: 'italic',
123
- regEx: /(\*)(\s*)([^*]*)(\s*)(\*)()/,
124
- regExForAutoFormatting: /(\*)(\s*\b)([^*]*)(\b\s*)(\*)(\s)$/
125
- };
126
- const markdownBold2 = {
127
- ...autoFormatBase,
128
- exportFormat: 'bold',
129
- exportTag: '_',
130
- markdownFormatKind: 'bold',
131
- regEx: /(__)(\s*)([^_]*)(\s*)(__)()/,
132
- regExForAutoFormatting: /(__)(\s*)([^_]*)(\s*)(__)(\s)$/
133
- };
134
- const markdownItalic2 = {
135
- ...autoFormatBase,
136
- exportFormat: 'italic',
137
- exportTag: '_',
138
- markdownFormatKind: 'italic',
139
- regEx: /(_)()([^_]*)()(_)()/,
140
- regExForAutoFormatting: /(_)()([^_]*)()(_)(\s)$/
141
- };
142
- const fakeMarkdownUnderline = {
143
- ...autoFormatBase,
144
- exportFormat: 'underline',
145
- exportTag: '<u>',
146
- exportTagClose: '</u>',
147
- markdownFormatKind: 'underline',
148
- regEx: /(<u>)(\s*)([^<]*)(\s*)(<\/u>)()/,
149
- regExForAutoFormatting: /(<u>)(\s*\b)([^<]*)(\b\s*)(<\/u>)(\s)$/
150
- };
151
- const markdownStrikethrough = {
152
- ...autoFormatBase,
153
- exportFormat: 'strikethrough',
154
- exportTag: '~~',
155
- markdownFormatKind: 'strikethrough',
156
- regEx: /(~~)(\s*)([^~]*)(\s*)(~~)()/,
157
- regExForAutoFormatting: /(~~)(\s*\b)([^~]*)(\b\s*)(~~)(\s)$/
158
- };
159
- const markdownStrikethroughItalicBold = {
160
- ...autoFormatBase,
161
- markdownFormatKind: 'strikethrough_italic_bold',
162
- regEx: /(~~_\*\*)(\s*\b)([^*_~]+)(\b\s*)(\*\*_~~)()/,
163
- regExForAutoFormatting: /(~~_\*\*)(\s*\b)([^*_~]+)(\b\s*)(\*\*_~~)(\s)$/
164
- };
165
- const markdownItalicbold = {
166
- ...autoFormatBase,
167
- markdownFormatKind: 'italic_bold',
168
- regEx: /(_\*\*)(\s*\b)([^*_]+)(\b\s*)(\*\*_)/,
169
- regExForAutoFormatting: /(_\*\*)(\s*\b)([^*_]+)(\b\s*)(\*\*_)(\s)$/
170
- };
171
- const markdownStrikethroughItalic = {
172
- ...autoFormatBase,
173
- markdownFormatKind: 'strikethrough_italic',
174
- regEx: /(~~_)(\s*)([^_~]+)(\s*)(_~~)/,
175
- regExForAutoFormatting: /(~~_)(\s*)([^_~]+)(\s*)(_~~)(\s)$/
176
- };
177
- const markdownStrikethroughBold = {
178
- ...autoFormatBase,
179
- markdownFormatKind: 'strikethrough_bold',
180
- regEx: /(~~\*\*)(\s*\b)([^*~]+)(\b\s*)(\*\*~~)/,
181
- regExForAutoFormatting: /(~~\*\*)(\s*\b)([^*~]+)(\b\s*)(\*\*~~)(\s)$/
182
- };
183
- const markdownLink = {
184
- ...autoFormatBase,
185
- markdownFormatKind: 'link',
186
- regEx: /(\[)([^\]]*)(\]\()([^)]*)(\)*)()/,
187
- regExForAutoFormatting: /(\[)([^\]]*)(\]\()([^)]*)(\)*)(\s)$/
188
- };
189
- const allMarkdownCriteriaForTextNodes = [
190
- // Place the combination formats ahead of the individual formats.
191
- // Combos
192
- markdownStrikethroughItalicBold, markdownItalicbold, markdownStrikethroughItalic, markdownStrikethroughBold, markdownInlineCode, markdownBold, markdownItalic, markdownBold2, markdownItalic2, fakeMarkdownUnderline, markdownStrikethrough, markdownLink];
193
- const allMarkdownCriteriaForParagraphs = [markdownHeader1, markdownHeader2, markdownHeader3, markdownHeader4, markdownHeader5, markdownHeader6, markdownBlockQuote, markdownUnorderedListDash, markdownUnorderedListAsterisk, markdownOrderedList, markdownHorizontalRule, markdownHorizontalRuleUsingDashes];
194
- export function getAllMarkdownCriteriaForParagraphs() {
195
- return allMarkdownCriteriaForParagraphs;
196
- }
197
- export function getAllMarkdownCriteriaForTextNodes() {
198
- return allMarkdownCriteriaForTextNodes;
199
- }
200
- function createHeadingExport(level) {
201
- return (node, exportChildren) => {
202
- return $isHeadingNode(node) && node.getTag() === 'h' + level ? '#'.repeat(level) + ' ' + exportChildren(node) : null;
203
- };
204
- }
205
- function listExport(node, exportChildren) {
206
- return $isListNode(node) ? processNestedLists(node, exportChildren, 0) : null;
207
- }
208
- // TODO: should be param
209
- const LIST_INDENT_SIZE = 4;
210
- function processNestedLists(listNode, exportChildren, depth) {
211
- const output = [];
212
- const children = listNode.getChildren();
213
- let index = 0;
214
- for (const listItemNode of children) {
215
- if ($isListItemNode(listItemNode)) {
216
- if (listItemNode.getChildrenSize() === 1) {
217
- const firstChild = listItemNode.getFirstChild();
218
- if ($isListNode(firstChild)) {
219
- output.push(processNestedLists(firstChild, exportChildren, depth + 1));
220
- continue;
221
- }
222
- }
223
- const indent = ' '.repeat(depth * LIST_INDENT_SIZE);
224
- const prefix = listNode.getListType() === 'bullet' ? '- ' : `${listNode.getStart() + index}. `;
225
- output.push(indent + prefix + exportChildren(listItemNode));
226
- index++;
227
- }
228
- }
229
- return output.join('\n');
230
- }
231
- function blockQuoteExport(node, exportChildren) {
232
- return $isQuoteNode(node) ? '> ' + exportChildren(node) : null;
233
- }
234
- export function indexBy(list, callback) {
235
- const index = {};
236
- for (const item of list) {
237
- const key = callback(item);
238
- if (!key) {
239
- continue;
240
- }
241
- if (index[key]) {
242
- index[key].push(item);
243
- } else {
244
- index[key] = [item];
245
- }
246
- }
247
- return index;
248
- }
249
- export function transformersByType(transformers) {
250
- const byType = indexBy(transformers, t => t.type);
251
- return {
252
- element: byType.element || [],
253
- multilineElement: byType['multiline-element'] || [],
254
- textFormat: byType['text-format'] || [],
255
- textMatch: byType['text-match'] || []
256
- };
257
- }
258
- export const PUNCTUATION_OR_SPACE = /[!-/:-@[-`{-~\s]/;
259
- const MARKDOWN_EMPTY_LINE_REG_EXP = /^\s{0,3}$/;
260
- export function isEmptyParagraph(node) {
261
- if (!$isParagraphNode(node)) {
262
- return false;
263
- }
264
- const firstChild = node.getFirstChild();
265
- return firstChild == null || node.getChildrenSize() === 1 && $isTextNode(firstChild) && MARKDOWN_EMPTY_LINE_REG_EXP.test(firstChild.getTextContent());
266
- }
267
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","names":["$isListItemNode","$isListNode","$isHeadingNode","$isQuoteNode","$isParagraphNode","$isTextNode","autoFormatBase","markdownFormatKind","regEx","regExForAutoFormatting","requiresParagraphStart","paragraphStartBase","markdownHeader1","export","createHeadingExport","markdownHeader2","markdownHeader3","markdownHeader4","markdownHeader5","markdownHeader6","markdownBlockQuote","blockQuoteExport","markdownUnorderedListDash","listExport","markdownUnorderedListAsterisk","markdownOrderedList","markdownHorizontalRule","markdownHorizontalRuleUsingDashes","markdownInlineCode","exportFormat","exportTag","markdownBold","markdownItalic","markdownBold2","markdownItalic2","fakeMarkdownUnderline","exportTagClose","markdownStrikethrough","markdownStrikethroughItalicBold","markdownItalicbold","markdownStrikethroughItalic","markdownStrikethroughBold","markdownLink","allMarkdownCriteriaForTextNodes","allMarkdownCriteriaForParagraphs","getAllMarkdownCriteriaForParagraphs","getAllMarkdownCriteriaForTextNodes","level","node","exportChildren","getTag","repeat","processNestedLists","LIST_INDENT_SIZE","listNode","depth","output","children","getChildren","index","listItemNode","getChildrenSize","firstChild","getFirstChild","push","indent","prefix","getListType","getStart","join","indexBy","list","callback","item","key","transformersByType","transformers","byType","t","type","element","multilineElement","textFormat","textMatch","PUNCTUATION_OR_SPACE","MARKDOWN_EMPTY_LINE_REG_EXP","isEmptyParagraph","test","getTextContent"],"sources":["../../../../src/packages/@lexical/markdown/utils.ts"],"sourcesContent":["/* eslint-disable regexp/no-obscure-range */\n/* eslint-disable regexp/no-empty-group */\n/* eslint-disable regexp/no-empty-capturing-group */\n/* eslint-disable regexp/optimal-quantifier-concatenation */\n/* eslint-disable regexp/no-misleading-capturing-group */\n/* eslint-disable regexp/no-contradiction-with-assertion */\n/* eslint-disable regexp/no-super-linear-backtracking */\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport type { ListNode } from '@lexical/list'\n\nimport { $isListItemNode, $isListNode } from '@lexical/list'\nimport { $isHeadingNode, $isQuoteNode } from '@lexical/rich-text'\nimport {\n $isParagraphNode,\n $isTextNode,\n type ElementNode,\n type LexicalNode,\n type TextFormatType,\n} from 'lexical'\n\nimport type {\n ElementTransformer,\n MultilineElementTransformer,\n TextFormatTransformer,\n TextMatchTransformer,\n Transformer,\n} from './MarkdownTransformers.js'\n\ntype MarkdownFormatKind =\n | 'bold'\n | 'code'\n | 'horizontalRule'\n | 'italic'\n | 'italic_bold'\n | 'link'\n | 'noTransformation'\n | 'paragraphBlockQuote'\n | 'paragraphCodeBlock'\n | 'paragraphH1'\n | 'paragraphH2'\n | 'paragraphH3'\n | 'paragraphH4'\n | 'paragraphH5'\n | 'paragraphH6'\n | 'paragraphOrderedList'\n | 'paragraphUnorderedList'\n | 'strikethrough'\n | 'strikethrough_bold'\n | 'strikethrough_italic'\n | 'strikethrough_italic_bold'\n | 'underline'\n\ntype MarkdownCriteria = Readonly<{\n export?: (\n node: LexicalNode,\n traverseChildren: (elementNode: ElementNode) => string,\n ) => null | string\n exportFormat?: TextFormatType\n exportTag?: string\n exportTagClose?: string\n markdownFormatKind: MarkdownFormatKind | null | undefined\n regEx: RegExp\n regExForAutoFormatting: RegExp\n requiresParagraphStart: boolean | null | undefined\n}>\n\ntype MarkdownCriteriaArray = Array<MarkdownCriteria>\n\nconst autoFormatBase: MarkdownCriteria = {\n markdownFormatKind: null,\n regEx: /(?:)/,\n regExForAutoFormatting: /(?:)/,\n requiresParagraphStart: false,\n}\n\nconst paragraphStartBase: MarkdownCriteria = {\n ...autoFormatBase,\n requiresParagraphStart: true,\n}\n\nconst markdownHeader1: MarkdownCriteria = {\n ...paragraphStartBase,\n export: createHeadingExport(1),\n markdownFormatKind: 'paragraphH1',\n regEx: /^# /,\n regExForAutoFormatting: /^# /,\n}\n\nconst markdownHeader2: MarkdownCriteria = {\n ...paragraphStartBase,\n export: createHeadingExport(2),\n markdownFormatKind: 'paragraphH2',\n regEx: /^## /,\n regExForAutoFormatting: /^## /,\n}\n\nconst markdownHeader3: MarkdownCriteria = {\n ...paragraphStartBase,\n export: createHeadingExport(3),\n markdownFormatKind: 'paragraphH3',\n regEx: /^### /,\n regExForAutoFormatting: /^### /,\n}\n\nconst markdownHeader4: MarkdownCriteria = {\n ...paragraphStartBase,\n export: createHeadingExport(4),\n markdownFormatKind: 'paragraphH4',\n regEx: /^#### /,\n regExForAutoFormatting: /^#### /,\n}\n\nconst markdownHeader5: MarkdownCriteria = {\n ...paragraphStartBase,\n export: createHeadingExport(5),\n markdownFormatKind: 'paragraphH5',\n regEx: /^##### /,\n regExForAutoFormatting: /^##### /,\n}\n\nconst markdownHeader6: MarkdownCriteria = {\n ...paragraphStartBase,\n export: createHeadingExport(6),\n markdownFormatKind: 'paragraphH6',\n regEx: /^###### /,\n regExForAutoFormatting: /^###### /,\n}\n\nconst markdownBlockQuote: MarkdownCriteria = {\n ...paragraphStartBase,\n export: blockQuoteExport,\n markdownFormatKind: 'paragraphBlockQuote',\n regEx: /^> /,\n regExForAutoFormatting: /^> /,\n}\n\nconst markdownUnorderedListDash: MarkdownCriteria = {\n ...paragraphStartBase,\n export: listExport,\n markdownFormatKind: 'paragraphUnorderedList',\n regEx: /^(\\s{0,10})- /,\n regExForAutoFormatting: /^(\\s{0,10})- /,\n}\n\nconst markdownUnorderedListAsterisk: MarkdownCriteria = {\n ...paragraphStartBase,\n export: listExport,\n markdownFormatKind: 'paragraphUnorderedList',\n regEx: /^(\\s{0,10})\\* /,\n regExForAutoFormatting: /^(\\s{0,10})\\* /,\n}\n\nconst markdownOrderedList: MarkdownCriteria = {\n ...paragraphStartBase,\n export: listExport,\n markdownFormatKind: 'paragraphOrderedList',\n regEx: /^(\\s{0,10})(\\d+)\\.\\s/,\n regExForAutoFormatting: /^(\\s{0,10})(\\d+)\\.\\s/,\n}\n\nconst markdownHorizontalRule: MarkdownCriteria = {\n ...paragraphStartBase,\n markdownFormatKind: 'horizontalRule',\n regEx: /^\\*\\*\\*$/,\n regExForAutoFormatting: /^\\*\\*\\* /,\n}\n\nconst markdownHorizontalRuleUsingDashes: MarkdownCriteria = {\n ...paragraphStartBase,\n markdownFormatKind: 'horizontalRule',\n regEx: /^---$/,\n regExForAutoFormatting: /^--- /,\n}\n\nconst markdownInlineCode: MarkdownCriteria = {\n ...autoFormatBase,\n exportFormat: 'code',\n exportTag: '`',\n markdownFormatKind: 'code',\n regEx: /(`)(\\s*)([^`]*)(\\s*)(`)()/,\n regExForAutoFormatting: /(`)(\\s*\\b)([^`]*)(\\b\\s*)(`)(\\s)$/,\n}\n\nconst markdownBold: MarkdownCriteria = {\n ...autoFormatBase,\n exportFormat: 'bold',\n exportTag: '**',\n markdownFormatKind: 'bold',\n regEx: /(\\*\\*)(\\s*)([^*]*)(\\s*)(\\*\\*)()/,\n regExForAutoFormatting: /(\\*\\*)(\\s*\\b)([^*]*)(\\b\\s*)(\\*\\*)(\\s)$/,\n}\n\nconst markdownItalic: MarkdownCriteria = {\n ...autoFormatBase,\n exportFormat: 'italic',\n exportTag: '*',\n markdownFormatKind: 'italic',\n regEx: /(\\*)(\\s*)([^*]*)(\\s*)(\\*)()/,\n regExForAutoFormatting: /(\\*)(\\s*\\b)([^*]*)(\\b\\s*)(\\*)(\\s)$/,\n}\n\nconst markdownBold2: MarkdownCriteria = {\n ...autoFormatBase,\n exportFormat: 'bold',\n exportTag: '_',\n markdownFormatKind: 'bold',\n regEx: /(__)(\\s*)([^_]*)(\\s*)(__)()/,\n regExForAutoFormatting: /(__)(\\s*)([^_]*)(\\s*)(__)(\\s)$/,\n}\n\nconst markdownItalic2: MarkdownCriteria = {\n ...autoFormatBase,\n exportFormat: 'italic',\n exportTag: '_',\n markdownFormatKind: 'italic',\n regEx: /(_)()([^_]*)()(_)()/,\n regExForAutoFormatting: /(_)()([^_]*)()(_)(\\s)$/, // Maintain 7 groups.\n}\n\nconst fakeMarkdownUnderline: MarkdownCriteria = {\n ...autoFormatBase,\n exportFormat: 'underline',\n exportTag: '<u>',\n exportTagClose: '</u>',\n markdownFormatKind: 'underline',\n regEx: /(<u>)(\\s*)([^<]*)(\\s*)(<\\/u>)()/,\n regExForAutoFormatting: /(<u>)(\\s*\\b)([^<]*)(\\b\\s*)(<\\/u>)(\\s)$/,\n}\n\nconst markdownStrikethrough: MarkdownCriteria = {\n ...autoFormatBase,\n exportFormat: 'strikethrough',\n exportTag: '~~',\n markdownFormatKind: 'strikethrough',\n regEx: /(~~)(\\s*)([^~]*)(\\s*)(~~)()/,\n regExForAutoFormatting: /(~~)(\\s*\\b)([^~]*)(\\b\\s*)(~~)(\\s)$/,\n}\n\nconst markdownStrikethroughItalicBold: MarkdownCriteria = {\n ...autoFormatBase,\n markdownFormatKind: 'strikethrough_italic_bold',\n regEx: /(~~_\\*\\*)(\\s*\\b)([^*_~]+)(\\b\\s*)(\\*\\*_~~)()/,\n regExForAutoFormatting: /(~~_\\*\\*)(\\s*\\b)([^*_~]+)(\\b\\s*)(\\*\\*_~~)(\\s)$/,\n}\n\nconst markdownItalicbold: MarkdownCriteria = {\n ...autoFormatBase,\n markdownFormatKind: 'italic_bold',\n regEx: /(_\\*\\*)(\\s*\\b)([^*_]+)(\\b\\s*)(\\*\\*_)/,\n regExForAutoFormatting: /(_\\*\\*)(\\s*\\b)([^*_]+)(\\b\\s*)(\\*\\*_)(\\s)$/,\n}\n\nconst markdownStrikethroughItalic: MarkdownCriteria = {\n ...autoFormatBase,\n markdownFormatKind: 'strikethrough_italic',\n regEx: /(~~_)(\\s*)([^_~]+)(\\s*)(_~~)/,\n regExForAutoFormatting: /(~~_)(\\s*)([^_~]+)(\\s*)(_~~)(\\s)$/,\n}\n\nconst markdownStrikethroughBold: MarkdownCriteria = {\n ...autoFormatBase,\n markdownFormatKind: 'strikethrough_bold',\n regEx: /(~~\\*\\*)(\\s*\\b)([^*~]+)(\\b\\s*)(\\*\\*~~)/,\n regExForAutoFormatting: /(~~\\*\\*)(\\s*\\b)([^*~]+)(\\b\\s*)(\\*\\*~~)(\\s)$/,\n}\n\nconst markdownLink: MarkdownCriteria = {\n ...autoFormatBase,\n markdownFormatKind: 'link',\n regEx: /(\\[)([^\\]]*)(\\]\\()([^)]*)(\\)*)()/,\n regExForAutoFormatting: /(\\[)([^\\]]*)(\\]\\()([^)]*)(\\)*)(\\s)$/,\n}\n\nconst allMarkdownCriteriaForTextNodes: MarkdownCriteriaArray = [\n // Place the combination formats ahead of the individual formats.\n // Combos\n markdownStrikethroughItalicBold,\n markdownItalicbold,\n markdownStrikethroughItalic,\n markdownStrikethroughBold, // Individuals\n markdownInlineCode,\n markdownBold,\n markdownItalic, // Must appear after markdownBold\n markdownBold2,\n markdownItalic2, // Must appear after markdownBold2.\n fakeMarkdownUnderline,\n markdownStrikethrough,\n markdownLink,\n]\n\nconst allMarkdownCriteriaForParagraphs: MarkdownCriteriaArray = [\n markdownHeader1,\n markdownHeader2,\n markdownHeader3,\n markdownHeader4,\n markdownHeader5,\n markdownHeader6,\n markdownBlockQuote,\n markdownUnorderedListDash,\n markdownUnorderedListAsterisk,\n markdownOrderedList,\n markdownHorizontalRule,\n markdownHorizontalRuleUsingDashes,\n]\n\nexport function getAllMarkdownCriteriaForParagraphs(): MarkdownCriteriaArray {\n return allMarkdownCriteriaForParagraphs\n}\n\nexport function getAllMarkdownCriteriaForTextNodes(): MarkdownCriteriaArray {\n return allMarkdownCriteriaForTextNodes\n}\n\ntype Block = (\n node: LexicalNode,\n exportChildren: (elementNode: ElementNode) => string,\n) => null | string\n\nfunction createHeadingExport(level: number): Block {\n return (node, exportChildren) => {\n return $isHeadingNode(node) && node.getTag() === 'h' + level\n ? '#'.repeat(level) + ' ' + exportChildren(node)\n : null\n }\n}\n\nfunction listExport(node: LexicalNode, exportChildren: (_node: ElementNode) => string) {\n return $isListNode(node) ? processNestedLists(node, exportChildren, 0) : null\n}\n\n// TODO: should be param\nconst LIST_INDENT_SIZE = 4\n\nfunction processNestedLists(\n listNode: ListNode,\n exportChildren: (node: ElementNode) => string,\n depth: number,\n): string {\n const output: string[] = []\n const children = listNode.getChildren()\n let index = 0\n\n for (const listItemNode of children) {\n if ($isListItemNode(listItemNode)) {\n if (listItemNode.getChildrenSize() === 1) {\n const firstChild = listItemNode.getFirstChild()\n\n if ($isListNode(firstChild)) {\n output.push(processNestedLists(firstChild, exportChildren, depth + 1))\n continue\n }\n }\n\n const indent = ' '.repeat(depth * LIST_INDENT_SIZE)\n const prefix = listNode.getListType() === 'bullet' ? '- ' : `${listNode.getStart() + index}. `\n output.push(indent + prefix + exportChildren(listItemNode))\n index++\n }\n }\n\n return output.join('\\n')\n}\n\nfunction blockQuoteExport(node: LexicalNode, exportChildren: (_node: ElementNode) => string) {\n return $isQuoteNode(node) ? '> ' + exportChildren(node) : null\n}\n\nexport function indexBy<T>(\n list: Array<T>,\n callback: (arg0: T) => string | undefined,\n): Readonly<Record<string, Array<T>>> {\n const index: Record<string, Array<T>> = {}\n\n for (const item of list) {\n const key = callback(item)\n\n if (!key) {\n continue\n }\n\n if (index[key]) {\n index[key].push(item)\n } else {\n index[key] = [item]\n }\n }\n\n return index\n}\n\nexport function transformersByType(transformers: Array<Transformer>): Readonly<{\n element: Array<ElementTransformer>\n multilineElement: Array<MultilineElementTransformer>\n textFormat: Array<TextFormatTransformer>\n textMatch: Array<TextMatchTransformer>\n}> {\n const byType = indexBy(transformers, (t) => t.type)\n\n return {\n element: (byType.element || []) as Array<ElementTransformer>,\n multilineElement: (byType['multiline-element'] || []) as Array<MultilineElementTransformer>,\n textFormat: (byType['text-format'] || []) as Array<TextFormatTransformer>,\n textMatch: (byType['text-match'] || []) as Array<TextMatchTransformer>,\n }\n}\n\nexport const PUNCTUATION_OR_SPACE = /[!-/:-@[-`{-~\\s]/\n\nconst MARKDOWN_EMPTY_LINE_REG_EXP = /^\\s{0,3}$/\n\nexport function isEmptyParagraph(node: LexicalNode): boolean {\n if (!$isParagraphNode(node)) {\n return false\n }\n\n const firstChild = node.getFirstChild()\n return (\n firstChild == null ||\n (node.getChildrenSize() === 1 &&\n $isTextNode(firstChild) &&\n MARKDOWN_EMPTY_LINE_REG_EXP.test(firstChild.getTextContent()))\n )\n}\n"],"mappings":"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","ignoreList":[]}