@payloadcms/richtext-lexical 3.68.0-internal-debug.2eb12b9 → 3.68.0-internal-debug.dafc24d

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 (306) hide show
  1. package/dist/cell/rscEntry.js +13 -5
  2. package/dist/cell/rscEntry.js.map +1 -1
  3. package/dist/features/blocks/client/component/BlockContent.js +29 -9
  4. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  5. package/dist/features/blocks/client/component/components/BlockCollapsible.js +7 -3
  6. package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -1
  7. package/dist/features/blocks/client/component/components/BlockEditButton.js +6 -2
  8. package/dist/features/blocks/client/component/components/BlockEditButton.js.map +1 -1
  9. package/dist/features/blocks/client/component/components/BlockRemoveButton.js +6 -2
  10. package/dist/features/blocks/client/component/components/BlockRemoveButton.js.map +1 -1
  11. package/dist/features/blocks/client/component/index.js +124 -43
  12. package/dist/features/blocks/client/component/index.js.map +1 -1
  13. package/dist/features/blocks/client/component/index.scss +188 -0
  14. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js +7 -3
  15. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js.map +1 -1
  16. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js +6 -2
  17. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js.map +1 -1
  18. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js +6 -2
  19. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js.map +1 -1
  20. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js +6 -2
  21. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js.map +1 -1
  22. package/dist/features/blocks/client/componentInline/index.js +118 -37
  23. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  24. package/dist/features/blocks/client/componentInline/index.scss +90 -0
  25. package/dist/features/blocks/client/getBlockImageComponent.js +7 -3
  26. package/dist/features/blocks/client/getBlockImageComponent.js.map +1 -1
  27. package/dist/features/blocks/client/markdown/markdownTransformer.js +1 -0
  28. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
  29. package/dist/features/blocks/client/nodes/BlocksNode.js +7 -3
  30. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  31. package/dist/features/blocks/client/nodes/InlineBlocksNode.js +7 -3
  32. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
  33. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +88 -27
  34. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
  35. package/dist/features/blocks/premade/CodeBlock/Component/Code.js +7 -3
  36. package/dist/features/blocks/premade/CodeBlock/Component/Code.js.map +1 -1
  37. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js +13 -4
  38. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js.map +1 -1
  39. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.scss +6 -0
  40. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js +19 -6
  41. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js.map +1 -1
  42. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.scss +29 -0
  43. package/dist/features/blocks/premade/CodeBlock/Component/index.scss +97 -0
  44. package/dist/features/blocks/server/markdown/markdownTransformer.js +1 -0
  45. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
  46. package/dist/features/converters/lexicalToJSX/Component/index.js +9 -5
  47. package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
  48. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js +7 -3
  49. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -1
  50. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js +7 -3
  51. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
  52. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js +6 -2
  53. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -1
  54. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js +6 -2
  55. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -1
  56. package/dist/features/converters/lexicalToJSX/converter/converters/link.js +13 -5
  57. package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -1
  58. package/dist/features/converters/lexicalToJSX/converter/converters/list.js +38 -14
  59. package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
  60. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js +18 -6
  61. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -1
  62. package/dist/features/converters/lexicalToJSX/converter/converters/table.js +31 -11
  63. package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
  64. package/dist/features/converters/lexicalToJSX/converter/converters/text.js +43 -15
  65. package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -1
  66. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js +31 -11
  67. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  68. package/dist/features/converters/lexicalToJSX/converter/index.js +8 -4
  69. package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
  70. package/dist/features/debug/jsxConverter/client/plugin/index.js +14 -5
  71. package/dist/features/debug/jsxConverter/client/plugin/index.js.map +1 -1
  72. package/dist/features/debug/jsxConverter/client/plugin/style.scss +12 -0
  73. package/dist/features/debug/testRecorder/client/plugin/index.js +62 -21
  74. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  75. package/dist/features/debug/testRecorder/client/plugin/index.scss +53 -0
  76. package/dist/features/debug/treeView/client/plugin/index.js +8 -3
  77. package/dist/features/debug/treeView/client/plugin/index.js.map +1 -1
  78. package/dist/features/debug/treeView/client/plugin/index.scss +80 -0
  79. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +225 -72
  80. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  81. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.scss +87 -0
  82. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +32 -11
  83. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  84. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.scss +11 -0
  85. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +21 -9
  86. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
  87. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +26 -9
  88. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  89. package/dist/features/experimental_table/client/plugins/TablePlugin/index.scss +233 -0
  90. package/dist/features/horizontalRule/client/plugin/index.js +1 -0
  91. package/dist/features/horizontalRule/client/plugin/index.js.map +1 -1
  92. package/dist/features/horizontalRule/client/plugin/index.scss +23 -0
  93. package/dist/features/indent/client/IndentPlugin.js +6 -2
  94. package/dist/features/indent/client/IndentPlugin.js.map +1 -1
  95. package/dist/features/link/client/plugins/autoLink/index.js +3 -0
  96. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  97. package/dist/features/link/client/plugins/clickableLink/index.js +6 -2
  98. package/dist/features/link/client/plugins/clickableLink/index.js.map +1 -1
  99. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +76 -24
  100. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  101. package/dist/features/link/client/plugins/floatingLinkEditor/index.js +8 -3
  102. package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
  103. package/dist/features/link/client/plugins/floatingLinkEditor/index.scss +92 -0
  104. package/dist/features/link/server/baseFields.js +1 -0
  105. package/dist/features/link/server/baseFields.js.map +1 -1
  106. package/dist/features/lists/checklist/client/plugin/index.js +6 -2
  107. package/dist/features/lists/checklist/client/plugin/index.js.map +1 -1
  108. package/dist/features/lists/plugin/index.js +6 -2
  109. package/dist/features/lists/plugin/index.js.map +1 -1
  110. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +14 -5
  111. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
  112. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +7 -3
  113. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  114. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.scss +16 -0
  115. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +14 -5
  116. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
  117. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +7 -3
  118. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  119. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.scss +16 -0
  120. package/dist/features/relationship/client/components/RelationshipComponent.js +56 -19
  121. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  122. package/dist/features/relationship/client/components/index.scss +95 -0
  123. package/dist/features/relationship/client/drawer/index.js +18 -6
  124. package/dist/features/relationship/client/drawer/index.js.map +1 -1
  125. package/dist/features/relationship/client/nodes/RelationshipNode.js +7 -3
  126. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  127. package/dist/features/relationship/client/plugins/index.js +7 -3
  128. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  129. package/dist/features/textState/feature.client.js +18 -6
  130. package/dist/features/textState/feature.client.js.map +1 -1
  131. package/dist/features/toolbars/fixed/client/Toolbar/index.js +72 -23
  132. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  133. package/dist/features/toolbars/fixed/client/Toolbar/index.scss +113 -0
  134. package/dist/features/toolbars/inline/client/Toolbar/index.js +72 -23
  135. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  136. package/dist/features/toolbars/inline/client/Toolbar/index.scss +58 -0
  137. package/dist/features/toolbars/shared/ToolbarButton/index.js +8 -3
  138. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  139. package/dist/features/toolbars/shared/ToolbarButton/index.scss +46 -0
  140. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +60 -20
  141. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  142. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +37 -12
  143. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  144. package/dist/features/toolbars/shared/ToolbarDropdown/index.scss +129 -0
  145. package/dist/features/upload/client/component/index.js +92 -31
  146. package/dist/features/upload/client/component/index.js.map +1 -1
  147. package/dist/features/upload/client/component/index.scss +191 -0
  148. package/dist/features/upload/client/component/pending/index.js +14 -5
  149. package/dist/features/upload/client/component/pending/index.js.map +1 -1
  150. package/dist/features/upload/client/drawer/index.js +18 -6
  151. package/dist/features/upload/client/drawer/index.js.map +1 -1
  152. package/dist/features/upload/client/nodes/UploadNode.js +12 -4
  153. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  154. package/dist/features/upload/client/plugin/index.js +7 -3
  155. package/dist/features/upload/client/plugin/index.js.map +1 -1
  156. package/dist/field/Diff/converters/listitem/index.js +37 -12
  157. package/dist/field/Diff/converters/listitem/index.js.map +1 -1
  158. package/dist/field/Diff/converters/listitem/index.scss +47 -0
  159. package/dist/field/Diff/converters/relationship/index.js +37 -12
  160. package/dist/field/Diff/converters/relationship/index.js.map +1 -1
  161. package/dist/field/Diff/converters/relationship/index.scss +73 -0
  162. package/dist/field/Diff/converters/unknown/index.js +31 -10
  163. package/dist/field/Diff/converters/unknown/index.js.map +1 -1
  164. package/dist/field/Diff/converters/unknown/index.scss +40 -0
  165. package/dist/field/Diff/converters/upload/index.js +60 -19
  166. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  167. package/dist/field/Diff/converters/upload/index.scss +115 -0
  168. package/dist/field/Diff/index.js +8 -3
  169. package/dist/field/Diff/index.js.map +1 -1
  170. package/dist/field/Diff/index.scss +102 -0
  171. package/dist/field/Field.js +81 -27
  172. package/dist/field/Field.js.map +1 -1
  173. package/dist/field/RenderLexical/index.js +36 -12
  174. package/dist/field/RenderLexical/index.js.map +1 -1
  175. package/dist/field/index.js +19 -7
  176. package/dist/field/index.js.map +1 -1
  177. package/dist/field/index.scss +41 -0
  178. package/dist/field/rscEntry.js +7 -3
  179. package/dist/field/rscEntry.js.map +1 -1
  180. package/dist/index.js +2 -0
  181. package/dist/index.js.map +1 -1
  182. package/dist/lexical/EditorPlugin.js +13 -5
  183. package/dist/lexical/EditorPlugin.js.map +1 -1
  184. package/dist/lexical/LexicalEditor.js +163 -50
  185. package/dist/lexical/LexicalEditor.js.map +1 -1
  186. package/dist/lexical/LexicalEditor.scss +54 -0
  187. package/dist/lexical/LexicalProvider.js +49 -17
  188. package/dist/lexical/LexicalProvider.js.map +1 -1
  189. package/dist/lexical/config/client/EditorConfigProvider.js +7 -3
  190. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  191. package/dist/lexical/plugins/DecoratorPlugin/index.js +1 -0
  192. package/dist/lexical/plugins/DecoratorPlugin/index.js.map +1 -1
  193. package/dist/lexical/plugins/DecoratorPlugin/index.scss +13 -0
  194. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +20 -7
  195. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
  196. package/dist/lexical/plugins/InsertParagraphAtEnd/index.scss +54 -0
  197. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +2 -0
  198. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  199. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +7 -3
  200. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  201. package/dist/lexical/plugins/SlashMenu/index.js +50 -16
  202. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  203. package/dist/lexical/plugins/SlashMenu/index.scss +68 -0
  204. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +20 -7
  205. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  206. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.scss +35 -0
  207. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +32 -11
  208. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  209. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.scss +80 -0
  210. package/dist/lexical/theme/EditorTheme.scss +357 -0
  211. package/dist/lexical/ui/ContentEditable.js +14 -5
  212. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  213. package/dist/lexical/ui/ContentEditable.scss +105 -0
  214. package/dist/lexical/ui/icons/AI/index.js +37 -13
  215. package/dist/lexical/ui/icons/AI/index.js.map +1 -1
  216. package/dist/lexical/ui/icons/Add/index.js +19 -7
  217. package/dist/lexical/ui/icons/Add/index.js.map +1 -1
  218. package/dist/lexical/ui/icons/AlignCenter/index.js +25 -9
  219. package/dist/lexical/ui/icons/AlignCenter/index.js.map +1 -1
  220. package/dist/lexical/ui/icons/AlignJustify/index.js +25 -9
  221. package/dist/lexical/ui/icons/AlignJustify/index.js.map +1 -1
  222. package/dist/lexical/ui/icons/AlignLeft/index.js +25 -9
  223. package/dist/lexical/ui/icons/AlignLeft/index.js.map +1 -1
  224. package/dist/lexical/ui/icons/AlignRight/index.js +25 -9
  225. package/dist/lexical/ui/icons/AlignRight/index.js.map +1 -1
  226. package/dist/lexical/ui/icons/Block/index.js +25 -9
  227. package/dist/lexical/ui/icons/Block/index.js.map +1 -1
  228. package/dist/lexical/ui/icons/Blockquote/index.js +13 -5
  229. package/dist/lexical/ui/icons/Blockquote/index.js.map +1 -1
  230. package/dist/lexical/ui/icons/Bold/index.js +13 -5
  231. package/dist/lexical/ui/icons/Bold/index.js.map +1 -1
  232. package/dist/lexical/ui/icons/Checklist/index.js +19 -7
  233. package/dist/lexical/ui/icons/Checklist/index.js.map +1 -1
  234. package/dist/lexical/ui/icons/Code/index.js +19 -7
  235. package/dist/lexical/ui/icons/Code/index.js.map +1 -1
  236. package/dist/lexical/ui/icons/CodeBlock/index.js +13 -5
  237. package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -1
  238. package/dist/lexical/ui/icons/Collapse/index.js +13 -5
  239. package/dist/lexical/ui/icons/Collapse/index.js.map +1 -1
  240. package/dist/lexical/ui/icons/H1/index.js +13 -5
  241. package/dist/lexical/ui/icons/H1/index.js.map +1 -1
  242. package/dist/lexical/ui/icons/H2/index.js +13 -5
  243. package/dist/lexical/ui/icons/H2/index.js.map +1 -1
  244. package/dist/lexical/ui/icons/H3/index.js +13 -5
  245. package/dist/lexical/ui/icons/H3/index.js.map +1 -1
  246. package/dist/lexical/ui/icons/H4/index.js +13 -5
  247. package/dist/lexical/ui/icons/H4/index.js.map +1 -1
  248. package/dist/lexical/ui/icons/H5/index.js +13 -5
  249. package/dist/lexical/ui/icons/H5/index.js.map +1 -1
  250. package/dist/lexical/ui/icons/H6/index.js +13 -5
  251. package/dist/lexical/ui/icons/H6/index.js.map +1 -1
  252. package/dist/lexical/ui/icons/HorizontalRule/index.js +13 -5
  253. package/dist/lexical/ui/icons/HorizontalRule/index.js.map +1 -1
  254. package/dist/lexical/ui/icons/IndentDecrease/index.js +31 -11
  255. package/dist/lexical/ui/icons/IndentDecrease/index.js.map +1 -1
  256. package/dist/lexical/ui/icons/IndentIncrease/index.js +31 -11
  257. package/dist/lexical/ui/icons/IndentIncrease/index.js.map +1 -1
  258. package/dist/lexical/ui/icons/InlineBlocks/index.js +13 -5
  259. package/dist/lexical/ui/icons/InlineBlocks/index.js.map +1 -1
  260. package/dist/lexical/ui/icons/Italic/index.js +13 -5
  261. package/dist/lexical/ui/icons/Italic/index.js.map +1 -1
  262. package/dist/lexical/ui/icons/Link/index.js +13 -5
  263. package/dist/lexical/ui/icons/Link/index.js.map +1 -1
  264. package/dist/lexical/ui/icons/Meatballs/index.js +25 -9
  265. package/dist/lexical/ui/icons/Meatballs/index.js.map +1 -1
  266. package/dist/lexical/ui/icons/OrderedList/index.js +37 -13
  267. package/dist/lexical/ui/icons/OrderedList/index.js.map +1 -1
  268. package/dist/lexical/ui/icons/Relationship/index.js +37 -13
  269. package/dist/lexical/ui/icons/Relationship/index.js.map +1 -1
  270. package/dist/lexical/ui/icons/Strikethrough/index.js +19 -7
  271. package/dist/lexical/ui/icons/Strikethrough/index.js.map +1 -1
  272. package/dist/lexical/ui/icons/Subscript/index.js +13 -5
  273. package/dist/lexical/ui/icons/Subscript/index.js.map +1 -1
  274. package/dist/lexical/ui/icons/Superscript/index.js +13 -5
  275. package/dist/lexical/ui/icons/Superscript/index.js.map +1 -1
  276. package/dist/lexical/ui/icons/Table/index.js +13 -5
  277. package/dist/lexical/ui/icons/Table/index.js.map +1 -1
  278. package/dist/lexical/ui/icons/Text/index.js +13 -5
  279. package/dist/lexical/ui/icons/Text/index.js.map +1 -1
  280. package/dist/lexical/ui/icons/TextState/index.js +7 -3
  281. package/dist/lexical/ui/icons/TextState/index.js.map +1 -1
  282. package/dist/lexical/ui/icons/Underline/index.js +19 -7
  283. package/dist/lexical/ui/icons/Underline/index.js.map +1 -1
  284. package/dist/lexical/ui/icons/UnorderedList/index.js +43 -15
  285. package/dist/lexical/ui/icons/UnorderedList/index.js.map +1 -1
  286. package/dist/lexical/ui/icons/Upload/index.js +25 -9
  287. package/dist/lexical/ui/icons/Upload/index.js.map +1 -1
  288. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +2 -0
  289. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +1 -1
  290. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +2 -0
  291. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +1 -1
  292. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +2 -0
  293. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +1 -1
  294. package/dist/utilities/fieldsDrawer/Drawer.js +19 -7
  295. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  296. package/dist/utilities/fieldsDrawer/DrawerContent.js +19 -7
  297. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  298. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +7 -3
  299. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -1
  300. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js +7 -3
  301. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js.map +1 -1
  302. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +2 -0
  303. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
  304. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +2 -0
  305. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  306. package/package.json +8 -7
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utilities/fieldsDrawer/useLexicalDocumentDrawer.tsx"],"sourcesContent":["'use client'\nimport type { UseDocumentDrawer } from '@payloadcms/ui'\nimport type { BaseSelection } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useDocumentDrawer, useModal } from '@payloadcms/ui'\nimport { $getPreviousSelection, $getSelection, $setSelection } from 'lexical'\nimport { useCallback, useEffect, useState } from 'react'\n\n/**\n *\n * Wrapper around useDocumentDrawer that restores and saves selection state (cursor position) when opening and closing the drawer.\n * By default, the lexical cursor position may be lost when opening a drawer and clicking somewhere on that drawer.\n */\nexport const useLexicalDocumentDrawer = (\n args: Parameters<UseDocumentDrawer>[0],\n): {\n closeDocumentDrawer: () => void\n DocumentDrawer: ReturnType<UseDocumentDrawer>[0]\n documentDrawerSlug: string\n DocumentDrawerToggler: ReturnType<UseDocumentDrawer>[1]\n} => {\n const [editor] = useLexicalComposerContext()\n const [selectionState, setSelectionState] = useState<BaseSelection | null>(null)\n const [wasOpen, setWasOpen] = useState<boolean>(false)\n\n const [\n DocumentDrawer,\n DocumentDrawerToggler,\n { closeDrawer: closeDrawer, drawerSlug: documentDrawerSlug },\n ] = useDocumentDrawer(args)\n const { modalState } = useModal()\n\n const storeSelection = useCallback(() => {\n editor.read(() => {\n const selection = $getSelection() ?? $getPreviousSelection()\n setSelectionState(selection)\n })\n setWasOpen(true)\n }, [editor])\n\n const restoreSelection = useCallback(() => {\n if (selectionState) {\n editor.update(\n () => {\n $setSelection(selectionState.clone())\n },\n { discrete: true, skipTransforms: true },\n )\n }\n }, [editor, selectionState])\n\n const closeDocumentDrawer = () => {\n //restoreSelection() // Should already be stored by the useEffect below\n closeDrawer()\n }\n\n // We need to handle drawer closing via a useEffect, as toggleDrawer / closeDrawer will not be triggered if the drawer\n // is closed by clicking outside of the drawer. This useEffect will handle everything.\n useEffect(() => {\n if (!wasOpen) {\n return\n }\n\n const thisModalState = modalState[documentDrawerSlug]\n // Exists in modalState (thus has opened at least once before) and is closed\n if (thisModalState && !thisModalState?.isOpen) {\n setWasOpen(false)\n setTimeout(() => {\n restoreSelection()\n }, 1)\n }\n }, [modalState, documentDrawerSlug, restoreSelection, wasOpen])\n\n return {\n closeDocumentDrawer,\n DocumentDrawer,\n documentDrawerSlug,\n DocumentDrawerToggler: (props) => <DocumentDrawerToggler {...props} onClick={storeSelection} />,\n }\n}\n"],"names":["useLexicalComposerContext","useDocumentDrawer","useModal","$getPreviousSelection","$getSelection","$setSelection","useCallback","useEffect","useState","useLexicalDocumentDrawer","args","editor","selectionState","setSelectionState","wasOpen","setWasOpen","DocumentDrawer","DocumentDrawerToggler","closeDrawer","drawerSlug","documentDrawerSlug","modalState","storeSelection","read","selection","restoreSelection","update","clone","discrete","skipTransforms","closeDocumentDrawer","thisModalState","isOpen","setTimeout","props","onClick"],"mappings":"AAAA;;AAIA,SAASA,yBAAyB,QAAQ,wCAAuC;AACjF,SAASC,iBAAiB,EAAEC,QAAQ,QAAQ,iBAAgB;AAC5D,SAASC,qBAAqB,EAAEC,aAAa,EAAEC,aAAa,QAAQ,UAAS;AAC7E,SAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAExD;;;;CAIC,GACD,OAAO,MAAMC,2BAA2B,CACtCC;IAOA,MAAM,CAACC,OAAO,GAAGX;IACjB,MAAM,CAACY,gBAAgBC,kBAAkB,GAAGL,SAA+B;IAC3E,MAAM,CAACM,SAASC,WAAW,GAAGP,SAAkB;IAEhD,MAAM,CACJQ,gBACAC,uBACA,EAAEC,aAAaA,WAAW,EAAEC,YAAYC,kBAAkB,EAAE,CAC7D,GAAGnB,kBAAkBS;IACtB,MAAM,EAAEW,UAAU,EAAE,GAAGnB;IAEvB,MAAMoB,iBAAiBhB,YAAY;QACjCK,OAAOY,IAAI,CAAC;YACV,MAAMC,YAAYpB,mBAAmBD;YACrCU,kBAAkBW;QACpB;QACAT,WAAW;IACb,GAAG;QAACJ;KAAO;IAEX,MAAMc,mBAAmBnB,YAAY;QACnC,IAAIM,gBAAgB;YAClBD,OAAOe,MAAM,CACX;gBACErB,cAAcO,eAAee,KAAK;YACpC,GACA;gBAAEC,UAAU;gBAAMC,gBAAgB;YAAK;QAE3C;IACF,GAAG;QAAClB;QAAQC;KAAe;IAE3B,MAAMkB,sBAAsB;QAC1B,uEAAuE;QACvEZ;IACF;IAEA,sHAAsH;IACtH,sFAAsF;IACtFX,UAAU;QACR,IAAI,CAACO,SAAS;YACZ;QACF;QAEA,MAAMiB,iBAAiBV,UAAU,CAACD,mBAAmB;QACrD,4EAA4E;QAC5E,IAAIW,kBAAkB,CAACA,gBAAgBC,QAAQ;YAC7CjB,WAAW;YACXkB,WAAW;gBACTR;YACF,GAAG;QACL;IACF,GAAG;QAACJ;QAAYD;QAAoBK;QAAkBX;KAAQ;IAE9D,OAAO;QACLgB;QACAd;QACAI;QACAH,uBAAuB,CAACiB,sBAAU,KAACjB;gBAAuB,GAAGiB,KAAK;gBAAEC,SAASb;;IAC/E;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/utilities/fieldsDrawer/useLexicalDocumentDrawer.tsx"],"sourcesContent":["'use client'\nimport type { UseDocumentDrawer } from '@payloadcms/ui'\nimport type { BaseSelection } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useDocumentDrawer, useModal } from '@payloadcms/ui'\nimport { $getPreviousSelection, $getSelection, $setSelection } from 'lexical'\nimport { useCallback, useEffect, useState } from 'react'\n\n/**\n *\n * Wrapper around useDocumentDrawer that restores and saves selection state (cursor position) when opening and closing the drawer.\n * By default, the lexical cursor position may be lost when opening a drawer and clicking somewhere on that drawer.\n */\nexport const useLexicalDocumentDrawer = (\n args: Parameters<UseDocumentDrawer>[0],\n): {\n closeDocumentDrawer: () => void\n DocumentDrawer: ReturnType<UseDocumentDrawer>[0]\n documentDrawerSlug: string\n DocumentDrawerToggler: ReturnType<UseDocumentDrawer>[1]\n} => {\n const [editor] = useLexicalComposerContext()\n const [selectionState, setSelectionState] = useState<BaseSelection | null>(null)\n const [wasOpen, setWasOpen] = useState<boolean>(false)\n\n const [\n DocumentDrawer,\n DocumentDrawerToggler,\n { closeDrawer: closeDrawer, drawerSlug: documentDrawerSlug },\n ] = useDocumentDrawer(args)\n const { modalState } = useModal()\n\n const storeSelection = useCallback(() => {\n editor.read(() => {\n const selection = $getSelection() ?? $getPreviousSelection()\n setSelectionState(selection)\n })\n setWasOpen(true)\n }, [editor])\n\n const restoreSelection = useCallback(() => {\n if (selectionState) {\n editor.update(\n () => {\n $setSelection(selectionState.clone())\n },\n { discrete: true, skipTransforms: true },\n )\n }\n }, [editor, selectionState])\n\n const closeDocumentDrawer = () => {\n //restoreSelection() // Should already be stored by the useEffect below\n closeDrawer()\n }\n\n // We need to handle drawer closing via a useEffect, as toggleDrawer / closeDrawer will not be triggered if the drawer\n // is closed by clicking outside of the drawer. This useEffect will handle everything.\n useEffect(() => {\n if (!wasOpen) {\n return\n }\n\n const thisModalState = modalState[documentDrawerSlug]\n // Exists in modalState (thus has opened at least once before) and is closed\n if (thisModalState && !thisModalState?.isOpen) {\n setWasOpen(false)\n setTimeout(() => {\n restoreSelection()\n }, 1)\n }\n }, [modalState, documentDrawerSlug, restoreSelection, wasOpen])\n\n return {\n closeDocumentDrawer,\n DocumentDrawer,\n documentDrawerSlug,\n DocumentDrawerToggler: (props) => <DocumentDrawerToggler {...props} onClick={storeSelection} />,\n }\n}\n"],"names":["useLexicalComposerContext","useDocumentDrawer","useModal","$getPreviousSelection","$getSelection","$setSelection","useCallback","useEffect","useState","useLexicalDocumentDrawer","args","editor","selectionState","setSelectionState","wasOpen","setWasOpen","DocumentDrawer","DocumentDrawerToggler","closeDrawer","drawerSlug","documentDrawerSlug","modalState","storeSelection","read","selection","restoreSelection","update","clone","discrete","skipTransforms","closeDocumentDrawer","thisModalState","isOpen","setTimeout","props","onClick"],"mappings":"AAAA;;AAIA,SAASA,yBAAyB,QAAQ,wCAAuC;AACjF,SAASC,iBAAiB,EAAEC,QAAQ,QAAQ,iBAAgB;AAC5D,SAASC,qBAAqB,EAAEC,aAAa,EAAEC,aAAa,QAAQ,UAAS;AAC7E,SAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAExD;;;;CAIC,GACD,OAAO,MAAMC,2BAA2B,CACtCC;IAOA,MAAM,CAACC,OAAO,GAAGX;IACjB,MAAM,CAACY,gBAAgBC,kBAAkB,GAAGL,SAA+B;IAC3E,MAAM,CAACM,SAASC,WAAW,GAAGP,SAAkB;IAEhD,MAAM,CACJQ,gBACAC,uBACA,EAAEC,aAAaA,WAAW,EAAEC,YAAYC,kBAAkB,EAAE,CAC7D,GAAGnB,kBAAkBS;IACtB,MAAM,EAAEW,UAAU,EAAE,GAAGnB;IAEvB,MAAMoB,iBAAiBhB,YAAY;QACjCK,OAAOY,IAAI,CAAC;YACV,MAAMC,YAAYpB,mBAAmBD;YACrCU,kBAAkBW;QACpB;QACAT,WAAW;IACb,GAAG;QAACJ;KAAO;IAEX,MAAMc,mBAAmBnB,YAAY;QACnC,IAAIM,gBAAgB;YAClBD,OAAOe,MAAM,CACX;gBACErB,cAAcO,eAAee,KAAK;YACpC,GACA;gBAAEC,UAAU;gBAAMC,gBAAgB;YAAK;QAE3C;IACF,GAAG;QAAClB;QAAQC;KAAe;IAE3B,MAAMkB,sBAAsB;QAC1B,uEAAuE;QACvEZ;IACF;IAEA,sHAAsH;IACtH,sFAAsF;IACtFX,UAAU;QACR,IAAI,CAACO,SAAS;YACZ;QACF;QAEA,MAAMiB,iBAAiBV,UAAU,CAACD,mBAAmB;QACrD,4EAA4E;QAC5E,IAAIW,kBAAkB,CAACA,gBAAgBC,QAAQ;YAC7CjB,WAAW;YACXkB,WAAW;gBACTR;YACF,GAAG;QACL;IACF,GAAG;QAACJ;QAAYD;QAAoBK;QAAkBX;KAAQ;IAE9D,OAAO;QACLgB;QACAd;QACAI;QACAH,uBAAuB,CAACiB,sBAAU,QAACjB;gBAAuB,GAAGiB,KAAK;gBAAEC,SAASb;;;;;;IAC/E;AACF,EAAC"}
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
3
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
4
4
  import { useListDrawer, useModal } from '@payloadcms/ui';
5
5
  import { $getNodeByKey, $getPreviousSelection, $getRoot, $getSelection, $isRangeSelection, $setSelection } from 'lexical';
@@ -71,12 +71,16 @@ import { useCallback, useEffect, useState } from 'react';
71
71
  isListDrawerOpen: isDrawerOpen,
72
72
  ListDrawer: BaseListDrawer,
73
73
  listDrawerSlug,
74
- ListDrawerToggler: (props)=>/*#__PURE__*/ _jsx(BaseListDrawerToggler, {
74
+ ListDrawerToggler: (props)=>/*#__PURE__*/ _jsxDEV(BaseListDrawerToggler, {
75
75
  ...props,
76
76
  onClick: ()=>{
77
77
  $storeSelection();
78
78
  }
79
- }),
79
+ }, void 0, false, {
80
+ fileName: "src/utilities/fieldsDrawer/useLexicalListDrawer.tsx",
81
+ lineNumber: 103,
82
+ columnNumber: 7
83
+ }, this),
80
84
  openListDrawer: ()=>{
81
85
  $storeSelection();
82
86
  baseOpenDrawer();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utilities/fieldsDrawer/useLexicalListDrawer.tsx"],"sourcesContent":["'use client'\nimport type { UseListDrawer } from '@payloadcms/ui'\nimport type { BaseSelection } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useListDrawer, useModal } from '@payloadcms/ui'\nimport {\n $getNodeByKey,\n $getPreviousSelection,\n $getRoot,\n $getSelection,\n $isRangeSelection,\n $setSelection,\n} from 'lexical'\nimport { useCallback, useEffect, useState } from 'react'\n\n/**\n *\n * Wrapper around useListDrawer that restores and saves selection state (cursor position) when opening and closing the drawer.\n * By default, the lexical cursor position may be lost when opening a drawer and clicking somewhere on that drawer.\n */\nexport const useLexicalListDrawer = (\n args: Parameters<UseListDrawer>[0],\n): {\n closeListDrawer: () => void\n isListDrawerOpen: boolean\n ListDrawer: ReturnType<UseListDrawer>[0]\n listDrawerSlug: string\n ListDrawerToggler: ReturnType<UseListDrawer>[1]\n openListDrawer: (selection?: BaseSelection) => void\n} => {\n const [editor] = useLexicalComposerContext()\n const [selectionState, setSelectionState] = useState<BaseSelection | null>(null)\n const [wasOpen, setWasOpen] = useState<boolean>(false)\n\n const [\n BaseListDrawer,\n BaseListDrawerToggler,\n {\n closeDrawer: baseCloseDrawer,\n drawerSlug: listDrawerSlug,\n isDrawerOpen,\n openDrawer: baseOpenDrawer,\n },\n ] = useListDrawer(args)\n const { modalState } = useModal()\n\n const $storeSelection = useCallback(() => {\n // editor.read() causes an error here when creating a new upload node from the slash menu. It seems like we can omit it here though, as all\n // invocations of that functions are wrapped in editor.read() or editor.update() somewhere in the call stack.\n const selection = $getSelection() ?? $getPreviousSelection()\n setSelectionState(selection)\n }, [])\n\n const restoreSelection = useCallback(() => {\n if (selectionState) {\n editor.update(\n () => {\n if ($isRangeSelection(selectionState)) {\n const { anchor, focus } = selectionState\n if ($getNodeByKey(anchor.key) && $getNodeByKey(focus.key)) {\n $setSelection(selectionState.clone())\n }\n } else {\n // not ideal, but better than losing the selection. Try to set the selection\n // in a valid place if you remove selected nodes!\n $getRoot().selectEnd()\n }\n },\n { discrete: true, skipTransforms: true },\n )\n }\n }, [editor, selectionState])\n\n const closeListDrawer = () => {\n //restoreSelection() // Should already be stored by the useEffect below\n baseCloseDrawer()\n }\n\n // We need to handle drawer closing via a useEffect, as toggleDrawer / closeDrawer will not be triggered if the drawer\n // is closed by clicking outside of the drawer. This useEffect will handle everything.\n useEffect(() => {\n if (!wasOpen) {\n return\n }\n\n const thisModalState = modalState[listDrawerSlug]\n // Exists in modalState (thus has opened at least once before) and is closed\n if (thisModalState && !thisModalState?.isOpen) {\n setWasOpen(false)\n setTimeout(() => {\n restoreSelection()\n }, 1)\n }\n }, [modalState, listDrawerSlug, restoreSelection, wasOpen])\n\n return {\n closeListDrawer,\n isListDrawerOpen: isDrawerOpen,\n ListDrawer: BaseListDrawer,\n listDrawerSlug,\n ListDrawerToggler: (props) => (\n <BaseListDrawerToggler\n {...props}\n onClick={() => {\n $storeSelection()\n }}\n />\n ),\n openListDrawer: () => {\n $storeSelection()\n baseOpenDrawer()\n setWasOpen(true)\n },\n }\n}\n"],"names":["useLexicalComposerContext","useListDrawer","useModal","$getNodeByKey","$getPreviousSelection","$getRoot","$getSelection","$isRangeSelection","$setSelection","useCallback","useEffect","useState","useLexicalListDrawer","args","editor","selectionState","setSelectionState","wasOpen","setWasOpen","BaseListDrawer","BaseListDrawerToggler","closeDrawer","baseCloseDrawer","drawerSlug","listDrawerSlug","isDrawerOpen","openDrawer","baseOpenDrawer","modalState","$storeSelection","selection","restoreSelection","update","anchor","focus","key","clone","selectEnd","discrete","skipTransforms","closeListDrawer","thisModalState","isOpen","setTimeout","isListDrawerOpen","ListDrawer","ListDrawerToggler","props","onClick","openListDrawer"],"mappings":"AAAA;;AAIA,SAASA,yBAAyB,QAAQ,wCAAuC;AACjF,SAASC,aAAa,EAAEC,QAAQ,QAAQ,iBAAgB;AACxD,SACEC,aAAa,EACbC,qBAAqB,EACrBC,QAAQ,EACRC,aAAa,EACbC,iBAAiB,EACjBC,aAAa,QACR,UAAS;AAChB,SAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAExD;;;;CAIC,GACD,OAAO,MAAMC,uBAAuB,CAClCC;IASA,MAAM,CAACC,OAAO,GAAGd;IACjB,MAAM,CAACe,gBAAgBC,kBAAkB,GAAGL,SAA+B;IAC3E,MAAM,CAACM,SAASC,WAAW,GAAGP,SAAkB;IAEhD,MAAM,CACJQ,gBACAC,uBACA,EACEC,aAAaC,eAAe,EAC5BC,YAAYC,cAAc,EAC1BC,YAAY,EACZC,YAAYC,cAAc,EAC3B,CACF,GAAG1B,cAAcY;IAClB,MAAM,EAAEe,UAAU,EAAE,GAAG1B;IAEvB,MAAM2B,kBAAkBpB,YAAY;QAClC,2IAA2I;QAC3I,6GAA6G;QAC7G,MAAMqB,YAAYxB,mBAAmBF;QACrCY,kBAAkBc;IACpB,GAAG,EAAE;IAEL,MAAMC,mBAAmBtB,YAAY;QACnC,IAAIM,gBAAgB;YAClBD,OAAOkB,MAAM,CACX;gBACE,IAAIzB,kBAAkBQ,iBAAiB;oBACrC,MAAM,EAAEkB,MAAM,EAAEC,KAAK,EAAE,GAAGnB;oBAC1B,IAAIZ,cAAc8B,OAAOE,GAAG,KAAKhC,cAAc+B,MAAMC,GAAG,GAAG;wBACzD3B,cAAcO,eAAeqB,KAAK;oBACpC;gBACF,OAAO;oBACL,4EAA4E;oBAC5E,iDAAiD;oBACjD/B,WAAWgC,SAAS;gBACtB;YACF,GACA;gBAAEC,UAAU;gBAAMC,gBAAgB;YAAK;QAE3C;IACF,GAAG;QAACzB;QAAQC;KAAe;IAE3B,MAAMyB,kBAAkB;QACtB,uEAAuE;QACvElB;IACF;IAEA,sHAAsH;IACtH,sFAAsF;IACtFZ,UAAU;QACR,IAAI,CAACO,SAAS;YACZ;QACF;QAEA,MAAMwB,iBAAiBb,UAAU,CAACJ,eAAe;QACjD,4EAA4E;QAC5E,IAAIiB,kBAAkB,CAACA,gBAAgBC,QAAQ;YAC7CxB,WAAW;YACXyB,WAAW;gBACTZ;YACF,GAAG;QACL;IACF,GAAG;QAACH;QAAYJ;QAAgBO;QAAkBd;KAAQ;IAE1D,OAAO;QACLuB;QACAI,kBAAkBnB;QAClBoB,YAAY1B;QACZK;QACAsB,mBAAmB,CAACC,sBAClB,KAAC3B;gBACE,GAAG2B,KAAK;gBACTC,SAAS;oBACPnB;gBACF;;QAGJoB,gBAAgB;YACdpB;YACAF;YACAT,WAAW;QACb;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/utilities/fieldsDrawer/useLexicalListDrawer.tsx"],"sourcesContent":["'use client'\nimport type { UseListDrawer } from '@payloadcms/ui'\nimport type { BaseSelection } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useListDrawer, useModal } from '@payloadcms/ui'\nimport {\n $getNodeByKey,\n $getPreviousSelection,\n $getRoot,\n $getSelection,\n $isRangeSelection,\n $setSelection,\n} from 'lexical'\nimport { useCallback, useEffect, useState } from 'react'\n\n/**\n *\n * Wrapper around useListDrawer that restores and saves selection state (cursor position) when opening and closing the drawer.\n * By default, the lexical cursor position may be lost when opening a drawer and clicking somewhere on that drawer.\n */\nexport const useLexicalListDrawer = (\n args: Parameters<UseListDrawer>[0],\n): {\n closeListDrawer: () => void\n isListDrawerOpen: boolean\n ListDrawer: ReturnType<UseListDrawer>[0]\n listDrawerSlug: string\n ListDrawerToggler: ReturnType<UseListDrawer>[1]\n openListDrawer: (selection?: BaseSelection) => void\n} => {\n const [editor] = useLexicalComposerContext()\n const [selectionState, setSelectionState] = useState<BaseSelection | null>(null)\n const [wasOpen, setWasOpen] = useState<boolean>(false)\n\n const [\n BaseListDrawer,\n BaseListDrawerToggler,\n {\n closeDrawer: baseCloseDrawer,\n drawerSlug: listDrawerSlug,\n isDrawerOpen,\n openDrawer: baseOpenDrawer,\n },\n ] = useListDrawer(args)\n const { modalState } = useModal()\n\n const $storeSelection = useCallback(() => {\n // editor.read() causes an error here when creating a new upload node from the slash menu. It seems like we can omit it here though, as all\n // invocations of that functions are wrapped in editor.read() or editor.update() somewhere in the call stack.\n const selection = $getSelection() ?? $getPreviousSelection()\n setSelectionState(selection)\n }, [])\n\n const restoreSelection = useCallback(() => {\n if (selectionState) {\n editor.update(\n () => {\n if ($isRangeSelection(selectionState)) {\n const { anchor, focus } = selectionState\n if ($getNodeByKey(anchor.key) && $getNodeByKey(focus.key)) {\n $setSelection(selectionState.clone())\n }\n } else {\n // not ideal, but better than losing the selection. Try to set the selection\n // in a valid place if you remove selected nodes!\n $getRoot().selectEnd()\n }\n },\n { discrete: true, skipTransforms: true },\n )\n }\n }, [editor, selectionState])\n\n const closeListDrawer = () => {\n //restoreSelection() // Should already be stored by the useEffect below\n baseCloseDrawer()\n }\n\n // We need to handle drawer closing via a useEffect, as toggleDrawer / closeDrawer will not be triggered if the drawer\n // is closed by clicking outside of the drawer. This useEffect will handle everything.\n useEffect(() => {\n if (!wasOpen) {\n return\n }\n\n const thisModalState = modalState[listDrawerSlug]\n // Exists in modalState (thus has opened at least once before) and is closed\n if (thisModalState && !thisModalState?.isOpen) {\n setWasOpen(false)\n setTimeout(() => {\n restoreSelection()\n }, 1)\n }\n }, [modalState, listDrawerSlug, restoreSelection, wasOpen])\n\n return {\n closeListDrawer,\n isListDrawerOpen: isDrawerOpen,\n ListDrawer: BaseListDrawer,\n listDrawerSlug,\n ListDrawerToggler: (props) => (\n <BaseListDrawerToggler\n {...props}\n onClick={() => {\n $storeSelection()\n }}\n />\n ),\n openListDrawer: () => {\n $storeSelection()\n baseOpenDrawer()\n setWasOpen(true)\n },\n }\n}\n"],"names":["useLexicalComposerContext","useListDrawer","useModal","$getNodeByKey","$getPreviousSelection","$getRoot","$getSelection","$isRangeSelection","$setSelection","useCallback","useEffect","useState","useLexicalListDrawer","args","editor","selectionState","setSelectionState","wasOpen","setWasOpen","BaseListDrawer","BaseListDrawerToggler","closeDrawer","baseCloseDrawer","drawerSlug","listDrawerSlug","isDrawerOpen","openDrawer","baseOpenDrawer","modalState","$storeSelection","selection","restoreSelection","update","anchor","focus","key","clone","selectEnd","discrete","skipTransforms","closeListDrawer","thisModalState","isOpen","setTimeout","isListDrawerOpen","ListDrawer","ListDrawerToggler","props","onClick","openListDrawer"],"mappings":"AAAA;;AAIA,SAASA,yBAAyB,QAAQ,wCAAuC;AACjF,SAASC,aAAa,EAAEC,QAAQ,QAAQ,iBAAgB;AACxD,SACEC,aAAa,EACbC,qBAAqB,EACrBC,QAAQ,EACRC,aAAa,EACbC,iBAAiB,EACjBC,aAAa,QACR,UAAS;AAChB,SAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAExD;;;;CAIC,GACD,OAAO,MAAMC,uBAAuB,CAClCC;IASA,MAAM,CAACC,OAAO,GAAGd;IACjB,MAAM,CAACe,gBAAgBC,kBAAkB,GAAGL,SAA+B;IAC3E,MAAM,CAACM,SAASC,WAAW,GAAGP,SAAkB;IAEhD,MAAM,CACJQ,gBACAC,uBACA,EACEC,aAAaC,eAAe,EAC5BC,YAAYC,cAAc,EAC1BC,YAAY,EACZC,YAAYC,cAAc,EAC3B,CACF,GAAG1B,cAAcY;IAClB,MAAM,EAAEe,UAAU,EAAE,GAAG1B;IAEvB,MAAM2B,kBAAkBpB,YAAY;QAClC,2IAA2I;QAC3I,6GAA6G;QAC7G,MAAMqB,YAAYxB,mBAAmBF;QACrCY,kBAAkBc;IACpB,GAAG,EAAE;IAEL,MAAMC,mBAAmBtB,YAAY;QACnC,IAAIM,gBAAgB;YAClBD,OAAOkB,MAAM,CACX;gBACE,IAAIzB,kBAAkBQ,iBAAiB;oBACrC,MAAM,EAAEkB,MAAM,EAAEC,KAAK,EAAE,GAAGnB;oBAC1B,IAAIZ,cAAc8B,OAAOE,GAAG,KAAKhC,cAAc+B,MAAMC,GAAG,GAAG;wBACzD3B,cAAcO,eAAeqB,KAAK;oBACpC;gBACF,OAAO;oBACL,4EAA4E;oBAC5E,iDAAiD;oBACjD/B,WAAWgC,SAAS;gBACtB;YACF,GACA;gBAAEC,UAAU;gBAAMC,gBAAgB;YAAK;QAE3C;IACF,GAAG;QAACzB;QAAQC;KAAe;IAE3B,MAAMyB,kBAAkB;QACtB,uEAAuE;QACvElB;IACF;IAEA,sHAAsH;IACtH,sFAAsF;IACtFZ,UAAU;QACR,IAAI,CAACO,SAAS;YACZ;QACF;QAEA,MAAMwB,iBAAiBb,UAAU,CAACJ,eAAe;QACjD,4EAA4E;QAC5E,IAAIiB,kBAAkB,CAACA,gBAAgBC,QAAQ;YAC7CxB,WAAW;YACXyB,WAAW;gBACTZ;YACF,GAAG;QACL;IACF,GAAG;QAACH;QAAYJ;QAAgBO;QAAkBd;KAAQ;IAE1D,OAAO;QACLuB;QACAI,kBAAkBnB;QAClBoB,YAAY1B;QACZK;QACAsB,mBAAmB,CAACC,sBAClB,QAAC3B;gBACE,GAAG2B,KAAK;gBACTC,SAAS;oBACPnB;gBACF;;;;;;QAGJoB,gBAAgB;YACdpB;YACAF;YACAT,WAAW;QACb;IACF;AACF,EAAC"}
@@ -29,6 +29,7 @@ export const migrateDocumentFieldsRecursively = ({ data, fields, found, payload
29
29
  });
30
30
  } else if (Array.isArray(data[field.name])) {
31
31
  if (field.type === 'blocks') {
32
+ ;
32
33
  data[field.name].forEach((row)=>{
33
34
  const blockTypeToMatch = row?.blockType;
34
35
  const block = payload?.blocks[blockTypeToMatch] ?? (field.blockReferences ?? field.blocks).find((block)=>typeof block !== 'string' && block.slug === blockTypeToMatch);
@@ -43,6 +44,7 @@ export const migrateDocumentFieldsRecursively = ({ data, fields, found, payload
43
44
  });
44
45
  }
45
46
  if (field.type === 'array') {
47
+ ;
46
48
  data[field.name].forEach((row)=>{
47
49
  found += migrateDocumentFieldsRecursively({
48
50
  data: row,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.ts"],"sourcesContent":["import type { Field, FlattenedBlock, Payload } from 'payload'\n\nimport { fieldAffectsData, fieldHasSubFields, fieldIsArrayType, tabHasName } from 'payload/shared'\n\nimport type {\n SlateNode,\n SlateNodeConverter,\n} from '../../features/migrations/slateToLexical/converter/types.js'\nimport type { LexicalRichTextAdapter } from '../../types.js'\n\nimport { convertSlateToLexical } from '../../features/migrations/slateToLexical/converter/index.js'\n\ntype NestedRichTextFieldsArgs = {\n data: Record<string, unknown>\n\n fields: Field[]\n found: number\n payload: Payload\n}\n\nexport const migrateDocumentFieldsRecursively = ({\n data,\n fields,\n found,\n payload,\n}: NestedRichTextFieldsArgs): number => {\n for (const field of fields) {\n if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {\n if (fieldAffectsData(field) && typeof data[field.name] === 'object') {\n found += migrateDocumentFieldsRecursively({\n data: data[field.name] as Record<string, unknown>,\n fields: field.fields,\n found,\n payload,\n })\n } else {\n found += migrateDocumentFieldsRecursively({\n data,\n fields: field.fields,\n found,\n payload,\n })\n }\n } else if (field.type === 'tabs') {\n field.tabs.forEach((tab) => {\n found += migrateDocumentFieldsRecursively({\n data: (tabHasName(tab) ? data[tab.name] : data) as Record<string, unknown>,\n fields: tab.fields,\n found,\n payload,\n })\n })\n } else if (Array.isArray(data[field.name])) {\n if (field.type === 'blocks') {\n ;(data[field.name] as Array<Record<string, unknown>>).forEach((row) => {\n const blockTypeToMatch: string = row?.blockType as string\n const block =\n payload?.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (block) {\n found += migrateDocumentFieldsRecursively({\n data: row,\n fields: block.fields,\n found,\n payload,\n })\n }\n })\n }\n\n if (field.type === 'array') {\n ;(data[field.name] as Array<Record<string, unknown>>).forEach((row) => {\n found += migrateDocumentFieldsRecursively({\n data: row,\n fields: field.fields,\n found,\n payload,\n })\n })\n }\n }\n\n if (field.type === 'richText' && Array.isArray(data[field.name])) {\n // Slate richText\n const editor: LexicalRichTextAdapter = field.editor as LexicalRichTextAdapter\n if (editor && typeof editor === 'object') {\n if ('features' in editor && editor.features?.length) {\n // find slatetolexical feature\n const slateToLexicalFeature = editor.editorConfig.resolvedFeatureMap.get('slateToLexical')\n if (slateToLexicalFeature) {\n // DO CONVERSION\n\n const { converters } = slateToLexicalFeature.sanitizedServerFeatureProps as {\n converters?: SlateNodeConverter[]\n }\n\n data[field.name] = convertSlateToLexical({\n converters: converters!,\n slateData: data[field.name] as SlateNode[],\n })\n\n found++\n }\n }\n }\n }\n }\n\n return found\n}\n"],"names":["fieldAffectsData","fieldHasSubFields","fieldIsArrayType","tabHasName","convertSlateToLexical","migrateDocumentFieldsRecursively","data","fields","found","payload","field","name","type","tabs","forEach","tab","Array","isArray","row","blockTypeToMatch","blockType","block","blocks","blockReferences","find","slug","editor","features","length","slateToLexicalFeature","editorConfig","resolvedFeatureMap","get","converters","sanitizedServerFeatureProps","slateData"],"mappings":"AAEA,SAASA,gBAAgB,EAAEC,iBAAiB,EAAEC,gBAAgB,EAAEC,UAAU,QAAQ,iBAAgB;AAQlG,SAASC,qBAAqB,QAAQ,8DAA6D;AAUnG,OAAO,MAAMC,mCAAmC,CAAC,EAC/CC,IAAI,EACJC,MAAM,EACNC,KAAK,EACLC,OAAO,EACkB;IACzB,KAAK,MAAMC,SAASH,OAAQ;QAC1B,IAAIN,kBAAkBS,UAAU,CAACR,iBAAiBQ,QAAQ;YACxD,IAAIV,iBAAiBU,UAAU,OAAOJ,IAAI,CAACI,MAAMC,IAAI,CAAC,KAAK,UAAU;gBACnEH,SAASH,iCAAiC;oBACxCC,MAAMA,IAAI,CAACI,MAAMC,IAAI,CAAC;oBACtBJ,QAAQG,MAAMH,MAAM;oBACpBC;oBACAC;gBACF;YACF,OAAO;gBACLD,SAASH,iCAAiC;oBACxCC;oBACAC,QAAQG,MAAMH,MAAM;oBACpBC;oBACAC;gBACF;YACF;QACF,OAAO,IAAIC,MAAME,IAAI,KAAK,QAAQ;YAChCF,MAAMG,IAAI,CAACC,OAAO,CAAC,CAACC;gBAClBP,SAASH,iCAAiC;oBACxCC,MAAOH,WAAWY,OAAOT,IAAI,CAACS,IAAIJ,IAAI,CAAC,GAAGL;oBAC1CC,QAAQQ,IAAIR,MAAM;oBAClBC;oBACAC;gBACF;YACF;QACF,OAAO,IAAIO,MAAMC,OAAO,CAACX,IAAI,CAACI,MAAMC,IAAI,CAAC,GAAG;YAC1C,IAAID,MAAME,IAAI,KAAK,UAAU;gBACzBN,IAAI,CAACI,MAAMC,IAAI,CAAC,CAAoCG,OAAO,CAAC,CAACI;oBAC7D,MAAMC,mBAA2BD,KAAKE;oBACtC,MAAMC,QACJZ,SAASa,MAAM,CAACH,iBAAiB,IAChC,AAACT,CAAAA,MAAMa,eAAe,IAAIb,MAAMY,MAAM,AAAD,EAAGE,IAAI,CAC3C,CAACH,QAAU,OAAOA,UAAU,YAAYA,MAAMI,IAAI,KAAKN;oBAG3D,IAAIE,OAAO;wBACTb,SAASH,iCAAiC;4BACxCC,MAAMY;4BACNX,QAAQc,MAAMd,MAAM;4BACpBC;4BACAC;wBACF;oBACF;gBACF;YACF;YAEA,IAAIC,MAAME,IAAI,KAAK,SAAS;gBACxBN,IAAI,CAACI,MAAMC,IAAI,CAAC,CAAoCG,OAAO,CAAC,CAACI;oBAC7DV,SAASH,iCAAiC;wBACxCC,MAAMY;wBACNX,QAAQG,MAAMH,MAAM;wBACpBC;wBACAC;oBACF;gBACF;YACF;QACF;QAEA,IAAIC,MAAME,IAAI,KAAK,cAAcI,MAAMC,OAAO,CAACX,IAAI,CAACI,MAAMC,IAAI,CAAC,GAAG;YAChE,iBAAiB;YACjB,MAAMe,SAAiChB,MAAMgB,MAAM;YACnD,IAAIA,UAAU,OAAOA,WAAW,UAAU;gBACxC,IAAI,cAAcA,UAAUA,OAAOC,QAAQ,EAAEC,QAAQ;oBACnD,8BAA8B;oBAC9B,MAAMC,wBAAwBH,OAAOI,YAAY,CAACC,kBAAkB,CAACC,GAAG,CAAC;oBACzE,IAAIH,uBAAuB;wBACzB,gBAAgB;wBAEhB,MAAM,EAAEI,UAAU,EAAE,GAAGJ,sBAAsBK,2BAA2B;wBAIxE5B,IAAI,CAACI,MAAMC,IAAI,CAAC,GAAGP,sBAAsB;4BACvC6B,YAAYA;4BACZE,WAAW7B,IAAI,CAACI,MAAMC,IAAI,CAAC;wBAC7B;wBAEAH;oBACF;gBACF;YACF;QACF;IACF;IAEA,OAAOA;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.ts"],"sourcesContent":["import type { Field, FlattenedBlock, Payload } from 'payload'\n\nimport { fieldAffectsData, fieldHasSubFields, fieldIsArrayType, tabHasName } from 'payload/shared'\n\nimport type {\n SlateNode,\n SlateNodeConverter,\n} from '../../features/migrations/slateToLexical/converter/types.js'\nimport type { LexicalRichTextAdapter } from '../../types.js'\n\nimport { convertSlateToLexical } from '../../features/migrations/slateToLexical/converter/index.js'\n\ntype NestedRichTextFieldsArgs = {\n data: Record<string, unknown>\n\n fields: Field[]\n found: number\n payload: Payload\n}\n\nexport const migrateDocumentFieldsRecursively = ({\n data,\n fields,\n found,\n payload,\n}: NestedRichTextFieldsArgs): number => {\n for (const field of fields) {\n if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {\n if (fieldAffectsData(field) && typeof data[field.name] === 'object') {\n found += migrateDocumentFieldsRecursively({\n data: data[field.name] as Record<string, unknown>,\n fields: field.fields,\n found,\n payload,\n })\n } else {\n found += migrateDocumentFieldsRecursively({\n data,\n fields: field.fields,\n found,\n payload,\n })\n }\n } else if (field.type === 'tabs') {\n field.tabs.forEach((tab) => {\n found += migrateDocumentFieldsRecursively({\n data: (tabHasName(tab) ? data[tab.name] : data) as Record<string, unknown>,\n fields: tab.fields,\n found,\n payload,\n })\n })\n } else if (Array.isArray(data[field.name])) {\n if (field.type === 'blocks') {\n ;(data[field.name] as Array<Record<string, unknown>>).forEach((row) => {\n const blockTypeToMatch: string = row?.blockType as string\n const block =\n payload?.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (block) {\n found += migrateDocumentFieldsRecursively({\n data: row,\n fields: block.fields,\n found,\n payload,\n })\n }\n })\n }\n\n if (field.type === 'array') {\n ;(data[field.name] as Array<Record<string, unknown>>).forEach((row) => {\n found += migrateDocumentFieldsRecursively({\n data: row,\n fields: field.fields,\n found,\n payload,\n })\n })\n }\n }\n\n if (field.type === 'richText' && Array.isArray(data[field.name])) {\n // Slate richText\n const editor: LexicalRichTextAdapter = field.editor as LexicalRichTextAdapter\n if (editor && typeof editor === 'object') {\n if ('features' in editor && editor.features?.length) {\n // find slatetolexical feature\n const slateToLexicalFeature = editor.editorConfig.resolvedFeatureMap.get('slateToLexical')\n if (slateToLexicalFeature) {\n // DO CONVERSION\n\n const { converters } = slateToLexicalFeature.sanitizedServerFeatureProps as {\n converters?: SlateNodeConverter[]\n }\n\n data[field.name] = convertSlateToLexical({\n converters: converters!,\n slateData: data[field.name] as SlateNode[],\n })\n\n found++\n }\n }\n }\n }\n }\n\n return found\n}\n"],"names":["fieldAffectsData","fieldHasSubFields","fieldIsArrayType","tabHasName","convertSlateToLexical","migrateDocumentFieldsRecursively","data","fields","found","payload","field","name","type","tabs","forEach","tab","Array","isArray","row","blockTypeToMatch","blockType","block","blocks","blockReferences","find","slug","editor","features","length","slateToLexicalFeature","editorConfig","resolvedFeatureMap","get","converters","sanitizedServerFeatureProps","slateData"],"mappings":"AAEA,SAASA,gBAAgB,EAAEC,iBAAiB,EAAEC,gBAAgB,EAAEC,UAAU,QAAQ,iBAAgB;AAQlG,SAASC,qBAAqB,QAAQ,8DAA6D;AAUnG,OAAO,MAAMC,mCAAmC,CAAC,EAC/CC,IAAI,EACJC,MAAM,EACNC,KAAK,EACLC,OAAO,EACkB;IACzB,KAAK,MAAMC,SAASH,OAAQ;QAC1B,IAAIN,kBAAkBS,UAAU,CAACR,iBAAiBQ,QAAQ;YACxD,IAAIV,iBAAiBU,UAAU,OAAOJ,IAAI,CAACI,MAAMC,IAAI,CAAC,KAAK,UAAU;gBACnEH,SAASH,iCAAiC;oBACxCC,MAAMA,IAAI,CAACI,MAAMC,IAAI,CAAC;oBACtBJ,QAAQG,MAAMH,MAAM;oBACpBC;oBACAC;gBACF;YACF,OAAO;gBACLD,SAASH,iCAAiC;oBACxCC;oBACAC,QAAQG,MAAMH,MAAM;oBACpBC;oBACAC;gBACF;YACF;QACF,OAAO,IAAIC,MAAME,IAAI,KAAK,QAAQ;YAChCF,MAAMG,IAAI,CAACC,OAAO,CAAC,CAACC;gBAClBP,SAASH,iCAAiC;oBACxCC,MAAOH,WAAWY,OAAOT,IAAI,CAACS,IAAIJ,IAAI,CAAC,GAAGL;oBAC1CC,QAAQQ,IAAIR,MAAM;oBAClBC;oBACAC;gBACF;YACF;QACF,OAAO,IAAIO,MAAMC,OAAO,CAACX,IAAI,CAACI,MAAMC,IAAI,CAAC,GAAG;YAC1C,IAAID,MAAME,IAAI,KAAK,UAAU;;gBACzBN,IAAI,CAACI,MAAMC,IAAI,CAAC,CAAoCG,OAAO,CAAC,CAACI;oBAC7D,MAAMC,mBAA2BD,KAAKE;oBACtC,MAAMC,QACJZ,SAASa,MAAM,CAACH,iBAAiB,IAChC,AAACT,CAAAA,MAAMa,eAAe,IAAIb,MAAMY,MAAM,AAAD,EAAGE,IAAI,CAC3C,CAACH,QAAU,OAAOA,UAAU,YAAYA,MAAMI,IAAI,KAAKN;oBAG3D,IAAIE,OAAO;wBACTb,SAASH,iCAAiC;4BACxCC,MAAMY;4BACNX,QAAQc,MAAMd,MAAM;4BACpBC;4BACAC;wBACF;oBACF;gBACF;YACF;YAEA,IAAIC,MAAME,IAAI,KAAK,SAAS;;gBACxBN,IAAI,CAACI,MAAMC,IAAI,CAAC,CAAoCG,OAAO,CAAC,CAACI;oBAC7DV,SAASH,iCAAiC;wBACxCC,MAAMY;wBACNX,QAAQG,MAAMH,MAAM;wBACpBC;wBACAC;oBACF;gBACF;YACF;QACF;QAEA,IAAIC,MAAME,IAAI,KAAK,cAAcI,MAAMC,OAAO,CAACX,IAAI,CAACI,MAAMC,IAAI,CAAC,GAAG;YAChE,iBAAiB;YACjB,MAAMe,SAAiChB,MAAMgB,MAAM;YACnD,IAAIA,UAAU,OAAOA,WAAW,UAAU;gBACxC,IAAI,cAAcA,UAAUA,OAAOC,QAAQ,EAAEC,QAAQ;oBACnD,8BAA8B;oBAC9B,MAAMC,wBAAwBH,OAAOI,YAAY,CAACC,kBAAkB,CAACC,GAAG,CAAC;oBACzE,IAAIH,uBAAuB;wBACzB,gBAAgB;wBAEhB,MAAM,EAAEI,UAAU,EAAE,GAAGJ,sBAAsBK,2BAA2B;wBAIxE5B,IAAI,CAACI,MAAMC,IAAI,CAAC,GAAGP,sBAAsB;4BACvC6B,YAAYA;4BACZE,WAAW7B,IAAI,CAACI,MAAMC,IAAI,CAAC;wBAC7B;wBAEAH;oBACF;gBACF;YACF;QACF;IACF;IAEA,OAAOA;AACT,EAAC"}
@@ -30,6 +30,7 @@ export const upgradeDocumentFieldsRecursively = ({ data, fields, found, payload
30
30
  });
31
31
  } else if (Array.isArray(data[field.name])) {
32
32
  if (field.type === 'blocks') {
33
+ ;
33
34
  data[field.name].forEach((row)=>{
34
35
  const blockTypeToMatch = row?.blockType;
35
36
  const block = payload.blocks[blockTypeToMatch] ?? (field.blockReferences ?? field.blocks).find((block)=>typeof block !== 'string' && block.slug === blockTypeToMatch);
@@ -44,6 +45,7 @@ export const upgradeDocumentFieldsRecursively = ({ data, fields, found, payload
44
45
  });
45
46
  }
46
47
  if (field.type === 'array') {
48
+ ;
47
49
  data[field.name].forEach((row)=>{
48
50
  found += upgradeDocumentFieldsRecursively({
49
51
  data: row,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.ts"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\nimport type { Field, FlattenedBlock, Payload } from 'payload'\n\nimport { createHeadlessEditor } from '@lexical/headless'\nimport { fieldAffectsData, fieldHasSubFields, fieldIsArrayType, tabHasName } from 'payload/shared'\n\nimport type { LexicalRichTextAdapter } from '../../types.js'\n\nimport { getEnabledNodes } from '../../lexical/nodes/index.js'\n\ntype NestedRichTextFieldsArgs = {\n data: Record<string, unknown>\n\n fields: Field[]\n found: number\n payload: Payload\n}\n\nexport const upgradeDocumentFieldsRecursively = ({\n data,\n fields,\n found,\n payload,\n}: NestedRichTextFieldsArgs): number => {\n for (const field of fields) {\n if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {\n if (fieldAffectsData(field) && typeof data[field.name] === 'object') {\n found += upgradeDocumentFieldsRecursively({\n data: data[field.name] as Record<string, unknown>,\n fields: field.fields,\n found,\n payload,\n })\n } else {\n found += upgradeDocumentFieldsRecursively({\n data,\n fields: field.fields,\n found,\n payload,\n })\n }\n } else if (field.type === 'tabs') {\n field.tabs.forEach((tab) => {\n found += upgradeDocumentFieldsRecursively({\n data: (tabHasName(tab) ? data[tab.name] : data) as Record<string, unknown>,\n fields: tab.fields,\n found,\n payload,\n })\n })\n } else if (Array.isArray(data[field.name])) {\n if (field.type === 'blocks') {\n ;(data[field.name] as Record<string, unknown>[]).forEach((row) => {\n const blockTypeToMatch: string = row?.blockType as string\n\n const block =\n payload.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (block) {\n found += upgradeDocumentFieldsRecursively({\n data: row,\n fields: block.fields,\n found,\n payload,\n })\n }\n })\n }\n\n if (field.type === 'array') {\n ;(data[field.name] as Record<string, unknown>[]).forEach((row) => {\n found += upgradeDocumentFieldsRecursively({\n data: row,\n fields: field.fields,\n found,\n payload,\n })\n })\n }\n }\n\n if (\n field.type === 'richText' &&\n data[field.name] &&\n !Array.isArray(data[field.name]) &&\n 'root' in (data[field.name] as Record<string, unknown>)\n ) {\n // Lexical richText\n const editor: LexicalRichTextAdapter = field.editor as LexicalRichTextAdapter\n if (editor && typeof editor === 'object') {\n if ('features' in editor && editor.features?.length) {\n // Load lexical editor into lexical, then save it immediately\n const editorState = data[field.name] as SerializedEditorState\n\n const headlessEditor = createHeadlessEditor({\n nodes: getEnabledNodes({\n editorConfig: editor.editorConfig,\n }),\n })\n headlessEditor.update(\n () => {\n headlessEditor.setEditorState(headlessEditor.parseEditorState(editorState))\n },\n { discrete: true },\n )\n\n // get editor state\n data[field.name] = headlessEditor.getEditorState().toJSON()\n\n found++\n }\n }\n }\n }\n\n return found\n}\n"],"names":["createHeadlessEditor","fieldAffectsData","fieldHasSubFields","fieldIsArrayType","tabHasName","getEnabledNodes","upgradeDocumentFieldsRecursively","data","fields","found","payload","field","name","type","tabs","forEach","tab","Array","isArray","row","blockTypeToMatch","blockType","block","blocks","blockReferences","find","slug","editor","features","length","editorState","headlessEditor","nodes","editorConfig","update","setEditorState","parseEditorState","discrete","getEditorState","toJSON"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.ts"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\nimport type { Field, FlattenedBlock, Payload } from 'payload'\n\nimport { createHeadlessEditor } from '@lexical/headless'\nimport { fieldAffectsData, fieldHasSubFields, fieldIsArrayType, tabHasName } from 'payload/shared'\n\nimport type { LexicalRichTextAdapter } from '../../types.js'\n\nimport { getEnabledNodes } from '../../lexical/nodes/index.js'\n\ntype NestedRichTextFieldsArgs = {\n data: Record<string, unknown>\n\n fields: Field[]\n found: number\n payload: Payload\n}\n\nexport const upgradeDocumentFieldsRecursively = ({\n data,\n fields,\n found,\n payload,\n}: NestedRichTextFieldsArgs): number => {\n for (const field of fields) {\n if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {\n if (fieldAffectsData(field) && typeof data[field.name] === 'object') {\n found += upgradeDocumentFieldsRecursively({\n data: data[field.name] as Record<string, unknown>,\n fields: field.fields,\n found,\n payload,\n })\n } else {\n found += upgradeDocumentFieldsRecursively({\n data,\n fields: field.fields,\n found,\n payload,\n })\n }\n } else if (field.type === 'tabs') {\n field.tabs.forEach((tab) => {\n found += upgradeDocumentFieldsRecursively({\n data: (tabHasName(tab) ? data[tab.name] : data) as Record<string, unknown>,\n fields: tab.fields,\n found,\n payload,\n })\n })\n } else if (Array.isArray(data[field.name])) {\n if (field.type === 'blocks') {\n ;(data[field.name] as Record<string, unknown>[]).forEach((row) => {\n const blockTypeToMatch: string = row?.blockType as string\n\n const block =\n payload.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (block) {\n found += upgradeDocumentFieldsRecursively({\n data: row,\n fields: block.fields,\n found,\n payload,\n })\n }\n })\n }\n\n if (field.type === 'array') {\n ;(data[field.name] as Record<string, unknown>[]).forEach((row) => {\n found += upgradeDocumentFieldsRecursively({\n data: row,\n fields: field.fields,\n found,\n payload,\n })\n })\n }\n }\n\n if (\n field.type === 'richText' &&\n data[field.name] &&\n !Array.isArray(data[field.name]) &&\n 'root' in (data[field.name] as Record<string, unknown>)\n ) {\n // Lexical richText\n const editor: LexicalRichTextAdapter = field.editor as LexicalRichTextAdapter\n if (editor && typeof editor === 'object') {\n if ('features' in editor && editor.features?.length) {\n // Load lexical editor into lexical, then save it immediately\n const editorState = data[field.name] as SerializedEditorState\n\n const headlessEditor = createHeadlessEditor({\n nodes: getEnabledNodes({\n editorConfig: editor.editorConfig,\n }),\n })\n headlessEditor.update(\n () => {\n headlessEditor.setEditorState(headlessEditor.parseEditorState(editorState))\n },\n { discrete: true },\n )\n\n // get editor state\n data[field.name] = headlessEditor.getEditorState().toJSON()\n\n found++\n }\n }\n }\n }\n\n return found\n}\n"],"names":["createHeadlessEditor","fieldAffectsData","fieldHasSubFields","fieldIsArrayType","tabHasName","getEnabledNodes","upgradeDocumentFieldsRecursively","data","fields","found","payload","field","name","type","tabs","forEach","tab","Array","isArray","row","blockTypeToMatch","blockType","block","blocks","blockReferences","find","slug","editor","features","length","editorState","headlessEditor","nodes","editorConfig","update","setEditorState","parseEditorState","discrete","getEditorState","toJSON"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/richtext-lexical",
3
- "version": "3.68.0-internal-debug.2eb12b9",
3
+ "version": "3.68.0-internal-debug.dafc24d",
4
4
  "description": "The officially supported Lexical richtext adapter for Payload",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -374,8 +374,8 @@
374
374
  "react-error-boundary": "4.1.2",
375
375
  "ts-essentials": "10.0.3",
376
376
  "uuid": "10.0.0",
377
- "@payloadcms/translations": "3.68.0-internal-debug.2eb12b9",
378
- "@payloadcms/ui": "3.68.0-internal-debug.2eb12b9"
377
+ "@payloadcms/translations": "3.68.0-internal-debug.dafc24d",
378
+ "@payloadcms/ui": "3.68.0-internal-debug.dafc24d"
379
379
  },
380
380
  "devDependencies": {
381
381
  "@babel/cli": "7.27.2",
@@ -395,15 +395,15 @@
395
395
  "esbuild-sass-plugin": "3.3.1",
396
396
  "swc-plugin-transform-remove-imports": "4.0.4",
397
397
  "@payloadcms/eslint-config": "3.28.0",
398
- "payload": "3.68.0-internal-debug.2eb12b9"
398
+ "payload": "3.68.0-internal-debug.dafc24d"
399
399
  },
400
400
  "peerDependencies": {
401
401
  "@faceless-ui/modal": "3.0.0",
402
402
  "@faceless-ui/scroll-info": "2.0.0",
403
403
  "react": "^19.0.1 || ^19.1.2 || ^19.2.1",
404
404
  "react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1",
405
- "@payloadcms/next": "3.68.0-internal-debug.2eb12b9",
406
- "payload": "3.68.0-internal-debug.2eb12b9"
405
+ "@payloadcms/next": "3.68.0-internal-debug.dafc24d",
406
+ "payload": "3.68.0-internal-debug.dafc24d"
407
407
  },
408
408
  "engines": {
409
409
  "node": "^18.20.2 || >=20.9.0"
@@ -416,7 +416,7 @@
416
416
  "build:babel": "rm -rf dist_optimized && babel dist --out-dir dist_optimized --source-maps --extensions .ts,.js,.tsx,.jsx,.cjs,.mjs && rm -rf dist && mv dist_optimized dist",
417
417
  "build:bundle-for-analysis": "rm -rf dist esbuild && rm -rf tsconfig.tsbuildinfo && pnpm build:swc && pnpm build:babel && pnpm copyfiles && pnpm build:esbuild esbuild --no-split",
418
418
  "build:clean": "find . \\( -type d \\( -name build -o -name dist -o -name .cache \\) -o -type f -name tsconfig.tsbuildinfo \\) -exec rm -rf {} + && pnpm build",
419
- "build:debug": "rm -rf dist && rm -rf tsconfig.tsbuildinfo && pnpm build:swc:debug && pnpm copyfiles && pnpm build:types",
419
+ "build:debug": "rm -rf dist && rm -rf tsconfig.tsbuildinfo && pnpm build:swc:debug && pnpm copyfiles:debug && pnpm build:types",
420
420
  "build:esbuild": "node bundle.js",
421
421
  "build:esbuild:postprocess": "rm -rf dist/exports/client && mv dist/exports/client_optimized dist/exports/client",
422
422
  "build:reactcompiler": "rm -rf dist && rm -rf tsconfig.tsbuildinfo && pnpm build:swc && pnpm build:babel && pnpm copyfiles && pnpm build:esbuild && pnpm build:esbuild:postprocess && pnpm build:types",
@@ -426,6 +426,7 @@
426
426
  "build:without_reactcompiler": "rm -rf dist && rm -rf tsconfig.tsbuildinfo && pnpm copyfiles && pnpm build:types && pnpm build:swc && pnpm build:esbuild && pnpm build:esbuild:postproces && rm -rf dist/exports/client && mv dist/exports/client_unoptimized dist/exports/client",
427
427
  "clean": "rimraf -g {dist,*.tsbuildinfo,esbuild}",
428
428
  "copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
429
+ "copyfiles:debug": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
429
430
  "lint": "eslint .",
430
431
  "lint:fix": "eslint . --fix"
431
432
  }