@payloadcms/richtext-lexical 3.0.0-beta.106 → 3.0.0-beta.108

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 (259) hide show
  1. package/dist/cell/index.js +1 -1
  2. package/dist/cell/index.js.map +1 -1
  3. package/dist/exports/client/Field-ETCEVZLL.js +2 -0
  4. package/dist/exports/client/Field-ETCEVZLL.js.map +7 -0
  5. package/dist/exports/client/RelationshipComponent-F6JI75HS.js +2 -0
  6. package/dist/exports/client/{RelationshipComponent-Z5SZ5FFT.js.map → RelationshipComponent-F6JI75HS.js.map} +2 -2
  7. package/dist/exports/client/bundled.css +1 -1
  8. package/dist/exports/client/chunk-76MVRKRT.js +2 -0
  9. package/dist/exports/client/chunk-76MVRKRT.js.map +7 -0
  10. package/dist/exports/client/{chunk-TXEIKM77.js → chunk-GD6LBQBJ.js} +2 -2
  11. package/dist/exports/client/chunk-GD6LBQBJ.js.map +7 -0
  12. package/dist/exports/client/chunk-HIGLONP6.js +2 -0
  13. package/dist/exports/client/chunk-HIGLONP6.js.map +7 -0
  14. package/dist/exports/client/{chunk-GK7ZKYHL.js → chunk-IIWHHN4J.js} +2 -2
  15. package/dist/exports/client/chunk-IIWHHN4J.js.map +7 -0
  16. package/dist/exports/client/{chunk-PY6JO5OH.js → chunk-JYCJEIVA.js} +2 -2
  17. package/dist/exports/client/{chunk-PY6JO5OH.js.map → chunk-JYCJEIVA.js.map} +2 -2
  18. package/dist/exports/client/{chunk-GTKNWSQW.js → chunk-N2PXHNGO.js} +2 -2
  19. package/dist/exports/client/{chunk-GTKNWSQW.js.map → chunk-N2PXHNGO.js.map} +2 -2
  20. package/dist/exports/client/{chunk-PECDZEZY.js → chunk-YREZUOA6.js} +2 -2
  21. package/dist/exports/client/{chunk-PECDZEZY.js.map → chunk-YREZUOA6.js.map} +2 -2
  22. package/dist/exports/client/component-4IBTSHL5.js +2 -0
  23. package/dist/exports/client/component-4IBTSHL5.js.map +7 -0
  24. package/dist/exports/client/{component-GAX6BHKZ.js → component-GQ5M6NF6.js} +2 -2
  25. package/dist/exports/client/component-P34B4EPY.js +2 -0
  26. package/dist/exports/client/component-P34B4EPY.js.map +7 -0
  27. package/dist/exports/client/componentInline-XX7FVAIV.js +2 -0
  28. package/dist/exports/client/{componentInline-HAGGWKA7.js.map → componentInline-XX7FVAIV.js.map} +2 -2
  29. package/dist/exports/client/index.js +7 -7
  30. package/dist/exports/client/index.js.map +4 -4
  31. package/dist/features/blockquote/markdownTransformer.js.map +1 -1
  32. package/dist/features/blockquote/server/index.d.ts +1 -1
  33. package/dist/features/blockquote/server/index.d.ts.map +1 -1
  34. package/dist/features/blocks/client/component/BlockContent.js +5 -4
  35. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  36. package/dist/features/blocks/client/component/index.d.ts +1 -1
  37. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  38. package/dist/features/blocks/client/component/index.js +15 -5
  39. package/dist/features/blocks/client/component/index.js.map +1 -1
  40. package/dist/features/blocks/client/componentInline/index.d.ts +1 -1
  41. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  42. package/dist/features/blocks/client/componentInline/index.js +4 -4
  43. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  44. package/dist/features/blocks/client/index.d.ts +1 -1
  45. package/dist/features/blocks/client/index.d.ts.map +1 -1
  46. package/dist/features/blocks/client/index.js +21 -11
  47. package/dist/features/blocks/client/index.js.map +1 -1
  48. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +2 -2
  49. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  50. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  51. package/dist/features/blocks/client/plugin/index.d.ts +2 -2
  52. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
  53. package/dist/features/blocks/client/plugin/index.js +4 -4
  54. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  55. package/dist/features/blocks/server/index.d.ts.map +1 -1
  56. package/dist/features/blocks/server/index.js +4 -2
  57. package/dist/features/blocks/server/index.js.map +1 -1
  58. package/dist/features/blocks/server/nodes/BlocksNode.d.ts +10 -4
  59. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  60. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  61. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +2 -2
  62. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  63. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  64. package/dist/features/blocks/server/validate.js.map +1 -1
  65. package/dist/features/converters/html/converter/index.js +2 -2
  66. package/dist/features/converters/html/converter/index.js.map +1 -1
  67. package/dist/features/converters/html/field/index.js.map +1 -1
  68. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  69. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  70. package/dist/features/experimental_table/server/index.js +2 -2
  71. package/dist/features/experimental_table/server/index.js.map +1 -1
  72. package/dist/features/horizontalRule/client/component/index.d.ts +1 -1
  73. package/dist/features/horizontalRule/client/component/index.d.ts.map +1 -1
  74. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +2 -2
  75. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  76. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  77. package/dist/features/indent/client/index.d.ts.map +1 -1
  78. package/dist/features/indent/client/index.js +2 -1
  79. package/dist/features/indent/client/index.js.map +1 -1
  80. package/dist/features/link/client/index.js +1 -1
  81. package/dist/features/link/client/index.js.map +1 -1
  82. package/dist/features/link/client/plugins/autoLink/index.d.ts +1 -1
  83. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  84. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  85. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  86. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +3 -7
  87. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  88. package/dist/features/link/nodes/AutoLinkNode.js +2 -2
  89. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  90. package/dist/features/link/nodes/LinkNode.js +11 -6
  91. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  92. package/dist/features/link/nodes/types.d.ts +3 -3
  93. package/dist/features/link/nodes/types.d.ts.map +1 -1
  94. package/dist/features/link/nodes/types.js.map +1 -1
  95. package/dist/features/link/server/baseFields.d.ts +1 -1
  96. package/dist/features/link/server/baseFields.d.ts.map +1 -1
  97. package/dist/features/link/server/baseFields.js +3 -1
  98. package/dist/features/link/server/baseFields.js.map +1 -1
  99. package/dist/features/link/server/index.d.ts.map +1 -1
  100. package/dist/features/link/server/index.js +2 -2
  101. package/dist/features/link/server/index.js.map +1 -1
  102. package/dist/features/link/server/transformExtraFields.d.ts +1 -1
  103. package/dist/features/link/server/transformExtraFields.d.ts.map +1 -1
  104. package/dist/features/link/server/transformExtraFields.js.map +1 -1
  105. package/dist/features/link/server/validate.js.map +1 -1
  106. package/dist/features/lists/shared/markdown.js.map +1 -1
  107. package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts.map +1 -1
  108. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +1 -0
  109. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -1
  110. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts +1 -1
  111. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  112. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  113. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -1
  114. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -1
  115. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -1
  116. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -1
  117. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -1
  118. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -1
  119. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -1
  120. package/dist/features/migrations/slateToLexical/converter/index.d.ts.map +1 -1
  121. package/dist/features/migrations/slateToLexical/converter/index.js +1 -0
  122. package/dist/features/migrations/slateToLexical/converter/index.js.map +1 -1
  123. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts +1 -1
  124. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  125. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  126. package/dist/features/paragraph/server/index.d.ts +1 -1
  127. package/dist/features/paragraph/server/index.d.ts.map +1 -1
  128. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
  129. package/dist/features/relationship/client/components/RelationshipComponent.js +8 -6
  130. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  131. package/dist/features/relationship/client/drawer/index.js +3 -3
  132. package/dist/features/relationship/client/drawer/index.js.map +1 -1
  133. package/dist/features/relationship/client/plugins/index.js +1 -1
  134. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  135. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js +1 -1
  136. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js.map +1 -1
  137. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +1 -1
  138. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  139. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  140. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  141. package/dist/features/toolbars/fixed/client/Toolbar/index.js +40 -41
  142. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  143. package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -1
  144. package/dist/features/toolbars/inline/client/Toolbar/index.js +33 -34
  145. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  146. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  147. package/dist/features/toolbars/shared/ToolbarButton/index.js +4 -1
  148. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  149. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +1 -1
  150. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  151. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts +3 -4
  152. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  153. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +82 -64
  154. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  155. package/dist/features/toolbars/types.d.ts +21 -11
  156. package/dist/features/toolbars/types.d.ts.map +1 -1
  157. package/dist/features/toolbars/types.js.map +1 -1
  158. package/dist/features/typesServer.d.ts.map +1 -1
  159. package/dist/features/typesServer.js.map +1 -1
  160. package/dist/features/upload/client/component/index.js +1 -1
  161. package/dist/features/upload/client/component/index.js.map +1 -1
  162. package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
  163. package/dist/features/upload/client/drawer/index.js +2 -0
  164. package/dist/features/upload/client/drawer/index.js.map +1 -1
  165. package/dist/features/upload/client/plugin/index.js +1 -1
  166. package/dist/features/upload/client/plugin/index.js.map +1 -1
  167. package/dist/features/upload/server/feature.server.js +3 -4
  168. package/dist/features/upload/server/feature.server.js.map +1 -1
  169. package/dist/features/upload/server/validate.js.map +1 -1
  170. package/dist/field/Field.d.ts.map +1 -1
  171. package/dist/field/Field.js +11 -11
  172. package/dist/field/Field.js.map +1 -1
  173. package/dist/field/bundled.css +1 -1
  174. package/dist/field/index.js +1 -1
  175. package/dist/field/index.js.map +1 -1
  176. package/dist/index.d.ts.map +1 -1
  177. package/dist/index.js +69 -63
  178. package/dist/index.js.map +1 -1
  179. package/dist/lexical/EditorPlugin.d.ts.map +1 -1
  180. package/dist/lexical/EditorPlugin.js +2 -1
  181. package/dist/lexical/EditorPlugin.js.map +1 -1
  182. package/dist/lexical/LexicalEditor.d.ts +1 -1
  183. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  184. package/dist/lexical/LexicalEditor.js +5 -5
  185. package/dist/lexical/LexicalEditor.js.map +1 -1
  186. package/dist/lexical/config/client/EditorConfigProvider.d.ts +1 -1
  187. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  188. package/dist/lexical/config/client/EditorConfigProvider.js +8 -7
  189. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  190. package/dist/lexical/config/client/sanitize.js +2 -2
  191. package/dist/lexical/config/client/sanitize.js.map +1 -1
  192. package/dist/lexical/config/server/loader.js.map +1 -1
  193. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  194. package/dist/lexical/config/server/sanitize.js +11 -11
  195. package/dist/lexical/config/server/sanitize.js.map +1 -1
  196. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +2 -2
  197. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  198. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +1 -1
  199. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
  200. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  201. package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
  202. package/dist/lexical/plugins/SlashMenu/index.js +9 -6
  203. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  204. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -1
  205. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +5 -5
  206. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  207. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts +1 -1
  208. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
  209. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +1 -1
  210. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +1 -1
  211. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +1 -1
  212. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js.map +1 -1
  213. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
  214. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +9 -4
  215. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  216. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.d.ts.map +1 -1
  217. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js +3 -4
  218. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js.map +1 -1
  219. package/dist/lexical/utils/rect.d.ts +4 -4
  220. package/dist/lexical/utils/setFloatingElemPosition.d.ts +1 -1
  221. package/dist/lexical/utils/setFloatingElemPosition.d.ts.map +1 -1
  222. package/dist/lexical/utils/setFloatingElemPosition.js.map +1 -1
  223. package/dist/populateGraphQL/populate.js +1 -1
  224. package/dist/populateGraphQL/populate.js.map +1 -1
  225. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts +1 -1
  226. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  227. package/dist/populateGraphQL/populateLexicalPopulationPromises.js +5 -4
  228. package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
  229. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js.map +1 -1
  230. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  231. package/dist/utilities/fieldsDrawer/DrawerContent.js +8 -3
  232. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  233. package/dist/utilities/generateComponentMap.d.ts.map +1 -1
  234. package/dist/utilities/generateComponentMap.js +1 -0
  235. package/dist/utilities/generateComponentMap.js.map +1 -1
  236. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts +1 -1
  237. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts.map +1 -1
  238. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +1 -1
  239. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
  240. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts +1 -1
  241. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  242. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  243. package/dist/validate/validateNodes.d.ts.map +1 -1
  244. package/dist/validate/validateNodes.js +2 -2
  245. package/dist/validate/validateNodes.js.map +1 -1
  246. package/package.json +13 -13
  247. package/dist/exports/client/Field-EL5TNVZW.js +0 -2
  248. package/dist/exports/client/Field-EL5TNVZW.js.map +0 -7
  249. package/dist/exports/client/RelationshipComponent-Z5SZ5FFT.js +0 -2
  250. package/dist/exports/client/chunk-366OGJYE.js +0 -2
  251. package/dist/exports/client/chunk-366OGJYE.js.map +0 -7
  252. package/dist/exports/client/chunk-GK7ZKYHL.js.map +0 -7
  253. package/dist/exports/client/chunk-TXEIKM77.js.map +0 -7
  254. package/dist/exports/client/component-OVIYSCND.js +0 -2
  255. package/dist/exports/client/component-OVIYSCND.js.map +0 -7
  256. package/dist/exports/client/component-UJILB3MH.js +0 -2
  257. package/dist/exports/client/component-UJILB3MH.js.map +0 -7
  258. package/dist/exports/client/componentInline-HAGGWKA7.js +0 -2
  259. /package/dist/exports/client/{component-GAX6BHKZ.js.map → component-GQ5M6NF6.js.map} +0 -0
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["afterChangeTraverseFields","afterReadTraverseFields","beforeChangeTraverseFields","beforeValidateTraverseFields","checkDependencies","deepCopyObject","deepCopyObjectSimple","withNullableJSONSchemaType","i18n","defaultEditorConfig","defaultEditorFeatures","loadFeatures","sanitizeServerEditorConfig","sanitizeServerFeatures","populateLexicalPopulationPromises","getGenerateImportMap","getGenerateSchemaMap","recurseNodeTree","richTextValidateHOC","defaultSanitizedServerEditorConfig","lexicalEditor","props","config","isRoot","parentIsLocalized","process","env","NODE_ENV","PAYLOAD_DISABLE_DEPENDENCY_CHECKER","dependencyGroups","name","dependencies","targetVersion","features","resolvedFeatureMap","finalSanitizedEditorConfig","lexical","rootEditor","editor","rootEditorFeatures","defaultFeatures","rootFeatures","unSanitizedEditorConfig","featureI18n","lang","general","CellComponent","clientProps","admin","lexicalEditorConfig","path","editorConfig","FieldComponent","generateComponentMap","serverProps","generateImportMap","generateSchemaMap","graphQLPopulationPromises","context","currentDepth","depth","draft","field","fieldPromises","findMany","flattenLocales","overrideAccess","populationPromises","req","showHiddenFields","siblingDoc","size","editorPopulationPromises","hooks","afterChange","args","collection","_context","global","operation","schemaPath","value","length","hook","nodeHooks","getSubFields","nodeIDMap","originalNodeIDMap","internal","richText","join","Object","keys","nodes","root","children","id","node","entries","afterChangeHooks","has","type","get","console","warn","originalNode","parentRichTextFieldPath","parentRichTextFieldSchemaPath","subFieldFn","subFieldDataFn","getSubFieldsData","subFields","data","originalData","doc","fields","previousDoc","previousSiblingDoc","siblingData","afterRead","fallbackLocale","locale","triggerAccessControl","triggerHooks","flattenedNodes","afterReadHooks","beforeChange","errors","mergeLocaleActions","siblingDocWithLocales","skipValidation","originalNodeWithLocalesIDMap","beforeChangeHooks","originalNodeWithLocales","originalDataWithLocales","docWithLocales","newOriginalNodeIDMap","previousValue","beforeValidate","beforeValidateHooks","outputSchema","collectionIDFieldTypes","interfaceNameDefinitions","isRequired","properties","additionalProperties","items","version","required","direction","oneOf","enum","format","indent","modifyOutputSchema","generatedTypes","modifyOutputSchemas","currentSchema","validate","AlignFeature","BlockquoteFeature","BlocksFeature","LinebreakHTMLConverter","ParagraphHTMLConverter","TextHTMLConverter","defaultHTMLConverters","convertLexicalNodesToHTML","convertLexicalToHTML","consolidateHTMLConverters","lexicalHTML","HTMLConverterFeature","TestRecorderFeature","TreeViewFeature","EXPERIMENTAL_TableFeature","BoldFeature","InlineCodeFeature","ItalicFeature","StrikethroughFeature","SubscriptFeature","SuperscriptFeature","UnderlineFeature","HeadingFeature","HorizontalRuleFeature","IndentFeature","AutoLinkNode","LinkNode","LinkFeature","ChecklistFeature","OrderedListFeature","UnorderedListFeature","ParagraphFeature","RelationshipFeature","RelationshipServerNode","FixedToolbarFeature","InlineToolbarFeature","createNode","UploadFeature","UploadServerNode","defaultEditorLexicalConfig","sortFeaturesForOptimalLoading","getEnabledNodes","DETAIL_TYPE_TO_DETAIL","DOUBLE_LINE_BREAK","ELEMENT_FORMAT_TO_TYPE","ELEMENT_TYPE_TO_FORMAT","IS_ALL_FORMATTING","LTR_REGEX","NodeFormat","NON_BREAKING_SPACE","RTL_REGEX","TEXT_MODE_TO_TYPE","TEXT_TYPE_TO_FORMAT","TEXT_TYPE_TO_MODE","sanitizeUrl","validateUrl","defaultRichTextValue","populate","createServerFeature","upgradeLexicalData"],"sources":["../src/index.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\nimport type {\n EditorConfig as LexicalEditorConfig,\n SerializedEditorState,\n SerializedLexicalNode,\n} from 'lexical'\n\nimport {\n afterChangeTraverseFields,\n afterReadTraverseFields,\n beforeChangeTraverseFields,\n beforeValidateTraverseFields,\n checkDependencies,\n deepCopyObject,\n deepCopyObjectSimple,\n withNullableJSONSchemaType,\n} from 'payload'\n\nimport type { FeatureProviderServer, ResolvedServerFeatureMap } from './features/typesServer.js'\nimport type { SanitizedServerEditorConfig } from './lexical/config/types.js'\nimport type {\n AdapterProps,\n LexicalEditorProps,\n LexicalRichTextAdapter,\n LexicalRichTextAdapterProvider,\n} from './types.js'\n\nimport { i18n } from './i18n.js'\nimport { defaultEditorConfig, defaultEditorFeatures } from './lexical/config/server/default.js'\nimport { loadFeatures } from './lexical/config/server/loader.js'\nimport {\n sanitizeServerEditorConfig,\n sanitizeServerFeatures,\n} from './lexical/config/server/sanitize.js'\nimport { populateLexicalPopulationPromises } from './populateGraphQL/populateLexicalPopulationPromises.js'\nimport { getGenerateImportMap } from './utilities/generateImportMap.js'\nimport { getGenerateSchemaMap } from './utilities/generateSchemaMap.js'\nimport { recurseNodeTree } from './utilities/recurseNodeTree.js'\nimport { richTextValidateHOC } from './validate/index.js'\n\nlet defaultSanitizedServerEditorConfig: SanitizedServerEditorConfig = null\n\nexport function lexicalEditor(props?: LexicalEditorProps): LexicalRichTextAdapterProvider {\n return async ({ config, isRoot, parentIsLocalized }) => {\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.PAYLOAD_DISABLE_DEPENDENCY_CHECKER !== 'true'\n ) {\n await checkDependencies({\n dependencyGroups: [\n {\n name: 'lexical',\n dependencies: [\n 'lexical',\n '@lexical/headless',\n '@lexical/link',\n '@lexical/list',\n '@lexical/mark',\n '@lexical/markdown',\n '@lexical/react',\n '@lexical/rich-text',\n '@lexical/selection',\n '@lexical/utils',\n ],\n targetVersion: '0.17.0',\n },\n ],\n })\n }\n\n let features: FeatureProviderServer<any, any, any>[] = []\n let resolvedFeatureMap: ResolvedServerFeatureMap\n\n let finalSanitizedEditorConfig: SanitizedServerEditorConfig // For server only\n if (!props || (!props.features && !props.lexical)) {\n if (!defaultSanitizedServerEditorConfig) {\n defaultSanitizedServerEditorConfig = await sanitizeServerEditorConfig(\n defaultEditorConfig,\n config,\n parentIsLocalized,\n )\n features = deepCopyObject(defaultEditorFeatures)\n }\n\n finalSanitizedEditorConfig = deepCopyObject(defaultSanitizedServerEditorConfig)\n\n resolvedFeatureMap = finalSanitizedEditorConfig.resolvedFeatureMap\n } else {\n const rootEditor = config.editor\n let rootEditorFeatures: FeatureProviderServer<unknown, unknown, unknown>[] = []\n if (typeof rootEditor === 'object' && 'features' in rootEditor) {\n rootEditorFeatures = (rootEditor as LexicalRichTextAdapter).features\n }\n\n features =\n props.features && typeof props.features === 'function'\n ? props.features({\n defaultFeatures: deepCopyObject(defaultEditorFeatures),\n rootFeatures: rootEditorFeatures,\n })\n : (props.features as FeatureProviderServer<unknown, unknown, unknown>[])\n if (!features) {\n features = deepCopyObject(defaultEditorFeatures)\n }\n\n const lexical: LexicalEditorConfig =\n props.lexical ?? deepCopyObjectSimple(defaultEditorConfig.lexical)\n\n resolvedFeatureMap = await loadFeatures({\n config,\n isRoot,\n parentIsLocalized,\n unSanitizedEditorConfig: {\n features,\n lexical,\n },\n })\n\n finalSanitizedEditorConfig = {\n features: sanitizeServerFeatures(resolvedFeatureMap),\n lexical,\n resolvedFeatureMap,\n }\n }\n\n const featureI18n = finalSanitizedEditorConfig.features.i18n\n for (const lang in i18n) {\n if (!featureI18n[lang]) {\n featureI18n[lang] = {\n lexical: {},\n }\n }\n\n featureI18n[lang].lexical.general = i18n[lang]\n }\n\n return {\n CellComponent: {\n clientProps: {\n admin: props?.admin,\n lexicalEditorConfig: finalSanitizedEditorConfig.lexical,\n },\n path: '@payloadcms/richtext-lexical/client#RichTextCell',\n },\n editorConfig: finalSanitizedEditorConfig,\n features,\n FieldComponent: {\n clientProps: {\n admin: props?.admin,\n lexicalEditorConfig: finalSanitizedEditorConfig.lexical,\n },\n path: '@payloadcms/richtext-lexical/client#RichTextField',\n },\n generateComponentMap: {\n path: '@payloadcms/richtext-lexical/generateComponentMap#getGenerateComponentMap',\n serverProps: {\n resolvedFeatureMap,\n },\n },\n generateImportMap: getGenerateImportMap({\n resolvedFeatureMap,\n }),\n generateSchemaMap: getGenerateSchemaMap({\n resolvedFeatureMap,\n }),\n graphQLPopulationPromises({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n }) {\n // check if there are any features with nodes which have populationPromises for this field\n if (finalSanitizedEditorConfig?.features?.graphQLPopulationPromises?.size) {\n populateLexicalPopulationPromises({\n context,\n currentDepth: currentDepth ?? 0,\n depth,\n draft,\n editorPopulationPromises: finalSanitizedEditorConfig.features.graphQLPopulationPromises,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n })\n }\n },\n hooks: {\n afterChange: [\n async (args) => {\n const { collection, context: _context, global, operation, path, req, schemaPath } = args\n let { value } = args\n if (finalSanitizedEditorConfig?.features?.hooks?.afterChange?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.afterChange) {\n value = await hook(args)\n }\n }\n if (\n !finalSanitizedEditorConfig.features.nodeHooks.afterChange.size &&\n !finalSanitizedEditorConfig.features.getSubFields.size\n ) {\n return value\n }\n const context: any = _context\n const nodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n /**\n * Get the originalNodeIDMap from the beforeValidate hook, which is always run before this hook.\n */\n const originalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = context?.internal?.richText?.[path.join('.')]?.originalNodeIDMap\n\n if (!originalNodeIDMap || !Object.keys(originalNodeIDMap).length || !value) {\n return value\n }\n\n recurseNodeTree({\n nodeIDMap,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n // eslint-disable-next-line prefer-const\n for (let [id, node] of Object.entries(nodeIDMap)) {\n const afterChangeHooks = finalSanitizedEditorConfig.features.nodeHooks.afterChange\n if (afterChangeHooks?.has(node.type)) {\n for (const hook of afterChangeHooks.get(node.type)) {\n if (!originalNodeIDMap[id]) {\n console.warn(\n '(afterChange) No original node found for node with id',\n id,\n 'node:',\n node,\n 'path',\n path.join('.'),\n )\n continue\n }\n node = await hook({\n context,\n node,\n operation,\n originalNode: originalNodeIDMap[id],\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n req,\n })\n }\n }\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData.get(\n node.type,\n )\n\n if (subFieldFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n const originalData = subFieldDataFn({ node: originalNodeIDMap[id], req }) ?? {}\n\n if (subFields?.length) {\n await afterChangeTraverseFields({\n collection,\n context,\n data: originalData,\n doc: data,\n fields: subFields,\n global,\n operation,\n path,\n previousDoc: data,\n previousSiblingDoc: { ...data },\n req,\n schemaPath,\n siblingData: originalData || {},\n siblingDoc: { ...data },\n })\n }\n }\n }\n return value\n },\n ],\n afterRead: [\n /**\n * afterRead hooks do not receive the originalNode. Thus, they can run on all nodes, not just nodes with an ID.\n */\n async (args) => {\n const {\n collection,\n context: context,\n currentDepth,\n depth,\n draft,\n fallbackLocale,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path,\n populationPromises,\n req,\n schemaPath,\n showHiddenFields,\n triggerAccessControl,\n triggerHooks,\n } = args\n let { value } = args\n\n if (finalSanitizedEditorConfig?.features?.hooks?.afterRead?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.afterRead) {\n value = await hook(args)\n }\n }\n\n if (\n !finalSanitizedEditorConfig.features.nodeHooks.afterRead.size &&\n !finalSanitizedEditorConfig.features.getSubFields.size\n ) {\n return value\n }\n const flattenedNodes: SerializedLexicalNode[] = []\n\n recurseNodeTree({\n flattenedNodes,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n for (let node of flattenedNodes) {\n const afterReadHooks = finalSanitizedEditorConfig.features.nodeHooks.afterRead\n if (afterReadHooks?.has(node.type)) {\n for (const hook of afterReadHooks.get(node.type)) {\n node = await hook({\n context,\n currentDepth,\n depth,\n draft,\n fallbackLocale,\n fieldPromises,\n findMany,\n flattenLocales,\n locale,\n node,\n overrideAccess,\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n populationPromises,\n req,\n showHiddenFields,\n triggerAccessControl,\n triggerHooks,\n })\n }\n }\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData.get(\n node.type,\n )\n\n if (subFieldFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n\n if (subFields?.length) {\n afterReadTraverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc: data,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: subFields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path,\n populationPromises,\n req,\n schemaPath,\n showHiddenFields,\n siblingDoc: data,\n triggerAccessControl,\n triggerHooks,\n })\n }\n }\n }\n\n return value\n },\n ],\n beforeChange: [\n async (args) => {\n const {\n collection,\n context: _context,\n errors,\n field,\n global,\n mergeLocaleActions,\n operation,\n path,\n req,\n schemaPath,\n siblingData,\n siblingDocWithLocales,\n skipValidation,\n } = args\n let { value } = args\n\n if (finalSanitizedEditorConfig?.features?.hooks?.beforeChange?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.beforeChange) {\n value = await hook(args)\n }\n }\n\n if (\n !finalSanitizedEditorConfig.features.nodeHooks.beforeChange.size &&\n !finalSanitizedEditorConfig.features.getSubFields.size\n ) {\n return value\n }\n\n const context: any = _context\n const nodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n /**\n * Get the originalNodeIDMap from the beforeValidate hook, which is always run before this hook.\n */\n const originalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = context?.internal?.richText?.[path.join('.')]?.originalNodeIDMap\n\n if (!originalNodeIDMap || !Object.keys(originalNodeIDMap).length || !value) {\n return value\n }\n\n const originalNodeWithLocalesIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n recurseNodeTree({\n nodeIDMap,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n if (siblingDocWithLocales?.[field.name]) {\n recurseNodeTree({\n nodeIDMap: originalNodeWithLocalesIDMap,\n nodes:\n (siblingDocWithLocales[field.name] as SerializedEditorState)?.root?.children ??\n [],\n })\n }\n\n // eslint-disable-next-line prefer-const\n for (let [id, node] of Object.entries(nodeIDMap)) {\n const beforeChangeHooks = finalSanitizedEditorConfig.features.nodeHooks.beforeChange\n if (beforeChangeHooks?.has(node.type)) {\n for (const hook of beforeChangeHooks.get(node.type)) {\n if (!originalNodeIDMap[id]) {\n console.warn(\n '(beforeChange) No original node found for node with id',\n id,\n 'node:',\n node,\n 'path',\n path.join('.'),\n )\n continue\n }\n node = await hook({\n context,\n errors,\n mergeLocaleActions,\n node,\n operation,\n originalNode: originalNodeIDMap[id],\n originalNodeWithLocales: originalNodeWithLocalesIDMap[id],\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n req,\n skipValidation,\n })\n }\n }\n\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData.get(\n node.type,\n )\n\n if (subFieldFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n const originalData = subFieldDataFn({ node: originalNodeIDMap[id], req }) ?? {}\n const originalDataWithLocales =\n subFieldDataFn({\n node: originalNodeWithLocalesIDMap[id],\n req,\n }) ?? {}\n\n if (subFields?.length) {\n await beforeChangeTraverseFields({\n id,\n collection,\n context,\n data,\n doc: originalData,\n docWithLocales: originalDataWithLocales ?? {},\n errors,\n fields: subFields,\n global,\n mergeLocaleActions,\n operation,\n path,\n req,\n schemaPath,\n siblingData: data,\n siblingDoc: originalData,\n siblingDocWithLocales: originalDataWithLocales ?? {},\n skipValidation,\n })\n }\n }\n }\n\n /**\n * within the beforeChange hook, id's may be re-generated.\n * Example:\n * 1. Seed data contains IDs for block feature blocks.\n * 2. Those are used in beforeValidate\n * 3. in beforeChange, those IDs are regenerated, because you cannot provide IDs during document creation. See baseIDField beforeChange hook for reasoning\n * 4. Thus, in order for all post-beforeChange hooks to receive the correct ID, we need to update the originalNodeIDMap with the new ID's, by regenerating the nodeIDMap.\n * The reason this is not generated for every hook, is to save on performance. We know we only really have to generate it in beforeValidate, which is the first hook,\n * and in beforeChange, which is where modifications to the provided IDs can occur.\n */\n const newOriginalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n const previousValue = siblingData[field.name]\n\n recurseNodeTree({\n nodeIDMap: newOriginalNodeIDMap,\n nodes: (previousValue as SerializedEditorState)?.root?.children ?? [],\n })\n\n if (!context.internal) {\n // Add to context, for other hooks to use\n context.internal = {}\n }\n if (!context.internal.richText) {\n context.internal.richText = {}\n }\n context.internal.richText[path.join('.')] = {\n originalNodeIDMap: newOriginalNodeIDMap,\n }\n\n return value\n },\n ],\n beforeValidate: [\n async (args) => {\n const {\n collection,\n context,\n global,\n operation,\n overrideAccess,\n path,\n previousValue,\n req,\n schemaPath,\n } = args\n let { value } = args\n if (finalSanitizedEditorConfig?.features?.hooks?.beforeValidate?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.beforeValidate) {\n value = await hook(args)\n }\n }\n\n // return value if there are NO hooks\n if (\n !finalSanitizedEditorConfig.features.nodeHooks.beforeValidate.size &&\n !finalSanitizedEditorConfig.features.nodeHooks.afterChange.size &&\n !finalSanitizedEditorConfig.features.nodeHooks.beforeChange.size &&\n !finalSanitizedEditorConfig.features.getSubFields.size\n ) {\n return value\n }\n\n /**\n * beforeValidate is the first field hook which runs. This is where we can create the node map, which can then be used in the other hooks.\n *\n */\n\n /**\n * flattenedNodes contains all nodes in the editor, in the order they appear in the editor. They will be used for the following hooks:\n * - afterRead\n *\n * The other hooks require nodes to have IDs, which is why those are ran only from the nodeIDMap. They require IDs because they have both doc/siblingDoc and data/siblingData, and\n * thus require a reliable way to match new node data to old node data. Given that node positions can change in between hooks, this is only reliably possible for nodes which are saved with\n * an ID.\n */\n //const flattenedNodes: SerializedLexicalNode[] = []\n\n /**\n * Only nodes with id's (so, nodes with hooks added to them) will be added to the nodeIDMap. They will be used for the following hooks:\n * - afterChange\n * - beforeChange\n * - beforeValidate\n *\n * Other hooks are handled by the flattenedNodes. All nodes in the nodeIDMap are part of flattenedNodes.\n */\n\n const originalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n recurseNodeTree({\n nodeIDMap: originalNodeIDMap,\n nodes: (previousValue as SerializedEditorState)?.root?.children ?? [],\n })\n\n if (!context.internal) {\n // Add to context, for other hooks to use\n context.internal = {}\n }\n if (!(context as any).internal.richText) {\n ;(context as any).internal.richText = {}\n }\n ;(context as any).internal.richText[path.join('.')] = {\n originalNodeIDMap,\n }\n\n /**\n * Now that the maps for all hooks are set up, we can run the validate hook\n */\n if (!finalSanitizedEditorConfig.features.nodeHooks.beforeValidate.size) {\n return value\n }\n const nodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n recurseNodeTree({\n //flattenedNodes,\n nodeIDMap,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n // eslint-disable-next-line prefer-const\n for (let [id, node] of Object.entries(nodeIDMap)) {\n const beforeValidateHooks =\n finalSanitizedEditorConfig.features.nodeHooks.beforeValidate\n if (beforeValidateHooks?.has(node.type)) {\n for (const hook of beforeValidateHooks.get(node.type)) {\n if (!originalNodeIDMap[id]) {\n console.warn(\n '(beforeValidate) No original node found for node with id',\n id,\n 'node:',\n node,\n 'path',\n path.join('.'),\n )\n continue\n }\n node = await hook({\n context,\n node,\n operation,\n originalNode: originalNodeIDMap[id],\n overrideAccess,\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n req,\n })\n }\n }\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData.get(\n node.type,\n )\n\n if (subFieldFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n const originalData = subFieldDataFn({ node: originalNodeIDMap[id], req }) ?? {}\n\n if (subFields?.length) {\n await beforeValidateTraverseFields({\n id,\n collection,\n context,\n data,\n doc: originalData,\n fields: subFields,\n global,\n operation,\n overrideAccess,\n path,\n req,\n schemaPath,\n siblingData: data,\n siblingDoc: originalData,\n })\n }\n }\n }\n\n return value\n },\n ],\n },\n i18n: featureI18n,\n outputSchema: ({\n collectionIDFieldTypes,\n config,\n field,\n interfaceNameDefinitions,\n isRequired,\n }) => {\n let outputSchema: JSONSchema4 = {\n // This schema matches the SerializedEditorState type so far, that it's possible to cast SerializedEditorState to this schema without any errors.\n // In the future, we should\n // 1) allow recursive children\n // 2) Pass in all the different types for every node added to the editorconfig. This can be done with refs in the schema.\n type: withNullableJSONSchemaType('object', isRequired),\n properties: {\n root: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: {\n type: 'string',\n },\n children: {\n type: 'array',\n items: {\n type: 'object',\n additionalProperties: true,\n properties: {\n type: {\n type: 'string',\n },\n version: {\n type: 'integer',\n },\n },\n required: ['type', 'version'],\n },\n },\n direction: {\n oneOf: [\n {\n enum: ['ltr', 'rtl'],\n },\n {\n type: 'null',\n },\n ],\n },\n format: {\n type: 'string',\n enum: ['left', 'start', 'center', 'right', 'end', 'justify', ''], // ElementFormatType, since the root node is an element\n },\n indent: {\n type: 'integer',\n },\n version: {\n type: 'integer',\n },\n },\n required: ['children', 'direction', 'format', 'indent', 'type', 'version'],\n },\n },\n required: ['root'],\n }\n for (const modifyOutputSchema of finalSanitizedEditorConfig.features.generatedTypes\n .modifyOutputSchemas) {\n outputSchema = modifyOutputSchema({\n collectionIDFieldTypes,\n config,\n currentSchema: outputSchema,\n field,\n interfaceNameDefinitions,\n isRequired,\n })\n }\n\n return outputSchema\n },\n validate: richTextValidateHOC({\n editorConfig: finalSanitizedEditorConfig,\n }),\n }\n }\n}\n\nexport { AlignFeature } from './features/align/server/index.js'\nexport { BlockquoteFeature } from './features/blockquote/server/index.js'\nexport { BlocksFeature, type BlocksFeatureProps } from './features/blocks/server/index.js'\nexport { type BlockFields } from './features/blocks/server/nodes/BlocksNode.js'\n\nexport { LinebreakHTMLConverter } from './features/converters/html/converter/converters/linebreak.js'\nexport { ParagraphHTMLConverter } from './features/converters/html/converter/converters/paragraph.js'\n\nexport { TextHTMLConverter } from './features/converters/html/converter/converters/text.js'\nexport { defaultHTMLConverters } from './features/converters/html/converter/defaultConverters.js'\nexport {\n convertLexicalNodesToHTML,\n convertLexicalToHTML,\n} from './features/converters/html/converter/index.js'\n\nexport type { HTMLConverter } from './features/converters/html/converter/types.js'\nexport { consolidateHTMLConverters, lexicalHTML } from './features/converters/html/field/index.js'\nexport {\n HTMLConverterFeature,\n type HTMLConverterFeatureProps,\n} from './features/converters/html/index.js'\nexport { TestRecorderFeature } from './features/debug/testRecorder/server/index.js'\nexport { TreeViewFeature } from './features/debug/treeView/server/index.js'\nexport { EXPERIMENTAL_TableFeature } from './features/experimental_table/server/index.js'\nexport { BoldFeature } from './features/format/bold/feature.server.js'\nexport { InlineCodeFeature } from './features/format/inlineCode/feature.server.js'\nexport { ItalicFeature } from './features/format/italic/feature.server.js'\n\nexport { StrikethroughFeature } from './features/format/strikethrough/feature.server.js'\nexport { SubscriptFeature } from './features/format/subscript/feature.server.js'\nexport { SuperscriptFeature } from './features/format/superscript/feature.server.js'\nexport { UnderlineFeature } from './features/format/underline/feature.server.js'\nexport { HeadingFeature, type HeadingFeatureProps } from './features/heading/server/index.js'\nexport { HorizontalRuleFeature } from './features/horizontalRule/server/index.js'\nexport { IndentFeature } from './features/indent/server/index.js'\n\nexport { AutoLinkNode } from './features/link/nodes/AutoLinkNode.js'\n\nexport { LinkNode } from './features/link/nodes/LinkNode.js'\nexport type { LinkFields } from './features/link/nodes/types.js'\nexport { LinkFeature, type LinkFeatureServerProps } from './features/link/server/index.js'\nexport { ChecklistFeature } from './features/lists/checklist/server/index.js'\nexport { OrderedListFeature } from './features/lists/orderedList/server/index.js'\nexport { UnorderedListFeature } from './features/lists/unorderedList/server/index.js'\n\nexport type {\n SlateNode,\n SlateNodeConverter,\n} from './features/migrations/slateToLexical/converter/types.js'\n\nexport { ParagraphFeature } from './features/paragraph/server/index.js'\nexport {\n RelationshipFeature,\n type RelationshipFeatureProps,\n} from './features/relationship/server/index.js'\nexport {\n type RelationshipData,\n RelationshipServerNode,\n} from './features/relationship/server/nodes/RelationshipNode.js'\n\nexport { FixedToolbarFeature } from './features/toolbars/fixed/server/index.js'\nexport { InlineToolbarFeature } from './features/toolbars/inline/server/index.js'\n\nexport type { ToolbarGroup, ToolbarGroupItem } from './features/toolbars/types.js'\nexport type {\n BaseClientFeatureProps,\n ClientFeature,\n ClientFeatureProviderMap,\n FeatureProviderClient,\n FeatureProviderProviderClient,\n PluginComponent,\n PluginComponentWithAnchor,\n ResolvedClientFeature,\n ResolvedClientFeatureMap,\n SanitizedClientFeatures,\n SanitizedPlugin,\n} from './features/typesClient.js'\nexport type {\n AfterChangeNodeHook,\n AfterChangeNodeHookArgs,\n AfterReadNodeHook,\n AfterReadNodeHookArgs,\n BaseNodeHookArgs,\n BeforeChangeNodeHook,\n BeforeChangeNodeHookArgs,\n BeforeValidateNodeHook,\n BeforeValidateNodeHookArgs,\n FeatureProviderProviderServer,\n FeatureProviderServer,\n NodeValidation,\n NodeWithHooks,\n PopulationPromise,\n ResolvedServerFeature,\n ResolvedServerFeatureMap,\n SanitizedServerFeatures,\n ServerFeature,\n ServerFeatureProviderMap,\n} from './features/typesServer.js'\n\nexport { createNode } from './features/typeUtilities.js' // Only useful in feature.server.ts\n\nexport { UploadFeature } from './features/upload/server/feature.server.js'\n\nexport type { UploadFeatureProps } from './features/upload/server/feature.server.js'\nexport { type UploadData, UploadServerNode } from './features/upload/server/nodes/UploadNode.js'\n\nexport type { EditorConfigContextType } from './lexical/config/client/EditorConfigProvider.js'\nexport {\n defaultEditorConfig,\n defaultEditorFeatures,\n defaultEditorLexicalConfig,\n} from './lexical/config/server/default.js'\n\nexport { loadFeatures, sortFeaturesForOptimalLoading } from './lexical/config/server/loader.js'\nexport {\n sanitizeServerEditorConfig,\n sanitizeServerFeatures,\n} from './lexical/config/server/sanitize.js'\n\nexport type {\n ClientEditorConfig,\n SanitizedClientEditorConfig,\n SanitizedServerEditorConfig,\n ServerEditorConfig,\n} from './lexical/config/types.js'\nexport { getEnabledNodes } from './lexical/nodes/index.js'\nexport type { AdapterProps }\n\nexport type {\n SlashMenuGroup,\n SlashMenuItem,\n} from './lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\n\nexport {\n DETAIL_TYPE_TO_DETAIL,\n DOUBLE_LINE_BREAK,\n ELEMENT_FORMAT_TO_TYPE,\n ELEMENT_TYPE_TO_FORMAT,\n IS_ALL_FORMATTING,\n LTR_REGEX,\n NodeFormat,\n NON_BREAKING_SPACE,\n RTL_REGEX,\n TEXT_MODE_TO_TYPE,\n TEXT_TYPE_TO_FORMAT,\n TEXT_TYPE_TO_MODE,\n} from './lexical/utils/nodeFormat.js'\nexport { sanitizeUrl, validateUrl } from './lexical/utils/url.js'\n\nexport type * from './nodeTypes.js'\n\nexport { defaultRichTextValue } from './populateGraphQL/defaultValue.js'\n\nexport { populate } from './populateGraphQL/populate.js'\nexport type { LexicalEditorProps, LexicalRichTextAdapter } from './types.js'\nexport { createServerFeature } from './utilities/createServerFeature.js'\n\nexport type { FieldsDrawerProps } from './utilities/fieldsDrawer/Drawer.js'\nexport { upgradeLexicalData } from './utilities/upgradeLexicalData/index.js'\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["afterChangeTraverseFields","afterReadTraverseFields","beforeChangeTraverseFields","beforeValidateTraverseFields","checkDependencies","deepCopyObject","deepCopyObjectSimple","withNullableJSONSchemaType","i18n","defaultEditorConfig","defaultEditorFeatures","loadFeatures","sanitizeServerEditorConfig","sanitizeServerFeatures","populateLexicalPopulationPromises","getGenerateImportMap","getGenerateSchemaMap","recurseNodeTree","richTextValidateHOC","defaultSanitizedServerEditorConfig","checkedDependencies","lexicalEditor","props","config","isRoot","parentIsLocalized","process","env","NODE_ENV","PAYLOAD_DISABLE_DEPENDENCY_CHECKER","dependencyGroups","name","dependencies","targetVersion","features","resolvedFeatureMap","finalSanitizedEditorConfig","lexical","rootEditor","editor","rootEditorFeatures","defaultFeatures","rootFeatures","unSanitizedEditorConfig","featureI18n","lang","general","CellComponent","clientProps","admin","lexicalEditorConfig","path","editorConfig","FieldComponent","generateComponentMap","serverProps","generateImportMap","generateSchemaMap","graphQLPopulationPromises","context","currentDepth","depth","draft","field","fieldPromises","findMany","flattenLocales","overrideAccess","populationPromises","req","showHiddenFields","siblingDoc","size","editorPopulationPromises","hooks","afterChange","args","collection","_context","global","operation","schemaPath","value","length","hook","nodeHooks","getSubFields","nodeIDMap","originalNodeIDMap","internal","richText","join","Object","keys","nodes","root","children","id","node","entries","afterChangeHooks","afterChangeHooksForNode","get","type","console","warn","originalNode","parentRichTextFieldPath","parentRichTextFieldSchemaPath","subFieldFn","subFieldDataFn","getSubFieldsData","subFields","data","originalData","doc","fields","previousDoc","previousSiblingDoc","siblingData","afterRead","fallbackLocale","locale","triggerAccessControl","triggerHooks","flattenedNodes","afterReadHooks","afterReadHooksForNode","beforeChange","errors","mergeLocaleActions","siblingDocWithLocales","skipValidation","originalNodeWithLocalesIDMap","beforeChangeHooks","beforeChangeHooksForNode","originalNodeWithLocales","originalDataWithLocales","docWithLocales","newOriginalNodeIDMap","previousValue","beforeValidate","beforeValidateHooks","beforeValidateHooksForNode","outputSchema","collectionIDFieldTypes","interfaceNameDefinitions","isRequired","properties","additionalProperties","items","version","required","direction","oneOf","enum","format","indent","modifyOutputSchema","generatedTypes","modifyOutputSchemas","currentSchema","validate","AlignFeature","BlockquoteFeature","BlocksFeature","LinebreakHTMLConverter","ParagraphHTMLConverter","TextHTMLConverter","defaultHTMLConverters","convertLexicalNodesToHTML","convertLexicalToHTML","consolidateHTMLConverters","lexicalHTML","HTMLConverterFeature","TestRecorderFeature","TreeViewFeature","EXPERIMENTAL_TableFeature","BoldFeature","InlineCodeFeature","ItalicFeature","StrikethroughFeature","SubscriptFeature","SuperscriptFeature","UnderlineFeature","HeadingFeature","HorizontalRuleFeature","IndentFeature","AutoLinkNode","LinkNode","LinkFeature","ChecklistFeature","OrderedListFeature","UnorderedListFeature","ParagraphFeature","RelationshipFeature","RelationshipServerNode","FixedToolbarFeature","InlineToolbarFeature","createNode","UploadFeature","UploadServerNode","defaultEditorLexicalConfig","sortFeaturesForOptimalLoading","getEnabledNodes","DETAIL_TYPE_TO_DETAIL","DOUBLE_LINE_BREAK","ELEMENT_FORMAT_TO_TYPE","ELEMENT_TYPE_TO_FORMAT","IS_ALL_FORMATTING","LTR_REGEX","NodeFormat","NON_BREAKING_SPACE","RTL_REGEX","TEXT_MODE_TO_TYPE","TEXT_TYPE_TO_FORMAT","TEXT_TYPE_TO_MODE","sanitizeUrl","validateUrl","defaultRichTextValue","populate","createServerFeature","upgradeLexicalData"],"sources":["../src/index.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\nimport type { SerializedEditorState, SerializedLexicalNode } from 'lexical'\n\nimport {\n afterChangeTraverseFields,\n afterReadTraverseFields,\n beforeChangeTraverseFields,\n beforeValidateTraverseFields,\n checkDependencies,\n deepCopyObject,\n deepCopyObjectSimple,\n withNullableJSONSchemaType,\n} from 'payload'\n\nimport type { FeatureProviderServer, ResolvedServerFeatureMap } from './features/typesServer.js'\nimport type { SanitizedServerEditorConfig } from './lexical/config/types.js'\nimport type {\n AdapterProps,\n LexicalEditorProps,\n LexicalRichTextAdapter,\n LexicalRichTextAdapterProvider,\n} from './types.js'\n\nimport { i18n } from './i18n.js'\nimport { defaultEditorConfig, defaultEditorFeatures } from './lexical/config/server/default.js'\nimport { loadFeatures } from './lexical/config/server/loader.js'\nimport {\n sanitizeServerEditorConfig,\n sanitizeServerFeatures,\n} from './lexical/config/server/sanitize.js'\nimport { populateLexicalPopulationPromises } from './populateGraphQL/populateLexicalPopulationPromises.js'\nimport { getGenerateImportMap } from './utilities/generateImportMap.js'\nimport { getGenerateSchemaMap } from './utilities/generateSchemaMap.js'\nimport { recurseNodeTree } from './utilities/recurseNodeTree.js'\nimport { richTextValidateHOC } from './validate/index.js'\n\nlet defaultSanitizedServerEditorConfig: null | SanitizedServerEditorConfig = null\nlet checkedDependencies = false\n\nexport function lexicalEditor(props?: LexicalEditorProps): LexicalRichTextAdapterProvider {\n return async ({ config, isRoot, parentIsLocalized }) => {\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.PAYLOAD_DISABLE_DEPENDENCY_CHECKER !== 'true' &&\n !checkedDependencies\n ) {\n checkedDependencies = true\n await checkDependencies({\n dependencyGroups: [\n {\n name: 'lexical',\n dependencies: [\n 'lexical',\n '@lexical/headless',\n '@lexical/link',\n '@lexical/list',\n '@lexical/mark',\n '@lexical/markdown',\n '@lexical/react',\n '@lexical/rich-text',\n '@lexical/selection',\n '@lexical/utils',\n ],\n targetVersion: '0.17.0',\n },\n ],\n })\n }\n\n let features: FeatureProviderServer<any, any, any>[] = []\n let resolvedFeatureMap: ResolvedServerFeatureMap\n\n let finalSanitizedEditorConfig: SanitizedServerEditorConfig // For server only\n if (!props || (!props.features && !props.lexical)) {\n if (!defaultSanitizedServerEditorConfig) {\n defaultSanitizedServerEditorConfig = await sanitizeServerEditorConfig(\n defaultEditorConfig,\n config,\n parentIsLocalized,\n )\n features = deepCopyObject(defaultEditorFeatures)\n }\n\n finalSanitizedEditorConfig = deepCopyObject(defaultSanitizedServerEditorConfig)\n\n resolvedFeatureMap = finalSanitizedEditorConfig.resolvedFeatureMap\n } else {\n const rootEditor = config.editor\n let rootEditorFeatures: FeatureProviderServer<unknown, unknown, unknown>[] = []\n if (typeof rootEditor === 'object' && 'features' in rootEditor) {\n rootEditorFeatures = (rootEditor as LexicalRichTextAdapter).features\n }\n\n features =\n props.features && typeof props.features === 'function'\n ? props.features({\n defaultFeatures: deepCopyObject(defaultEditorFeatures),\n rootFeatures: rootEditorFeatures,\n })\n : (props.features as FeatureProviderServer<unknown, unknown, unknown>[])\n if (!features) {\n features = deepCopyObject(defaultEditorFeatures)\n }\n\n const lexical = props.lexical ?? deepCopyObjectSimple(defaultEditorConfig.lexical)!\n\n resolvedFeatureMap = await loadFeatures({\n config,\n isRoot,\n parentIsLocalized,\n unSanitizedEditorConfig: {\n features,\n lexical,\n },\n })\n\n finalSanitizedEditorConfig = {\n features: sanitizeServerFeatures(resolvedFeatureMap),\n lexical,\n resolvedFeatureMap,\n }\n }\n\n const featureI18n = finalSanitizedEditorConfig.features.i18n\n for (const lang in i18n) {\n if (!featureI18n[lang]) {\n featureI18n[lang] = {\n lexical: {},\n }\n }\n\n featureI18n[lang].lexical.general = i18n[lang]\n }\n\n return {\n CellComponent: {\n clientProps: {\n admin: props?.admin,\n lexicalEditorConfig: finalSanitizedEditorConfig.lexical,\n },\n path: '@payloadcms/richtext-lexical/client#RichTextCell',\n },\n editorConfig: finalSanitizedEditorConfig,\n features,\n FieldComponent: {\n clientProps: {\n admin: props?.admin,\n lexicalEditorConfig: finalSanitizedEditorConfig.lexical,\n },\n path: '@payloadcms/richtext-lexical/client#RichTextField',\n },\n generateComponentMap: {\n path: '@payloadcms/richtext-lexical/generateComponentMap#getGenerateComponentMap',\n serverProps: {\n resolvedFeatureMap,\n },\n },\n generateImportMap: getGenerateImportMap({\n resolvedFeatureMap,\n }),\n generateSchemaMap: getGenerateSchemaMap({\n resolvedFeatureMap,\n }),\n graphQLPopulationPromises({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n }) {\n // check if there are any features with nodes which have populationPromises for this field\n if (finalSanitizedEditorConfig?.features?.graphQLPopulationPromises?.size) {\n populateLexicalPopulationPromises({\n context,\n currentDepth: currentDepth ?? 0,\n depth,\n draft,\n editorPopulationPromises: finalSanitizedEditorConfig.features.graphQLPopulationPromises,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n })\n }\n },\n hooks: {\n afterChange: [\n async (args) => {\n const { collection, context: _context, global, operation, path, req, schemaPath } = args\n let { value } = args\n if (finalSanitizedEditorConfig?.features?.hooks?.afterChange?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.afterChange) {\n value = await hook(args)\n }\n }\n if (\n !finalSanitizedEditorConfig.features.nodeHooks?.afterChange?.size &&\n !finalSanitizedEditorConfig.features.getSubFields?.size\n ) {\n return value\n }\n const context: any = _context\n const nodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n /**\n * Get the originalNodeIDMap from the beforeValidate hook, which is always run before this hook.\n */\n const originalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = context?.internal?.richText?.[path.join('.')]?.originalNodeIDMap\n\n if (!originalNodeIDMap || !Object.keys(originalNodeIDMap).length || !value) {\n return value\n }\n\n recurseNodeTree({\n nodeIDMap,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n // eslint-disable-next-line prefer-const\n for (let [id, node] of Object.entries(nodeIDMap)) {\n const afterChangeHooks = finalSanitizedEditorConfig.features.nodeHooks?.afterChange\n const afterChangeHooksForNode = afterChangeHooks?.get(node.type)\n if (afterChangeHooksForNode) {\n for (const hook of afterChangeHooksForNode) {\n if (!originalNodeIDMap[id]) {\n console.warn(\n '(afterChange) No original node found for node with id',\n id,\n 'node:',\n node,\n 'path',\n path.join('.'),\n )\n continue\n }\n node = await hook({\n context,\n node,\n operation,\n originalNode: originalNodeIDMap[id],\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n req,\n })\n }\n }\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields?.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData?.get(\n node.type,\n )\n\n if (subFieldFn && subFieldDataFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n const originalData = subFieldDataFn({ node: originalNodeIDMap[id], req }) ?? {}\n\n if (subFields?.length) {\n await afterChangeTraverseFields({\n collection,\n context,\n data: originalData,\n doc: data,\n fields: subFields,\n global,\n operation,\n path,\n previousDoc: data,\n previousSiblingDoc: { ...data },\n req,\n schemaPath,\n siblingData: originalData || {},\n siblingDoc: { ...data },\n })\n }\n }\n }\n return value\n },\n ],\n afterRead: [\n /**\n * afterRead hooks do not receive the originalNode. Thus, they can run on all nodes, not just nodes with an ID.\n */\n async (args) => {\n const {\n collection,\n context: context,\n currentDepth,\n depth,\n draft,\n fallbackLocale,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path,\n populationPromises,\n req,\n schemaPath,\n showHiddenFields,\n triggerAccessControl,\n triggerHooks,\n } = args\n let { value } = args\n\n if (finalSanitizedEditorConfig?.features?.hooks?.afterRead?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.afterRead) {\n value = await hook(args)\n }\n }\n\n if (\n !finalSanitizedEditorConfig.features.nodeHooks?.afterRead?.size &&\n !finalSanitizedEditorConfig.features.getSubFields?.size\n ) {\n return value\n }\n const flattenedNodes: SerializedLexicalNode[] = []\n\n recurseNodeTree({\n flattenedNodes,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n for (let node of flattenedNodes) {\n const afterReadHooks = finalSanitizedEditorConfig.features.nodeHooks?.afterRead\n const afterReadHooksForNode = afterReadHooks?.get(node.type)\n if (afterReadHooksForNode) {\n for (const hook of afterReadHooksForNode) {\n node = await hook({\n context,\n currentDepth: currentDepth!,\n depth: depth!,\n draft: draft!,\n fallbackLocale: fallbackLocale!,\n fieldPromises: fieldPromises!,\n findMany: findMany!,\n flattenLocales: flattenLocales!,\n locale: locale!,\n node,\n overrideAccess: overrideAccess!,\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n populationPromises: populationPromises!,\n req,\n showHiddenFields: showHiddenFields!,\n triggerAccessControl: triggerAccessControl!,\n triggerHooks: triggerHooks!,\n })\n }\n }\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields?.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData?.get(\n node.type,\n )\n\n if (subFieldFn && subFieldDataFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n\n if (subFields?.length) {\n afterReadTraverseFields({\n collection,\n context,\n currentDepth: currentDepth!,\n depth: depth!,\n doc: data,\n draft: draft!,\n fallbackLocale: fallbackLocale!,\n fieldPromises: fieldPromises!,\n fields: subFields,\n findMany: findMany!,\n flattenLocales: flattenLocales!,\n global,\n locale: locale!,\n overrideAccess: overrideAccess!,\n path,\n populationPromises: populationPromises!,\n req,\n schemaPath,\n showHiddenFields: showHiddenFields!,\n siblingDoc: data,\n triggerAccessControl,\n triggerHooks,\n })\n }\n }\n }\n\n return value\n },\n ],\n beforeChange: [\n async (args) => {\n const {\n collection,\n context: _context,\n errors,\n field,\n global,\n mergeLocaleActions,\n operation,\n path,\n req,\n schemaPath,\n siblingData,\n siblingDocWithLocales,\n skipValidation,\n } = args\n let { value } = args\n\n if (finalSanitizedEditorConfig?.features?.hooks?.beforeChange?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.beforeChange) {\n value = await hook(args)\n }\n }\n\n if (\n !finalSanitizedEditorConfig.features.nodeHooks?.beforeChange?.size &&\n !finalSanitizedEditorConfig.features.getSubFields?.size\n ) {\n return value\n }\n\n const context: any = _context\n const nodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n /**\n * Get the originalNodeIDMap from the beforeValidate hook, which is always run before this hook.\n */\n const originalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = context?.internal?.richText?.[path.join('.')]?.originalNodeIDMap\n\n if (!originalNodeIDMap || !Object.keys(originalNodeIDMap).length || !value) {\n return value\n }\n\n const originalNodeWithLocalesIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n recurseNodeTree({\n nodeIDMap,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n if (field.name && siblingDocWithLocales?.[field.name]) {\n recurseNodeTree({\n nodeIDMap: originalNodeWithLocalesIDMap,\n nodes:\n (siblingDocWithLocales[field.name] as SerializedEditorState)?.root?.children ??\n [],\n })\n }\n\n // eslint-disable-next-line prefer-const\n for (let [id, node] of Object.entries(nodeIDMap)) {\n const beforeChangeHooks = finalSanitizedEditorConfig.features.nodeHooks?.beforeChange\n const beforeChangeHooksForNode = beforeChangeHooks?.get(node.type)\n if (beforeChangeHooksForNode) {\n for (const hook of beforeChangeHooksForNode) {\n if (!originalNodeIDMap[id]) {\n console.warn(\n '(beforeChange) No original node found for node with id',\n id,\n 'node:',\n node,\n 'path',\n path.join('.'),\n )\n continue\n }\n node = await hook({\n context,\n errors: errors!,\n mergeLocaleActions: mergeLocaleActions!,\n node,\n operation: operation!,\n originalNode: originalNodeIDMap[id],\n originalNodeWithLocales: originalNodeWithLocalesIDMap[id],\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n req,\n skipValidation: skipValidation!,\n })\n }\n }\n\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields?.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData?.get(\n node.type,\n )\n\n if (subFieldFn && subFieldDataFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n const originalData = subFieldDataFn({ node: originalNodeIDMap[id], req }) ?? {}\n const originalDataWithLocales =\n subFieldDataFn({\n node: originalNodeWithLocalesIDMap[id],\n req,\n }) ?? {}\n\n if (subFields?.length) {\n await beforeChangeTraverseFields({\n id,\n collection,\n context,\n data,\n doc: originalData,\n docWithLocales: originalDataWithLocales ?? {},\n errors: errors!,\n fields: subFields,\n global,\n mergeLocaleActions: mergeLocaleActions!,\n operation: operation!,\n path,\n req,\n schemaPath,\n siblingData: data,\n siblingDoc: originalData,\n siblingDocWithLocales: originalDataWithLocales ?? {},\n skipValidation,\n })\n }\n }\n }\n\n /**\n * within the beforeChange hook, id's may be re-generated.\n * Example:\n * 1. Seed data contains IDs for block feature blocks.\n * 2. Those are used in beforeValidate\n * 3. in beforeChange, those IDs are regenerated, because you cannot provide IDs during document creation. See baseIDField beforeChange hook for reasoning\n * 4. Thus, in order for all post-beforeChange hooks to receive the correct ID, we need to update the originalNodeIDMap with the new ID's, by regenerating the nodeIDMap.\n * The reason this is not generated for every hook, is to save on performance. We know we only really have to generate it in beforeValidate, which is the first hook,\n * and in beforeChange, which is where modifications to the provided IDs can occur.\n */\n const newOriginalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n const previousValue = siblingData[field.name!]\n\n recurseNodeTree({\n nodeIDMap: newOriginalNodeIDMap,\n nodes: (previousValue as SerializedEditorState)?.root?.children ?? [],\n })\n\n if (!context.internal) {\n // Add to context, for other hooks to use\n context.internal = {}\n }\n if (!context.internal.richText) {\n context.internal.richText = {}\n }\n context.internal.richText[path.join('.')] = {\n originalNodeIDMap: newOriginalNodeIDMap,\n }\n\n return value\n },\n ],\n beforeValidate: [\n async (args) => {\n const {\n collection,\n context,\n global,\n operation,\n overrideAccess,\n path,\n previousValue,\n req,\n schemaPath,\n } = args\n let { value } = args\n if (finalSanitizedEditorConfig?.features?.hooks?.beforeValidate?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.beforeValidate) {\n value = await hook(args)\n }\n }\n\n // return value if there are NO hooks\n if (\n !finalSanitizedEditorConfig.features.nodeHooks?.beforeValidate?.size &&\n !finalSanitizedEditorConfig.features.nodeHooks?.afterChange?.size &&\n !finalSanitizedEditorConfig.features.nodeHooks?.beforeChange?.size &&\n !finalSanitizedEditorConfig.features.getSubFields?.size\n ) {\n return value\n }\n\n /**\n * beforeValidate is the first field hook which runs. This is where we can create the node map, which can then be used in the other hooks.\n *\n */\n\n /**\n * flattenedNodes contains all nodes in the editor, in the order they appear in the editor. They will be used for the following hooks:\n * - afterRead\n *\n * The other hooks require nodes to have IDs, which is why those are ran only from the nodeIDMap. They require IDs because they have both doc/siblingDoc and data/siblingData, and\n * thus require a reliable way to match new node data to old node data. Given that node positions can change in between hooks, this is only reliably possible for nodes which are saved with\n * an ID.\n */\n //const flattenedNodes: SerializedLexicalNode[] = []\n\n /**\n * Only nodes with id's (so, nodes with hooks added to them) will be added to the nodeIDMap. They will be used for the following hooks:\n * - afterChange\n * - beforeChange\n * - beforeValidate\n *\n * Other hooks are handled by the flattenedNodes. All nodes in the nodeIDMap are part of flattenedNodes.\n */\n\n const originalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n recurseNodeTree({\n nodeIDMap: originalNodeIDMap,\n nodes: (previousValue as SerializedEditorState)?.root?.children ?? [],\n })\n\n if (!context.internal) {\n // Add to context, for other hooks to use\n context.internal = {}\n }\n if (!(context as any).internal.richText) {\n ;(context as any).internal.richText = {}\n }\n ;(context as any).internal.richText[path.join('.')] = {\n originalNodeIDMap,\n }\n\n /**\n * Now that the maps for all hooks are set up, we can run the validate hook\n */\n if (!finalSanitizedEditorConfig.features.nodeHooks?.beforeValidate?.size) {\n return value\n }\n const nodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n recurseNodeTree({\n //flattenedNodes,\n nodeIDMap,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n // eslint-disable-next-line prefer-const\n for (let [id, node] of Object.entries(nodeIDMap)) {\n const beforeValidateHooks =\n finalSanitizedEditorConfig.features.nodeHooks.beforeValidate\n const beforeValidateHooksForNode = beforeValidateHooks?.get(node.type)\n if (beforeValidateHooksForNode) {\n for (const hook of beforeValidateHooksForNode) {\n if (!originalNodeIDMap[id]) {\n console.warn(\n '(beforeValidate) No original node found for node with id',\n id,\n 'node:',\n node,\n 'path',\n path.join('.'),\n )\n continue\n }\n node = await hook({\n context,\n node,\n operation,\n originalNode: originalNodeIDMap[id],\n overrideAccess: overrideAccess!,\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n req,\n })\n }\n }\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields?.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData?.get(\n node.type,\n )\n\n if (subFieldFn && subFieldDataFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n const originalData = subFieldDataFn({ node: originalNodeIDMap[id], req }) ?? {}\n\n if (subFields?.length) {\n await beforeValidateTraverseFields({\n id,\n collection,\n context,\n data,\n doc: originalData,\n fields: subFields,\n global,\n operation,\n overrideAccess: overrideAccess!,\n path,\n req,\n schemaPath,\n siblingData: data,\n siblingDoc: originalData,\n })\n }\n }\n }\n\n return value\n },\n ],\n },\n i18n: featureI18n,\n outputSchema: ({\n collectionIDFieldTypes,\n config,\n field,\n interfaceNameDefinitions,\n isRequired,\n }) => {\n let outputSchema: JSONSchema4 = {\n // This schema matches the SerializedEditorState type so far, that it's possible to cast SerializedEditorState to this schema without any errors.\n // In the future, we should\n // 1) allow recursive children\n // 2) Pass in all the different types for every node added to the editorconfig. This can be done with refs in the schema.\n type: withNullableJSONSchemaType('object', isRequired),\n properties: {\n root: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: {\n type: 'string',\n },\n children: {\n type: 'array',\n items: {\n type: 'object',\n additionalProperties: true,\n properties: {\n type: {\n type: 'string',\n },\n version: {\n type: 'integer',\n },\n },\n required: ['type', 'version'],\n },\n },\n direction: {\n oneOf: [\n {\n enum: ['ltr', 'rtl'],\n },\n {\n type: 'null',\n },\n ],\n },\n format: {\n type: 'string',\n enum: ['left', 'start', 'center', 'right', 'end', 'justify', ''], // ElementFormatType, since the root node is an element\n },\n indent: {\n type: 'integer',\n },\n version: {\n type: 'integer',\n },\n },\n required: ['children', 'direction', 'format', 'indent', 'type', 'version'],\n },\n },\n required: ['root'],\n }\n for (const modifyOutputSchema of finalSanitizedEditorConfig.features.generatedTypes\n .modifyOutputSchemas) {\n outputSchema = modifyOutputSchema({\n collectionIDFieldTypes,\n config,\n currentSchema: outputSchema,\n field,\n interfaceNameDefinitions,\n isRequired,\n })\n }\n\n return outputSchema\n },\n validate: richTextValidateHOC({\n editorConfig: finalSanitizedEditorConfig,\n }),\n }\n }\n}\n\nexport { AlignFeature } from './features/align/server/index.js'\nexport { BlockquoteFeature } from './features/blockquote/server/index.js'\nexport { BlocksFeature, type BlocksFeatureProps } from './features/blocks/server/index.js'\nexport { type BlockFields } from './features/blocks/server/nodes/BlocksNode.js'\n\nexport { LinebreakHTMLConverter } from './features/converters/html/converter/converters/linebreak.js'\nexport { ParagraphHTMLConverter } from './features/converters/html/converter/converters/paragraph.js'\n\nexport { TextHTMLConverter } from './features/converters/html/converter/converters/text.js'\nexport { defaultHTMLConverters } from './features/converters/html/converter/defaultConverters.js'\nexport {\n convertLexicalNodesToHTML,\n convertLexicalToHTML,\n} from './features/converters/html/converter/index.js'\n\nexport type { HTMLConverter } from './features/converters/html/converter/types.js'\nexport { consolidateHTMLConverters, lexicalHTML } from './features/converters/html/field/index.js'\nexport {\n HTMLConverterFeature,\n type HTMLConverterFeatureProps,\n} from './features/converters/html/index.js'\nexport { TestRecorderFeature } from './features/debug/testRecorder/server/index.js'\nexport { TreeViewFeature } from './features/debug/treeView/server/index.js'\nexport { EXPERIMENTAL_TableFeature } from './features/experimental_table/server/index.js'\nexport { BoldFeature } from './features/format/bold/feature.server.js'\nexport { InlineCodeFeature } from './features/format/inlineCode/feature.server.js'\nexport { ItalicFeature } from './features/format/italic/feature.server.js'\n\nexport { StrikethroughFeature } from './features/format/strikethrough/feature.server.js'\nexport { SubscriptFeature } from './features/format/subscript/feature.server.js'\nexport { SuperscriptFeature } from './features/format/superscript/feature.server.js'\nexport { UnderlineFeature } from './features/format/underline/feature.server.js'\nexport { HeadingFeature, type HeadingFeatureProps } from './features/heading/server/index.js'\nexport { HorizontalRuleFeature } from './features/horizontalRule/server/index.js'\nexport { IndentFeature } from './features/indent/server/index.js'\n\nexport { AutoLinkNode } from './features/link/nodes/AutoLinkNode.js'\n\nexport { LinkNode } from './features/link/nodes/LinkNode.js'\nexport type { LinkFields } from './features/link/nodes/types.js'\nexport { LinkFeature, type LinkFeatureServerProps } from './features/link/server/index.js'\nexport { ChecklistFeature } from './features/lists/checklist/server/index.js'\nexport { OrderedListFeature } from './features/lists/orderedList/server/index.js'\nexport { UnorderedListFeature } from './features/lists/unorderedList/server/index.js'\n\nexport type {\n SlateNode,\n SlateNodeConverter,\n} from './features/migrations/slateToLexical/converter/types.js'\n\nexport { ParagraphFeature } from './features/paragraph/server/index.js'\nexport {\n RelationshipFeature,\n type RelationshipFeatureProps,\n} from './features/relationship/server/index.js'\nexport {\n type RelationshipData,\n RelationshipServerNode,\n} from './features/relationship/server/nodes/RelationshipNode.js'\n\nexport { FixedToolbarFeature } from './features/toolbars/fixed/server/index.js'\nexport { InlineToolbarFeature } from './features/toolbars/inline/server/index.js'\n\nexport type { ToolbarGroup, ToolbarGroupItem } from './features/toolbars/types.js'\nexport type {\n BaseClientFeatureProps,\n ClientFeature,\n ClientFeatureProviderMap,\n FeatureProviderClient,\n FeatureProviderProviderClient,\n PluginComponent,\n PluginComponentWithAnchor,\n ResolvedClientFeature,\n ResolvedClientFeatureMap,\n SanitizedClientFeatures,\n SanitizedPlugin,\n} from './features/typesClient.js'\nexport type {\n AfterChangeNodeHook,\n AfterChangeNodeHookArgs,\n AfterReadNodeHook,\n AfterReadNodeHookArgs,\n BaseNodeHookArgs,\n BeforeChangeNodeHook,\n BeforeChangeNodeHookArgs,\n BeforeValidateNodeHook,\n BeforeValidateNodeHookArgs,\n FeatureProviderProviderServer,\n FeatureProviderServer,\n NodeValidation,\n NodeWithHooks,\n PopulationPromise,\n ResolvedServerFeature,\n ResolvedServerFeatureMap,\n SanitizedServerFeatures,\n ServerFeature,\n ServerFeatureProviderMap,\n} from './features/typesServer.js'\n\nexport { createNode } from './features/typeUtilities.js' // Only useful in feature.server.ts\n\nexport { UploadFeature } from './features/upload/server/feature.server.js'\n\nexport type { UploadFeatureProps } from './features/upload/server/feature.server.js'\nexport { type UploadData, UploadServerNode } from './features/upload/server/nodes/UploadNode.js'\n\nexport type { EditorConfigContextType } from './lexical/config/client/EditorConfigProvider.js'\nexport {\n defaultEditorConfig,\n defaultEditorFeatures,\n defaultEditorLexicalConfig,\n} from './lexical/config/server/default.js'\n\nexport { loadFeatures, sortFeaturesForOptimalLoading } from './lexical/config/server/loader.js'\nexport {\n sanitizeServerEditorConfig,\n sanitizeServerFeatures,\n} from './lexical/config/server/sanitize.js'\n\nexport type {\n ClientEditorConfig,\n SanitizedClientEditorConfig,\n SanitizedServerEditorConfig,\n ServerEditorConfig,\n} from './lexical/config/types.js'\nexport { getEnabledNodes } from './lexical/nodes/index.js'\nexport type { AdapterProps }\n\nexport type {\n SlashMenuGroup,\n SlashMenuItem,\n} from './lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\n\nexport {\n DETAIL_TYPE_TO_DETAIL,\n DOUBLE_LINE_BREAK,\n ELEMENT_FORMAT_TO_TYPE,\n ELEMENT_TYPE_TO_FORMAT,\n IS_ALL_FORMATTING,\n LTR_REGEX,\n NodeFormat,\n NON_BREAKING_SPACE,\n RTL_REGEX,\n TEXT_MODE_TO_TYPE,\n TEXT_TYPE_TO_FORMAT,\n TEXT_TYPE_TO_MODE,\n} from './lexical/utils/nodeFormat.js'\nexport { sanitizeUrl, validateUrl } from './lexical/utils/url.js'\n\nexport type * from './nodeTypes.js'\n\nexport { defaultRichTextValue } from './populateGraphQL/defaultValue.js'\n\nexport { populate } from './populateGraphQL/populate.js'\nexport type { LexicalEditorProps, LexicalRichTextAdapter } from './types.js'\nexport { createServerFeature } from './utilities/createServerFeature.js'\n\nexport type { FieldsDrawerProps } from './utilities/fieldsDrawer/Drawer.js'\nexport { upgradeLexicalData } from './utilities/upgradeLexicalData/index.js'\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"EditorPlugin.d.ts","sourceRoot":"","sources":["../../src/lexical/EditorPlugin.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,WAAW,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;CACxB,CAQA,CAAA"}
1
+ {"version":3,"file":"EditorPlugin.d.ts","sourceRoot":"","sources":["../../src/lexical/EditorPlugin.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,WAAW,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;CACxB,CASA,CAAA"}
@@ -7,12 +7,13 @@ export const EditorPlugin = ({
7
7
  clientProps,
8
8
  plugin
9
9
  }) => {
10
- if (plugin.position === 'floatingAnchorElem') {
10
+ if (plugin.position === 'floatingAnchorElem' && anchorElem) {
11
11
  return plugin.Component && /*#__PURE__*/_jsx(plugin.Component, {
12
12
  anchorElem: anchorElem,
13
13
  clientProps: clientProps
14
14
  });
15
15
  }
16
+ // @ts-expect-error - ts is not able to infer that plugin.Component is of type PluginComponent
16
17
  return plugin.Component && /*#__PURE__*/_jsx(plugin.Component, {
17
18
  clientProps: clientProps
18
19
  });
@@ -1 +1 @@
1
- {"version":3,"file":"EditorPlugin.js","names":["React","EditorPlugin","anchorElem","clientProps","plugin","position","Component","_jsx"],"sources":["../../src/lexical/EditorPlugin.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { SanitizedPlugin } from '../features/typesClient.js'\n\nexport const EditorPlugin: React.FC<{\n anchorElem?: HTMLDivElement\n clientProps: unknown\n plugin: SanitizedPlugin\n}> = ({ anchorElem, clientProps, plugin }) => {\n if (plugin.position === 'floatingAnchorElem') {\n return (\n plugin.Component && <plugin.Component anchorElem={anchorElem} clientProps={clientProps} />\n )\n }\n\n return plugin.Component && <plugin.Component clientProps={clientProps} />\n}\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,MAAW;AAIlB,OAAO,MAAMC,YAAA,GAIRA,CAAC;EAAEC,UAAU;EAAEC,WAAW;EAAEC;AAAM,CAAE;EACvC,IAAIA,MAAA,CAAOC,QAAQ,KAAK,sBAAsB;IAC5C,OACED,MAAA,CAAOE,SAAS,iBAAIC,IAAA,CAACH,MAAA,CAAOE,SAAS;MAACJ,UAAA,EAAYA,UAAA;MAAYC,WAAA,EAAaA;;EAE/E;EAEA,OAAOC,MAAA,CAAOE,SAAS,iBAAIC,IAAA,CAACH,MAAA,CAAOE,SAAS;IAACH,WAAA,EAAaA;;AAC5D","ignoreList":[]}
1
+ {"version":3,"file":"EditorPlugin.js","names":["React","EditorPlugin","anchorElem","clientProps","plugin","position","Component","_jsx"],"sources":["../../src/lexical/EditorPlugin.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { SanitizedPlugin } from '../features/typesClient.js'\n\nexport const EditorPlugin: React.FC<{\n anchorElem?: HTMLDivElement\n clientProps: unknown\n plugin: SanitizedPlugin\n}> = ({ anchorElem, clientProps, plugin }) => {\n if (plugin.position === 'floatingAnchorElem' && anchorElem) {\n return (\n plugin.Component && <plugin.Component anchorElem={anchorElem} clientProps={clientProps} />\n )\n }\n\n // @ts-expect-error - ts is not able to infer that plugin.Component is of type PluginComponent\n return plugin.Component && <plugin.Component clientProps={clientProps} />\n}\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,MAAW;AAIlB,OAAO,MAAMC,YAAA,GAIRA,CAAC;EAAEC,UAAU;EAAEC,WAAW;EAAEC;AAAM,CAAE;EACvC,IAAIA,MAAA,CAAOC,QAAQ,KAAK,wBAAwBH,UAAA,EAAY;IAC1D,OACEE,MAAA,CAAOE,SAAS,iBAAIC,IAAA,CAACH,MAAA,CAAOE,SAAS;MAACJ,UAAA,EAAYA,UAAA;MAAYC,WAAA,EAAaA;;EAE/E;EAEA;EACA,OAAOC,MAAA,CAAOE,SAAS,iBAAIC,IAAA,CAACH,MAAA,CAAOE,SAAS;IAACH,WAAA,EAAaA;;AAC5D","ignoreList":[]}
@@ -2,6 +2,6 @@ import * as React from 'react';
2
2
  import type { LexicalProviderProps } from './LexicalProvider.js';
3
3
  import './LexicalEditor.scss';
4
4
  export declare const LexicalEditor: React.FC<{
5
- editorContainerRef: React.RefObject<HTMLDivElement>;
5
+ editorContainerRef: React.RefObject<HTMLDivElement | null>;
6
6
  } & Pick<LexicalProviderProps, 'editorConfig' | 'onChange'>>;
7
7
  //# sourceMappingURL=LexicalEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LexicalEditor.d.ts","sourceRoot":"","sources":["../../src/lexical/LexicalEditor.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAIhE,OAAO,sBAAsB,CAAA;AAO7B,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAClC;IACE,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;CACpD,GAAG,IAAI,CAAC,oBAAoB,EAAE,cAAc,GAAG,UAAU,CAAC,CA4K5D,CAAA"}
1
+ {"version":3,"file":"LexicalEditor.d.ts","sourceRoot":"","sources":["../../src/lexical/LexicalEditor.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAIhE,OAAO,sBAAsB,CAAA;AAO7B,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAClC;IACE,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;CAC3D,GAAG,IAAI,CAAC,oBAAoB,EAAE,cAAc,GAAG,UAAU,CAAC,CA4K5D,CAAA"}
@@ -132,7 +132,7 @@ export const LexicalEditor = props => {
132
132
  }), _jsx(AddBlockHandlePlugin, {
133
133
  anchorElem: floatingAnchorElem
134
134
  })]
135
- }), editorConfig.features.plugins.map(plugin_1 => {
135
+ }), editorConfig.features.plugins?.map(plugin_1 => {
136
136
  if (plugin_1.position === "floatingAnchorElem" && !(plugin_1.desktopOnly === true && isSmallWidthViewport)) {
137
137
  return _jsx(EditorPlugin, {
138
138
  anchorElem: floatingAnchorElem,
@@ -155,10 +155,10 @@ export const LexicalEditor = props => {
155
155
  t7 = $[21];
156
156
  }
157
157
  t5 = _jsxs(React.Fragment, {
158
- children: [editorConfig.features.plugins.map(_temp), _jsxs("div", {
158
+ children: [editorConfig.features.plugins?.map(_temp), _jsxs("div", {
159
159
  className: "editor-container",
160
160
  ref: editorContainerRef,
161
- children: [editorConfig.features.plugins.map(_temp2), _jsx(RichTextPlugin, {
161
+ children: [editorConfig.features.plugins?.map(_temp2), _jsx(RichTextPlugin, {
162
162
  contentEditable: _jsx("div", {
163
163
  className: "editor-scroller",
164
164
  children: _jsx("div", {
@@ -173,8 +173,8 @@ export const LexicalEditor = props => {
173
173
  onChange: t6
174
174
  }), t7, editor.isEditable() && _jsxs(React.Fragment, {
175
175
  children: [_jsx(HistoryPlugin, {}), editorConfig?.features?.markdownTransformers?.length > 0 && _jsx(MarkdownShortcutPlugin, {})]
176
- }), _jsx(TabIndentationPlugin, {}), editorConfig.features.plugins.map(_temp3), editorConfig.features.plugins.map(_temp4)]
177
- }), editorConfig.features.plugins.map(_temp5)]
176
+ }), _jsx(TabIndentationPlugin, {}), editorConfig.features.plugins?.map(_temp3), editorConfig.features.plugins?.map(_temp4)]
177
+ }), editorConfig.features.plugins?.map(_temp5)]
178
178
  });
179
179
  $[8] = editorConfig.features;
180
180
  $[9] = onChange;
@@ -1 +1 @@
1
- {"version":3,"file":"LexicalEditor.js","names":["c","_c","useLexicalComposerContext","LexicalErrorBoundary","HistoryPlugin","OnChangePlugin","RichTextPlugin","TabIndentationPlugin","BLUR_COMMAND","COMMAND_PRIORITY_LOW","FOCUS_COMMAND","React","useEffect","useState","useEditorConfigContext","EditorPlugin","AddBlockHandlePlugin","DraggableBlockPlugin","MarkdownShortcutPlugin","SlashMenuPlugin","LexicalContentEditable","LexicalEditor","props","$","editorConfig","editorContainerRef","onChange","editorConfigContext","editor","floatingAnchorElem","setFloatingAnchorElem","t0","Symbol","for","_floatingAnchorElem","onRef","t1","t2","uuid","console","error","parentEditor","registerChild","handleFocus","focusEditor","handleBlur","blurEditor","unregisterFocus","registerCommand","unregisterBlur","unregisterChild","isSmallWidthViewport","setIsSmallWidthViewport","t3","t4","updateViewPortWidth","isNextSmallWidthViewport","window","matchMedia","matches","addEventListener","removeEventListener","t5","features","t6","editorState","editor_0","tags","has","size","t7","_jsxs","Fragment","children","isEditable","_jsx","anchorElem","plugins","map","plugin_1","plugin","position","desktopOnly","clientProps","key","_temp","className","ref","_temp2","contentEditable","ignoreSelectionChange","markdownTransformers","length","_temp3","_temp4","_temp5","plugin_0","plugin_2","plugin_3","plugin_4"],"sources":["../../src/lexical/LexicalEditor.tsx"],"sourcesContent":["'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary.js'\nimport { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin.js'\nimport { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin.js'\nimport { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin.js'\nimport { TabIndentationPlugin } from '@lexical/react/LexicalTabIndentationPlugin.js'\nimport { BLUR_COMMAND, COMMAND_PRIORITY_LOW, FOCUS_COMMAND } from 'lexical'\nimport * as React from 'react'\nimport { useEffect, useState } from 'react'\n\nimport type { LexicalProviderProps } from './LexicalProvider.js'\n\nimport { useEditorConfigContext } from './config/client/EditorConfigProvider.js'\nimport { EditorPlugin } from './EditorPlugin.js'\nimport './LexicalEditor.scss'\nimport { AddBlockHandlePlugin } from './plugins/handles/AddBlockHandlePlugin/index.js'\nimport { DraggableBlockPlugin } from './plugins/handles/DraggableBlockPlugin/index.js'\nimport { MarkdownShortcutPlugin } from './plugins/MarkdownShortcut/index.js'\nimport { SlashMenuPlugin } from './plugins/SlashMenu/index.js'\nimport { LexicalContentEditable } from './ui/ContentEditable.js'\n\nexport const LexicalEditor: React.FC<\n {\n editorContainerRef: React.RefObject<HTMLDivElement>\n } & Pick<LexicalProviderProps, 'editorConfig' | 'onChange'>\n> = (props) => {\n const { editorConfig, editorContainerRef, onChange } = props\n const editorConfigContext = useEditorConfigContext()\n const [editor] = useLexicalComposerContext()\n\n const [floatingAnchorElem, setFloatingAnchorElem] = useState<HTMLDivElement | null>(null)\n const onRef = (_floatingAnchorElem: HTMLDivElement) => {\n if (_floatingAnchorElem !== null) {\n setFloatingAnchorElem(_floatingAnchorElem)\n }\n }\n\n useEffect(() => {\n if (!editorConfigContext?.uuid) {\n console.error('Lexical Editor must be used within an EditorConfigProvider')\n return\n }\n if (editorConfigContext?.parentEditor?.uuid) {\n editorConfigContext.parentEditor?.registerChild(editorConfigContext.uuid, editorConfigContext)\n }\n\n const handleFocus = () => {\n editorConfigContext.focusEditor(editorConfigContext)\n }\n\n const handleBlur = () => {\n editorConfigContext.blurEditor(editorConfigContext)\n }\n\n const unregisterFocus = editor.registerCommand<MouseEvent>(\n FOCUS_COMMAND,\n () => {\n handleFocus()\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n\n const unregisterBlur = editor.registerCommand<MouseEvent>(\n BLUR_COMMAND,\n () => {\n handleBlur()\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n\n return () => {\n unregisterFocus()\n unregisterBlur()\n editorConfigContext.parentEditor?.unregisterChild?.(editorConfigContext.uuid)\n }\n }, [editor, editorConfigContext])\n\n const [isSmallWidthViewport, setIsSmallWidthViewport] = useState<boolean>(false)\n\n useEffect(() => {\n const updateViewPortWidth = () => {\n const isNextSmallWidthViewport = window.matchMedia('(max-width: 768px)').matches\n\n if (isNextSmallWidthViewport !== isSmallWidthViewport) {\n setIsSmallWidthViewport(isNextSmallWidthViewport)\n }\n }\n updateViewPortWidth()\n window.addEventListener('resize', updateViewPortWidth)\n\n return () => {\n window.removeEventListener('resize', updateViewPortWidth)\n }\n }, [isSmallWidthViewport])\n\n return (\n <React.Fragment>\n {editorConfig.features.plugins.map((plugin) => {\n if (plugin.position === 'aboveContainer') {\n return <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n }\n })}\n <div className=\"editor-container\" ref={editorContainerRef}>\n {editorConfig.features.plugins.map((plugin) => {\n if (plugin.position === 'top') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n <RichTextPlugin\n contentEditable={\n <div className=\"editor-scroller\">\n <div className=\"editor\" ref={onRef}>\n <LexicalContentEditable />\n </div>\n </div>\n }\n ErrorBoundary={LexicalErrorBoundary}\n />\n <OnChangePlugin\n // Selection changes can be ignored here, reducing the\n // frequency that the FieldComponent and Payload receive updates.\n // Selection changes are only needed if you are saving selection state\n ignoreSelectionChange\n onChange={(editorState, editor, tags) => {\n // Ignore any onChange event triggered by focus only\n if (!tags.has('focus') || tags.size > 1) {\n if (onChange != null) {\n onChange(editorState, editor, tags)\n }\n }\n }}\n />\n {floatingAnchorElem && (\n <React.Fragment>\n {!isSmallWidthViewport && editor.isEditable() && (\n <React.Fragment>\n <DraggableBlockPlugin anchorElem={floatingAnchorElem} />\n <AddBlockHandlePlugin anchorElem={floatingAnchorElem} />\n </React.Fragment>\n )}\n {editorConfig.features.plugins.map((plugin) => {\n if (\n plugin.position === 'floatingAnchorElem' &&\n !(plugin.desktopOnly === true && isSmallWidthViewport)\n ) {\n return (\n <EditorPlugin\n anchorElem={floatingAnchorElem}\n clientProps={plugin.clientProps}\n key={plugin.key}\n plugin={plugin}\n />\n )\n }\n })}\n {editor.isEditable() && (\n <React.Fragment>\n <SlashMenuPlugin anchorElem={floatingAnchorElem} />\n </React.Fragment>\n )}\n </React.Fragment>\n )}\n {editor.isEditable() && (\n <React.Fragment>\n <HistoryPlugin />\n {editorConfig?.features?.markdownTransformers?.length > 0 && <MarkdownShortcutPlugin />}\n </React.Fragment>\n )}\n\n <TabIndentationPlugin />\n {editorConfig.features.plugins.map((plugin) => {\n if (plugin.position === 'normal') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n {editorConfig.features.plugins.map((plugin) => {\n if (plugin.position === 'bottom') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n </div>\n {editorConfig.features.plugins.map((plugin) => {\n if (plugin.position === 'belowContainer') {\n return <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n }\n })}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"LexicalEditor.js","names":["c","_c","useLexicalComposerContext","LexicalErrorBoundary","HistoryPlugin","OnChangePlugin","RichTextPlugin","TabIndentationPlugin","BLUR_COMMAND","COMMAND_PRIORITY_LOW","FOCUS_COMMAND","React","useEffect","useState","useEditorConfigContext","EditorPlugin","AddBlockHandlePlugin","DraggableBlockPlugin","MarkdownShortcutPlugin","SlashMenuPlugin","LexicalContentEditable","LexicalEditor","props","$","editorConfig","editorContainerRef","onChange","editorConfigContext","editor","floatingAnchorElem","setFloatingAnchorElem","t0","Symbol","for","_floatingAnchorElem","onRef","t1","t2","uuid","console","error","parentEditor","registerChild","handleFocus","focusEditor","handleBlur","blurEditor","unregisterFocus","registerCommand","unregisterBlur","unregisterChild","isSmallWidthViewport","setIsSmallWidthViewport","t3","t4","updateViewPortWidth","isNextSmallWidthViewport","window","matchMedia","matches","addEventListener","removeEventListener","t5","features","t6","editorState","editor_0","tags","has","size","t7","_jsxs","Fragment","children","isEditable","_jsx","anchorElem","plugins","map","plugin_1","plugin","position","desktopOnly","clientProps","key","_temp","className","ref","_temp2","contentEditable","ignoreSelectionChange","markdownTransformers","length","_temp3","_temp4","_temp5","plugin_0","plugin_2","plugin_3","plugin_4"],"sources":["../../src/lexical/LexicalEditor.tsx"],"sourcesContent":["'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary.js'\nimport { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin.js'\nimport { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin.js'\nimport { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin.js'\nimport { TabIndentationPlugin } from '@lexical/react/LexicalTabIndentationPlugin.js'\nimport { BLUR_COMMAND, COMMAND_PRIORITY_LOW, FOCUS_COMMAND } from 'lexical'\nimport * as React from 'react'\nimport { useEffect, useState } from 'react'\n\nimport type { LexicalProviderProps } from './LexicalProvider.js'\n\nimport { useEditorConfigContext } from './config/client/EditorConfigProvider.js'\nimport { EditorPlugin } from './EditorPlugin.js'\nimport './LexicalEditor.scss'\nimport { AddBlockHandlePlugin } from './plugins/handles/AddBlockHandlePlugin/index.js'\nimport { DraggableBlockPlugin } from './plugins/handles/DraggableBlockPlugin/index.js'\nimport { MarkdownShortcutPlugin } from './plugins/MarkdownShortcut/index.js'\nimport { SlashMenuPlugin } from './plugins/SlashMenu/index.js'\nimport { LexicalContentEditable } from './ui/ContentEditable.js'\n\nexport const LexicalEditor: React.FC<\n {\n editorContainerRef: React.RefObject<HTMLDivElement | null>\n } & Pick<LexicalProviderProps, 'editorConfig' | 'onChange'>\n> = (props) => {\n const { editorConfig, editorContainerRef, onChange } = props\n const editorConfigContext = useEditorConfigContext()\n const [editor] = useLexicalComposerContext()\n\n const [floatingAnchorElem, setFloatingAnchorElem] = useState<HTMLDivElement | null>(null)\n const onRef = (_floatingAnchorElem: HTMLDivElement) => {\n if (_floatingAnchorElem !== null) {\n setFloatingAnchorElem(_floatingAnchorElem)\n }\n }\n\n useEffect(() => {\n if (!editorConfigContext?.uuid) {\n console.error('Lexical Editor must be used within an EditorConfigProvider')\n return\n }\n if (editorConfigContext?.parentEditor?.uuid) {\n editorConfigContext.parentEditor?.registerChild(editorConfigContext.uuid, editorConfigContext)\n }\n\n const handleFocus = () => {\n editorConfigContext.focusEditor(editorConfigContext)\n }\n\n const handleBlur = () => {\n editorConfigContext.blurEditor(editorConfigContext)\n }\n\n const unregisterFocus = editor.registerCommand<MouseEvent>(\n FOCUS_COMMAND,\n () => {\n handleFocus()\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n\n const unregisterBlur = editor.registerCommand<MouseEvent>(\n BLUR_COMMAND,\n () => {\n handleBlur()\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n\n return () => {\n unregisterFocus()\n unregisterBlur()\n editorConfigContext.parentEditor?.unregisterChild?.(editorConfigContext.uuid)\n }\n }, [editor, editorConfigContext])\n\n const [isSmallWidthViewport, setIsSmallWidthViewport] = useState<boolean>(false)\n\n useEffect(() => {\n const updateViewPortWidth = () => {\n const isNextSmallWidthViewport = window.matchMedia('(max-width: 768px)').matches\n\n if (isNextSmallWidthViewport !== isSmallWidthViewport) {\n setIsSmallWidthViewport(isNextSmallWidthViewport)\n }\n }\n updateViewPortWidth()\n window.addEventListener('resize', updateViewPortWidth)\n\n return () => {\n window.removeEventListener('resize', updateViewPortWidth)\n }\n }, [isSmallWidthViewport])\n\n return (\n <React.Fragment>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'aboveContainer') {\n return <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n }\n })}\n <div className=\"editor-container\" ref={editorContainerRef}>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'top') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n <RichTextPlugin\n contentEditable={\n <div className=\"editor-scroller\">\n <div className=\"editor\" ref={onRef}>\n <LexicalContentEditable />\n </div>\n </div>\n }\n ErrorBoundary={LexicalErrorBoundary}\n />\n <OnChangePlugin\n // Selection changes can be ignored here, reducing the\n // frequency that the FieldComponent and Payload receive updates.\n // Selection changes are only needed if you are saving selection state\n ignoreSelectionChange\n onChange={(editorState, editor, tags) => {\n // Ignore any onChange event triggered by focus only\n if (!tags.has('focus') || tags.size > 1) {\n if (onChange != null) {\n onChange(editorState, editor, tags)\n }\n }\n }}\n />\n {floatingAnchorElem && (\n <React.Fragment>\n {!isSmallWidthViewport && editor.isEditable() && (\n <React.Fragment>\n <DraggableBlockPlugin anchorElem={floatingAnchorElem} />\n <AddBlockHandlePlugin anchorElem={floatingAnchorElem} />\n </React.Fragment>\n )}\n {editorConfig.features.plugins?.map((plugin) => {\n if (\n plugin.position === 'floatingAnchorElem' &&\n !(plugin.desktopOnly === true && isSmallWidthViewport)\n ) {\n return (\n <EditorPlugin\n anchorElem={floatingAnchorElem}\n clientProps={plugin.clientProps}\n key={plugin.key}\n plugin={plugin}\n />\n )\n }\n })}\n {editor.isEditable() && (\n <React.Fragment>\n <SlashMenuPlugin anchorElem={floatingAnchorElem} />\n </React.Fragment>\n )}\n </React.Fragment>\n )}\n {editor.isEditable() && (\n <React.Fragment>\n <HistoryPlugin />\n {editorConfig?.features?.markdownTransformers?.length > 0 && <MarkdownShortcutPlugin />}\n </React.Fragment>\n )}\n\n <TabIndentationPlugin />\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'normal') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'bottom') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n </div>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'belowContainer') {\n return <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n }\n })}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -19,7 +19,7 @@ export interface EditorConfigContextType {
19
19
  export declare const EditorConfigProvider: ({ children, editorConfig, editorContainerRef, field, parentContext, }: {
20
20
  children: React.ReactNode;
21
21
  editorConfig: SanitizedClientEditorConfig;
22
- editorContainerRef: React.RefObject<HTMLDivElement>;
22
+ editorContainerRef: React.RefObject<HTMLDivElement | null>;
23
23
  field: LexicalRichTextFieldProps["field"];
24
24
  parentContext?: EditorConfigContextType;
25
25
  }) => React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"EditorConfigProvider.d.ts","sourceRoot":"","sources":["../../../../src/lexical/config/client/EditorConfigProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAO9D,MAAM,WAAW,uBAAuB;IAEtC,UAAU,EAAE,CAAC,aAAa,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC5D,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAA;IACtE,MAAM,EAAE,aAAa,CAAA;IACrB,YAAY,EAAE,2BAA2B,CAAA;IACzC,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACnD,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAA;IACzC,aAAa,EAAE,uBAAuB,GAAG,IAAI,CAAA;IAE7C,WAAW,EAAE,CAAC,aAAa,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC7D,YAAY,EAAE,uBAAuB,CAAA;IACrC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC7E,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,IAAI,EAAE,MAAM,CAAA;CACb;AAQD,eAAO,MAAM,oBAAoB,0EAM9B;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,YAAY,EAAE,2BAA2B,CAAA;IACzC,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACnD,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAA;IACzC,aAAa,CAAC,EAAE,uBAAuB,CAAA;CACxC,KAAG,KAAK,CAAC,SA2ET,CAAA;AAED,eAAO,MAAM,sBAAsB,QAAO,uBAMzC,CAAA"}
1
+ {"version":3,"file":"EditorConfigProvider.d.ts","sourceRoot":"","sources":["../../../../src/lexical/config/client/EditorConfigProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAO9D,MAAM,WAAW,uBAAuB;IAEtC,UAAU,EAAE,CAAC,aAAa,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC5D,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAA;IACtE,MAAM,EAAE,aAAa,CAAA;IACrB,YAAY,EAAE,2BAA2B,CAAA;IACzC,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACnD,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAA;IACzC,aAAa,EAAE,uBAAuB,GAAG,IAAI,CAAA;IAE7C,WAAW,EAAE,CAAC,aAAa,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC7D,YAAY,EAAE,uBAAuB,CAAA;IACrC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC7E,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,IAAI,EAAE,MAAM,CAAA;CACb;AASD,eAAO,MAAM,oBAAoB,0EAM9B;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,YAAY,EAAE,2BAA2B,CAAA;IACzC,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IAC1D,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAA;IACzC,aAAa,CAAC,EAAE,uBAAuB,CAAA;CACxC,KAAG,KAAK,CAAC,SA2ET,CAAA;AAED,eAAO,MAAM,sBAAsB,QAAO,uBAMzC,CAAA"}
@@ -8,6 +8,7 @@ import { createContext, useContext, useMemo, useRef, useState } from 'react';
8
8
  function generateQuickGuid() {
9
9
  return Math.random().toString(36).substring(2, 12) + Math.random().toString(36).substring(2, 12);
10
10
  }
11
+ // @ts-expect-error: TODO: Fix this
11
12
  const Context = /*#__PURE__*/createContext({
12
13
  editorConfig: null,
13
14
  field: null,
@@ -51,23 +52,23 @@ export const EditorConfigProvider = ({
51
52
  if (parentContext?.uuid) {
52
53
  parentContext.focusEditor(editorContext_0);
53
54
  }
54
- childrenEditors.current.forEach((childEditor, childUUID) => {
55
+ childrenEditors.current.forEach(childEditor => {
55
56
  childEditor.focusEditor(editorContext_0);
56
57
  });
57
58
  focusHistory.current.clear();
58
59
  },
59
60
  parentEditor: parentContext,
60
- registerChild: (childUUID_0, childEditorContext) => {
61
- if (!childrenEditors.current.has(childUUID_0)) {
61
+ registerChild: (childUUID, childEditorContext) => {
62
+ if (!childrenEditors.current.has(childUUID)) {
62
63
  const newMap = new Map(childrenEditors.current);
63
- newMap.set(childUUID_0, childEditorContext);
64
+ newMap.set(childUUID, childEditorContext);
64
65
  childrenEditors.current = newMap;
65
66
  }
66
67
  },
67
- unregisterChild: childUUID_1 => {
68
- if (childrenEditors.current.has(childUUID_1)) {
68
+ unregisterChild: childUUID_0 => {
69
+ if (childrenEditors.current.has(childUUID_0)) {
69
70
  const newMap_0 = new Map(childrenEditors.current);
70
- newMap_0.delete(childUUID_1);
71
+ newMap_0.delete(childUUID_0);
71
72
  childrenEditors.current = newMap_0;
72
73
  }
73
74
  },
@@ -1 +1 @@
1
- {"version":3,"file":"EditorConfigProvider.js","names":["useLexicalComposerContext","React","createContext","useContext","useMemo","useRef","useState","generateQuickGuid","Math","random","toString","substring","Context","editorConfig","field","uuid","EditorConfigProvider","children","editorContainerRef","parentContext","editor","childrenEditors","Map","focusedEditor","setFocusedEditor","focusHistory","Set","editorContext","blurEditor","current","clear","focusEditor","editorUUID","has","add","forEach","childEditor","childUUID","parentEditor","registerChild","childEditorContext","newMap","set","unregisterChild","delete","_jsx","Provider","value","useEditorConfigContext","context","undefined","Error"],"sources":["../../../../src/lexical/config/client/EditorConfigProvider.tsx"],"sourcesContent":["'use client'\n\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport * as React from 'react'\nimport { createContext, useContext, useMemo, useRef, useState } from 'react'\n\nimport type { LexicalRichTextFieldProps } from '../../../types.js'\nimport type { SanitizedClientEditorConfig } from '../types.js'\n\n// Should always produce a 20 character pseudo-random string\nfunction generateQuickGuid(): string {\n return Math.random().toString(36).substring(2, 12) + Math.random().toString(36).substring(2, 12)\n}\n\nexport interface EditorConfigContextType {\n // Editor focus handling\n blurEditor: (editorContext: EditorConfigContextType) => void\n childrenEditors: React.RefObject<Map<string, EditorConfigContextType>>\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n editorContainerRef: React.RefObject<HTMLDivElement>\n field: LexicalRichTextFieldProps['field']\n focusedEditor: EditorConfigContextType | null\n // Editor focus handling\n focusEditor: (editorContext: EditorConfigContextType) => void\n parentEditor: EditorConfigContextType\n registerChild: (uuid: string, editorContext: EditorConfigContextType) => void\n unregisterChild?: (uuid: string) => void\n uuid: string\n}\n\nconst Context: React.Context<EditorConfigContextType> = createContext({\n editorConfig: null,\n field: null,\n uuid: null,\n})\n\nexport const EditorConfigProvider = ({\n children,\n editorConfig,\n editorContainerRef,\n field,\n parentContext,\n}: {\n children: React.ReactNode\n editorConfig: SanitizedClientEditorConfig\n editorContainerRef: React.RefObject<HTMLDivElement>\n field: LexicalRichTextFieldProps['field']\n parentContext?: EditorConfigContextType\n}): React.ReactNode => {\n const [editor] = useLexicalComposerContext()\n // State to store the UUID\n const [uuid] = useState(generateQuickGuid())\n\n const childrenEditors = useRef<Map<string, EditorConfigContextType>>(new Map())\n const [focusedEditor, setFocusedEditor] = useState<EditorConfigContextType | null>(null)\n const focusHistory = useRef<Set<string>>(new Set())\n\n const editorContext = useMemo(\n () =>\n ({\n blurEditor: (editorContext: EditorConfigContextType) => {\n //setFocusedEditor(null) // Clear focused editor\n focusHistory.current.clear() // Reset focus history when focus is lost\n },\n childrenEditors,\n editor,\n editorConfig,\n editorContainerRef,\n field,\n focusedEditor,\n focusEditor: (editorContext: EditorConfigContextType) => {\n const editorUUID = editorContext.uuid\n\n // Avoid recursion by checking if this editor is already focused in this cycle\n if (focusHistory.current.has(editorUUID)) {\n return\n }\n\n // Add this editor to the history to prevent future recursions in this cycle\n focusHistory.current.add(editorUUID)\n setFocusedEditor(editorContext)\n\n // Propagate focus event to parent and children, ensuring they do not refocus this editor\n if (parentContext?.uuid) {\n parentContext.focusEditor(editorContext)\n }\n childrenEditors.current.forEach((childEditor, childUUID) => {\n childEditor.focusEditor(editorContext)\n })\n\n focusHistory.current.clear()\n },\n parentEditor: parentContext,\n registerChild: (childUUID, childEditorContext) => {\n if (!childrenEditors.current.has(childUUID)) {\n const newMap = new Map(childrenEditors.current)\n newMap.set(childUUID, childEditorContext)\n childrenEditors.current = newMap\n }\n },\n unregisterChild: (childUUID) => {\n if (childrenEditors.current.has(childUUID)) {\n const newMap = new Map(childrenEditors.current)\n newMap.delete(childUUID)\n childrenEditors.current = newMap\n }\n },\n\n uuid,\n }) as EditorConfigContextType,\n [\n editor,\n childrenEditors,\n editorConfig,\n editorContainerRef,\n field,\n focusedEditor,\n parentContext,\n uuid,\n ],\n )\n\n return <Context.Provider value={editorContext}>{children}</Context.Provider>\n}\n\nexport const useEditorConfigContext = (): EditorConfigContextType => {\n const context = useContext(Context)\n if (context === undefined) {\n throw new Error('useEditorConfigContext must be used within an EditorConfigProvider')\n }\n return context\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"EditorConfigProvider.js","names":["useLexicalComposerContext","React","createContext","useContext","useMemo","useRef","useState","generateQuickGuid","Math","random","toString","substring","Context","editorConfig","field","uuid","EditorConfigProvider","children","editorContainerRef","parentContext","editor","childrenEditors","Map","focusedEditor","setFocusedEditor","focusHistory","Set","editorContext","blurEditor","current","clear","focusEditor","editorUUID","has","add","forEach","childEditor","parentEditor","registerChild","childUUID","childEditorContext","newMap","set","unregisterChild","delete","_jsx","Provider","value","useEditorConfigContext","context","undefined","Error"],"sources":["../../../../src/lexical/config/client/EditorConfigProvider.tsx"],"sourcesContent":["'use client'\n\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport * as React from 'react'\nimport { createContext, useContext, useMemo, useRef, useState } from 'react'\n\nimport type { LexicalRichTextFieldProps } from '../../../types.js'\nimport type { SanitizedClientEditorConfig } from '../types.js'\n\n// Should always produce a 20 character pseudo-random string\nfunction generateQuickGuid(): string {\n return Math.random().toString(36).substring(2, 12) + Math.random().toString(36).substring(2, 12)\n}\n\nexport interface EditorConfigContextType {\n // Editor focus handling\n blurEditor: (editorContext: EditorConfigContextType) => void\n childrenEditors: React.RefObject<Map<string, EditorConfigContextType>>\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n editorContainerRef: React.RefObject<HTMLDivElement>\n field: LexicalRichTextFieldProps['field']\n focusedEditor: EditorConfigContextType | null\n // Editor focus handling\n focusEditor: (editorContext: EditorConfigContextType) => void\n parentEditor: EditorConfigContextType\n registerChild: (uuid: string, editorContext: EditorConfigContextType) => void\n unregisterChild?: (uuid: string) => void\n uuid: string\n}\n\n// @ts-expect-error: TODO: Fix this\nconst Context: React.Context<EditorConfigContextType> = createContext({\n editorConfig: null,\n field: null,\n uuid: null,\n})\n\nexport const EditorConfigProvider = ({\n children,\n editorConfig,\n editorContainerRef,\n field,\n parentContext,\n}: {\n children: React.ReactNode\n editorConfig: SanitizedClientEditorConfig\n editorContainerRef: React.RefObject<HTMLDivElement | null>\n field: LexicalRichTextFieldProps['field']\n parentContext?: EditorConfigContextType\n}): React.ReactNode => {\n const [editor] = useLexicalComposerContext()\n // State to store the UUID\n const [uuid] = useState(generateQuickGuid())\n\n const childrenEditors = useRef<Map<string, EditorConfigContextType>>(new Map())\n const [focusedEditor, setFocusedEditor] = useState<EditorConfigContextType | null>(null)\n const focusHistory = useRef<Set<string>>(new Set())\n\n const editorContext = useMemo(\n () =>\n ({\n blurEditor: (editorContext: EditorConfigContextType) => {\n //setFocusedEditor(null) // Clear focused editor\n focusHistory.current.clear() // Reset focus history when focus is lost\n },\n childrenEditors,\n editor,\n editorConfig,\n editorContainerRef,\n field,\n focusedEditor,\n focusEditor: (editorContext: EditorConfigContextType) => {\n const editorUUID = editorContext.uuid\n\n // Avoid recursion by checking if this editor is already focused in this cycle\n if (focusHistory.current.has(editorUUID)) {\n return\n }\n\n // Add this editor to the history to prevent future recursions in this cycle\n focusHistory.current.add(editorUUID)\n setFocusedEditor(editorContext)\n\n // Propagate focus event to parent and children, ensuring they do not refocus this editor\n if (parentContext?.uuid) {\n parentContext.focusEditor(editorContext)\n }\n childrenEditors.current.forEach((childEditor) => {\n childEditor.focusEditor(editorContext)\n })\n\n focusHistory.current.clear()\n },\n parentEditor: parentContext,\n registerChild: (childUUID, childEditorContext) => {\n if (!childrenEditors.current.has(childUUID)) {\n const newMap = new Map(childrenEditors.current)\n newMap.set(childUUID, childEditorContext)\n childrenEditors.current = newMap\n }\n },\n unregisterChild: (childUUID) => {\n if (childrenEditors.current.has(childUUID)) {\n const newMap = new Map(childrenEditors.current)\n newMap.delete(childUUID)\n childrenEditors.current = newMap\n }\n },\n\n uuid,\n }) as EditorConfigContextType,\n [\n editor,\n childrenEditors,\n editorConfig,\n editorContainerRef,\n field,\n focusedEditor,\n parentContext,\n uuid,\n ],\n )\n\n return <Context.Provider value={editorContext}>{children}</Context.Provider>\n}\n\nexport const useEditorConfigContext = (): EditorConfigContextType => {\n const context = useContext(Context)\n if (context === undefined) {\n throw new Error('useEditorConfigContext must be used within an EditorConfigProvider')\n }\n return context\n}\n"],"mappings":"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","ignoreList":[]}
@@ -42,7 +42,7 @@ export const sanitizeClientFeatures = features => {
42
42
  }
43
43
  if (feature.plugins?.length) {
44
44
  feature.plugins.forEach((plugin, i) => {
45
- sanitized.plugins.push({
45
+ sanitized.plugins?.push({
46
46
  clientProps: feature.sanitizedClientFeatureProps,
47
47
  Component: plugin.Component,
48
48
  key: feature.key + i,
@@ -173,7 +173,7 @@ export function sanitizeClientEditorConfig(resolvedClientFeatureMap, lexical, ad
173
173
  return {
174
174
  admin,
175
175
  features: sanitizeClientFeatures(resolvedClientFeatureMap),
176
- lexical,
176
+ lexical: lexical,
177
177
  resolvedFeatureMap: resolvedClientFeatureMap
178
178
  };
179
179
  }