@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,91 +0,0 @@
1
- /**
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 { PUNCTUATION_OR_SPACE } from './utils.js';
8
- export function findOutermostTextFormatTransformer(textNode, textFormatTransformersIndex) {
9
- const textContent = textNode.getTextContent();
10
- const match = findOutermostMatch(textContent, textFormatTransformersIndex);
11
- if (!match) {
12
- return null;
13
- }
14
- const textFormatMatchStart = match.index || 0;
15
- const textFormatMatchEnd = textFormatMatchStart + match[0].length;
16
- // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve
17
- const transformer = textFormatTransformersIndex.transformersByTag[match[1]];
18
- return {
19
- endIndex: textFormatMatchEnd,
20
- match,
21
- startIndex: textFormatMatchStart,
22
- transformer
23
- };
24
- }
25
- // Finds first "<tag>content<tag>" match that is not nested into another tag
26
- function findOutermostMatch(textContent, textTransformersIndex) {
27
- const openTagsMatch = textContent.match(textTransformersIndex.openTagsRegExp);
28
- if (openTagsMatch == null) {
29
- return null;
30
- }
31
- for (const match of openTagsMatch) {
32
- // Open tags reg exp might capture leading space so removing it
33
- // before using match to find transformer
34
- const tag = match.replace(/^\s/, '');
35
- const fullMatchRegExp = textTransformersIndex.fullMatchRegExpByTag[tag];
36
- if (fullMatchRegExp == null) {
37
- continue;
38
- }
39
- const fullMatch = textContent.match(fullMatchRegExp);
40
- const transformer = textTransformersIndex.transformersByTag[tag];
41
- if (fullMatch != null && transformer != null) {
42
- if (transformer.intraword !== false) {
43
- return fullMatch;
44
- }
45
- // For non-intraword transformers checking if it's within a word
46
- // or surrounded with space/punctuation/newline
47
- const {
48
- index = 0
49
- } = fullMatch;
50
- const beforeChar = textContent[index - 1];
51
- const afterChar = textContent[index + fullMatch[0].length];
52
- if ((!beforeChar || PUNCTUATION_OR_SPACE.test(beforeChar)) && (!afterChar || PUNCTUATION_OR_SPACE.test(afterChar))) {
53
- return fullMatch;
54
- }
55
- }
56
- }
57
- return null;
58
- }
59
- export function importTextFormatTransformer(textNode, startIndex, endIndex, transformer, match) {
60
- const textContent = textNode.getTextContent();
61
- // No text matches - we can safely process the text format match
62
- let nodeAfter;
63
- let nodeBefore;
64
- let transformedNode;
65
- // If matching full content there's no need to run splitText and can reuse existing textNode
66
- // to update its content and apply format. E.g. for **_Hello_** string after applying bold
67
- // format (**) it will reuse the same text node to apply italic (_)
68
- if (match[0] === textContent) {
69
- transformedNode = textNode;
70
- } else {
71
- if (startIndex === 0) {
72
- [transformedNode, nodeAfter] = textNode.splitText(endIndex);
73
- } else {
74
- [nodeBefore, transformedNode, nodeAfter] = textNode.splitText(startIndex, endIndex);
75
- }
76
- }
77
- transformedNode.setTextContent(match[2]);
78
- if (transformer) {
79
- for (const format of transformer.format) {
80
- if (!transformedNode.hasFormat(format)) {
81
- transformedNode.toggleFormat(format);
82
- }
83
- }
84
- }
85
- return {
86
- nodeAfter,
87
- nodeBefore,
88
- transformedNode
89
- };
90
- }
91
- //# sourceMappingURL=importTextFormatTransformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"importTextFormatTransformer.js","names":["PUNCTUATION_OR_SPACE","findOutermostTextFormatTransformer","textNode","textFormatTransformersIndex","textContent","getTextContent","match","findOutermostMatch","textFormatMatchStart","index","textFormatMatchEnd","length","transformer","transformersByTag","endIndex","startIndex","textTransformersIndex","openTagsMatch","openTagsRegExp","tag","replace","fullMatchRegExp","fullMatchRegExpByTag","fullMatch","intraword","beforeChar","afterChar","test","importTextFormatTransformer","nodeAfter","nodeBefore","transformedNode","splitText","setTextContent","format","hasFormat","toggleFormat"],"sources":["../../../../src/packages/@lexical/markdown/importTextFormatTransformer.ts"],"sourcesContent":["/**\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 { TextNode } from 'lexical'\n\nimport type { TextFormatTransformersIndex } from './MarkdownImport.js'\nimport type { TextFormatTransformer } from './MarkdownTransformers.js'\n\nimport { PUNCTUATION_OR_SPACE } from './utils.js'\n\nexport function findOutermostTextFormatTransformer(\n textNode: TextNode,\n textFormatTransformersIndex: TextFormatTransformersIndex,\n): {\n endIndex: number\n match: RegExpMatchArray\n startIndex: number\n transformer: TextFormatTransformer\n} | null {\n const textContent = textNode.getTextContent()\n const match = findOutermostMatch(textContent, textFormatTransformersIndex)\n\n if (!match) {\n return null\n }\n\n const textFormatMatchStart: number = match.index || 0\n const textFormatMatchEnd = textFormatMatchStart + match[0].length\n\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n const transformer: TextFormatTransformer = textFormatTransformersIndex.transformersByTag[match[1]]\n\n return {\n endIndex: textFormatMatchEnd,\n match,\n startIndex: textFormatMatchStart,\n transformer,\n }\n}\n\n// Finds first \"<tag>content<tag>\" match that is not nested into another tag\nfunction findOutermostMatch(\n textContent: string,\n textTransformersIndex: TextFormatTransformersIndex,\n): null | RegExpMatchArray {\n const openTagsMatch = textContent.match(textTransformersIndex.openTagsRegExp)\n\n if (openTagsMatch == null) {\n return null\n }\n\n for (const match of openTagsMatch) {\n // Open tags reg exp might capture leading space so removing it\n // before using match to find transformer\n const tag = match.replace(/^\\s/, '')\n const fullMatchRegExp = textTransformersIndex.fullMatchRegExpByTag[tag]\n if (fullMatchRegExp == null) {\n continue\n }\n\n const fullMatch = textContent.match(fullMatchRegExp)\n const transformer = textTransformersIndex.transformersByTag[tag]\n if (fullMatch != null && transformer != null) {\n if (transformer.intraword !== false) {\n return fullMatch\n }\n\n // For non-intraword transformers checking if it's within a word\n // or surrounded with space/punctuation/newline\n const { index = 0 } = fullMatch\n const beforeChar = textContent[index - 1]\n const afterChar = textContent[index + fullMatch[0].length]\n\n if (\n (!beforeChar || PUNCTUATION_OR_SPACE.test(beforeChar)) &&\n (!afterChar || PUNCTUATION_OR_SPACE.test(afterChar))\n ) {\n return fullMatch\n }\n }\n }\n\n return null\n}\n\nexport function importTextFormatTransformer(\n textNode: TextNode,\n startIndex: number,\n endIndex: number,\n transformer: TextFormatTransformer,\n match: RegExpMatchArray,\n): {\n nodeAfter: TextNode | undefined // If split\n nodeBefore: TextNode | undefined // If split\n transformedNode: TextNode\n} {\n const textContent = textNode.getTextContent()\n\n // No text matches - we can safely process the text format match\n let nodeAfter: TextNode | undefined\n let nodeBefore: TextNode | undefined\n let transformedNode: TextNode\n\n // If matching full content there's no need to run splitText and can reuse existing textNode\n // to update its content and apply format. E.g. for **_Hello_** string after applying bold\n // format (**) it will reuse the same text node to apply italic (_)\n if (match[0] === textContent) {\n transformedNode = textNode\n } else {\n if (startIndex === 0) {\n ;[transformedNode, nodeAfter] = textNode.splitText(endIndex) as [\n TextNode,\n TextNode | undefined,\n ]\n } else {\n ;[nodeBefore, transformedNode, nodeAfter] = textNode.splitText(startIndex, endIndex) as [\n TextNode,\n TextNode,\n TextNode | undefined,\n ]\n }\n }\n\n transformedNode.setTextContent(match[2]!)\n if (transformer) {\n for (const format of transformer.format) {\n if (!transformedNode.hasFormat(format)) {\n transformedNode.toggleFormat(format)\n }\n }\n }\n\n return {\n nodeAfter,\n nodeBefore,\n transformedNode,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,21 +0,0 @@
1
- import { type TextNode } from 'lexical';
2
- /**
3
- * Copyright (c) Meta Platforms, Inc. and affiliates.
4
- *
5
- * This source code is licensed under the MIT license found in the
6
- * LICENSE file in the root directory of this source tree.
7
- *
8
- */
9
- import type { TextMatchTransformer } from './MarkdownTransformers.js';
10
- export declare function findOutermostTextMatchTransformer(textNode_: TextNode, textMatchTransformers: Array<TextMatchTransformer>): {
11
- endIndex: number;
12
- match: RegExpMatchArray;
13
- startIndex: number;
14
- transformer: TextMatchTransformer;
15
- } | null;
16
- export declare function importFoundTextMatchTransformer(textNode: TextNode, startIndex: number, endIndex: number, transformer: TextMatchTransformer, match: RegExpMatchArray): {
17
- nodeAfter: TextNode | undefined;
18
- nodeBefore: TextNode | undefined;
19
- transformedNode?: TextNode;
20
- } | null;
21
- //# sourceMappingURL=importTextMatchTransformer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"importTextMatchTransformer.d.ts","sourceRoot":"","sources":["../../../../src/packages/@lexical/markdown/importTextMatchTransformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAErE,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,QAAQ,EACnB,qBAAqB,EAAE,KAAK,CAAC,oBAAoB,CAAC,GACjD;IACD,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,gBAAgB,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,oBAAoB,CAAA;CAClC,GAAG,IAAI,CAsDP;AAED,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,oBAAoB,EACjC,KAAK,EAAE,gBAAgB,GACtB;IACD,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC/B,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAA;IAChC,eAAe,CAAC,EAAE,QAAQ,CAAA;CAC3B,GAAG,IAAI,CAqBP"}
@@ -1,54 +0,0 @@
1
- export function findOutermostTextMatchTransformer(textNode_, textMatchTransformers) {
2
- const textNode = textNode_;
3
- let foundMatchStartIndex = undefined;
4
- let foundMatchEndIndex = undefined;
5
- let foundMatchTransformer = undefined;
6
- let foundMatch = undefined;
7
- for (const transformer of textMatchTransformers) {
8
- if (!transformer.replace || !transformer.importRegExp) {
9
- continue;
10
- }
11
- const match = textNode.getTextContent().match(transformer.importRegExp);
12
- if (!match) {
13
- continue;
14
- }
15
- const startIndex = match.index || 0;
16
- const endIndex = transformer.getEndIndex ? transformer.getEndIndex(textNode, match) : startIndex + match[0].length;
17
- if (endIndex === false) {
18
- continue;
19
- }
20
- if (foundMatchStartIndex === undefined || foundMatchEndIndex === undefined || startIndex < foundMatchStartIndex && endIndex > foundMatchEndIndex) {
21
- foundMatchStartIndex = startIndex;
22
- foundMatchEndIndex = endIndex;
23
- foundMatchTransformer = transformer;
24
- foundMatch = match;
25
- }
26
- }
27
- if (foundMatchStartIndex === undefined || foundMatchEndIndex === undefined || foundMatchTransformer === undefined || foundMatch === undefined) {
28
- return null;
29
- }
30
- return {
31
- endIndex: foundMatchEndIndex,
32
- match: foundMatch,
33
- startIndex: foundMatchStartIndex,
34
- transformer: foundMatchTransformer
35
- };
36
- }
37
- export function importFoundTextMatchTransformer(textNode, startIndex, endIndex, transformer, match) {
38
- let nodeAfter, nodeBefore, transformedNode;
39
- if (startIndex === 0) {
40
- [transformedNode, nodeAfter] = textNode.splitText(endIndex);
41
- } else {
42
- [nodeBefore, transformedNode, nodeAfter] = textNode.splitText(startIndex, endIndex);
43
- }
44
- if (!transformer.replace) {
45
- return null;
46
- }
47
- const potentialTransformedNode = transformedNode ? transformer.replace(transformedNode, match) : undefined;
48
- return {
49
- nodeAfter,
50
- nodeBefore,
51
- transformedNode: potentialTransformedNode || undefined
52
- };
53
- }
54
- //# sourceMappingURL=importTextMatchTransformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"importTextMatchTransformer.js","names":["findOutermostTextMatchTransformer","textNode_","textMatchTransformers","textNode","foundMatchStartIndex","undefined","foundMatchEndIndex","foundMatchTransformer","foundMatch","transformer","replace","importRegExp","match","getTextContent","startIndex","index","endIndex","getEndIndex","length","importFoundTextMatchTransformer","nodeAfter","nodeBefore","transformedNode","splitText","potentialTransformedNode"],"sources":["../../../../src/packages/@lexical/markdown/importTextMatchTransformer.ts"],"sourcesContent":["import { type TextNode } from 'lexical'\n\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 */\nimport type { TextMatchTransformer } from './MarkdownTransformers.js'\n\nexport function findOutermostTextMatchTransformer(\n textNode_: TextNode,\n textMatchTransformers: Array<TextMatchTransformer>,\n): {\n endIndex: number\n match: RegExpMatchArray\n startIndex: number\n transformer: TextMatchTransformer\n} | null {\n const textNode = textNode_\n\n let foundMatchStartIndex: number | undefined = undefined\n let foundMatchEndIndex: number | undefined = undefined\n let foundMatchTransformer: TextMatchTransformer | undefined = undefined\n let foundMatch: RegExpMatchArray | undefined = undefined\n\n for (const transformer of textMatchTransformers) {\n if (!transformer.replace || !transformer.importRegExp) {\n continue\n }\n const match = textNode.getTextContent().match(transformer.importRegExp)\n\n if (!match) {\n continue\n }\n\n const startIndex = match.index || 0\n const endIndex = transformer.getEndIndex\n ? transformer.getEndIndex(textNode, match)\n : startIndex + match[0].length\n\n if (endIndex === false) {\n continue\n }\n\n if (\n foundMatchStartIndex === undefined ||\n foundMatchEndIndex === undefined ||\n (startIndex < foundMatchStartIndex && endIndex > foundMatchEndIndex)\n ) {\n foundMatchStartIndex = startIndex\n foundMatchEndIndex = endIndex\n foundMatchTransformer = transformer\n foundMatch = match\n }\n }\n\n if (\n foundMatchStartIndex === undefined ||\n foundMatchEndIndex === undefined ||\n foundMatchTransformer === undefined ||\n foundMatch === undefined\n ) {\n return null\n }\n\n return {\n endIndex: foundMatchEndIndex,\n match: foundMatch,\n startIndex: foundMatchStartIndex,\n transformer: foundMatchTransformer,\n }\n}\n\nexport function importFoundTextMatchTransformer(\n textNode: TextNode,\n startIndex: number,\n endIndex: number,\n transformer: TextMatchTransformer,\n match: RegExpMatchArray,\n): {\n nodeAfter: TextNode | undefined // If split\n nodeBefore: TextNode | undefined // If split\n transformedNode?: TextNode\n} | null {\n let nodeAfter, nodeBefore, transformedNode\n\n if (startIndex === 0) {\n ;[transformedNode, nodeAfter] = textNode.splitText(endIndex)\n } else {\n ;[nodeBefore, transformedNode, nodeAfter] = textNode.splitText(startIndex, endIndex)\n }\n\n if (!transformer.replace) {\n return null\n }\n const potentialTransformedNode = transformedNode\n ? transformer.replace(transformedNode, match)\n : undefined\n\n return {\n nodeAfter,\n nodeBefore,\n transformedNode: potentialTransformedNode || undefined,\n }\n}\n"],"mappings":"AAWA,OAAO,SAASA,kCACdC,SAAmB,EACnBC,qBAAkD;EAOlD,MAAMC,QAAA,GAAWF,SAAA;EAEjB,IAAIG,oBAAA,GAA2CC,SAAA;EAC/C,IAAIC,kBAAA,GAAyCD,SAAA;EAC7C,IAAIE,qBAAA,GAA0DF,SAAA;EAC9D,IAAIG,UAAA,GAA2CH,SAAA;EAE/C,KAAK,MAAMI,WAAA,IAAeP,qBAAA,EAAuB;IAC/C,IAAI,CAACO,WAAA,CAAYC,OAAO,IAAI,CAACD,WAAA,CAAYE,YAAY,EAAE;MACrD;IACF;IACA,MAAMC,KAAA,GAAQT,QAAA,CAASU,cAAc,GAAGD,KAAK,CAACH,WAAA,CAAYE,YAAY;IAEtE,IAAI,CAACC,KAAA,EAAO;MACV;IACF;IAEA,MAAME,UAAA,GAAaF,KAAA,CAAMG,KAAK,IAAI;IAClC,MAAMC,QAAA,GAAWP,WAAA,CAAYQ,WAAW,GACpCR,WAAA,CAAYQ,WAAW,CAACd,QAAA,EAAUS,KAAA,IAClCE,UAAA,GAAaF,KAAK,CAAC,EAAE,CAACM,MAAM;IAEhC,IAAIF,QAAA,KAAa,OAAO;MACtB;IACF;IAEA,IACEZ,oBAAA,KAAyBC,SAAA,IACzBC,kBAAA,KAAuBD,SAAA,IACtBS,UAAA,GAAaV,oBAAA,IAAwBY,QAAA,GAAWV,kBAAA,EACjD;MACAF,oBAAA,GAAuBU,UAAA;MACvBR,kBAAA,GAAqBU,QAAA;MACrBT,qBAAA,GAAwBE,WAAA;MACxBD,UAAA,GAAaI,KAAA;IACf;EACF;EAEA,IACER,oBAAA,KAAyBC,SAAA,IACzBC,kBAAA,KAAuBD,SAAA,IACvBE,qBAAA,KAA0BF,SAAA,IAC1BG,UAAA,KAAeH,SAAA,EACf;IACA,OAAO;EACT;EAEA,OAAO;IACLW,QAAA,EAAUV,kBAAA;IACVM,KAAA,EAAOJ,UAAA;IACPM,UAAA,EAAYV,oBAAA;IACZK,WAAA,EAAaF;EACf;AACF;AAEA,OAAO,SAASY,gCACdhB,QAAkB,EAClBW,UAAkB,EAClBE,QAAgB,EAChBP,WAAiC,EACjCG,KAAuB;EAMvB,IAAIQ,SAAA,EAAWC,UAAA,EAAYC,eAAA;EAE3B,IAAIR,UAAA,KAAe,GAAG;IACnB,CAACQ,eAAA,EAAiBF,SAAA,CAAU,GAAGjB,QAAA,CAASoB,SAAS,CAACP,QAAA;EACrD,OAAO;IACJ,CAACK,UAAA,EAAYC,eAAA,EAAiBF,SAAA,CAAU,GAAGjB,QAAA,CAASoB,SAAS,CAACT,UAAA,EAAYE,QAAA;EAC7E;EAEA,IAAI,CAACP,WAAA,CAAYC,OAAO,EAAE;IACxB,OAAO;EACT;EACA,MAAMc,wBAAA,GAA2BF,eAAA,GAC7Bb,WAAA,CAAYC,OAAO,CAACY,eAAA,EAAiBV,KAAA,IACrCP,SAAA;EAEJ,OAAO;IACLe,SAAA;IACAC,UAAA;IACAC,eAAA,EAAiBE,wBAAA,IAA4BnB;EAC/C;AACF","ignoreList":[]}
@@ -1,18 +0,0 @@
1
- import { type TextNode } from 'lexical';
2
- /**
3
- * Copyright (c) Meta Platforms, Inc. and affiliates.
4
- *
5
- * This source code is licensed under the MIT license found in the
6
- * LICENSE file in the root directory of this source tree.
7
- *
8
- */
9
- import type { TextFormatTransformersIndex } from './MarkdownImport.js';
10
- import type { TextMatchTransformer } from './MarkdownTransformers.js';
11
- /**
12
- * Handles applying both text format and text match transformers.
13
- * It finds the outermost text format or text match and applies it,
14
- * then recursively calls itself to apply the next outermost transformer,
15
- * until there are no more transformers to apply.
16
- */
17
- export declare function importTextTransformers(textNode: TextNode, textFormatTransformersIndex: TextFormatTransformersIndex, textMatchTransformers: Array<TextMatchTransformer>): void;
18
- //# sourceMappingURL=importTextTransformers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"importTextTransformers.d.ts","sourceRoot":"","sources":["../../../../src/packages/@lexical/markdown/importTextTransformers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEpD;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAWrE;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,QAAQ,EAClB,2BAA2B,EAAE,2BAA2B,EACxD,qBAAqB,EAAE,KAAK,CAAC,oBAAoB,CAAC,QAwFnD"}
@@ -1,54 +0,0 @@
1
- import { $isTextNode } from 'lexical';
2
- import { findOutermostTextFormatTransformer, importTextFormatTransformer } from './importTextFormatTransformer.js';
3
- import { findOutermostTextMatchTransformer, importFoundTextMatchTransformer } from './importTextMatchTransformer.js';
4
- /**
5
- * Handles applying both text format and text match transformers.
6
- * It finds the outermost text format or text match and applies it,
7
- * then recursively calls itself to apply the next outermost transformer,
8
- * until there are no more transformers to apply.
9
- */
10
- export function importTextTransformers(textNode, textFormatTransformersIndex, textMatchTransformers) {
11
- let foundTextFormat = findOutermostTextFormatTransformer(textNode, textFormatTransformersIndex);
12
- let foundTextMatch = findOutermostTextMatchTransformer(textNode, textMatchTransformers);
13
- if (foundTextFormat && foundTextMatch) {
14
- // Find the outermost transformer
15
- if (foundTextFormat.startIndex <= foundTextMatch.startIndex && foundTextFormat.endIndex >= foundTextMatch.endIndex) {
16
- // foundTextFormat wraps foundTextMatch - apply foundTextFormat by setting foundTextMatch to null
17
- foundTextMatch = null;
18
- } else {
19
- // foundTextMatch wraps foundTextFormat - apply foundTextMatch by setting foundTextFormat to null
20
- foundTextFormat = null;
21
- }
22
- }
23
- if (foundTextFormat) {
24
- const result = importTextFormatTransformer(textNode, foundTextFormat.startIndex, foundTextFormat.endIndex, foundTextFormat.transformer, foundTextFormat.match);
25
- if (result.nodeAfter && $isTextNode(result.nodeAfter) && !result.nodeAfter.hasFormat('code')) {
26
- importTextTransformers(result.nodeAfter, textFormatTransformersIndex, textMatchTransformers);
27
- }
28
- if (result.nodeBefore && $isTextNode(result.nodeBefore) && !result.nodeBefore.hasFormat('code')) {
29
- importTextTransformers(result.nodeBefore, textFormatTransformersIndex, textMatchTransformers);
30
- }
31
- if (result.transformedNode && $isTextNode(result.transformedNode) && !result.transformedNode.hasFormat('code')) {
32
- importTextTransformers(result.transformedNode, textFormatTransformersIndex, textMatchTransformers);
33
- }
34
- } else if (foundTextMatch) {
35
- const result = importFoundTextMatchTransformer(textNode, foundTextMatch.startIndex, foundTextMatch.endIndex, foundTextMatch.transformer, foundTextMatch.match);
36
- if (!result) {
37
- return;
38
- }
39
- if (result.nodeAfter && $isTextNode(result.nodeAfter) && !result.nodeAfter.hasFormat('code')) {
40
- importTextTransformers(result.nodeAfter, textFormatTransformersIndex, textMatchTransformers);
41
- }
42
- if (result.nodeBefore && $isTextNode(result.nodeBefore) && !result.nodeBefore.hasFormat('code')) {
43
- importTextTransformers(result.nodeBefore, textFormatTransformersIndex, textMatchTransformers);
44
- }
45
- if (result.transformedNode && $isTextNode(result.transformedNode) && !result.transformedNode.hasFormat('code')) {
46
- importTextTransformers(result.transformedNode, textFormatTransformersIndex, textMatchTransformers);
47
- }
48
- }
49
- // Handle escape characters
50
- const textContent = textNode.getTextContent();
51
- const escapedText = textContent.replace(/\\([*_`~])/g, '$1');
52
- textNode.setTextContent(escapedText);
53
- }
54
- //# sourceMappingURL=importTextTransformers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"importTextTransformers.js","names":["$isTextNode","findOutermostTextFormatTransformer","importTextFormatTransformer","findOutermostTextMatchTransformer","importFoundTextMatchTransformer","importTextTransformers","textNode","textFormatTransformersIndex","textMatchTransformers","foundTextFormat","foundTextMatch","startIndex","endIndex","result","transformer","match","nodeAfter","hasFormat","nodeBefore","transformedNode","textContent","getTextContent","escapedText","replace","setTextContent"],"sources":["../../../../src/packages/@lexical/markdown/importTextTransformers.ts"],"sourcesContent":["import { $isTextNode, type TextNode } from 'lexical'\n\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 */\nimport type { TextFormatTransformersIndex } from './MarkdownImport.js'\nimport type { TextMatchTransformer } from './MarkdownTransformers.js'\n\nimport {\n findOutermostTextFormatTransformer,\n importTextFormatTransformer,\n} from './importTextFormatTransformer.js'\nimport {\n findOutermostTextMatchTransformer,\n importFoundTextMatchTransformer,\n} from './importTextMatchTransformer.js'\n\n/**\n * Handles applying both text format and text match transformers.\n * It finds the outermost text format or text match and applies it,\n * then recursively calls itself to apply the next outermost transformer,\n * until there are no more transformers to apply.\n */\nexport function importTextTransformers(\n textNode: TextNode,\n textFormatTransformersIndex: TextFormatTransformersIndex,\n textMatchTransformers: Array<TextMatchTransformer>,\n) {\n let foundTextFormat = findOutermostTextFormatTransformer(textNode, textFormatTransformersIndex)\n\n let foundTextMatch = findOutermostTextMatchTransformer(textNode, textMatchTransformers)\n\n if (foundTextFormat && foundTextMatch) {\n // Find the outermost transformer\n if (\n foundTextFormat.startIndex <= foundTextMatch.startIndex &&\n foundTextFormat.endIndex >= foundTextMatch.endIndex\n ) {\n // foundTextFormat wraps foundTextMatch - apply foundTextFormat by setting foundTextMatch to null\n foundTextMatch = null\n } else {\n // foundTextMatch wraps foundTextFormat - apply foundTextMatch by setting foundTextFormat to null\n foundTextFormat = null\n }\n }\n\n if (foundTextFormat) {\n const result = importTextFormatTransformer(\n textNode,\n foundTextFormat.startIndex,\n foundTextFormat.endIndex,\n foundTextFormat.transformer,\n foundTextFormat.match,\n )\n\n if (result.nodeAfter && $isTextNode(result.nodeAfter) && !result.nodeAfter.hasFormat('code')) {\n importTextTransformers(result.nodeAfter, textFormatTransformersIndex, textMatchTransformers)\n }\n if (\n result.nodeBefore &&\n $isTextNode(result.nodeBefore) &&\n !result.nodeBefore.hasFormat('code')\n ) {\n importTextTransformers(result.nodeBefore, textFormatTransformersIndex, textMatchTransformers)\n }\n if (\n result.transformedNode &&\n $isTextNode(result.transformedNode) &&\n !result.transformedNode.hasFormat('code')\n ) {\n importTextTransformers(\n result.transformedNode,\n textFormatTransformersIndex,\n textMatchTransformers,\n )\n }\n } else if (foundTextMatch) {\n const result = importFoundTextMatchTransformer(\n textNode,\n foundTextMatch.startIndex,\n foundTextMatch.endIndex,\n foundTextMatch.transformer,\n foundTextMatch.match,\n )\n if (!result) {\n return\n }\n\n if (result.nodeAfter && $isTextNode(result.nodeAfter) && !result.nodeAfter.hasFormat('code')) {\n importTextTransformers(result.nodeAfter, textFormatTransformersIndex, textMatchTransformers)\n }\n if (\n result.nodeBefore &&\n $isTextNode(result.nodeBefore) &&\n !result.nodeBefore.hasFormat('code')\n ) {\n importTextTransformers(result.nodeBefore, textFormatTransformersIndex, textMatchTransformers)\n }\n if (\n result.transformedNode &&\n $isTextNode(result.transformedNode) &&\n !result.transformedNode.hasFormat('code')\n ) {\n importTextTransformers(\n result.transformedNode,\n textFormatTransformersIndex,\n textMatchTransformers,\n )\n }\n }\n // Handle escape characters\n const textContent = textNode.getTextContent()\n const escapedText = textContent.replace(/\\\\([*_`~])/g, '$1')\n textNode.setTextContent(escapedText)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,29 +0,0 @@
1
- /**
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
- */
8
- import type { ElementNode } from 'lexical';
9
- import type { ElementTransformer, MultilineElementTransformer, TextFormatTransformer, TextMatchTransformer, Transformer } from './MarkdownTransformers.js';
10
- import { registerMarkdownShortcuts } from './MarkdownShortcuts.js';
11
- import { BOLD_ITALIC_STAR, BOLD_ITALIC_UNDERSCORE, BOLD_STAR, BOLD_UNDERSCORE, CHECK_LIST, HEADING, HIGHLIGHT, INLINE_CODE, ITALIC_STAR, ITALIC_UNDERSCORE, ORDERED_LIST, QUOTE, STRIKETHROUGH, UNORDERED_LIST } from './MarkdownTransformers.js';
12
- declare const ELEMENT_TRANSFORMERS: Array<ElementTransformer>;
13
- declare const MULTILINE_ELEMENT_TRANSFORMERS: Array<MultilineElementTransformer>;
14
- declare const TEXT_FORMAT_TRANSFORMERS: Array<TextFormatTransformer>;
15
- declare const TEXT_MATCH_TRANSFORMERS: Array<TextMatchTransformer>;
16
- declare const TRANSFORMERS: Array<Transformer>;
17
- /**
18
- * Renders markdown from a string. The selection is moved to the start after the operation.
19
- *
20
- * @param {boolean} [shouldPreserveNewLines] By setting this to true, new lines will be preserved between conversions
21
- * @param {boolean} [shouldMergeAdjacentLines] By setting this to true, adjacent non empty lines will be merged according to commonmark spec: https://spec.commonmark.org/0.24/#example-177. Not applicable if shouldPreserveNewLines = true.
22
- */
23
- declare function $convertFromMarkdownString(markdown: string, transformers?: Array<Transformer>, node?: ElementNode, shouldPreserveNewLines?: boolean, shouldMergeAdjacentLines?: boolean): void;
24
- /**
25
- * Renders string from markdown. The selection is moved to the start after the operation.
26
- */
27
- declare function $convertToMarkdownString(transformers?: Array<Transformer>, node?: ElementNode, shouldPreserveNewLines?: boolean): string;
28
- export { $convertFromMarkdownString, $convertToMarkdownString, BOLD_ITALIC_STAR, BOLD_ITALIC_UNDERSCORE, BOLD_STAR, BOLD_UNDERSCORE, CHECK_LIST, ELEMENT_TRANSFORMERS, type ElementTransformer, HEADING, HIGHLIGHT, INLINE_CODE, ITALIC_STAR, ITALIC_UNDERSCORE, MULTILINE_ELEMENT_TRANSFORMERS, type MultilineElementTransformer, ORDERED_LIST, QUOTE, registerMarkdownShortcuts, STRIKETHROUGH, TEXT_FORMAT_TRANSFORMERS, TEXT_MATCH_TRANSFORMERS, type TextFormatTransformer, type TextMatchTransformer, type Transformer, TRANSFORMERS, UNORDERED_LIST, };
29
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/packages/@lexical/markdown/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,KAAK,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACZ,MAAM,2BAA2B,CAAA;AAIlC,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,SAAS,EACT,eAAe,EACf,UAAU,EACV,OAAO,EACP,SAAS,EACT,WAAW,EACX,WAAW,EACX,iBAAiB,EAEjB,YAAY,EACZ,KAAK,EACL,aAAa,EACb,cAAc,EACf,MAAM,2BAA2B,CAAA;AAElC,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,kBAAkB,CAKnD,CAAA;AAED,QAAA,MAAM,8BAA8B,EAAE,KAAK,CAAC,2BAA2B,CAAM,CAAA;AAM7E,QAAA,MAAM,wBAAwB,EAAE,KAAK,CAAC,qBAAqB,CAU1D,CAAA;AAED,QAAA,MAAM,uBAAuB,EAAE,KAAK,CAAC,oBAAoB,CAAM,CAAA;AAE/D,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,WAAW,CAKpC,CAAA;AAED;;;;;GAKG;AACH,iBAAS,0BAA0B,CACjC,QAAQ,EAAE,MAAM,EAChB,YAAY,GAAE,KAAK,CAAC,WAAW,CAAgB,EAC/C,IAAI,CAAC,EAAE,WAAW,EAClB,sBAAsB,UAAQ,EAC9B,wBAAwB,UAAO,GAC9B,IAAI,CAMN;AAED;;GAEG;AACH,iBAAS,wBAAwB,CAC/B,YAAY,GAAE,KAAK,CAAC,WAAW,CAAgB,EAC/C,IAAI,CAAC,EAAE,WAAW,EAClB,sBAAsB,GAAE,OAAe,GACtC,MAAM,CAGR;AAED,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,SAAS,EACT,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,OAAO,EACP,SAAS,EACT,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,8BAA8B,EAC9B,KAAK,2BAA2B,EAChC,YAAY,EACZ,KAAK,EACL,yBAAyB,EACzB,aAAa,EACb,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,YAAY,EACZ,cAAc,GACf,CAAA"}
@@ -1,39 +0,0 @@
1
- /**
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 { createMarkdownExport } from './MarkdownExport.js';
8
- import { createMarkdownImport } from './MarkdownImport.js';
9
- import { registerMarkdownShortcuts } from './MarkdownShortcuts.js';
10
- import { BOLD_ITALIC_STAR, BOLD_ITALIC_UNDERSCORE, BOLD_STAR, BOLD_UNDERSCORE, CHECK_LIST, HEADING, HIGHLIGHT, INLINE_CODE, ITALIC_STAR, ITALIC_UNDERSCORE, normalizeMarkdown, ORDERED_LIST, QUOTE, STRIKETHROUGH, UNORDERED_LIST } from './MarkdownTransformers.js';
11
- const ELEMENT_TRANSFORMERS = [HEADING, QUOTE, UNORDERED_LIST, ORDERED_LIST];
12
- const MULTILINE_ELEMENT_TRANSFORMERS = [];
13
- // Order of text format transformers matters:
14
- //
15
- // - code should go first as it prevents any transformations inside
16
- // - then longer tags match (e.g. ** or __ should go before * or _)
17
- const TEXT_FORMAT_TRANSFORMERS = [INLINE_CODE, BOLD_ITALIC_STAR, BOLD_ITALIC_UNDERSCORE, BOLD_STAR, BOLD_UNDERSCORE, HIGHLIGHT, ITALIC_STAR, ITALIC_UNDERSCORE, STRIKETHROUGH];
18
- const TEXT_MATCH_TRANSFORMERS = [];
19
- const TRANSFORMERS = [...ELEMENT_TRANSFORMERS, ...MULTILINE_ELEMENT_TRANSFORMERS, ...TEXT_FORMAT_TRANSFORMERS, ...TEXT_MATCH_TRANSFORMERS];
20
- /**
21
- * Renders markdown from a string. The selection is moved to the start after the operation.
22
- *
23
- * @param {boolean} [shouldPreserveNewLines] By setting this to true, new lines will be preserved between conversions
24
- * @param {boolean} [shouldMergeAdjacentLines] By setting this to true, adjacent non empty lines will be merged according to commonmark spec: https://spec.commonmark.org/0.24/#example-177. Not applicable if shouldPreserveNewLines = true.
25
- */
26
- function $convertFromMarkdownString(markdown, transformers = TRANSFORMERS, node, shouldPreserveNewLines = false, shouldMergeAdjacentLines = true) {
27
- const sanitizedMarkdown = shouldPreserveNewLines ? markdown : normalizeMarkdown(markdown, shouldMergeAdjacentLines);
28
- const importMarkdown = createMarkdownImport(transformers, shouldPreserveNewLines);
29
- return importMarkdown(sanitizedMarkdown, node);
30
- }
31
- /**
32
- * Renders string from markdown. The selection is moved to the start after the operation.
33
- */
34
- function $convertToMarkdownString(transformers = TRANSFORMERS, node, shouldPreserveNewLines = false) {
35
- const exportMarkdown = createMarkdownExport(transformers, shouldPreserveNewLines);
36
- return exportMarkdown(node);
37
- }
38
- export { $convertFromMarkdownString, $convertToMarkdownString, BOLD_ITALIC_STAR, BOLD_ITALIC_UNDERSCORE, BOLD_STAR, BOLD_UNDERSCORE, CHECK_LIST, ELEMENT_TRANSFORMERS, HEADING, HIGHLIGHT, INLINE_CODE, ITALIC_STAR, ITALIC_UNDERSCORE, MULTILINE_ELEMENT_TRANSFORMERS, ORDERED_LIST, QUOTE, registerMarkdownShortcuts, STRIKETHROUGH, TEXT_FORMAT_TRANSFORMERS, TEXT_MATCH_TRANSFORMERS, TRANSFORMERS, UNORDERED_LIST };
39
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["createMarkdownExport","createMarkdownImport","registerMarkdownShortcuts","BOLD_ITALIC_STAR","BOLD_ITALIC_UNDERSCORE","BOLD_STAR","BOLD_UNDERSCORE","CHECK_LIST","HEADING","HIGHLIGHT","INLINE_CODE","ITALIC_STAR","ITALIC_UNDERSCORE","normalizeMarkdown","ORDERED_LIST","QUOTE","STRIKETHROUGH","UNORDERED_LIST","ELEMENT_TRANSFORMERS","MULTILINE_ELEMENT_TRANSFORMERS","TEXT_FORMAT_TRANSFORMERS","TEXT_MATCH_TRANSFORMERS","TRANSFORMERS","$convertFromMarkdownString","markdown","transformers","node","shouldPreserveNewLines","shouldMergeAdjacentLines","sanitizedMarkdown","importMarkdown","$convertToMarkdownString","exportMarkdown"],"sources":["../../../../src/packages/@lexical/markdown/index.ts"],"sourcesContent":["/**\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 { ElementNode } from 'lexical'\n\nimport type {\n ElementTransformer,\n MultilineElementTransformer,\n TextFormatTransformer,\n TextMatchTransformer,\n Transformer,\n} from './MarkdownTransformers.js'\n\nimport { createMarkdownExport } from './MarkdownExport.js'\nimport { createMarkdownImport } from './MarkdownImport.js'\nimport { registerMarkdownShortcuts } from './MarkdownShortcuts.js'\nimport {\n BOLD_ITALIC_STAR,\n BOLD_ITALIC_UNDERSCORE,\n BOLD_STAR,\n BOLD_UNDERSCORE,\n CHECK_LIST,\n HEADING,\n HIGHLIGHT,\n INLINE_CODE,\n ITALIC_STAR,\n ITALIC_UNDERSCORE,\n normalizeMarkdown,\n ORDERED_LIST,\n QUOTE,\n STRIKETHROUGH,\n UNORDERED_LIST,\n} from './MarkdownTransformers.js'\n\nconst ELEMENT_TRANSFORMERS: Array<ElementTransformer> = [\n HEADING,\n QUOTE,\n UNORDERED_LIST,\n ORDERED_LIST,\n]\n\nconst MULTILINE_ELEMENT_TRANSFORMERS: Array<MultilineElementTransformer> = []\n\n// Order of text format transformers matters:\n//\n// - code should go first as it prevents any transformations inside\n// - then longer tags match (e.g. ** or __ should go before * or _)\nconst TEXT_FORMAT_TRANSFORMERS: Array<TextFormatTransformer> = [\n INLINE_CODE,\n BOLD_ITALIC_STAR,\n BOLD_ITALIC_UNDERSCORE,\n BOLD_STAR,\n BOLD_UNDERSCORE,\n HIGHLIGHT,\n ITALIC_STAR,\n ITALIC_UNDERSCORE,\n STRIKETHROUGH,\n]\n\nconst TEXT_MATCH_TRANSFORMERS: Array<TextMatchTransformer> = []\n\nconst TRANSFORMERS: Array<Transformer> = [\n ...ELEMENT_TRANSFORMERS,\n ...MULTILINE_ELEMENT_TRANSFORMERS,\n ...TEXT_FORMAT_TRANSFORMERS,\n ...TEXT_MATCH_TRANSFORMERS,\n]\n\n/**\n * Renders markdown from a string. The selection is moved to the start after the operation.\n *\n * @param {boolean} [shouldPreserveNewLines] By setting this to true, new lines will be preserved between conversions\n * @param {boolean} [shouldMergeAdjacentLines] By setting this to true, adjacent non empty lines will be merged according to commonmark spec: https://spec.commonmark.org/0.24/#example-177. Not applicable if shouldPreserveNewLines = true.\n */\nfunction $convertFromMarkdownString(\n markdown: string,\n transformers: Array<Transformer> = TRANSFORMERS,\n node?: ElementNode,\n shouldPreserveNewLines = false,\n shouldMergeAdjacentLines = true,\n): void {\n const sanitizedMarkdown = shouldPreserveNewLines\n ? markdown\n : normalizeMarkdown(markdown, shouldMergeAdjacentLines)\n const importMarkdown = createMarkdownImport(transformers, shouldPreserveNewLines)\n return importMarkdown(sanitizedMarkdown, node)\n}\n\n/**\n * Renders string from markdown. The selection is moved to the start after the operation.\n */\nfunction $convertToMarkdownString(\n transformers: Array<Transformer> = TRANSFORMERS,\n node?: ElementNode,\n shouldPreserveNewLines: boolean = false,\n): string {\n const exportMarkdown = createMarkdownExport(transformers, shouldPreserveNewLines)\n return exportMarkdown(node)\n}\n\nexport {\n $convertFromMarkdownString,\n $convertToMarkdownString,\n BOLD_ITALIC_STAR,\n BOLD_ITALIC_UNDERSCORE,\n BOLD_STAR,\n BOLD_UNDERSCORE,\n CHECK_LIST,\n ELEMENT_TRANSFORMERS,\n type ElementTransformer,\n HEADING,\n HIGHLIGHT,\n INLINE_CODE,\n ITALIC_STAR,\n ITALIC_UNDERSCORE,\n MULTILINE_ELEMENT_TRANSFORMERS,\n type MultilineElementTransformer,\n ORDERED_LIST,\n QUOTE,\n registerMarkdownShortcuts,\n STRIKETHROUGH,\n TEXT_FORMAT_TRANSFORMERS,\n TEXT_MATCH_TRANSFORMERS,\n type TextFormatTransformer,\n type TextMatchTransformer,\n type Transformer,\n TRANSFORMERS,\n UNORDERED_LIST,\n}\n"],"mappings":"AAAA;;;;;;GAkBA,SAASA,oBAAoB,QAAQ;AACrC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,yBAAyB,QAAQ;AAC1C,SACEC,gBAAgB,EAChBC,sBAAsB,EACtBC,SAAS,EACTC,eAAe,EACfC,UAAU,EACVC,OAAO,EACPC,SAAS,EACTC,WAAW,EACXC,WAAW,EACXC,iBAAiB,EACjBC,iBAAiB,EACjBC,YAAY,EACZC,KAAK,EACLC,aAAa,EACbC,cAAc,QACT;AAEP,MAAMC,oBAAA,GAAkD,CACtDV,OAAA,EACAO,KAAA,EACAE,cAAA,EACAH,YAAA,CACD;AAED,MAAMK,8BAAA,GAAqE,EAAE;AAE7E;AACA;AACA;AACA;AACA,MAAMC,wBAAA,GAAyD,CAC7DV,WAAA,EACAP,gBAAA,EACAC,sBAAA,EACAC,SAAA,EACAC,eAAA,EACAG,SAAA,EACAE,WAAA,EACAC,iBAAA,EACAI,aAAA,CACD;AAED,MAAMK,uBAAA,GAAuD,EAAE;AAE/D,MAAMC,YAAA,GAAmC,C,GACpCJ,oBAAA,E,GACAC,8BAAA,E,GACAC,wBAAA,E,GACAC,uBAAA,CACJ;AAED;;;;;;AAMA,SAASE,2BACPC,QAAgB,EAChBC,YAAA,GAAmCH,YAAY,EAC/CI,IAAkB,EAClBC,sBAAA,GAAyB,KAAK,EAC9BC,wBAAA,GAA2B,IAAI;EAE/B,MAAMC,iBAAA,GAAoBF,sBAAA,GACtBH,QAAA,GACAX,iBAAA,CAAkBW,QAAA,EAAUI,wBAAA;EAChC,MAAME,cAAA,GAAiB7B,oBAAA,CAAqBwB,YAAA,EAAcE,sBAAA;EAC1D,OAAOG,cAAA,CAAeD,iBAAA,EAAmBH,IAAA;AAC3C;AAEA;;;AAGA,SAASK,yBACPN,YAAA,GAAmCH,YAAY,EAC/CI,IAAkB,EAClBC,sBAAA,GAAkC,KAAK;EAEvC,MAAMK,cAAA,GAAiBhC,oBAAA,CAAqByB,YAAA,EAAcE,sBAAA;EAC1D,OAAOK,cAAA,CAAeN,IAAA;AACxB;AAEA,SACEH,0BAA0B,EAC1BQ,wBAAwB,EACxB5B,gBAAgB,EAChBC,sBAAsB,EACtBC,SAAS,EACTC,eAAe,EACfC,UAAU,EACVW,oBAAoB,EAEpBV,OAAO,EACPC,SAAS,EACTC,WAAW,EACXC,WAAW,EACXC,iBAAiB,EACjBO,8BAA8B,EAE9BL,YAAY,EACZC,KAAK,EACLb,yBAAyB,EACzBc,aAAa,EACbI,wBAAwB,EACxBC,uBAAuB,EAIvBC,YAAY,EACZL,cAAc","ignoreList":[]}
@@ -1,34 +0,0 @@
1
- /**
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
- */
8
- import { type ElementNode, type LexicalNode, type TextFormatType } from 'lexical';
9
- import type { ElementTransformer, MultilineElementTransformer, TextFormatTransformer, TextMatchTransformer, Transformer } from './MarkdownTransformers.js';
10
- type MarkdownFormatKind = 'bold' | 'code' | 'horizontalRule' | 'italic' | 'italic_bold' | 'link' | 'noTransformation' | 'paragraphBlockQuote' | 'paragraphCodeBlock' | 'paragraphH1' | 'paragraphH2' | 'paragraphH3' | 'paragraphH4' | 'paragraphH5' | 'paragraphH6' | 'paragraphOrderedList' | 'paragraphUnorderedList' | 'strikethrough' | 'strikethrough_bold' | 'strikethrough_italic' | 'strikethrough_italic_bold' | 'underline';
11
- type MarkdownCriteria = Readonly<{
12
- export?: (node: LexicalNode, traverseChildren: (elementNode: ElementNode) => string) => null | string;
13
- exportFormat?: TextFormatType;
14
- exportTag?: string;
15
- exportTagClose?: string;
16
- markdownFormatKind: MarkdownFormatKind | null | undefined;
17
- regEx: RegExp;
18
- regExForAutoFormatting: RegExp;
19
- requiresParagraphStart: boolean | null | undefined;
20
- }>;
21
- type MarkdownCriteriaArray = Array<MarkdownCriteria>;
22
- export declare function getAllMarkdownCriteriaForParagraphs(): MarkdownCriteriaArray;
23
- export declare function getAllMarkdownCriteriaForTextNodes(): MarkdownCriteriaArray;
24
- export declare function indexBy<T>(list: Array<T>, callback: (arg0: T) => string | undefined): Readonly<Record<string, Array<T>>>;
25
- export declare function transformersByType(transformers: Array<Transformer>): Readonly<{
26
- element: Array<ElementTransformer>;
27
- multilineElement: Array<MultilineElementTransformer>;
28
- textFormat: Array<TextFormatTransformer>;
29
- textMatch: Array<TextMatchTransformer>;
30
- }>;
31
- export declare const PUNCTUATION_OR_SPACE: RegExp;
32
- export declare function isEmptyParagraph(node: LexicalNode): boolean;
33
- export {};
34
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/packages/@lexical/markdown/utils.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AAMH,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACZ,MAAM,2BAA2B,CAAA;AAElC,KAAK,kBAAkB,GACnB,MAAM,GACN,MAAM,GACN,gBAAgB,GAChB,QAAQ,GACR,aAAa,GACb,MAAM,GACN,kBAAkB,GAClB,qBAAqB,GACrB,oBAAoB,GACpB,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,sBAAsB,GACtB,wBAAwB,GACxB,eAAe,GACf,oBAAoB,GACpB,sBAAsB,GACtB,2BAA2B,GAC3B,WAAW,CAAA;AAEf,KAAK,gBAAgB,GAAG,QAAQ,CAAC;IAC/B,MAAM,CAAC,EAAE,CACP,IAAI,EAAE,WAAW,EACjB,gBAAgB,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,MAAM,KACnD,IAAI,GAAG,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,cAAc,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,CAAA;IACzD,KAAK,EAAE,MAAM,CAAA;IACb,sBAAsB,EAAE,MAAM,CAAA;IAC9B,sBAAsB,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;CACnD,CAAC,CAAA;AAEF,KAAK,qBAAqB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAA;AA+OpD,wBAAgB,mCAAmC,IAAI,qBAAqB,CAE3E;AAED,wBAAgB,kCAAkC,IAAI,qBAAqB,CAE1E;AAwDD,wBAAgB,OAAO,CAAC,CAAC,EACvB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EACd,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,GACxC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAkBpC;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;IAC7E,OAAO,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAA;IAClC,gBAAgB,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAA;IACpD,UAAU,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACxC,SAAS,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAA;CACvC,CAAC,CASD;AAED,eAAO,MAAM,oBAAoB,QAAqB,CAAA;AAItD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAY3D"}