@payloadcms/richtext-lexical 3.0.0-alpha.41 → 3.0.0-alpha.43

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 (550) hide show
  1. package/components.js +1 -1
  2. package/dist/cell/index.js +1 -1
  3. package/dist/cell/index.js.map +1 -0
  4. package/dist/exports/components.js +1 -1
  5. package/dist/exports/components.js.map +1 -0
  6. package/dist/field/Field.js +1 -1
  7. package/dist/field/Field.js.map +1 -0
  8. package/dist/field/features/align/feature.client.js +1 -1
  9. package/dist/field/features/align/feature.client.js.map +1 -0
  10. package/dist/field/features/align/feature.server.js +1 -1
  11. package/dist/field/features/align/feature.server.js.map +1 -0
  12. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +1 -1
  13. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js.map +1 -0
  14. package/dist/field/features/blockquote/feature.client.js +1 -1
  15. package/dist/field/features/blockquote/feature.client.js.map +1 -0
  16. package/dist/field/features/blockquote/feature.server.js +1 -1
  17. package/dist/field/features/blockquote/feature.server.js.map +1 -0
  18. package/dist/field/features/blockquote/markdownTransformer.js +1 -1
  19. package/dist/field/features/blockquote/markdownTransformer.js.map +1 -0
  20. package/dist/field/features/blocks/component/BlockContent.js +1 -1
  21. package/dist/field/features/blocks/component/BlockContent.js.map +1 -0
  22. package/dist/field/features/blocks/component/FormSavePlugin.js +1 -1
  23. package/dist/field/features/blocks/component/FormSavePlugin.js.map +1 -0
  24. package/dist/field/features/blocks/component/index.js +1 -1
  25. package/dist/field/features/blocks/component/index.js.map +1 -0
  26. package/dist/field/features/blocks/drawer/index.js +1 -1
  27. package/dist/field/features/blocks/drawer/index.js.map +1 -0
  28. package/dist/field/features/blocks/feature.client.js +1 -1
  29. package/dist/field/features/blocks/feature.client.js.map +1 -0
  30. package/dist/field/features/blocks/feature.server.js +1 -1
  31. package/dist/field/features/blocks/feature.server.js.map +1 -0
  32. package/dist/field/features/blocks/nodes/BlocksNode.js +1 -1
  33. package/dist/field/features/blocks/nodes/BlocksNode.js.map +1 -0
  34. package/dist/field/features/blocks/plugin/commands.js +1 -1
  35. package/dist/field/features/blocks/plugin/commands.js.map +1 -0
  36. package/dist/field/features/blocks/plugin/index.js +1 -1
  37. package/dist/field/features/blocks/plugin/index.js.map +1 -0
  38. package/dist/field/features/blocks/populationPromise.js +1 -1
  39. package/dist/field/features/blocks/populationPromise.js.map +1 -0
  40. package/dist/field/features/blocks/validate.js +1 -1
  41. package/dist/field/features/blocks/validate.js.map +1 -0
  42. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +1 -1
  43. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js.map +1 -0
  44. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +1 -1
  45. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js.map +1 -0
  46. package/dist/field/features/converters/html/converter/converters/linebreak.js +1 -1
  47. package/dist/field/features/converters/html/converter/converters/linebreak.js.map +1 -0
  48. package/dist/field/features/converters/html/converter/converters/paragraph.js +1 -1
  49. package/dist/field/features/converters/html/converter/converters/paragraph.js.map +1 -0
  50. package/dist/field/features/converters/html/converter/converters/text.js +1 -1
  51. package/dist/field/features/converters/html/converter/converters/text.js.map +1 -0
  52. package/dist/field/features/converters/html/converter/defaultConverters.js +1 -1
  53. package/dist/field/features/converters/html/converter/defaultConverters.js.map +1 -0
  54. package/dist/field/features/converters/html/converter/index.js +1 -1
  55. package/dist/field/features/converters/html/converter/index.js.map +1 -0
  56. package/dist/field/features/converters/html/converter/types.js +1 -1
  57. package/dist/field/features/converters/html/converter/types.js.map +1 -0
  58. package/dist/field/features/converters/html/feature.server.js +1 -1
  59. package/dist/field/features/converters/html/feature.server.js.map +1 -0
  60. package/dist/field/features/converters/html/field/index.js +1 -1
  61. package/dist/field/features/converters/html/field/index.js.map +1 -0
  62. package/dist/field/features/createClientComponent.js +1 -1
  63. package/dist/field/features/createClientComponent.js.map +1 -0
  64. package/dist/field/features/createFeaturePropComponent.js +1 -1
  65. package/dist/field/features/createFeaturePropComponent.js.map +1 -0
  66. package/dist/field/features/debug/testrecorder/feature.client.js +1 -1
  67. package/dist/field/features/debug/testrecorder/feature.client.js.map +1 -0
  68. package/dist/field/features/debug/testrecorder/feature.server.js +1 -1
  69. package/dist/field/features/debug/testrecorder/feature.server.js.map +1 -0
  70. package/dist/field/features/debug/testrecorder/plugin/index.js +1 -1
  71. package/dist/field/features/debug/testrecorder/plugin/index.js.map +1 -0
  72. package/dist/field/features/debug/treeview/feature.client.js +1 -1
  73. package/dist/field/features/debug/treeview/feature.client.js.map +1 -0
  74. package/dist/field/features/debug/treeview/feature.server.js +1 -1
  75. package/dist/field/features/debug/treeview/feature.server.js.map +1 -0
  76. package/dist/field/features/debug/treeview/plugin/index.js +1 -1
  77. package/dist/field/features/debug/treeview/plugin/index.js.map +1 -0
  78. package/dist/field/features/format/bold/feature.client.js +1 -1
  79. package/dist/field/features/format/bold/feature.client.js.map +1 -0
  80. package/dist/field/features/format/bold/feature.server.js +1 -1
  81. package/dist/field/features/format/bold/feature.server.js.map +1 -0
  82. package/dist/field/features/format/bold/markdownTransformers.js +1 -1
  83. package/dist/field/features/format/bold/markdownTransformers.js.map +1 -0
  84. package/dist/field/features/format/common/floatingSelectToolbarSection.js +1 -1
  85. package/dist/field/features/format/common/floatingSelectToolbarSection.js.map +1 -0
  86. package/dist/field/features/format/inlinecode/feature.client.js +1 -1
  87. package/dist/field/features/format/inlinecode/feature.client.js.map +1 -0
  88. package/dist/field/features/format/inlinecode/feature.server.js +1 -1
  89. package/dist/field/features/format/inlinecode/feature.server.js.map +1 -0
  90. package/dist/field/features/format/inlinecode/markdownTransformers.js +1 -1
  91. package/dist/field/features/format/inlinecode/markdownTransformers.js.map +1 -0
  92. package/dist/field/features/format/italic/feature.client.js +1 -1
  93. package/dist/field/features/format/italic/feature.client.js.map +1 -0
  94. package/dist/field/features/format/italic/feature.server.js +1 -1
  95. package/dist/field/features/format/italic/feature.server.js.map +1 -0
  96. package/dist/field/features/format/italic/markdownTransformers.js +1 -1
  97. package/dist/field/features/format/italic/markdownTransformers.js.map +1 -0
  98. package/dist/field/features/format/strikethrough/feature.client.js +1 -1
  99. package/dist/field/features/format/strikethrough/feature.client.js.map +1 -0
  100. package/dist/field/features/format/strikethrough/feature.server.js +1 -1
  101. package/dist/field/features/format/strikethrough/feature.server.js.map +1 -0
  102. package/dist/field/features/format/strikethrough/markdownTransformers.js +1 -1
  103. package/dist/field/features/format/strikethrough/markdownTransformers.js.map +1 -0
  104. package/dist/field/features/format/subscript/feature.client.js +1 -1
  105. package/dist/field/features/format/subscript/feature.client.js.map +1 -0
  106. package/dist/field/features/format/subscript/feature.server.js +1 -1
  107. package/dist/field/features/format/subscript/feature.server.js.map +1 -0
  108. package/dist/field/features/format/superscript/feature.client.js +1 -1
  109. package/dist/field/features/format/superscript/feature.client.js.map +1 -0
  110. package/dist/field/features/format/superscript/feature.server.js +1 -1
  111. package/dist/field/features/format/superscript/feature.server.js.map +1 -0
  112. package/dist/field/features/format/underline/feature.client.js +1 -1
  113. package/dist/field/features/format/underline/feature.client.js.map +1 -0
  114. package/dist/field/features/format/underline/feature.server.js +1 -1
  115. package/dist/field/features/format/underline/feature.server.js.map +1 -0
  116. package/dist/field/features/heading/feature.client.js +1 -1
  117. package/dist/field/features/heading/feature.client.js.map +1 -0
  118. package/dist/field/features/heading/feature.server.js +1 -1
  119. package/dist/field/features/heading/feature.server.js.map +1 -0
  120. package/dist/field/features/heading/markdownTransformer.js +1 -1
  121. package/dist/field/features/heading/markdownTransformer.js.map +1 -0
  122. package/dist/field/features/indent/feature.client.js +1 -1
  123. package/dist/field/features/indent/feature.client.js.map +1 -0
  124. package/dist/field/features/indent/feature.server.js +1 -1
  125. package/dist/field/features/indent/feature.server.js.map +1 -0
  126. package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +1 -1
  127. package/dist/field/features/indent/floatingSelectToolbarIndentSection.js.map +1 -0
  128. package/dist/field/features/link/drawer/baseFields.js +1 -1
  129. package/dist/field/features/link/drawer/baseFields.js.map +1 -0
  130. package/dist/field/features/link/drawer/index.js +1 -1
  131. package/dist/field/features/link/drawer/index.js.map +1 -0
  132. package/dist/field/features/link/drawer/types.js +1 -1
  133. package/dist/field/features/link/drawer/types.js.map +1 -0
  134. package/dist/field/features/link/feature.client.js +1 -1
  135. package/dist/field/features/link/feature.client.js.map +1 -0
  136. package/dist/field/features/link/feature.server.js +1 -1
  137. package/dist/field/features/link/feature.server.js.map +1 -0
  138. package/dist/field/features/link/nodes/AutoLinkNode.js +1 -1
  139. package/dist/field/features/link/nodes/AutoLinkNode.js.map +1 -0
  140. package/dist/field/features/link/nodes/LinkNode.js +1 -1
  141. package/dist/field/features/link/nodes/LinkNode.js.map +1 -0
  142. package/dist/field/features/link/nodes/types.js +1 -1
  143. package/dist/field/features/link/nodes/types.js.map +1 -0
  144. package/dist/field/features/link/plugins/autoLink/index.js +1 -1
  145. package/dist/field/features/link/plugins/autoLink/index.js.map +1 -0
  146. package/dist/field/features/link/plugins/clickableLink/index.js +1 -1
  147. package/dist/field/features/link/plugins/clickableLink/index.js.map +1 -0
  148. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js +1 -1
  149. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js.map +1 -0
  150. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js +1 -1
  151. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -0
  152. package/dist/field/features/link/plugins/floatingLinkEditor/index.js +1 -1
  153. package/dist/field/features/link/plugins/floatingLinkEditor/index.js.map +1 -0
  154. package/dist/field/features/link/plugins/floatingLinkEditor/types.js +1 -1
  155. package/dist/field/features/link/plugins/floatingLinkEditor/types.js.map +1 -0
  156. package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js +1 -1
  157. package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js.map +1 -0
  158. package/dist/field/features/link/plugins/link/index.js +1 -1
  159. package/dist/field/features/link/plugins/link/index.js.map +1 -0
  160. package/dist/field/features/link/populationPromise.js +1 -1
  161. package/dist/field/features/link/populationPromise.js.map +1 -0
  162. package/dist/field/features/lists/checklist/feature.client.js +1 -1
  163. package/dist/field/features/lists/checklist/feature.client.js.map +1 -0
  164. package/dist/field/features/lists/checklist/feature.server.js +1 -1
  165. package/dist/field/features/lists/checklist/feature.server.js.map +1 -0
  166. package/dist/field/features/lists/checklist/markdownTransformers.js +1 -1
  167. package/dist/field/features/lists/checklist/markdownTransformers.js.map +1 -0
  168. package/dist/field/features/lists/checklist/plugin/index.js +1 -1
  169. package/dist/field/features/lists/checklist/plugin/index.js.map +1 -0
  170. package/dist/field/features/lists/common/markdown.js +1 -1
  171. package/dist/field/features/lists/common/markdown.js.map +1 -0
  172. package/dist/field/features/lists/htmlConverter.js +1 -1
  173. package/dist/field/features/lists/htmlConverter.js.map +1 -0
  174. package/dist/field/features/lists/orderedlist/feature.client.js +1 -1
  175. package/dist/field/features/lists/orderedlist/feature.client.js.map +1 -0
  176. package/dist/field/features/lists/orderedlist/feature.server.js +1 -1
  177. package/dist/field/features/lists/orderedlist/feature.server.js.map +1 -0
  178. package/dist/field/features/lists/orderedlist/markdownTransformer.js +1 -1
  179. package/dist/field/features/lists/orderedlist/markdownTransformer.js.map +1 -0
  180. package/dist/field/features/lists/plugin/index.js +1 -1
  181. package/dist/field/features/lists/plugin/index.js.map +1 -0
  182. package/dist/field/features/lists/unorderedlist/feature.client.js +1 -1
  183. package/dist/field/features/lists/unorderedlist/feature.client.js.map +1 -0
  184. package/dist/field/features/lists/unorderedlist/feature.server.js +1 -1
  185. package/dist/field/features/lists/unorderedlist/feature.server.js.map +1 -0
  186. package/dist/field/features/lists/unorderedlist/markdownTransformer.js +1 -1
  187. package/dist/field/features/lists/unorderedlist/markdownTransformer.js.map +1 -0
  188. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js +1 -1
  189. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js.map +1 -0
  190. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +1 -1
  191. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js.map +1 -0
  192. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js +1 -1
  193. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js.map +1 -0
  194. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js +1 -1
  195. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js.map +1 -0
  196. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +1 -1
  197. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js.map +1 -0
  198. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js +1 -1
  199. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js.map +1 -0
  200. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js +1 -1
  201. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js.map +1 -0
  202. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +1 -1
  203. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js.map +1 -0
  204. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js +1 -1
  205. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js.map +1 -0
  206. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js +1 -1
  207. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js.map +1 -0
  208. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +1 -1
  209. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js.map +1 -0
  210. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js +1 -1
  211. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js.map +1 -0
  212. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js +1 -1
  213. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js.map +1 -0
  214. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +1 -1
  215. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js.map +1 -0
  216. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js +1 -1
  217. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js.map +1 -0
  218. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js +1 -1
  219. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js.map +1 -0
  220. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +1 -1
  221. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js.map +1 -0
  222. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js +1 -1
  223. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js.map +1 -0
  224. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js +1 -1
  225. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js.map +1 -0
  226. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +1 -1
  227. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +1 -0
  228. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js +1 -1
  229. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js.map +1 -0
  230. package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +1 -1
  231. package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js.map +1 -0
  232. package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.js +1 -1
  233. package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -0
  234. package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.js +1 -1
  235. package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.js.map +1 -0
  236. package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.js +1 -1
  237. package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.js.map +1 -0
  238. package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.js +1 -1
  239. package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.js.map +1 -0
  240. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +1 -1
  241. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +1 -0
  242. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +1 -1
  243. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -0
  244. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js +1 -1
  245. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js.map +1 -0
  246. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +1 -1
  247. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -0
  248. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js +1 -1
  249. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js.map +1 -0
  250. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.js +1 -1
  251. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.js.map +1 -0
  252. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.js +1 -1
  253. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -0
  254. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.js +1 -1
  255. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.js.map +1 -0
  256. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.js +1 -1
  257. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.js.map +1 -0
  258. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.js +1 -1
  259. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.js.map +1 -0
  260. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.js +1 -1
  261. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.js.map +1 -0
  262. package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.js +1 -1
  263. package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.js.map +1 -0
  264. package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.js +1 -1
  265. package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -0
  266. package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.js +1 -1
  267. package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.js.map +1 -0
  268. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.js +1 -1
  269. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.js.map +1 -0
  270. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.js +1 -1
  271. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -0
  272. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.js +1 -1
  273. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.js.map +1 -0
  274. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.js +1 -1
  275. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.js.map +1 -0
  276. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +1 -1
  277. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -0
  278. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.js +1 -1
  279. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.js.map +1 -0
  280. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.js +1 -1
  281. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.js.map +1 -0
  282. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js +1 -1
  283. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +1 -0
  284. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.js +1 -1
  285. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.js.map +1 -0
  286. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.js +1 -1
  287. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.js.map +1 -0
  288. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.js +1 -1
  289. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -0
  290. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.js +1 -1
  291. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.js.map +1 -0
  292. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.js +1 -1
  293. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.js.map +1 -0
  294. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +1 -1
  295. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -0
  296. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js +1 -1
  297. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js.map +1 -0
  298. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.js +1 -1
  299. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.js.map +1 -0
  300. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js +1 -1
  301. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +1 -0
  302. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.js +1 -1
  303. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.js.map +1 -0
  304. package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.js +1 -1
  305. package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.js.map +1 -0
  306. package/dist/field/features/migrations/slateToLexical/converter/index.js +1 -1
  307. package/dist/field/features/migrations/slateToLexical/converter/index.js.map +1 -0
  308. package/dist/field/features/migrations/slateToLexical/converter/types.js +1 -1
  309. package/dist/field/features/migrations/slateToLexical/converter/types.js.map +1 -0
  310. package/dist/field/features/migrations/slateToLexical/feature.client.js +1 -1
  311. package/dist/field/features/migrations/slateToLexical/feature.client.js.map +1 -0
  312. package/dist/field/features/migrations/slateToLexical/feature.server.js +1 -1
  313. package/dist/field/features/migrations/slateToLexical/feature.server.js.map +1 -0
  314. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +1 -1
  315. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +1 -0
  316. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +1 -1
  317. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -0
  318. package/dist/field/features/paragraph/feature.client.js +1 -1
  319. package/dist/field/features/paragraph/feature.client.js.map +1 -0
  320. package/dist/field/features/paragraph/feature.server.js +1 -1
  321. package/dist/field/features/paragraph/feature.server.js.map +1 -0
  322. package/dist/field/features/relationship/drawer/commands.js +1 -1
  323. package/dist/field/features/relationship/drawer/commands.js.map +1 -0
  324. package/dist/field/features/relationship/drawer/index.js +1 -1
  325. package/dist/field/features/relationship/drawer/index.js.map +1 -0
  326. package/dist/field/features/relationship/feature.client.js +1 -1
  327. package/dist/field/features/relationship/feature.client.js.map +1 -0
  328. package/dist/field/features/relationship/feature.server.js +1 -1
  329. package/dist/field/features/relationship/feature.server.js.map +1 -0
  330. package/dist/field/features/relationship/nodes/RelationshipNode.js +1 -1
  331. package/dist/field/features/relationship/nodes/RelationshipNode.js.map +1 -0
  332. package/dist/field/features/relationship/nodes/components/RelationshipComponent.js +1 -1
  333. package/dist/field/features/relationship/nodes/components/RelationshipComponent.js.map +1 -0
  334. package/dist/field/features/relationship/plugins/index.js +1 -1
  335. package/dist/field/features/relationship/plugins/index.js.map +1 -0
  336. package/dist/field/features/relationship/populationPromise.js +1 -1
  337. package/dist/field/features/relationship/populationPromise.js.map +1 -0
  338. package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.js +1 -1
  339. package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.js.map +1 -0
  340. package/dist/field/features/types.js +1 -1
  341. package/dist/field/features/types.js.map +1 -0
  342. package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js +1 -1
  343. package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js.map +1 -0
  344. package/dist/field/features/upload/component/index.js +1 -1
  345. package/dist/field/features/upload/component/index.js.map +1 -0
  346. package/dist/field/features/upload/drawer/commands.js +1 -1
  347. package/dist/field/features/upload/drawer/commands.js.map +1 -0
  348. package/dist/field/features/upload/drawer/index.js +1 -1
  349. package/dist/field/features/upload/drawer/index.js.map +1 -0
  350. package/dist/field/features/upload/feature.client.js +1 -1
  351. package/dist/field/features/upload/feature.client.js.map +1 -0
  352. package/dist/field/features/upload/feature.server.js +1 -1
  353. package/dist/field/features/upload/feature.server.js.map +1 -0
  354. package/dist/field/features/upload/nodes/UploadNode.js +1 -1
  355. package/dist/field/features/upload/nodes/UploadNode.js.map +1 -0
  356. package/dist/field/features/upload/plugin/index.js +1 -1
  357. package/dist/field/features/upload/plugin/index.js.map +1 -0
  358. package/dist/field/features/upload/populationPromise.js +1 -1
  359. package/dist/field/features/upload/populationPromise.js.map +1 -0
  360. package/dist/field/features/upload/validate.js +1 -1
  361. package/dist/field/features/upload/validate.js.map +1 -0
  362. package/dist/field/index.js +1 -1
  363. package/dist/field/index.js.map +1 -0
  364. package/dist/field/lexical/EditorPlugin.js +1 -1
  365. package/dist/field/lexical/EditorPlugin.js.map +1 -0
  366. package/dist/field/lexical/LexicalEditor.js +1 -1
  367. package/dist/field/lexical/LexicalEditor.js.map +1 -0
  368. package/dist/field/lexical/LexicalProvider.js +1 -1
  369. package/dist/field/lexical/LexicalProvider.js.map +1 -0
  370. package/dist/field/lexical/config/client/EditorConfigProvider.js +1 -1
  371. package/dist/field/lexical/config/client/EditorConfigProvider.js.map +1 -0
  372. package/dist/field/lexical/config/client/default.js +1 -1
  373. package/dist/field/lexical/config/client/default.js.map +1 -0
  374. package/dist/field/lexical/config/client/loader.js +1 -1
  375. package/dist/field/lexical/config/client/loader.js.map +1 -0
  376. package/dist/field/lexical/config/client/sanitize.js +1 -1
  377. package/dist/field/lexical/config/client/sanitize.js.map +1 -0
  378. package/dist/field/lexical/config/server/default.js +1 -1
  379. package/dist/field/lexical/config/server/default.js.map +1 -0
  380. package/dist/field/lexical/config/server/loader.js +1 -1
  381. package/dist/field/lexical/config/server/loader.js.map +1 -0
  382. package/dist/field/lexical/config/server/sanitize.js +1 -1
  383. package/dist/field/lexical/config/server/sanitize.js.map +1 -0
  384. package/dist/field/lexical/config/types.js +1 -1
  385. package/dist/field/lexical/config/types.js.map +1 -0
  386. package/dist/field/lexical/nodes/index.js +1 -1
  387. package/dist/field/lexical/nodes/index.js.map +1 -0
  388. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +1 -1
  389. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js.map +1 -0
  390. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +1 -1
  391. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js.map +1 -0
  392. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +1 -1
  393. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js.map +1 -0
  394. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +1 -1
  395. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js.map +1 -0
  396. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js +1 -1
  397. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js.map +1 -0
  398. package/dist/field/lexical/plugins/MarkdownShortcut/index.js +1 -1
  399. package/dist/field/lexical/plugins/MarkdownShortcut/index.js.map +1 -0
  400. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +1 -1
  401. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -0
  402. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +1 -1
  403. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -0
  404. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +1 -1
  405. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -0
  406. package/dist/field/lexical/plugins/SlashMenu/index.js +1 -1
  407. package/dist/field/lexical/plugins/SlashMenu/index.js.map +1 -0
  408. package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +1 -1
  409. package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js.map +1 -0
  410. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +1 -1
  411. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -0
  412. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +1 -1
  413. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +1 -0
  414. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +1 -1
  415. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js.map +1 -0
  416. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js +1 -1
  417. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js.map +1 -0
  418. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +1 -1
  419. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js.map +1 -0
  420. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +1 -1
  421. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -0
  422. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +1 -1
  423. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -0
  424. package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.js +1 -1
  425. package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.js.map +1 -0
  426. package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +1 -1
  427. package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js.map +1 -0
  428. package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.js +1 -1
  429. package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.js.map +1 -0
  430. package/dist/field/lexical/plugins/handles/utils/setHandlePosition.js +1 -1
  431. package/dist/field/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -0
  432. package/dist/field/lexical/theme/EditorTheme.js +1 -1
  433. package/dist/field/lexical/theme/EditorTheme.js.map +1 -0
  434. package/dist/field/lexical/ui/ContentEditable.js +1 -1
  435. package/dist/field/lexical/ui/ContentEditable.js.map +1 -0
  436. package/dist/field/lexical/ui/icons/AI/index.js +1 -1
  437. package/dist/field/lexical/ui/icons/AI/index.js.map +1 -0
  438. package/dist/field/lexical/ui/icons/AlignCenter/index.js +1 -1
  439. package/dist/field/lexical/ui/icons/AlignCenter/index.js.map +1 -0
  440. package/dist/field/lexical/ui/icons/AlignJustify/index.js +1 -1
  441. package/dist/field/lexical/ui/icons/AlignJustify/index.js.map +1 -0
  442. package/dist/field/lexical/ui/icons/AlignLeft/index.js +1 -1
  443. package/dist/field/lexical/ui/icons/AlignLeft/index.js.map +1 -0
  444. package/dist/field/lexical/ui/icons/AlignRight/index.js +1 -1
  445. package/dist/field/lexical/ui/icons/AlignRight/index.js.map +1 -0
  446. package/dist/field/lexical/ui/icons/Block/index.js +1 -1
  447. package/dist/field/lexical/ui/icons/Block/index.js.map +1 -0
  448. package/dist/field/lexical/ui/icons/Blockquote/index.js +1 -1
  449. package/dist/field/lexical/ui/icons/Blockquote/index.js.map +1 -0
  450. package/dist/field/lexical/ui/icons/Bold/index.js +1 -1
  451. package/dist/field/lexical/ui/icons/Bold/index.js.map +1 -0
  452. package/dist/field/lexical/ui/icons/Checklist/index.js +1 -1
  453. package/dist/field/lexical/ui/icons/Checklist/index.js.map +1 -0
  454. package/dist/field/lexical/ui/icons/Code/index.js +1 -1
  455. package/dist/field/lexical/ui/icons/Code/index.js.map +1 -0
  456. package/dist/field/lexical/ui/icons/CodeBlock/index.js +1 -1
  457. package/dist/field/lexical/ui/icons/CodeBlock/index.js.map +1 -0
  458. package/dist/field/lexical/ui/icons/H1/index.js +1 -1
  459. package/dist/field/lexical/ui/icons/H1/index.js.map +1 -0
  460. package/dist/field/lexical/ui/icons/H2/index.js +1 -1
  461. package/dist/field/lexical/ui/icons/H2/index.js.map +1 -0
  462. package/dist/field/lexical/ui/icons/H3/index.js +1 -1
  463. package/dist/field/lexical/ui/icons/H3/index.js.map +1 -0
  464. package/dist/field/lexical/ui/icons/H4/index.js +1 -1
  465. package/dist/field/lexical/ui/icons/H4/index.js.map +1 -0
  466. package/dist/field/lexical/ui/icons/H5/index.js +1 -1
  467. package/dist/field/lexical/ui/icons/H5/index.js.map +1 -0
  468. package/dist/field/lexical/ui/icons/H6/index.js +1 -1
  469. package/dist/field/lexical/ui/icons/H6/index.js.map +1 -0
  470. package/dist/field/lexical/ui/icons/IndentDecrease/index.js +1 -1
  471. package/dist/field/lexical/ui/icons/IndentDecrease/index.js.map +1 -0
  472. package/dist/field/lexical/ui/icons/IndentIncrease/index.js +1 -1
  473. package/dist/field/lexical/ui/icons/IndentIncrease/index.js.map +1 -0
  474. package/dist/field/lexical/ui/icons/Italic/index.js +1 -1
  475. package/dist/field/lexical/ui/icons/Italic/index.js.map +1 -0
  476. package/dist/field/lexical/ui/icons/Link/index.js +1 -1
  477. package/dist/field/lexical/ui/icons/Link/index.js.map +1 -0
  478. package/dist/field/lexical/ui/icons/OrderedList/index.js +1 -1
  479. package/dist/field/lexical/ui/icons/OrderedList/index.js.map +1 -0
  480. package/dist/field/lexical/ui/icons/Relationship/index.js +1 -1
  481. package/dist/field/lexical/ui/icons/Relationship/index.js.map +1 -0
  482. package/dist/field/lexical/ui/icons/Strikethrough/index.js +1 -1
  483. package/dist/field/lexical/ui/icons/Strikethrough/index.js.map +1 -0
  484. package/dist/field/lexical/ui/icons/Subscript/index.js +1 -1
  485. package/dist/field/lexical/ui/icons/Subscript/index.js.map +1 -0
  486. package/dist/field/lexical/ui/icons/Superscript/index.js +1 -1
  487. package/dist/field/lexical/ui/icons/Superscript/index.js.map +1 -0
  488. package/dist/field/lexical/ui/icons/Text/index.js +1 -1
  489. package/dist/field/lexical/ui/icons/Text/index.js.map +1 -0
  490. package/dist/field/lexical/ui/icons/Underline/index.js +1 -1
  491. package/dist/field/lexical/ui/icons/Underline/index.js.map +1 -0
  492. package/dist/field/lexical/ui/icons/UnorderedList/index.js +1 -1
  493. package/dist/field/lexical/ui/icons/UnorderedList/index.js.map +1 -0
  494. package/dist/field/lexical/ui/icons/Upload/index.js +1 -1
  495. package/dist/field/lexical/ui/icons/Upload/index.js.map +1 -0
  496. package/dist/field/lexical/utils/canUseDOM.js +1 -1
  497. package/dist/field/lexical/utils/canUseDOM.js.map +1 -0
  498. package/dist/field/lexical/utils/cloneDeep.js +1 -1
  499. package/dist/field/lexical/utils/cloneDeep.js.map +1 -0
  500. package/dist/field/lexical/utils/environment.js +1 -1
  501. package/dist/field/lexical/utils/environment.js.map +1 -0
  502. package/dist/field/lexical/utils/getDOMRangeRect.js +1 -1
  503. package/dist/field/lexical/utils/getDOMRangeRect.js.map +1 -0
  504. package/dist/field/lexical/utils/getSelectedNode.js +1 -1
  505. package/dist/field/lexical/utils/getSelectedNode.js.map +1 -0
  506. package/dist/field/lexical/utils/guard.js +1 -1
  507. package/dist/field/lexical/utils/guard.js.map +1 -0
  508. package/dist/field/lexical/utils/invariant.js +1 -1
  509. package/dist/field/lexical/utils/invariant.js.map +1 -0
  510. package/dist/field/lexical/utils/joinClasses.js +1 -1
  511. package/dist/field/lexical/utils/joinClasses.js.map +1 -0
  512. package/dist/field/lexical/utils/markdown/createBlockNode.js +1 -1
  513. package/dist/field/lexical/utils/markdown/createBlockNode.js.map +1 -0
  514. package/dist/field/lexical/utils/nodeFormat.js +1 -1
  515. package/dist/field/lexical/utils/nodeFormat.js.map +1 -0
  516. package/dist/field/lexical/utils/point.js +1 -1
  517. package/dist/field/lexical/utils/point.js.map +1 -0
  518. package/dist/field/lexical/utils/rect.js +1 -1
  519. package/dist/field/lexical/utils/rect.js.map +1 -0
  520. package/dist/field/lexical/utils/setFloatingElemPosition.js +1 -1
  521. package/dist/field/lexical/utils/setFloatingElemPosition.js.map +1 -0
  522. package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.js +1 -1
  523. package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.js.map +1 -0
  524. package/dist/field/lexical/utils/swipe.js +1 -1
  525. package/dist/field/lexical/utils/swipe.js.map +1 -0
  526. package/dist/field/lexical/utils/url.js +1 -1
  527. package/dist/field/lexical/utils/url.js.map +1 -0
  528. package/dist/generateComponentMap.js +1 -1
  529. package/dist/generateComponentMap.js.map +1 -0
  530. package/dist/generateSchemaMap.js +1 -1
  531. package/dist/generateSchemaMap.js.map +1 -0
  532. package/dist/index.js +1 -1
  533. package/dist/index.js.map +1 -0
  534. package/dist/populate/defaultValue.js +1 -1
  535. package/dist/populate/defaultValue.js.map +1 -0
  536. package/dist/populate/populate.js +1 -1
  537. package/dist/populate/populate.js.map +1 -0
  538. package/dist/populate/recurseNestedFields.js +1 -1
  539. package/dist/populate/recurseNestedFields.js.map +1 -0
  540. package/dist/populate/richTextRelationshipPromise.js +1 -1
  541. package/dist/populate/richTextRelationshipPromise.js.map +1 -0
  542. package/dist/types.js +1 -1
  543. package/dist/types.js.map +1 -0
  544. package/dist/useLexicalFeature.js +1 -1
  545. package/dist/useLexicalFeature.js.map +1 -0
  546. package/dist/validate/index.js +1 -1
  547. package/dist/validate/index.js.map +1 -0
  548. package/dist/validate/validateNodes.js +1 -1
  549. package/dist/validate/validateNodes.js.map +1 -0
  550. package/package.json +7 -7
@@ -89,4 +89,4 @@ export function $isBlockNode(node) {
89
89
  return node instanceof BlockNode;
90
90
  }
91
91
 
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9ibG9ja3Mvbm9kZXMvQmxvY2tzTm9kZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTZXJpYWxpemVkRGVjb3JhdG9yQmxvY2tOb2RlIH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbERlY29yYXRvckJsb2NrTm9kZS5qcydcbmltcG9ydCB0eXBlIHtcbiAgRE9NQ29udmVyc2lvbk1hcCxcbiAgRE9NRXhwb3J0T3V0cHV0LFxuICBFZGl0b3JDb25maWcsXG4gIEVsZW1lbnRGb3JtYXRUeXBlLFxuICBMZXhpY2FsRWRpdG9yLFxuICBMZXhpY2FsTm9kZSxcbiAgTm9kZUtleSxcbiAgU3ByZWFkLFxufSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgbGV4aWNhbERlY29yYXRvckJsb2NrTm9kZUltcG9ydCBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsRGVjb3JhdG9yQmxvY2tOb2RlLmpzJ1xuY29uc3QgeyBEZWNvcmF0b3JCbG9ja05vZGUgfSA9IGxleGljYWxEZWNvcmF0b3JCbG9ja05vZGVJbXBvcnRcbmltcG9ydCBPYmplY3RJRCBmcm9tICdic29uLW9iamVjdGlkJ1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgdHlwZSBCbG9ja0ZpZWxkcyA9IHtcbiAgLyoqIEJsb2NrIGZvcm0gZGF0YSAqL1xuICBba2V5OiBzdHJpbmddOiBhbnlcbiAgYmxvY2tOYW1lOiBzdHJpbmdcbiAgYmxvY2tUeXBlOiBzdHJpbmdcbiAgaWQ6IHN0cmluZ1xufVxuXG5jb25zdCBCbG9ja0NvbXBvbmVudCA9IFJlYWN0LmxhenkoKCkgPT5cbiAgaW1wb3J0KCcuLi9jb21wb25lbnQvaW5kZXguanMnKS50aGVuKChtb2R1bGUpID0+ICh7XG4gICAgZGVmYXVsdDogbW9kdWxlLkJsb2NrQ29tcG9uZW50LFxuICB9KSksXG4pXG5cbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWRCbG9ja05vZGUgPSBTcHJlYWQ8XG4gIHtcbiAgICBmaWVsZHM6IEJsb2NrRmllbGRzXG4gIH0sXG4gIFNlcmlhbGl6ZWREZWNvcmF0b3JCbG9ja05vZGVcbj5cblxuZXhwb3J0IGNsYXNzIEJsb2NrTm9kZSBleHRlbmRzIERlY29yYXRvckJsb2NrTm9kZSB7XG4gIF9fZmllbGRzOiBCbG9ja0ZpZWxkc1xuXG4gIGNvbnN0cnVjdG9yKHtcbiAgICBmaWVsZHMsXG4gICAgZm9ybWF0LFxuICAgIGtleSxcbiAgfToge1xuICAgIGZpZWxkczogQmxvY2tGaWVsZHNcbiAgICBmb3JtYXQ/OiBFbGVtZW50Rm9ybWF0VHlwZVxuICAgIGtleT86IE5vZGVLZXlcbiAgfSkge1xuICAgIHN1cGVyKGZvcm1hdCwga2V5KVxuICAgIHRoaXMuX19maWVsZHMgPSBmaWVsZHNcbiAgfVxuXG4gIHN0YXRpYyBjbG9uZShub2RlOiBCbG9ja05vZGUpOiBCbG9ja05vZGUge1xuICAgIHJldHVybiBuZXcgQmxvY2tOb2RlKHtcbiAgICAgIGZpZWxkczogbm9kZS5fX2ZpZWxkcyxcbiAgICAgIGZvcm1hdDogbm9kZS5fX2Zvcm1hdCxcbiAgICAgIGtleTogbm9kZS5fX2tleSxcbiAgICB9KVxuICB9XG5cbiAgc3RhdGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2Jsb2NrJ1xuICB9XG5cbiAgc3RhdGljIGltcG9ydERPTSgpOiBET01Db252ZXJzaW9uTWFwPEhUTUxEaXZFbGVtZW50PiB8IG51bGwge1xuICAgIHJldHVybiB7fVxuICB9XG5cbiAgc3RhdGljIGltcG9ydEpTT04oc2VyaWFsaXplZE5vZGU6IFNlcmlhbGl6ZWRCbG9ja05vZGUpOiBCbG9ja05vZGUge1xuICAgIGlmIChzZXJpYWxpemVkTm9kZS52ZXJzaW9uID09PSAxKSB7XG4gICAgICAvLyBDb252ZXJ0ICh2ZXJzaW9uIDEgaGFkIHRoZSBmaWVsZHMgd3JhcHBlZCBpbiBhbm90aGVyLCB1bm5lY2Vzc2FyeSBkYXRhIHByb3BlcnR5KVxuICAgICAgc2VyaWFsaXplZE5vZGUgPSB7XG4gICAgICAgIC4uLnNlcmlhbGl6ZWROb2RlLFxuICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICAuLi4oc2VyaWFsaXplZE5vZGUgYXMgYW55KS5maWVsZHMuZGF0YSxcbiAgICAgICAgfSxcbiAgICAgICAgdmVyc2lvbjogMixcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgbm9kZSA9ICRjcmVhdGVCbG9ja05vZGUoc2VyaWFsaXplZE5vZGUuZmllbGRzKVxuICAgIG5vZGUuc2V0Rm9ybWF0KHNlcmlhbGl6ZWROb2RlLmZvcm1hdClcbiAgICByZXR1cm4gbm9kZVxuICB9XG5cbiAgc3RhdGljIGlzSW5saW5lKCk6IGZhbHNlIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBkZWNvcmF0ZShlZGl0b3I6IExleGljYWxFZGl0b3IsIGNvbmZpZzogRWRpdG9yQ29uZmlnKTogSlNYLkVsZW1lbnQge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICByZXR1cm4gPEJsb2NrQ29tcG9uZW50IGZvcm1EYXRhPXt0aGlzLmdldEZpZWxkcygpfSBub2RlS2V5PXt0aGlzLmdldEtleSgpfSAvPlxuICB9XG5cbiAgZXhwb3J0RE9NKCk6IERPTUV4cG9ydE91dHB1dCB7XG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG5cbiAgICBjb25zdCB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGhpcy5nZXRUZXh0Q29udGVudCgpKVxuICAgIGVsZW1lbnQuYXBwZW5kKHRleHQpXG4gICAgcmV0dXJuIHsgZWxlbWVudCB9XG4gIH1cblxuICBleHBvcnRKU09OKCk6IFNlcmlhbGl6ZWRCbG9ja05vZGUge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdXBlci5leHBvcnRKU09OKCksXG4gICAgICB0eXBlOiB0aGlzLmdldFR5cGUoKSxcbiAgICAgIGZpZWxkczogdGhpcy5nZXRGaWVsZHMoKSxcbiAgICAgIHZlcnNpb246IDIsXG4gICAgfVxuICB9XG5cbiAgZ2V0RmllbGRzKCk6IEJsb2NrRmllbGRzIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMYXRlc3QoKS5fX2ZpZWxkc1xuICB9XG5cbiAgZ2V0VGV4dENvbnRlbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYEJsb2NrIEZpZWxkYFxuICB9XG5cbiAgc2V0RmllbGRzKGZpZWxkczogQmxvY2tGaWVsZHMpOiB2b2lkIHtcbiAgICBjb25zdCBmaWVsZHNDb3B5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShmaWVsZHMpKSBhcyBCbG9ja0ZpZWxkc1xuXG4gICAgY29uc3Qgd3JpdGFibGUgPSB0aGlzLmdldFdyaXRhYmxlKClcbiAgICB3cml0YWJsZS5fX2ZpZWxkcyA9IGZpZWxkc0NvcHlcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gJGNyZWF0ZUJsb2NrTm9kZShmaWVsZHM6IEV4Y2x1ZGU8QmxvY2tGaWVsZHMsICdpZCc+KTogQmxvY2tOb2RlIHtcbiAgcmV0dXJuIG5ldyBCbG9ja05vZGUoe1xuICAgIGZpZWxkczoge1xuICAgICAgLi4uZmllbGRzLFxuICAgICAgaWQ6IGZpZWxkcz8uaWQgfHwgbmV3IE9iamVjdElELmRlZmF1bHQoKS50b0hleFN0cmluZygpLFxuICAgIH0sXG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiAkaXNCbG9ja05vZGUobm9kZTogQmxvY2tOb2RlIHwgTGV4aWNhbE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogbm9kZSBpcyBCbG9ja05vZGUge1xuICByZXR1cm4gbm9kZSBpbnN0YW5jZW9mIEJsb2NrTm9kZVxufVxuIl0sIm5hbWVzIjpbImxleGljYWxEZWNvcmF0b3JCbG9ja05vZGVJbXBvcnQiLCJEZWNvcmF0b3JCbG9ja05vZGUiLCJPYmplY3RJRCIsIlJlYWN0IiwiQmxvY2tDb21wb25lbnQiLCJsYXp5IiwidGhlbiIsIm1vZHVsZSIsImRlZmF1bHQiLCJCbG9ja05vZGUiLCJfX2ZpZWxkcyIsImNvbnN0cnVjdG9yIiwiZmllbGRzIiwiZm9ybWF0Iiwia2V5IiwiY2xvbmUiLCJub2RlIiwiX19mb3JtYXQiLCJfX2tleSIsImdldFR5cGUiLCJpbXBvcnRET00iLCJpbXBvcnRKU09OIiwic2VyaWFsaXplZE5vZGUiLCJ2ZXJzaW9uIiwiZGF0YSIsIiRjcmVhdGVCbG9ja05vZGUiLCJzZXRGb3JtYXQiLCJpc0lubGluZSIsImRlY29yYXRlIiwiZWRpdG9yIiwiY29uZmlnIiwiZm9ybURhdGEiLCJnZXRGaWVsZHMiLCJub2RlS2V5IiwiZ2V0S2V5IiwiZXhwb3J0RE9NIiwiZWxlbWVudCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsInRleHQiLCJjcmVhdGVUZXh0Tm9kZSIsImdldFRleHRDb250ZW50IiwiYXBwZW5kIiwiZXhwb3J0SlNPTiIsInR5cGUiLCJnZXRMYXRlc3QiLCJzZXRGaWVsZHMiLCJmaWVsZHNDb3B5IiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5Iiwid3JpdGFibGUiLCJnZXRXcml0YWJsZSIsImlkIiwidG9IZXhTdHJpbmciLCIkaXNCbG9ja05vZGUiXSwibWFwcGluZ3MiOiJBQVlBLE9BQU9BLHFDQUFxQyw4Q0FBNkM7QUFDekYsTUFBTSxFQUFFQyxrQkFBa0IsRUFBRSxHQUFHRDtBQUMvQixPQUFPRSxjQUFjLGdCQUFlO0FBQ3BDLE9BQU9DLFdBQVcsUUFBTztBQVV6QixNQUFNQywrQkFBaUJELE1BQU1FLElBQUksQ0FBQyxJQUNoQyxNQUFNLENBQUMseUJBQXlCQyxJQUFJLENBQUMsQ0FBQ0MsU0FBWSxDQUFBO1lBQ2hEQyxTQUFTRCxPQUFPSCxjQUFjO1FBQ2hDLENBQUE7QUFVRixPQUFPLE1BQU1LLGtCQUFrQlI7SUFDN0JTLFNBQXFCO0lBRXJCQyxZQUFZLEVBQ1ZDLE1BQU0sRUFDTkMsTUFBTSxFQUNOQyxHQUFHLEVBS0osQ0FBRTtRQUNELEtBQUssQ0FBQ0QsUUFBUUM7UUFDZCxJQUFJLENBQUNKLFFBQVEsR0FBR0U7SUFDbEI7SUFFQSxPQUFPRyxNQUFNQyxJQUFlLEVBQWE7UUFDdkMsT0FBTyxJQUFJUCxVQUFVO1lBQ25CRyxRQUFRSSxLQUFLTixRQUFRO1lBQ3JCRyxRQUFRRyxLQUFLQyxRQUFRO1lBQ3JCSCxLQUFLRSxLQUFLRSxLQUFLO1FBQ2pCO0lBQ0Y7SUFFQSxPQUFPQyxVQUFrQjtRQUN2QixPQUFPO0lBQ1Q7SUFFQSxPQUFPQyxZQUFxRDtRQUMxRCxPQUFPLENBQUM7SUFDVjtJQUVBLE9BQU9DLFdBQVdDLGNBQW1DLEVBQWE7UUFDaEUsSUFBSUEsZUFBZUMsT0FBTyxLQUFLLEdBQUc7WUFDaEMsbUZBQW1GO1lBQ25GRCxpQkFBaUI7Z0JBQ2YsR0FBR0EsY0FBYztnQkFDakJWLFFBQVE7b0JBQ04sR0FBRyxBQUFDVSxlQUF1QlYsTUFBTSxDQUFDWSxJQUFJO2dCQUN4QztnQkFDQUQsU0FBUztZQUNYO1FBQ0Y7UUFDQSxNQUFNUCxPQUFPUyxpQkFBaUJILGVBQWVWLE1BQU07UUFDbkRJLEtBQUtVLFNBQVMsQ0FBQ0osZUFBZVQsTUFBTTtRQUNwQyxPQUFPRztJQUNUO0lBRUEsT0FBT1csV0FBa0I7UUFDdkIsT0FBTztJQUNUO0lBQ0FDLFNBQVNDLE1BQXFCLEVBQUVDLE1BQW9CLEVBQWU7UUFDakUsbUJBQW1CO1FBQ25CLHFCQUFPLG9CQUFDMUI7WUFBZTJCLFVBQVUsSUFBSSxDQUFDQyxTQUFTO1lBQUlDLFNBQVMsSUFBSSxDQUFDQyxNQUFNOztJQUN6RTtJQUVBQyxZQUE2QjtRQUMzQixNQUFNQyxVQUFVQyxTQUFTQyxhQUFhLENBQUM7UUFFdkMsTUFBTUMsT0FBT0YsU0FBU0csY0FBYyxDQUFDLElBQUksQ0FBQ0MsY0FBYztRQUN4REwsUUFBUU0sTUFBTSxDQUFDSDtRQUNmLE9BQU87WUFBRUg7UUFBUTtJQUNuQjtJQUVBTyxhQUFrQztRQUNoQyxPQUFPO1lBQ0wsR0FBRyxLQUFLLENBQUNBLFlBQVk7WUFDckJDLE1BQU0sSUFBSSxDQUFDekIsT0FBTztZQUNsQlAsUUFBUSxJQUFJLENBQUNvQixTQUFTO1lBQ3RCVCxTQUFTO1FBQ1g7SUFDRjtJQUVBUyxZQUF5QjtRQUN2QixPQUFPLElBQUksQ0FBQ2EsU0FBUyxHQUFHbkMsUUFBUTtJQUNsQztJQUVBK0IsaUJBQXlCO1FBQ3ZCLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDdEI7SUFFQUssVUFBVWxDLE1BQW1CLEVBQVE7UUFDbkMsTUFBTW1DLGFBQWFDLEtBQUtDLEtBQUssQ0FBQ0QsS0FBS0UsU0FBUyxDQUFDdEM7UUFFN0MsTUFBTXVDLFdBQVcsSUFBSSxDQUFDQyxXQUFXO1FBQ2pDRCxTQUFTekMsUUFBUSxHQUFHcUM7SUFDdEI7QUFDRjtBQUVBLE9BQU8sU0FBU3RCLGlCQUFpQmIsTUFBa0M7SUFDakUsT0FBTyxJQUFJSCxVQUFVO1FBQ25CRyxRQUFRO1lBQ04sR0FBR0EsTUFBTTtZQUNUeUMsSUFBSXpDLFFBQVF5QyxNQUFNLElBQUluRCxTQUFTTSxPQUFPLEdBQUc4QyxXQUFXO1FBQ3REO0lBQ0Y7QUFDRjtBQUVBLE9BQU8sU0FBU0MsYUFBYXZDLElBQWdEO0lBQzNFLE9BQU9BLGdCQUFnQlA7QUFDekIifQ==
92
+ //# sourceMappingURL=BlocksNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/field/features/blocks/nodes/BlocksNode.tsx"],"sourcesContent":["import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n ElementFormatType,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n Spread,\n} from 'lexical'\n\nimport lexicalDecoratorBlockNodeImport from '@lexical/react/LexicalDecoratorBlockNode.js'\nconst { DecoratorBlockNode } = lexicalDecoratorBlockNodeImport\nimport ObjectID from 'bson-objectid'\nimport React from 'react'\n\nexport type BlockFields = {\n /** Block form data */\n [key: string]: any\n blockName: string\n blockType: string\n id: string\n}\n\nconst BlockComponent = React.lazy(() =>\n import('../component/index.js').then((module) => ({\n default: module.BlockComponent,\n })),\n)\n\nexport type SerializedBlockNode = Spread<\n {\n fields: BlockFields\n },\n SerializedDecoratorBlockNode\n>\n\nexport class BlockNode extends DecoratorBlockNode {\n __fields: BlockFields\n\n constructor({\n fields,\n format,\n key,\n }: {\n fields: BlockFields\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__fields = fields\n }\n\n static clone(node: BlockNode): BlockNode {\n return new BlockNode({\n fields: node.__fields,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'block'\n }\n\n static importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static importJSON(serializedNode: SerializedBlockNode): BlockNode {\n if (serializedNode.version === 1) {\n // Convert (version 1 had the fields wrapped in another, unnecessary data property)\n serializedNode = {\n ...serializedNode,\n fields: {\n ...(serializedNode as any).fields.data,\n },\n version: 2,\n }\n }\n const node = $createBlockNode(serializedNode.fields)\n node.setFormat(serializedNode.format)\n return node\n }\n\n static isInline(): false {\n return false\n }\n decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n // @ts-expect-error\n return <BlockComponent formData={this.getFields()} nodeKey={this.getKey()} />\n }\n\n exportDOM(): DOMExportOutput {\n const element = document.createElement('div')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n exportJSON(): SerializedBlockNode {\n return {\n ...super.exportJSON(),\n type: this.getType(),\n fields: this.getFields(),\n version: 2,\n }\n }\n\n getFields(): BlockFields {\n return this.getLatest().__fields\n }\n\n getTextContent(): string {\n return `Block Field`\n }\n\n setFields(fields: BlockFields): void {\n const fieldsCopy = JSON.parse(JSON.stringify(fields)) as BlockFields\n\n const writable = this.getWritable()\n writable.__fields = fieldsCopy\n }\n}\n\nexport function $createBlockNode(fields: Exclude<BlockFields, 'id'>): BlockNode {\n return new BlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n })\n}\n\nexport function $isBlockNode(node: BlockNode | LexicalNode | null | undefined): node is BlockNode {\n return node instanceof BlockNode\n}\n"],"names":["lexicalDecoratorBlockNodeImport","DecoratorBlockNode","ObjectID","React","BlockComponent","lazy","then","module","default","BlockNode","__fields","constructor","fields","format","key","clone","node","__format","__key","getType","importDOM","importJSON","serializedNode","version","data","$createBlockNode","setFormat","isInline","decorate","editor","config","formData","getFields","nodeKey","getKey","exportDOM","element","document","createElement","text","createTextNode","getTextContent","append","exportJSON","type","getLatest","setFields","fieldsCopy","JSON","parse","stringify","writable","getWritable","id","toHexString","$isBlockNode"],"mappings":"AAYA,OAAOA,qCAAqC,8CAA6C;AACzF,MAAM,EAAEC,kBAAkB,EAAE,GAAGD;AAC/B,OAAOE,cAAc,gBAAe;AACpC,OAAOC,WAAW,QAAO;AAUzB,MAAMC,+BAAiBD,MAAME,IAAI,CAAC,IAChC,MAAM,CAAC,yBAAyBC,IAAI,CAAC,CAACC,SAAY,CAAA;YAChDC,SAASD,OAAOH,cAAc;QAChC,CAAA;AAUF,OAAO,MAAMK,kBAAkBR;IAC7BS,SAAqB;IAErBC,YAAY,EACVC,MAAM,EACNC,MAAM,EACNC,GAAG,EAKJ,CAAE;QACD,KAAK,CAACD,QAAQC;QACd,IAAI,CAACJ,QAAQ,GAAGE;IAClB;IAEA,OAAOG,MAAMC,IAAe,EAAa;QACvC,OAAO,IAAIP,UAAU;YACnBG,QAAQI,KAAKN,QAAQ;YACrBG,QAAQG,KAAKC,QAAQ;YACrBH,KAAKE,KAAKE,KAAK;QACjB;IACF;IAEA,OAAOC,UAAkB;QACvB,OAAO;IACT;IAEA,OAAOC,YAAqD;QAC1D,OAAO,CAAC;IACV;IAEA,OAAOC,WAAWC,cAAmC,EAAa;QAChE,IAAIA,eAAeC,OAAO,KAAK,GAAG;YAChC,mFAAmF;YACnFD,iBAAiB;gBACf,GAAGA,cAAc;gBACjBV,QAAQ;oBACN,GAAG,AAACU,eAAuBV,MAAM,CAACY,IAAI;gBACxC;gBACAD,SAAS;YACX;QACF;QACA,MAAMP,OAAOS,iBAAiBH,eAAeV,MAAM;QACnDI,KAAKU,SAAS,CAACJ,eAAeT,MAAM;QACpC,OAAOG;IACT;IAEA,OAAOW,WAAkB;QACvB,OAAO;IACT;IACAC,SAASC,MAAqB,EAAEC,MAAoB,EAAe;QACjE,mBAAmB;QACnB,qBAAO,oBAAC1B;YAAe2B,UAAU,IAAI,CAACC,SAAS;YAAIC,SAAS,IAAI,CAACC,MAAM;;IACzE;IAEAC,YAA6B;QAC3B,MAAMC,UAAUC,SAASC,aAAa,CAAC;QAEvC,MAAMC,OAAOF,SAASG,cAAc,CAAC,IAAI,CAACC,cAAc;QACxDL,QAAQM,MAAM,CAACH;QACf,OAAO;YAAEH;QAAQ;IACnB;IAEAO,aAAkC;QAChC,OAAO;YACL,GAAG,KAAK,CAACA,YAAY;YACrBC,MAAM,IAAI,CAACzB,OAAO;YAClBP,QAAQ,IAAI,CAACoB,SAAS;YACtBT,SAAS;QACX;IACF;IAEAS,YAAyB;QACvB,OAAO,IAAI,CAACa,SAAS,GAAGnC,QAAQ;IAClC;IAEA+B,iBAAyB;QACvB,OAAO,CAAC,WAAW,CAAC;IACtB;IAEAK,UAAUlC,MAAmB,EAAQ;QACnC,MAAMmC,aAAaC,KAAKC,KAAK,CAACD,KAAKE,SAAS,CAACtC;QAE7C,MAAMuC,WAAW,IAAI,CAACC,WAAW;QACjCD,SAASzC,QAAQ,GAAGqC;IACtB;AACF;AAEA,OAAO,SAAStB,iBAAiBb,MAAkC;IACjE,OAAO,IAAIH,UAAU;QACnBG,QAAQ;YACN,GAAGA,MAAM;YACTyC,IAAIzC,QAAQyC,MAAM,IAAInD,SAASM,OAAO,GAAG8C,WAAW;QACtD;IACF;AACF;AAEA,OAAO,SAASC,aAAavC,IAAgD;IAC3E,OAAOA,gBAAgBP;AACzB"}
@@ -2,4 +2,4 @@ import lexicalImport from 'lexical';
2
2
  const { createCommand } = lexicalImport;
3
3
  export const INSERT_BLOCK_COMMAND = createCommand('INSERT_BLOCK_COMMAND');
4
4
 
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9ibG9ja3MvcGx1Z2luL2NvbW1hbmRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGV4aWNhbENvbW1hbmQgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgbGV4aWNhbEltcG9ydCBmcm9tICdsZXhpY2FsJ1xuY29uc3QgeyBjcmVhdGVDb21tYW5kIH0gPSBsZXhpY2FsSW1wb3J0XG5cbmltcG9ydCB0eXBlIHsgSW5zZXJ0QmxvY2tQYXlsb2FkIH0gZnJvbSAnLi9pbmRleC5qcydcblxuZXhwb3J0IGNvbnN0IElOU0VSVF9CTE9DS19DT01NQU5EOiBMZXhpY2FsQ29tbWFuZDxJbnNlcnRCbG9ja1BheWxvYWQ+ID1cbiAgY3JlYXRlQ29tbWFuZCgnSU5TRVJUX0JMT0NLX0NPTU1BTkQnKVxuIl0sIm5hbWVzIjpbImxleGljYWxJbXBvcnQiLCJjcmVhdGVDb21tYW5kIiwiSU5TRVJUX0JMT0NLX0NPTU1BTkQiXSwibWFwcGluZ3MiOiJBQUVBLE9BQU9BLG1CQUFtQixVQUFTO0FBQ25DLE1BQU0sRUFBRUMsYUFBYSxFQUFFLEdBQUdEO0FBSTFCLE9BQU8sTUFBTUUsdUJBQ1hELGNBQWMsd0JBQXVCIn0=
5
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/field/features/blocks/plugin/commands.ts"],"sourcesContent":["import type { LexicalCommand } from 'lexical'\n\nimport lexicalImport from 'lexical'\nconst { createCommand } = lexicalImport\n\nimport type { InsertBlockPayload } from './index.js'\n\nexport const INSERT_BLOCK_COMMAND: LexicalCommand<InsertBlockPayload> =\n createCommand('INSERT_BLOCK_COMMAND')\n"],"names":["lexicalImport","createCommand","INSERT_BLOCK_COMMAND"],"mappings":"AAEA,OAAOA,mBAAmB,UAAS;AACnC,MAAM,EAAEC,aAAa,EAAE,GAAGD;AAI1B,OAAO,MAAME,uBACXD,cAAc,wBAAuB"}
@@ -40,4 +40,4 @@ export function BlocksPlugin() {
40
40
  return /*#__PURE__*/ React.createElement(BlocksDrawerComponent, null);
41
41
  }
42
42
 
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9ibG9ja3MvcGx1Z2luL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCBsZXhpY2FsQ29tcG9zZXJDb250ZXh0SW1wb3J0IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQuanMnXG5jb25zdCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSA9IGxleGljYWxDb21wb3NlckNvbnRleHRJbXBvcnRcbmltcG9ydCBsZXhpY2FsVXRpbHNJbXBvcnQgZnJvbSAnQGxleGljYWwvdXRpbHMnXG5jb25zdCB7ICRpbnNlcnROb2RlVG9OZWFyZXN0Um9vdCwgbWVyZ2VSZWdpc3RlciB9ID0gbGV4aWNhbFV0aWxzSW1wb3J0XG5pbXBvcnQgbGV4aWNhbEltcG9ydCBmcm9tICdsZXhpY2FsJ1xuY29uc3Qge1xuICAkZ2V0UHJldmlvdXNTZWxlY3Rpb24sXG4gICRnZXRTZWxlY3Rpb24sXG4gICRpc1BhcmFncmFwaE5vZGUsXG4gICRpc1JhbmdlU2VsZWN0aW9uLFxuICBDT01NQU5EX1BSSU9SSVRZX0VESVRPUixcbn0gPSBsZXhpY2FsSW1wb3J0XG5cbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBCbG9ja0ZpZWxkcyB9IGZyb20gJy4uL25vZGVzL0Jsb2Nrc05vZGUuanMnXG5cbmltcG9ydCB7IEJsb2Nrc0RyYXdlckNvbXBvbmVudCB9IGZyb20gJy4uL2RyYXdlci9pbmRleC5qcydcbmltcG9ydCB7ICRjcmVhdGVCbG9ja05vZGUsIEJsb2NrTm9kZSB9IGZyb20gJy4uL25vZGVzL0Jsb2Nrc05vZGUuanMnXG5pbXBvcnQgeyBJTlNFUlRfQkxPQ0tfQ09NTUFORCB9IGZyb20gJy4vY29tbWFuZHMuanMnXG5cbmV4cG9ydCB0eXBlIEluc2VydEJsb2NrUGF5bG9hZCA9IEV4Y2x1ZGU8QmxvY2tGaWVsZHMsICdpZCc+XG5cbmV4cG9ydCBmdW5jdGlvbiBCbG9ja3NQbHVnaW4oKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZWRpdG9yLmhhc05vZGVzKFtCbG9ja05vZGVdKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdCbG9ja3NQbHVnaW46IEJsb2Nrc05vZGUgbm90IHJlZ2lzdGVyZWQgb24gZWRpdG9yJylcbiAgICB9XG5cbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQ8SW5zZXJ0QmxvY2tQYXlsb2FkPihcbiAgICAgICAgSU5TRVJUX0JMT0NLX0NPTU1BTkQsXG4gICAgICAgIChwYXlsb2FkOiBJbnNlcnRCbG9ja1BheWxvYWQpID0+IHtcbiAgICAgICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrTm9kZSA9ICRjcmVhdGVCbG9ja05vZGUocGF5bG9hZClcblxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpIHx8ICRnZXRQcmV2aW91c1NlbGVjdGlvbigpXG5cbiAgICAgICAgICAgIGlmICgkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgZm9jdXMgfSA9IHNlbGVjdGlvblxuICAgICAgICAgICAgICBjb25zdCBmb2N1c05vZGUgPSBmb2N1cy5nZXROb2RlKClcblxuICAgICAgICAgICAgICAvLyBGaXJzdCwgZGVsZXRlIGN1cnJlbnRseSBzZWxlY3RlZCBub2RlIGlmIGl0J3MgYW4gZW1wdHkgcGFyYWdyYXBoIGFuZCBpZiB0aGVyZSBhcmUgc3VmZmljaWVudFxuICAgICAgICAgICAgICAvLyBwYXJhZ3JhcGggbm9kZXMgKG1vcmUgdGhhbiAxKSBsZWZ0IGluIHRoZSBwYXJlbnQgbm9kZSwgc28gdGhhdCB3ZSBkb24ndCBcInRyYXBcIiB0aGUgdXNlclxuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgJGlzUGFyYWdyYXBoTm9kZShmb2N1c05vZGUpICYmXG4gICAgICAgICAgICAgICAgZm9jdXNOb2RlLmdldFRleHRDb250ZW50U2l6ZSgpID09PSAwICYmXG4gICAgICAgICAgICAgICAgZm9jdXNOb2RlXG4gICAgICAgICAgICAgICAgICAuZ2V0UGFyZW50KClcbiAgICAgICAgICAgICAgICAgIC5nZXRDaGlsZHJlbigpXG4gICAgICAgICAgICAgICAgICAuZmlsdGVyKChub2RlKSA9PiAkaXNQYXJhZ3JhcGhOb2RlKG5vZGUpKS5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGZvY3VzTm9kZS5yZW1vdmUoKVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJGluc2VydE5vZGVUb05lYXJlc3RSb290KGJsb2NrTm9kZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9FRElUT1IsXG4gICAgICApLFxuICAgIClcbiAgfSwgW2VkaXRvcl0pXG5cbiAgcmV0dXJuIDxCbG9ja3NEcmF3ZXJDb21wb25lbnQgLz5cbn1cbiJdLCJuYW1lcyI6WyJsZXhpY2FsQ29tcG9zZXJDb250ZXh0SW1wb3J0IiwidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsImxleGljYWxVdGlsc0ltcG9ydCIsIiRpbnNlcnROb2RlVG9OZWFyZXN0Um9vdCIsIm1lcmdlUmVnaXN0ZXIiLCJsZXhpY2FsSW1wb3J0IiwiJGdldFByZXZpb3VzU2VsZWN0aW9uIiwiJGdldFNlbGVjdGlvbiIsIiRpc1BhcmFncmFwaE5vZGUiLCIkaXNSYW5nZVNlbGVjdGlvbiIsIkNPTU1BTkRfUFJJT1JJVFlfRURJVE9SIiwiUmVhY3QiLCJ1c2VFZmZlY3QiLCJCbG9ja3NEcmF3ZXJDb21wb25lbnQiLCIkY3JlYXRlQmxvY2tOb2RlIiwiQmxvY2tOb2RlIiwiSU5TRVJUX0JMT0NLX0NPTU1BTkQiLCJCbG9ja3NQbHVnaW4iLCJlZGl0b3IiLCJoYXNOb2RlcyIsIkVycm9yIiwicmVnaXN0ZXJDb21tYW5kIiwicGF5bG9hZCIsInVwZGF0ZSIsImJsb2NrTm9kZSIsInNlbGVjdGlvbiIsImZvY3VzIiwiZm9jdXNOb2RlIiwiZ2V0Tm9kZSIsImdldFRleHRDb250ZW50U2l6ZSIsImdldFBhcmVudCIsImdldENoaWxkcmVuIiwiZmlsdGVyIiwibm9kZSIsImxlbmd0aCIsInJlbW92ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxPQUFPQSxrQ0FBa0MsMkNBQTBDO0FBQ25GLE1BQU0sRUFBRUMseUJBQXlCLEVBQUUsR0FBR0Q7QUFDdEMsT0FBT0Usd0JBQXdCLGlCQUFnQjtBQUMvQyxNQUFNLEVBQUVDLHdCQUF3QixFQUFFQyxhQUFhLEVBQUUsR0FBR0Y7QUFDcEQsT0FBT0csbUJBQW1CLFVBQVM7QUFDbkMsTUFBTSxFQUNKQyxxQkFBcUIsRUFDckJDLGFBQWEsRUFDYkMsZ0JBQWdCLEVBQ2hCQyxpQkFBaUIsRUFDakJDLHVCQUF1QixFQUN4QixHQUFHTDtBQUVKLE9BQU9NLFNBQVNDLFNBQVMsUUFBUSxRQUFPO0FBSXhDLFNBQVNDLHFCQUFxQixRQUFRLHFCQUFvQjtBQUMxRCxTQUFTQyxnQkFBZ0IsRUFBRUMsU0FBUyxRQUFRLHlCQUF3QjtBQUNwRSxTQUFTQyxvQkFBb0IsUUFBUSxnQkFBZTtBQUlwRCxPQUFPLFNBQVNDO0lBQ2QsTUFBTSxDQUFDQyxPQUFPLEdBQUdqQjtJQUVqQlcsVUFBVTtRQUNSLElBQUksQ0FBQ00sT0FBT0MsUUFBUSxDQUFDO1lBQUNKO1NBQVUsR0FBRztZQUNqQyxNQUFNLElBQUlLLE1BQU07UUFDbEI7UUFFQSxPQUFPaEIsY0FDTGMsT0FBT0csZUFBZSxDQUNwQkwsc0JBQ0EsQ0FBQ007WUFDQ0osT0FBT0ssTUFBTSxDQUFDO2dCQUNaLE1BQU1DLFlBQVlWLGlCQUFpQlE7Z0JBRW5DLE1BQU1HLFlBQVlsQixtQkFBbUJEO2dCQUVyQyxJQUFJRyxrQkFBa0JnQixZQUFZO29CQUNoQyxNQUFNLEVBQUVDLEtBQUssRUFBRSxHQUFHRDtvQkFDbEIsTUFBTUUsWUFBWUQsTUFBTUUsT0FBTztvQkFFL0IsK0ZBQStGO29CQUMvRiwwRkFBMEY7b0JBQzFGLElBQ0VwQixpQkFBaUJtQixjQUNqQkEsVUFBVUUsa0JBQWtCLE9BQU8sS0FDbkNGLFVBQ0dHLFNBQVMsR0FDVEMsV0FBVyxHQUNYQyxNQUFNLENBQUMsQ0FBQ0MsT0FBU3pCLGlCQUFpQnlCLE9BQU9DLE1BQU0sR0FBRyxHQUNyRDt3QkFDQVAsVUFBVVEsTUFBTTtvQkFDbEI7b0JBRUFoQyx5QkFBeUJxQjtnQkFDM0I7WUFDRjtZQUVBLE9BQU87UUFDVCxHQUNBZDtJQUdOLEdBQUc7UUFBQ1E7S0FBTztJQUVYLHFCQUFPLG9CQUFDTDtBQUNWIn0=
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/field/features/blocks/plugin/index.tsx"],"sourcesContent":["'use client'\nimport lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js'\nconst { useLexicalComposerContext } = lexicalComposerContextImport\nimport lexicalUtilsImport from '@lexical/utils'\nconst { $insertNodeToNearestRoot, mergeRegister } = lexicalUtilsImport\nimport lexicalImport from 'lexical'\nconst {\n $getPreviousSelection,\n $getSelection,\n $isParagraphNode,\n $isRangeSelection,\n COMMAND_PRIORITY_EDITOR,\n} = lexicalImport\n\nimport React, { useEffect } from 'react'\n\nimport type { BlockFields } from '../nodes/BlocksNode.js'\n\nimport { BlocksDrawerComponent } from '../drawer/index.js'\nimport { $createBlockNode, BlockNode } from '../nodes/BlocksNode.js'\nimport { INSERT_BLOCK_COMMAND } from './commands.js'\n\nexport type InsertBlockPayload = Exclude<BlockFields, 'id'>\n\nexport function BlocksPlugin(): React.ReactNode {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n if (!editor.hasNodes([BlockNode])) {\n throw new Error('BlocksPlugin: BlocksNode not registered on editor')\n }\n\n return mergeRegister(\n editor.registerCommand<InsertBlockPayload>(\n INSERT_BLOCK_COMMAND,\n (payload: InsertBlockPayload) => {\n editor.update(() => {\n const blockNode = $createBlockNode(payload)\n\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n const { focus } = selection\n const focusNode = focus.getNode()\n\n // First, delete currently selected node if it's an empty paragraph and if there are sufficient\n // paragraph nodes (more than 1) left in the parent node, so that we don't \"trap\" the user\n if (\n $isParagraphNode(focusNode) &&\n focusNode.getTextContentSize() === 0 &&\n focusNode\n .getParent()\n .getChildren()\n .filter((node) => $isParagraphNode(node)).length > 1\n ) {\n focusNode.remove()\n }\n\n $insertNodeToNearestRoot(blockNode)\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [editor])\n\n return <BlocksDrawerComponent />\n}\n"],"names":["lexicalComposerContextImport","useLexicalComposerContext","lexicalUtilsImport","$insertNodeToNearestRoot","mergeRegister","lexicalImport","$getPreviousSelection","$getSelection","$isParagraphNode","$isRangeSelection","COMMAND_PRIORITY_EDITOR","React","useEffect","BlocksDrawerComponent","$createBlockNode","BlockNode","INSERT_BLOCK_COMMAND","BlocksPlugin","editor","hasNodes","Error","registerCommand","payload","update","blockNode","selection","focus","focusNode","getNode","getTextContentSize","getParent","getChildren","filter","node","length","remove"],"mappings":"AAAA;AACA,OAAOA,kCAAkC,2CAA0C;AACnF,MAAM,EAAEC,yBAAyB,EAAE,GAAGD;AACtC,OAAOE,wBAAwB,iBAAgB;AAC/C,MAAM,EAAEC,wBAAwB,EAAEC,aAAa,EAAE,GAAGF;AACpD,OAAOG,mBAAmB,UAAS;AACnC,MAAM,EACJC,qBAAqB,EACrBC,aAAa,EACbC,gBAAgB,EAChBC,iBAAiB,EACjBC,uBAAuB,EACxB,GAAGL;AAEJ,OAAOM,SAASC,SAAS,QAAQ,QAAO;AAIxC,SAASC,qBAAqB,QAAQ,qBAAoB;AAC1D,SAASC,gBAAgB,EAAEC,SAAS,QAAQ,yBAAwB;AACpE,SAASC,oBAAoB,QAAQ,gBAAe;AAIpD,OAAO,SAASC;IACd,MAAM,CAACC,OAAO,GAAGjB;IAEjBW,UAAU;QACR,IAAI,CAACM,OAAOC,QAAQ,CAAC;YAACJ;SAAU,GAAG;YACjC,MAAM,IAAIK,MAAM;QAClB;QAEA,OAAOhB,cACLc,OAAOG,eAAe,CACpBL,sBACA,CAACM;YACCJ,OAAOK,MAAM,CAAC;gBACZ,MAAMC,YAAYV,iBAAiBQ;gBAEnC,MAAMG,YAAYlB,mBAAmBD;gBAErC,IAAIG,kBAAkBgB,YAAY;oBAChC,MAAM,EAAEC,KAAK,EAAE,GAAGD;oBAClB,MAAME,YAAYD,MAAME,OAAO;oBAE/B,+FAA+F;oBAC/F,0FAA0F;oBAC1F,IACEpB,iBAAiBmB,cACjBA,UAAUE,kBAAkB,OAAO,KACnCF,UACGG,SAAS,GACTC,WAAW,GACXC,MAAM,CAAC,CAACC,OAASzB,iBAAiByB,OAAOC,MAAM,GAAG,GACrD;wBACAP,UAAUQ,MAAM;oBAClB;oBAEAhC,yBAAyBqB;gBAC3B;YACF;YAEA,OAAO;QACT,GACAd;IAGN,GAAG;QAACQ;KAAO;IAEX,qBAAO,oBAACL;AACV"}
@@ -42,4 +42,4 @@ export const blockPopulationPromiseHOC = (props)=>{
42
42
  return blockPopulationPromise;
43
43
  };
44
44
 
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9ibG9ja3MvcG9wdWxhdGlvblByb21pc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCbG9jayB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHNhbml0aXplRmllbGRzIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5cbmltcG9ydCB0eXBlIHsgUG9wdWxhdGlvblByb21pc2UgfSBmcm9tICcuLi90eXBlcy5qcydcbmltcG9ydCB0eXBlIHsgQmxvY2tzRmVhdHVyZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlLnNlcnZlci5qcydcbmltcG9ydCB0eXBlIHsgU2VyaWFsaXplZEJsb2NrTm9kZSB9IGZyb20gJy4vbm9kZXMvQmxvY2tzTm9kZS5qcydcblxuaW1wb3J0IHsgcmVjdXJzZU5lc3RlZEZpZWxkcyB9IGZyb20gJy4uLy4uLy4uL3BvcHVsYXRlL3JlY3Vyc2VOZXN0ZWRGaWVsZHMuanMnXG5cbmV4cG9ydCBjb25zdCBibG9ja1BvcHVsYXRpb25Qcm9taXNlSE9DID0gKFxuICBwcm9wczogQmxvY2tzRmVhdHVyZVByb3BzLFxuKTogUG9wdWxhdGlvblByb21pc2U8U2VyaWFsaXplZEJsb2NrTm9kZT4gPT4ge1xuICBjb25zdCBibG9ja1BvcHVsYXRpb25Qcm9taXNlOiBQb3B1bGF0aW9uUHJvbWlzZTxTZXJpYWxpemVkQmxvY2tOb2RlPiA9ICh7XG4gICAgY29udGV4dCxcbiAgICBjdXJyZW50RGVwdGgsXG4gICAgZGVwdGgsXG4gICAgZWRpdG9yUG9wdWxhdGlvblByb21pc2VzLFxuICAgIGZpbmRNYW55LFxuICAgIGZsYXR0ZW5Mb2NhbGVzLFxuICAgIG5vZGUsXG4gICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgIHJlcSxcbiAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgIHNpYmxpbmdEb2MsXG4gIH0pID0+IHtcbiAgICBjb25zdCBibG9ja3M6IEJsb2NrW10gPSBwcm9wcy5ibG9ja3NcbiAgICBjb25zdCBibG9ja0ZpZWxkRGF0YSA9IG5vZGUuZmllbGRzXG5cbiAgICBjb25zdCBwcm9taXNlczogUHJvbWlzZTx2b2lkPltdID0gW11cblxuICAgIC8vIFNhbml0aXplIGJsb2NrJ3MgZmllbGRzIGhlcmUuIFRoaXMgaXMgZG9uZSBoZXJlIGFuZCBub3QgaW4gdGhlIGZlYXR1cmUsIGJlY2F1c2UgdGhlIHBheWxvYWQgY29uZmlnIGlzIGF2YWlsYWJsZSBoZXJlXG4gICAgY29uc3QgcGF5bG9hZENvbmZpZyA9IHJlcS5wYXlsb2FkLmNvbmZpZ1xuICAgIGNvbnN0IHZhbGlkUmVsYXRpb25zaGlwcyA9IHBheWxvYWRDb25maWcuY29sbGVjdGlvbnMubWFwKChjKSA9PiBjLnNsdWcpIHx8IFtdXG4gICAgYmxvY2tzLmZvckVhY2goKGJsb2NrKSA9PiB7XG4gICAgICBibG9jay5maWVsZHMgPSBzYW5pdGl6ZUZpZWxkcyh7XG4gICAgICAgIGNvbmZpZzogcGF5bG9hZENvbmZpZyxcbiAgICAgICAgZmllbGRzOiBibG9jay5maWVsZHMsXG4gICAgICAgIHZhbGlkUmVsYXRpb25zaGlwcyxcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIC8vIGZpbmQgYmxvY2sgdXNlZCBpbiB0aGlzIG5vZGVcbiAgICBjb25zdCBibG9jayA9IHByb3BzLmJsb2Nrcy5maW5kKChibG9jaykgPT4gYmxvY2suc2x1ZyA9PT0gYmxvY2tGaWVsZERhdGEuYmxvY2tUeXBlKVxuICAgIGlmICghYmxvY2sgfHwgIWJsb2NrPy5maWVsZHM/Lmxlbmd0aCB8fCAhYmxvY2tGaWVsZERhdGEpIHtcbiAgICAgIHJldHVybiBwcm9taXNlc1xuICAgIH1cblxuICAgIHJlY3Vyc2VOZXN0ZWRGaWVsZHMoe1xuICAgICAgY29udGV4dCxcbiAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgIGRhdGE6IGJsb2NrRmllbGREYXRhLFxuICAgICAgZGVwdGgsXG4gICAgICBlZGl0b3JQb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICBmaWVsZHM6IGJsb2NrLmZpZWxkcyxcbiAgICAgIGZpbmRNYW55LFxuICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICAgIHByb21pc2VzLFxuICAgICAgcmVxLFxuICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgIC8vIFRoZSBhZnRlclJlYWRQcm9taXNlIGdldHMgaXRzIGRhdGEgZnJvbSBsb29raW5nIGZvciBmaWVsZC5uYW1lIGluc2lkZSB0aGUgc2libGluZ0RvYy4gVGh1cywgaGVyZSB3ZSBjYW5ub3QgcGFzcyB0aGUgd2hvbGUgZG9jdW1lbnQncyBzaWJsaW5nRG9jLCBidXQgb25seSB0aGUgc2libGluZ0RvYyAoc2libGluZyBmaWVsZHMpIG9mIHRoZSBjdXJyZW50IGZpZWxkLlxuICAgICAgc2libGluZ0RvYzogYmxvY2tGaWVsZERhdGEsXG4gICAgfSlcblxuICAgIHJldHVybiBwcm9taXNlc1xuICB9XG5cbiAgcmV0dXJuIGJsb2NrUG9wdWxhdGlvblByb21pc2Vcbn1cbiJdLCJuYW1lcyI6WyJzYW5pdGl6ZUZpZWxkcyIsInJlY3Vyc2VOZXN0ZWRGaWVsZHMiLCJibG9ja1BvcHVsYXRpb25Qcm9taXNlSE9DIiwicHJvcHMiLCJibG9ja1BvcHVsYXRpb25Qcm9taXNlIiwiY29udGV4dCIsImN1cnJlbnREZXB0aCIsImRlcHRoIiwiZWRpdG9yUG9wdWxhdGlvblByb21pc2VzIiwiZmluZE1hbnkiLCJmbGF0dGVuTG9jYWxlcyIsIm5vZGUiLCJvdmVycmlkZUFjY2VzcyIsInBvcHVsYXRpb25Qcm9taXNlcyIsInJlcSIsInNob3dIaWRkZW5GaWVsZHMiLCJzaWJsaW5nRG9jIiwiYmxvY2tzIiwiYmxvY2tGaWVsZERhdGEiLCJmaWVsZHMiLCJwcm9taXNlcyIsInBheWxvYWRDb25maWciLCJwYXlsb2FkIiwiY29uZmlnIiwidmFsaWRSZWxhdGlvbnNoaXBzIiwiY29sbGVjdGlvbnMiLCJtYXAiLCJjIiwic2x1ZyIsImZvckVhY2giLCJibG9jayIsImZpbmQiLCJibG9ja1R5cGUiLCJsZW5ndGgiLCJkYXRhIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxjQUFjLFFBQVEsaUJBQWdCO0FBTS9DLFNBQVNDLG1CQUFtQixRQUFRLDJDQUEwQztBQUU5RSxPQUFPLE1BQU1DLDRCQUE0QixDQUN2Q0M7SUFFQSxNQUFNQyx5QkFBaUUsQ0FBQyxFQUN0RUMsT0FBTyxFQUNQQyxZQUFZLEVBQ1pDLEtBQUssRUFDTEMsd0JBQXdCLEVBQ3hCQyxRQUFRLEVBQ1JDLGNBQWMsRUFDZEMsSUFBSSxFQUNKQyxjQUFjLEVBQ2RDLGtCQUFrQixFQUNsQkMsR0FBRyxFQUNIQyxnQkFBZ0IsRUFDaEJDLFVBQVUsRUFDWDtRQUNDLE1BQU1DLFNBQWtCZCxNQUFNYyxNQUFNO1FBQ3BDLE1BQU1DLGlCQUFpQlAsS0FBS1EsTUFBTTtRQUVsQyxNQUFNQyxXQUE0QixFQUFFO1FBRXBDLHVIQUF1SDtRQUN2SCxNQUFNQyxnQkFBZ0JQLElBQUlRLE9BQU8sQ0FBQ0MsTUFBTTtRQUN4QyxNQUFNQyxxQkFBcUJILGNBQWNJLFdBQVcsQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLElBQU1BLEVBQUVDLElBQUksS0FBSyxFQUFFO1FBQzdFWCxPQUFPWSxPQUFPLENBQUMsQ0FBQ0M7WUFDZEEsTUFBTVgsTUFBTSxHQUFHbkIsZUFBZTtnQkFDNUJ1QixRQUFRRjtnQkFDUkYsUUFBUVcsTUFBTVgsTUFBTTtnQkFDcEJLO1lBQ0Y7UUFDRjtRQUVBLCtCQUErQjtRQUMvQixNQUFNTSxRQUFRM0IsTUFBTWMsTUFBTSxDQUFDYyxJQUFJLENBQUMsQ0FBQ0QsUUFBVUEsTUFBTUYsSUFBSSxLQUFLVixlQUFlYyxTQUFTO1FBQ2xGLElBQUksQ0FBQ0YsU0FBUyxDQUFDQSxPQUFPWCxRQUFRYyxVQUFVLENBQUNmLGdCQUFnQjtZQUN2RCxPQUFPRTtRQUNUO1FBRUFuQixvQkFBb0I7WUFDbEJJO1lBQ0FDO1lBQ0E0QixNQUFNaEI7WUFDTlg7WUFDQUM7WUFDQVcsUUFBUVcsTUFBTVgsTUFBTTtZQUNwQlY7WUFDQUM7WUFDQUU7WUFDQUM7WUFDQU87WUFDQU47WUFDQUM7WUFDQSxrTkFBa047WUFDbE5DLFlBQVlFO1FBQ2Q7UUFFQSxPQUFPRTtJQUNUO0lBRUEsT0FBT2hCO0FBQ1QsRUFBQyJ9
45
+ //# sourceMappingURL=populationPromise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/field/features/blocks/populationPromise.ts"],"sourcesContent":["import type { Block } from 'payload/types'\n\nimport { sanitizeFields } from 'payload/config'\n\nimport type { PopulationPromise } from '../types.js'\nimport type { BlocksFeatureProps } from './feature.server.js'\nimport type { SerializedBlockNode } from './nodes/BlocksNode.js'\n\nimport { recurseNestedFields } from '../../../populate/recurseNestedFields.js'\n\nexport const blockPopulationPromiseHOC = (\n props: BlocksFeatureProps,\n): PopulationPromise<SerializedBlockNode> => {\n const blockPopulationPromise: PopulationPromise<SerializedBlockNode> = ({\n context,\n currentDepth,\n depth,\n editorPopulationPromises,\n findMany,\n flattenLocales,\n node,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n }) => {\n const blocks: Block[] = props.blocks\n const blockFieldData = node.fields\n\n const promises: Promise<void>[] = []\n\n // Sanitize block's fields here. This is done here and not in the feature, because the payload config is available here\n const payloadConfig = req.payload.config\n const validRelationships = payloadConfig.collections.map((c) => c.slug) || []\n blocks.forEach((block) => {\n block.fields = sanitizeFields({\n config: payloadConfig,\n fields: block.fields,\n validRelationships,\n })\n })\n\n // find block used in this node\n const block = props.blocks.find((block) => block.slug === blockFieldData.blockType)\n if (!block || !block?.fields?.length || !blockFieldData) {\n return promises\n }\n\n recurseNestedFields({\n context,\n currentDepth,\n data: blockFieldData,\n depth,\n editorPopulationPromises,\n fields: block.fields,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n promises,\n req,\n showHiddenFields,\n // The afterReadPromise gets its data from looking for field.name inside the siblingDoc. Thus, here we cannot pass the whole document's siblingDoc, but only the siblingDoc (sibling fields) of the current field.\n siblingDoc: blockFieldData,\n })\n\n return promises\n }\n\n return blockPopulationPromise\n}\n"],"names":["sanitizeFields","recurseNestedFields","blockPopulationPromiseHOC","props","blockPopulationPromise","context","currentDepth","depth","editorPopulationPromises","findMany","flattenLocales","node","overrideAccess","populationPromises","req","showHiddenFields","siblingDoc","blocks","blockFieldData","fields","promises","payloadConfig","payload","config","validRelationships","collections","map","c","slug","forEach","block","find","blockType","length","data"],"mappings":"AAEA,SAASA,cAAc,QAAQ,iBAAgB;AAM/C,SAASC,mBAAmB,QAAQ,2CAA0C;AAE9E,OAAO,MAAMC,4BAA4B,CACvCC;IAEA,MAAMC,yBAAiE,CAAC,EACtEC,OAAO,EACPC,YAAY,EACZC,KAAK,EACLC,wBAAwB,EACxBC,QAAQ,EACRC,cAAc,EACdC,IAAI,EACJC,cAAc,EACdC,kBAAkB,EAClBC,GAAG,EACHC,gBAAgB,EAChBC,UAAU,EACX;QACC,MAAMC,SAAkBd,MAAMc,MAAM;QACpC,MAAMC,iBAAiBP,KAAKQ,MAAM;QAElC,MAAMC,WAA4B,EAAE;QAEpC,uHAAuH;QACvH,MAAMC,gBAAgBP,IAAIQ,OAAO,CAACC,MAAM;QACxC,MAAMC,qBAAqBH,cAAcI,WAAW,CAACC,GAAG,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAK,EAAE;QAC7EX,OAAOY,OAAO,CAAC,CAACC;YACdA,MAAMX,MAAM,GAAGnB,eAAe;gBAC5BuB,QAAQF;gBACRF,QAAQW,MAAMX,MAAM;gBACpBK;YACF;QACF;QAEA,+BAA+B;QAC/B,MAAMM,QAAQ3B,MAAMc,MAAM,CAACc,IAAI,CAAC,CAACD,QAAUA,MAAMF,IAAI,KAAKV,eAAec,SAAS;QAClF,IAAI,CAACF,SAAS,CAACA,OAAOX,QAAQc,UAAU,CAACf,gBAAgB;YACvD,OAAOE;QACT;QAEAnB,oBAAoB;YAClBI;YACAC;YACA4B,MAAMhB;YACNX;YACAC;YACAW,QAAQW,MAAMX,MAAM;YACpBV;YACAC;YACAE;YACAC;YACAO;YACAN;YACAC;YACA,kNAAkN;YAClNC,YAAYE;QACd;QAEA,OAAOE;IACT;IAEA,OAAOhB;AACT,EAAC"}
@@ -46,4 +46,4 @@ export const blockValidationHOC = (props)=>{
46
46
  return blockValidation;
47
47
  };
48
48
 
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9ibG9ja3MvdmFsaWRhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCbG9jayB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHNhbml0aXplRmllbGRzIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5cbmltcG9ydCB0eXBlIHsgTm9kZVZhbGlkYXRpb24gfSBmcm9tICcuLi90eXBlcy5qcydcbmltcG9ydCB0eXBlIHsgQmxvY2tzRmVhdHVyZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlLnNlcnZlci5qcydcbmltcG9ydCB0eXBlIHsgU2VyaWFsaXplZEJsb2NrTm9kZSB9IGZyb20gJy4vbm9kZXMvQmxvY2tzTm9kZS5qcydcblxuZXhwb3J0IGNvbnN0IGJsb2NrVmFsaWRhdGlvbkhPQyA9IChcbiAgcHJvcHM6IEJsb2Nrc0ZlYXR1cmVQcm9wcyxcbik6IE5vZGVWYWxpZGF0aW9uPFNlcmlhbGl6ZWRCbG9ja05vZGU+ID0+IHtcbiAgY29uc3QgYmxvY2tWYWxpZGF0aW9uOiBOb2RlVmFsaWRhdGlvbjxTZXJpYWxpemVkQmxvY2tOb2RlPiA9IGFzeW5jICh7IG5vZGUsIHZhbGlkYXRpb24gfSkgPT4ge1xuICAgIGNvbnN0IGJsb2NrRmllbGREYXRhID0gbm9kZS5maWVsZHNcbiAgICBjb25zdCBibG9ja3M6IEJsb2NrW10gPSBwcm9wcy5ibG9ja3NcblxuICAgIGNvbnN0IHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgcmVxLFxuICAgICAgICByZXE6IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IGNvbmZpZyB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9ID0gdmFsaWRhdGlvblxuXG4gICAgLy8gU2FuaXRpemUgYmxvY2sncyBmaWVsZHMgaGVyZS4gVGhpcyBpcyBkb25lIGhlcmUgYW5kIG5vdCBpbiB0aGUgZmVhdHVyZSwgYmVjYXVzZSB0aGUgcGF5bG9hZCBjb25maWcgaXMgYXZhaWxhYmxlIGhlcmVcbiAgICBjb25zdCB2YWxpZFJlbGF0aW9uc2hpcHMgPSBjb25maWcuY29sbGVjdGlvbnMubWFwKChjKSA9PiBjLnNsdWcpIHx8IFtdXG4gICAgYmxvY2tzLmZvckVhY2goKGJsb2NrKSA9PiB7XG4gICAgICBibG9jay5maWVsZHMgPSBzYW5pdGl6ZUZpZWxkcyh7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgZmllbGRzOiBibG9jay5maWVsZHMsXG4gICAgICAgIHZhbGlkUmVsYXRpb25zaGlwcyxcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIC8vIGZpbmQgYmxvY2tcbiAgICBjb25zdCBibG9jayA9IHByb3BzLmJsb2Nrcy5maW5kKChibG9jaykgPT4gYmxvY2suc2x1ZyA9PT0gYmxvY2tGaWVsZERhdGEuYmxvY2tUeXBlKVxuXG4gICAgLy8gdmFsaWRhdGUgYmxvY2tcbiAgICBpZiAoIWJsb2NrKSB7XG4gICAgICByZXR1cm4gJ0Jsb2NrIG5vdCBmb3VuZCdcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGJsb2NrLmZpZWxkcykge1xuICAgICAgaWYgKCd2YWxpZGF0ZScgaW4gZmllbGQgJiYgdHlwZW9mIGZpZWxkLnZhbGlkYXRlID09PSAnZnVuY3Rpb24nICYmIGZpZWxkLnZhbGlkYXRlKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkVmFsdWUgPSAnbmFtZScgaW4gZmllbGQgPyBub2RlLmZpZWxkc1tmaWVsZC5uYW1lXSA6IG51bGxcblxuICAgICAgICBjb25zdCBwYXNzZXNDb25kaXRpb24gPSBmaWVsZC5hZG1pbj8uY29uZGl0aW9uXG4gICAgICAgICAgPyBCb29sZWFuKFxuICAgICAgICAgICAgICBmaWVsZC5hZG1pbi5jb25kaXRpb24oZmllbGRWYWx1ZSwgbm9kZS5maWVsZHMsIHtcbiAgICAgICAgICAgICAgICB1c2VyOiByZXE/LnVzZXIsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogdHJ1ZVxuICAgICAgICBpZiAoIXBhc3Nlc0NvbmRpdGlvbikge1xuICAgICAgICAgIGNvbnRpbnVlIC8vIEZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvaXNzdWVzLzQwMDBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCBmaWVsZC52YWxpZGF0ZShmaWVsZFZhbHVlLCB7XG4gICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgaWQ6IHZhbGlkYXRpb24ub3B0aW9ucy5pZCxcbiAgICAgICAgICBkYXRhOiBmaWVsZFZhbHVlLFxuICAgICAgICAgIG9wZXJhdGlvbjogdmFsaWRhdGlvbi5vcHRpb25zLm9wZXJhdGlvbixcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2libGluZ0RhdGE6IHZhbGlkYXRpb24ub3B0aW9ucy5zaWJsaW5nRGF0YSxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAodmFsaWRhdGlvblJlc3VsdCAhPT0gdHJ1ZSkge1xuICAgICAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIGJsb2NrVmFsaWRhdGlvblxufVxuIl0sIm5hbWVzIjpbInNhbml0aXplRmllbGRzIiwiYmxvY2tWYWxpZGF0aW9uSE9DIiwicHJvcHMiLCJibG9ja1ZhbGlkYXRpb24iLCJub2RlIiwidmFsaWRhdGlvbiIsImJsb2NrRmllbGREYXRhIiwiZmllbGRzIiwiYmxvY2tzIiwib3B0aW9ucyIsInJlcSIsInBheWxvYWQiLCJjb25maWciLCJ2YWxpZFJlbGF0aW9uc2hpcHMiLCJjb2xsZWN0aW9ucyIsIm1hcCIsImMiLCJzbHVnIiwiZm9yRWFjaCIsImJsb2NrIiwiZmluZCIsImJsb2NrVHlwZSIsImZpZWxkIiwidmFsaWRhdGUiLCJmaWVsZFZhbHVlIiwibmFtZSIsInBhc3Nlc0NvbmRpdGlvbiIsImFkbWluIiwiY29uZGl0aW9uIiwiQm9vbGVhbiIsInVzZXIiLCJ2YWxpZGF0aW9uUmVzdWx0IiwiaWQiLCJkYXRhIiwib3BlcmF0aW9uIiwic2libGluZ0RhdGEiXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLGNBQWMsUUFBUSxpQkFBZ0I7QUFNL0MsT0FBTyxNQUFNQyxxQkFBcUIsQ0FDaENDO0lBRUEsTUFBTUMsa0JBQXVELE9BQU8sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUU7UUFDdEYsTUFBTUMsaUJBQWlCRixLQUFLRyxNQUFNO1FBQ2xDLE1BQU1DLFNBQWtCTixNQUFNTSxNQUFNO1FBRXBDLE1BQU0sRUFDSkMsU0FBUyxFQUNQQyxHQUFHLEVBQ0hBLEtBQUssRUFDSEMsU0FBUyxFQUFFQyxNQUFNLEVBQUUsRUFDcEIsRUFDRixFQUNGLEdBQUdQO1FBRUosdUhBQXVIO1FBQ3ZILE1BQU1RLHFCQUFxQkQsT0FBT0UsV0FBVyxDQUFDQyxHQUFHLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsSUFBSSxLQUFLLEVBQUU7UUFDdEVULE9BQU9VLE9BQU8sQ0FBQyxDQUFDQztZQUNkQSxNQUFNWixNQUFNLEdBQUdQLGVBQWU7Z0JBQzVCWTtnQkFDQUwsUUFBUVksTUFBTVosTUFBTTtnQkFDcEJNO1lBQ0Y7UUFDRjtRQUVBLGFBQWE7UUFDYixNQUFNTSxRQUFRakIsTUFBTU0sTUFBTSxDQUFDWSxJQUFJLENBQUMsQ0FBQ0QsUUFBVUEsTUFBTUYsSUFBSSxLQUFLWCxlQUFlZSxTQUFTO1FBRWxGLGlCQUFpQjtRQUNqQixJQUFJLENBQUNGLE9BQU87WUFDVixPQUFPO1FBQ1Q7UUFFQSxLQUFLLE1BQU1HLFNBQVNILE1BQU1aLE1BQU0sQ0FBRTtZQUNoQyxJQUFJLGNBQWNlLFNBQVMsT0FBT0EsTUFBTUMsUUFBUSxLQUFLLGNBQWNELE1BQU1DLFFBQVEsRUFBRTtnQkFDakYsTUFBTUMsYUFBYSxVQUFVRixRQUFRbEIsS0FBS0csTUFBTSxDQUFDZSxNQUFNRyxJQUFJLENBQUMsR0FBRztnQkFFL0QsTUFBTUMsa0JBQWtCSixNQUFNSyxLQUFLLEVBQUVDLFlBQ2pDQyxRQUNFUCxNQUFNSyxLQUFLLENBQUNDLFNBQVMsQ0FBQ0osWUFBWXBCLEtBQUtHLE1BQU0sRUFBRTtvQkFDN0N1QixNQUFNcEIsS0FBS29CO2dCQUNiLE1BRUY7Z0JBQ0osSUFBSSxDQUFDSixpQkFBaUI7b0JBQ3BCLFVBQVMsMERBQTBEO2dCQUNyRTtnQkFFQSxNQUFNSyxtQkFBbUIsTUFBTVQsTUFBTUMsUUFBUSxDQUFDQyxZQUFZO29CQUN4RCxHQUFHRixLQUFLO29CQUNSVSxJQUFJM0IsV0FBV0ksT0FBTyxDQUFDdUIsRUFBRTtvQkFDekJDLE1BQU1UO29CQUNOVSxXQUFXN0IsV0FBV0ksT0FBTyxDQUFDeUIsU0FBUztvQkFDdkN4QjtvQkFDQXlCLGFBQWE5QixXQUFXSSxPQUFPLENBQUMwQixXQUFXO2dCQUM3QztnQkFFQSxJQUFJSixxQkFBcUIsTUFBTTtvQkFDN0IsT0FBT0E7Z0JBQ1Q7WUFDRjtRQUNGO1FBRUEsT0FBTztJQUNUO0lBRUEsT0FBTzVCO0FBQ1QsRUFBQyJ9
49
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/field/features/blocks/validate.ts"],"sourcesContent":["import type { Block } from 'payload/types'\n\nimport { sanitizeFields } from 'payload/config'\n\nimport type { NodeValidation } from '../types.js'\nimport type { BlocksFeatureProps } from './feature.server.js'\nimport type { SerializedBlockNode } from './nodes/BlocksNode.js'\n\nexport const blockValidationHOC = (\n props: BlocksFeatureProps,\n): NodeValidation<SerializedBlockNode> => {\n const blockValidation: NodeValidation<SerializedBlockNode> = async ({ node, validation }) => {\n const blockFieldData = node.fields\n const blocks: Block[] = props.blocks\n\n const {\n options: {\n req,\n req: {\n payload: { config },\n },\n },\n } = validation\n\n // Sanitize block's fields here. This is done here and not in the feature, because the payload config is available here\n const validRelationships = config.collections.map((c) => c.slug) || []\n blocks.forEach((block) => {\n block.fields = sanitizeFields({\n config,\n fields: block.fields,\n validRelationships,\n })\n })\n\n // find block\n const block = props.blocks.find((block) => block.slug === blockFieldData.blockType)\n\n // validate block\n if (!block) {\n return 'Block not found'\n }\n\n for (const field of block.fields) {\n if ('validate' in field && typeof field.validate === 'function' && field.validate) {\n const fieldValue = 'name' in field ? node.fields[field.name] : null\n\n const passesCondition = field.admin?.condition\n ? Boolean(\n field.admin.condition(fieldValue, node.fields, {\n user: req?.user,\n }),\n )\n : true\n if (!passesCondition) {\n continue // Fixes https://github.com/payloadcms/payload/issues/4000\n }\n\n const validationResult = await field.validate(fieldValue, {\n ...field,\n id: validation.options.id,\n data: fieldValue,\n operation: validation.options.operation,\n req,\n siblingData: validation.options.siblingData,\n })\n\n if (validationResult !== true) {\n return validationResult\n }\n }\n }\n\n return true\n }\n\n return blockValidation\n}\n"],"names":["sanitizeFields","blockValidationHOC","props","blockValidation","node","validation","blockFieldData","fields","blocks","options","req","payload","config","validRelationships","collections","map","c","slug","forEach","block","find","blockType","field","validate","fieldValue","name","passesCondition","admin","condition","Boolean","user","validationResult","id","data","operation","siblingData"],"mappings":"AAEA,SAASA,cAAc,QAAQ,iBAAgB;AAM/C,OAAO,MAAMC,qBAAqB,CAChCC;IAEA,MAAMC,kBAAuD,OAAO,EAAEC,IAAI,EAAEC,UAAU,EAAE;QACtF,MAAMC,iBAAiBF,KAAKG,MAAM;QAClC,MAAMC,SAAkBN,MAAMM,MAAM;QAEpC,MAAM,EACJC,SAAS,EACPC,GAAG,EACHA,KAAK,EACHC,SAAS,EAAEC,MAAM,EAAE,EACpB,EACF,EACF,GAAGP;QAEJ,uHAAuH;QACvH,MAAMQ,qBAAqBD,OAAOE,WAAW,CAACC,GAAG,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAK,EAAE;QACtET,OAAOU,OAAO,CAAC,CAACC;YACdA,MAAMZ,MAAM,GAAGP,eAAe;gBAC5BY;gBACAL,QAAQY,MAAMZ,MAAM;gBACpBM;YACF;QACF;QAEA,aAAa;QACb,MAAMM,QAAQjB,MAAMM,MAAM,CAACY,IAAI,CAAC,CAACD,QAAUA,MAAMF,IAAI,KAAKX,eAAee,SAAS;QAElF,iBAAiB;QACjB,IAAI,CAACF,OAAO;YACV,OAAO;QACT;QAEA,KAAK,MAAMG,SAASH,MAAMZ,MAAM,CAAE;YAChC,IAAI,cAAce,SAAS,OAAOA,MAAMC,QAAQ,KAAK,cAAcD,MAAMC,QAAQ,EAAE;gBACjF,MAAMC,aAAa,UAAUF,QAAQlB,KAAKG,MAAM,CAACe,MAAMG,IAAI,CAAC,GAAG;gBAE/D,MAAMC,kBAAkBJ,MAAMK,KAAK,EAAEC,YACjCC,QACEP,MAAMK,KAAK,CAACC,SAAS,CAACJ,YAAYpB,KAAKG,MAAM,EAAE;oBAC7CuB,MAAMpB,KAAKoB;gBACb,MAEF;gBACJ,IAAI,CAACJ,iBAAiB;oBACpB,UAAS,0DAA0D;gBACrE;gBAEA,MAAMK,mBAAmB,MAAMT,MAAMC,QAAQ,CAACC,YAAY;oBACxD,GAAGF,KAAK;oBACRU,IAAI3B,WAAWI,OAAO,CAACuB,EAAE;oBACzBC,MAAMT;oBACNU,WAAW7B,WAAWI,OAAO,CAACyB,SAAS;oBACvCxB;oBACAyB,aAAa9B,WAAWI,OAAO,CAAC0B,WAAW;gBAC7C;gBAEA,IAAIJ,qBAAqB,MAAM;oBAC7B,OAAOA;gBACT;YACF;QACF;QAEA,OAAO;IACT;IAEA,OAAO5B;AACT,EAAC"}
@@ -7,4 +7,4 @@ export const FeaturesSectionWithEntries = (entries)=>{
7
7
  };
8
8
  };
9
9
 
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9jb21tb24vZmxvYXRpbmdTZWxlY3RUb29sYmFyRmVhdHVyZXNCdXR0b25zU2VjdGlvbi9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEZsb2F0aW5nVG9vbGJhclNlY3Rpb24sXG4gIEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeSxcbn0gZnJvbSAnLi4vLi4vLi4vbGV4aWNhbC9wbHVnaW5zL0Zsb2F0aW5nU2VsZWN0VG9vbGJhci90eXBlcy5qcydcblxuZXhwb3J0IGNvbnN0IEZlYXR1cmVzU2VjdGlvbldpdGhFbnRyaWVzID0gKFxuICBlbnRyaWVzOiBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uRW50cnlbXSxcbik6IEZsb2F0aW5nVG9vbGJhclNlY3Rpb24gPT4ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdidXR0b25zJyxcbiAgICBlbnRyaWVzLFxuICAgIGtleTogJ2ZlYXR1cmVzJyxcbiAgICBvcmRlcjogNSxcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkZlYXR1cmVzU2VjdGlvbldpdGhFbnRyaWVzIiwiZW50cmllcyIsInR5cGUiLCJrZXkiLCJvcmRlciJdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxNQUFNQSw2QkFBNkIsQ0FDeENDO0lBRUEsT0FBTztRQUNMQyxNQUFNO1FBQ05EO1FBQ0FFLEtBQUs7UUFDTEMsT0FBTztJQUNUO0FBQ0YsRUFBQyJ9
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.ts"],"sourcesContent":["import type {\n FloatingToolbarSection,\n FloatingToolbarSectionEntry,\n} from '../../../lexical/plugins/FloatingSelectToolbar/types.js'\n\nexport const FeaturesSectionWithEntries = (\n entries: FloatingToolbarSectionEntry[],\n): FloatingToolbarSection => {\n return {\n type: 'buttons',\n entries,\n key: 'features',\n order: 5,\n }\n}\n"],"names":["FeaturesSectionWithEntries","entries","type","key","order"],"mappings":"AAKA,OAAO,MAAMA,6BAA6B,CACxCC;IAEA,OAAO;QACLC,MAAM;QACND;QACAE,KAAK;QACLC,OAAO;IACT;AACF,EAAC"}
@@ -9,4 +9,4 @@ export const TextDropdownSectionWithEntries = (entries)=>{
9
9
  };
10
10
  };
11
11
 
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9jb21tb24vZmxvYXRpbmdTZWxlY3RUb29sYmFyVGV4dERyb3Bkb3duU2VjdGlvbi9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEZsb2F0aW5nVG9vbGJhclNlY3Rpb24sXG4gIEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeSxcbn0gZnJvbSAnLi4vLi4vLi4vbGV4aWNhbC9wbHVnaW5zL0Zsb2F0aW5nU2VsZWN0VG9vbGJhci90eXBlcy5qcydcblxuaW1wb3J0IHsgVGV4dEljb24gfSBmcm9tICcuLi8uLi8uLi9sZXhpY2FsL3VpL2ljb25zL1RleHQvaW5kZXguanMnXG5cbmV4cG9ydCBjb25zdCBUZXh0RHJvcGRvd25TZWN0aW9uV2l0aEVudHJpZXMgPSAoXG4gIGVudHJpZXM6IEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeVtdLFxuKTogRmxvYXRpbmdUb29sYmFyU2VjdGlvbiA9PiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ2Ryb3Bkb3duJyxcbiAgICBDaGlsZENvbXBvbmVudDogVGV4dEljb24sXG4gICAgZW50cmllcyxcbiAgICBrZXk6ICdkcm9wZG93bi10ZXh0JyxcbiAgICBvcmRlcjogMSxcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlRleHRJY29uIiwiVGV4dERyb3Bkb3duU2VjdGlvbldpdGhFbnRyaWVzIiwiZW50cmllcyIsInR5cGUiLCJDaGlsZENvbXBvbmVudCIsImtleSIsIm9yZGVyIl0sIm1hcHBpbmdzIjoiQUFLQSxTQUFTQSxRQUFRLFFBQVEsMENBQXlDO0FBRWxFLE9BQU8sTUFBTUMsaUNBQWlDLENBQzVDQztJQUVBLE9BQU87UUFDTEMsTUFBTTtRQUNOQyxnQkFBZ0JKO1FBQ2hCRTtRQUNBRyxLQUFLO1FBQ0xDLE9BQU87SUFDVDtBQUNGLEVBQUMifQ==
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/field/features/common/floatingSelectToolbarTextDropdownSection/index.ts"],"sourcesContent":["import type {\n FloatingToolbarSection,\n FloatingToolbarSectionEntry,\n} from '../../../lexical/plugins/FloatingSelectToolbar/types.js'\n\nimport { TextIcon } from '../../../lexical/ui/icons/Text/index.js'\n\nexport const TextDropdownSectionWithEntries = (\n entries: FloatingToolbarSectionEntry[],\n): FloatingToolbarSection => {\n return {\n type: 'dropdown',\n ChildComponent: TextIcon,\n entries,\n key: 'dropdown-text',\n order: 1,\n }\n}\n"],"names":["TextIcon","TextDropdownSectionWithEntries","entries","type","ChildComponent","key","order"],"mappings":"AAKA,SAASA,QAAQ,QAAQ,0CAAyC;AAElE,OAAO,MAAMC,iCAAiC,CAC5CC;IAEA,OAAO;QACLC,MAAM;QACNC,gBAAgBJ;QAChBE;QACAG,KAAK;QACLC,OAAO;IACT;AACF,EAAC"}
@@ -7,4 +7,4 @@ export const LinebreakHTMLConverter = {
7
7
  ]
8
8
  };
9
9
 
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9jb252ZXJ0ZXJzL2h0bWwvY29udmVydGVyL2NvbnZlcnRlcnMvbGluZWJyZWFrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VyaWFsaXplZFBhcmFncmFwaE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgdHlwZSB7IEhUTUxDb252ZXJ0ZXIgfSBmcm9tICcuLi90eXBlcy5qcydcblxuZXhwb3J0IGNvbnN0IExpbmVicmVha0hUTUxDb252ZXJ0ZXI6IEhUTUxDb252ZXJ0ZXI8U2VyaWFsaXplZFBhcmFncmFwaE5vZGU+ID0ge1xuICBjb252ZXJ0ZXIoKSB7XG4gICAgcmV0dXJuIGA8YnI+YFxuICB9LFxuICBub2RlVHlwZXM6IFsnbGluZWJyZWFrJ10sXG59XG4iXSwibmFtZXMiOlsiTGluZWJyZWFrSFRNTENvbnZlcnRlciIsImNvbnZlcnRlciIsIm5vZGVUeXBlcyJdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxNQUFNQSx5QkFBaUU7SUFDNUVDO1FBQ0UsT0FBTyxDQUFDLElBQUksQ0FBQztJQUNmO0lBQ0FDLFdBQVc7UUFBQztLQUFZO0FBQzFCLEVBQUMifQ==
10
+ //# sourceMappingURL=linebreak.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/field/features/converters/html/converter/converters/linebreak.ts"],"sourcesContent":["import type { SerializedParagraphNode } from 'lexical'\n\nimport type { HTMLConverter } from '../types.js'\n\nexport const LinebreakHTMLConverter: HTMLConverter<SerializedParagraphNode> = {\n converter() {\n return `<br>`\n },\n nodeTypes: ['linebreak'],\n}\n"],"names":["LinebreakHTMLConverter","converter","nodeTypes"],"mappings":"AAIA,OAAO,MAAMA,yBAAiE;IAC5EC;QACE,OAAO,CAAC,IAAI,CAAC;IACf;IACAC,WAAW;QAAC;KAAY;AAC1B,EAAC"}
@@ -17,4 +17,4 @@ export const ParagraphHTMLConverter = {
17
17
  ]
18
18
  };
19
19
 
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9jb252ZXJ0ZXJzL2h0bWwvY29udmVydGVyL2NvbnZlcnRlcnMvcGFyYWdyYXBoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VyaWFsaXplZFBhcmFncmFwaE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgdHlwZSB7IEhUTUxDb252ZXJ0ZXIgfSBmcm9tICcuLi90eXBlcy5qcydcblxuaW1wb3J0IHsgY29udmVydExleGljYWxOb2Rlc1RvSFRNTCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgY29uc3QgUGFyYWdyYXBoSFRNTENvbnZlcnRlcjogSFRNTENvbnZlcnRlcjxTZXJpYWxpemVkUGFyYWdyYXBoTm9kZT4gPSB7XG4gIGFzeW5jIGNvbnZlcnRlcih7IGNvbnZlcnRlcnMsIG5vZGUsIHBhcmVudCwgcGF5bG9hZCB9KSB7XG4gICAgY29uc3QgY2hpbGRyZW5UZXh0ID0gYXdhaXQgY29udmVydExleGljYWxOb2Rlc1RvSFRNTCh7XG4gICAgICBjb252ZXJ0ZXJzLFxuICAgICAgbGV4aWNhbE5vZGVzOiBub2RlLmNoaWxkcmVuLFxuICAgICAgcGFyZW50OiB7XG4gICAgICAgIC4uLm5vZGUsXG4gICAgICAgIHBhcmVudCxcbiAgICAgIH0sXG4gICAgICBwYXlsb2FkLFxuICAgIH0pXG4gICAgcmV0dXJuIGA8cD4ke2NoaWxkcmVuVGV4dH08L3A+YFxuICB9LFxuICBub2RlVHlwZXM6IFsncGFyYWdyYXBoJ10sXG59XG4iXSwibmFtZXMiOlsiY29udmVydExleGljYWxOb2Rlc1RvSFRNTCIsIlBhcmFncmFwaEhUTUxDb252ZXJ0ZXIiLCJjb252ZXJ0ZXIiLCJjb252ZXJ0ZXJzIiwibm9kZSIsInBhcmVudCIsInBheWxvYWQiLCJjaGlsZHJlblRleHQiLCJsZXhpY2FsTm9kZXMiLCJjaGlsZHJlbiIsIm5vZGVUeXBlcyJdLCJtYXBwaW5ncyI6IkFBSUEsU0FBU0EseUJBQXlCLFFBQVEsY0FBYTtBQUV2RCxPQUFPLE1BQU1DLHlCQUFpRTtJQUM1RSxNQUFNQyxXQUFVLEVBQUVDLFVBQVUsRUFBRUMsSUFBSSxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRTtRQUNuRCxNQUFNQyxlQUFlLE1BQU1QLDBCQUEwQjtZQUNuREc7WUFDQUssY0FBY0osS0FBS0ssUUFBUTtZQUMzQkosUUFBUTtnQkFDTixHQUFHRCxJQUFJO2dCQUNQQztZQUNGO1lBQ0FDO1FBQ0Y7UUFDQSxPQUFPLENBQUMsR0FBRyxFQUFFQyxhQUFhLElBQUksQ0FBQztJQUNqQztJQUNBRyxXQUFXO1FBQUM7S0FBWTtBQUMxQixFQUFDIn0=
20
+ //# sourceMappingURL=paragraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/field/features/converters/html/converter/converters/paragraph.ts"],"sourcesContent":["import type { SerializedParagraphNode } from 'lexical'\n\nimport type { HTMLConverter } from '../types.js'\n\nimport { convertLexicalNodesToHTML } from '../index.js'\n\nexport const ParagraphHTMLConverter: HTMLConverter<SerializedParagraphNode> = {\n async converter({ converters, node, parent, payload }) {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n lexicalNodes: node.children,\n parent: {\n ...node,\n parent,\n },\n payload,\n })\n return `<p>${childrenText}</p>`\n },\n nodeTypes: ['paragraph'],\n}\n"],"names":["convertLexicalNodesToHTML","ParagraphHTMLConverter","converter","converters","node","parent","payload","childrenText","lexicalNodes","children","nodeTypes"],"mappings":"AAIA,SAASA,yBAAyB,QAAQ,cAAa;AAEvD,OAAO,MAAMC,yBAAiE;IAC5E,MAAMC,WAAU,EAAEC,UAAU,EAAEC,IAAI,EAAEC,MAAM,EAAEC,OAAO,EAAE;QACnD,MAAMC,eAAe,MAAMP,0BAA0B;YACnDG;YACAK,cAAcJ,KAAKK,QAAQ;YAC3BJ,QAAQ;gBACN,GAAGD,IAAI;gBACPC;YACF;YACAC;QACF;QACA,OAAO,CAAC,GAAG,EAAEC,aAAa,IAAI,CAAC;IACjC;IACAG,WAAW;QAAC;KAAY;AAC1B,EAAC"}
@@ -30,4 +30,4 @@ export const TextHTMLConverter = {
30
30
  ]
31
31
  };
32
32
 
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9jb252ZXJ0ZXJzL2h0bWwvY29udmVydGVyL2NvbnZlcnRlcnMvdGV4dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRUZXh0Tm9kZSB9IGZyb20gJ2xleGljYWwnXG5cbmltcG9ydCB0eXBlIHsgSFRNTENvbnZlcnRlciB9IGZyb20gJy4uL3R5cGVzLmpzJ1xuXG5pbXBvcnQgeyBOb2RlRm9ybWF0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGV4aWNhbC91dGlscy9ub2RlRm9ybWF0LmpzJ1xuXG5leHBvcnQgY29uc3QgVGV4dEhUTUxDb252ZXJ0ZXI6IEhUTUxDb252ZXJ0ZXI8U2VyaWFsaXplZFRleHROb2RlPiA9IHtcbiAgY29udmVydGVyKHsgbm9kZSB9KSB7XG4gICAgbGV0IHRleHQgPSBub2RlLnRleHRcblxuICAgIGlmIChub2RlLmZvcm1hdCAmIE5vZGVGb3JtYXQuSVNfQk9MRCkge1xuICAgICAgdGV4dCA9IGA8c3Ryb25nPiR7dGV4dH08L3N0cm9uZz5gXG4gICAgfVxuICAgIGlmIChub2RlLmZvcm1hdCAmIE5vZGVGb3JtYXQuSVNfSVRBTElDKSB7XG4gICAgICB0ZXh0ID0gYDxlbT4ke3RleHR9PC9lbT5gXG4gICAgfVxuICAgIGlmIChub2RlLmZvcm1hdCAmIE5vZGVGb3JtYXQuSVNfU1RSSUtFVEhST1VHSCkge1xuICAgICAgdGV4dCA9IGA8c3BhbiBzdHlsZT1cInRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoXCI+JHt0ZXh0fTwvc3Bhbj5gXG4gICAgfVxuICAgIGlmIChub2RlLmZvcm1hdCAmIE5vZGVGb3JtYXQuSVNfVU5ERVJMSU5FKSB7XG4gICAgICB0ZXh0ID0gYDxzcGFuIHN0eWxlPVwidGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcIj4ke3RleHR9PC9zcGFuPmBcbiAgICB9XG4gICAgaWYgKG5vZGUuZm9ybWF0ICYgTm9kZUZvcm1hdC5JU19DT0RFKSB7XG4gICAgICB0ZXh0ID0gYDxjb2RlPiR7dGV4dH08L2NvZGU+YFxuICAgIH1cbiAgICBpZiAobm9kZS5mb3JtYXQgJiBOb2RlRm9ybWF0LklTX1NVQlNDUklQVCkge1xuICAgICAgdGV4dCA9IGA8c3ViPiR7dGV4dH08L3N1Yj5gXG4gICAgfVxuICAgIGlmIChub2RlLmZvcm1hdCAmIE5vZGVGb3JtYXQuSVNfU1VQRVJTQ1JJUFQpIHtcbiAgICAgIHRleHQgPSBgPHN1cD4ke3RleHR9PC9zdXA+YFxuICAgIH1cblxuICAgIHJldHVybiB0ZXh0XG4gIH0sXG4gIG5vZGVUeXBlczogWyd0ZXh0J10sXG59XG4iXSwibmFtZXMiOlsiTm9kZUZvcm1hdCIsIlRleHRIVE1MQ29udmVydGVyIiwiY29udmVydGVyIiwibm9kZSIsInRleHQiLCJmb3JtYXQiLCJJU19CT0xEIiwiSVNfSVRBTElDIiwiSVNfU1RSSUtFVEhST1VHSCIsIklTX1VOREVSTElORSIsIklTX0NPREUiLCJJU19TVUJTQ1JJUFQiLCJJU19TVVBFUlNDUklQVCIsIm5vZGVUeXBlcyJdLCJtYXBwaW5ncyI6IkFBSUEsU0FBU0EsVUFBVSxRQUFRLDZDQUE0QztBQUV2RSxPQUFPLE1BQU1DLG9CQUF1RDtJQUNsRUMsV0FBVSxFQUFFQyxJQUFJLEVBQUU7UUFDaEIsSUFBSUMsT0FBT0QsS0FBS0MsSUFBSTtRQUVwQixJQUFJRCxLQUFLRSxNQUFNLEdBQUdMLFdBQVdNLE9BQU8sRUFBRTtZQUNwQ0YsT0FBTyxDQUFDLFFBQVEsRUFBRUEsS0FBSyxTQUFTLENBQUM7UUFDbkM7UUFDQSxJQUFJRCxLQUFLRSxNQUFNLEdBQUdMLFdBQVdPLFNBQVMsRUFBRTtZQUN0Q0gsT0FBTyxDQUFDLElBQUksRUFBRUEsS0FBSyxLQUFLLENBQUM7UUFDM0I7UUFDQSxJQUFJRCxLQUFLRSxNQUFNLEdBQUdMLFdBQVdRLGdCQUFnQixFQUFFO1lBQzdDSixPQUFPLENBQUMsNENBQTRDLEVBQUVBLEtBQUssT0FBTyxDQUFDO1FBQ3JFO1FBQ0EsSUFBSUQsS0FBS0UsTUFBTSxHQUFHTCxXQUFXUyxZQUFZLEVBQUU7WUFDekNMLE9BQU8sQ0FBQyx5Q0FBeUMsRUFBRUEsS0FBSyxPQUFPLENBQUM7UUFDbEU7UUFDQSxJQUFJRCxLQUFLRSxNQUFNLEdBQUdMLFdBQVdVLE9BQU8sRUFBRTtZQUNwQ04sT0FBTyxDQUFDLE1BQU0sRUFBRUEsS0FBSyxPQUFPLENBQUM7UUFDL0I7UUFDQSxJQUFJRCxLQUFLRSxNQUFNLEdBQUdMLFdBQVdXLFlBQVksRUFBRTtZQUN6Q1AsT0FBTyxDQUFDLEtBQUssRUFBRUEsS0FBSyxNQUFNLENBQUM7UUFDN0I7UUFDQSxJQUFJRCxLQUFLRSxNQUFNLEdBQUdMLFdBQVdZLGNBQWMsRUFBRTtZQUMzQ1IsT0FBTyxDQUFDLEtBQUssRUFBRUEsS0FBSyxNQUFNLENBQUM7UUFDN0I7UUFFQSxPQUFPQTtJQUNUO0lBQ0FTLFdBQVc7UUFBQztLQUFPO0FBQ3JCLEVBQUMifQ==
33
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/field/features/converters/html/converter/converters/text.ts"],"sourcesContent":["import type { SerializedTextNode } from 'lexical'\n\nimport type { HTMLConverter } from '../types.js'\n\nimport { NodeFormat } from '../../../../../lexical/utils/nodeFormat.js'\n\nexport const TextHTMLConverter: HTMLConverter<SerializedTextNode> = {\n converter({ node }) {\n let text = node.text\n\n if (node.format & NodeFormat.IS_BOLD) {\n text = `<strong>${text}</strong>`\n }\n if (node.format & NodeFormat.IS_ITALIC) {\n text = `<em>${text}</em>`\n }\n if (node.format & NodeFormat.IS_STRIKETHROUGH) {\n text = `<span style=\"text-decoration: line-through\">${text}</span>`\n }\n if (node.format & NodeFormat.IS_UNDERLINE) {\n text = `<span style=\"text-decoration: underline\">${text}</span>`\n }\n if (node.format & NodeFormat.IS_CODE) {\n text = `<code>${text}</code>`\n }\n if (node.format & NodeFormat.IS_SUBSCRIPT) {\n text = `<sub>${text}</sub>`\n }\n if (node.format & NodeFormat.IS_SUPERSCRIPT) {\n text = `<sup>${text}</sup>`\n }\n\n return text\n },\n nodeTypes: ['text'],\n}\n"],"names":["NodeFormat","TextHTMLConverter","converter","node","text","format","IS_BOLD","IS_ITALIC","IS_STRIKETHROUGH","IS_UNDERLINE","IS_CODE","IS_SUBSCRIPT","IS_SUPERSCRIPT","nodeTypes"],"mappings":"AAIA,SAASA,UAAU,QAAQ,6CAA4C;AAEvE,OAAO,MAAMC,oBAAuD;IAClEC,WAAU,EAAEC,IAAI,EAAE;QAChB,IAAIC,OAAOD,KAAKC,IAAI;QAEpB,IAAID,KAAKE,MAAM,GAAGL,WAAWM,OAAO,EAAE;YACpCF,OAAO,CAAC,QAAQ,EAAEA,KAAK,SAAS,CAAC;QACnC;QACA,IAAID,KAAKE,MAAM,GAAGL,WAAWO,SAAS,EAAE;YACtCH,OAAO,CAAC,IAAI,EAAEA,KAAK,KAAK,CAAC;QAC3B;QACA,IAAID,KAAKE,MAAM,GAAGL,WAAWQ,gBAAgB,EAAE;YAC7CJ,OAAO,CAAC,4CAA4C,EAAEA,KAAK,OAAO,CAAC;QACrE;QACA,IAAID,KAAKE,MAAM,GAAGL,WAAWS,YAAY,EAAE;YACzCL,OAAO,CAAC,yCAAyC,EAAEA,KAAK,OAAO,CAAC;QAClE;QACA,IAAID,KAAKE,MAAM,GAAGL,WAAWU,OAAO,EAAE;YACpCN,OAAO,CAAC,MAAM,EAAEA,KAAK,OAAO,CAAC;QAC/B;QACA,IAAID,KAAKE,MAAM,GAAGL,WAAWW,YAAY,EAAE;YACzCP,OAAO,CAAC,KAAK,EAAEA,KAAK,MAAM,CAAC;QAC7B;QACA,IAAID,KAAKE,MAAM,GAAGL,WAAWY,cAAc,EAAE;YAC3CR,OAAO,CAAC,KAAK,EAAEA,KAAK,MAAM,CAAC;QAC7B;QAEA,OAAOA;IACT;IACAS,WAAW;QAAC;KAAO;AACrB,EAAC"}
@@ -7,4 +7,4 @@ export const defaultHTMLConverters = [
7
7
  LinebreakHTMLConverter
8
8
  ];
9
9
 
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9jb252ZXJ0ZXJzL2h0bWwvY29udmVydGVyL2RlZmF1bHRDb252ZXJ0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSFRNTENvbnZlcnRlciB9IGZyb20gJy4vdHlwZXMuanMnXG5cbmltcG9ydCB7IExpbmVicmVha0hUTUxDb252ZXJ0ZXIgfSBmcm9tICcuL2NvbnZlcnRlcnMvbGluZWJyZWFrLmpzJ1xuaW1wb3J0IHsgUGFyYWdyYXBoSFRNTENvbnZlcnRlciB9IGZyb20gJy4vY29udmVydGVycy9wYXJhZ3JhcGguanMnXG5pbXBvcnQgeyBUZXh0SFRNTENvbnZlcnRlciB9IGZyb20gJy4vY29udmVydGVycy90ZXh0LmpzJ1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEhUTUxDb252ZXJ0ZXJzOiBIVE1MQ29udmVydGVyW10gPSBbXG4gIFBhcmFncmFwaEhUTUxDb252ZXJ0ZXIsXG4gIFRleHRIVE1MQ29udmVydGVyLFxuICBMaW5lYnJlYWtIVE1MQ29udmVydGVyLFxuXVxuIl0sIm5hbWVzIjpbIkxpbmVicmVha0hUTUxDb252ZXJ0ZXIiLCJQYXJhZ3JhcGhIVE1MQ29udmVydGVyIiwiVGV4dEhUTUxDb252ZXJ0ZXIiLCJkZWZhdWx0SFRNTENvbnZlcnRlcnMiXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLHNCQUFzQixRQUFRLDRCQUEyQjtBQUNsRSxTQUFTQyxzQkFBc0IsUUFBUSw0QkFBMkI7QUFDbEUsU0FBU0MsaUJBQWlCLFFBQVEsdUJBQXNCO0FBRXhELE9BQU8sTUFBTUMsd0JBQXlDO0lBQ3BERjtJQUNBQztJQUNBRjtDQUNELENBQUEifQ==
10
+ //# sourceMappingURL=defaultConverters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/field/features/converters/html/converter/defaultConverters.ts"],"sourcesContent":["import type { HTMLConverter } from './types.js'\n\nimport { LinebreakHTMLConverter } from './converters/linebreak.js'\nimport { ParagraphHTMLConverter } from './converters/paragraph.js'\nimport { TextHTMLConverter } from './converters/text.js'\n\nexport const defaultHTMLConverters: HTMLConverter[] = [\n ParagraphHTMLConverter,\n TextHTMLConverter,\n LinebreakHTMLConverter,\n]\n"],"names":["LinebreakHTMLConverter","ParagraphHTMLConverter","TextHTMLConverter","defaultHTMLConverters"],"mappings":"AAEA,SAASA,sBAAsB,QAAQ,4BAA2B;AAClE,SAASC,sBAAsB,QAAQ,4BAA2B;AAClE,SAASC,iBAAiB,QAAQ,uBAAsB;AAExD,OAAO,MAAMC,wBAAyC;IACpDF;IACAC;IACAF;CACD,CAAA"}
@@ -36,4 +36,4 @@ export async function convertLexicalNodesToHTML({ converters, lexicalNodes, pare
36
36
  return htmlArray.join('') || '';
37
37
  }
38
38
 
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9jb252ZXJ0ZXJzL2h0bWwvY29udmVydGVyL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VyaWFsaXplZEVkaXRvclN0YXRlLCBTZXJpYWxpemVkTGV4aWNhbE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAncGF5bG9hZCdcblxuaW1wb3J0IHR5cGUgeyBIVE1MQ29udmVydGVyLCBTZXJpYWxpemVkTGV4aWNhbE5vZGVXaXRoUGFyZW50IH0gZnJvbSAnLi90eXBlcy5qcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbnZlcnRMZXhpY2FsVG9IVE1MKHtcbiAgY29udmVydGVycyxcbiAgZGF0YSxcbiAgcGF5bG9hZCxcbn06IHtcbiAgY29udmVydGVyczogSFRNTENvbnZlcnRlcltdXG4gIGRhdGE6IFNlcmlhbGl6ZWRFZGl0b3JTdGF0ZVxuICAvKipcbiAgICogV2hlbiB0aGUgY29udmVydGVyIGlzIGNhbGxlZCwgcGF5bG9hZCBDQU4gYmUgcGFzc2VkIGluIGRlcGVuZGluZyBvbiB3aGVyZSBpdCdzIHJ1bi5cbiAgICovXG4gIHBheWxvYWQ6IFBheWxvYWQgfCBudWxsXG59KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgaWYgKGRhdGE/LnJvb3Q/LmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gYXdhaXQgY29udmVydExleGljYWxOb2Rlc1RvSFRNTCh7XG4gICAgICBjb252ZXJ0ZXJzLFxuICAgICAgbGV4aWNhbE5vZGVzOiBkYXRhPy5yb290Py5jaGlsZHJlbixcbiAgICAgIHBhcmVudDogZGF0YT8ucm9vdCxcbiAgICAgIHBheWxvYWQsXG4gICAgfSlcbiAgfVxuICByZXR1cm4gJydcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbnZlcnRMZXhpY2FsTm9kZXNUb0hUTUwoe1xuICBjb252ZXJ0ZXJzLFxuICBsZXhpY2FsTm9kZXMsXG4gIHBhcmVudCxcbiAgcGF5bG9hZCxcbn06IHtcbiAgY29udmVydGVyczogSFRNTENvbnZlcnRlcltdXG4gIGxleGljYWxOb2RlczogU2VyaWFsaXplZExleGljYWxOb2RlW11cbiAgcGFyZW50OiBTZXJpYWxpemVkTGV4aWNhbE5vZGVXaXRoUGFyZW50XG4gIC8qKlxuICAgKiBXaGVuIHRoZSBjb252ZXJ0ZXIgaXMgY2FsbGVkLCBwYXlsb2FkIENBTiBiZSBwYXNzZWQgaW4gZGVwZW5kaW5nIG9uIHdoZXJlIGl0J3MgcnVuLlxuICAgKi9cbiAgcGF5bG9hZDogUGF5bG9hZCB8IG51bGxcbn0pOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCB1bmtub3duQ29udmVydGVyID0gY29udmVydGVycy5maW5kKChjb252ZXJ0ZXIpID0+IGNvbnZlcnRlci5ub2RlVHlwZXMuaW5jbHVkZXMoJ3Vua25vd24nKSlcblxuICBjb25zdCBodG1sQXJyYXkgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBsZXhpY2FsTm9kZXMubWFwKGFzeW5jIChub2RlLCBpKSA9PiB7XG4gICAgICBjb25zdCBjb252ZXJ0ZXJGb3JOb2RlID0gY29udmVydGVycy5maW5kKChjb252ZXJ0ZXIpID0+XG4gICAgICAgIGNvbnZlcnRlci5ub2RlVHlwZXMuaW5jbHVkZXMobm9kZS50eXBlKSxcbiAgICAgIClcbiAgICAgIGlmICghY29udmVydGVyRm9yTm9kZSkge1xuICAgICAgICBpZiAodW5rbm93bkNvbnZlcnRlcikge1xuICAgICAgICAgIHJldHVybiB1bmtub3duQ29udmVydGVyLmNvbnZlcnRlcih7IGNoaWxkSW5kZXg6IGksIGNvbnZlcnRlcnMsIG5vZGUsIHBhcmVudCwgcGF5bG9hZCB9KVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnPHNwYW4+dW5rbm93biBub2RlPC9zcGFuPidcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb252ZXJ0ZXJGb3JOb2RlLmNvbnZlcnRlcih7XG4gICAgICAgIGNoaWxkSW5kZXg6IGksXG4gICAgICAgIGNvbnZlcnRlcnMsXG4gICAgICAgIG5vZGUsXG4gICAgICAgIHBhcmVudCxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgIH0pXG4gICAgfSksXG4gIClcblxuICByZXR1cm4gaHRtbEFycmF5LmpvaW4oJycpIHx8ICcnXG59XG4iXSwibmFtZXMiOlsiY29udmVydExleGljYWxUb0hUTUwiLCJjb252ZXJ0ZXJzIiwiZGF0YSIsInBheWxvYWQiLCJyb290IiwiY2hpbGRyZW4iLCJsZW5ndGgiLCJjb252ZXJ0TGV4aWNhbE5vZGVzVG9IVE1MIiwibGV4aWNhbE5vZGVzIiwicGFyZW50IiwidW5rbm93bkNvbnZlcnRlciIsImZpbmQiLCJjb252ZXJ0ZXIiLCJub2RlVHlwZXMiLCJpbmNsdWRlcyIsImh0bWxBcnJheSIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJub2RlIiwiaSIsImNvbnZlcnRlckZvck5vZGUiLCJ0eXBlIiwiY2hpbGRJbmRleCIsImpvaW4iXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sZUFBZUEscUJBQXFCLEVBQ3pDQyxVQUFVLEVBQ1ZDLElBQUksRUFDSkMsT0FBTyxFQVFSO0lBQ0MsSUFBSUQsTUFBTUUsTUFBTUMsVUFBVUMsUUFBUTtRQUNoQyxPQUFPLE1BQU1DLDBCQUEwQjtZQUNyQ047WUFDQU8sY0FBY04sTUFBTUUsTUFBTUM7WUFDMUJJLFFBQVFQLE1BQU1FO1lBQ2REO1FBQ0Y7SUFDRjtJQUNBLE9BQU87QUFDVDtBQUVBLE9BQU8sZUFBZUksMEJBQTBCLEVBQzlDTixVQUFVLEVBQ1ZPLFlBQVksRUFDWkMsTUFBTSxFQUNOTixPQUFPLEVBU1I7SUFDQyxNQUFNTyxtQkFBbUJULFdBQVdVLElBQUksQ0FBQyxDQUFDQyxZQUFjQSxVQUFVQyxTQUFTLENBQUNDLFFBQVEsQ0FBQztJQUVyRixNQUFNQyxZQUFZLE1BQU1DLFFBQVFDLEdBQUcsQ0FDakNULGFBQWFVLEdBQUcsQ0FBQyxPQUFPQyxNQUFNQztRQUM1QixNQUFNQyxtQkFBbUJwQixXQUFXVSxJQUFJLENBQUMsQ0FBQ0MsWUFDeENBLFVBQVVDLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDSyxLQUFLRyxJQUFJO1FBRXhDLElBQUksQ0FBQ0Qsa0JBQWtCO1lBQ3JCLElBQUlYLGtCQUFrQjtnQkFDcEIsT0FBT0EsaUJBQWlCRSxTQUFTLENBQUM7b0JBQUVXLFlBQVlIO29CQUFHbkI7b0JBQVlrQjtvQkFBTVY7b0JBQVFOO2dCQUFRO1lBQ3ZGO1lBQ0EsT0FBTztRQUNUO1FBQ0EsT0FBT2tCLGlCQUFpQlQsU0FBUyxDQUFDO1lBQ2hDVyxZQUFZSDtZQUNabkI7WUFDQWtCO1lBQ0FWO1lBQ0FOO1FBQ0Y7SUFDRjtJQUdGLE9BQU9ZLFVBQVVTLElBQUksQ0FBQyxPQUFPO0FBQy9CIn0=
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/field/features/converters/html/converter/index.ts"],"sourcesContent":["import type { SerializedEditorState, SerializedLexicalNode } from 'lexical'\nimport type { Payload } from 'payload'\n\nimport type { HTMLConverter, SerializedLexicalNodeWithParent } from './types.js'\n\nexport async function convertLexicalToHTML({\n converters,\n data,\n payload,\n}: {\n converters: HTMLConverter[]\n data: SerializedEditorState\n /**\n * When the converter is called, payload CAN be passed in depending on where it's run.\n */\n payload: Payload | null\n}): Promise<string> {\n if (data?.root?.children?.length) {\n return await convertLexicalNodesToHTML({\n converters,\n lexicalNodes: data?.root?.children,\n parent: data?.root,\n payload,\n })\n }\n return ''\n}\n\nexport async function convertLexicalNodesToHTML({\n converters,\n lexicalNodes,\n parent,\n payload,\n}: {\n converters: HTMLConverter[]\n lexicalNodes: SerializedLexicalNode[]\n parent: SerializedLexicalNodeWithParent\n /**\n * When the converter is called, payload CAN be passed in depending on where it's run.\n */\n payload: Payload | null\n}): Promise<string> {\n const unknownConverter = converters.find((converter) => converter.nodeTypes.includes('unknown'))\n\n const htmlArray = await Promise.all(\n lexicalNodes.map(async (node, i) => {\n const converterForNode = converters.find((converter) =>\n converter.nodeTypes.includes(node.type),\n )\n if (!converterForNode) {\n if (unknownConverter) {\n return unknownConverter.converter({ childIndex: i, converters, node, parent, payload })\n }\n return '<span>unknown node</span>'\n }\n return converterForNode.converter({\n childIndex: i,\n converters,\n node,\n parent,\n payload,\n })\n }),\n )\n\n return htmlArray.join('') || ''\n}\n"],"names":["convertLexicalToHTML","converters","data","payload","root","children","length","convertLexicalNodesToHTML","lexicalNodes","parent","unknownConverter","find","converter","nodeTypes","includes","htmlArray","Promise","all","map","node","i","converterForNode","type","childIndex","join"],"mappings":"AAKA,OAAO,eAAeA,qBAAqB,EACzCC,UAAU,EACVC,IAAI,EACJC,OAAO,EAQR;IACC,IAAID,MAAME,MAAMC,UAAUC,QAAQ;QAChC,OAAO,MAAMC,0BAA0B;YACrCN;YACAO,cAAcN,MAAME,MAAMC;YAC1BI,QAAQP,MAAME;YACdD;QACF;IACF;IACA,OAAO;AACT;AAEA,OAAO,eAAeI,0BAA0B,EAC9CN,UAAU,EACVO,YAAY,EACZC,MAAM,EACNN,OAAO,EASR;IACC,MAAMO,mBAAmBT,WAAWU,IAAI,CAAC,CAACC,YAAcA,UAAUC,SAAS,CAACC,QAAQ,CAAC;IAErF,MAAMC,YAAY,MAAMC,QAAQC,GAAG,CACjCT,aAAaU,GAAG,CAAC,OAAOC,MAAMC;QAC5B,MAAMC,mBAAmBpB,WAAWU,IAAI,CAAC,CAACC,YACxCA,UAAUC,SAAS,CAACC,QAAQ,CAACK,KAAKG,IAAI;QAExC,IAAI,CAACD,kBAAkB;YACrB,IAAIX,kBAAkB;gBACpB,OAAOA,iBAAiBE,SAAS,CAAC;oBAAEW,YAAYH;oBAAGnB;oBAAYkB;oBAAMV;oBAAQN;gBAAQ;YACvF;YACA,OAAO;QACT;QACA,OAAOkB,iBAAiBT,SAAS,CAAC;YAChCW,YAAYH;YACZnB;YACAkB;YACAV;YACAN;QACF;IACF;IAGF,OAAOY,UAAUS,IAAI,CAAC,OAAO;AAC/B"}
@@ -1,3 +1,3 @@
1
1
  export { };
2
2
 
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9jb252ZXJ0ZXJzL2h0bWwvY29udmVydGVyL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VyaWFsaXplZExleGljYWxOb2RlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5cbmV4cG9ydCB0eXBlIEhUTUxDb252ZXJ0ZXI8VCBleHRlbmRzIFNlcmlhbGl6ZWRMZXhpY2FsTm9kZSA9IFNlcmlhbGl6ZWRMZXhpY2FsTm9kZT4gPSB7XG4gIGNvbnZlcnRlcjogKHtcbiAgICBjaGlsZEluZGV4LFxuICAgIGNvbnZlcnRlcnMsXG4gICAgbm9kZSxcbiAgICBwYXJlbnQsXG4gICAgcGF5bG9hZCxcbiAgfToge1xuICAgIGNoaWxkSW5kZXg6IG51bWJlclxuICAgIGNvbnZlcnRlcnM6IEhUTUxDb252ZXJ0ZXJbXVxuICAgIG5vZGU6IFRcbiAgICBwYXJlbnQ6IFNlcmlhbGl6ZWRMZXhpY2FsTm9kZVdpdGhQYXJlbnRcbiAgICAvKipcbiAgICAgKiBXaGVuIHRoZSBjb252ZXJ0ZXIgaXMgY2FsbGVkLCBwYXlsb2FkIENBTiBiZSBwYXNzZWQgaW4gZGVwZW5kaW5nIG9uIHdoZXJlIGl0J3MgcnVuLlxuICAgICAqL1xuICAgIHBheWxvYWQ6IFBheWxvYWQgfCBudWxsXG4gIH0pID0+IFByb21pc2U8c3RyaW5nPiB8IHN0cmluZ1xuICBub2RlVHlwZXM6IHN0cmluZ1tdXG59XG5cbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWRMZXhpY2FsTm9kZVdpdGhQYXJlbnQgPSBTZXJpYWxpemVkTGV4aWNhbE5vZGUgJiB7XG4gIHBhcmVudD86IFNlcmlhbGl6ZWRMZXhpY2FsTm9kZVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVCQSxXQUVDIn0=
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/field/features/converters/html/converter/types.ts"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\nimport type { Payload } from 'payload'\n\nexport type HTMLConverter<T extends SerializedLexicalNode = SerializedLexicalNode> = {\n converter: ({\n childIndex,\n converters,\n node,\n parent,\n payload,\n }: {\n childIndex: number\n converters: HTMLConverter[]\n node: T\n parent: SerializedLexicalNodeWithParent\n /**\n * When the converter is called, payload CAN be passed in depending on where it's run.\n */\n payload: Payload | null\n }) => Promise<string> | string\n nodeTypes: string[]\n}\n\nexport type SerializedLexicalNodeWithParent = SerializedLexicalNode & {\n parent?: SerializedLexicalNode\n}\n"],"names":[],"mappings":"AAuBA,WAEC"}
@@ -11,4 +11,4 @@ export const HTMLConverterFeature = (props)=>{
11
11
  };
12
12
  };
13
13
 
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9jb252ZXJ0ZXJzL2h0bWwvZmVhdHVyZS5zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGZWF0dXJlUHJvdmlkZXJQcm92aWRlclNlcnZlciB9IGZyb20gJy4uLy4uL3R5cGVzLmpzJ1xuaW1wb3J0IHR5cGUgeyBIVE1MQ29udmVydGVyIH0gZnJvbSAnLi9jb252ZXJ0ZXIvdHlwZXMuanMnXG5cbmV4cG9ydCB0eXBlIEhUTUxDb252ZXJ0ZXJGZWF0dXJlUHJvcHMgPSB7XG4gIGNvbnZlcnRlcnM/OlxuICAgIHwgKCh7IGRlZmF1bHRDb252ZXJ0ZXJzIH06IHsgZGVmYXVsdENvbnZlcnRlcnM6IEhUTUxDb252ZXJ0ZXJbXSB9KSA9PiBIVE1MQ29udmVydGVyW10pXG4gICAgfCBIVE1MQ29udmVydGVyW11cbn1cblxuZXhwb3J0IGNvbnN0IEhUTUxDb252ZXJ0ZXJGZWF0dXJlOiBGZWF0dXJlUHJvdmlkZXJQcm92aWRlclNlcnZlcjxcbiAgSFRNTENvbnZlcnRlckZlYXR1cmVQcm9wcyxcbiAgdW5kZWZpbmVkXG4+ID0gKHByb3BzKSA9PiB7XG4gIHJldHVybiB7XG4gICAgZmVhdHVyZTogKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2xpZW50RmVhdHVyZVByb3BzOiBudWxsLFxuICAgICAgICBzZXJ2ZXJGZWF0dXJlUHJvcHM6IHByb3BzLFxuICAgICAgfVxuICAgIH0sXG4gICAga2V5OiAnaHRtbENvbnZlcnRlcicsXG4gICAgc2VydmVyRmVhdHVyZVByb3BzOiBwcm9wcyxcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkhUTUxDb252ZXJ0ZXJGZWF0dXJlIiwicHJvcHMiLCJmZWF0dXJlIiwiY2xpZW50RmVhdHVyZVByb3BzIiwic2VydmVyRmVhdHVyZVByb3BzIiwia2V5Il0sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLE1BQU1BLHVCQUdULENBQUNDO0lBQ0gsT0FBTztRQUNMQyxTQUFTO1lBQ1AsT0FBTztnQkFDTEMsb0JBQW9CO2dCQUNwQkMsb0JBQW9CSDtZQUN0QjtRQUNGO1FBQ0FJLEtBQUs7UUFDTEQsb0JBQW9CSDtJQUN0QjtBQUNGLEVBQUMifQ==
14
+ //# sourceMappingURL=feature.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/field/features/converters/html/feature.server.ts"],"sourcesContent":["import type { FeatureProviderProviderServer } from '../../types.js'\nimport type { HTMLConverter } from './converter/types.js'\n\nexport type HTMLConverterFeatureProps = {\n converters?:\n | (({ defaultConverters }: { defaultConverters: HTMLConverter[] }) => HTMLConverter[])\n | HTMLConverter[]\n}\n\nexport const HTMLConverterFeature: FeatureProviderProviderServer<\n HTMLConverterFeatureProps,\n undefined\n> = (props) => {\n return {\n feature: () => {\n return {\n clientFeatureProps: null,\n serverFeatureProps: props,\n }\n },\n key: 'htmlConverter',\n serverFeatureProps: props,\n }\n}\n"],"names":["HTMLConverterFeature","props","feature","clientFeatureProps","serverFeatureProps","key"],"mappings":"AASA,OAAO,MAAMA,uBAGT,CAACC;IACH,OAAO;QACLC,SAAS;YACP,OAAO;gBACLC,oBAAoB;gBACpBC,oBAAoBH;YACtB;QACF;QACAI,KAAK;QACLD,oBAAoBH;IACtB;AACF,EAAC"}
@@ -111,4 +111,4 @@ export const lexicalHTML = (lexicalFieldName, props)=>{
111
111
  };
112
112
  };
113
113
 
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9jb252ZXJ0ZXJzL2h0bWwvZmllbGQvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTZXJpYWxpemVkRWRpdG9yU3RhdGUgfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCwgUmljaFRleHRGaWVsZCwgVGV4dEZpZWxkIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHR5cGUgeyBMZXhpY2FsUmljaFRleHRBZGFwdGVyLCBTYW5pdGl6ZWRTZXJ2ZXJFZGl0b3JDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9pbmRleC5qcydcbmltcG9ydCB0eXBlIHsgQWRhcHRlclByb3BzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdHlwZXMuanMnXG5pbXBvcnQgdHlwZSB7IEhUTUxDb252ZXJ0ZXIgfSBmcm9tICcuLi9jb252ZXJ0ZXIvdHlwZXMuanMnXG5pbXBvcnQgdHlwZSB7IEhUTUxDb252ZXJ0ZXJGZWF0dXJlUHJvcHMgfSBmcm9tICcuLi9mZWF0dXJlLnNlcnZlci5qcydcblxuaW1wb3J0IHsgZGVmYXVsdEhUTUxDb252ZXJ0ZXJzIH0gZnJvbSAnLi4vY29udmVydGVyL2RlZmF1bHRDb252ZXJ0ZXJzLmpzJ1xuaW1wb3J0IHsgY29udmVydExleGljYWxUb0hUTUwgfSBmcm9tICcuLi9jb252ZXJ0ZXIvaW5kZXguanMnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIG5hbWU6IHN0cmluZ1xufVxuXG4vKipcbiAqIENvbWJpbmVzIHRoZSBkZWZhdWx0IEhUTUwgY29udmVydGVycyB3aXRoIEhUTUwgY29udmVydGVycyBmb3VuZCBpbiB0aGUgZmVhdHVyZXMsIGFuZCB3aXRoIEhUTUwgY29udmVydGVycyBjb25maWd1cmVkIGluIHRoZSBodG1sQ29udmVydGVyIGZlYXR1cmUuXG4gKlxuICogQHBhcmFtIGVkaXRvckNvbmZpZ1xuICovXG5leHBvcnQgY29uc3QgY29uc29saWRhdGVIVE1MQ29udmVydGVycyA9ICh7XG4gIGVkaXRvckNvbmZpZyxcbn06IHtcbiAgZWRpdG9yQ29uZmlnOiBTYW5pdGl6ZWRTZXJ2ZXJFZGl0b3JDb25maWdcbn0pID0+IHtcbiAgY29uc3QgaHRtbENvbnZlcnRlckZlYXR1cmUgPSBlZGl0b3JDb25maWcucmVzb2x2ZWRGZWF0dXJlTWFwLmdldCgnaHRtbENvbnZlcnRlcicpXG4gIGNvbnN0IGh0bWxDb252ZXJ0ZXJGZWF0dXJlUHJvcHM6IEhUTUxDb252ZXJ0ZXJGZWF0dXJlUHJvcHMgPVxuICAgIGh0bWxDb252ZXJ0ZXJGZWF0dXJlPy5zZXJ2ZXJGZWF0dXJlUHJvcHNcblxuICBjb25zdCBkZWZhdWx0Q29udmVydGVyc1dpdGhDb252ZXJ0ZXJzRnJvbUZlYXR1cmVzID0gZGVmYXVsdEhUTUxDb252ZXJ0ZXJzXG5cbiAgZm9yIChjb25zdCBjb252ZXJ0ZXIgb2YgZWRpdG9yQ29uZmlnLmZlYXR1cmVzLmNvbnZlcnRlcnMuaHRtbCkge1xuICAgIGRlZmF1bHRDb252ZXJ0ZXJzV2l0aENvbnZlcnRlcnNGcm9tRmVhdHVyZXMucHVzaChjb252ZXJ0ZXIpXG4gIH1cblxuICBjb25zdCBmaW5hbENvbnZlcnRlcnMgPVxuICAgIGh0bWxDb252ZXJ0ZXJGZWF0dXJlUHJvcHM/LmNvbnZlcnRlcnMgJiZcbiAgICB0eXBlb2YgaHRtbENvbnZlcnRlckZlYXR1cmVQcm9wcz8uY29udmVydGVycyA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyBodG1sQ29udmVydGVyRmVhdHVyZVByb3BzLmNvbnZlcnRlcnMoe1xuICAgICAgICAgIGRlZmF1bHRDb252ZXJ0ZXJzOiBkZWZhdWx0Q29udmVydGVyc1dpdGhDb252ZXJ0ZXJzRnJvbUZlYXR1cmVzLFxuICAgICAgICB9KVxuICAgICAgOiAoaHRtbENvbnZlcnRlckZlYXR1cmVQcm9wcz8uY29udmVydGVycyBhcyBIVE1MQ29udmVydGVyW10pIHx8XG4gICAgICAgIGRlZmF1bHRDb252ZXJ0ZXJzV2l0aENvbnZlcnRlcnNGcm9tRmVhdHVyZXNcblxuICByZXR1cm4gZmluYWxDb252ZXJ0ZXJzXG59XG5cbmV4cG9ydCBjb25zdCBsZXhpY2FsSFRNTDogKFxuICAvKipcbiAgICogQSBzdHJpbmcgd2hpY2ggbWF0Y2hlcyB0aGUgbGV4aWNhbCBmaWVsZCBuYW1lIHlvdSB3YW50IHRvIGNvbnZlcnQgdG8gSFRNTC5cbiAgICpcbiAgICogVGhpcyBoYXMgdG8gYmUgYSBTSUJMSU5HIGZpZWxkIG9mIHRoaXMgbGV4aWNhbEhUTUwgZmllbGQgLSBvdGhlcndpc2UsIGl0IHdvbid0IGJlIGFibGUgdG8gZmluZCB0aGUgbGV4aWNhbCBmaWVsZC5cbiAgICoqL1xuICBsZXhpY2FsRmllbGROYW1lOiBzdHJpbmcsXG4gIHByb3BzOiBQcm9wcyxcbikgPT4gVGV4dEZpZWxkID0gKGxleGljYWxGaWVsZE5hbWUsIHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgbmFtZSA9ICdsZXhpY2FsSFRNTCcgfSA9IHByb3BzXG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICB9LFxuICAgIGhvb2tzOiB7XG4gICAgICBhZnRlclJlYWQ6IFtcbiAgICAgICAgYXN5bmMgKHsgY29sbGVjdGlvbiwgZmllbGQsIGdsb2JhbCwgcmVxLCBzaWJsaW5nRGF0YSB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgZmllbGRzID0gY29sbGVjdGlvbiA/IGNvbGxlY3Rpb24uZmllbGRzIDogZ2xvYmFsLmZpZWxkc1xuXG4gICAgICAgICAgLy8gZmluZCB0aGUgcGF0aCBvZiB0aGlzIGZpZWxkLCBhcyB3ZWxsIGFzIGl0cyBzaWJsaW5nIGZpZWxkcywgYnkgbG9va2luZyBmb3IgdGhpcyBgZmllbGRgIGluIGZpZWxkcyBhbmQgdHJhdmVyc2luZyBpdCByZWN1cnNpdmVseVxuICAgICAgICAgIGZ1bmN0aW9uIGZpbmRGaWVsZFBhdGhBbmRTaWJsaW5nRmllbGRzKFxuICAgICAgICAgICAgZmllbGRzOiBGaWVsZFtdLFxuICAgICAgICAgICAgcGF0aDogc3RyaW5nW10sXG4gICAgICAgICAgKToge1xuICAgICAgICAgICAgcGF0aDogc3RyaW5nW11cbiAgICAgICAgICAgIHNpYmxpbmdGaWVsZHM6IEZpZWxkW11cbiAgICAgICAgICB9IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY3VyRmllbGQgb2YgZmllbGRzKSB7XG4gICAgICAgICAgICAgIGlmIChjdXJGaWVsZCA9PT0gZmllbGQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgcGF0aDogWy4uLnBhdGgsIGN1ckZpZWxkLm5hbWVdLFxuICAgICAgICAgICAgICAgICAgc2libGluZ0ZpZWxkczogZmllbGRzLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICgnZmllbGRzJyBpbiBjdXJGaWVsZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGZpbmRGaWVsZFBhdGhBbmRTaWJsaW5nRmllbGRzKFxuICAgICAgICAgICAgICAgICAgY3VyRmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICAgICAgJ25hbWUnIGluIGN1ckZpZWxkID8gWy4uLnBhdGgsIGN1ckZpZWxkLm5hbWVdIDogWy4uLnBhdGhdLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKCd0YWJzJyBpbiBjdXJGaWVsZCkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdGFiIG9mIGN1ckZpZWxkLnRhYnMpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGZpbmRGaWVsZFBhdGhBbmRTaWJsaW5nRmllbGRzKFxuICAgICAgICAgICAgICAgICAgICB0YWIuZmllbGRzLFxuICAgICAgICAgICAgICAgICAgICAnbmFtZScgaW4gdGFiID8gWy4uLnBhdGgsIHRhYi5uYW1lXSA6IFsuLi5wYXRoXSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmICgnYmxvY2tzJyBpbiBjdXJGaWVsZCkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYmxvY2sgb2YgY3VyRmllbGQuYmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoYmxvY2s/LmZpZWxkcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGZpbmRGaWVsZFBhdGhBbmRTaWJsaW5nRmllbGRzKGJsb2NrLmZpZWxkcywgW1xuICAgICAgICAgICAgICAgICAgICAgIC4uLnBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgY3VyRmllbGQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICBibG9jay5zbHVnLFxuICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZm91bmRTaWJsaW5nRmllbGRzID0gZmluZEZpZWxkUGF0aEFuZFNpYmxpbmdGaWVsZHMoZmllbGRzLCBbXSlcblxuICAgICAgICAgIGlmICghZm91bmRTaWJsaW5nRmllbGRzKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgQ291bGQgbm90IGZpbmQgc2libGluZyBmaWVsZHMgb2YgY3VycmVudCBsZXhpY2FsSFRNTCBmaWVsZCB3aXRoIG5hbWUgJHtmaWVsZD8ubmFtZX1gLFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgY29uc3QgeyBzaWJsaW5nRmllbGRzIH0gPSBmb3VuZFNpYmxpbmdGaWVsZHNcbiAgICAgICAgICBjb25zdCBsZXhpY2FsRmllbGQ6IFJpY2hUZXh0RmllbGQ8U2VyaWFsaXplZEVkaXRvclN0YXRlLCBBZGFwdGVyUHJvcHM+ID1cbiAgICAgICAgICAgIHNpYmxpbmdGaWVsZHMuZmluZChcbiAgICAgICAgICAgICAgKGZpZWxkKSA9PiAnbmFtZScgaW4gZmllbGQgJiYgZmllbGQubmFtZSA9PT0gbGV4aWNhbEZpZWxkTmFtZSxcbiAgICAgICAgICAgICkgYXMgUmljaFRleHRGaWVsZDxTZXJpYWxpemVkRWRpdG9yU3RhdGUsIEFkYXB0ZXJQcm9wcz5cblxuICAgICAgICAgIGNvbnN0IGxleGljYWxGaWVsZERhdGE6IFNlcmlhbGl6ZWRFZGl0b3JTdGF0ZSA9IHNpYmxpbmdEYXRhW2xleGljYWxGaWVsZE5hbWVdXG5cbiAgICAgICAgICBpZiAoIWxleGljYWxGaWVsZERhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiAnJ1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghbGV4aWNhbEZpZWxkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICdZb3UgY2Fubm90IHVzZSB0aGUgbGV4aWNhbEhUTUwgZmllbGQgYmVjYXVzZSB0aGUgcmVmZXJlbmNlZCBsZXhpY2FsIGZpZWxkIHdhcyBub3QgZm91bmQnLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IChsZXhpY2FsRmllbGQ/LmVkaXRvciBhcyBMZXhpY2FsUmljaFRleHRBZGFwdGVyKT8uZWRpdG9yQ29uZmlnXG5cbiAgICAgICAgICBpZiAoIWNvbmZpZykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAnVGhlIGxpbmtlZCBsZXhpY2FsIGZpZWxkIGRvZXMgbm90IGhhdmUgYW4gZWRpdG9yQ29uZmlnLiBUaGlzIGlzIG5lZWRlZCBmb3IgdGhlIGxleGljYWxIVE1MIGZpZWxkLicsXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFjb25maWc/LnJlc29sdmVkRmVhdHVyZU1hcD8uaGFzKCdodG1sQ29udmVydGVyJykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgJ1lvdSBjYW5ub3QgdXNlIHRoZSBsZXhpY2FsSFRNTCBmaWVsZCBiZWNhdXNlIHRoZSBsaW5rZWQgbGV4aWNhbCBmaWVsZCBkb2VzIG5vdCBoYXZlIGEgSFRNTENvbnZlcnRlckZlYXR1cmUnLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGZpbmFsQ29udmVydGVycyA9IGNvbnNvbGlkYXRlSFRNTENvbnZlcnRlcnMoe1xuICAgICAgICAgICAgZWRpdG9yQ29uZmlnOiBjb25maWcsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHJldHVybiBhd2FpdCBjb252ZXJ0TGV4aWNhbFRvSFRNTCh7XG4gICAgICAgICAgICBjb252ZXJ0ZXJzOiBmaW5hbENvbnZlcnRlcnMsXG4gICAgICAgICAgICBkYXRhOiBsZXhpY2FsRmllbGREYXRhLFxuICAgICAgICAgICAgcGF5bG9hZDogcmVxLnBheWxvYWQsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfVxufVxuIl0sIm5hbWVzIjpbImRlZmF1bHRIVE1MQ29udmVydGVycyIsImNvbnZlcnRMZXhpY2FsVG9IVE1MIiwiY29uc29saWRhdGVIVE1MQ29udmVydGVycyIsImVkaXRvckNvbmZpZyIsImh0bWxDb252ZXJ0ZXJGZWF0dXJlIiwicmVzb2x2ZWRGZWF0dXJlTWFwIiwiZ2V0IiwiaHRtbENvbnZlcnRlckZlYXR1cmVQcm9wcyIsInNlcnZlckZlYXR1cmVQcm9wcyIsImRlZmF1bHRDb252ZXJ0ZXJzV2l0aENvbnZlcnRlcnNGcm9tRmVhdHVyZXMiLCJjb252ZXJ0ZXIiLCJmZWF0dXJlcyIsImNvbnZlcnRlcnMiLCJodG1sIiwicHVzaCIsImZpbmFsQ29udmVydGVycyIsImRlZmF1bHRDb252ZXJ0ZXJzIiwibGV4aWNhbEhUTUwiLCJsZXhpY2FsRmllbGROYW1lIiwicHJvcHMiLCJuYW1lIiwidHlwZSIsImFkbWluIiwiaGlkZGVuIiwiaG9va3MiLCJhZnRlclJlYWQiLCJjb2xsZWN0aW9uIiwiZmllbGQiLCJnbG9iYWwiLCJyZXEiLCJzaWJsaW5nRGF0YSIsImZpZWxkcyIsImZpbmRGaWVsZFBhdGhBbmRTaWJsaW5nRmllbGRzIiwicGF0aCIsImN1ckZpZWxkIiwic2libGluZ0ZpZWxkcyIsInJlc3VsdCIsInRhYiIsInRhYnMiLCJibG9jayIsImJsb2NrcyIsImxlbmd0aCIsInNsdWciLCJmb3VuZFNpYmxpbmdGaWVsZHMiLCJFcnJvciIsImxleGljYWxGaWVsZCIsImZpbmQiLCJsZXhpY2FsRmllbGREYXRhIiwiY29uZmlnIiwiZWRpdG9yIiwiaGFzIiwiZGF0YSIsInBheWxvYWQiXSwibWFwcGluZ3MiOiJBQVFBLFNBQVNBLHFCQUFxQixRQUFRLG9DQUFtQztBQUN6RSxTQUFTQyxvQkFBb0IsUUFBUSx3QkFBdUI7QUFNNUQ7Ozs7Q0FJQyxHQUNELE9BQU8sTUFBTUMsNEJBQTRCLENBQUMsRUFDeENDLFlBQVksRUFHYjtJQUNDLE1BQU1DLHVCQUF1QkQsYUFBYUUsa0JBQWtCLENBQUNDLEdBQUcsQ0FBQztJQUNqRSxNQUFNQyw0QkFDSkgsc0JBQXNCSTtJQUV4QixNQUFNQyw4Q0FBOENUO0lBRXBELEtBQUssTUFBTVUsYUFBYVAsYUFBYVEsUUFBUSxDQUFDQyxVQUFVLENBQUNDLElBQUksQ0FBRTtRQUM3REosNENBQTRDSyxJQUFJLENBQUNKO0lBQ25EO0lBRUEsTUFBTUssa0JBQ0pSLDJCQUEyQkssY0FDM0IsT0FBT0wsMkJBQTJCSyxlQUFlLGFBQzdDTCwwQkFBMEJLLFVBQVUsQ0FBQztRQUNuQ0ksbUJBQW1CUDtJQUNyQixLQUNBLEFBQUNGLDJCQUEyQkssY0FDNUJIO0lBRU4sT0FBT007QUFDVCxFQUFDO0FBRUQsT0FBTyxNQUFNRSxjQVFJLENBQUNDLGtCQUFrQkM7SUFDbEMsTUFBTSxFQUFFQyxPQUFPLGFBQWEsRUFBRSxHQUFHRDtJQUNqQyxPQUFPO1FBQ0xDO1FBQ0FDLE1BQU07UUFDTkMsT0FBTztZQUNMQyxRQUFRO1FBQ1Y7UUFDQUMsT0FBTztZQUNMQyxXQUFXO2dCQUNULE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsR0FBRyxFQUFFQyxXQUFXLEVBQUU7b0JBQ3BELE1BQU1DLFNBQVNMLGFBQWFBLFdBQVdLLE1BQU0sR0FBR0gsT0FBT0csTUFBTTtvQkFFN0Qsa0lBQWtJO29CQUNsSSxTQUFTQyw4QkFDUEQsTUFBZSxFQUNmRSxJQUFjO3dCQUtkLEtBQUssTUFBTUMsWUFBWUgsT0FBUTs0QkFDN0IsSUFBSUcsYUFBYVAsT0FBTztnQ0FDdEIsT0FBTztvQ0FDTE0sTUFBTTsyQ0FBSUE7d0NBQU1DLFNBQVNkLElBQUk7cUNBQUM7b0NBQzlCZSxlQUFlSjtnQ0FDakI7NEJBQ0Y7NEJBRUEsSUFBSSxZQUFZRyxVQUFVO2dDQUN4QixNQUFNRSxTQUFTSiw4QkFDYkUsU0FBU0gsTUFBTSxFQUNmLFVBQVVHLFdBQVc7dUNBQUlEO29DQUFNQyxTQUFTZCxJQUFJO2lDQUFDLEdBQUc7dUNBQUlhO2lDQUFLO2dDQUUzRCxJQUFJRyxRQUFRO29DQUNWLE9BQU9BO2dDQUNUOzRCQUNGLE9BQU8sSUFBSSxVQUFVRixVQUFVO2dDQUM3QixLQUFLLE1BQU1HLE9BQU9ILFNBQVNJLElBQUksQ0FBRTtvQ0FDL0IsTUFBTUYsU0FBU0osOEJBQ2JLLElBQUlOLE1BQU0sRUFDVixVQUFVTSxNQUFNOzJDQUFJSjt3Q0FBTUksSUFBSWpCLElBQUk7cUNBQUMsR0FBRzsyQ0FBSWE7cUNBQUs7b0NBRWpELElBQUlHLFFBQVE7d0NBQ1YsT0FBT0E7b0NBQ1Q7Z0NBQ0Y7NEJBQ0YsT0FBTyxJQUFJLFlBQVlGLFVBQVU7Z0NBQy9CLEtBQUssTUFBTUssU0FBU0wsU0FBU00sTUFBTSxDQUFFO29DQUNuQyxJQUFJRCxPQUFPUixRQUFRVSxRQUFRO3dDQUN6QixNQUFNTCxTQUFTSiw4QkFBOEJPLE1BQU1SLE1BQU0sRUFBRTsrQ0FDdERFOzRDQUNIQyxTQUFTZCxJQUFJOzRDQUNibUIsTUFBTUcsSUFBSTt5Q0FDWDt3Q0FDRCxJQUFJTixRQUFROzRDQUNWLE9BQU9BO3dDQUNUO29DQUNGO2dDQUNGOzRCQUNGO3dCQUNGO3dCQUVBLE9BQU87b0JBQ1Q7b0JBRUEsTUFBTU8scUJBQXFCWCw4QkFBOEJELFFBQVEsRUFBRTtvQkFFbkUsSUFBSSxDQUFDWSxvQkFDSCxNQUFNLElBQUlDLE1BQ1IsQ0FBQyxxRUFBcUUsRUFBRWpCLE9BQU9QLEtBQUssQ0FBQztvQkFHekYsTUFBTSxFQUFFZSxhQUFhLEVBQUUsR0FBR1E7b0JBQzFCLE1BQU1FLGVBQ0pWLGNBQWNXLElBQUksQ0FDaEIsQ0FBQ25CLFFBQVUsVUFBVUEsU0FBU0EsTUFBTVAsSUFBSSxLQUFLRjtvQkFHakQsTUFBTTZCLG1CQUEwQ2pCLFdBQVcsQ0FBQ1osaUJBQWlCO29CQUU3RSxJQUFJLENBQUM2QixrQkFBa0I7d0JBQ3JCLE9BQU87b0JBQ1Q7b0JBRUEsSUFBSSxDQUFDRixjQUFjO3dCQUNqQixNQUFNLElBQUlELE1BQ1I7b0JBRUo7b0JBRUEsTUFBTUksU0FBVUgsY0FBY0ksUUFBbUM5QztvQkFFakUsSUFBSSxDQUFDNkMsUUFBUTt3QkFDWCxNQUFNLElBQUlKLE1BQ1I7b0JBRUo7b0JBRUEsSUFBSSxDQUFDSSxRQUFRM0Msb0JBQW9CNkMsSUFBSSxrQkFBa0I7d0JBQ3JELE1BQU0sSUFBSU4sTUFDUjtvQkFFSjtvQkFFQSxNQUFNN0Isa0JBQWtCYiwwQkFBMEI7d0JBQ2hEQyxjQUFjNkM7b0JBQ2hCO29CQUVBLE9BQU8sTUFBTS9DLHFCQUFxQjt3QkFDaENXLFlBQVlHO3dCQUNab0MsTUFBTUo7d0JBQ05LLFNBQVN2QixJQUFJdUIsT0FBTztvQkFDdEI7Z0JBQ0Y7YUFDRDtRQUNIO0lBQ0Y7QUFDRixFQUFDIn0=
114
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/field/features/converters/html/field/index.ts"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\nimport type { Field, RichTextField, TextField } from 'payload/types'\n\nimport type { LexicalRichTextAdapter, SanitizedServerEditorConfig } from '../../../../../index.js'\nimport type { AdapterProps } from '../../../../../types.js'\nimport type { HTMLConverter } from '../converter/types.js'\nimport type { HTMLConverterFeatureProps } from '../feature.server.js'\n\nimport { defaultHTMLConverters } from '../converter/defaultConverters.js'\nimport { convertLexicalToHTML } from '../converter/index.js'\n\ntype Props = {\n name: string\n}\n\n/**\n * Combines the default HTML converters with HTML converters found in the features, and with HTML converters configured in the htmlConverter feature.\n *\n * @param editorConfig\n */\nexport const consolidateHTMLConverters = ({\n editorConfig,\n}: {\n editorConfig: SanitizedServerEditorConfig\n}) => {\n const htmlConverterFeature = editorConfig.resolvedFeatureMap.get('htmlConverter')\n const htmlConverterFeatureProps: HTMLConverterFeatureProps =\n htmlConverterFeature?.serverFeatureProps\n\n const defaultConvertersWithConvertersFromFeatures = defaultHTMLConverters\n\n for (const converter of editorConfig.features.converters.html) {\n defaultConvertersWithConvertersFromFeatures.push(converter)\n }\n\n const finalConverters =\n htmlConverterFeatureProps?.converters &&\n typeof htmlConverterFeatureProps?.converters === 'function'\n ? htmlConverterFeatureProps.converters({\n defaultConverters: defaultConvertersWithConvertersFromFeatures,\n })\n : (htmlConverterFeatureProps?.converters as HTMLConverter[]) ||\n defaultConvertersWithConvertersFromFeatures\n\n return finalConverters\n}\n\nexport const lexicalHTML: (\n /**\n * A string which matches the lexical field name you want to convert to HTML.\n *\n * This has to be a SIBLING field of this lexicalHTML field - otherwise, it won't be able to find the lexical field.\n **/\n lexicalFieldName: string,\n props: Props,\n) => TextField = (lexicalFieldName, props) => {\n const { name = 'lexicalHTML' } = props\n return {\n name,\n type: 'text',\n admin: {\n hidden: true,\n },\n hooks: {\n afterRead: [\n async ({ collection, field, global, req, siblingData }) => {\n const fields = collection ? collection.fields : global.fields\n\n // find the path of this field, as well as its sibling fields, by looking for this `field` in fields and traversing it recursively\n function findFieldPathAndSiblingFields(\n fields: Field[],\n path: string[],\n ): {\n path: string[]\n siblingFields: Field[]\n } {\n for (const curField of fields) {\n if (curField === field) {\n return {\n path: [...path, curField.name],\n siblingFields: fields,\n }\n }\n\n if ('fields' in curField) {\n const result = findFieldPathAndSiblingFields(\n curField.fields,\n 'name' in curField ? [...path, curField.name] : [...path],\n )\n if (result) {\n return result\n }\n } else if ('tabs' in curField) {\n for (const tab of curField.tabs) {\n const result = findFieldPathAndSiblingFields(\n tab.fields,\n 'name' in tab ? [...path, tab.name] : [...path],\n )\n if (result) {\n return result\n }\n }\n } else if ('blocks' in curField) {\n for (const block of curField.blocks) {\n if (block?.fields?.length) {\n const result = findFieldPathAndSiblingFields(block.fields, [\n ...path,\n curField.name,\n block.slug,\n ])\n if (result) {\n return result\n }\n }\n }\n }\n }\n\n return null\n }\n\n const foundSiblingFields = findFieldPathAndSiblingFields(fields, [])\n\n if (!foundSiblingFields)\n throw new Error(\n `Could not find sibling fields of current lexicalHTML field with name ${field?.name}`,\n )\n\n const { siblingFields } = foundSiblingFields\n const lexicalField: RichTextField<SerializedEditorState, AdapterProps> =\n siblingFields.find(\n (field) => 'name' in field && field.name === lexicalFieldName,\n ) as RichTextField<SerializedEditorState, AdapterProps>\n\n const lexicalFieldData: SerializedEditorState = siblingData[lexicalFieldName]\n\n if (!lexicalFieldData) {\n return ''\n }\n\n if (!lexicalField) {\n throw new Error(\n 'You cannot use the lexicalHTML field because the referenced lexical field was not found',\n )\n }\n\n const config = (lexicalField?.editor as LexicalRichTextAdapter)?.editorConfig\n\n if (!config) {\n throw new Error(\n 'The linked lexical field does not have an editorConfig. This is needed for the lexicalHTML field.',\n )\n }\n\n if (!config?.resolvedFeatureMap?.has('htmlConverter')) {\n throw new Error(\n 'You cannot use the lexicalHTML field because the linked lexical field does not have a HTMLConverterFeature',\n )\n }\n\n const finalConverters = consolidateHTMLConverters({\n editorConfig: config,\n })\n\n return await convertLexicalToHTML({\n converters: finalConverters,\n data: lexicalFieldData,\n payload: req.payload,\n })\n },\n ],\n },\n }\n}\n"],"names":["defaultHTMLConverters","convertLexicalToHTML","consolidateHTMLConverters","editorConfig","htmlConverterFeature","resolvedFeatureMap","get","htmlConverterFeatureProps","serverFeatureProps","defaultConvertersWithConvertersFromFeatures","converter","features","converters","html","push","finalConverters","defaultConverters","lexicalHTML","lexicalFieldName","props","name","type","admin","hidden","hooks","afterRead","collection","field","global","req","siblingData","fields","findFieldPathAndSiblingFields","path","curField","siblingFields","result","tab","tabs","block","blocks","length","slug","foundSiblingFields","Error","lexicalField","find","lexicalFieldData","config","editor","has","data","payload"],"mappings":"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"}
@@ -9,4 +9,4 @@ import { useLexicalFeature } from '../../useLexicalFeature.js';
9
9
  };
10
10
  };
11
11
 
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9jcmVhdGVDbGllbnRDb21wb25lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVQcm92aWRlclByb3ZpZGVyQ2xpZW50LCBTZXJ2ZXJGZWF0dXJlIH0gZnJvbSAnLi90eXBlcy5qcydcblxuaW1wb3J0IHsgdXNlTGV4aWNhbEZlYXR1cmUgfSBmcm9tICcuLi8uLi91c2VMZXhpY2FsRmVhdHVyZS5qcydcblxuLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIGNsaWVudCBjb21wb25lbnQgZm9yIHRoZSBjbGllbnQgZmVhdHVyZVxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlQ2xpZW50Q29tcG9uZW50ID0gPENsaWVudEZlYXR1cmVQcm9wcyw+KFxuICBjbGllbnRGZWF0dXJlOiBGZWF0dXJlUHJvdmlkZXJQcm92aWRlckNsaWVudDxDbGllbnRGZWF0dXJlUHJvcHM+LFxuKTogU2VydmVyRmVhdHVyZTx1bmtub3duLCBDbGllbnRGZWF0dXJlUHJvcHM+WydDbGllbnRDb21wb25lbnQnXSA9PiB7XG4gIHJldHVybiAocHJvcHMpID0+IHtcbiAgICB1c2VMZXhpY2FsRmVhdHVyZShwcm9wcy5mZWF0dXJlS2V5LCBjbGllbnRGZWF0dXJlKHByb3BzKSlcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG4iXSwibmFtZXMiOlsidXNlTGV4aWNhbEZlYXR1cmUiLCJjcmVhdGVDbGllbnRDb21wb25lbnQiLCJjbGllbnRGZWF0dXJlIiwicHJvcHMiLCJmZWF0dXJlS2V5Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUlBLFNBQVNBLGlCQUFpQixRQUFRLDZCQUE0QjtBQUU5RDs7Q0FFQyxHQUNELE9BQU8sTUFBTUMsd0JBQXdCLENBQ25DQztJQUVBLE9BQU8sQ0FBQ0M7UUFDTkgsa0JBQWtCRyxNQUFNQyxVQUFVLEVBQUVGLGNBQWNDO1FBQ2xELE9BQU87SUFDVDtBQUNGLEVBQUMifQ==
12
+ //# sourceMappingURL=createClientComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/field/features/createClientComponent.tsx"],"sourcesContent":["'use client'\n\nimport type { FeatureProviderProviderClient, ServerFeature } from './types.js'\n\nimport { useLexicalFeature } from '../../useLexicalFeature.js'\n\n/**\n * Utility function to create a client component for the client feature\n */\nexport const createClientComponent = <ClientFeatureProps,>(\n clientFeature: FeatureProviderProviderClient<ClientFeatureProps>,\n): ServerFeature<unknown, ClientFeatureProps>['ClientComponent'] => {\n return (props) => {\n useLexicalFeature(props.featureKey, clientFeature(props))\n return null\n }\n}\n"],"names":["useLexicalFeature","createClientComponent","clientFeature","props","featureKey"],"mappings":"AAAA;AAIA,SAASA,iBAAiB,QAAQ,6BAA4B;AAE9D;;CAEC,GACD,OAAO,MAAMC,wBAAwB,CACnCC;IAEA,OAAO,CAACC;QACNH,kBAAkBG,MAAMC,UAAU,EAAEF,cAAcC;QAClD,OAAO;IACT;AACF,EAAC"}
@@ -11,4 +11,4 @@ export const createFeaturePropComponent = (prop)=>{
11
11
  };
12
12
  };
13
13
 
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9jcmVhdGVGZWF0dXJlUHJvcENvbXBvbmVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyB1c2VBZGRDbGllbnRGdW5jdGlvbiwgdXNlRmllbGRQYXRoIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5cbmNvbnN0IHVzZUxleGljYWxGZWF0dXJlUHJvcCA9IDxULD4oZmVhdHVyZUtleTogc3RyaW5nLCBjb21wb25lbnRLZXk6IHN0cmluZywgcHJvcDogVCkgPT4ge1xuICBjb25zdCB7IHNjaGVtYVBhdGggfSA9IHVzZUZpZWxkUGF0aCgpXG5cbiAgdXNlQWRkQ2xpZW50RnVuY3Rpb24oXG4gICAgYGxleGljYWxGZWF0dXJlLiR7c2NoZW1hUGF0aH0uJHtmZWF0dXJlS2V5fS5jb21wb25lbnRzLiR7Y29tcG9uZW50S2V5fWAsXG4gICAgcHJvcCxcbiAgKVxufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlRmVhdHVyZVByb3BDb21wb25lbnQgPSA8VCA9IHVua25vd24sPihcbiAgcHJvcDogVCxcbik6IFJlYWN0LkZDPHsgY29tcG9uZW50S2V5OiBzdHJpbmc7IGZlYXR1cmVLZXk6IHN0cmluZyB9PiA9PiB7XG4gIHJldHVybiAocHJvcHMpID0+IHtcbiAgICB1c2VMZXhpY2FsRmVhdHVyZVByb3AocHJvcHMuZmVhdHVyZUtleSwgcHJvcHMuY29tcG9uZW50S2V5LCBwcm9wKVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ1c2VBZGRDbGllbnRGdW5jdGlvbiIsInVzZUZpZWxkUGF0aCIsInVzZUxleGljYWxGZWF0dXJlUHJvcCIsImZlYXR1cmVLZXkiLCJjb21wb25lbnRLZXkiLCJwcm9wIiwic2NoZW1hUGF0aCIsImNyZWF0ZUZlYXR1cmVQcm9wQ29tcG9uZW50IiwicHJvcHMiXSwibWFwcGluZ3MiOiJBQUFBO0FBSUEsU0FBU0Esb0JBQW9CLEVBQUVDLFlBQVksUUFBUSxpQkFBZ0I7QUFFbkUsTUFBTUMsd0JBQXdCLENBQUtDLFlBQW9CQyxjQUFzQkM7SUFDM0UsTUFBTSxFQUFFQyxVQUFVLEVBQUUsR0FBR0w7SUFFdkJELHFCQUNFLENBQUMsZUFBZSxFQUFFTSxXQUFXLENBQUMsRUFBRUgsV0FBVyxZQUFZLEVBQUVDLGFBQWEsQ0FBQyxFQUN2RUM7QUFFSjtBQUVBLE9BQU8sTUFBTUUsNkJBQTZCLENBQ3hDRjtJQUVBLE9BQU8sQ0FBQ0c7UUFDTk4sc0JBQXNCTSxNQUFNTCxVQUFVLEVBQUVLLE1BQU1KLFlBQVksRUFBRUM7UUFDNUQsT0FBTztJQUNUO0FBQ0YsRUFBQyJ9
14
+ //# sourceMappingURL=createFeaturePropComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/field/features/createFeaturePropComponent.tsx"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useAddClientFunction, useFieldPath } from '@payloadcms/ui'\n\nconst useLexicalFeatureProp = <T,>(featureKey: string, componentKey: string, prop: T) => {\n const { schemaPath } = useFieldPath()\n\n useAddClientFunction(\n `lexicalFeature.${schemaPath}.${featureKey}.components.${componentKey}`,\n prop,\n )\n}\n\nexport const createFeaturePropComponent = <T = unknown,>(\n prop: T,\n): React.FC<{ componentKey: string; featureKey: string }> => {\n return (props) => {\n useLexicalFeatureProp(props.featureKey, props.componentKey, prop)\n return null\n }\n}\n"],"names":["useAddClientFunction","useFieldPath","useLexicalFeatureProp","featureKey","componentKey","prop","schemaPath","createFeaturePropComponent","props"],"mappings":"AAAA;AAIA,SAASA,oBAAoB,EAAEC,YAAY,QAAQ,iBAAgB;AAEnE,MAAMC,wBAAwB,CAAKC,YAAoBC,cAAsBC;IAC3E,MAAM,EAAEC,UAAU,EAAE,GAAGL;IAEvBD,qBACE,CAAC,eAAe,EAAEM,WAAW,CAAC,EAAEH,WAAW,YAAY,EAAEC,aAAa,CAAC,EACvEC;AAEJ;AAEA,OAAO,MAAME,6BAA6B,CACxCF;IAEA,OAAO,CAACG;QACNN,sBAAsBM,MAAML,UAAU,EAAEK,MAAMJ,YAAY,EAAEC;QAC5D,OAAO;IACT;AACF,EAAC"}
@@ -17,4 +17,4 @@ const TestRecorderFeatureClient = (props)=>{
17
17
  };
18
18
  export const TestRecorderFeatureClientComponent = createClientComponent(TestRecorderFeatureClient);
19
19
 
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9kZWJ1Zy90ZXN0cmVjb3JkZXIvZmVhdHVyZS5jbGllbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlUHJvdmlkZXJQcm92aWRlckNsaWVudCB9IGZyb20gJy4uLy4uL3R5cGVzLmpzJ1xuXG5pbXBvcnQgeyBjcmVhdGVDbGllbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jcmVhdGVDbGllbnRDb21wb25lbnQuanMnXG5pbXBvcnQgeyBUZXN0UmVjb3JkZXJQbHVnaW4gfSBmcm9tICcuL3BsdWdpbi9pbmRleC5qcydcblxuY29uc3QgVGVzdFJlY29yZGVyRmVhdHVyZUNsaWVudDogRmVhdHVyZVByb3ZpZGVyUHJvdmlkZXJDbGllbnQ8dW5kZWZpbmVkPiA9IChwcm9wcykgPT4ge1xuICByZXR1cm4ge1xuICAgIGNsaWVudEZlYXR1cmVQcm9wczogcHJvcHMsXG4gICAgZmVhdHVyZTogKCkgPT4gKHtcbiAgICAgIGNsaWVudEZlYXR1cmVQcm9wczogcHJvcHMsXG4gICAgICBwbHVnaW5zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBDb21wb25lbnQ6IFRlc3RSZWNvcmRlclBsdWdpbixcbiAgICAgICAgICBwb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pLFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBUZXN0UmVjb3JkZXJGZWF0dXJlQ2xpZW50Q29tcG9uZW50ID0gY3JlYXRlQ2xpZW50Q29tcG9uZW50KFRlc3RSZWNvcmRlckZlYXR1cmVDbGllbnQpXG4iXSwibmFtZXMiOlsiY3JlYXRlQ2xpZW50Q29tcG9uZW50IiwiVGVzdFJlY29yZGVyUGx1Z2luIiwiVGVzdFJlY29yZGVyRmVhdHVyZUNsaWVudCIsInByb3BzIiwiY2xpZW50RmVhdHVyZVByb3BzIiwiZmVhdHVyZSIsInBsdWdpbnMiLCJDb21wb25lbnQiLCJwb3NpdGlvbiIsIlRlc3RSZWNvcmRlckZlYXR1cmVDbGllbnRDb21wb25lbnQiXSwibWFwcGluZ3MiOiJBQUFBO0FBR0EsU0FBU0EscUJBQXFCLFFBQVEsaUNBQWdDO0FBQ3RFLFNBQVNDLGtCQUFrQixRQUFRLG9CQUFtQjtBQUV0RCxNQUFNQyw0QkFBc0UsQ0FBQ0M7SUFDM0UsT0FBTztRQUNMQyxvQkFBb0JEO1FBQ3BCRSxTQUFTLElBQU8sQ0FBQTtnQkFDZEQsb0JBQW9CRDtnQkFDcEJHLFNBQVM7b0JBQ1A7d0JBQ0VDLFdBQVdOO3dCQUNYTyxVQUFVO29CQUNaO2lCQUNEO1lBQ0gsQ0FBQTtJQUNGO0FBQ0Y7QUFFQSxPQUFPLE1BQU1DLHFDQUFxQ1Qsc0JBQXNCRSwyQkFBMEIifQ==
20
+ //# sourceMappingURL=feature.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/field/features/debug/testrecorder/feature.client.tsx"],"sourcesContent":["'use client'\nimport type { FeatureProviderProviderClient } from '../../types.js'\n\nimport { createClientComponent } from '../../createClientComponent.js'\nimport { TestRecorderPlugin } from './plugin/index.js'\n\nconst TestRecorderFeatureClient: FeatureProviderProviderClient<undefined> = (props) => {\n return {\n clientFeatureProps: props,\n feature: () => ({\n clientFeatureProps: props,\n plugins: [\n {\n Component: TestRecorderPlugin,\n position: 'bottom',\n },\n ],\n }),\n }\n}\n\nexport const TestRecorderFeatureClientComponent = createClientComponent(TestRecorderFeatureClient)\n"],"names":["createClientComponent","TestRecorderPlugin","TestRecorderFeatureClient","props","clientFeatureProps","feature","plugins","Component","position","TestRecorderFeatureClientComponent"],"mappings":"AAAA;AAGA,SAASA,qBAAqB,QAAQ,iCAAgC;AACtE,SAASC,kBAAkB,QAAQ,oBAAmB;AAEtD,MAAMC,4BAAsE,CAACC;IAC3E,OAAO;QACLC,oBAAoBD;QACpBE,SAAS,IAAO,CAAA;gBACdD,oBAAoBD;gBACpBG,SAAS;oBACP;wBACEC,WAAWN;wBACXO,UAAU;oBACZ;iBACD;YACH,CAAA;IACF;AACF;AAEA,OAAO,MAAMC,qCAAqCT,sBAAsBE,2BAA0B"}
@@ -12,4 +12,4 @@ export const TestRecorderFeature = (props)=>{
12
12
  };
13
13
  };
14
14
 
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9kZWJ1Zy90ZXN0cmVjb3JkZXIvZmVhdHVyZS5zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGZWF0dXJlUHJvdmlkZXJQcm92aWRlclNlcnZlciB9IGZyb20gJy4uLy4uL3R5cGVzLmpzJ1xuXG5pbXBvcnQgeyBUZXN0UmVjb3JkZXJGZWF0dXJlQ2xpZW50Q29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlLmNsaWVudC5qcydcblxuZXhwb3J0IGNvbnN0IFRlc3RSZWNvcmRlckZlYXR1cmU6IEZlYXR1cmVQcm92aWRlclByb3ZpZGVyU2VydmVyPHVuZGVmaW5lZCwgdW5kZWZpbmVkPiA9IChwcm9wcykgPT4ge1xuICByZXR1cm4ge1xuICAgIGZlYXR1cmU6ICgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIENsaWVudENvbXBvbmVudDogVGVzdFJlY29yZGVyRmVhdHVyZUNsaWVudENvbXBvbmVudCxcbiAgICAgICAgc2VydmVyRmVhdHVyZVByb3BzOiBwcm9wcyxcbiAgICAgIH1cbiAgICB9LFxuICAgIGtleTogJ3Rlc3RyZWNvcmRlcicsXG4gICAgc2VydmVyRmVhdHVyZVByb3BzOiBwcm9wcyxcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlRlc3RSZWNvcmRlckZlYXR1cmVDbGllbnRDb21wb25lbnQiLCJUZXN0UmVjb3JkZXJGZWF0dXJlIiwicHJvcHMiLCJmZWF0dXJlIiwiQ2xpZW50Q29tcG9uZW50Iiwic2VydmVyRmVhdHVyZVByb3BzIiwia2V5Il0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxrQ0FBa0MsUUFBUSxzQkFBcUI7QUFFeEUsT0FBTyxNQUFNQyxzQkFBMkUsQ0FBQ0M7SUFDdkYsT0FBTztRQUNMQyxTQUFTO1lBQ1AsT0FBTztnQkFDTEMsaUJBQWlCSjtnQkFDakJLLG9CQUFvQkg7WUFDdEI7UUFDRjtRQUNBSSxLQUFLO1FBQ0xELG9CQUFvQkg7SUFDdEI7QUFDRixFQUFDIn0=
15
+ //# sourceMappingURL=feature.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/field/features/debug/testrecorder/feature.server.ts"],"sourcesContent":["import type { FeatureProviderProviderServer } from '../../types.js'\n\nimport { TestRecorderFeatureClientComponent } from './feature.client.js'\n\nexport const TestRecorderFeature: FeatureProviderProviderServer<undefined, undefined> = (props) => {\n return {\n feature: () => {\n return {\n ClientComponent: TestRecorderFeatureClientComponent,\n serverFeatureProps: props,\n }\n },\n key: 'testrecorder',\n serverFeatureProps: props,\n }\n}\n"],"names":["TestRecorderFeatureClientComponent","TestRecorderFeature","props","feature","ClientComponent","serverFeatureProps","key"],"mappings":"AAEA,SAASA,kCAAkC,QAAQ,sBAAqB;AAExE,OAAO,MAAMC,sBAA2E,CAACC;IACvF,OAAO;QACLC,SAAS;YACP,OAAO;gBACLC,iBAAiBJ;gBACjBK,oBAAoBH;YACtB;QACF;QACAI,KAAK;QACLD,oBAAoBH;IACtB;AACF,EAAC"}
@@ -445,4 +445,4 @@ export const TestRecorderPlugin = ()=>{
445
445
  return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("p", null, "HI"), testRecorderButton, testRecorderOutput, /*#__PURE__*/ React.createElement("p", null, "DONE"));
446
446
  };
447
447
 
448
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9kZWJ1Zy90ZXN0cmVjb3JkZXIvcGx1Z2luL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgQmFzZVNlbGVjdGlvbiwgTGV4aWNhbEVkaXRvciB9IGZyb20gJ2xleGljYWwnXG5cbmltcG9ydCBsZXhpY2FsQ29tcG9zZXJDb250ZXh0SW1wb3J0IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQuanMnXG5jb25zdCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSA9IGxleGljYWxDb21wb3NlckNvbnRleHRJbXBvcnRcbmltcG9ydCBsZXhpY2FsSW1wb3J0IGZyb20gJ2xleGljYWwnXG5jb25zdCB7ICRjcmVhdGVQYXJhZ3JhcGhOb2RlLCAkY3JlYXRlVGV4dE5vZGUsICRnZXRSb290IH0gPSBsZXhpY2FsSW1wb3J0XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZUxheW91dEVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBJU19BUFBMRSB9IGZyb20gJy4uLy4uLy4uLy4uL2xleGljYWwvdXRpbHMvZW52aXJvbm1lbnQuanMnXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuY29uc3QgY29weSA9ICh0ZXh0OiBudWxsIHwgc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKVxuICB0ZXh0QXJlYS52YWx1ZSA9IHRleHQgfHwgJydcbiAgdGV4dEFyZWEuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnXG4gIHRleHRBcmVhLnN0eWxlLm9wYWNpdHkgPSAnMCdcbiAgZG9jdW1lbnQuYm9keT8uYXBwZW5kQ2hpbGQodGV4dEFyZWEpXG4gIHRleHRBcmVhLmZvY3VzKClcbiAgdGV4dEFyZWEuc2VsZWN0KClcbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmxvZyhyZXN1bHQpXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgfVxuICBkb2N1bWVudC5ib2R5Py5yZW1vdmVDaGlsZCh0ZXh0QXJlYSlcbn1cblxuY29uc3QgZG93bmxvYWQgPSAoZmlsZW5hbWU6IHN0cmluZywgdGV4dDogbnVsbCB8IHN0cmluZykgPT4ge1xuICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXG4gIGEuc2V0QXR0cmlidXRlKCdocmVmJywgJ2RhdGE6dGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04LCcgKyBlbmNvZGVVUklDb21wb25lbnQodGV4dCB8fCAnJykpXG4gIGEuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGZpbGVuYW1lKVxuICBhLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcbiAgZG9jdW1lbnQuYm9keT8uYXBwZW5kQ2hpbGQoYSlcbiAgYS5jbGljaygpXG4gIGRvY3VtZW50LmJvZHk/LnJlbW92ZUNoaWxkKGEpXG59XG5cbmNvbnN0IGZvcm1hdFN0ZXAgPSAoc3RlcDogU3RlcCkgPT4ge1xuICBjb25zdCBmb3JtYXRPbmVTdGVwID0gKG5hbWU6IHN0cmluZywgdmFsdWU6IFN0ZXBbJ3ZhbHVlJ10pID0+IHtcbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgJ2NsaWNrJzoge1xuICAgICAgICByZXR1cm4gYCAgICAgIGF3YWl0IHBhZ2UubW91c2UuY2xpY2soJHt2YWx1ZS54fSwgJHt2YWx1ZS55fSk7YFxuICAgICAgfVxuICAgICAgY2FzZSAncHJlc3MnOiB7XG4gICAgICAgIHJldHVybiBgICAgICAgYXdhaXQgcGFnZS5rZXlib2FyZC5wcmVzcygnJHt2YWx1ZX0nKTtgXG4gICAgICB9XG4gICAgICBjYXNlICdrZXlkb3duJzoge1xuICAgICAgICByZXR1cm4gYCAgICAgIGF3YWl0IHBhZ2Uua2V5Ym9hcmQua2V5ZG93bignJHt2YWx1ZX0nKTtgXG4gICAgICB9XG4gICAgICBjYXNlICdrZXl1cCc6IHtcbiAgICAgICAgcmV0dXJuIGAgICAgICBhd2FpdCBwYWdlLmtleWJvYXJkLmtleXVwKCcke3ZhbHVlfScpO2BcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3R5cGUnOiB7XG4gICAgICAgIHJldHVybiBgICAgICAgYXdhaXQgcGFnZS5rZXlib2FyZC50eXBlKCcke3ZhbHVlfScpO2BcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3NlbGVjdEFsbCc6IHtcbiAgICAgICAgcmV0dXJuIGAgICAgICBhd2FpdCBzZWxlY3RBbGwocGFnZSk7YFxuICAgICAgfVxuICAgICAgY2FzZSAnc25hcHNob3QnOiB7XG4gICAgICAgIHJldHVybiBgICAgICAgYXdhaXQgYXNzZXJ0SFRNTFNuYXBzaG90KHBhZ2UpO1xuICAgICAgYXdhaXQgYXNzZXJ0U2VsZWN0aW9uKHBhZ2UsIHtcbiAgICAgICAgYW5jaG9yUGF0aDogWyR7dmFsdWUuYW5jaG9yUGF0aC50b1N0cmluZygpfV0sXG4gICAgICAgIGFuY2hvck9mZnNldDogJHt2YWx1ZS5hbmNob3JPZmZzZXR9LFxuICAgICAgICBmb2N1c1BhdGg6IFske3ZhbHVlLmZvY3VzUGF0aC50b1N0cmluZygpfV0sXG4gICAgICAgIGZvY3VzT2Zmc2V0OiAke3ZhbHVlLmZvY3VzT2Zmc2V0fSxcbiAgICAgIH0pO1xuYFxuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGBgXG4gICAgfVxuICB9XG4gIGNvbnN0IGZvcm1hdHRlZFN0ZXAgPSBmb3JtYXRPbmVTdGVwKHN0ZXAubmFtZSwgc3RlcC52YWx1ZSlcbiAgc3dpdGNoIChzdGVwLmNvdW50KSB7XG4gICAgY2FzZSAxOlxuICAgICAgcmV0dXJuIGZvcm1hdHRlZFN0ZXBcbiAgICBjYXNlIDI6XG4gICAgICByZXR1cm4gW2Zvcm1hdHRlZFN0ZXAsIGZvcm1hdHRlZFN0ZXBdLmpvaW4oYFxcbmApXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBgICAgICAgYXdhaXQgcmVwZWF0KCR7c3RlcC5jb3VudH0sIGFzeW5jICgpID0+IHtcbiAgJHtmb3JtYXR0ZWRTdGVwfVxuICAgICAgKTtgXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2VsZWN0QWxsKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiBldmVudC5rZXlDb2RlID09PSA2NSAmJiAoSVNfQVBQTEUgPyBldmVudC5tZXRhS2V5IDogZXZlbnQuY3RybEtleSlcbn1cblxuLy8gc3RvbGVuIGZyb20gTGV4aWNhbFNlbGVjdGlvbi10ZXN0XG5mdW5jdGlvbiBzYW5pdGl6ZVNlbGVjdGlvbihzZWxlY3Rpb246IFNlbGVjdGlvbikge1xuICBjb25zdCB7IGFuY2hvck5vZGUsIGZvY3VzTm9kZSB9ID0gc2VsZWN0aW9uXG4gIGxldCB7IGFuY2hvck9mZnNldCwgZm9jdXNPZmZzZXQgfSA9IHNlbGVjdGlvblxuICBpZiAoYW5jaG9yT2Zmc2V0ICE9PSAwKSB7XG4gICAgYW5jaG9yT2Zmc2V0LS1cbiAgfVxuICBpZiAoZm9jdXNPZmZzZXQgIT09IDApIHtcbiAgICBmb2N1c09mZnNldC0tXG4gIH1cbiAgcmV0dXJuIHsgYW5jaG9yTm9kZSwgYW5jaG9yT2Zmc2V0LCBmb2N1c05vZGUsIGZvY3VzT2Zmc2V0IH1cbn1cblxuZnVuY3Rpb24gZ2V0UGF0aEZyb21Ob2RlVG9FZGl0b3Iobm9kZTogTm9kZSwgcm9vdEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCkge1xuICBsZXQgY3VycmVudE5vZGU6IE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkID0gbm9kZVxuICBjb25zdCBwYXRoID0gW11cbiAgd2hpbGUgKGN1cnJlbnROb2RlICE9PSByb290RWxlbWVudCkge1xuICAgIGlmIChjdXJyZW50Tm9kZSAhPT0gbnVsbCAmJiBjdXJyZW50Tm9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBwYXRoLnVuc2hpZnQoXG4gICAgICAgIEFycmF5LmZyb20oY3VycmVudE5vZGU/LnBhcmVudE5vZGU/LmNoaWxkTm9kZXMgPz8gW10pLmluZGV4T2YoY3VycmVudE5vZGUgYXMgQ2hpbGROb2RlKSxcbiAgICAgIClcbiAgICB9XG4gICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZT8ucGFyZW50Tm9kZVxuICB9XG4gIHJldHVybiBwYXRoXG59XG5cbmNvbnN0IGtleVByZXNzZXMgPSBuZXcgU2V0KFtcbiAgJ0VudGVyJyxcbiAgJ0JhY2tzcGFjZScsXG4gICdEZWxldGUnLFxuICAnRXNjYXBlJyxcbiAgJ0Fycm93TGVmdCcsXG4gICdBcnJvd1JpZ2h0JyxcbiAgJ0Fycm93VXAnLFxuICAnQXJyb3dEb3duJyxcbl0pXG5cbnR5cGUgU3RlcCA9IHtcbiAgY291bnQ6IG51bWJlclxuICBuYW1lOiBzdHJpbmdcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgdmFsdWU6IGFueVxufVxuXG50eXBlIFN0ZXBzID0gU3RlcFtdXG5cbmZ1bmN0aW9uIHVzZVRlc3RSZWNvcmRlcihlZGl0b3I6IExleGljYWxFZGl0b3IpOiBbSlNYLkVsZW1lbnQsIEpTWC5FbGVtZW50IHwgbnVsbF0ge1xuICBjb25zdCBbc3RlcHMsIHNldFN0ZXBzXSA9IHVzZVN0YXRlPFN0ZXBzPihbXSlcbiAgY29uc3QgW2lzUmVjb3JkaW5nLCBzZXRJc1JlY29yZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgWywgc2V0Q3VycmVudElubmVySFRNTF0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW3RlbXBsYXRlZFRlc3QsIHNldFRlbXBsYXRlZFRlc3RdID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IHByZXZpb3VzU2VsZWN0aW9uUmVmID0gdXNlUmVmPEJhc2VTZWxlY3Rpb24gfCBudWxsPihudWxsKVxuICBjb25zdCBza2lwTmV4dFNlbGVjdGlvbkNoYW5nZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgcHJlUmVmID0gdXNlUmVmPEhUTUxQcmVFbGVtZW50PihudWxsKVxuXG4gIGNvbnN0IGdldEN1cnJlbnRFZGl0b3IgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgcmV0dXJuIGVkaXRvclxuICB9LCBbZWRpdG9yXSlcblxuICBjb25zdCBnZW5lcmF0ZVRlc3RDb250ZW50ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBjb25zdCBicm93c2VyU2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG5cbiAgICBpZiAoXG4gICAgICByb290RWxlbWVudCA9PSBudWxsIHx8XG4gICAgICBicm93c2VyU2VsZWN0aW9uID09IG51bGwgfHxcbiAgICAgIGJyb3dzZXJTZWxlY3Rpb24uYW5jaG9yTm9kZSA9PSBudWxsIHx8XG4gICAgICBicm93c2VyU2VsZWN0aW9uLmZvY3VzTm9kZSA9PSBudWxsIHx8XG4gICAgICAhcm9vdEVsZW1lbnQuY29udGFpbnMoYnJvd3NlclNlbGVjdGlvbi5hbmNob3JOb2RlKSB8fFxuICAgICAgIXJvb3RFbGVtZW50LmNvbnRhaW5zKGJyb3dzZXJTZWxlY3Rpb24uZm9jdXNOb2RlKVxuICAgICkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gYFxuaW1wb3J0IHtcbiAgaW5pdGlhbGl6ZUUyRSxcbiAgYXNzZXJ0SFRNTFNuYXBzaG90LFxuICBhc3NlcnRTZWxlY3Rpb24sXG4gIHJlcGVhdCxcbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtzZWxlY3RBbGx9IGZyb20gJy4uL2tleWJvYXJkU2hvcnRjdXRzJztcbmltcG9ydCB7IFJhbmdlU2VsZWN0aW9uIH0gZnJvbSAnbGV4aWNhbCc7XG5pbXBvcnQgeyBOb2RlU2VsZWN0aW9uIH0gZnJvbSAnbGV4aWNhbCc7XG5cbmRlc2NyaWJlKCdUZXN0IGNhc2UnLCAoKSA9PiB7XG4gIGluaXRpYWxpemVFMkUoKGUyZSkgPT4ge1xuICAgIGl0KCdTaG91bGQgcGFzcyB0aGlzIHRlc3QnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB7cGFnZX0gPSBlMmU7XG5cbiAgICAgIGF3YWl0IHBhZ2UuZm9jdXMoJ2Rpdltjb250ZW50ZWRpdGFibGU9XCJ0cnVlXCJdJyk7XG4ke3N0ZXBzLm1hcChmb3JtYXRTdGVwKS5qb2luKGBcXG5gKX1cbiAgICB9KTtcbn0pO1xuICAgIGBcbiAgfSwgW2VkaXRvciwgc3RlcHNdKVxuXG4gIC8vIGp1c3QgYSB3cmFwcGVyIGFyb3VuZCBpbnNlcnRpbmcgbmV3IGFjdGlvbnMgc28gdGhhdCB3ZSBjYW5cbiAgLy8gY29hbGVzY2Ugc29tZSBhY3Rpb25zIGxpa2UgaW5zZXJ0VGV4dC9tb3ZlTmF0aXZlU2VsZWN0aW9uXG4gIGNvbnN0IHB1c2hTdGVwID0gdXNlQ2FsbGJhY2soXG4gICAgKG5hbWU6IHN0cmluZywgdmFsdWU6IFN0ZXBbJ3ZhbHVlJ10pID0+IHtcbiAgICAgIHNldFN0ZXBzKChjdXJyZW50U3RlcHMpID0+IHtcbiAgICAgICAgLy8gdHJ5aW5nIHRvIGdyb3VwIHN0ZXBzXG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHN0ZXBzLmxlbmd0aCAtIDFcbiAgICAgICAgY29uc3QgbGFzdFN0ZXAgPSBzdGVwc1tjdXJyZW50SW5kZXhdXG4gICAgICAgIGlmIChsYXN0U3RlcCkge1xuICAgICAgICAgIGlmIChsYXN0U3RlcC5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgICBpZiAobmFtZSA9PT0gJ3R5cGUnKSB7XG4gICAgICAgICAgICAgIC8vIGZvciB0eXBpbmcgZXZlbnRzIHdlIGp1c3QgYXBwZW5kIHRoZSB0ZXh0XG4gICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgLi4uc3RlcHMuc2xpY2UoMCwgY3VycmVudEluZGV4KSxcbiAgICAgICAgICAgICAgICB7IC4uLmxhc3RTdGVwLCB2YWx1ZTogbGFzdFN0ZXAudmFsdWUgKyB2YWx1ZSB9LFxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBmb3Igb3RoZXIgZXZlbnRzIHdlIGJ1bXAgdGhlIGNvdW50ZXIgaWYgdGhlaXIgdmFsdWVzIGFyZSB0aGUgc2FtZVxuICAgICAgICAgICAgICBpZiAobGFzdFN0ZXAudmFsdWUgPT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsuLi5zdGVwcy5zbGljZSgwLCBjdXJyZW50SW5kZXgpLCB7IC4uLmxhc3RTdGVwLCBjb3VudDogbGFzdFN0ZXAuY291bnQgKyAxIH1dXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gY291bGQgbm90IGdyb3VwLCBqdXN0IGFwcGVuZCBhIG5ldyBvbmVcbiAgICAgICAgcmV0dXJuIFsuLi5jdXJyZW50U3RlcHMsIHsgbmFtZSwgY291bnQ6IDEsIHZhbHVlIH1dXG4gICAgICB9KVxuICAgIH0sXG4gICAgW3N0ZXBzLCBzZXRTdGVwc10sXG4gIClcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG9uS2V5RG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKCFpc1JlY29yZGluZykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleVxuICAgICAgaWYgKGlzU2VsZWN0QWxsKGV2ZW50KSkge1xuICAgICAgICBwdXNoU3RlcCgnc2VsZWN0QWxsJywgJycpXG4gICAgICB9IGVsc2UgaWYgKGtleVByZXNzZXMuaGFzKGtleSkpIHtcbiAgICAgICAgcHVzaFN0ZXAoJ3ByZXNzJywgZXZlbnQua2V5KVxuICAgICAgfSBlbHNlIGlmIChbLi4ua2V5XS5sZW5ndGggPiAxKSB7XG4gICAgICAgIHB1c2hTdGVwKCdrZXlkb3duJywgZXZlbnQua2V5KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHVzaFN0ZXAoJ3R5cGUnLCBldmVudC5rZXkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb25LZXlVcCA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKCFpc1JlY29yZGluZykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleVxuICAgICAgaWYgKCFrZXlQcmVzc2VzLmhhcyhrZXkpICYmIFsuLi5rZXldLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgcHVzaFN0ZXAoJ2tleXVwJywgZXZlbnQua2V5KVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlZGl0b3IucmVnaXN0ZXJSb290TGlzdGVuZXIoXG4gICAgICAocm9vdEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCwgcHJldlJvb3RFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgICAgaWYgKHByZXZSb290RWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIHByZXZSb290RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25LZXlEb3duKVxuICAgICAgICAgIHByZXZSb290RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIG9uS2V5VXApXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJvb3RFbGVtZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgcm9vdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIG9uS2V5RG93bilcbiAgICAgICAgICByb290RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIG9uS2V5VXApXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgKVxuICB9LCBbZWRpdG9yLCBpc1JlY29yZGluZywgcHVzaFN0ZXBdKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHByZVJlZi5jdXJyZW50KSB7XG4gICAgICBwcmVSZWYuY3VycmVudC5zY3JvbGxUbygwLCBwcmVSZWYuY3VycmVudC5zY3JvbGxIZWlnaHQpXG4gICAgfVxuICB9LCBbZ2VuZXJhdGVUZXN0Q29udGVudF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc3RlcHMpIHtcbiAgICAgIGNvbnN0IHRlc3RDb250ZW50ID0gZ2VuZXJhdGVUZXN0Q29udGVudCgpXG4gICAgICBpZiAodGVzdENvbnRlbnQgIT09IG51bGwpIHtcbiAgICAgICAgc2V0VGVtcGxhdGVkVGVzdCh0ZXN0Q29udGVudClcbiAgICAgIH1cbiAgICAgIGlmIChwcmVSZWYuY3VycmVudCkge1xuICAgICAgICBwcmVSZWYuY3VycmVudC5zY3JvbGxUbygwLCBwcmVSZWYuY3VycmVudC5zY3JvbGxIZWlnaHQpXG4gICAgICB9XG4gICAgfVxuICB9LCBbZ2VuZXJhdGVUZXN0Q29udGVudCwgc3RlcHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgcmVtb3ZlVXBkYXRlTGlzdGVuZXIgPSBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcihcbiAgICAgICh7IGRpcnR5RWxlbWVudHMsIGRpcnR5TGVhdmVzLCBlZGl0b3JTdGF0ZSB9KSA9PiB7XG4gICAgICAgIGlmICghaXNSZWNvcmRpbmcpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50U2VsZWN0aW9uID0gZWRpdG9yU3RhdGUuX3NlbGVjdGlvblxuICAgICAgICBjb25zdCBwcmV2aW91c1NlbGVjdGlvbiA9IHByZXZpb3VzU2VsZWN0aW9uUmVmLmN1cnJlbnRcbiAgICAgICAgY29uc3Qgc2tpcE5leHRTZWxlY3Rpb25DaGFuZ2UgPSBza2lwTmV4dFNlbGVjdGlvbkNoYW5nZVJlZi5jdXJyZW50XG4gICAgICAgIGlmIChwcmV2aW91c1NlbGVjdGlvbiAhPT0gY3VycmVudFNlbGVjdGlvbikge1xuICAgICAgICAgIGlmIChkaXJ0eUxlYXZlcy5zaXplID09PSAwICYmIGRpcnR5RWxlbWVudHMuc2l6ZSA9PT0gMCAmJiAhc2tpcE5leHRTZWxlY3Rpb25DaGFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZXJTZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgYnJvd3NlclNlbGVjdGlvbiAmJlxuICAgICAgICAgICAgICAoYnJvd3NlclNlbGVjdGlvbi5hbmNob3JOb2RlID09IG51bGwgfHwgYnJvd3NlclNlbGVjdGlvbi5mb2N1c05vZGUgPT0gbnVsbClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb25SZWYuY3VycmVudCA9IGN1cnJlbnRTZWxlY3Rpb25cbiAgICAgICAgfVxuICAgICAgICBza2lwTmV4dFNlbGVjdGlvbkNoYW5nZVJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgY29uc3QgdGVzdENvbnRlbnQgPSBnZW5lcmF0ZVRlc3RDb250ZW50KClcbiAgICAgICAgaWYgKHRlc3RDb250ZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgc2V0VGVtcGxhdGVkVGVzdCh0ZXN0Q29udGVudClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApXG4gICAgcmV0dXJuIHJlbW92ZVVwZGF0ZUxpc3RlbmVyXG4gIH0sIFtlZGl0b3IsIGdlbmVyYXRlVGVzdENvbnRlbnQsIGlzUmVjb3JkaW5nLCBwdXNoU3RlcF0pXG5cbiAgLy8gc2F2ZSBpbm5lckhUTUxcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzUmVjb3JkaW5nKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY29uc3QgcmVtb3ZlVXBkYXRlTGlzdGVuZXIgPSBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoKSA9PiB7XG4gICAgICBjb25zdCByb290RWxlbWVudCA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG4gICAgICBpZiAocm9vdEVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgc2V0Q3VycmVudElubmVySFRNTChyb290RWxlbWVudD8uaW5uZXJIVE1MKVxuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIHJlbW92ZVVwZGF0ZUxpc3RlbmVyXG4gIH0sIFtlZGl0b3IsIGlzUmVjb3JkaW5nXSlcblxuICAvLyBjbGVhciBlZGl0b3IgYW5kIHN0YXJ0IHJlY29yZGluZ1xuICBjb25zdCB0b2dnbGVFZGl0b3JTZWxlY3Rpb24gPSB1c2VDYWxsYmFjayhcbiAgICAoY3VycmVudEVkaXRvcjogTGV4aWNhbEVkaXRvcikgPT4ge1xuICAgICAgaWYgKCFpc1JlY29yZGluZykge1xuICAgICAgICBjdXJyZW50RWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgcm9vdCA9ICRnZXRSb290KClcbiAgICAgICAgICByb290LmNsZWFyKClcbiAgICAgICAgICBjb25zdCB0ZXh0ID0gJGNyZWF0ZVRleHROb2RlKClcbiAgICAgICAgICByb290LmFwcGVuZCgkY3JlYXRlUGFyYWdyYXBoTm9kZSgpLmFwcGVuZCh0ZXh0KSlcbiAgICAgICAgICB0ZXh0LnNlbGVjdCgpXG4gICAgICAgIH0pXG4gICAgICAgIHNldFN0ZXBzKFtdKVxuICAgICAgfVxuICAgICAgc2V0SXNSZWNvcmRpbmcoKGN1cnJlbnRJc1JlY29yZGluZykgPT4gIWN1cnJlbnRJc1JlY29yZGluZylcbiAgICB9LFxuICAgIFtpc1JlY29yZGluZ10sXG4gIClcblxuICBjb25zdCBvblNuYXBzaG90Q2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKCFpc1JlY29yZGluZykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IGJyb3dzZXJTZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICBpZiAoXG4gICAgICBicm93c2VyU2VsZWN0aW9uID09PSBudWxsIHx8XG4gICAgICBicm93c2VyU2VsZWN0aW9uLmFuY2hvck5vZGUgPT0gbnVsbCB8fFxuICAgICAgYnJvd3NlclNlbGVjdGlvbi5mb2N1c05vZGUgPT0gbnVsbFxuICAgICkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHsgYW5jaG9yTm9kZSwgYW5jaG9yT2Zmc2V0LCBmb2N1c05vZGUsIGZvY3VzT2Zmc2V0IH0gPSBzYW5pdGl6ZVNlbGVjdGlvbihicm93c2VyU2VsZWN0aW9uKVxuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZ2V0Q3VycmVudEVkaXRvcigpLmdldFJvb3RFbGVtZW50KClcbiAgICBsZXQgYW5jaG9yUGF0aFxuICAgIGlmIChhbmNob3JOb2RlICE9PSBudWxsKSB7XG4gICAgICBhbmNob3JQYXRoID0gZ2V0UGF0aEZyb21Ob2RlVG9FZGl0b3IoYW5jaG9yTm9kZSwgcm9vdEVsZW1lbnQpXG4gICAgfVxuICAgIGxldCBmb2N1c1BhdGhcbiAgICBpZiAoZm9jdXNOb2RlICE9PSBudWxsKSB7XG4gICAgICBmb2N1c1BhdGggPSBnZXRQYXRoRnJvbU5vZGVUb0VkaXRvcihmb2N1c05vZGUsIHJvb3RFbGVtZW50KVxuICAgIH1cbiAgICBwdXNoU3RlcCgnc25hcHNob3QnLCB7XG4gICAgICBhbmNob3JOb2RlLFxuICAgICAgYW5jaG9yT2Zmc2V0LFxuICAgICAgYW5jaG9yUGF0aCxcbiAgICAgIGZvY3VzTm9kZSxcbiAgICAgIGZvY3VzT2Zmc2V0LFxuICAgICAgZm9jdXNQYXRoLFxuICAgIH0pXG4gIH0sIFtwdXNoU3RlcCwgaXNSZWNvcmRpbmcsIGdldEN1cnJlbnRFZGl0b3JdKVxuXG4gIGNvbnN0IG9uQ29weUNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvcHkoZ2VuZXJhdGVUZXN0Q29udGVudCgpKVxuICB9LCBbZ2VuZXJhdGVUZXN0Q29udGVudF0pXG5cbiAgY29uc3Qgb25Eb3dubG9hZENsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRvd25sb2FkKCd0ZXN0LmpzJywgZ2VuZXJhdGVUZXN0Q29udGVudCgpKVxuICB9LCBbZ2VuZXJhdGVUZXN0Q29udGVudF0pXG5cbiAgY29uc3QgYnV0dG9uID0gKFxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzTmFtZT17YGVkaXRvci1kZXYtYnV0dG9uICR7aXNSZWNvcmRpbmcgPyAnYWN0aXZlJyA6ICcnfWB9XG4gICAgICBpZD1cInRlc3QtcmVjb3JkZXItYnV0dG9uXCJcbiAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgIHRvZ2dsZUVkaXRvclNlbGVjdGlvbihnZXRDdXJyZW50RWRpdG9yKCkpXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgfX1cbiAgICAgIHRpdGxlPXtpc1JlY29yZGluZyA/ICdEaXNhYmxlIHRlc3QgcmVjb3JkZXInIDogJ0VuYWJsZSB0ZXN0IHJlY29yZGVyJ31cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIHtpc1JlY29yZGluZyA/ICdEaXNhYmxlIHRlc3QgcmVjb3JkZXInIDogJ0VuYWJsZSB0ZXN0IHJlY29yZGVyJ31cbiAgICA8L2J1dHRvbj5cbiAgKVxuICBjb25zdCBvdXRwdXQgPSBpc1JlY29yZGluZyA/IChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInRlc3QtcmVjb3JkZXItb3V0cHV0XCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInRlc3QtcmVjb3JkZXItdG9vbGJhclwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3NOYW1lPVwidGVzdC1yZWNvcmRlci1idXR0b25cIlxuICAgICAgICAgIGlkPVwidGVzdC1yZWNvcmRlci1idXR0b24tc25hcHNob3RcIlxuICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICBvblNuYXBzaG90Q2xpY2soKVxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgfX1cbiAgICAgICAgICB0aXRsZT1cIkluc2VydCBzbmFwc2hvdFwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICBJbnNlcnQgU25hcHNob3RcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXN0LXJlY29yZGVyLWJ1dHRvblwiXG4gICAgICAgICAgaWQ9XCJ0ZXN0LXJlY29yZGVyLWJ1dHRvbi1jb3B5XCJcbiAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgb25Db3B5Q2xpY2soKVxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgfX1cbiAgICAgICAgICB0aXRsZT1cIkNvcHkgdG8gY2xpcGJvYXJkXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgIENvcHlcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXN0LXJlY29yZGVyLWJ1dHRvblwiXG4gICAgICAgICAgaWQ9XCJ0ZXN0LXJlY29yZGVyLWJ1dHRvbi1kb3dubG9hZFwiXG4gICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgIG9uRG93bmxvYWRDbGljaygpXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICB9fVxuICAgICAgICAgIHRpdGxlPVwiRG93bmxvYWQgYXMgYSBmaWxlXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgIERvd25sb2FkXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8cHJlIGlkPVwidGVzdC1yZWNvcmRlclwiIHJlZj17cHJlUmVmfT5cbiAgICAgICAge3RlbXBsYXRlZFRlc3R9XG4gICAgICA8L3ByZT5cbiAgICA8L2Rpdj5cbiAgKSA6IG51bGxcblxuICByZXR1cm4gW2J1dHRvbiwgb3V0cHV0XVxufVxuZXhwb3J0IGNvbnN0IFRlc3RSZWNvcmRlclBsdWdpbjogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIGNvbnN0IFt0ZXN0UmVjb3JkZXJCdXR0b24sIHRlc3RSZWNvcmRlck91dHB1dF0gPSB1c2VUZXN0UmVjb3JkZXIoZWRpdG9yKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPHA+SEk8L3A+XG4gICAgICB7dGVzdFJlY29yZGVyQnV0dG9ufVxuICAgICAge3Rlc3RSZWNvcmRlck91dHB1dH1cbiAgICAgIDxwPkRPTkU8L3A+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbImxleGljYWxDb21wb3NlckNvbnRleHRJbXBvcnQiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwibGV4aWNhbEltcG9ydCIsIiRjcmVhdGVQYXJhZ3JhcGhOb2RlIiwiJGNyZWF0ZVRleHROb2RlIiwiJGdldFJvb3QiLCJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTGF5b3V0RWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJJU19BUFBMRSIsImNvcHkiLCJ0ZXh0IiwidGV4dEFyZWEiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJ2YWx1ZSIsInN0eWxlIiwicG9zaXRpb24iLCJvcGFjaXR5IiwiYm9keSIsImFwcGVuZENoaWxkIiwiZm9jdXMiLCJzZWxlY3QiLCJyZXN1bHQiLCJleGVjQ29tbWFuZCIsImNvbnNvbGUiLCJsb2ciLCJlcnJvciIsInJlbW92ZUNoaWxkIiwiZG93bmxvYWQiLCJmaWxlbmFtZSIsImEiLCJzZXRBdHRyaWJ1dGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJkaXNwbGF5IiwiY2xpY2siLCJmb3JtYXRTdGVwIiwic3RlcCIsImZvcm1hdE9uZVN0ZXAiLCJuYW1lIiwieCIsInkiLCJhbmNob3JQYXRoIiwidG9TdHJpbmciLCJhbmNob3JPZmZzZXQiLCJmb2N1c1BhdGgiLCJmb2N1c09mZnNldCIsImZvcm1hdHRlZFN0ZXAiLCJjb3VudCIsImpvaW4iLCJpc1NlbGVjdEFsbCIsImV2ZW50Iiwia2V5Q29kZSIsIm1ldGFLZXkiLCJjdHJsS2V5Iiwic2FuaXRpemVTZWxlY3Rpb24iLCJzZWxlY3Rpb24iLCJhbmNob3JOb2RlIiwiZm9jdXNOb2RlIiwiZ2V0UGF0aEZyb21Ob2RlVG9FZGl0b3IiLCJub2RlIiwicm9vdEVsZW1lbnQiLCJjdXJyZW50Tm9kZSIsInBhdGgiLCJ1bmRlZmluZWQiLCJ1bnNoaWZ0IiwiQXJyYXkiLCJmcm9tIiwicGFyZW50Tm9kZSIsImNoaWxkTm9kZXMiLCJpbmRleE9mIiwia2V5UHJlc3NlcyIsIlNldCIsInVzZVRlc3RSZWNvcmRlciIsImVkaXRvciIsInN0ZXBzIiwic2V0U3RlcHMiLCJpc1JlY29yZGluZyIsInNldElzUmVjb3JkaW5nIiwic2V0Q3VycmVudElubmVySFRNTCIsInRlbXBsYXRlZFRlc3QiLCJzZXRUZW1wbGF0ZWRUZXN0IiwicHJldmlvdXNTZWxlY3Rpb25SZWYiLCJza2lwTmV4dFNlbGVjdGlvbkNoYW5nZVJlZiIsInByZVJlZiIsImdldEN1cnJlbnRFZGl0b3IiLCJnZW5lcmF0ZVRlc3RDb250ZW50IiwiZ2V0Um9vdEVsZW1lbnQiLCJicm93c2VyU2VsZWN0aW9uIiwid2luZG93IiwiZ2V0U2VsZWN0aW9uIiwiY29udGFpbnMiLCJtYXAiLCJwdXNoU3RlcCIsImN1cnJlbnRTdGVwcyIsImN1cnJlbnRJbmRleCIsImxlbmd0aCIsImxhc3RTdGVwIiwic2xpY2UiLCJvbktleURvd24iLCJrZXkiLCJoYXMiLCJvbktleVVwIiwicmVnaXN0ZXJSb290TGlzdGVuZXIiLCJwcmV2Um9vdEVsZW1lbnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsImN1cnJlbnQiLCJzY3JvbGxUbyIsInNjcm9sbEhlaWdodCIsInRlc3RDb250ZW50IiwicmVtb3ZlVXBkYXRlTGlzdGVuZXIiLCJyZWdpc3RlclVwZGF0ZUxpc3RlbmVyIiwiZGlydHlFbGVtZW50cyIsImRpcnR5TGVhdmVzIiwiZWRpdG9yU3RhdGUiLCJjdXJyZW50U2VsZWN0aW9uIiwiX3NlbGVjdGlvbiIsInByZXZpb3VzU2VsZWN0aW9uIiwic2tpcE5leHRTZWxlY3Rpb25DaGFuZ2UiLCJzaXplIiwiaW5uZXJIVE1MIiwidG9nZ2xlRWRpdG9yU2VsZWN0aW9uIiwiY3VycmVudEVkaXRvciIsInVwZGF0ZSIsInJvb3QiLCJjbGVhciIsImFwcGVuZCIsImN1cnJlbnRJc1JlY29yZGluZyIsIm9uU25hcHNob3RDbGljayIsIm9uQ29weUNsaWNrIiwib25Eb3dubG9hZENsaWNrIiwiYnV0dG9uIiwiY2xhc3NOYW1lIiwiaWQiLCJvbkNsaWNrIiwiZSIsInByZXZlbnREZWZhdWx0IiwidGl0bGUiLCJ0eXBlIiwib3V0cHV0IiwiZGl2IiwicHJlIiwicmVmIiwiVGVzdFJlY29yZGVyUGx1Z2luIiwidGVzdFJlY29yZGVyQnV0dG9uIiwidGVzdFJlY29yZGVyT3V0cHV0IiwiRnJhZ21lbnQiLCJwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUdBLE9BQU9BLGtDQUFrQywyQ0FBMEM7QUFDbkYsTUFBTSxFQUFFQyx5QkFBeUIsRUFBRSxHQUFHRDtBQUN0QyxPQUFPRSxtQkFBbUIsVUFBUztBQUNuQyxNQUFNLEVBQUVDLG9CQUFvQixFQUFFQyxlQUFlLEVBQUVDLFFBQVEsRUFBRSxHQUFHSDtBQUM1RCxZQUFZSSxXQUFXLFFBQU87QUFDOUIsU0FBU0MsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLGVBQWUsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsUUFBTztBQUVqRixTQUFTQyxRQUFRLFFBQVEsMkNBQTBDO0FBQ25FLE9BQU8s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
448
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/field/features/debug/testrecorder/plugin/index.tsx"],"sourcesContent":["'use client'\nimport type { BaseSelection, LexicalEditor } from 'lexical'\n\nimport lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js'\nconst { useLexicalComposerContext } = lexicalComposerContextImport\nimport lexicalImport from 'lexical'\nconst { $createParagraphNode, $createTextNode, $getRoot } = lexicalImport\nimport * as React from 'react'\nimport { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'\n\nimport { IS_APPLE } from '../../../../lexical/utils/environment.js'\nimport './index.scss'\n\nconst copy = (text: null | string) => {\n const textArea = document.createElement('textarea')\n textArea.value = text || ''\n textArea.style.position = 'absolute'\n textArea.style.opacity = '0'\n document.body?.appendChild(textArea)\n textArea.focus()\n textArea.select()\n try {\n const result = document.execCommand('copy')\n // eslint-disable-next-line no-console\n console.log(result)\n } catch (error) {\n console.error(error)\n }\n document.body?.removeChild(textArea)\n}\n\nconst download = (filename: string, text: null | string) => {\n const a = document.createElement('a')\n a.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text || ''))\n a.setAttribute('download', filename)\n a.style.display = 'none'\n document.body?.appendChild(a)\n a.click()\n document.body?.removeChild(a)\n}\n\nconst formatStep = (step: Step) => {\n const formatOneStep = (name: string, value: Step['value']) => {\n switch (name) {\n case 'click': {\n return ` await page.mouse.click(${value.x}, ${value.y});`\n }\n case 'press': {\n return ` await page.keyboard.press('${value}');`\n }\n case 'keydown': {\n return ` await page.keyboard.keydown('${value}');`\n }\n case 'keyup': {\n return ` await page.keyboard.keyup('${value}');`\n }\n case 'type': {\n return ` await page.keyboard.type('${value}');`\n }\n case 'selectAll': {\n return ` await selectAll(page);`\n }\n case 'snapshot': {\n return ` await assertHTMLSnapshot(page);\n await assertSelection(page, {\n anchorPath: [${value.anchorPath.toString()}],\n anchorOffset: ${value.anchorOffset},\n focusPath: [${value.focusPath.toString()}],\n focusOffset: ${value.focusOffset},\n });\n`\n }\n default:\n return ``\n }\n }\n const formattedStep = formatOneStep(step.name, step.value)\n switch (step.count) {\n case 1:\n return formattedStep\n case 2:\n return [formattedStep, formattedStep].join(`\\n`)\n default:\n return ` await repeat(${step.count}, async () => {\n ${formattedStep}\n );`\n }\n}\n\nexport function isSelectAll(event: KeyboardEvent): boolean {\n return event.keyCode === 65 && (IS_APPLE ? event.metaKey : event.ctrlKey)\n}\n\n// stolen from LexicalSelection-test\nfunction sanitizeSelection(selection: Selection) {\n const { anchorNode, focusNode } = selection\n let { anchorOffset, focusOffset } = selection\n if (anchorOffset !== 0) {\n anchorOffset--\n }\n if (focusOffset !== 0) {\n focusOffset--\n }\n return { anchorNode, anchorOffset, focusNode, focusOffset }\n}\n\nfunction getPathFromNodeToEditor(node: Node, rootElement: HTMLElement | null) {\n let currentNode: Node | null | undefined = node\n const path = []\n while (currentNode !== rootElement) {\n if (currentNode !== null && currentNode !== undefined) {\n path.unshift(\n Array.from(currentNode?.parentNode?.childNodes ?? []).indexOf(currentNode as ChildNode),\n )\n }\n currentNode = currentNode?.parentNode\n }\n return path\n}\n\nconst keyPresses = new Set([\n 'Enter',\n 'Backspace',\n 'Delete',\n 'Escape',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n])\n\ntype Step = {\n count: number\n name: string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any\n}\n\ntype Steps = Step[]\n\nfunction useTestRecorder(editor: LexicalEditor): [JSX.Element, JSX.Element | null] {\n const [steps, setSteps] = useState<Steps>([])\n const [isRecording, setIsRecording] = useState(false)\n const [, setCurrentInnerHTML] = useState('')\n const [templatedTest, setTemplatedTest] = useState('')\n const previousSelectionRef = useRef<BaseSelection | null>(null)\n const skipNextSelectionChangeRef = useRef(false)\n const preRef = useRef<HTMLPreElement>(null)\n\n const getCurrentEditor = useCallback(() => {\n return editor\n }, [editor])\n\n const generateTestContent = useCallback(() => {\n const rootElement = editor.getRootElement()\n const browserSelection = window.getSelection()\n\n if (\n rootElement == null ||\n browserSelection == null ||\n browserSelection.anchorNode == null ||\n browserSelection.focusNode == null ||\n !rootElement.contains(browserSelection.anchorNode) ||\n !rootElement.contains(browserSelection.focusNode)\n ) {\n return null\n }\n\n return `\nimport {\n initializeE2E,\n assertHTMLSnapshot,\n assertSelection,\n repeat,\n} from '../utils';\nimport {selectAll} from '../keyboardShortcuts';\nimport { RangeSelection } from 'lexical';\nimport { NodeSelection } from 'lexical';\n\ndescribe('Test case', () => {\n initializeE2E((e2e) => {\n it('Should pass this test', async () => {\n const {page} = e2e;\n\n await page.focus('div[contenteditable=\"true\"]');\n${steps.map(formatStep).join(`\\n`)}\n });\n});\n `\n }, [editor, steps])\n\n // just a wrapper around inserting new actions so that we can\n // coalesce some actions like insertText/moveNativeSelection\n const pushStep = useCallback(\n (name: string, value: Step['value']) => {\n setSteps((currentSteps) => {\n // trying to group steps\n const currentIndex = steps.length - 1\n const lastStep = steps[currentIndex]\n if (lastStep) {\n if (lastStep.name === name) {\n if (name === 'type') {\n // for typing events we just append the text\n return [\n ...steps.slice(0, currentIndex),\n { ...lastStep, value: lastStep.value + value },\n ]\n } else {\n // for other events we bump the counter if their values are the same\n if (lastStep.value === value) {\n return [...steps.slice(0, currentIndex), { ...lastStep, count: lastStep.count + 1 }]\n }\n }\n }\n }\n // could not group, just append a new one\n return [...currentSteps, { name, count: 1, value }]\n })\n },\n [steps, setSteps],\n )\n\n useLayoutEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (!isRecording) {\n return\n }\n const key = event.key\n if (isSelectAll(event)) {\n pushStep('selectAll', '')\n } else if (keyPresses.has(key)) {\n pushStep('press', event.key)\n } else if ([...key].length > 1) {\n pushStep('keydown', event.key)\n } else {\n pushStep('type', event.key)\n }\n }\n\n const onKeyUp = (event: KeyboardEvent) => {\n if (!isRecording) {\n return\n }\n const key = event.key\n if (!keyPresses.has(key) && [...key].length > 1) {\n pushStep('keyup', event.key)\n }\n }\n\n return editor.registerRootListener(\n (rootElement: HTMLElement | null, prevRootElement: HTMLElement | null) => {\n if (prevRootElement !== null) {\n prevRootElement.removeEventListener('keydown', onKeyDown)\n prevRootElement.removeEventListener('keyup', onKeyUp)\n }\n if (rootElement !== null) {\n rootElement.addEventListener('keydown', onKeyDown)\n rootElement.addEventListener('keyup', onKeyUp)\n }\n },\n )\n }, [editor, isRecording, pushStep])\n\n useLayoutEffect(() => {\n if (preRef.current) {\n preRef.current.scrollTo(0, preRef.current.scrollHeight)\n }\n }, [generateTestContent])\n\n useEffect(() => {\n if (steps) {\n const testContent = generateTestContent()\n if (testContent !== null) {\n setTemplatedTest(testContent)\n }\n if (preRef.current) {\n preRef.current.scrollTo(0, preRef.current.scrollHeight)\n }\n }\n }, [generateTestContent, steps])\n\n useEffect(() => {\n const removeUpdateListener = editor.registerUpdateListener(\n ({ dirtyElements, dirtyLeaves, editorState }) => {\n if (!isRecording) {\n return\n }\n const currentSelection = editorState._selection\n const previousSelection = previousSelectionRef.current\n const skipNextSelectionChange = skipNextSelectionChangeRef.current\n if (previousSelection !== currentSelection) {\n if (dirtyLeaves.size === 0 && dirtyElements.size === 0 && !skipNextSelectionChange) {\n const browserSelection = window.getSelection()\n if (\n browserSelection &&\n (browserSelection.anchorNode == null || browserSelection.focusNode == null)\n ) {\n return\n }\n }\n previousSelectionRef.current = currentSelection\n }\n skipNextSelectionChangeRef.current = false\n const testContent = generateTestContent()\n if (testContent !== null) {\n setTemplatedTest(testContent)\n }\n },\n )\n return removeUpdateListener\n }, [editor, generateTestContent, isRecording, pushStep])\n\n // save innerHTML\n useEffect(() => {\n if (!isRecording) {\n return\n }\n const removeUpdateListener = editor.registerUpdateListener(() => {\n const rootElement = editor.getRootElement()\n if (rootElement !== null) {\n setCurrentInnerHTML(rootElement?.innerHTML)\n }\n })\n return removeUpdateListener\n }, [editor, isRecording])\n\n // clear editor and start recording\n const toggleEditorSelection = useCallback(\n (currentEditor: LexicalEditor) => {\n if (!isRecording) {\n currentEditor.update(() => {\n const root = $getRoot()\n root.clear()\n const text = $createTextNode()\n root.append($createParagraphNode().append(text))\n text.select()\n })\n setSteps([])\n }\n setIsRecording((currentIsRecording) => !currentIsRecording)\n },\n [isRecording],\n )\n\n const onSnapshotClick = useCallback(() => {\n if (!isRecording) {\n return\n }\n const browserSelection = window.getSelection()\n if (\n browserSelection === null ||\n browserSelection.anchorNode == null ||\n browserSelection.focusNode == null\n ) {\n return\n }\n const { anchorNode, anchorOffset, focusNode, focusOffset } = sanitizeSelection(browserSelection)\n const rootElement = getCurrentEditor().getRootElement()\n let anchorPath\n if (anchorNode !== null) {\n anchorPath = getPathFromNodeToEditor(anchorNode, rootElement)\n }\n let focusPath\n if (focusNode !== null) {\n focusPath = getPathFromNodeToEditor(focusNode, rootElement)\n }\n pushStep('snapshot', {\n anchorNode,\n anchorOffset,\n anchorPath,\n focusNode,\n focusOffset,\n focusPath,\n })\n }, [pushStep, isRecording, getCurrentEditor])\n\n const onCopyClick = useCallback(() => {\n copy(generateTestContent())\n }, [generateTestContent])\n\n const onDownloadClick = useCallback(() => {\n download('test.js', generateTestContent())\n }, [generateTestContent])\n\n const button = (\n <button\n className={`editor-dev-button ${isRecording ? 'active' : ''}`}\n id=\"test-recorder-button\"\n onClick={(e) => {\n toggleEditorSelection(getCurrentEditor())\n e.preventDefault()\n }}\n title={isRecording ? 'Disable test recorder' : 'Enable test recorder'}\n type=\"button\"\n >\n {isRecording ? 'Disable test recorder' : 'Enable test recorder'}\n </button>\n )\n const output = isRecording ? (\n <div className=\"test-recorder-output\">\n <div className=\"test-recorder-toolbar\">\n <button\n className=\"test-recorder-button\"\n id=\"test-recorder-button-snapshot\"\n onClick={(e) => {\n onSnapshotClick()\n e.preventDefault()\n }}\n title=\"Insert snapshot\"\n type=\"button\"\n >\n Insert Snapshot\n </button>\n <button\n className=\"test-recorder-button\"\n id=\"test-recorder-button-copy\"\n onClick={(e) => {\n onCopyClick()\n e.preventDefault()\n }}\n title=\"Copy to clipboard\"\n type=\"button\"\n >\n Copy\n </button>\n <button\n className=\"test-recorder-button\"\n id=\"test-recorder-button-download\"\n onClick={(e) => {\n onDownloadClick()\n e.preventDefault()\n }}\n title=\"Download as a file\"\n type=\"button\"\n >\n Download\n </button>\n </div>\n <pre id=\"test-recorder\" ref={preRef}>\n {templatedTest}\n </pre>\n </div>\n ) : null\n\n return [button, output]\n}\nexport const TestRecorderPlugin: React.FC = () => {\n const [editor] = useLexicalComposerContext()\n const [testRecorderButton, testRecorderOutput] = useTestRecorder(editor)\n\n return (\n <React.Fragment>\n <p>HI</p>\n {testRecorderButton}\n {testRecorderOutput}\n <p>DONE</p>\n </React.Fragment>\n )\n}\n"],"names":["lexicalComposerContextImport","useLexicalComposerContext","lexicalImport","$createParagraphNode","$createTextNode","$getRoot","React","useCallback","useEffect","useLayoutEffect","useRef","useState","IS_APPLE","copy","text","textArea","document","createElement","value","style","position","opacity","body","appendChild","focus","select","result","execCommand","console","log","error","removeChild","download","filename","a","setAttribute","encodeURIComponent","display","click","formatStep","step","formatOneStep","name","x","y","anchorPath","toString","anchorOffset","focusPath","focusOffset","formattedStep","count","join","isSelectAll","event","keyCode","metaKey","ctrlKey","sanitizeSelection","selection","anchorNode","focusNode","getPathFromNodeToEditor","node","rootElement","currentNode","path","undefined","unshift","Array","from","parentNode","childNodes","indexOf","keyPresses","Set","useTestRecorder","editor","steps","setSteps","isRecording","setIsRecording","setCurrentInnerHTML","templatedTest","setTemplatedTest","previousSelectionRef","skipNextSelectionChangeRef","preRef","getCurrentEditor","generateTestContent","getRootElement","browserSelection","window","getSelection","contains","map","pushStep","currentSteps","currentIndex","length","lastStep","slice","onKeyDown","key","has","onKeyUp","registerRootListener","prevRootElement","removeEventListener","addEventListener","current","scrollTo","scrollHeight","testContent","removeUpdateListener","registerUpdateListener","dirtyElements","dirtyLeaves","editorState","currentSelection","_selection","previousSelection","skipNextSelectionChange","size","innerHTML","toggleEditorSelection","currentEditor","update","root","clear","append","currentIsRecording","onSnapshotClick","onCopyClick","onDownloadClick","button","className","id","onClick","e","preventDefault","title","type","output","div","pre","ref","TestRecorderPlugin","testRecorderButton","testRecorderOutput","Fragment","p"],"mappings":"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"}