@payloadcms/richtext-lexical 3.28.0-canary.8f6d2e7 → 3.28.0-internal.2b0876e

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 (400) hide show
  1. package/dist/exports/client/Field-FLAQN6LU.js +2 -0
  2. package/dist/exports/client/Field-FLAQN6LU.js.map +7 -0
  3. package/dist/exports/client/bundled.css +1 -1
  4. package/dist/exports/client/chunk-XO6X2M3F.js +12 -0
  5. package/dist/exports/client/chunk-XO6X2M3F.js.map +7 -0
  6. package/dist/exports/client/index.d.ts +1 -0
  7. package/dist/exports/client/index.d.ts.map +1 -1
  8. package/dist/exports/client/index.js +10 -10
  9. package/dist/exports/client/index.js.map +4 -4
  10. package/dist/exports/html/index.d.ts +16 -0
  11. package/dist/exports/html/index.d.ts.map +1 -0
  12. package/dist/exports/html/index.js +14 -0
  13. package/dist/exports/html/index.js.map +1 -0
  14. package/dist/exports/html-async/index.d.ts +16 -0
  15. package/dist/exports/html-async/index.d.ts.map +1 -0
  16. package/dist/exports/html-async/index.js +14 -0
  17. package/dist/exports/html-async/index.js.map +1 -0
  18. package/dist/exports/react/index.d.ts +15 -15
  19. package/dist/exports/react/index.d.ts.map +1 -1
  20. package/dist/exports/react/index.js +14 -14
  21. package/dist/exports/react/index.js.map +1 -1
  22. package/dist/features/blockquote/markdownTransformer.d.ts.map +1 -1
  23. package/dist/features/blockquote/markdownTransformer.js +1 -2
  24. package/dist/features/blockquote/markdownTransformer.js.map +1 -1
  25. package/dist/features/blockquote/server/index.js +1 -1
  26. package/dist/features/blockquote/server/index.js.map +1 -1
  27. package/dist/features/blocks/server/nodes/BlocksNode.d.ts +1 -1
  28. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  29. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  30. package/dist/features/converters/html/async/converters/blockquote.d.ts +4 -0
  31. package/dist/features/converters/html/async/converters/blockquote.d.ts.map +1 -0
  32. package/dist/features/converters/html/async/converters/blockquote.js +13 -0
  33. package/dist/features/converters/html/async/converters/blockquote.js.map +1 -0
  34. package/dist/features/converters/html/async/converters/heading.d.ts +4 -0
  35. package/dist/features/converters/html/async/converters/heading.d.ts.map +1 -0
  36. package/dist/features/converters/html/async/converters/heading.js +13 -0
  37. package/dist/features/converters/html/async/converters/heading.js.map +1 -0
  38. package/dist/features/converters/html/async/converters/horizontalRule.d.ts +4 -0
  39. package/dist/features/converters/html/async/converters/horizontalRule.d.ts.map +1 -0
  40. package/dist/features/converters/html/async/converters/horizontalRule.js +4 -0
  41. package/dist/features/converters/html/async/converters/horizontalRule.js.map +1 -0
  42. package/dist/features/converters/html/async/converters/linebreak.d.ts +4 -0
  43. package/dist/features/converters/html/async/converters/linebreak.d.ts.map +1 -0
  44. package/dist/features/converters/html/async/converters/linebreak.js +4 -0
  45. package/dist/features/converters/html/async/converters/linebreak.js.map +1 -0
  46. package/dist/features/converters/html/async/converters/link.d.ts +9 -0
  47. package/dist/features/converters/html/async/converters/link.d.ts.map +1 -0
  48. package/dist/features/converters/html/async/converters/link.js +51 -0
  49. package/dist/features/converters/html/async/converters/link.js.map +1 -0
  50. package/dist/features/converters/html/async/converters/list.d.ts +4 -0
  51. package/dist/features/converters/html/async/converters/list.d.ts.map +1 -0
  52. package/dist/features/converters/html/async/converters/list.js +46 -0
  53. package/dist/features/converters/html/async/converters/list.js.map +1 -0
  54. package/dist/features/converters/html/async/converters/paragraph.d.ts +4 -0
  55. package/dist/features/converters/html/async/converters/paragraph.d.ts.map +1 -0
  56. package/dist/features/converters/html/async/converters/paragraph.js +16 -0
  57. package/dist/features/converters/html/async/converters/paragraph.js.map +1 -0
  58. package/dist/features/converters/html/async/converters/tab.d.ts +4 -0
  59. package/dist/features/converters/html/async/converters/tab.d.ts.map +1 -0
  60. package/dist/features/converters/html/async/converters/tab.js +4 -0
  61. package/dist/features/converters/html/async/converters/tab.js.map +1 -0
  62. package/dist/features/converters/html/async/converters/table.d.ts +4 -0
  63. package/dist/features/converters/html/async/converters/table.d.ts.map +1 -0
  64. package/dist/features/converters/html/async/converters/table.js +55 -0
  65. package/dist/features/converters/html/async/converters/table.js.map +1 -0
  66. package/dist/features/converters/html/async/converters/text.d.ts +4 -0
  67. package/dist/features/converters/html/async/converters/text.d.ts.map +1 -0
  68. package/dist/features/converters/html/async/converters/text.js +31 -0
  69. package/dist/features/converters/html/async/converters/text.js.map +1 -0
  70. package/dist/features/converters/html/async/converters/upload.d.ts +4 -0
  71. package/dist/features/converters/html/async/converters/upload.d.ts.map +1 -0
  72. package/dist/features/converters/html/async/converters/upload.js +66 -0
  73. package/dist/features/converters/html/async/converters/upload.js.map +1 -0
  74. package/dist/features/converters/html/async/defaultConverters.d.ts +4 -0
  75. package/dist/features/converters/html/async/defaultConverters.d.ts.map +1 -0
  76. package/dist/features/converters/html/async/defaultConverters.js +25 -0
  77. package/dist/features/converters/html/async/defaultConverters.js.map +1 -0
  78. package/dist/features/converters/html/async/field/index.d.ts +33 -0
  79. package/dist/features/converters/html/async/field/index.d.ts.map +1 -0
  80. package/dist/features/converters/html/async/field/index.js +67 -0
  81. package/dist/features/converters/html/async/field/index.js.map +1 -0
  82. package/dist/features/converters/html/async/index.d.ts +34 -0
  83. package/dist/features/converters/html/async/index.d.ts.map +1 -0
  84. package/dist/features/converters/html/async/index.js +107 -0
  85. package/dist/features/converters/html/async/index.js.map +1 -0
  86. package/dist/features/converters/html/async/types.d.ts +82 -0
  87. package/dist/features/converters/html/async/types.d.ts.map +1 -0
  88. package/dist/features/converters/html/async/types.js.map +1 -0
  89. package/dist/features/converters/html/shared/findConverterForNode.d.ts +15 -0
  90. package/dist/features/converters/html/shared/findConverterForNode.d.ts.map +1 -0
  91. package/dist/features/converters/html/shared/findConverterForNode.js +64 -0
  92. package/dist/features/converters/html/shared/findConverterForNode.js.map +1 -0
  93. package/dist/features/converters/html/shared/types.d.ts +9 -0
  94. package/dist/features/converters/html/shared/types.d.ts.map +1 -0
  95. package/dist/features/converters/html/shared/types.js.map +1 -0
  96. package/dist/features/converters/html/sync/converters/blockquote.d.ts +4 -0
  97. package/dist/features/converters/html/sync/converters/blockquote.d.ts.map +1 -0
  98. package/dist/features/converters/html/sync/converters/blockquote.js +13 -0
  99. package/dist/features/converters/html/sync/converters/blockquote.js.map +1 -0
  100. package/dist/features/converters/html/sync/converters/heading.d.ts +4 -0
  101. package/dist/features/converters/html/sync/converters/heading.d.ts.map +1 -0
  102. package/dist/features/converters/html/sync/converters/heading.js +13 -0
  103. package/dist/features/converters/html/sync/converters/heading.js.map +1 -0
  104. package/dist/features/converters/html/sync/converters/horizontalRule.d.ts +4 -0
  105. package/dist/features/converters/html/sync/converters/horizontalRule.d.ts.map +1 -0
  106. package/dist/features/converters/html/sync/converters/horizontalRule.js +4 -0
  107. package/dist/features/converters/html/sync/converters/horizontalRule.js.map +1 -0
  108. package/dist/features/converters/html/sync/converters/linebreak.d.ts +4 -0
  109. package/dist/features/converters/html/sync/converters/linebreak.d.ts.map +1 -0
  110. package/dist/features/converters/html/sync/converters/linebreak.js +4 -0
  111. package/dist/features/converters/html/sync/converters/linebreak.js.map +1 -0
  112. package/dist/features/converters/html/sync/converters/link.d.ts +8 -0
  113. package/dist/features/converters/html/sync/converters/link.d.ts.map +1 -0
  114. package/dist/features/converters/html/sync/converters/link.js +49 -0
  115. package/dist/features/converters/html/sync/converters/link.js.map +1 -0
  116. package/dist/features/converters/html/sync/converters/list.d.ts +4 -0
  117. package/dist/features/converters/html/sync/converters/list.d.ts.map +1 -0
  118. package/dist/features/converters/html/sync/converters/list.js +46 -0
  119. package/dist/features/converters/html/sync/converters/list.js.map +1 -0
  120. package/dist/features/converters/html/sync/converters/paragraph.d.ts +4 -0
  121. package/dist/features/converters/html/sync/converters/paragraph.d.ts.map +1 -0
  122. package/dist/features/converters/html/sync/converters/paragraph.js +16 -0
  123. package/dist/features/converters/html/sync/converters/paragraph.js.map +1 -0
  124. package/dist/features/converters/html/sync/converters/tab.d.ts +4 -0
  125. package/dist/features/converters/html/sync/converters/tab.d.ts.map +1 -0
  126. package/dist/features/converters/html/sync/converters/tab.js +4 -0
  127. package/dist/features/converters/html/sync/converters/tab.js.map +1 -0
  128. package/dist/features/converters/html/sync/converters/table.d.ts +4 -0
  129. package/dist/features/converters/html/sync/converters/table.d.ts.map +1 -0
  130. package/dist/features/converters/html/sync/converters/table.js +55 -0
  131. package/dist/features/converters/html/sync/converters/table.js.map +1 -0
  132. package/dist/features/converters/html/sync/converters/text.d.ts +4 -0
  133. package/dist/features/converters/html/sync/converters/text.d.ts.map +1 -0
  134. package/dist/features/converters/html/sync/converters/text.js +31 -0
  135. package/dist/features/converters/html/sync/converters/text.js.map +1 -0
  136. package/dist/features/converters/html/sync/converters/upload.d.ts +4 -0
  137. package/dist/features/converters/html/sync/converters/upload.d.ts.map +1 -0
  138. package/dist/features/converters/html/sync/converters/upload.js +59 -0
  139. package/dist/features/converters/html/sync/converters/upload.js.map +1 -0
  140. package/dist/features/converters/html/sync/defaultConverters.d.ts +4 -0
  141. package/dist/features/converters/html/sync/defaultConverters.d.ts.map +1 -0
  142. package/dist/features/converters/html/sync/defaultConverters.js +25 -0
  143. package/dist/features/converters/html/sync/defaultConverters.js.map +1 -0
  144. package/dist/features/converters/html/sync/index.d.ts +32 -0
  145. package/dist/features/converters/html/sync/index.d.ts.map +1 -0
  146. package/dist/features/converters/html/sync/index.js +102 -0
  147. package/dist/features/converters/html/sync/index.js.map +1 -0
  148. package/dist/features/converters/html/sync/types.d.ts +74 -0
  149. package/dist/features/converters/html/sync/types.d.ts.map +1 -0
  150. package/dist/features/converters/html/sync/types.js +2 -0
  151. package/dist/features/converters/html/sync/types.js.map +1 -0
  152. package/dist/features/converters/html_deprecated/converter/converters/linebreak.d.ts.map +1 -0
  153. package/dist/features/converters/html_deprecated/converter/converters/linebreak.js.map +1 -0
  154. package/dist/features/converters/html_deprecated/converter/converters/paragraph.d.ts.map +1 -0
  155. package/dist/features/converters/html_deprecated/converter/converters/paragraph.js.map +1 -0
  156. package/dist/features/converters/html_deprecated/converter/converters/tab.d.ts.map +1 -0
  157. package/dist/features/converters/html_deprecated/converter/converters/tab.js.map +1 -0
  158. package/dist/features/converters/html_deprecated/converter/converters/text.d.ts.map +1 -0
  159. package/dist/features/converters/html_deprecated/converter/converters/text.js.map +1 -0
  160. package/dist/features/converters/{html → html_deprecated}/converter/defaultConverters.d.ts +3 -0
  161. package/dist/features/converters/html_deprecated/converter/defaultConverters.d.ts.map +1 -0
  162. package/dist/features/converters/{html → html_deprecated}/converter/defaultConverters.js +3 -0
  163. package/dist/features/converters/html_deprecated/converter/defaultConverters.js.map +1 -0
  164. package/dist/features/converters/{html → html_deprecated}/converter/index.d.ts +9 -0
  165. package/dist/features/converters/html_deprecated/converter/index.d.ts.map +1 -0
  166. package/dist/features/converters/{html → html_deprecated}/converter/index.js +6 -0
  167. package/dist/features/converters/html_deprecated/converter/index.js.map +1 -0
  168. package/dist/features/converters/{html → html_deprecated}/converter/types.d.ts +3 -0
  169. package/dist/features/converters/html_deprecated/converter/types.d.ts.map +1 -0
  170. package/dist/features/converters/html_deprecated/converter/types.js +2 -0
  171. package/dist/features/converters/html_deprecated/converter/types.js.map +1 -0
  172. package/dist/features/converters/{html → html_deprecated}/field/index.d.ts +7 -3
  173. package/dist/features/converters/html_deprecated/field/index.d.ts.map +1 -0
  174. package/dist/features/converters/{html → html_deprecated}/field/index.js +6 -2
  175. package/dist/features/converters/html_deprecated/field/index.js.map +1 -0
  176. package/dist/features/converters/{html → html_deprecated}/index.d.ts +3 -0
  177. package/dist/features/converters/html_deprecated/index.d.ts.map +1 -0
  178. package/dist/features/converters/{html → html_deprecated}/index.js +3 -0
  179. package/dist/features/converters/html_deprecated/index.js.map +1 -0
  180. package/dist/{exports/react/components/RichText → features/converters/jsx/Component}/index.d.ts +2 -2
  181. package/dist/{exports/react/components/RichText → features/converters/jsx/Component}/index.d.ts.map +1 -1
  182. package/dist/{exports/react/components/RichText → features/converters/jsx/Component}/index.js +2 -2
  183. package/dist/features/converters/jsx/Component/index.js.map +1 -0
  184. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/blockquote.d.ts +1 -1
  185. package/dist/features/converters/jsx/converter/converters/blockquote.d.ts.map +1 -0
  186. package/dist/features/converters/jsx/converter/converters/blockquote.js.map +1 -0
  187. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/heading.d.ts +1 -1
  188. package/dist/features/converters/jsx/converter/converters/heading.d.ts.map +1 -0
  189. package/dist/features/converters/jsx/converter/converters/heading.js.map +1 -0
  190. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/horizontalRule.d.ts +1 -1
  191. package/dist/features/converters/jsx/converter/converters/horizontalRule.d.ts.map +1 -0
  192. package/dist/features/converters/jsx/converter/converters/horizontalRule.js +5 -0
  193. package/dist/features/converters/jsx/converter/converters/horizontalRule.js.map +1 -0
  194. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/linebreak.d.ts +1 -1
  195. package/dist/features/converters/jsx/converter/converters/linebreak.d.ts.map +1 -0
  196. package/dist/features/converters/jsx/converter/converters/linebreak.js +5 -0
  197. package/dist/features/converters/jsx/converter/converters/linebreak.js.map +1 -0
  198. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/link.d.ts +1 -1
  199. package/dist/features/converters/jsx/converter/converters/link.d.ts.map +1 -0
  200. package/dist/features/converters/jsx/converter/converters/link.js.map +1 -0
  201. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/list.d.ts +1 -1
  202. package/dist/features/converters/jsx/converter/converters/list.d.ts.map +1 -0
  203. package/dist/features/converters/jsx/converter/converters/list.js.map +1 -0
  204. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/paragraph.d.ts +1 -1
  205. package/dist/features/converters/jsx/converter/converters/paragraph.d.ts.map +1 -0
  206. package/dist/features/converters/jsx/converter/converters/paragraph.js.map +1 -0
  207. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/tab.d.ts +1 -1
  208. package/dist/features/converters/jsx/converter/converters/tab.d.ts.map +1 -0
  209. package/dist/features/converters/jsx/converter/converters/tab.js +4 -0
  210. package/dist/features/converters/jsx/converter/converters/tab.js.map +1 -0
  211. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/table.d.ts +1 -1
  212. package/dist/features/converters/jsx/converter/converters/table.d.ts.map +1 -0
  213. package/dist/features/converters/jsx/converter/converters/table.js.map +1 -0
  214. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/text.d.ts +1 -1
  215. package/dist/features/converters/jsx/converter/converters/text.d.ts.map +1 -0
  216. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/text.js +1 -1
  217. package/dist/features/converters/jsx/converter/converters/text.js.map +1 -0
  218. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/upload.d.ts +1 -1
  219. package/dist/features/converters/jsx/converter/converters/upload.d.ts.map +1 -0
  220. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/upload.js +2 -1
  221. package/dist/features/converters/jsx/converter/converters/upload.js.map +1 -0
  222. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/defaultConverters.d.ts +1 -1
  223. package/dist/features/converters/jsx/converter/defaultConverters.d.ts.map +1 -0
  224. package/dist/features/converters/jsx/converter/defaultConverters.js.map +1 -0
  225. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/index.d.ts +2 -2
  226. package/dist/features/converters/jsx/converter/index.d.ts.map +1 -0
  227. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/index.js +29 -43
  228. package/dist/features/converters/jsx/converter/index.js.map +1 -0
  229. package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/types.d.ts +3 -3
  230. package/dist/features/converters/jsx/converter/types.d.ts.map +1 -0
  231. package/dist/features/converters/jsx/converter/types.js +2 -0
  232. package/dist/features/converters/jsx/converter/types.js.map +1 -0
  233. package/dist/features/converters/utilities/payloadPopulateFn.d.ts +31 -0
  234. package/dist/features/converters/utilities/payloadPopulateFn.d.ts.map +1 -0
  235. package/dist/features/converters/utilities/payloadPopulateFn.js +42 -0
  236. package/dist/features/converters/utilities/payloadPopulateFn.js.map +1 -0
  237. package/dist/features/converters/utilities/restPopulateFn.d.ts +11 -0
  238. package/dist/features/converters/utilities/restPopulateFn.d.ts.map +1 -0
  239. package/dist/features/converters/utilities/restPopulateFn.js +33 -0
  240. package/dist/features/converters/utilities/restPopulateFn.js.map +1 -0
  241. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -1
  242. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +137 -69
  243. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  244. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -1
  245. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +22 -5
  246. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  247. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -1
  248. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +9 -5
  249. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
  250. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +1 -1
  251. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +3 -3
  252. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  253. package/dist/features/experimental_table/markdownTransformer.d.ts.map +1 -1
  254. package/dist/features/experimental_table/markdownTransformer.js +1 -1
  255. package/dist/features/experimental_table/markdownTransformer.js.map +1 -1
  256. package/dist/features/experimental_table/server/index.js +1 -1
  257. package/dist/features/experimental_table/server/index.js.map +1 -1
  258. package/dist/features/heading/server/index.js +1 -1
  259. package/dist/features/heading/server/index.js.map +1 -1
  260. package/dist/features/indent/client/index.d.ts +1 -1
  261. package/dist/features/indent/client/index.d.ts.map +1 -1
  262. package/dist/features/indent/client/index.js.map +1 -1
  263. package/dist/features/link/client/index.d.ts +2 -1
  264. package/dist/features/link/client/index.d.ts.map +1 -1
  265. package/dist/features/link/client/index.js +8 -5
  266. package/dist/features/link/client/index.js.map +1 -1
  267. package/dist/features/link/nodes/AutoLinkNode.d.ts +3 -2
  268. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  269. package/dist/features/link/nodes/AutoLinkNode.js +7 -6
  270. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  271. package/dist/features/link/nodes/LinkNode.d.ts +7 -5
  272. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  273. package/dist/features/link/nodes/LinkNode.js +13 -7
  274. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  275. package/dist/features/link/nodes/types.d.ts +3 -0
  276. package/dist/features/link/nodes/types.d.ts.map +1 -1
  277. package/dist/features/link/nodes/types.js.map +1 -1
  278. package/dist/features/link/server/index.d.ts +10 -0
  279. package/dist/features/link/server/index.d.ts.map +1 -1
  280. package/dist/features/link/server/index.js +4 -3
  281. package/dist/features/link/server/index.js.map +1 -1
  282. package/dist/features/lists/htmlConverter.d.ts +1 -1
  283. package/dist/features/lists/htmlConverter.d.ts.map +1 -1
  284. package/dist/features/lists/htmlConverter.js +1 -1
  285. package/dist/features/lists/htmlConverter.js.map +1 -1
  286. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts +1 -1
  287. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  288. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  289. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts +1 -1
  290. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  291. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  292. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +1 -1
  293. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  294. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  295. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
  296. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +7 -6
  297. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  298. package/dist/features/typesServer.d.ts +6 -1
  299. package/dist/features/typesServer.d.ts.map +1 -1
  300. package/dist/features/typesServer.js.map +1 -1
  301. package/dist/field/bundled.css +1 -1
  302. package/dist/index.d.ts +13 -10
  303. package/dist/index.d.ts.map +1 -1
  304. package/dist/index.js +12 -9
  305. package/dist/index.js.map +1 -1
  306. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  307. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +12 -8
  308. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  309. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -1
  310. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +1 -2
  311. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  312. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
  313. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +1 -2
  314. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  315. package/dist/lexical/theme/EditorTheme.d.ts.map +1 -1
  316. package/dist/lexical/theme/EditorTheme.js +7 -0
  317. package/dist/lexical/theme/EditorTheme.js.map +1 -1
  318. package/dist/lexical/utils/guard.d.ts +3 -0
  319. package/dist/lexical/utils/guard.d.ts.map +1 -1
  320. package/dist/lexical/utils/guard.js +3 -0
  321. package/dist/lexical/utils/guard.js.map +1 -1
  322. package/dist/populateGraphQL/populate.d.ts +5 -5
  323. package/dist/populateGraphQL/populate.d.ts.map +1 -1
  324. package/dist/populateGraphQL/populate.js.map +1 -1
  325. package/package.json +30 -24
  326. package/dist/exports/client/Field-NNWFQETL.js +0 -2
  327. package/dist/exports/client/Field-NNWFQETL.js.map +0 -7
  328. package/dist/exports/client/chunk-OZ6Q4DWN.js +0 -12
  329. package/dist/exports/client/chunk-OZ6Q4DWN.js.map +0 -7
  330. package/dist/exports/react/components/RichText/converter/converters/blockquote.d.ts.map +0 -1
  331. package/dist/exports/react/components/RichText/converter/converters/blockquote.js.map +0 -1
  332. package/dist/exports/react/components/RichText/converter/converters/heading.d.ts.map +0 -1
  333. package/dist/exports/react/components/RichText/converter/converters/heading.js.map +0 -1
  334. package/dist/exports/react/components/RichText/converter/converters/horizontalRule.d.ts.map +0 -1
  335. package/dist/exports/react/components/RichText/converter/converters/horizontalRule.js +0 -7
  336. package/dist/exports/react/components/RichText/converter/converters/horizontalRule.js.map +0 -1
  337. package/dist/exports/react/components/RichText/converter/converters/linebreak.d.ts.map +0 -1
  338. package/dist/exports/react/components/RichText/converter/converters/linebreak.js +0 -7
  339. package/dist/exports/react/components/RichText/converter/converters/linebreak.js.map +0 -1
  340. package/dist/exports/react/components/RichText/converter/converters/link.d.ts.map +0 -1
  341. package/dist/exports/react/components/RichText/converter/converters/link.js.map +0 -1
  342. package/dist/exports/react/components/RichText/converter/converters/list.d.ts.map +0 -1
  343. package/dist/exports/react/components/RichText/converter/converters/list.js.map +0 -1
  344. package/dist/exports/react/components/RichText/converter/converters/paragraph.d.ts.map +0 -1
  345. package/dist/exports/react/components/RichText/converter/converters/paragraph.js.map +0 -1
  346. package/dist/exports/react/components/RichText/converter/converters/tab.d.ts.map +0 -1
  347. package/dist/exports/react/components/RichText/converter/converters/tab.js +0 -9
  348. package/dist/exports/react/components/RichText/converter/converters/tab.js.map +0 -1
  349. package/dist/exports/react/components/RichText/converter/converters/table.d.ts.map +0 -1
  350. package/dist/exports/react/components/RichText/converter/converters/table.js.map +0 -1
  351. package/dist/exports/react/components/RichText/converter/converters/text.d.ts.map +0 -1
  352. package/dist/exports/react/components/RichText/converter/converters/text.js.map +0 -1
  353. package/dist/exports/react/components/RichText/converter/converters/upload.d.ts.map +0 -1
  354. package/dist/exports/react/components/RichText/converter/converters/upload.js.map +0 -1
  355. package/dist/exports/react/components/RichText/converter/defaultConverters.d.ts.map +0 -1
  356. package/dist/exports/react/components/RichText/converter/defaultConverters.js.map +0 -1
  357. package/dist/exports/react/components/RichText/converter/index.d.ts.map +0 -1
  358. package/dist/exports/react/components/RichText/converter/index.js.map +0 -1
  359. package/dist/exports/react/components/RichText/converter/types.d.ts.map +0 -1
  360. package/dist/exports/react/components/RichText/converter/types.js.map +0 -1
  361. package/dist/exports/react/components/RichText/index.js.map +0 -1
  362. package/dist/features/converters/html/converter/converters/linebreak.d.ts.map +0 -1
  363. package/dist/features/converters/html/converter/converters/linebreak.js.map +0 -1
  364. package/dist/features/converters/html/converter/converters/paragraph.d.ts.map +0 -1
  365. package/dist/features/converters/html/converter/converters/paragraph.js.map +0 -1
  366. package/dist/features/converters/html/converter/converters/tab.d.ts.map +0 -1
  367. package/dist/features/converters/html/converter/converters/tab.js.map +0 -1
  368. package/dist/features/converters/html/converter/converters/text.d.ts.map +0 -1
  369. package/dist/features/converters/html/converter/converters/text.js.map +0 -1
  370. package/dist/features/converters/html/converter/defaultConverters.d.ts.map +0 -1
  371. package/dist/features/converters/html/converter/defaultConverters.js.map +0 -1
  372. package/dist/features/converters/html/converter/index.d.ts.map +0 -1
  373. package/dist/features/converters/html/converter/index.js.map +0 -1
  374. package/dist/features/converters/html/converter/types.d.ts.map +0 -1
  375. package/dist/features/converters/html/converter/types.js.map +0 -1
  376. package/dist/features/converters/html/field/index.d.ts.map +0 -1
  377. package/dist/features/converters/html/field/index.js.map +0 -1
  378. package/dist/features/converters/html/index.d.ts.map +0 -1
  379. package/dist/features/converters/html/index.js.map +0 -1
  380. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.d.ts +0 -2
  381. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.d.ts.map +0 -1
  382. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.js +0 -2
  383. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.js.map +0 -1
  384. /package/dist/{exports/react/components/RichText/converter → features/converters/html/async}/types.js +0 -0
  385. /package/dist/features/converters/html/{converter → shared}/types.js +0 -0
  386. /package/dist/features/converters/{html → html_deprecated}/converter/converters/linebreak.d.ts +0 -0
  387. /package/dist/features/converters/{html → html_deprecated}/converter/converters/linebreak.js +0 -0
  388. /package/dist/features/converters/{html → html_deprecated}/converter/converters/paragraph.d.ts +0 -0
  389. /package/dist/features/converters/{html → html_deprecated}/converter/converters/paragraph.js +0 -0
  390. /package/dist/features/converters/{html → html_deprecated}/converter/converters/tab.d.ts +0 -0
  391. /package/dist/features/converters/{html → html_deprecated}/converter/converters/tab.js +0 -0
  392. /package/dist/features/converters/{html → html_deprecated}/converter/converters/text.d.ts +0 -0
  393. /package/dist/features/converters/{html → html_deprecated}/converter/converters/text.js +0 -0
  394. /package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/blockquote.js +0 -0
  395. /package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/heading.js +0 -0
  396. /package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/link.js +0 -0
  397. /package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/list.js +0 -0
  398. /package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/paragraph.js +0 -0
  399. /package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/converters/table.js +0 -0
  400. /package/dist/{exports/react/components/RichText → features/converters/jsx}/converter/defaultConverters.js +0 -0
@@ -4,7 +4,7 @@ import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
6
6
  import { TablePlugin as LexicalReactTablePlugin } from '@lexical/react/LexicalTablePlugin';
7
- import { INSERT_TABLE_COMMAND, TableNode } from '@lexical/table';
7
+ import { INSERT_TABLE_COMMAND, TableCellNode, TableNode, TableRowNode } from '@lexical/table';
8
8
  import { mergeRegister } from '@lexical/utils';
9
9
  import { formatDrawerSlug, useEditDepth } from '@payloadcms/ui';
10
10
  import { $getSelection, $isRangeSelection, COMMAND_PRIORITY_EDITOR, createCommand } from 'lexical';
@@ -74,8 +74,8 @@ export const TablePlugin = () => {
74
74
  let t3;
75
75
  if ($[3] !== editor || $[4] !== toggleDrawer) {
76
76
  t3 = () => {
77
- if (!editor.hasNodes([TableNode])) {
78
- throw new Error("TablePlugin: TableNode is not registered on editor");
77
+ if (!editor.hasNodes([TableNode, TableRowNode, TableCellNode])) {
78
+ throw new Error("TablePlugin: TableNode, TableRowNode, or TableCellNode is not registered on editor");
79
79
  }
80
80
  return mergeRegister(editor.registerCommand(OPEN_TABLE_DRAWER_COMMAND, () => {
81
81
  let rangeSelection;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","TablePlugin","LexicalReactTablePlugin","INSERT_TABLE_COMMAND","TableNode","mergeRegister","formatDrawerSlug","useEditDepth","$getSelection","$isRangeSelection","COMMAND_PRIORITY_EDITOR","createCommand","createContext","useContext","useEffect","useMemo","useState","React","useEditorConfigContext","FieldsDrawer","useLexicalDrawer","OPEN_TABLE_DRAWER_COMMAND","CellContext","cellEditorConfig","cellEditorPlugins","set","TableContext","children","contextValue","setContextValue","_jsx","Provider","value","$","editor","cellContext","editDepth","fieldProps","t0","uuid","schemaPath","t1","t2","slug","depth","drawerSlug","toggleDrawer","t3","hasNodes","Error","registerCommand","rangeSelection","getEditorState","read","selection","t4","t5","_fields","data","columns","rows","dispatchCommand","String","t6","_jsxs","Fragment","drawerTitle","featureKey","handleDrawerSubmit","schemaPathSuffix","hasCellBackgroundColor","hasCellMerge","hasHorizontalScroll"],"sources":["../../../../../../src/features/experimental_table/client/plugins/TablePlugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n EditorThemeClasses,\n Klass,\n LexicalCommand,\n LexicalEditor,\n LexicalNode,\n RangeSelection,\n} from 'lexical'\nimport type { JSX } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { TablePlugin as LexicalReactTablePlugin } from '@lexical/react/LexicalTablePlugin'\nimport { INSERT_TABLE_COMMAND, TableNode } from '@lexical/table'\nimport { mergeRegister } from '@lexical/utils'\nimport { formatDrawerSlug, useEditDepth } from '@payloadcms/ui'\nimport { $getSelection, $isRangeSelection, COMMAND_PRIORITY_EDITOR, createCommand } from 'lexical'\nimport { createContext, useContext, useEffect, useMemo, useState } from 'react'\nimport * as React from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDrawer } from '../../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport './index.scss'\n\nexport type CellContextShape = {\n cellEditorConfig: CellEditorConfig | null\n cellEditorPlugins: Array<JSX.Element> | JSX.Element | null\n set: (\n cellEditorConfig: CellEditorConfig | null,\n cellEditorPlugins: Array<JSX.Element> | JSX.Element | null,\n ) => void\n}\n\nexport type CellEditorConfig = Readonly<{\n namespace: string\n nodes?: ReadonlyArray<Klass<LexicalNode>>\n onError: (error: Error, editor: LexicalEditor) => void\n readOnly?: boolean\n theme?: EditorThemeClasses\n}>\n\nexport const OPEN_TABLE_DRAWER_COMMAND: LexicalCommand<{}> = createCommand(\n 'OPEN_EMBED_DRAWER_COMMAND',\n)\n\nexport const CellContext = createContext<CellContextShape>({\n cellEditorConfig: null,\n cellEditorPlugins: null,\n set: () => {\n // Empty\n },\n})\n\nexport function TableContext({ children }: { children: JSX.Element }) {\n const [contextValue, setContextValue] = useState<{\n cellEditorConfig: CellEditorConfig | null\n cellEditorPlugins: Array<JSX.Element> | JSX.Element | null\n }>({\n cellEditorConfig: null,\n cellEditorPlugins: null,\n })\n return (\n <CellContext.Provider\n value={useMemo(\n () => ({\n cellEditorConfig: contextValue.cellEditorConfig,\n cellEditorPlugins: contextValue.cellEditorPlugins,\n set: (cellEditorConfig, cellEditorPlugins) => {\n setContextValue({ cellEditorConfig, cellEditorPlugins })\n },\n }),\n [contextValue.cellEditorConfig, contextValue.cellEditorPlugins],\n )}\n >\n {children}\n </CellContext.Provider>\n )\n}\n\nexport const TablePlugin: PluginComponent = () => {\n const [editor] = useLexicalComposerContext()\n const cellContext = useContext(CellContext)\n const editDepth = useEditDepth()\n const {\n fieldProps: { schemaPath },\n uuid,\n } = useEditorConfigContext()\n\n const drawerSlug = formatDrawerSlug({\n slug: 'lexical-table-create-' + uuid,\n depth: editDepth,\n })\n const { toggleDrawer } = useLexicalDrawer(drawerSlug, true)\n\n useEffect(() => {\n if (!editor.hasNodes([TableNode])) {\n throw new Error('TablePlugin: TableNode is not registered on editor')\n }\n\n return mergeRegister(\n editor.registerCommand(\n OPEN_TABLE_DRAWER_COMMAND,\n () => {\n let rangeSelection: null | RangeSelection = null\n\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n rangeSelection = selection\n }\n })\n\n if (rangeSelection) {\n toggleDrawer()\n }\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [cellContext, editor, toggleDrawer])\n\n return (\n <React.Fragment>\n <FieldsDrawer\n drawerSlug={drawerSlug}\n drawerTitle=\"Create Table\"\n featureKey=\"experimental_table\"\n handleDrawerSubmit={(_fields, data) => {\n if (!data.columns || !data.rows) {\n return\n }\n\n editor.dispatchCommand(INSERT_TABLE_COMMAND, {\n columns: String(data.columns),\n rows: String(data.rows),\n })\n }}\n schemaPath={schemaPath}\n schemaPathSuffix=\"fields\"\n />\n <LexicalReactTablePlugin\n hasCellBackgroundColor={false}\n hasCellMerge\n hasHorizontalScroll={true}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAYA,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,WAAA,IAAeC,uBAAuB,QAAQ;AACvD,SAASC,oBAAoB,EAAEC,SAAS,QAAQ;AAChD,SAASC,aAAa,QAAQ;AAC9B,SAASC,gBAAgB,EAAEC,YAAY,QAAQ;AAC/C,SAASC,aAAa,EAAEC,iBAAiB,EAAEC,uBAAuB,EAAEC,aAAa,QAAQ;AACzF,SAASC,aAAa,EAAEC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ;AACxE,YAAYC,KAAA,MAAW;AAIvB,SAASC,sBAAsB,QAAQ;AACvC,SAASC,YAAY,QAAQ;AAC7B,SAASC,gBAAgB,QAAQ;AAoBjC,OAAO,MAAMC,yBAAA,GAAgDV,aAAA,CAC3D;AAGF,OAAO,MAAMW,WAAA,gBAAcV,aAAA,CAAgC;EACzDW,gBAAA,EAAkB;EAClBC,iBAAA,EAAmB;EACnBC,GAAA,EAAKA,CAAA;IACH;EAAA;AAEJ;AAEA,OAAO,SAASC,aAAa;EAAEC;AAAQ,CAA6B;EAClE,MAAM,CAACC,YAAA,EAAcC,eAAA,CAAgB,GAAGb,QAAA,CAGrC;IACDO,gBAAA,EAAkB;IAClBC,iBAAA,EAAmB;EACrB;EACA,oBACEM,IAAA,CAACR,WAAA,CAAYS,QAAQ;IACnBC,KAAA,EAAOjB,OAAA,CACL,OAAO;MACLQ,gBAAA,EAAkBK,YAAA,CAAaL,gBAAgB;MAC/CC,iBAAA,EAAmBI,YAAA,CAAaJ,iBAAiB;MACjDC,GAAA,EAAKA,CAACF,gBAAA,EAAkBC,iBAAA;QACtBK,eAAA,CAAgB;UAAEN,gBAAA;UAAkBC;QAAkB;MACxD;IACF,IACA,CAACI,YAAA,CAAaL,gBAAgB,EAAEK,YAAA,CAAaJ,iBAAiB,CAAC;cAGhEG;;AAGP;AAEA,OAAO,MAAM1B,WAAA,GAA+BA,CAAA;EAAA,MAAAgC,CAAA,GAAAlC,EAAA;EAC1C,OAAAmC,MAAA,IAAiBlC,yBAAA;EACjB,MAAAmC,WAAA,GAAoBtB,UAAA,CAAAS,WAAW;EAC/B,MAAAc,SAAA,GAAkB7B,YAAA;EAClB;IAAA8B,UAAA,EAAAC,EAAA;IAAAC;EAAA,IAGIrB,sBAAA;EAFU;IAAAsB;EAAA,IAAAF,EAAc;EAKpB,MAAAG,EAAA,6BAA0BF,IAAA;EAAA,IAAAG,EAAA;EAAA,IAAAT,CAAA,QAAAG,SAAA,IAAAH,CAAA,QAAAQ,EAAA;IADfC,EAAA,GAAApC,gBAAA;MAAAqC,IAAA,EACXF,EAA0B;MAAAG,KAAA,EACzBR;IAAA,CACT;IAAAH,CAAA,MAAAG,SAAA;IAAAH,CAAA,MAAAQ,EAAA;IAAAR,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAHA,MAAAY,UAAA,GAAmBH,EAGnB;EACA;IAAAI;EAAA,IAAyB1B,gBAAA,CAAiByB,UAAA,MAAY;EAAA,IAAAE,EAAA;EAAA,IAAAd,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAa,YAAA;IAE5CC,EAAA,GAAAA,CAAA;MAAA,KACHb,MAAA,CAAAc,QAAA,EAAA5C,SAAA,CAA2B;QAAA,UAAA6C,KAAA,CACd;MAAA;MAAA,OAGX5C,aAAA,CACL6B,MAAA,CAAAgB,eAAA,CAAA7B,yBAAA;QAGI,IAAA8B,cAAA;QAAAA,cAAA;QAEAjB,MAAA,CAAAkB,cAAA,CAAqB,EAAAC,IAAA;UACnB,MAAAC,SAAA,GAAkB9C,aAAA;UAAA,IACdC,iBAAA,CAAkB6C,SAAA;YACpBH,cAAA,CAAAA,CAAA,CAAiBG,SAAA;UAAjB;QAAA,CAEJ;QAAA,IAEIH,cAAA;UACFL,YAAA;QAAA;QAAA;MAAA,GAAApC,uBAIJ;IAAA;IAGNuB,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAa,YAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAAA,IAAAsB,EAAA;EAAA,IAAAtB,CAAA,QAAAE,WAAA,IAAAF,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAa,YAAA;IAAGS,EAAA,IAACpB,WAAA,EAAaD,MAAA,EAAQY,YAAA;IAAab,CAAA,MAAAE,WAAA;IAAAF,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAa,YAAA;IAAAb,CAAA,MAAAsB,EAAA;EAAA;IAAAA,EAAA,GAAAtB,CAAA;EAAA;EA1BtCnB,SAAA,CAAUiC,EA0BV,EAAGQ,EAAmC;EAAA,IAAAC,EAAA;EAAA,IAAAvB,CAAA,SAAAC,MAAA;IAQZsB,EAAA,GAAAA,CAAAC,OAAA,EAAAC,IAAA;MAAA,IACd,CAACA,IAAA,CAAAC,OAAA,KAAiBD,IAAA,CAAAE,IAAS;QAAA;MAAA;MAI/B1B,MAAA,CAAA2B,eAAA,CAAA1D,oBAAA;QAAAwD,OAAA,EACWG,MAAA,CAAOJ,IAAA,CAAAC,OAAY;QAAAC,IAAA,EACtBE,MAAA,CAAOJ,IAAA,CAAAE,IAAS;MAAA,CACxB;IAAA;IACF3B,CAAA,OAAAC,MAAA;IAAAD,CAAA,OAAAuB,EAAA;EAAA;IAAAA,EAAA,GAAAvB,CAAA;EAAA;EAAA,IAAA8B,EAAA;EAAA,IAAA9B,CAAA,SAAAY,UAAA,IAAAZ,CAAA,SAAAO,UAAA,IAAAP,CAAA,SAAAuB,EAAA;IAdJO,EAAA,GAAAC,KAAA,CAAA/C,KAAA,CAAAgD,QAAA;MAAAtC,QAAA,GACEG,IAAA,CAAAX,YAAA;QAAA0B,UAAA;QAAAqB,WAAA,EAEc;QAAAC,UAAA,EACD;QAAAC,kBAAA,EACSZ,EASpB;QAAAhB,UAAA;QAAA6B,gBAAA,EAEiB;MAAA,C,GAEnBvC,IAAA,CAAA5B,uBAAA;QAAAoE,sBAAA;QAAAC,YAAA;QAAAC,mBAAA;MAAA,C;;;;;;;;;SAlBFT,E;CAyBJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","TablePlugin","LexicalReactTablePlugin","INSERT_TABLE_COMMAND","TableCellNode","TableNode","TableRowNode","mergeRegister","formatDrawerSlug","useEditDepth","$getSelection","$isRangeSelection","COMMAND_PRIORITY_EDITOR","createCommand","createContext","useContext","useEffect","useMemo","useState","React","useEditorConfigContext","FieldsDrawer","useLexicalDrawer","OPEN_TABLE_DRAWER_COMMAND","CellContext","cellEditorConfig","cellEditorPlugins","set","TableContext","children","contextValue","setContextValue","_jsx","Provider","value","$","editor","cellContext","editDepth","fieldProps","t0","uuid","schemaPath","t1","t2","slug","depth","drawerSlug","toggleDrawer","t3","hasNodes","Error","registerCommand","rangeSelection","getEditorState","read","selection","t4","t5","_fields","data","columns","rows","dispatchCommand","String","t6","_jsxs","Fragment","drawerTitle","featureKey","handleDrawerSubmit","schemaPathSuffix","hasCellBackgroundColor","hasCellMerge","hasHorizontalScroll"],"sources":["../../../../../../src/features/experimental_table/client/plugins/TablePlugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n EditorThemeClasses,\n Klass,\n LexicalCommand,\n LexicalEditor,\n LexicalNode,\n RangeSelection,\n} from 'lexical'\nimport type { JSX } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { TablePlugin as LexicalReactTablePlugin } from '@lexical/react/LexicalTablePlugin'\nimport { INSERT_TABLE_COMMAND, TableCellNode, TableNode, TableRowNode } from '@lexical/table'\nimport { mergeRegister } from '@lexical/utils'\nimport { formatDrawerSlug, useEditDepth } from '@payloadcms/ui'\nimport { $getSelection, $isRangeSelection, COMMAND_PRIORITY_EDITOR, createCommand } from 'lexical'\nimport { createContext, useContext, useEffect, useMemo, useState } from 'react'\nimport * as React from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDrawer } from '../../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport './index.scss'\n\nexport type CellContextShape = {\n cellEditorConfig: CellEditorConfig | null\n cellEditorPlugins: Array<JSX.Element> | JSX.Element | null\n set: (\n cellEditorConfig: CellEditorConfig | null,\n cellEditorPlugins: Array<JSX.Element> | JSX.Element | null,\n ) => void\n}\n\nexport type CellEditorConfig = Readonly<{\n namespace: string\n nodes?: ReadonlyArray<Klass<LexicalNode>>\n onError: (error: Error, editor: LexicalEditor) => void\n readOnly?: boolean\n theme?: EditorThemeClasses\n}>\n\nexport const OPEN_TABLE_DRAWER_COMMAND: LexicalCommand<{}> = createCommand(\n 'OPEN_EMBED_DRAWER_COMMAND',\n)\n\nexport const CellContext = createContext<CellContextShape>({\n cellEditorConfig: null,\n cellEditorPlugins: null,\n set: () => {\n // Empty\n },\n})\n\nexport function TableContext({ children }: { children: JSX.Element }) {\n const [contextValue, setContextValue] = useState<{\n cellEditorConfig: CellEditorConfig | null\n cellEditorPlugins: Array<JSX.Element> | JSX.Element | null\n }>({\n cellEditorConfig: null,\n cellEditorPlugins: null,\n })\n return (\n <CellContext.Provider\n value={useMemo(\n () => ({\n cellEditorConfig: contextValue.cellEditorConfig,\n cellEditorPlugins: contextValue.cellEditorPlugins,\n set: (cellEditorConfig, cellEditorPlugins) => {\n setContextValue({ cellEditorConfig, cellEditorPlugins })\n },\n }),\n [contextValue.cellEditorConfig, contextValue.cellEditorPlugins],\n )}\n >\n {children}\n </CellContext.Provider>\n )\n}\n\nexport const TablePlugin: PluginComponent = () => {\n const [editor] = useLexicalComposerContext()\n const cellContext = useContext(CellContext)\n const editDepth = useEditDepth()\n const {\n fieldProps: { schemaPath },\n uuid,\n } = useEditorConfigContext()\n\n const drawerSlug = formatDrawerSlug({\n slug: 'lexical-table-create-' + uuid,\n depth: editDepth,\n })\n const { toggleDrawer } = useLexicalDrawer(drawerSlug, true)\n\n useEffect(() => {\n if (!editor.hasNodes([TableNode, TableRowNode, TableCellNode])) {\n throw new Error(\n 'TablePlugin: TableNode, TableRowNode, or TableCellNode is not registered on editor',\n )\n }\n\n return mergeRegister(\n editor.registerCommand(\n OPEN_TABLE_DRAWER_COMMAND,\n () => {\n let rangeSelection: null | RangeSelection = null\n\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n rangeSelection = selection\n }\n })\n\n if (rangeSelection) {\n toggleDrawer()\n }\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [cellContext, editor, toggleDrawer])\n\n return (\n <React.Fragment>\n <FieldsDrawer\n drawerSlug={drawerSlug}\n drawerTitle=\"Create Table\"\n featureKey=\"experimental_table\"\n handleDrawerSubmit={(_fields, data) => {\n if (!data.columns || !data.rows) {\n return\n }\n\n editor.dispatchCommand(INSERT_TABLE_COMMAND, {\n columns: String(data.columns),\n rows: String(data.rows),\n })\n }}\n schemaPath={schemaPath}\n schemaPathSuffix=\"fields\"\n />\n <LexicalReactTablePlugin\n hasCellBackgroundColor={false}\n hasCellMerge\n hasHorizontalScroll={true}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"markdownTransformer.d.ts","sourceRoot":"","sources":["../../../src/features/experimental_table/markdownTransformer.ts"],"names":[],"mappings":"AAgBA,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,2CAA2C,CAAA;AAOlD,eAAO,MAAM,wBAAwB,EAAE,CAAC,KAAK,EAAE;IAC7C,eAAe,EAAE,WAAW,EAAE,CAAA;CAC/B,KAAK,kBA8HJ,CAAA"}
1
+ {"version":3,"file":"markdownTransformer.d.ts","sourceRoot":"","sources":["../../../src/features/experimental_table/markdownTransformer.ts"],"names":[],"mappings":"AAgBA,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,2CAA2C,CAAA;AAOlD,eAAO,MAAM,wBAAwB,EAAE,CAAC,KAAK,EAAE;IAC7C,eAAe,EAAE,WAAW,EAAE,CAAA;CAC/B,KAAK,kBAiIJ,CAAA"}
@@ -24,7 +24,7 @@ export const TableMarkdownTransformer = ({
24
24
  for (const cell of row.getChildren()) {
25
25
  // It's TableCellNode, so it's just to make flow happy
26
26
  if ($isTableCellNode(cell)) {
27
- rowOutput.push($convertToMarkdownString(allTransformers, cell).replace(/\n/g, '\\n'));
27
+ rowOutput.push($convertToMarkdownString(allTransformers, cell).replace(/\n/g, '\\n').trim());
28
28
  if (cell.__headerState === TableCellHeaderStates.ROW) {
29
29
  isHeaderRow = true;
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"markdownTransformer.js","names":["$createTableCellNode","$createTableNode","$createTableRowNode","$isTableCellNode","$isTableNode","$isTableRowNode","TableCellHeaderStates","TableCellNode","TableNode","TableRowNode","$isParagraphNode","$isTextNode","$convertFromMarkdownString","$convertToMarkdownString","TABLE_ROW_REG_EXP","TABLE_ROW_DIVIDER_REG_EXP","TableMarkdownTransformer","allTransformers","type","dependencies","export","node","output","row","getChildren","rowOutput","isHeaderRow","cell","push","replace","__headerState","ROW","join","map","_","regExp","parentNode","_1","match","match0","test","table","getPreviousSibling","rows","lastRow","length","forEach","setHeaderStyles","remove","matchCells","mapToTableCells","sibling","maxCells","getChildrenSize","firstChild","getFirstChild","cells","getTextContent","Math","max","unshift","previousSibling","tableRow","append","i","$createTableCell","getTableColumnsSize","selectEnd","textContent","NO_STATUS","split","text"],"sources":["../../../src/features/experimental_table/markdownTransformer.ts"],"sourcesContent":["import type { LexicalNode } from 'lexical'\n\nimport {\n $createTableCellNode,\n $createTableNode,\n $createTableRowNode,\n $isTableCellNode,\n $isTableNode,\n $isTableRowNode,\n TableCellHeaderStates,\n TableCellNode,\n TableNode,\n TableRowNode,\n} from '@lexical/table'\nimport { $isParagraphNode, $isTextNode } from 'lexical'\n\nimport {\n $convertFromMarkdownString,\n $convertToMarkdownString,\n type ElementTransformer,\n type Transformer,\n} from '../../packages/@lexical/markdown/index.js'\n\n// Very primitive table setup\nconst TABLE_ROW_REG_EXP = /^\\|(.+)\\|\\s?$/\n// eslint-disable-next-line regexp/no-unused-capturing-group\nconst TABLE_ROW_DIVIDER_REG_EXP = /^(\\| ?:?-*:? ?)+\\|\\s?$/\n\nexport const TableMarkdownTransformer: (props: {\n allTransformers: Transformer[]\n}) => ElementTransformer = ({ allTransformers }) => ({\n type: 'element',\n dependencies: [TableNode, TableRowNode, TableCellNode],\n export: (node: LexicalNode) => {\n if (!$isTableNode(node)) {\n return null\n }\n\n const output: string[] = []\n\n for (const row of node.getChildren()) {\n const rowOutput: string[] = []\n if (!$isTableRowNode(row)) {\n continue\n }\n\n let isHeaderRow = false\n for (const cell of row.getChildren()) {\n // It's TableCellNode, so it's just to make flow happy\n if ($isTableCellNode(cell)) {\n rowOutput.push($convertToMarkdownString(allTransformers, cell).replace(/\\n/g, '\\\\n'))\n if (cell.__headerState === TableCellHeaderStates.ROW) {\n isHeaderRow = true\n }\n }\n }\n\n output.push(`| ${rowOutput.join(' | ')} |`)\n if (isHeaderRow) {\n output.push(`| ${rowOutput.map((_) => '---').join(' | ')} |`)\n }\n }\n\n return output.join('\\n')\n },\n regExp: TABLE_ROW_REG_EXP,\n replace: (parentNode, _1, match) => {\n const match0 = match[0]\n if (!match0) {\n return\n }\n // Header row\n if (TABLE_ROW_DIVIDER_REG_EXP.test(match0)) {\n const table = parentNode.getPreviousSibling()\n if (!table || !$isTableNode(table)) {\n return\n }\n\n const rows = table.getChildren()\n const lastRow = rows[rows.length - 1]\n if (!lastRow || !$isTableRowNode(lastRow)) {\n return\n }\n\n // Add header state to row cells\n lastRow.getChildren().forEach((cell) => {\n if (!$isTableCellNode(cell)) {\n return\n }\n cell.setHeaderStyles(TableCellHeaderStates.ROW, TableCellHeaderStates.ROW)\n })\n\n // Remove line\n parentNode.remove()\n return\n }\n\n const matchCells = mapToTableCells(match0, allTransformers)\n\n if (matchCells == null) {\n return\n }\n\n const rows = [matchCells]\n let sibling = parentNode.getPreviousSibling()\n let maxCells = matchCells.length\n\n while (sibling) {\n if (!$isParagraphNode(sibling)) {\n break\n }\n\n if (sibling.getChildrenSize() !== 1) {\n break\n }\n\n const firstChild = sibling.getFirstChild()\n\n if (!$isTextNode(firstChild)) {\n break\n }\n\n const cells = mapToTableCells(firstChild.getTextContent(), allTransformers)\n\n if (cells == null) {\n break\n }\n\n maxCells = Math.max(maxCells, cells.length)\n rows.unshift(cells)\n const previousSibling = sibling.getPreviousSibling()\n sibling.remove()\n sibling = previousSibling\n }\n\n const table = $createTableNode()\n\n for (const cells of rows) {\n const tableRow = $createTableRowNode()\n table.append(tableRow)\n\n for (let i = 0; i < maxCells; i++) {\n tableRow.append(i < cells.length ? cells[i]! : $createTableCell('', allTransformers))\n }\n }\n\n const previousSibling = parentNode.getPreviousSibling()\n if ($isTableNode(previousSibling) && getTableColumnsSize(previousSibling) === maxCells) {\n previousSibling.append(...table.getChildren())\n parentNode.remove()\n } else {\n parentNode.replace(table)\n }\n\n table.selectEnd()\n },\n})\n\nfunction getTableColumnsSize(table: TableNode) {\n const row = table.getFirstChild()\n return $isTableRowNode(row) ? row.getChildrenSize() : 0\n}\n\nconst $createTableCell = (textContent: string, allTransformers: Transformer[]): TableCellNode => {\n textContent = textContent.replace(/\\\\n/g, '\\n')\n const cell = $createTableCellNode(TableCellHeaderStates.NO_STATUS)\n $convertFromMarkdownString(textContent, allTransformers, cell)\n return cell\n}\n\nconst mapToTableCells = (\n textContent: string,\n allTransformers: Transformer[],\n): Array<TableCellNode> | null => {\n const match = textContent.match(TABLE_ROW_REG_EXP)\n if (!match || !match[1]) {\n return null\n }\n return match[1].split('|').map((text) => $createTableCell(text, allTransformers))\n}\n"],"mappings":"AAEA,SACEA,oBAAoB,EACpBC,gBAAgB,EAChBC,mBAAmB,EACnBC,gBAAgB,EAChBC,YAAY,EACZC,eAAe,EACfC,qBAAqB,EACrBC,aAAa,EACbC,SAAS,EACTC,YAAY,QACP;AACP,SAASC,gBAAgB,EAAEC,WAAW,QAAQ;AAE9C,SACEC,0BAA0B,EAC1BC,wBAAwB,QAGnB;AAEP;AACA,MAAMC,iBAAA,GAAoB;AAC1B;AACA,MAAMC,yBAAA,GAA4B;AAElC,OAAO,MAAMC,wBAAA,GAEcA,CAAC;EAAEC;AAAe,CAAE,MAAM;EACnDC,IAAA,EAAM;EACNC,YAAA,EAAc,CAACX,SAAA,EAAWC,YAAA,EAAcF,aAAA,CAAc;EACtDa,MAAA,EAASC,IAAA;IACP,IAAI,CAACjB,YAAA,CAAaiB,IAAA,GAAO;MACvB,OAAO;IACT;IAEA,MAAMC,MAAA,GAAmB,EAAE;IAE3B,KAAK,MAAMC,GAAA,IAAOF,IAAA,CAAKG,WAAW,IAAI;MACpC,MAAMC,SAAA,GAAsB,EAAE;MAC9B,IAAI,CAACpB,eAAA,CAAgBkB,GAAA,GAAM;QACzB;MACF;MAEA,IAAIG,WAAA,GAAc;MAClB,KAAK,MAAMC,IAAA,IAAQJ,GAAA,CAAIC,WAAW,IAAI;QACpC;QACA,IAAIrB,gBAAA,CAAiBwB,IAAA,GAAO;UAC1BF,SAAA,CAAUG,IAAI,CAACf,wBAAA,CAAyBI,eAAA,EAAiBU,IAAA,EAAME,OAAO,CAAC,OAAO;UAC9E,IAAIF,IAAA,CAAKG,aAAa,KAAKxB,qBAAA,CAAsByB,GAAG,EAAE;YACpDL,WAAA,GAAc;UAChB;QACF;MACF;MAEAJ,MAAA,CAAOM,IAAI,CAAC,KAAKH,SAAA,CAAUO,IAAI,CAAC,UAAU;MAC1C,IAAIN,WAAA,EAAa;QACfJ,MAAA,CAAOM,IAAI,CAAC,KAAKH,SAAA,CAAUQ,GAAG,CAAEC,CAAA,IAAM,OAAOF,IAAI,CAAC,UAAU;MAC9D;IACF;IAEA,OAAOV,MAAA,CAAOU,IAAI,CAAC;EACrB;EACAG,MAAA,EAAQrB,iBAAA;EACRe,OAAA,EAASA,CAACO,UAAA,EAAYC,EAAA,EAAIC,KAAA;IACxB,MAAMC,MAAA,GAASD,KAAK,CAAC,EAAE;IACvB,IAAI,CAACC,MAAA,EAAQ;MACX;IACF;IACA;IACA,IAAIxB,yBAAA,CAA0ByB,IAAI,CAACD,MAAA,GAAS;MAC1C,MAAME,KAAA,GAAQL,UAAA,CAAWM,kBAAkB;MAC3C,IAAI,CAACD,KAAA,IAAS,CAACrC,YAAA,CAAaqC,KAAA,GAAQ;QAClC;MACF;MAEA,MAAME,IAAA,GAAOF,KAAA,CAAMjB,WAAW;MAC9B,MAAMoB,OAAA,GAAUD,IAAI,CAACA,IAAA,CAAKE,MAAM,GAAG,EAAE;MACrC,IAAI,CAACD,OAAA,IAAW,CAACvC,eAAA,CAAgBuC,OAAA,GAAU;QACzC;MACF;MAEA;MACAA,OAAA,CAAQpB,WAAW,GAAGsB,OAAO,CAAEnB,IAAA;QAC7B,IAAI,CAACxB,gBAAA,CAAiBwB,IAAA,GAAO;UAC3B;QACF;QACAA,IAAA,CAAKoB,eAAe,CAACzC,qBAAA,CAAsByB,GAAG,EAAEzB,qBAAA,CAAsByB,GAAG;MAC3E;MAEA;MACAK,UAAA,CAAWY,MAAM;MACjB;IACF;IAEA,MAAMC,UAAA,GAAaC,eAAA,CAAgBX,MAAA,EAAQtB,eAAA;IAE3C,IAAIgC,UAAA,IAAc,MAAM;MACtB;IACF;IAEA,MAAMN,IAAA,GAAO,CAACM,UAAA,CAAW;IACzB,IAAIE,OAAA,GAAUf,UAAA,CAAWM,kBAAkB;IAC3C,IAAIU,QAAA,GAAWH,UAAA,CAAWJ,MAAM;IAEhC,OAAOM,OAAA,EAAS;MACd,IAAI,CAACzC,gBAAA,CAAiByC,OAAA,GAAU;QAC9B;MACF;MAEA,IAAIA,OAAA,CAAQE,eAAe,OAAO,GAAG;QACnC;MACF;MAEA,MAAMC,UAAA,GAAaH,OAAA,CAAQI,aAAa;MAExC,IAAI,CAAC5C,WAAA,CAAY2C,UAAA,GAAa;QAC5B;MACF;MAEA,MAAME,KAAA,GAAQN,eAAA,CAAgBI,UAAA,CAAWG,cAAc,IAAIxC,eAAA;MAE3D,IAAIuC,KAAA,IAAS,MAAM;QACjB;MACF;MAEAJ,QAAA,GAAWM,IAAA,CAAKC,GAAG,CAACP,QAAA,EAAUI,KAAA,CAAMX,MAAM;MAC1CF,IAAA,CAAKiB,OAAO,CAACJ,KAAA;MACb,MAAMK,eAAA,GAAkBV,OAAA,CAAQT,kBAAkB;MAClDS,OAAA,CAAQH,MAAM;MACdG,OAAA,GAAUU,eAAA;IACZ;IAEA,MAAMpB,KAAA,GAAQxC,gBAAA;IAEd,KAAK,MAAMuD,KAAA,IAASb,IAAA,EAAM;MACxB,MAAMmB,QAAA,GAAW5D,mBAAA;MACjBuC,KAAA,CAAMsB,MAAM,CAACD,QAAA;MAEb,KAAK,IAAIE,CAAA,GAAI,GAAGA,CAAA,GAAIZ,QAAA,EAAUY,CAAA,IAAK;QACjCF,QAAA,CAASC,MAAM,CAACC,CAAA,GAAIR,KAAA,CAAMX,MAAM,GAAGW,KAAK,CAACQ,CAAA,CAAE,GAAIC,gBAAA,CAAiB,IAAIhD,eAAA;MACtE;IACF;IAEA,MAAM4C,eAAA,GAAkBzB,UAAA,CAAWM,kBAAkB;IACrD,IAAItC,YAAA,CAAayD,eAAA,KAAoBK,mBAAA,CAAoBL,eAAA,MAAqBT,QAAA,EAAU;MACtFS,eAAA,CAAgBE,MAAM,IAAItB,KAAA,CAAMjB,WAAW;MAC3CY,UAAA,CAAWY,MAAM;IACnB,OAAO;MACLZ,UAAA,CAAWP,OAAO,CAACY,KAAA;IACrB;IAEAA,KAAA,CAAM0B,SAAS;EACjB;AACF;AAEA,SAASD,oBAAoBzB,KAAgB;EAC3C,MAAMlB,GAAA,GAAMkB,KAAA,CAAMc,aAAa;EAC/B,OAAOlD,eAAA,CAAgBkB,GAAA,IAAOA,GAAA,CAAI8B,eAAe,KAAK;AACxD;AAEA,MAAMY,gBAAA,GAAmBA,CAACG,WAAA,EAAqBnD,eAAA;EAC7CmD,WAAA,GAAcA,WAAA,CAAYvC,OAAO,CAAC,QAAQ;EAC1C,MAAMF,IAAA,GAAO3B,oBAAA,CAAqBM,qBAAA,CAAsB+D,SAAS;EACjEzD,0BAAA,CAA2BwD,WAAA,EAAanD,eAAA,EAAiBU,IAAA;EACzD,OAAOA,IAAA;AACT;AAEA,MAAMuB,eAAA,GAAkBA,CACtBkB,WAAA,EACAnD,eAAA;EAEA,MAAMqB,KAAA,GAAQ8B,WAAA,CAAY9B,KAAK,CAACxB,iBAAA;EAChC,IAAI,CAACwB,KAAA,IAAS,CAACA,KAAK,CAAC,EAAE,EAAE;IACvB,OAAO;EACT;EACA,OAAOA,KAAK,CAAC,EAAE,CAACgC,KAAK,CAAC,KAAKrC,GAAG,CAAEsC,IAAA,IAASN,gBAAA,CAAiBM,IAAA,EAAMtD,eAAA;AAClE","ignoreList":[]}
1
+ {"version":3,"file":"markdownTransformer.js","names":["$createTableCellNode","$createTableNode","$createTableRowNode","$isTableCellNode","$isTableNode","$isTableRowNode","TableCellHeaderStates","TableCellNode","TableNode","TableRowNode","$isParagraphNode","$isTextNode","$convertFromMarkdownString","$convertToMarkdownString","TABLE_ROW_REG_EXP","TABLE_ROW_DIVIDER_REG_EXP","TableMarkdownTransformer","allTransformers","type","dependencies","export","node","output","row","getChildren","rowOutput","isHeaderRow","cell","push","replace","trim","__headerState","ROW","join","map","_","regExp","parentNode","_1","match","match0","test","table","getPreviousSibling","rows","lastRow","length","forEach","setHeaderStyles","remove","matchCells","mapToTableCells","sibling","maxCells","getChildrenSize","firstChild","getFirstChild","cells","getTextContent","Math","max","unshift","previousSibling","tableRow","append","i","$createTableCell","getTableColumnsSize","selectEnd","textContent","NO_STATUS","split","text"],"sources":["../../../src/features/experimental_table/markdownTransformer.ts"],"sourcesContent":["import type { LexicalNode } from 'lexical'\n\nimport {\n $createTableCellNode,\n $createTableNode,\n $createTableRowNode,\n $isTableCellNode,\n $isTableNode,\n $isTableRowNode,\n TableCellHeaderStates,\n TableCellNode,\n TableNode,\n TableRowNode,\n} from '@lexical/table'\nimport { $isParagraphNode, $isTextNode } from 'lexical'\n\nimport {\n $convertFromMarkdownString,\n $convertToMarkdownString,\n type ElementTransformer,\n type Transformer,\n} from '../../packages/@lexical/markdown/index.js'\n\n// Very primitive table setup\nconst TABLE_ROW_REG_EXP = /^\\|(.+)\\|\\s?$/\n// eslint-disable-next-line regexp/no-unused-capturing-group\nconst TABLE_ROW_DIVIDER_REG_EXP = /^(\\| ?:?-*:? ?)+\\|\\s?$/\n\nexport const TableMarkdownTransformer: (props: {\n allTransformers: Transformer[]\n}) => ElementTransformer = ({ allTransformers }) => ({\n type: 'element',\n dependencies: [TableNode, TableRowNode, TableCellNode],\n export: (node: LexicalNode) => {\n if (!$isTableNode(node)) {\n return null\n }\n\n const output: string[] = []\n\n for (const row of node.getChildren()) {\n const rowOutput: string[] = []\n if (!$isTableRowNode(row)) {\n continue\n }\n\n let isHeaderRow = false\n for (const cell of row.getChildren()) {\n // It's TableCellNode, so it's just to make flow happy\n if ($isTableCellNode(cell)) {\n rowOutput.push(\n $convertToMarkdownString(allTransformers, cell).replace(/\\n/g, '\\\\n').trim(),\n )\n\n if (cell.__headerState === TableCellHeaderStates.ROW) {\n isHeaderRow = true\n }\n }\n }\n\n output.push(`| ${rowOutput.join(' | ')} |`)\n if (isHeaderRow) {\n output.push(`| ${rowOutput.map((_) => '---').join(' | ')} |`)\n }\n }\n\n return output.join('\\n')\n },\n regExp: TABLE_ROW_REG_EXP,\n replace: (parentNode, _1, match) => {\n const match0 = match[0]\n if (!match0) {\n return\n }\n // Header row\n if (TABLE_ROW_DIVIDER_REG_EXP.test(match0)) {\n const table = parentNode.getPreviousSibling()\n if (!table || !$isTableNode(table)) {\n return\n }\n\n const rows = table.getChildren()\n const lastRow = rows[rows.length - 1]\n if (!lastRow || !$isTableRowNode(lastRow)) {\n return\n }\n\n // Add header state to row cells\n lastRow.getChildren().forEach((cell) => {\n if (!$isTableCellNode(cell)) {\n return\n }\n cell.setHeaderStyles(TableCellHeaderStates.ROW, TableCellHeaderStates.ROW)\n })\n\n // Remove line\n parentNode.remove()\n return\n }\n\n const matchCells = mapToTableCells(match0, allTransformers)\n\n if (matchCells == null) {\n return\n }\n\n const rows = [matchCells]\n let sibling = parentNode.getPreviousSibling()\n let maxCells = matchCells.length\n\n while (sibling) {\n if (!$isParagraphNode(sibling)) {\n break\n }\n\n if (sibling.getChildrenSize() !== 1) {\n break\n }\n\n const firstChild = sibling.getFirstChild()\n\n if (!$isTextNode(firstChild)) {\n break\n }\n\n const cells = mapToTableCells(firstChild.getTextContent(), allTransformers)\n\n if (cells == null) {\n break\n }\n\n maxCells = Math.max(maxCells, cells.length)\n rows.unshift(cells)\n const previousSibling = sibling.getPreviousSibling()\n sibling.remove()\n sibling = previousSibling\n }\n\n const table = $createTableNode()\n\n for (const cells of rows) {\n const tableRow = $createTableRowNode()\n table.append(tableRow)\n\n for (let i = 0; i < maxCells; i++) {\n tableRow.append(i < cells.length ? cells[i]! : $createTableCell('', allTransformers))\n }\n }\n\n const previousSibling = parentNode.getPreviousSibling()\n if ($isTableNode(previousSibling) && getTableColumnsSize(previousSibling) === maxCells) {\n previousSibling.append(...table.getChildren())\n parentNode.remove()\n } else {\n parentNode.replace(table)\n }\n\n table.selectEnd()\n },\n})\n\nfunction getTableColumnsSize(table: TableNode) {\n const row = table.getFirstChild()\n return $isTableRowNode(row) ? row.getChildrenSize() : 0\n}\n\nconst $createTableCell = (textContent: string, allTransformers: Transformer[]): TableCellNode => {\n textContent = textContent.replace(/\\\\n/g, '\\n')\n const cell = $createTableCellNode(TableCellHeaderStates.NO_STATUS)\n $convertFromMarkdownString(textContent, allTransformers, cell)\n return cell\n}\n\nconst mapToTableCells = (\n textContent: string,\n allTransformers: Transformer[],\n): Array<TableCellNode> | null => {\n const match = textContent.match(TABLE_ROW_REG_EXP)\n if (!match || !match[1]) {\n return null\n }\n return match[1].split('|').map((text) => $createTableCell(text, allTransformers))\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import { TableCellNode, TableNode, TableRowNode } from '@lexical/table';
2
2
  import { sanitizeFields } from 'payload';
3
3
  import { createServerFeature } from '../../../utilities/createServerFeature.js';
4
- import { convertLexicalNodesToHTML } from '../../converters/html/converter/index.js';
4
+ import { convertLexicalNodesToHTML } from '../../converters/html_deprecated/converter/index.js';
5
5
  import { createNode } from '../../typeUtilities.js';
6
6
  import { TableMarkdownTransformer } from '../markdownTransformer.js';
7
7
  const fields = [{
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["TableCellNode","TableNode","TableRowNode","sanitizeFields","createServerFeature","convertLexicalNodesToHTML","createNode","TableMarkdownTransformer","fields","name","type","defaultValue","required","EXPERIMENTAL_TableFeature","feature","config","isRoot","parentIsLocalized","validRelationships","collections","map","c","slug","sanitizedFields","requireFieldLevelRichTextEditor","ClientFeature","generateSchemaMap","schemaMap","Map","set","markdownTransformers","nodes","converters","html","converter","currentDepth","depth","draft","node","overrideAccess","parent","req","showHiddenFields","childrenText","lexicalNodes","children","nodeTypes","getType","tagName","headerState","headerStateClass","backgroundColor","colSpan","rowSpan","key"],"sources":["../../../../src/features/experimental_table/server/index.ts"],"sourcesContent":["import type {\n SerializedTableCellNode as _SerializedTableCellNode,\n SerializedTableNode as _SerializedTableNode,\n SerializedTableRowNode as _SerializedTableRowNode,\n} from '@lexical/table'\nimport type { Spread } from 'lexical'\nimport type { Config, Field, FieldSchemaMap } from 'payload'\n\nimport { TableCellNode, TableNode, TableRowNode } from '@lexical/table'\nimport { sanitizeFields } from 'payload'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { convertLexicalNodesToHTML } from '../../converters/html/converter/index.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { TableMarkdownTransformer } from '../markdownTransformer.js'\n\nconst fields: Field[] = [\n {\n name: 'rows',\n type: 'number',\n defaultValue: 5,\n required: true,\n },\n {\n name: 'columns',\n type: 'number',\n defaultValue: 5,\n required: true,\n },\n]\n\nexport type SerializedTableCellNode = Spread<\n {\n type: 'tablecell'\n },\n _SerializedTableCellNode\n>\n\nexport type SerializedTableNode = Spread<\n {\n type: 'table'\n },\n _SerializedTableNode\n>\n\nexport type SerializedTableRowNode = Spread<\n {\n type: 'tablerow'\n },\n _SerializedTableRowNode\n>\nexport const EXPERIMENTAL_TableFeature = createServerFeature({\n feature: async ({ config, isRoot, parentIsLocalized }) => {\n const validRelationships = config.collections.map((c) => c.slug) || []\n\n const sanitizedFields = await sanitizeFields({\n config: config as unknown as Config,\n fields,\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#TableFeatureClient',\n generateSchemaMap: () => {\n const schemaMap: FieldSchemaMap = new Map()\n\n schemaMap.set('fields', {\n fields: sanitizedFields,\n })\n\n return schemaMap\n },\n markdownTransformers: [TableMarkdownTransformer],\n nodes: [\n createNode({\n converters: {\n html: {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n return `<div class=\"lexical-table-container\"><table class=\"lexical-table\" style=\"border-collapse: collapse;\">${childrenText}</table></div>`\n },\n nodeTypes: [TableNode.getType()],\n },\n },\n node: TableNode,\n }),\n createNode({\n converters: {\n html: {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n\n const tagName = node.headerState > 0 ? 'th' : 'td'\n const headerStateClass = `lexical-table-cell-header-${node.headerState}`\n const backgroundColor = node.backgroundColor\n ? `background-color: ${node.backgroundColor};`\n : ''\n const colSpan = node.colSpan && node.colSpan > 1 ? `colspan=\"${node.colSpan}\"` : ''\n const rowSpan = node.rowSpan && node.rowSpan > 1 ? `rowspan=\"${node.rowSpan}\"` : ''\n\n return `<${tagName} class=\"lexical-table-cell ${headerStateClass}\" style=\"border: 1px solid #ccc; padding: 8px; ${backgroundColor}\" ${colSpan} ${rowSpan}>${childrenText}</${tagName}>`\n },\n nodeTypes: [TableCellNode.getType()],\n },\n },\n node: TableCellNode,\n }),\n createNode({\n converters: {\n html: {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n return `<tr class=\"lexical-table-row\">${childrenText}</tr>`\n },\n nodeTypes: [TableRowNode.getType()],\n },\n },\n node: TableRowNode,\n }),\n ],\n }\n },\n key: 'experimental_table',\n})\n"],"mappings":"AAQA,SAASA,aAAa,EAAEC,SAAS,EAAEC,YAAY,QAAQ;AACvD,SAASC,cAAc,QAAQ;AAE/B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,UAAU,QAAQ;AAC3B,SAASC,wBAAwB,QAAQ;AAEzC,MAAMC,MAAA,GAAkB,CACtB;EACEC,IAAA,EAAM;EACNC,IAAA,EAAM;EACNC,YAAA,EAAc;EACdC,QAAA,EAAU;AACZ,GACA;EACEH,IAAA,EAAM;EACNC,IAAA,EAAM;EACNC,YAAA,EAAc;EACdC,QAAA,EAAU;AACZ,EACD;AAsBD,OAAO,MAAMC,yBAAA,GAA4BT,mBAAA,CAAoB;EAC3DU,OAAA,EAAS,MAAAA,CAAO;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAiB,CAAE;IACnD,MAAMC,kBAAA,GAAqBH,MAAA,CAAOI,WAAW,CAACC,GAAG,CAAEC,CAAA,IAAMA,CAAA,CAAEC,IAAI,KAAK,EAAE;IAEtE,MAAMC,eAAA,GAAkB,MAAMpB,cAAA,CAAe;MAC3CY,MAAA,EAAQA,MAAA;MACRP,MAAA;MACAS,iBAAA;MACAO,+BAAA,EAAiCR,MAAA;MACjCE;IACF;IACA,OAAO;MACLO,aAAA,EAAe;MACfC,iBAAA,EAAmBA,CAAA;QACjB,MAAMC,SAAA,GAA4B,IAAIC,GAAA;QAEtCD,SAAA,CAAUE,GAAG,CAAC,UAAU;UACtBrB,MAAA,EAAQe;QACV;QAEA,OAAOI,SAAA;MACT;MACAG,oBAAA,EAAsB,CAACvB,wBAAA,CAAyB;MAChDwB,KAAA,EAAO,CACLzB,UAAA,CAAW;QACT0B,UAAA,EAAY;UACVC,IAAA,EAAM;YACJC,SAAA,EAAW,MAAAA,CAAO;cAChBF,UAAU;cACVG,YAAY;cACZC,KAAK;cACLC,KAAK;cACLC,IAAI;cACJC,cAAc;cACdC,MAAM;cACNC,GAAG;cACHC;YAAgB,CACjB;cACC,MAAMC,YAAA,GAAe,MAAMtC,yBAAA,CAA0B;gBACnD2B,UAAA;gBACAG,YAAA;gBACAC,KAAA;gBACAC,KAAA;gBACAO,YAAA,EAAcN,IAAA,CAAKO,QAAQ;gBAC3BN,cAAA;gBACAC,MAAA,EAAQ;kBACN,GAAGF,IAAI;kBACPE;gBACF;gBACAC,GAAA;gBACAC;cACF;cACA,OAAO,wGAAwGC,YAAA,gBAA4B;YAC7I;YACAG,SAAA,EAAW,CAAC7C,SAAA,CAAU8C,OAAO;UAC/B;QACF;QACAT,IAAA,EAAMrC;MACR,IACAK,UAAA,CAAW;QACT0B,UAAA,EAAY;UACVC,IAAA,EAAM;YACJC,SAAA,EAAW,MAAAA,CAAO;cAChBF,UAAU;cACVG,YAAY;cACZC,KAAK;cACLC,KAAK;cACLC,IAAI;cACJC,cAAc;cACdC,MAAM;cACNC,GAAG;cACHC;YAAgB,CACjB;cACC,MAAMC,YAAA,GAAe,MAAMtC,yBAAA,CAA0B;gBACnD2B,UAAA;gBACAG,YAAA;gBACAC,KAAA;gBACAC,KAAA;gBACAO,YAAA,EAAcN,IAAA,CAAKO,QAAQ;gBAC3BN,cAAA;gBACAC,MAAA,EAAQ;kBACN,GAAGF,IAAI;kBACPE;gBACF;gBACAC,GAAA;gBACAC;cACF;cAEA,MAAMM,OAAA,GAAUV,IAAA,CAAKW,WAAW,GAAG,IAAI,OAAO;cAC9C,MAAMC,gBAAA,GAAmB,6BAA6BZ,IAAA,CAAKW,WAAW,EAAE;cACxE,MAAME,eAAA,GAAkBb,IAAA,CAAKa,eAAe,GACxC,qBAAqBb,IAAA,CAAKa,eAAe,GAAG,GAC5C;cACJ,MAAMC,OAAA,GAAUd,IAAA,CAAKc,OAAO,IAAId,IAAA,CAAKc,OAAO,GAAG,IAAI,YAAYd,IAAA,CAAKc,OAAO,GAAG,GAAG;cACjF,MAAMC,OAAA,GAAUf,IAAA,CAAKe,OAAO,IAAIf,IAAA,CAAKe,OAAO,GAAG,IAAI,YAAYf,IAAA,CAAKe,OAAO,GAAG,GAAG;cAEjF,OAAO,IAAIL,OAAA,8BAAqCE,gBAAA,kDAAkEC,eAAA,KAAoBC,OAAA,IAAWC,OAAA,IAAWV,YAAA,KAAiBK,OAAA,GAAU;YACzL;YACAF,SAAA,EAAW,CAAC9C,aAAA,CAAc+C,OAAO;UACnC;QACF;QACAT,IAAA,EAAMtC;MACR,IACAM,UAAA,CAAW;QACT0B,UAAA,EAAY;UACVC,IAAA,EAAM;YACJC,SAAA,EAAW,MAAAA,CAAO;cAChBF,UAAU;cACVG,YAAY;cACZC,KAAK;cACLC,KAAK;cACLC,IAAI;cACJC,cAAc;cACdC,MAAM;cACNC,GAAG;cACHC;YAAgB,CACjB;cACC,MAAMC,YAAA,GAAe,MAAMtC,yBAAA,CAA0B;gBACnD2B,UAAA;gBACAG,YAAA;gBACAC,KAAA;gBACAC,KAAA;gBACAO,YAAA,EAAcN,IAAA,CAAKO,QAAQ;gBAC3BN,cAAA;gBACAC,MAAA,EAAQ;kBACN,GAAGF,IAAI;kBACPE;gBACF;gBACAC,GAAA;gBACAC;cACF;cACA,OAAO,iCAAiCC,YAAA,OAAmB;YAC7D;YACAG,SAAA,EAAW,CAAC5C,YAAA,CAAa6C,OAAO;UAClC;QACF;QACAT,IAAA,EAAMpC;MACR;IAEJ;EACF;EACAoD,GAAA,EAAK;AACP","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["TableCellNode","TableNode","TableRowNode","sanitizeFields","createServerFeature","convertLexicalNodesToHTML","createNode","TableMarkdownTransformer","fields","name","type","defaultValue","required","EXPERIMENTAL_TableFeature","feature","config","isRoot","parentIsLocalized","validRelationships","collections","map","c","slug","sanitizedFields","requireFieldLevelRichTextEditor","ClientFeature","generateSchemaMap","schemaMap","Map","set","markdownTransformers","nodes","converters","html","converter","currentDepth","depth","draft","node","overrideAccess","parent","req","showHiddenFields","childrenText","lexicalNodes","children","nodeTypes","getType","tagName","headerState","headerStateClass","backgroundColor","colSpan","rowSpan","key"],"sources":["../../../../src/features/experimental_table/server/index.ts"],"sourcesContent":["import type {\n SerializedTableCellNode as _SerializedTableCellNode,\n SerializedTableNode as _SerializedTableNode,\n SerializedTableRowNode as _SerializedTableRowNode,\n} from '@lexical/table'\nimport type { Spread } from 'lexical'\nimport type { Config, Field, FieldSchemaMap } from 'payload'\n\nimport { TableCellNode, TableNode, TableRowNode } from '@lexical/table'\nimport { sanitizeFields } from 'payload'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { convertLexicalNodesToHTML } from '../../converters/html_deprecated/converter/index.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { TableMarkdownTransformer } from '../markdownTransformer.js'\n\nconst fields: Field[] = [\n {\n name: 'rows',\n type: 'number',\n defaultValue: 5,\n required: true,\n },\n {\n name: 'columns',\n type: 'number',\n defaultValue: 5,\n required: true,\n },\n]\n\nexport type SerializedTableCellNode = Spread<\n {\n type: 'tablecell'\n },\n _SerializedTableCellNode\n>\n\nexport type SerializedTableNode = Spread<\n {\n type: 'table'\n },\n _SerializedTableNode\n>\n\nexport type SerializedTableRowNode = Spread<\n {\n type: 'tablerow'\n },\n _SerializedTableRowNode\n>\nexport const EXPERIMENTAL_TableFeature = createServerFeature({\n feature: async ({ config, isRoot, parentIsLocalized }) => {\n const validRelationships = config.collections.map((c) => c.slug) || []\n\n const sanitizedFields = await sanitizeFields({\n config: config as unknown as Config,\n fields,\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#TableFeatureClient',\n generateSchemaMap: () => {\n const schemaMap: FieldSchemaMap = new Map()\n\n schemaMap.set('fields', {\n fields: sanitizedFields,\n })\n\n return schemaMap\n },\n markdownTransformers: [TableMarkdownTransformer],\n nodes: [\n createNode({\n converters: {\n html: {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n return `<div class=\"lexical-table-container\"><table class=\"lexical-table\" style=\"border-collapse: collapse;\">${childrenText}</table></div>`\n },\n nodeTypes: [TableNode.getType()],\n },\n },\n node: TableNode,\n }),\n createNode({\n converters: {\n html: {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n\n const tagName = node.headerState > 0 ? 'th' : 'td'\n const headerStateClass = `lexical-table-cell-header-${node.headerState}`\n const backgroundColor = node.backgroundColor\n ? `background-color: ${node.backgroundColor};`\n : ''\n const colSpan = node.colSpan && node.colSpan > 1 ? `colspan=\"${node.colSpan}\"` : ''\n const rowSpan = node.rowSpan && node.rowSpan > 1 ? `rowspan=\"${node.rowSpan}\"` : ''\n\n return `<${tagName} class=\"lexical-table-cell ${headerStateClass}\" style=\"border: 1px solid #ccc; padding: 8px; ${backgroundColor}\" ${colSpan} ${rowSpan}>${childrenText}</${tagName}>`\n },\n nodeTypes: [TableCellNode.getType()],\n },\n },\n node: TableCellNode,\n }),\n createNode({\n converters: {\n html: {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n return `<tr class=\"lexical-table-row\">${childrenText}</tr>`\n },\n nodeTypes: [TableRowNode.getType()],\n },\n },\n node: TableRowNode,\n }),\n ],\n }\n },\n key: 'experimental_table',\n})\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { HeadingNode } from '@lexical/rich-text';
2
2
  import { createServerFeature } from '../../../utilities/createServerFeature.js';
3
- import { convertLexicalNodesToHTML } from '../../converters/html/converter/index.js';
3
+ import { convertLexicalNodesToHTML } from '../../converters/html_deprecated/converter/index.js';
4
4
  import { createNode } from '../../typeUtilities.js';
5
5
  import { MarkdownTransformer } from '../markdownTransformer.js';
6
6
  import { i18n } from './i18n.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["HeadingNode","createServerFeature","convertLexicalNodesToHTML","createNode","MarkdownTransformer","i18n","HeadingFeature","feature","props","enabledHeadingSizes","ClientFeature","clientFeatureProps","markdownTransformers","nodes","converters","html","converter","currentDepth","depth","draft","node","overrideAccess","parent","req","showHiddenFields","childrenText","lexicalNodes","children","style","format","indent","filter","Boolean","join","tag","nodeTypes","getType","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/heading/server/index.ts"],"sourcesContent":["import type {\n SerializedHeadingNode as _SerializedHeadingNode,\n HeadingTagType,\n} from '@lexical/rich-text'\nimport type { Spread } from 'lexical'\n\nimport { HeadingNode } from '@lexical/rich-text'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { convertLexicalNodesToHTML } from '../../converters/html/converter/index.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { MarkdownTransformer } from '../markdownTransformer.js'\nimport { i18n } from './i18n.js'\n\nexport type SerializedHeadingNode = Spread<\n {\n type: 'heading'\n },\n _SerializedHeadingNode\n>\n\nexport type HeadingFeatureProps = {\n enabledHeadingSizes?: HeadingTagType[]\n}\n\nexport const HeadingFeature = createServerFeature<\n HeadingFeatureProps,\n HeadingFeatureProps,\n HeadingFeatureProps\n>({\n feature: ({ props }) => {\n if (!props) {\n props = {}\n }\n\n const { enabledHeadingSizes = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] } = props\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#HeadingFeatureClient',\n clientFeatureProps: props,\n i18n,\n markdownTransformers: [MarkdownTransformer(enabledHeadingSizes)],\n nodes: [\n createNode({\n converters: {\n html: {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n const style = [\n node.format ? `text-align: ${node.format};` : '',\n node.indent > 0 ? `padding-inline-start: ${node.indent * 40}px;` : '',\n ]\n .filter(Boolean)\n .join(' ')\n return `<${node?.tag}${style ? ` style='${style}'` : ''}>${childrenText}</${node?.tag}>`\n },\n nodeTypes: [HeadingNode.getType()],\n },\n },\n node: HeadingNode,\n }),\n ],\n sanitizedServerFeatureProps: props,\n }\n },\n key: 'heading',\n})\n"],"mappings":"AAMA,SAASA,WAAW,QAAQ;AAE5B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,UAAU,QAAQ;AAC3B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,IAAI,QAAQ;AAarB,OAAO,MAAMC,cAAA,GAAiBL,mBAAA,CAI5B;EACAM,OAAA,EAASA,CAAC;IAAEC;EAAK,CAAE;IACjB,IAAI,CAACA,KAAA,EAAO;MACVA,KAAA,GAAQ,CAAC;IACX;IAEA,MAAM;MAAEC,mBAAA,GAAsB,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM;IAAK,CAAE,GAAGD,KAAA;IAEvE,OAAO;MACLE,aAAA,EAAe;MACfC,kBAAA,EAAoBH,KAAA;MACpBH,IAAA;MACAO,oBAAA,EAAsB,CAACR,mBAAA,CAAoBK,mBAAA,EAAqB;MAChEI,KAAA,EAAO,CACLV,UAAA,CAAW;QACTW,UAAA,EAAY;UACVC,IAAA,EAAM;YACJC,SAAA,EAAW,MAAAA,CAAO;cAChBF,UAAU;cACVG,YAAY;cACZC,KAAK;cACLC,KAAK;cACLC,IAAI;cACJC,cAAc;cACdC,MAAM;cACNC,GAAG;cACHC;YAAgB,CACjB;cACC,MAAMC,YAAA,GAAe,MAAMvB,yBAAA,CAA0B;gBACnDY,UAAA;gBACAG,YAAA;gBACAC,KAAA;gBACAC,KAAA;gBACAO,YAAA,EAAcN,IAAA,CAAKO,QAAQ;gBAC3BN,cAAA;gBACAC,MAAA,EAAQ;kBACN,GAAGF,IAAI;kBACPE;gBACF;gBACAC,GAAA;gBACAC;cACF;cACA,MAAMI,KAAA,GAAQ,CACZR,IAAA,CAAKS,MAAM,GAAG,eAAeT,IAAA,CAAKS,MAAM,GAAG,GAAG,IAC9CT,IAAA,CAAKU,MAAM,GAAG,IAAI,yBAAyBV,IAAA,CAAKU,MAAM,GAAG,OAAO,GAAG,GACpE,CACEC,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;cACR,OAAO,IAAIb,IAAA,EAAMc,GAAA,GAAMN,KAAA,GAAQ,WAAWA,KAAA,GAAQ,GAAG,MAAMH,YAAA,KAAiBL,IAAA,EAAMc,GAAA,GAAM;YAC1F;YACAC,SAAA,EAAW,CAACnC,WAAA,CAAYoC,OAAO;UACjC;QACF;QACAhB,IAAA,EAAMpB;MACR,GACD;MACDqC,2BAAA,EAA6B7B;IAC/B;EACF;EACA8B,GAAA,EAAK;AACP","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["HeadingNode","createServerFeature","convertLexicalNodesToHTML","createNode","MarkdownTransformer","i18n","HeadingFeature","feature","props","enabledHeadingSizes","ClientFeature","clientFeatureProps","markdownTransformers","nodes","converters","html","converter","currentDepth","depth","draft","node","overrideAccess","parent","req","showHiddenFields","childrenText","lexicalNodes","children","style","format","indent","filter","Boolean","join","tag","nodeTypes","getType","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/heading/server/index.ts"],"sourcesContent":["import type {\n SerializedHeadingNode as _SerializedHeadingNode,\n HeadingTagType,\n} from '@lexical/rich-text'\nimport type { Spread } from 'lexical'\n\nimport { HeadingNode } from '@lexical/rich-text'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { convertLexicalNodesToHTML } from '../../converters/html_deprecated/converter/index.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { MarkdownTransformer } from '../markdownTransformer.js'\nimport { i18n } from './i18n.js'\n\nexport type SerializedHeadingNode = Spread<\n {\n type: 'heading'\n },\n _SerializedHeadingNode\n>\n\nexport type HeadingFeatureProps = {\n enabledHeadingSizes?: HeadingTagType[]\n}\n\nexport const HeadingFeature = createServerFeature<\n HeadingFeatureProps,\n HeadingFeatureProps,\n HeadingFeatureProps\n>({\n feature: ({ props }) => {\n if (!props) {\n props = {}\n }\n\n const { enabledHeadingSizes = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] } = props\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#HeadingFeatureClient',\n clientFeatureProps: props,\n i18n,\n markdownTransformers: [MarkdownTransformer(enabledHeadingSizes)],\n nodes: [\n createNode({\n converters: {\n html: {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n const style = [\n node.format ? `text-align: ${node.format};` : '',\n node.indent > 0 ? `padding-inline-start: ${node.indent * 40}px;` : '',\n ]\n .filter(Boolean)\n .join(' ')\n return `<${node?.tag}${style ? ` style='${style}'` : ''}>${childrenText}</${node?.tag}>`\n },\n nodeTypes: [HeadingNode.getType()],\n },\n },\n node: HeadingNode,\n }),\n ],\n sanitizedServerFeatureProps: props,\n }\n },\n key: 'heading',\n})\n"],"mappings":"AAMA,SAASA,WAAW,QAAQ;AAE5B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,UAAU,QAAQ;AAC3B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,IAAI,QAAQ;AAarB,OAAO,MAAMC,cAAA,GAAiBL,mBAAA,CAI5B;EACAM,OAAA,EAASA,CAAC;IAAEC;EAAK,CAAE;IACjB,IAAI,CAACA,KAAA,EAAO;MACVA,KAAA,GAAQ,CAAC;IACX;IAEA,MAAM;MAAEC,mBAAA,GAAsB,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM;IAAK,CAAE,GAAGD,KAAA;IAEvE,OAAO;MACLE,aAAA,EAAe;MACfC,kBAAA,EAAoBH,KAAA;MACpBH,IAAA;MACAO,oBAAA,EAAsB,CAACR,mBAAA,CAAoBK,mBAAA,EAAqB;MAChEI,KAAA,EAAO,CACLV,UAAA,CAAW;QACTW,UAAA,EAAY;UACVC,IAAA,EAAM;YACJC,SAAA,EAAW,MAAAA,CAAO;cAChBF,UAAU;cACVG,YAAY;cACZC,KAAK;cACLC,KAAK;cACLC,IAAI;cACJC,cAAc;cACdC,MAAM;cACNC,GAAG;cACHC;YAAgB,CACjB;cACC,MAAMC,YAAA,GAAe,MAAMvB,yBAAA,CAA0B;gBACnDY,UAAA;gBACAG,YAAA;gBACAC,KAAA;gBACAC,KAAA;gBACAO,YAAA,EAAcN,IAAA,CAAKO,QAAQ;gBAC3BN,cAAA;gBACAC,MAAA,EAAQ;kBACN,GAAGF,IAAI;kBACPE;gBACF;gBACAC,GAAA;gBACAC;cACF;cACA,MAAMI,KAAA,GAAQ,CACZR,IAAA,CAAKS,MAAM,GAAG,eAAeT,IAAA,CAAKS,MAAM,GAAG,GAAG,IAC9CT,IAAA,CAAKU,MAAM,GAAG,IAAI,yBAAyBV,IAAA,CAAKU,MAAM,GAAG,OAAO,GAAG,GACpE,CACEC,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;cACR,OAAO,IAAIb,IAAA,EAAMc,GAAA,GAAMN,KAAA,GAAQ,WAAWA,KAAA,GAAQ,GAAG,MAAMH,YAAA,KAAiBL,IAAA,EAAMc,GAAA,GAAM;YAC1F;YACAC,SAAA,EAAW,CAACnC,WAAA,CAAYoC,OAAO;UACjC;QACF;QACAhB,IAAA,EAAMpB;MACR,GACD;MACDqC,2BAAA,EAA6B7B;IAC/B;EACF;EACA8B,GAAA,EAAK;AACP","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- export declare const IndentFeatureClient: import("../../typesClient.js").FeatureProviderProviderClient<undefined, undefined>;
1
+ export declare const IndentFeatureClient: import("../../typesClient.js").FeatureProviderProviderClient<undefined, any>;
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/indent/client/index.tsx"],"names":[],"mappings":"AAkFA,eAAO,MAAM,mBAAmB,oFAa9B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/indent/client/index.tsx"],"names":[],"mappings":"AAmFA,eAAO,MAAM,mBAAmB,8EAa9B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["TabIndentationPlugin","$findMatchingParent","$isElementNode","$isRangeSelection","INDENT_CONTENT_COMMAND","OUTDENT_CONTENT_COMMAND","IndentDecreaseIcon","IndentIncreaseIcon","createClientFeature","toolbarIndentGroupWithItems","toolbarGroups","ChildComponent","isActive","isEnabled","selection","nodes","getNodes","length","atLeastOneNodeCanOutdent","isIndentable","node","canIndent","getIndent","anchorNode","anchor","getNode","focusNode","focus","key","label","i18n","t","onSelect","editor","dispatchCommand","undefined","order","IndentFeatureClient","plugins","Component","position","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/indent/client/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ElementNode, LexicalNode } from 'lexical'\n\nimport { TabIndentationPlugin } from '@lexical/react/LexicalTabIndentationPlugin'\nimport { $findMatchingParent } from '@lexical/utils'\nimport {\n $isElementNode,\n $isRangeSelection,\n INDENT_CONTENT_COMMAND,\n OUTDENT_CONTENT_COMMAND,\n} from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { IndentDecreaseIcon } from '../../../lexical/ui/icons/IndentDecrease/index.js'\nimport { IndentIncreaseIcon } from '../../../lexical/ui/icons/IndentIncrease/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarIndentGroupWithItems } from './toolbarIndentGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarIndentGroupWithItems([\n {\n ChildComponent: IndentDecreaseIcon,\n isActive: () => false,\n isEnabled: ({ selection }) => {\n const nodes = selection?.getNodes()\n if (!nodes?.length) {\n return false\n }\n let atLeastOneNodeCanOutdent = false\n const isIndentable = (node: LexicalNode): node is ElementNode =>\n $isElementNode(node) && node.canIndent()\n for (const node of nodes) {\n if (isIndentable(node)) {\n if (node.getIndent() <= 0) {\n return false\n } else {\n atLeastOneNodeCanOutdent = true\n }\n }\n }\n if (!atLeastOneNodeCanOutdent && $isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode()\n if (\n $findMatchingParent(anchorNode, (node) => isIndentable(node) && node.getIndent() > 0)\n ) {\n return true\n }\n const focusNode = selection.focus.getNode()\n if (\n $findMatchingParent(focusNode, (node) => isIndentable(node) && node.getIndent() > 0)\n ) {\n return true\n }\n }\n return atLeastOneNodeCanOutdent\n },\n key: 'indentDecrease',\n label: ({ i18n }) => {\n return i18n.t('lexical:indent:decreaseLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(OUTDENT_CONTENT_COMMAND, undefined)\n },\n order: 1,\n },\n {\n ChildComponent: IndentIncreaseIcon,\n isActive: () => false,\n key: 'indentIncrease',\n label: ({ i18n }) => {\n return i18n.t('lexical:indent:increaseLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INDENT_CONTENT_COMMAND, undefined)\n },\n order: 2,\n },\n ]),\n]\n\nexport const IndentFeatureClient = createClientFeature({\n plugins: [\n {\n Component: TabIndentationPlugin,\n position: 'normal',\n },\n ],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n"],"mappings":"AAAA;;AAIA,SAASA,oBAAoB,QAAQ;AACrC,SAASC,mBAAmB,QAAQ;AACpC,SACEC,cAAc,EACdC,iBAAiB,EACjBC,sBAAsB,EACtBC,uBAAuB,QAClB;AAIP,SAASC,kBAAkB,QAAQ;AACnC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAE5C,MAAMC,aAAA,GAAgC,CACpCD,2BAAA,CAA4B,CAC1B;EACEE,cAAA,EAAgBL,kBAAA;EAChBM,QAAA,EAAUA,CAAA,KAAM;EAChBC,SAAA,EAAWA,CAAC;IAAEC;EAAS,CAAE;IACvB,MAAMC,KAAA,GAAQD,SAAA,EAAWE,QAAA;IACzB,IAAI,CAACD,KAAA,EAAOE,MAAA,EAAQ;MAClB,OAAO;IACT;IACA,IAAIC,wBAAA,GAA2B;IAC/B,MAAMC,YAAA,GAAgBC,IAAA,IACpBlB,cAAA,CAAekB,IAAA,KAASA,IAAA,CAAKC,SAAS;IACxC,KAAK,MAAMD,IAAA,IAAQL,KAAA,EAAO;MACxB,IAAII,YAAA,CAAaC,IAAA,GAAO;QACtB,IAAIA,IAAA,CAAKE,SAAS,MAAM,GAAG;UACzB,OAAO;QACT,OAAO;UACLJ,wBAAA,GAA2B;QAC7B;MACF;IACF;IACA,IAAI,CAACA,wBAAA,IAA4Bf,iBAAA,CAAkBW,SAAA,GAAY;MAC7D,MAAMS,UAAA,GAAaT,SAAA,CAAUU,MAAM,CAACC,OAAO;MAC3C,IACExB,mBAAA,CAAoBsB,UAAA,EAAaH,IAAA,IAASD,YAAA,CAAaC,IAAA,KAASA,IAAA,CAAKE,SAAS,KAAK,IACnF;QACA,OAAO;MACT;MACA,MAAMI,SAAA,GAAYZ,SAAA,CAAUa,KAAK,CAACF,OAAO;MACzC,IACExB,mBAAA,CAAoByB,SAAA,EAAYN,IAAA,IAASD,YAAA,CAAaC,IAAA,KAASA,IAAA,CAAKE,SAAS,KAAK,IAClF;QACA,OAAO;MACT;IACF;IACA,OAAOJ,wBAAA;EACT;EACAU,GAAA,EAAK;EACLC,KAAA,EAAOA,CAAC;IAAEC;EAAI,CAAE;IACd,OAAOA,IAAA,CAAKC,CAAC,CAAC;EAChB;EACAC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAAC7B,uBAAA,EAAyB8B,SAAA;EAClD;EACAC,KAAA,EAAO;AACT,GACA;EACEzB,cAAA,EAAgBJ,kBAAA;EAChBK,QAAA,EAAUA,CAAA,KAAM;EAChBgB,GAAA,EAAK;EACLC,KAAA,EAAOA,CAAC;IAAEC;EAAI,CAAE;IACd,OAAOA,IAAA,CAAKC,CAAC,CAAC;EAChB;EACAC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAAC9B,sBAAA,EAAwB+B,SAAA;EACjD;EACAC,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,mBAAA,GAAsB7B,mBAAA,CAAoB;EACrD8B,OAAA,EAAS,CACP;IACEC,SAAA,EAAWvC,oBAAA;IACXwC,QAAA,EAAU;EACZ,EACD;EACDC,YAAA,EAAc;IACZC,MAAA,EAAQhC;EACV;EACAiC,aAAA,EAAe;IACbD,MAAA,EAAQhC;EACV;AACF","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["TabIndentationPlugin","$findMatchingParent","$isElementNode","$isRangeSelection","INDENT_CONTENT_COMMAND","OUTDENT_CONTENT_COMMAND","IndentDecreaseIcon","IndentIncreaseIcon","createClientFeature","toolbarIndentGroupWithItems","toolbarGroups","ChildComponent","isActive","isEnabled","selection","nodes","getNodes","length","atLeastOneNodeCanOutdent","isIndentable","node","canIndent","getIndent","anchorNode","anchor","getNode","focusNode","focus","key","label","i18n","t","onSelect","editor","dispatchCommand","undefined","order","IndentFeatureClient","plugins","Component","position","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/indent/client/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ElementNode, LexicalNode } from 'lexical'\n\nimport { TabIndentationPlugin } from '@lexical/react/LexicalTabIndentationPlugin'\nimport { $findMatchingParent } from '@lexical/utils'\nimport {\n $isElementNode,\n $isRangeSelection,\n INDENT_CONTENT_COMMAND,\n OUTDENT_CONTENT_COMMAND,\n} from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\nimport type { PluginComponent } from '../../typesClient.js'\n\nimport { IndentDecreaseIcon } from '../../../lexical/ui/icons/IndentDecrease/index.js'\nimport { IndentIncreaseIcon } from '../../../lexical/ui/icons/IndentIncrease/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarIndentGroupWithItems } from './toolbarIndentGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarIndentGroupWithItems([\n {\n ChildComponent: IndentDecreaseIcon,\n isActive: () => false,\n isEnabled: ({ selection }) => {\n const nodes = selection?.getNodes()\n if (!nodes?.length) {\n return false\n }\n let atLeastOneNodeCanOutdent = false\n const isIndentable = (node: LexicalNode): node is ElementNode =>\n $isElementNode(node) && node.canIndent()\n for (const node of nodes) {\n if (isIndentable(node)) {\n if (node.getIndent() <= 0) {\n return false\n } else {\n atLeastOneNodeCanOutdent = true\n }\n }\n }\n if (!atLeastOneNodeCanOutdent && $isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode()\n if (\n $findMatchingParent(anchorNode, (node) => isIndentable(node) && node.getIndent() > 0)\n ) {\n return true\n }\n const focusNode = selection.focus.getNode()\n if (\n $findMatchingParent(focusNode, (node) => isIndentable(node) && node.getIndent() > 0)\n ) {\n return true\n }\n }\n return atLeastOneNodeCanOutdent\n },\n key: 'indentDecrease',\n label: ({ i18n }) => {\n return i18n.t('lexical:indent:decreaseLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(OUTDENT_CONTENT_COMMAND, undefined)\n },\n order: 1,\n },\n {\n ChildComponent: IndentIncreaseIcon,\n isActive: () => false,\n key: 'indentIncrease',\n label: ({ i18n }) => {\n return i18n.t('lexical:indent:increaseLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INDENT_CONTENT_COMMAND, undefined)\n },\n order: 2,\n },\n ]),\n]\n\nexport const IndentFeatureClient = createClientFeature({\n plugins: [\n {\n Component: TabIndentationPlugin as PluginComponent,\n position: 'normal',\n },\n ],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n"],"mappings":"AAAA;;AAIA,SAASA,oBAAoB,QAAQ;AACrC,SAASC,mBAAmB,QAAQ;AACpC,SACEC,cAAc,EACdC,iBAAiB,EACjBC,sBAAsB,EACtBC,uBAAuB,QAClB;AAKP,SAASC,kBAAkB,QAAQ;AACnC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAE5C,MAAMC,aAAA,GAAgC,CACpCD,2BAAA,CAA4B,CAC1B;EACEE,cAAA,EAAgBL,kBAAA;EAChBM,QAAA,EAAUA,CAAA,KAAM;EAChBC,SAAA,EAAWA,CAAC;IAAEC;EAAS,CAAE;IACvB,MAAMC,KAAA,GAAQD,SAAA,EAAWE,QAAA;IACzB,IAAI,CAACD,KAAA,EAAOE,MAAA,EAAQ;MAClB,OAAO;IACT;IACA,IAAIC,wBAAA,GAA2B;IAC/B,MAAMC,YAAA,GAAgBC,IAAA,IACpBlB,cAAA,CAAekB,IAAA,KAASA,IAAA,CAAKC,SAAS;IACxC,KAAK,MAAMD,IAAA,IAAQL,KAAA,EAAO;MACxB,IAAII,YAAA,CAAaC,IAAA,GAAO;QACtB,IAAIA,IAAA,CAAKE,SAAS,MAAM,GAAG;UACzB,OAAO;QACT,OAAO;UACLJ,wBAAA,GAA2B;QAC7B;MACF;IACF;IACA,IAAI,CAACA,wBAAA,IAA4Bf,iBAAA,CAAkBW,SAAA,GAAY;MAC7D,MAAMS,UAAA,GAAaT,SAAA,CAAUU,MAAM,CAACC,OAAO;MAC3C,IACExB,mBAAA,CAAoBsB,UAAA,EAAaH,IAAA,IAASD,YAAA,CAAaC,IAAA,KAASA,IAAA,CAAKE,SAAS,KAAK,IACnF;QACA,OAAO;MACT;MACA,MAAMI,SAAA,GAAYZ,SAAA,CAAUa,KAAK,CAACF,OAAO;MACzC,IACExB,mBAAA,CAAoByB,SAAA,EAAYN,IAAA,IAASD,YAAA,CAAaC,IAAA,KAASA,IAAA,CAAKE,SAAS,KAAK,IAClF;QACA,OAAO;MACT;IACF;IACA,OAAOJ,wBAAA;EACT;EACAU,GAAA,EAAK;EACLC,KAAA,EAAOA,CAAC;IAAEC;EAAI,CAAE;IACd,OAAOA,IAAA,CAAKC,CAAC,CAAC;EAChB;EACAC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAAC7B,uBAAA,EAAyB8B,SAAA;EAClD;EACAC,KAAA,EAAO;AACT,GACA;EACEzB,cAAA,EAAgBJ,kBAAA;EAChBK,QAAA,EAAUA,CAAA,KAAM;EAChBgB,GAAA,EAAK;EACLC,KAAA,EAAOA,CAAC;IAAEC;EAAI,CAAE;IACd,OAAOA,IAAA,CAAKC,CAAC,CAAC;EAChB;EACAC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAAC9B,sBAAA,EAAwB+B,SAAA;EACjD;EACAC,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,mBAAA,GAAsB7B,mBAAA,CAAoB;EACrD8B,OAAA,EAAS,CACP;IACEC,SAAA,EAAWvC,oBAAA;IACXwC,QAAA,EAAU;EACZ,EACD;EACDC,YAAA,EAAc;IACZC,MAAA,EAAQhC;EACV;EACAiC,aAAA,EAAe;IACbD,MAAA,EAAQhC;EACV;AACF","ignoreList":[]}
@@ -2,6 +2,7 @@ import type { ExclusiveLinkCollectionsProps } from '../server/index.js';
2
2
  export type ClientProps = {
3
3
  defaultLinkType?: string;
4
4
  defaultLinkURL?: string;
5
+ disableAutoLinks?: 'creationOnly' | true;
5
6
  } & ExclusiveLinkCollectionsProps;
6
- export declare const LinkFeatureClient: import("../../typesClient.js").FeatureProviderProviderClient<undefined, ClientProps>;
7
+ export declare const LinkFeatureClient: import("../../typesClient.js").FeatureProviderProviderClient<ClientProps, ClientProps>;
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/link/client/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAA;AAevE,MAAM,MAAM,WAAW,GAAG;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,GAAG,6BAA6B,CAAA;AAuDjC,eAAO,MAAM,iBAAiB,sFA2B5B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/link/client/index.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAA;AAevE,MAAM,MAAM,WAAW,GAAG;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;CACzC,GAAG,6BAA6B,CAAA;AAuDjC,eAAO,MAAM,iBAAiB,wFAgC3B,CAAA"}
@@ -68,13 +68,15 @@ const toolbarGroups = [toolbarFeatureButtonsGroupWithItems([{
68
68
  },
69
69
  order: 1
70
70
  }])];
71
- export const LinkFeatureClient = createClientFeature({
71
+ export const LinkFeatureClient = createClientFeature(({
72
+ props
73
+ }) => ({
72
74
  markdownTransformers: [LinkMarkdownTransformer],
73
- nodes: [LinkNode, AutoLinkNode],
75
+ nodes: [LinkNode, props?.disableAutoLinks === true ? null : AutoLinkNode].filter(Boolean),
74
76
  plugins: [{
75
77
  Component: LinkPlugin,
76
78
  position: 'normal'
77
- }, {
79
+ }, props?.disableAutoLinks === true || props?.disableAutoLinks === 'creationOnly' ? null : {
78
80
  Component: AutoLinkPlugin,
79
81
  position: 'normal'
80
82
  }, {
@@ -83,12 +85,13 @@ export const LinkFeatureClient = createClientFeature({
83
85
  }, {
84
86
  Component: FloatingLinkEditorPlugin,
85
87
  position: 'floatingAnchorElem'
86
- }],
88
+ }].filter(Boolean),
89
+ sanitizedClientFeatureProps: props,
87
90
  toolbarFixed: {
88
91
  groups: toolbarGroups
89
92
  },
90
93
  toolbarInline: {
91
94
  groups: toolbarGroups
92
95
  }
93
- });
96
+ }));
94
97
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["$findMatchingParent","$getSelection","$isRangeSelection","LinkIcon","getSelectedNode","createClientFeature","toolbarFeatureButtonsGroupWithItems","LinkMarkdownTransformer","AutoLinkNode","$isLinkNode","LinkNode","TOGGLE_LINK_COMMAND","AutoLinkPlugin","ClickableLinkPlugin","FloatingLinkEditorPlugin","TOGGLE_LINK_WITH_MODAL_COMMAND","LinkPlugin","toolbarGroups","ChildComponent","isActive","selection","selectedNode","linkParent","isEnabled","getTextContent","length","key","label","i18n","t","onSelect","editor","selectedText","selectedNodes","getEditorState","read","getNodes","linkFields","doc","newTab","dispatchCommand","fields","text","order","LinkFeatureClient","markdownTransformers","nodes","plugins","Component","position","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/link/client/index.tsx"],"sourcesContent":["'use client'\n\nimport type { LexicalNode } from 'lexical'\n\nimport { $findMatchingParent } from '@lexical/utils'\nimport { $getSelection, $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\nimport type { LinkFields } from '../nodes/types.js'\nimport type { ExclusiveLinkCollectionsProps } from '../server/index.js'\n\nimport { LinkIcon } from '../../../lexical/ui/icons/Link/index.js'\nimport { getSelectedNode } from '../../../lexical/utils/getSelectedNode.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFeatureButtonsGroupWithItems } from '../../shared/toolbar/featureButtonsGroup.js'\nimport { LinkMarkdownTransformer } from '../markdownTransformer.js'\nimport { AutoLinkNode } from '../nodes/AutoLinkNode.js'\nimport { $isLinkNode, LinkNode, TOGGLE_LINK_COMMAND } from '../nodes/LinkNode.js'\nimport { AutoLinkPlugin } from './plugins/autoLink/index.js'\nimport { ClickableLinkPlugin } from './plugins/clickableLink/index.js'\nimport { FloatingLinkEditorPlugin } from './plugins/floatingLinkEditor/index.js'\nimport { TOGGLE_LINK_WITH_MODAL_COMMAND } from './plugins/floatingLinkEditor/LinkEditor/commands.js'\nimport { LinkPlugin } from './plugins/link/index.js'\n\nexport type ClientProps = {\n defaultLinkType?: string\n defaultLinkURL?: string\n} & ExclusiveLinkCollectionsProps\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFeatureButtonsGroupWithItems([\n {\n ChildComponent: LinkIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n const selectedNode = getSelectedNode(selection)\n const linkParent = $findMatchingParent(selectedNode, $isLinkNode)\n return linkParent != null\n }\n return false\n },\n isEnabled: ({ selection }) => {\n return !!($isRangeSelection(selection) && $getSelection()?.getTextContent()?.length)\n },\n key: 'link',\n label: ({ i18n }) => {\n return i18n.t('lexical:link:label')\n },\n onSelect: ({ editor, isActive }) => {\n if (!isActive) {\n let selectedText: string | undefined\n let selectedNodes: LexicalNode[] = []\n editor.getEditorState().read(() => {\n selectedText = $getSelection()?.getTextContent()\n // We need to selected nodes here before the drawer opens, as clicking around in the drawer may change the original selection\n selectedNodes = $getSelection()?.getNodes() ?? []\n })\n\n if (!selectedText?.length) {\n return\n }\n\n const linkFields: Partial<LinkFields> = {\n doc: null,\n newTab: false,\n }\n\n editor.dispatchCommand(TOGGLE_LINK_WITH_MODAL_COMMAND, {\n fields: linkFields,\n selectedNodes,\n text: selectedText,\n })\n } else {\n // remove link\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)\n }\n },\n order: 1,\n },\n ]),\n]\n\nexport const LinkFeatureClient = createClientFeature({\n markdownTransformers: [LinkMarkdownTransformer],\n nodes: [LinkNode, AutoLinkNode],\n plugins: [\n {\n Component: LinkPlugin,\n position: 'normal',\n },\n {\n Component: AutoLinkPlugin,\n position: 'normal',\n },\n {\n Component: ClickableLinkPlugin,\n position: 'normal',\n },\n {\n Component: FloatingLinkEditorPlugin,\n position: 'floatingAnchorElem',\n },\n ],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n"],"mappings":"AAAA;;AAIA,SAASA,mBAAmB,QAAQ;AACpC,SAASC,aAAa,EAAEC,iBAAiB,QAAQ;AAMjD,SAASC,QAAQ,QAAQ;AACzB,SAASC,eAAe,QAAQ;AAChC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,mCAAmC,QAAQ;AACpD,SAASC,uBAAuB,QAAQ;AACxC,SAASC,YAAY,QAAQ;AAC7B,SAASC,WAAW,EAAEC,QAAQ,EAAEC,mBAAmB,QAAQ;AAC3D,SAASC,cAAc,QAAQ;AAC/B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,wBAAwB,QAAQ;AACzC,SAASC,8BAA8B,QAAQ;AAC/C,SAASC,UAAU,QAAQ;AAO3B,MAAMC,aAAA,GAAgC,CACpCX,mCAAA,CAAoC,CAClC;EACEY,cAAA,EAAgBf,QAAA;EAChBgB,QAAA,EAAUA,CAAC;IAAEC;EAAS,CAAE;IACtB,IAAIlB,iBAAA,CAAkBkB,SAAA,GAAY;MAChC,MAAMC,YAAA,GAAejB,eAAA,CAAgBgB,SAAA;MACrC,MAAME,UAAA,GAAatB,mBAAA,CAAoBqB,YAAA,EAAcZ,WAAA;MACrD,OAAOa,UAAA,IAAc;IACvB;IACA,OAAO;EACT;EACAC,SAAA,EAAWA,CAAC;IAAEH;EAAS,CAAE;IACvB,OAAO,CAAC,EAAElB,iBAAA,CAAkBkB,SAAA,KAAcnB,aAAA,IAAiBuB,cAAA,IAAkBC,MAAK;EACpF;EACAC,GAAA,EAAK;EACLC,KAAA,EAAOA,CAAC;IAAEC;EAAI,CAAE;IACd,OAAOA,IAAA,CAAKC,CAAC,CAAC;EAChB;EACAC,QAAA,EAAUA,CAAC;IAAEC,MAAM;IAAEZ;EAAQ,CAAE;IAC7B,IAAI,CAACA,QAAA,EAAU;MACb,IAAIa,YAAA;MACJ,IAAIC,aAAA,GAA+B,EAAE;MACrCF,MAAA,CAAOG,cAAc,GAAGC,IAAI,CAAC;QAC3BH,YAAA,GAAe/B,aAAA,IAAiBuB,cAAA;QAChC;QACAS,aAAA,GAAgBhC,aAAA,IAAiBmC,QAAA,MAAc,EAAE;MACnD;MAEA,IAAI,CAACJ,YAAA,EAAcP,MAAA,EAAQ;QACzB;MACF;MAEA,MAAMY,UAAA,GAAkC;QACtCC,GAAA,EAAK;QACLC,MAAA,EAAQ;MACV;MAEAR,MAAA,CAAOS,eAAe,CAACzB,8BAAA,EAAgC;QACrD0B,MAAA,EAAQJ,UAAA;QACRJ,aAAA;QACAS,IAAA,EAAMV;MACR;IACF,OAAO;MACL;MACAD,MAAA,CAAOS,eAAe,CAAC7B,mBAAA,EAAqB;IAC9C;EACF;EACAgC,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,iBAAA,GAAoBvC,mBAAA,CAAoB;EACnDwC,oBAAA,EAAsB,CAACtC,uBAAA,CAAwB;EAC/CuC,KAAA,EAAO,CAACpC,QAAA,EAAUF,YAAA,CAAa;EAC/BuC,OAAA,EAAS,CACP;IACEC,SAAA,EAAWhC,UAAA;IACXiC,QAAA,EAAU;EACZ,GACA;IACED,SAAA,EAAWpC,cAAA;IACXqC,QAAA,EAAU;EACZ,GACA;IACED,SAAA,EAAWnC,mBAAA;IACXoC,QAAA,EAAU;EACZ,GACA;IACED,SAAA,EAAWlC,wBAAA;IACXmC,QAAA,EAAU;EACZ,EACD;EACDC,YAAA,EAAc;IACZC,MAAA,EAAQlC;EACV;EACAmC,aAAA,EAAe;IACbD,MAAA,EAAQlC;EACV;AACF","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["$findMatchingParent","$getSelection","$isRangeSelection","LinkIcon","getSelectedNode","createClientFeature","toolbarFeatureButtonsGroupWithItems","LinkMarkdownTransformer","AutoLinkNode","$isLinkNode","LinkNode","TOGGLE_LINK_COMMAND","AutoLinkPlugin","ClickableLinkPlugin","FloatingLinkEditorPlugin","TOGGLE_LINK_WITH_MODAL_COMMAND","LinkPlugin","toolbarGroups","ChildComponent","isActive","selection","selectedNode","linkParent","isEnabled","getTextContent","length","key","label","i18n","t","onSelect","editor","selectedText","selectedNodes","getEditorState","read","getNodes","linkFields","doc","newTab","dispatchCommand","fields","text","order","LinkFeatureClient","props","markdownTransformers","nodes","disableAutoLinks","filter","Boolean","plugins","Component","position","sanitizedClientFeatureProps","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/link/client/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Klass, LexicalNode } from 'lexical'\n\nimport { $findMatchingParent } from '@lexical/utils'\nimport { $getSelection, $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\nimport type { ClientFeature } from '../../typesClient.js'\nimport type { LinkFields } from '../nodes/types.js'\nimport type { ExclusiveLinkCollectionsProps } from '../server/index.js'\n\nimport { LinkIcon } from '../../../lexical/ui/icons/Link/index.js'\nimport { getSelectedNode } from '../../../lexical/utils/getSelectedNode.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFeatureButtonsGroupWithItems } from '../../shared/toolbar/featureButtonsGroup.js'\nimport { LinkMarkdownTransformer } from '../markdownTransformer.js'\nimport { AutoLinkNode } from '../nodes/AutoLinkNode.js'\nimport { $isLinkNode, LinkNode, TOGGLE_LINK_COMMAND } from '../nodes/LinkNode.js'\nimport { AutoLinkPlugin } from './plugins/autoLink/index.js'\nimport { ClickableLinkPlugin } from './plugins/clickableLink/index.js'\nimport { FloatingLinkEditorPlugin } from './plugins/floatingLinkEditor/index.js'\nimport { TOGGLE_LINK_WITH_MODAL_COMMAND } from './plugins/floatingLinkEditor/LinkEditor/commands.js'\nimport { LinkPlugin } from './plugins/link/index.js'\n\nexport type ClientProps = {\n defaultLinkType?: string\n defaultLinkURL?: string\n disableAutoLinks?: 'creationOnly' | true\n} & ExclusiveLinkCollectionsProps\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFeatureButtonsGroupWithItems([\n {\n ChildComponent: LinkIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n const selectedNode = getSelectedNode(selection)\n const linkParent = $findMatchingParent(selectedNode, $isLinkNode)\n return linkParent != null\n }\n return false\n },\n isEnabled: ({ selection }) => {\n return !!($isRangeSelection(selection) && $getSelection()?.getTextContent()?.length)\n },\n key: 'link',\n label: ({ i18n }) => {\n return i18n.t('lexical:link:label')\n },\n onSelect: ({ editor, isActive }) => {\n if (!isActive) {\n let selectedText: string | undefined\n let selectedNodes: LexicalNode[] = []\n editor.getEditorState().read(() => {\n selectedText = $getSelection()?.getTextContent()\n // We need to selected nodes here before the drawer opens, as clicking around in the drawer may change the original selection\n selectedNodes = $getSelection()?.getNodes() ?? []\n })\n\n if (!selectedText?.length) {\n return\n }\n\n const linkFields: Partial<LinkFields> = {\n doc: null,\n newTab: false,\n }\n\n editor.dispatchCommand(TOGGLE_LINK_WITH_MODAL_COMMAND, {\n fields: linkFields,\n selectedNodes,\n text: selectedText,\n })\n } else {\n // remove link\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)\n }\n },\n order: 1,\n },\n ]),\n]\n\nexport const LinkFeatureClient = createClientFeature<ClientProps>(({ props }) => ({\n markdownTransformers: [LinkMarkdownTransformer],\n nodes: [LinkNode, props?.disableAutoLinks === true ? null : AutoLinkNode].filter(\n Boolean,\n ) as Array<Klass<LexicalNode>>,\n plugins: [\n {\n Component: LinkPlugin,\n position: 'normal',\n },\n props?.disableAutoLinks === true || props?.disableAutoLinks === 'creationOnly'\n ? null\n : {\n Component: AutoLinkPlugin,\n position: 'normal',\n },\n {\n Component: ClickableLinkPlugin,\n position: 'normal',\n },\n {\n Component: FloatingLinkEditorPlugin,\n position: 'floatingAnchorElem',\n },\n ].filter(Boolean) as ClientFeature<ClientProps>['plugins'],\n sanitizedClientFeatureProps: props,\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n}))\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { ElementNode, LexicalNode, RangeSelection } from 'lexical';
1
+ import type { ElementNode, LexicalNode, LexicalUpdateJSON, RangeSelection } from 'lexical';
2
2
  import type { LinkFields, SerializedAutoLinkNode } from './types.js';
3
3
  import { LinkNode } from './LinkNode.js';
4
4
  export declare class AutoLinkNode extends LinkNode {
@@ -8,9 +8,10 @@ export declare class AutoLinkNode extends LinkNode {
8
8
  static importJSON(serializedNode: SerializedAutoLinkNode): AutoLinkNode;
9
9
  exportJSON(): SerializedAutoLinkNode;
10
10
  insertNewAfter(selection: RangeSelection, restoreSelection?: boolean): ElementNode | null;
11
+ updateFromJSON(serializedNode: LexicalUpdateJSON<SerializedAutoLinkNode>): this;
11
12
  }
12
13
  export declare function $createAutoLinkNode({ fields }: {
13
- fields: LinkFields;
14
+ fields?: LinkFields;
14
15
  }): AutoLinkNode;
15
16
  export declare function $isAutoLinkNode(node: LexicalNode | null | undefined): node is AutoLinkNode;
16
17
  //# sourceMappingURL=AutoLinkNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoLinkNode.d.ts","sourceRoot":"","sources":["../../../../src/features/link/nodes/AutoLinkNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAIvE,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAEpE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAKxC,qBAAa,YAAa,SAAQ,QAAQ;WACxB,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY;WAIvC,OAAO,IAAI,MAAM;WAIjB,SAAS,IAAI,IAAI;WAKjB,UAAU,CAAC,cAAc,EAAE,sBAAsB,GAAG,YAAY;IAmBhF,UAAU,IAAI,sBAAsB;IAa3B,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,UAAO,GAAG,WAAW,GAAG,IAAI;CAShG;AAED,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,YAAY,CAEpF;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,YAAY,CAE1F"}
1
+ {"version":3,"file":"AutoLinkNode.d.ts","sourceRoot":"","sources":["../../../../src/features/link/nodes/AutoLinkNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI1F,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAEpE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAKxC,qBAAa,YAAa,SAAQ,QAAQ;WACxB,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY;WAIvC,OAAO,IAAI,MAAM;WAIjB,SAAS,IAAI,IAAI;WAKjB,UAAU,CAAC,cAAc,EAAE,sBAAsB,GAAG,YAAY;IAmBhF,UAAU,IAAI,sBAAsB;IAa3B,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,UAAO,GAAG,WAAW,GAAG,IAAI;IAUtF,cAAc,CAAC,cAAc,EAAE,iBAAiB,CAAC,sBAAsB,CAAC,GAAG,IAAI;CAGzF;AAED,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,GAAG,YAAY,CAErF;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,YAAY,CAE1F"}
@@ -18,16 +18,14 @@ export class AutoLinkNode extends LinkNode {
18
18
  return null;
19
19
  }
20
20
  static importJSON(serializedNode) {
21
+ const node = $createAutoLinkNode({}).updateFromJSON(serializedNode);
22
+ /**
23
+ * @todo remove in 4.0
24
+ */
21
25
  if (serializedNode.version === 1 && typeof serializedNode.fields?.doc?.value === 'object' && serializedNode.fields?.doc?.value?.id) {
22
26
  serializedNode.fields.doc.value = serializedNode.fields.doc.value.id;
23
27
  serializedNode.version = 2;
24
28
  }
25
- const node = $createAutoLinkNode({
26
- fields: serializedNode.fields
27
- });
28
- node.setFormat(serializedNode.format);
29
- node.setIndent(serializedNode.indent);
30
- node.setDirection(serializedNode.direction);
31
29
  return node;
32
30
  }
33
31
  // @ts-expect-error
@@ -54,6 +52,9 @@ export class AutoLinkNode extends LinkNode {
54
52
  }
55
53
  return null;
56
54
  }
55
+ updateFromJSON(serializedNode) {
56
+ return super.updateFromJSON(serializedNode).setFields(serializedNode.fields);
57
+ }
57
58
  }
58
59
  export function $createAutoLinkNode({
59
60
  fields
@@ -1 +1 @@
1
- {"version":3,"file":"AutoLinkNode.js","names":["$applyNodeReplacement","$isElementNode","LinkNode","AutoLinkNode","clone","node","id","fields","__fields","key","__key","getType","importDOM","importJSON","serializedNode","version","doc","value","$createAutoLinkNode","setFormat","format","setIndent","indent","setDirection","direction","exportJSON","serialized","type","children","insertNewAfter","selection","restoreSelection","element","getParentOrThrow","linkNode","append","$isAutoLinkNode"],"sources":["../../../../src/features/link/nodes/AutoLinkNode.ts"],"sourcesContent":["import type { ElementNode, LexicalNode, RangeSelection } from 'lexical'\n\nimport { $applyNodeReplacement, $isElementNode } from 'lexical'\n\nimport type { LinkFields, SerializedAutoLinkNode } from './types.js'\n\nimport { LinkNode } from './LinkNode.js'\n\n// Custom node type to override `canInsertTextAfter` that will\n// allow typing within the link\n\nexport class AutoLinkNode extends LinkNode {\n static override clone(node: AutoLinkNode): AutoLinkNode {\n return new AutoLinkNode({ id: '', fields: node.__fields, key: node.__key })\n }\n\n static override getType(): string {\n return 'autolink'\n }\n\n static override importDOM(): null {\n // TODO: Should link node should handle the import over autolink?\n return null\n }\n\n static override importJSON(serializedNode: SerializedAutoLinkNode): AutoLinkNode {\n if (\n serializedNode.version === 1 &&\n typeof serializedNode.fields?.doc?.value === 'object' &&\n serializedNode.fields?.doc?.value?.id\n ) {\n serializedNode.fields.doc.value = serializedNode.fields.doc.value.id\n serializedNode.version = 2\n }\n\n const node = $createAutoLinkNode({ fields: serializedNode.fields })\n\n node.setFormat(serializedNode.format)\n node.setIndent(serializedNode.indent)\n node.setDirection(serializedNode.direction)\n return node\n }\n\n // @ts-expect-error\n exportJSON(): SerializedAutoLinkNode {\n const serialized = super.exportJSON()\n return {\n type: 'autolink',\n children: serialized.children,\n direction: serialized.direction,\n fields: serialized.fields,\n format: serialized.format,\n indent: serialized.indent,\n version: 2,\n }\n }\n\n override insertNewAfter(selection: RangeSelection, restoreSelection = true): ElementNode | null {\n const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection)\n if ($isElementNode(element)) {\n const linkNode = $createAutoLinkNode({ fields: this.__fields })\n element.append(linkNode)\n return linkNode\n }\n return null\n }\n}\n\nexport function $createAutoLinkNode({ fields }: { fields: LinkFields }): AutoLinkNode {\n return $applyNodeReplacement(new AutoLinkNode({ id: '', fields }))\n}\nexport function $isAutoLinkNode(node: LexicalNode | null | undefined): node is AutoLinkNode {\n return node instanceof AutoLinkNode\n}\n"],"mappings":"AAEA,SAASA,qBAAqB,EAAEC,cAAc,QAAQ;AAItD,SAASC,QAAQ,QAAQ;AAEzB;AACA;AAEA,OAAO,MAAMC,YAAA,SAAqBD,QAAA;EAChC,OAAgBE,MAAMC,IAAkB,EAAgB;IACtD,OAAO,IAAIF,YAAA,CAAa;MAAEG,EAAA,EAAI;MAAIC,MAAA,EAAQF,IAAA,CAAKG,QAAQ;MAAEC,GAAA,EAAKJ,IAAA,CAAKK;IAAM;EAC3E;EAEA,OAAgBC,QAAA,EAAkB;IAChC,OAAO;EACT;EAEA,OAAgBC,UAAA,EAAkB;IAChC;IACA,OAAO;EACT;EAEA,OAAgBC,WAAWC,cAAsC,EAAgB;IAC/E,IACEA,cAAA,CAAeC,OAAO,KAAK,KAC3B,OAAOD,cAAA,CAAeP,MAAM,EAAES,GAAA,EAAKC,KAAA,KAAU,YAC7CH,cAAA,CAAeP,MAAM,EAAES,GAAA,EAAKC,KAAA,EAAOX,EAAA,EACnC;MACAQ,cAAA,CAAeP,MAAM,CAACS,GAAG,CAACC,KAAK,GAAGH,cAAA,CAAeP,MAAM,CAACS,GAAG,CAACC,KAAK,CAACX,EAAE;MACpEQ,cAAA,CAAeC,OAAO,GAAG;IAC3B;IAEA,MAAMV,IAAA,GAAOa,mBAAA,CAAoB;MAAEX,MAAA,EAAQO,cAAA,CAAeP;IAAO;IAEjEF,IAAA,CAAKc,SAAS,CAACL,cAAA,CAAeM,MAAM;IACpCf,IAAA,CAAKgB,SAAS,CAACP,cAAA,CAAeQ,MAAM;IACpCjB,IAAA,CAAKkB,YAAY,CAACT,cAAA,CAAeU,SAAS;IAC1C,OAAOnB,IAAA;EACT;EAEA;EACAoB,WAAA,EAAqC;IACnC,MAAMC,UAAA,GAAa,KAAK,CAACD,UAAA;IACzB,OAAO;MACLE,IAAA,EAAM;MACNC,QAAA,EAAUF,UAAA,CAAWE,QAAQ;MAC7BJ,SAAA,EAAWE,UAAA,CAAWF,SAAS;MAC/BjB,MAAA,EAAQmB,UAAA,CAAWnB,MAAM;MACzBa,MAAA,EAAQM,UAAA,CAAWN,MAAM;MACzBE,MAAA,EAAQI,UAAA,CAAWJ,MAAM;MACzBP,OAAA,EAAS;IACX;EACF;EAESc,eAAeC,SAAyB,EAAEC,gBAAA,GAAmB,IAAI,EAAsB;IAC9F,MAAMC,OAAA,GAAU,IAAI,CAACC,gBAAgB,GAAGJ,cAAc,CAACC,SAAA,EAAWC,gBAAA;IAClE,IAAI9B,cAAA,CAAe+B,OAAA,GAAU;MAC3B,MAAME,QAAA,GAAWhB,mBAAA,CAAoB;QAAEX,MAAA,EAAQ,IAAI,CAACC;MAAS;MAC7DwB,OAAA,CAAQG,MAAM,CAACD,QAAA;MACf,OAAOA,QAAA;IACT;IACA,OAAO;EACT;AACF;AAEA,OAAO,SAAShB,oBAAoB;EAAEX;AAAM,CAA0B;EACpE,OAAOP,qBAAA,CAAsB,IAAIG,YAAA,CAAa;IAAEG,EAAA,EAAI;IAAIC;EAAO;AACjE;AACA,OAAO,SAAS6B,gBAAgB/B,IAAoC;EAClE,OAAOA,IAAA,YAAgBF,YAAA;AACzB","ignoreList":[]}
1
+ {"version":3,"file":"AutoLinkNode.js","names":["$applyNodeReplacement","$isElementNode","LinkNode","AutoLinkNode","clone","node","id","fields","__fields","key","__key","getType","importDOM","importJSON","serializedNode","$createAutoLinkNode","updateFromJSON","version","doc","value","exportJSON","serialized","type","children","direction","format","indent","insertNewAfter","selection","restoreSelection","element","getParentOrThrow","linkNode","append","setFields","$isAutoLinkNode"],"sources":["../../../../src/features/link/nodes/AutoLinkNode.ts"],"sourcesContent":["import type { ElementNode, LexicalNode, LexicalUpdateJSON, RangeSelection } from 'lexical'\n\nimport { $applyNodeReplacement, $isElementNode } from 'lexical'\n\nimport type { LinkFields, SerializedAutoLinkNode } from './types.js'\n\nimport { LinkNode } from './LinkNode.js'\n\n// Custom node type to override `canInsertTextAfter` that will\n// allow typing within the link\n\nexport class AutoLinkNode extends LinkNode {\n static override clone(node: AutoLinkNode): AutoLinkNode {\n return new AutoLinkNode({ id: '', fields: node.__fields, key: node.__key })\n }\n\n static override getType(): string {\n return 'autolink'\n }\n\n static override importDOM(): null {\n // TODO: Should link node should handle the import over autolink?\n return null\n }\n\n static override importJSON(serializedNode: SerializedAutoLinkNode): AutoLinkNode {\n const node = $createAutoLinkNode({}).updateFromJSON(serializedNode)\n\n /**\n * @todo remove in 4.0\n */\n if (\n serializedNode.version === 1 &&\n typeof serializedNode.fields?.doc?.value === 'object' &&\n serializedNode.fields?.doc?.value?.id\n ) {\n serializedNode.fields.doc.value = serializedNode.fields.doc.value.id\n serializedNode.version = 2\n }\n\n return node\n }\n\n // @ts-expect-error\n exportJSON(): SerializedAutoLinkNode {\n const serialized = super.exportJSON()\n return {\n type: 'autolink',\n children: serialized.children,\n direction: serialized.direction,\n fields: serialized.fields,\n format: serialized.format,\n indent: serialized.indent,\n version: 2,\n }\n }\n\n override insertNewAfter(selection: RangeSelection, restoreSelection = true): ElementNode | null {\n const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection)\n if ($isElementNode(element)) {\n const linkNode = $createAutoLinkNode({ fields: this.__fields })\n element.append(linkNode)\n return linkNode\n }\n return null\n }\n\n override updateFromJSON(serializedNode: LexicalUpdateJSON<SerializedAutoLinkNode>): this {\n return super.updateFromJSON(serializedNode).setFields(serializedNode.fields)\n }\n}\n\nexport function $createAutoLinkNode({ fields }: { fields?: LinkFields }): AutoLinkNode {\n return $applyNodeReplacement(new AutoLinkNode({ id: '', fields }))\n}\nexport function $isAutoLinkNode(node: LexicalNode | null | undefined): node is AutoLinkNode {\n return node instanceof AutoLinkNode\n}\n"],"mappings":"AAEA,SAASA,qBAAqB,EAAEC,cAAc,QAAQ;AAItD,SAASC,QAAQ,QAAQ;AAEzB;AACA;AAEA,OAAO,MAAMC,YAAA,SAAqBD,QAAA;EAChC,OAAgBE,MAAMC,IAAkB,EAAgB;IACtD,OAAO,IAAIF,YAAA,CAAa;MAAEG,EAAA,EAAI;MAAIC,MAAA,EAAQF,IAAA,CAAKG,QAAQ;MAAEC,GAAA,EAAKJ,IAAA,CAAKK;IAAM;EAC3E;EAEA,OAAgBC,QAAA,EAAkB;IAChC,OAAO;EACT;EAEA,OAAgBC,UAAA,EAAkB;IAChC;IACA,OAAO;EACT;EAEA,OAAgBC,WAAWC,cAAsC,EAAgB;IAC/E,MAAMT,IAAA,GAAOU,mBAAA,CAAoB,CAAC,GAAGC,cAAc,CAACF,cAAA;IAEpD;;;IAGA,IACEA,cAAA,CAAeG,OAAO,KAAK,KAC3B,OAAOH,cAAA,CAAeP,MAAM,EAAEW,GAAA,EAAKC,KAAA,KAAU,YAC7CL,cAAA,CAAeP,MAAM,EAAEW,GAAA,EAAKC,KAAA,EAAOb,EAAA,EACnC;MACAQ,cAAA,CAAeP,MAAM,CAACW,GAAG,CAACC,KAAK,GAAGL,cAAA,CAAeP,MAAM,CAACW,GAAG,CAACC,KAAK,CAACb,EAAE;MACpEQ,cAAA,CAAeG,OAAO,GAAG;IAC3B;IAEA,OAAOZ,IAAA;EACT;EAEA;EACAe,WAAA,EAAqC;IACnC,MAAMC,UAAA,GAAa,KAAK,CAACD,UAAA;IACzB,OAAO;MACLE,IAAA,EAAM;MACNC,QAAA,EAAUF,UAAA,CAAWE,QAAQ;MAC7BC,SAAA,EAAWH,UAAA,CAAWG,SAAS;MAC/BjB,MAAA,EAAQc,UAAA,CAAWd,MAAM;MACzBkB,MAAA,EAAQJ,UAAA,CAAWI,MAAM;MACzBC,MAAA,EAAQL,UAAA,CAAWK,MAAM;MACzBT,OAAA,EAAS;IACX;EACF;EAESU,eAAeC,SAAyB,EAAEC,gBAAA,GAAmB,IAAI,EAAsB;IAC9F,MAAMC,OAAA,GAAU,IAAI,CAACC,gBAAgB,GAAGJ,cAAc,CAACC,SAAA,EAAWC,gBAAA;IAClE,IAAI5B,cAAA,CAAe6B,OAAA,GAAU;MAC3B,MAAME,QAAA,GAAWjB,mBAAA,CAAoB;QAAER,MAAA,EAAQ,IAAI,CAACC;MAAS;MAC7DsB,OAAA,CAAQG,MAAM,CAACD,QAAA;MACf,OAAOA,QAAA;IACT;IACA,OAAO;EACT;EAEShB,eAAeF,cAAyD,EAAQ;IACvF,OAAO,KAAK,CAACE,cAAA,CAAeF,cAAA,EAAgBoB,SAAS,CAACpB,cAAA,CAAeP,MAAM;EAC7E;AACF;AAEA,OAAO,SAASQ,oBAAoB;EAAER;AAAM,CAA2B;EACrE,OAAOP,qBAAA,CAAsB,IAAIG,YAAA,CAAa;IAAEG,EAAA,EAAI;IAAIC;EAAO;AACjE;AACA,OAAO,SAAS4B,gBAAgB9B,IAAoC;EAClE,OAAOA,IAAA,YAAgBF,YAAA;AACzB","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { BaseSelection, DOMConversionMap, EditorConfig, ElementNode as ElementNodeType, LexicalCommand, LexicalNode, NodeKey, RangeSelection } from 'lexical';
1
+ import type { BaseSelection, DOMConversionMap, EditorConfig, ElementNode as ElementNodeType, LexicalCommand, LexicalNode, LexicalUpdateJSON, NodeKey, RangeSelection } from 'lexical';
2
2
  import { ElementNode } from 'lexical';
3
3
  import type { LinkPayload } from '../client/plugins/floatingLinkEditor/types.js';
4
4
  import type { LinkFields, SerializedLinkNode } from './types.js';
@@ -7,7 +7,7 @@ export declare class LinkNode extends ElementNode {
7
7
  __fields: LinkFields;
8
8
  __id: string;
9
9
  constructor({ id, fields, key, }: {
10
- fields: LinkFields;
10
+ fields?: LinkFields;
11
11
  id: string;
12
12
  key?: NodeKey;
13
13
  });
@@ -26,11 +26,13 @@ export declare class LinkNode extends ElementNode {
26
26
  insertNewAfter(selection: RangeSelection, restoreSelection?: boolean): ElementNodeType | null;
27
27
  isInline(): true;
28
28
  sanitizeUrl(url: string): string;
29
- setFields(fields: LinkFields): void;
30
- updateDOM(prevNode: LinkNode, anchor: HTMLAnchorElement, config: EditorConfig): boolean;
29
+ setFields(fields: LinkFields): this;
30
+ setID(id: string): this;
31
+ updateDOM(prevNode: this, anchor: HTMLAnchorElement, config: EditorConfig): boolean;
32
+ updateFromJSON(serializedNode: LexicalUpdateJSON<SerializedLinkNode>): this;
31
33
  }
32
34
  export declare function $createLinkNode({ id, fields }: {
33
- fields: LinkFields;
35
+ fields?: LinkFields;
34
36
  id?: string;
35
37
  }): LinkNode;
36
38
  export declare function $isLinkNode(node: LexicalNode | null | undefined): node is LinkNode;
@@ -1 +1 @@
1
- {"version":3,"file":"LinkNode.d.ts","sourceRoot":"","sources":["../../../../src/features/link/nodes/LinkNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAEhB,YAAY,EACZ,WAAW,IAAI,eAAe,EAC9B,cAAc,EACd,WAAW,EACX,OAAO,EACP,cAAc,EACf,MAAM,SAAS,CAAA;AAIhB,OAAO,EAOL,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAA;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIhE,oBAAoB;AACpB,qBAAa,QAAS,SAAQ,WAAW;IACvC,QAAQ,EAAE,UAAU,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;gBAEA,EACV,EAAE,EACF,MAGC,EACD,GAAG,GACJ,EAAE;QACD,MAAM,EAAE,UAAU,CAAA;QAClB,EAAE,EAAE,MAAM,CAAA;QACV,GAAG,CAAC,EAAE,OAAO,CAAA;KACd;WAMe,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ;WAQ/B,OAAO,IAAI,MAAM;WAIjB,SAAS,IAAI,gBAAgB,GAAG,IAAI;WASpC,UAAU,CAAC,cAAc,EAAE,kBAAkB,GAAG,QAAQ;IAyB/D,UAAU,IAAI,KAAK;IAInB,kBAAkB,IAAI,KAAK;IAI3B,mBAAmB,IAAI,KAAK;IAI5B,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,iBAAiB;IAiBlD,UAAU,IAAI,kBAAkB;IAsBhC,gBAAgB,CACvB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,OAAO,GAAG,MAAM,GAC5B,OAAO;IAeV,SAAS,IAAI,UAAU;IAIvB,KAAK,IAAI,MAAM;IAIN,cAAc,CACrB,SAAS,EAAE,cAAc,EACzB,gBAAgB,UAAO,GACtB,eAAe,GAAG,IAAI;IAUhB,QAAQ,IAAI,IAAI;IAIzB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAahC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAK1B,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO;CA8BjG;AAqBD,wBAAgB,eAAe,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,CAO7F;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,QAAQ,CAElF;AAED,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAAC,WAAW,GAAG,IAAI,CAC7B,CAAA;AAEtC,wBAAgB,WAAW,CAAC,OAAO,EAAE,CAAC;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,WAAW,CAAC,GAAG,IAAI,GAAG,IAAI,CA+GxF"}
1
+ {"version":3,"file":"LinkNode.d.ts","sourceRoot":"","sources":["../../../../src/features/link/nodes/LinkNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAEhB,YAAY,EACZ,WAAW,IAAI,eAAe,EAC9B,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,cAAc,EACf,MAAM,SAAS,CAAA;AAIhB,OAAO,EAOL,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAA;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIhE,oBAAoB;AACpB,qBAAa,QAAS,SAAQ,WAAW;IACvC,QAAQ,EAAE,UAAU,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;gBAEA,EACV,EAAE,EACF,MAGC,EACD,GAAG,GACJ,EAAE;QACD,MAAM,CAAC,EAAE,UAAU,CAAA;QACnB,EAAE,EAAE,MAAM,CAAA;QACV,GAAG,CAAC,EAAE,OAAO,CAAA;KACd;WAMe,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ;WAQ/B,OAAO,IAAI,MAAM;WAIjB,SAAS,IAAI,gBAAgB,GAAG,IAAI;WASpC,UAAU,CAAC,cAAc,EAAE,kBAAkB,GAAG,QAAQ;IAsB/D,UAAU,IAAI,KAAK;IAInB,kBAAkB,IAAI,KAAK;IAI3B,mBAAmB,IAAI,KAAK;IAI5B,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,iBAAiB;IAiBlD,UAAU,IAAI,kBAAkB;IAsBhC,gBAAgB,CACvB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,OAAO,GAAG,MAAM,GAC5B,OAAO;IAeV,SAAS,IAAI,UAAU;IAIvB,KAAK,IAAI,MAAM;IAIN,cAAc,CACrB,SAAS,EAAE,cAAc,EACzB,gBAAgB,UAAO,GACtB,eAAe,GAAG,IAAI;IAUhB,QAAQ,IAAI,IAAI;IAIzB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAahC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAMnC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAMd,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO;IA+BnF,cAAc,CAAC,cAAc,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,IAAI;CAMrF;AAqBD,wBAAgB,eAAe,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,CAO9F;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,QAAQ,CAElF;AAED,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAAC,WAAW,GAAG,IAAI,CAC7B,CAAA;AAEtC,wBAAgB,WAAW,CAAC,OAAO,EAAE,CAAC;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,WAAW,CAAC,GAAG,IAAI,GAAG,IAAI,CA+GxF"}
@@ -37,6 +37,10 @@ export class LinkNode extends ElementNode {
37
37
  };
38
38
  }
39
39
  static importJSON(serializedNode) {
40
+ const node = $createLinkNode({}).updateFromJSON(serializedNode);
41
+ /**
42
+ * @todo remove this in 4.0
43
+ */
40
44
  if (serializedNode.version === 1 && typeof serializedNode.fields?.doc?.value === 'object' && serializedNode.fields?.doc?.value?.id) {
41
45
  serializedNode.fields.doc.value = serializedNode.fields.doc.value.id;
42
46
  serializedNode.version = 2;
@@ -45,13 +49,6 @@ export class LinkNode extends ElementNode {
45
49
  serializedNode.id = new ObjectID.default().toHexString();
46
50
  serializedNode.version = 3;
47
51
  }
48
- const node = $createLinkNode({
49
- id: serializedNode.id,
50
- fields: serializedNode.fields
51
- });
52
- node.setFormat(serializedNode.format);
53
- node.setIndent(serializedNode.indent);
54
- node.setDirection(serializedNode.direction);
55
52
  return node;
56
53
  }
57
54
  canBeEmpty() {
@@ -138,6 +135,12 @@ export class LinkNode extends ElementNode {
138
135
  setFields(fields) {
139
136
  const writable = this.getWritable();
140
137
  writable.__fields = fields;
138
+ return writable;
139
+ }
140
+ setID(id) {
141
+ const writable = this.getWritable();
142
+ writable.__id = id;
143
+ return writable;
141
144
  }
142
145
  updateDOM(prevNode, anchor, config) {
143
146
  const url = this.__fields?.url;
@@ -166,6 +169,9 @@ export class LinkNode extends ElementNode {
166
169
  }
167
170
  return false;
168
171
  }
172
+ updateFromJSON(serializedNode) {
173
+ return super.updateFromJSON(serializedNode).setFields(serializedNode.fields).setID(serializedNode.id);
174
+ }
169
175
  }
170
176
  function $convertAnchorElement(domNode) {
171
177
  let node = null;