@payloadcms/richtext-lexical 3.2.3-canary.673b4b5 → 3.3.0

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 (253) hide show
  1. package/dist/exports/client/{Field-JP7H7AZE.js → Field-KHGUSLMB.js} +2 -2
  2. package/dist/exports/client/{Field-JP7H7AZE.js.map → Field-KHGUSLMB.js.map} +2 -2
  3. package/dist/exports/client/{RelationshipComponent-XOQBVKA3.js → RelationshipComponent-F77EQHRG.js} +2 -2
  4. package/dist/exports/client/bundled.css +1 -1
  5. package/dist/exports/client/{chunk-H6YVKFZN.js → chunk-4J2ONJMB.js} +2 -2
  6. package/dist/exports/client/chunk-4J2ONJMB.js.map +7 -0
  7. package/dist/exports/client/{chunk-XCEM47RI.js → chunk-AXXPUMFU.js} +2 -2
  8. package/dist/exports/client/{chunk-5PBXL4HT.js → chunk-F26IQ5RE.js} +2 -2
  9. package/dist/exports/client/{chunk-5PBXL4HT.js.map → chunk-F26IQ5RE.js.map} +1 -1
  10. package/dist/exports/client/chunk-H3D3IU3G.js +2 -0
  11. package/dist/exports/client/{chunk-DOK5S7LE.js.map → chunk-H3D3IU3G.js.map} +2 -2
  12. package/dist/exports/client/{chunk-2CYU43GM.js → chunk-INBEEENE.js} +2 -2
  13. package/dist/exports/client/{chunk-2CYU43GM.js.map → chunk-INBEEENE.js.map} +1 -1
  14. package/dist/exports/client/{chunk-ZTAS32RX.js → chunk-PGMIO4IN.js} +2 -2
  15. package/dist/exports/client/{chunk-2L2Z4JHF.js → chunk-XOABLBHB.js} +2 -2
  16. package/dist/exports/client/{chunk-2L2Z4JHF.js.map → chunk-XOABLBHB.js.map} +1 -1
  17. package/dist/exports/client/{component-D6PKVJ2K.js → component-NSAU5Y76.js} +2 -2
  18. package/dist/exports/client/component-SX36AJXS.js +2 -0
  19. package/dist/exports/client/{component-ANB7VZLA.js.map → component-SX36AJXS.js.map} +2 -2
  20. package/dist/exports/client/componentInline-B5YNOX32.js +2 -0
  21. package/dist/exports/client/index.d.ts +0 -4
  22. package/dist/exports/client/index.d.ts.map +1 -1
  23. package/dist/exports/client/index.js +17 -17
  24. package/dist/exports/client/index.js.map +4 -4
  25. package/dist/features/align/server/i18n.d.ts.map +1 -1
  26. package/dist/features/align/server/i18n.js +0 -6
  27. package/dist/features/align/server/i18n.js.map +1 -1
  28. package/dist/features/blockquote/server/i18n.d.ts.map +1 -1
  29. package/dist/features/blockquote/server/i18n.js +0 -3
  30. package/dist/features/blockquote/server/i18n.js.map +1 -1
  31. package/dist/features/blocks/client/component/BlockContent.js +8 -8
  32. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  33. package/dist/features/blocks/client/component/components/BlockCollapsible.js +5 -5
  34. package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -1
  35. package/dist/features/blocks/client/component/index.d.ts +1 -1
  36. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  37. package/dist/features/blocks/client/component/index.js.map +1 -1
  38. package/dist/features/blocks/client/componentInline/index.d.ts +1 -1
  39. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  40. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  41. package/dist/features/blocks/client/index.d.ts.map +1 -1
  42. package/dist/features/blocks/client/index.js +4 -65
  43. package/dist/features/blocks/client/index.js.map +1 -1
  44. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +2 -2
  45. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  46. package/dist/features/blocks/client/nodes/BlocksNode.js +1 -1
  47. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  48. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts +2 -2
  49. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  50. package/dist/features/blocks/client/nodes/InlineBlocksNode.js +1 -1
  51. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
  52. package/dist/features/blocks/client/plugin/commands.d.ts +1 -12
  53. package/dist/features/blocks/client/plugin/commands.d.ts.map +1 -1
  54. package/dist/features/blocks/client/plugin/commands.js +0 -2
  55. package/dist/features/blocks/client/plugin/commands.js.map +1 -1
  56. package/dist/features/blocks/client/plugin/index.d.ts +1 -1
  57. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
  58. package/dist/features/blocks/client/plugin/index.js +41 -33
  59. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  60. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts +3 -4
  61. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -1
  62. package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -1
  63. package/dist/features/blocks/server/i18n.d.ts.map +1 -1
  64. package/dist/features/blocks/server/i18n.js +33 -144
  65. package/dist/features/blocks/server/i18n.js.map +1 -1
  66. package/dist/features/blocks/server/index.d.ts +1 -5
  67. package/dist/features/blocks/server/index.d.ts.map +1 -1
  68. package/dist/features/blocks/server/index.js +2 -82
  69. package/dist/features/blocks/server/index.js.map +1 -1
  70. package/dist/features/blocks/server/markdownTransformer.js +2 -2
  71. package/dist/features/blocks/server/markdownTransformer.js.map +1 -1
  72. package/dist/features/blocks/server/nodes/{BlockNode.d.ts → BlocksNode.d.ts} +2 -2
  73. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -0
  74. package/dist/features/blocks/server/nodes/{BlockNode.js → BlocksNode.js} +1 -1
  75. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -0
  76. package/dist/features/blocks/server/nodes/{InlineBlockNode.d.ts → InlineBlocksNode.d.ts} +1 -1
  77. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -0
  78. package/dist/features/blocks/server/nodes/{InlineBlockNode.js → InlineBlocksNode.js} +1 -1
  79. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -0
  80. package/dist/features/blocks/server/validate.d.ts +3 -4
  81. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  82. package/dist/features/blocks/server/validate.js.map +1 -1
  83. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +3 -3
  84. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  85. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +3 -3
  86. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  87. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +6 -6
  88. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  89. package/dist/features/experimental_table/client/utils/useDebounce.js +3 -3
  90. package/dist/features/experimental_table/client/utils/useDebounce.js.map +1 -1
  91. package/dist/features/heading/server/i18n.d.ts.map +1 -1
  92. package/dist/features/heading/server/i18n.js +0 -3
  93. package/dist/features/heading/server/i18n.js.map +1 -1
  94. package/dist/features/horizontalRule/client/component/index.js +19 -18
  95. package/dist/features/horizontalRule/client/component/index.js.map +1 -1
  96. package/dist/features/horizontalRule/client/plugin/index.js +13 -12
  97. package/dist/features/horizontalRule/client/plugin/index.js.map +1 -1
  98. package/dist/features/horizontalRule/server/i18n.d.ts.map +1 -1
  99. package/dist/features/horizontalRule/server/i18n.js +0 -3
  100. package/dist/features/horizontalRule/server/i18n.js.map +1 -1
  101. package/dist/features/indent/client/plugins/index.js +3 -3
  102. package/dist/features/indent/client/plugins/index.js.map +1 -1
  103. package/dist/features/indent/server/i18n.d.ts.map +1 -1
  104. package/dist/features/indent/server/i18n.js +0 -4
  105. package/dist/features/indent/server/i18n.js.map +1 -1
  106. package/dist/features/link/client/plugins/autoLink/index.js +3 -3
  107. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  108. package/dist/features/link/client/plugins/link/index.js +9 -5
  109. package/dist/features/link/client/plugins/link/index.js.map +1 -1
  110. package/dist/features/link/server/i18n.d.ts.map +1 -1
  111. package/dist/features/link/server/i18n.js +0 -4
  112. package/dist/features/link/server/i18n.js.map +1 -1
  113. package/dist/features/lists/checklist/server/i18n.d.ts.map +1 -1
  114. package/dist/features/lists/checklist/server/i18n.js +0 -3
  115. package/dist/features/lists/checklist/server/i18n.js.map +1 -1
  116. package/dist/features/lists/orderedList/server/i18n.d.ts.map +1 -1
  117. package/dist/features/lists/orderedList/server/i18n.js +0 -3
  118. package/dist/features/lists/orderedList/server/i18n.js.map +1 -1
  119. package/dist/features/lists/unorderedList/server/i18n.d.ts.map +1 -1
  120. package/dist/features/lists/unorderedList/server/i18n.js +0 -3
  121. package/dist/features/lists/unorderedList/server/i18n.js.map +1 -1
  122. package/dist/features/paragraph/server/i18n.d.ts.map +1 -1
  123. package/dist/features/paragraph/server/i18n.js +0 -4
  124. package/dist/features/paragraph/server/i18n.js.map +1 -1
  125. package/dist/features/relationship/client/drawer/index.js +13 -13
  126. package/dist/features/relationship/client/drawer/index.js.map +1 -1
  127. package/dist/features/relationship/client/plugins/index.js +23 -19
  128. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  129. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js +19 -18
  130. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js.map +1 -1
  131. package/dist/features/relationship/server/i18n.d.ts.map +1 -1
  132. package/dist/features/relationship/server/i18n.js +0 -3
  133. package/dist/features/relationship/server/i18n.js.map +1 -1
  134. package/dist/features/toolbars/fixed/client/Toolbar/index.js +39 -31
  135. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  136. package/dist/features/toolbars/inline/client/Toolbar/index.js +31 -23
  137. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  138. package/dist/features/toolbars/shared/ToolbarButton/index.js +27 -26
  139. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  140. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +36 -36
  141. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  142. package/dist/features/typesClient.d.ts +2 -3
  143. package/dist/features/typesClient.d.ts.map +1 -1
  144. package/dist/features/typesClient.js.map +1 -1
  145. package/dist/features/typesServer.d.ts +1 -8
  146. package/dist/features/typesServer.d.ts.map +1 -1
  147. package/dist/features/typesServer.js.map +1 -1
  148. package/dist/features/upload/client/drawer/index.js +3 -3
  149. package/dist/features/upload/client/drawer/index.js.map +1 -1
  150. package/dist/features/upload/client/plugin/index.js +6 -3
  151. package/dist/features/upload/client/plugin/index.js.map +1 -1
  152. package/dist/features/upload/server/i18n.d.ts.map +1 -1
  153. package/dist/features/upload/server/i18n.js +0 -3
  154. package/dist/features/upload/server/i18n.js.map +1 -1
  155. package/dist/field/bundled.css +1 -1
  156. package/dist/field/index.d.ts.map +1 -1
  157. package/dist/field/index.js +17 -20
  158. package/dist/field/index.js.map +1 -1
  159. package/dist/field/rscEntry.js +0 -2
  160. package/dist/field/rscEntry.js.map +1 -1
  161. package/dist/i18n.d.ts.map +1 -1
  162. package/dist/i18n.js +0 -6
  163. package/dist/i18n.js.map +1 -1
  164. package/dist/index.d.ts +2 -3
  165. package/dist/index.d.ts.map +1 -1
  166. package/dist/index.js.map +1 -1
  167. package/dist/lexical/LexicalEditor.js +15 -15
  168. package/dist/lexical/LexicalEditor.js.map +1 -1
  169. package/dist/lexical/config/client/loader.d.ts +1 -2
  170. package/dist/lexical/config/client/loader.d.ts.map +1 -1
  171. package/dist/lexical/config/client/loader.js +0 -2
  172. package/dist/lexical/config/client/loader.js.map +1 -1
  173. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +17 -17
  174. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  175. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +17 -17
  176. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  177. package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +4 -4
  178. package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js.map +1 -1
  179. package/dist/lexical/plugins/TextPlugin/index.js +3 -3
  180. package/dist/lexical/plugins/TextPlugin/index.js.map +1 -1
  181. package/dist/lexical/ui/ContentEditable.js +3 -3
  182. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  183. package/dist/nodeTypes.d.ts +2 -2
  184. package/dist/nodeTypes.d.ts.map +1 -1
  185. package/dist/nodeTypes.js.map +1 -1
  186. package/dist/types.d.ts +0 -1
  187. package/dist/types.d.ts.map +1 -1
  188. package/dist/types.js.map +1 -1
  189. package/dist/utilities/createClientFeature.d.ts +0 -1
  190. package/dist/utilities/createClientFeature.d.ts.map +1 -1
  191. package/dist/utilities/createClientFeature.js +0 -2
  192. package/dist/utilities/createClientFeature.js.map +1 -1
  193. package/dist/utilities/fieldsDrawer/Drawer.js +11 -11
  194. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  195. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +10 -10
  196. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -1
  197. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js +14 -14
  198. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js.map +1 -1
  199. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js +11 -11
  200. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js.map +1 -1
  201. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  202. package/dist/utilities/generateImportMap.js +2 -5
  203. package/dist/utilities/generateImportMap.js.map +1 -1
  204. package/dist/utilities/initLexicalFeatures.d.ts +0 -1
  205. package/dist/utilities/initLexicalFeatures.d.ts.map +1 -1
  206. package/dist/utilities/initLexicalFeatures.js +1 -18
  207. package/dist/utilities/initLexicalFeatures.js.map +1 -1
  208. package/package.json +15 -15
  209. package/dist/exports/client/chunk-DOK5S7LE.js +0 -2
  210. package/dist/exports/client/chunk-H6YVKFZN.js.map +0 -7
  211. package/dist/exports/client/component-ANB7VZLA.js +0 -2
  212. package/dist/exports/client/componentInline-WMS3WMBA.js +0 -2
  213. package/dist/features/blocks/WrapperBlockNode.d.ts +0 -1151
  214. package/dist/features/blocks/WrapperBlockNode.d.ts.map +0 -1
  215. package/dist/features/blocks/WrapperBlockNode.js +0 -113
  216. package/dist/features/blocks/WrapperBlockNode.js.map +0 -1
  217. package/dist/features/blocks/client/plugin/wrapperBlocks/BlockEditor/index.d.ts +0 -23
  218. package/dist/features/blocks/client/plugin/wrapperBlocks/BlockEditor/index.d.ts.map +0 -1
  219. package/dist/features/blocks/client/plugin/wrapperBlocks/BlockEditor/index.js +0 -330
  220. package/dist/features/blocks/client/plugin/wrapperBlocks/BlockEditor/index.js.map +0 -1
  221. package/dist/features/blocks/client/plugin/wrapperBlocks/BlockEditor/useLexicalFormState.d.ts +0 -22
  222. package/dist/features/blocks/client/plugin/wrapperBlocks/BlockEditor/useLexicalFormState.d.ts.map +0 -1
  223. package/dist/features/blocks/client/plugin/wrapperBlocks/BlockEditor/useLexicalFormState.js +0 -169
  224. package/dist/features/blocks/client/plugin/wrapperBlocks/BlockEditor/useLexicalFormState.js.map +0 -1
  225. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockContainer.d.ts +0 -5
  226. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockContainer.d.ts.map +0 -1
  227. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockContainer.js +0 -28
  228. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockContainer.js.map +0 -1
  229. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockEditButton.d.ts +0 -3
  230. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockEditButton.d.ts.map +0 -1
  231. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockEditButton.js +0 -22
  232. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockEditButton.js.map +0 -1
  233. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockLabel.d.ts +0 -3
  234. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockLabel.d.ts.map +0 -1
  235. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockLabel.js +0 -22
  236. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockLabel.js.map +0 -1
  237. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockRemoveButton.d.ts +0 -3
  238. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockRemoveButton.d.ts.map +0 -1
  239. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockRemoveButton.js +0 -22
  240. package/dist/features/blocks/client/plugin/wrapperBlocks/components/WrapperBlockRemoveButton.js.map +0 -1
  241. package/dist/features/blocks/client/plugin/wrapperBlocks/index.d.ts +0 -9
  242. package/dist/features/blocks/client/plugin/wrapperBlocks/index.d.ts.map +0 -1
  243. package/dist/features/blocks/client/plugin/wrapperBlocks/index.js +0 -111
  244. package/dist/features/blocks/client/plugin/wrapperBlocks/index.js.map +0 -1
  245. package/dist/features/blocks/server/nodes/BlockNode.d.ts.map +0 -1
  246. package/dist/features/blocks/server/nodes/BlockNode.js.map +0 -1
  247. package/dist/features/blocks/server/nodes/InlineBlockNode.d.ts.map +0 -1
  248. package/dist/features/blocks/server/nodes/InlineBlockNode.js.map +0 -1
  249. /package/dist/exports/client/{RelationshipComponent-XOQBVKA3.js.map → RelationshipComponent-F77EQHRG.js.map} +0 -0
  250. /package/dist/exports/client/{chunk-XCEM47RI.js.map → chunk-AXXPUMFU.js.map} +0 -0
  251. /package/dist/exports/client/{chunk-ZTAS32RX.js.map → chunk-PGMIO4IN.js.map} +0 -0
  252. /package/dist/exports/client/{component-D6PKVJ2K.js.map → component-NSAU5Y76.js.map} +0 -0
  253. /package/dist/exports/client/{componentInline-WMS3WMBA.js.map → componentInline-B5YNOX32.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"WrapperBlockNode.d.ts","sourceRoot":"","sources":["../../../src/features/blocks/WrapperBlockNode.ts"],"names":[],"mappings":"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"}
@@ -1,113 +0,0 @@
1
- import ObjectID from 'bson-objectid';
2
- import { $isElementNode, $isRangeSelection, ElementNode } from 'lexical';
3
- import { deepCopyObjectSimple } from 'payload/shared';
4
- export function getWrapperBlockNode(domMap) {
5
- class WrapperBlockNode extends ElementNode {
6
- __fields;
7
- constructor({
8
- fields,
9
- key
10
- }) {
11
- super(key);
12
- this.__fields = fields;
13
- }
14
- static clone(node) {
15
- return new this({
16
- fields: node.__fields,
17
- key: node.__key
18
- });
19
- }
20
- static getType() {
21
- return 'wrapperBlock';
22
- }
23
- static importDOM() {
24
- return {};
25
- }
26
- static importJSON(serializedNode) {
27
- const node = $createWrapperBlockNode(serializedNode.fields);
28
- return node;
29
- }
30
- canBeEmpty() {
31
- return false;
32
- }
33
- canInsertTextAfter() {
34
- return false;
35
- }
36
- canInsertTextBefore() {
37
- return false;
38
- }
39
- createDOM(_config, _editor) {
40
- return domMap[this.__fields.blockType]({
41
- editor: _editor,
42
- editorConfig: _config,
43
- node: this
44
- });
45
- }
46
- exportDOM() {
47
- const element = document.createElement('span');
48
- element.classList.add('wrapper-block-container');
49
- const text = document.createTextNode(this.getTextContent());
50
- element.append(text);
51
- return {
52
- element
53
- };
54
- }
55
- exportJSON() {
56
- return {
57
- ...super.exportJSON(),
58
- type: 'wrapperBlock',
59
- fields: this.getFields(),
60
- version: 1
61
- };
62
- }
63
- extractWithChild(child, selection, destination) {
64
- if (!$isRangeSelection(selection)) {
65
- return false;
66
- }
67
- const anchorNode = selection.anchor.getNode();
68
- const focusNode = selection.focus.getNode();
69
- return this.isParentOf(anchorNode) && this.isParentOf(focusNode) && selection.getTextContent().length > 0;
70
- }
71
- getFields() {
72
- return this.getLatest().__fields;
73
- }
74
- insertNewAfter(selection, restoreSelection = true) {
75
- const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection);
76
- if ($isElementNode(element)) {
77
- const wrapperBlockNode = $createWrapperBlockNode(this.__fields);
78
- element.append(wrapperBlockNode);
79
- return wrapperBlockNode;
80
- }
81
- return null;
82
- }
83
- isInline() {
84
- return true;
85
- }
86
- setFields(fields) {
87
- const fieldsCopy = deepCopyObjectSimple(fields);
88
- const writable = this.getWritable();
89
- writable.__fields = fieldsCopy;
90
- }
91
- updateDOM(prevNode, anchor, config) {
92
- return true;
93
- }
94
- }
95
- function $createWrapperBlockNode(fields) {
96
- return new WrapperBlockNode({
97
- fields: {
98
- ...fields,
99
- id: fields?.id || new ObjectID.default().toHexString()
100
- }
101
- });
102
- }
103
- function $isWrapperBlockNode(node) {
104
- return node instanceof WrapperBlockNode;
105
- }
106
- return {
107
- $createWrapperBlockNode,
108
- $isWrapperBlockNode,
109
- WrapperBlockNode,
110
- WrapperBlockNodeInstance: null
111
- };
112
- }
113
- //# sourceMappingURL=WrapperBlockNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WrapperBlockNode.js","names":["ObjectID","$isElementNode","$isRangeSelection","ElementNode","deepCopyObjectSimple","getWrapperBlockNode","domMap","WrapperBlockNode","__fields","constructor","fields","key","clone","node","__key","getType","importDOM","importJSON","serializedNode","$createWrapperBlockNode","canBeEmpty","canInsertTextAfter","canInsertTextBefore","createDOM","_config","_editor","blockType","editor","editorConfig","exportDOM","element","document","createElement","classList","add","text","createTextNode","getTextContent","append","exportJSON","type","getFields","version","extractWithChild","child","selection","destination","anchorNode","anchor","getNode","focusNode","focus","isParentOf","length","getLatest","insertNewAfter","restoreSelection","getParentOrThrow","wrapperBlockNode","isInline","setFields","fieldsCopy","writable","getWritable","updateDOM","prevNode","config","id","default","toHexString","$isWrapperBlockNode","WrapperBlockNodeInstance"],"sources":["../../../src/features/blocks/WrapperBlockNode.ts"],"sourcesContent":["import type {\n BaseSelection,\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n ElementNode as ElementNodeType,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n RangeSelection,\n SerializedElementNode,\n SerializedLexicalNode,\n Spread,\n} from 'lexical'\nimport type { JsonObject } from 'payload'\n\nimport ObjectID from 'bson-objectid'\nimport { $isElementNode, $isRangeSelection, ElementNode } from 'lexical'\nimport { deepCopyObjectSimple } from 'payload/shared'\n\nexport type WrapperBlockFields<TWrapperBlockFields extends JsonObject = JsonObject> = {\n /** Block form data */\n [key: string]: any\n blockType: string\n id: string\n} & TWrapperBlockFields\n\nexport type SerializedWrapperBlockNode<\n T extends SerializedLexicalNode = SerializedLexicalNode,\n TBlockFields extends JsonObject = JsonObject,\n> = Spread<\n {\n fields: WrapperBlockFields<TBlockFields>\n type: 'wrapperBlock'\n },\n SerializedElementNode<T>\n>\n\nexport type CreateDOMFunction = (args: {\n editor: LexicalEditor\n editorConfig: EditorConfig\n node: WrapperBlockNodeType\n}) => HTMLElement\n\nexport type DOMMap = {\n [blockType: string]: CreateDOMFunction\n}\n\nexport function getWrapperBlockNode(domMap: DOMMap) {\n class WrapperBlockNode extends ElementNode {\n __fields: WrapperBlockFields\n\n constructor({ fields, key }: { fields: WrapperBlockFields; key?: NodeKey }) {\n super(key)\n this.__fields = fields\n }\n\n static clone(node: WrapperBlockNode): WrapperBlockNode {\n return new this({\n fields: node.__fields,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'wrapperBlock'\n }\n\n static importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static importJSON(serializedNode: SerializedWrapperBlockNode): WrapperBlockNode {\n const node = $createWrapperBlockNode(serializedNode.fields)\n return node\n }\n\n canBeEmpty(): false {\n return false\n }\n\n canInsertTextAfter(): false {\n return false\n }\n\n canInsertTextBefore(): false {\n return false\n }\n\n createDOM(_config: EditorConfig, _editor: LexicalEditor): HTMLElement {\n return domMap[this.__fields.blockType]({ editor: _editor, editorConfig: _config, node: this })\n }\n\n exportDOM(): DOMExportOutput {\n const element = document.createElement('span')\n element.classList.add('wrapper-block-container')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n exportJSON(): SerializedWrapperBlockNode {\n return {\n ...super.exportJSON(),\n type: 'wrapperBlock',\n fields: this.getFields(),\n version: 1,\n }\n }\n\n extractWithChild(\n child: LexicalNode,\n selection: BaseSelection,\n destination: 'clone' | 'html',\n ): boolean {\n if (!$isRangeSelection(selection)) {\n return false\n }\n\n const anchorNode = selection.anchor.getNode()\n const focusNode = selection.focus.getNode()\n\n return (\n this.isParentOf(anchorNode) &&\n this.isParentOf(focusNode) &&\n selection.getTextContent().length > 0\n )\n }\n\n getFields(): WrapperBlockFields {\n return this.getLatest().__fields\n }\n insertNewAfter(selection: RangeSelection, restoreSelection = true): ElementNodeType | null {\n const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection)\n if ($isElementNode(element)) {\n const wrapperBlockNode = $createWrapperBlockNode(this.__fields)\n element.append(wrapperBlockNode)\n return wrapperBlockNode\n }\n return null\n }\n\n isInline(): true {\n return true\n }\n\n setFields(fields: WrapperBlockFields): void {\n const fieldsCopy = deepCopyObjectSimple(fields)\n\n const writable = this.getWritable()\n writable.__fields = fieldsCopy\n }\n\n updateDOM(\n prevNode: WrapperBlockNode,\n anchor: HTMLAnchorElement,\n config: EditorConfig,\n ): boolean {\n return true\n }\n }\n\n function $createWrapperBlockNode(fields: Exclude<WrapperBlockFields, 'id'>): WrapperBlockNode {\n return new WrapperBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n })\n }\n\n function $isWrapperBlockNode(\n node: LexicalNode | null | typeof WrapperBlockNode | undefined,\n ): node is WrapperBlockNode {\n return node instanceof WrapperBlockNode\n }\n\n type WrapperBlockNodeInstance = InstanceType<typeof WrapperBlockNode>\n\n return {\n $createWrapperBlockNode,\n $isWrapperBlockNode,\n WrapperBlockNode,\n WrapperBlockNodeInstance: null as unknown as WrapperBlockNodeInstance,\n } as {\n $createWrapperBlockNode: (fields: WrapperBlockFields) => WrapperBlockNodeInstance\n $isWrapperBlockNode: (\n node: LexicalNode | null | typeof WrapperBlockNode | undefined,\n ) => node is WrapperBlockNode\n WrapperBlockNode: typeof WrapperBlockNode\n WrapperBlockNodeInstance: WrapperBlockNodeInstance\n }\n}\n\n//export type WrapperBlockNodeType = ReturnType<typeof getWrapperBlockNode>['WrapperBlockNode']\n\nexport type WrapperBlockNodeType = ReturnType<\n typeof getWrapperBlockNode\n>['WrapperBlockNodeInstance']\n\nexport type IsWrapperBlockNodeFn = ReturnType<typeof getWrapperBlockNode>['$isWrapperBlockNode']\n\nexport type CreateWrapperBlockNodeFn = ReturnType<\n typeof getWrapperBlockNode\n>['$createWrapperBlockNode']\n"],"mappings":"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","ignoreList":[]}
@@ -1,23 +0,0 @@
1
- import type { FormState } from 'payload';
2
- import React from 'react';
3
- import type { WrapperBlockFields, WrapperBlockNodeType } from '../../../../WrapperBlockNode.js';
4
- import type { AdditionalWrapperBlocksPluginArgs } from '../index.js';
5
- type WrapperBlockComponentContextType = {
6
- EditButton?: React.FC;
7
- formData: ({
8
- text: string;
9
- } & WrapperBlockFields) | undefined;
10
- initialState: false | FormState | undefined;
11
- Label?: React.FC;
12
- RemoveButton?: React.FC;
13
- WrapperBlockContainer?: React.FC<{
14
- children: React.ReactNode;
15
- }>;
16
- wrapperBlockNode?: WrapperBlockNodeType;
17
- };
18
- export declare const useWrapperBlockComponentContext: () => WrapperBlockComponentContextType;
19
- export declare function BlockEditor({ $createWrapperBlockNode, $isWrapperBlockNode, anchorElem, }: {
20
- anchorElem: HTMLElement;
21
- } & AdditionalWrapperBlocksPluginArgs): React.ReactNode;
22
- export {};
23
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/blocks/client/plugin/wrapperBlocks/BlockEditor/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAkC,SAAS,EAAE,MAAM,SAAS,CAAA;AA2BxE,OAAO,KAA2E,MAAM,OAAO,CAAA;AAG/F,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAC/F,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAA;AAYpE,KAAK,gCAAgC,GAAG;IACtC,UAAU,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;IACrB,QAAQ,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,kBAAkB,CAAC,GAAG,SAAS,CAAA;IAC7D,YAAY,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAA;IAC3C,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;IAChB,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;IACvB,qBAAqB,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,CAAC,CAAA;IAC/D,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;CACxC,CAAA;AAOD,eAAO,MAAM,+BAA+B,wCAAuD,CAAA;AAEnG,wBAAgB,WAAW,CAAC,EAC1B,uBAAuB,EACvB,mBAAmB,EACnB,UAAU,GACX,EAAE;IAAE,UAAU,EAAE,WAAW,CAAA;CAAE,GAAG,iCAAiC,GAAG,KAAK,CAAC,SAAS,CAqYnF"}
@@ -1,330 +0,0 @@
1
- 'use client';
2
-
3
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
4
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
5
- import { $findMatchingParent, mergeRegister } from '@lexical/utils';
6
- import { getTranslation } from '@payloadcms/translations';
7
- import { CloseMenuIcon, Drawer, EditDepthProvider, EditIcon, Form, formatDrawerSlug, FormSubmit, RenderFields, useEditDepth, useTranslation } from '@payloadcms/ui';
8
- import { $getSelection, $isLineBreakNode, $isRangeSelection, COMMAND_PRIORITY_HIGH, COMMAND_PRIORITY_LOW, KEY_ESCAPE_COMMAND, SELECTION_CHANGE_COMMAND } from 'lexical';
9
- import { reduceFieldsToValues } from 'payload/shared';
10
- import React, { createContext, useCallback, useEffect, useMemo, useRef, useState } from 'react';
11
- import { v4 as uuid } from 'uuid';
12
- import { useEditorConfigContext } from '../../../../../../lexical/config/client/EditorConfigProvider.js';
13
- import { getSelectedNode } from '../../../../../../lexical/utils/getSelectedNode.js';
14
- import { setFloatingElemPositionForLinkEditor } from '../../../../../../lexical/utils/setFloatingElemPositionForLinkEditor.js';
15
- import { useLexicalDrawer } from '../../../../../../utilities/fieldsDrawer/useLexicalDrawer.js';
16
- import { INSERT_WRAPPER_BLOCK_COMMAND, TOGGLE_WRAPPER_BLOCK_WITH_MODAL_COMMAND } from '../../commands.js';
17
- import { useLexicalFormState } from './useLexicalFormState.js';
18
- const WrapperBlockComponentContext = /*#__PURE__*/createContext({
19
- formData: undefined,
20
- initialState: false
21
- });
22
- export const useWrapperBlockComponentContext = () => {
23
- return React.useContext(WrapperBlockComponentContext);
24
- };
25
- export function BlockEditor({
26
- $createWrapperBlockNode,
27
- $isWrapperBlockNode,
28
- anchorElem
29
- }) {
30
- const [editor] = useLexicalComposerContext();
31
- const [wrapperBlockNode, setWrapperBlockNode] = useState();
32
- const editorRef = useRef(null);
33
- const [wrapperBlockComponent, setWrapperBlockComponent] = useState(null);
34
- const [wrapperBlockLabelComponent, setWrapperBlockLabelComponent] = useState(null);
35
- const [clientBlock, setClientBlock] = useState(null);
36
- const {
37
- fieldProps: {
38
- featureClientSchemaMap,
39
- permissions,
40
- schemaPath
41
- },
42
- uuid: uuidFromContext
43
- } = useEditorConfigContext();
44
- const [formData, setFormData] = useState();
45
- const {
46
- i18n,
47
- t
48
- } = useTranslation();
49
- const [schemaFieldsPath, setSchemaFieldsPath] = React.useState(null);
50
- const {
51
- initialState,
52
- loadInitialState,
53
- onFormChange
54
- } = useLexicalFormState({
55
- onReceiveRenderedFields: ({
56
- state
57
- }) => {
58
- setWrapperBlockComponent(state['_components']?.customComponents?.Block);
59
- setWrapperBlockLabelComponent(state['_components']?.customComponents?.BlockLabel);
60
- },
61
- schemaFieldsPath
62
- });
63
- const editDepth = useEditDepth();
64
- const [isWrapperBlockNode, setIsWrapperBlockNode] = useState(false);
65
- const [selectedNodes, setSelectedNodes] = useState([]);
66
- const drawerSlug = formatDrawerSlug({
67
- slug: `lexical-rich-text-wrapper-block-` + uuidFromContext,
68
- depth: editDepth
69
- });
70
- const {
71
- toggleDrawer
72
- } = useLexicalDrawer(drawerSlug);
73
- const hideBlockPopup = useCallback(() => {
74
- if (!isWrapperBlockNode) {
75
- return;
76
- }
77
- setIsWrapperBlockNode(false);
78
- if (editorRef && editorRef.current) {
79
- editorRef.current.style.opacity = '0';
80
- editorRef.current.style.transform = 'translate(-10000px, -10000px)';
81
- }
82
- setWrapperBlockNode(null);
83
- setWrapperBlockComponent(null);
84
- setWrapperBlockLabelComponent(null);
85
- setClientBlock(null);
86
- setSelectedNodes([]);
87
- setFormData(undefined);
88
- setSchemaFieldsPath(null);
89
- }, [isWrapperBlockNode]);
90
- const $updateBlockPopup = useCallback(() => {
91
- const selection = $getSelection();
92
- let selectedNodeDomRect;
93
- if (!$isRangeSelection(selection) || !selection) {
94
- void hideBlockPopup();
95
- return;
96
- }
97
- // Handle the data displayed in the popup & drawer when you click on a wrapper block
98
- const focusNode = getSelectedNode(selection);
99
- selectedNodeDomRect = editor.getElementByKey(focusNode.getKey())?.getBoundingClientRect();
100
- const focusWrapperBlockParent = $findMatchingParent(focusNode, $isWrapperBlockNode);
101
- // Prevent wrapper block modal from showing if selection spans further than the wrapper block: https://github.com/facebook/lexical/issues/4064
102
- const badNode = selection.getNodes().filter(node => !$isLineBreakNode(node)).find(node_0 => {
103
- const wrapperBlockNode_0 = $findMatchingParent(node_0, $isWrapperBlockNode);
104
- return focusWrapperBlockParent && !focusWrapperBlockParent.is(wrapperBlockNode_0) || wrapperBlockNode_0 && !wrapperBlockNode_0.is(focusWrapperBlockParent);
105
- });
106
- if (focusWrapperBlockParent == null || badNode) {
107
- hideBlockPopup();
108
- return;
109
- }
110
- const editorElem = editorRef.current;
111
- const nativeSelection = window.getSelection();
112
- const {
113
- activeElement
114
- } = document;
115
- if (editorElem === null) {
116
- return;
117
- }
118
- const rootElement = editor.getRootElement();
119
- if (nativeSelection !== null && rootElement !== null && rootElement.contains(nativeSelection.anchorNode)) {
120
- if (!selectedNodeDomRect) {
121
- // Get the DOM rect of the selected node using the native selection. This sometimes produces the wrong
122
- // result, which is why we use lexical's selection preferably.
123
- selectedNodeDomRect = nativeSelection.getRangeAt(0).getBoundingClientRect();
124
- }
125
- if (selectedNodeDomRect != null) {
126
- selectedNodeDomRect.y += 40;
127
- setFloatingElemPositionForLinkEditor(selectedNodeDomRect, editorElem, anchorElem);
128
- const fields = focusWrapperBlockParent.getFields();
129
- // Initial state:
130
- const data = {
131
- ...fields,
132
- text: focusWrapperBlockParent.getTextContent()
133
- };
134
- const schemaFieldsPath_ = `${schemaPath}.lexical_internal_feature.blocks.lexical_wrapper_blocks.${data.blockType}.fields`;
135
- if (schemaFieldsPath_ === schemaFieldsPath && data.id === formData?.id) {
136
- return false;
137
- }
138
- setWrapperBlockNode(focusWrapperBlockParent);
139
- const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_wrapper_blocks.${data.blockType}`;
140
- setSchemaFieldsPath(schemaFieldsPath_);
141
- setFormData(data);
142
- setIsWrapperBlockNode(true);
143
- setSelectedNodes(selection ? selection?.getNodes() : []);
144
- const clientSchemaMap = featureClientSchemaMap['blocks'];
145
- const blocksField = clientSchemaMap[componentMapRenderedBlockPath][0];
146
- const clientBlock_0 = blocksField.blocks[0];
147
- setClientBlock(clientBlock_0);
148
- loadInitialState({
149
- formData: data,
150
- schemaFieldsPath: schemaFieldsPath_
151
- });
152
- }
153
- } else if (activeElement == null || activeElement.className !== 'wraper-block-popup__content') {
154
- hideBlockPopup();
155
- }
156
- return true;
157
- }, [editor, $isWrapperBlockNode, hideBlockPopup, anchorElem, schemaPath, schemaFieldsPath, formData?.id, featureClientSchemaMap, loadInitialState]);
158
- useEffect(() => {
159
- return mergeRegister(editor.registerCommand(TOGGLE_WRAPPER_BLOCK_WITH_MODAL_COMMAND, payload => {
160
- if (!payload) {
161
- return false;
162
- }
163
- editor.dispatchCommand(INSERT_WRAPPER_BLOCK_COMMAND, payload.fields);
164
- // Now, open the modal
165
- $updateBlockPopup();
166
- toggleDrawer();
167
- return true;
168
- }, COMMAND_PRIORITY_LOW));
169
- }, [editor, $updateBlockPopup, toggleDrawer, drawerSlug]);
170
- useEffect(() => {
171
- const scrollerElem = anchorElem.parentElement;
172
- const update = () => {
173
- editor.getEditorState().read(() => {
174
- void $updateBlockPopup();
175
- });
176
- };
177
- window.addEventListener('resize', update);
178
- if (scrollerElem != null) {
179
- scrollerElem.addEventListener('scroll', update);
180
- }
181
- return () => {
182
- window.removeEventListener('resize', update);
183
- if (scrollerElem != null) {
184
- scrollerElem.removeEventListener('scroll', update);
185
- }
186
- };
187
- }, [anchorElem.parentElement, editor, $updateBlockPopup]);
188
- useEffect(() => {
189
- return mergeRegister(editor.registerUpdateListener(({
190
- editorState
191
- }) => {
192
- editorState.read(() => {
193
- void $updateBlockPopup();
194
- });
195
- }), editor.registerCommand(SELECTION_CHANGE_COMMAND, () => {
196
- void $updateBlockPopup();
197
- return true;
198
- }, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_ESCAPE_COMMAND, () => {
199
- if (isWrapperBlockNode) {
200
- hideBlockPopup();
201
- return true;
202
- }
203
- return false;
204
- }, COMMAND_PRIORITY_HIGH));
205
- }, [editor, $updateBlockPopup, isWrapperBlockNode, hideBlockPopup]);
206
- /**
207
- * HANDLE FORM SUBMIT
208
- */
209
- const onFormSubmit = useCallback(formState => {
210
- const newData = reduceFieldsToValues(formState);
211
- newData.blockType = formData?.blockType;
212
- editor.update(() => {
213
- if (wrapperBlockNode && $isWrapperBlockNode(wrapperBlockNode)) {
214
- wrapperBlockNode.setFields(newData);
215
- }
216
- });
217
- }, [formData?.blockType, editor, wrapperBlockNode, $isWrapperBlockNode]);
218
- const blockDisplayName = clientBlock?.labels?.singular ? getTranslation(clientBlock.labels.singular, i18n) : clientBlock?.slug;
219
- const EditButton = useMemo(() => () => /*#__PURE__*/_jsx("button", {
220
- "aria-label": "Edit Wrapper Block",
221
- className: "wrapper-block-popup__edit",
222
- onClick: () => {
223
- toggleDrawer();
224
- },
225
- onMouseDown: event => {
226
- event.preventDefault();
227
- },
228
- tabIndex: 0,
229
- type: "button",
230
- children: /*#__PURE__*/_jsx(EditIcon, {})
231
- }), [toggleDrawer]);
232
- const RemoveButton = useMemo(() => () => /*#__PURE__*/_jsx("button", {
233
- "aria-label": "Remove Wrapper Block",
234
- className: "wrapper-block-popup__remove",
235
- onClick: () => {
236
- editor.dispatchCommand(INSERT_WRAPPER_BLOCK_COMMAND, null);
237
- },
238
- onMouseDown: event_0 => {
239
- event_0.preventDefault();
240
- },
241
- tabIndex: 0,
242
- type: "button",
243
- children: /*#__PURE__*/_jsx(CloseMenuIcon, {})
244
- }), [editor]);
245
- const Label = useMemo(() => {
246
- if (wrapperBlockLabelComponent) {
247
- return () => wrapperBlockLabelComponent;
248
- } else {
249
- return () => blockDisplayName;
250
- }
251
- }, [blockDisplayName, wrapperBlockLabelComponent]);
252
- const WrapperBlockContainer = useMemo(() => {
253
- return ({
254
- children
255
- }) => {
256
- return /*#__PURE__*/_jsx("div", {
257
- className: "wrapper-block-popup__wrapper",
258
- children: /*#__PURE__*/_jsx("div", {
259
- className: "wrapper-block-popup__content",
260
- children: children
261
- })
262
- });
263
- };
264
- }, []);
265
- return /*#__PURE__*/_jsxs(Form, {
266
- beforeSubmit: [async ({
267
- formState: formState_0
268
- }) => {
269
- // This is only called when form is submitted from drawer
270
- return await onFormChange({
271
- formState: formState_0,
272
- submit: true
273
- });
274
- }],
275
- disableValidationOnSubmit: true,
276
- fields: clientBlock?.fields ?? [],
277
- initialState: initialState ?? {},
278
- onChange: [onFormChange],
279
- onSubmit: formState_1 => {
280
- onFormSubmit(formState_1);
281
- toggleDrawer();
282
- },
283
- uuid: uuid(),
284
- children: [/*#__PURE__*/_jsx("div", {
285
- className: "wrapper-block-popup",
286
- ref: editorRef,
287
- children: wrapperBlockComponent ? /*#__PURE__*/_jsx(WrapperBlockComponentContext.Provider, {
288
- value: {
289
- EditButton,
290
- formData,
291
- initialState,
292
- Label,
293
- RemoveButton,
294
- WrapperBlockContainer,
295
- wrapperBlockNode: wrapperBlockNode
296
- },
297
- children: wrapperBlockComponent
298
- }) : /*#__PURE__*/_jsxs(WrapperBlockContainer, {
299
- children: [/*#__PURE__*/_jsx(Label, {}), editor.isEditable() && /*#__PURE__*/_jsxs(React.Fragment, {
300
- children: [/*#__PURE__*/_jsx(EditButton, {}), /*#__PURE__*/_jsx(RemoveButton, {})]
301
- })]
302
- })
303
- }), /*#__PURE__*/_jsx(EditDepthProvider, {
304
- children: /*#__PURE__*/_jsx(Drawer, {
305
- className: '',
306
- slug: drawerSlug,
307
- title: t(`lexical:blocks:inlineBlocks:${formData?.id ? 'edit' : 'create'}`, {
308
- label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label')
309
- }),
310
- children: initialState && clientBlock && schemaFieldsPath ? /*#__PURE__*/_jsxs(_Fragment, {
311
- children: [/*#__PURE__*/_jsx(RenderFields, {
312
- fields: clientBlock.fields,
313
- forceRender: true,
314
- parentIndexPath: "",
315
- parentPath: "" // See Blocks feature path for details as for why this is empty
316
- ,
317
-
318
- parentSchemaPath: schemaFieldsPath,
319
- permissions: permissions,
320
- readOnly: false
321
- }), /*#__PURE__*/_jsx(FormSubmit, {
322
- programmaticSubmit: true,
323
- children: t('fields:saveChanges')
324
- })]
325
- }) : null
326
- })
327
- })]
328
- });
329
- }
330
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["useLexicalComposerContext","$findMatchingParent","mergeRegister","getTranslation","CloseMenuIcon","Drawer","EditDepthProvider","EditIcon","Form","formatDrawerSlug","FormSubmit","RenderFields","useEditDepth","useTranslation","$getSelection","$isLineBreakNode","$isRangeSelection","COMMAND_PRIORITY_HIGH","COMMAND_PRIORITY_LOW","KEY_ESCAPE_COMMAND","SELECTION_CHANGE_COMMAND","reduceFieldsToValues","React","createContext","useCallback","useEffect","useMemo","useRef","useState","v4","uuid","useEditorConfigContext","getSelectedNode","setFloatingElemPositionForLinkEditor","useLexicalDrawer","INSERT_WRAPPER_BLOCK_COMMAND","TOGGLE_WRAPPER_BLOCK_WITH_MODAL_COMMAND","useLexicalFormState","WrapperBlockComponentContext","formData","undefined","initialState","useWrapperBlockComponentContext","useContext","BlockEditor","$createWrapperBlockNode","$isWrapperBlockNode","anchorElem","editor","wrapperBlockNode","setWrapperBlockNode","editorRef","wrapperBlockComponent","setWrapperBlockComponent","wrapperBlockLabelComponent","setWrapperBlockLabelComponent","clientBlock","setClientBlock","fieldProps","featureClientSchemaMap","permissions","schemaPath","uuidFromContext","setFormData","i18n","t","schemaFieldsPath","setSchemaFieldsPath","loadInitialState","onFormChange","onReceiveRenderedFields","state","customComponents","Block","BlockLabel","editDepth","isWrapperBlockNode","setIsWrapperBlockNode","selectedNodes","setSelectedNodes","drawerSlug","slug","depth","toggleDrawer","hideBlockPopup","current","style","opacity","transform","$updateBlockPopup","selection","selectedNodeDomRect","focusNode","getElementByKey","getKey","getBoundingClientRect","focusWrapperBlockParent","badNode","getNodes","filter","node","find","is","editorElem","nativeSelection","window","getSelection","activeElement","document","rootElement","getRootElement","contains","anchorNode","getRangeAt","y","fields","getFields","data","text","getTextContent","schemaFieldsPath_","blockType","id","componentMapRenderedBlockPath","clientSchemaMap","blocksField","blocks","className","registerCommand","payload","dispatchCommand","scrollerElem","parentElement","update","getEditorState","read","addEventListener","removeEventListener","registerUpdateListener","editorState","onFormSubmit","formState","newData","setFields","blockDisplayName","labels","singular","EditButton","_jsx","onClick","onMouseDown","event","preventDefault","tabIndex","type","RemoveButton","Label","WrapperBlockContainer","children","_jsxs","beforeSubmit","submit","disableValidationOnSubmit","onChange","onSubmit","ref","Provider","value","isEditable","Fragment","title","label","_Fragment","forceRender","parentIndexPath","parentPath","parentSchemaPath","readOnly","programmaticSubmit"],"sources":["../../../../../../../src/features/blocks/client/plugin/wrapperBlocks/BlockEditor/index.tsx"],"sourcesContent":["'use client'\nimport type { LexicalNode } from 'lexical'\nimport type { BlocksFieldClient, ClientBlock, FormState } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n CloseMenuIcon,\n Drawer,\n EditDepthProvider,\n EditIcon,\n Form,\n formatDrawerSlug,\n FormSubmit,\n RenderFields,\n useEditDepth,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n $getSelection,\n $isLineBreakNode,\n $isRangeSelection,\n COMMAND_PRIORITY_HIGH,\n COMMAND_PRIORITY_LOW,\n KEY_ESCAPE_COMMAND,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport { reduceFieldsToValues } from 'payload/shared'\nimport React, { createContext, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nimport type { WrapperBlockFields, WrapperBlockNodeType } from '../../../../WrapperBlockNode.js'\nimport type { AdditionalWrapperBlocksPluginArgs } from '../index.js'\n\nimport { useEditorConfigContext } from '../../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { getSelectedNode } from '../../../../../../lexical/utils/getSelectedNode.js'\nimport { setFloatingElemPositionForLinkEditor } from '../../../../../../lexical/utils/setFloatingElemPositionForLinkEditor.js'\nimport { useLexicalDrawer } from '../../../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport {\n INSERT_WRAPPER_BLOCK_COMMAND,\n TOGGLE_WRAPPER_BLOCK_WITH_MODAL_COMMAND,\n} from '../../commands.js'\nimport { useLexicalFormState } from './useLexicalFormState.js'\n\ntype WrapperBlockComponentContextType = {\n EditButton?: React.FC\n formData: ({ text: string } & WrapperBlockFields) | undefined\n initialState: false | FormState | undefined\n Label?: React.FC\n RemoveButton?: React.FC\n WrapperBlockContainer?: React.FC<{ children: React.ReactNode }>\n wrapperBlockNode?: WrapperBlockNodeType\n}\n\nconst WrapperBlockComponentContext = createContext<WrapperBlockComponentContextType>({\n formData: undefined,\n initialState: false,\n})\n\nexport const useWrapperBlockComponentContext = () => React.useContext(WrapperBlockComponentContext)\n\nexport function BlockEditor({\n $createWrapperBlockNode,\n $isWrapperBlockNode,\n anchorElem,\n}: { anchorElem: HTMLElement } & AdditionalWrapperBlocksPluginArgs): React.ReactNode {\n const [editor] = useLexicalComposerContext()\n const [wrapperBlockNode, setWrapperBlockNode] = useState<null | WrapperBlockNodeType>()\n\n const editorRef = useRef<HTMLDivElement | null>(null)\n const [wrapperBlockComponent, setWrapperBlockComponent] = useState<null | React.ReactNode>(null)\n const [wrapperBlockLabelComponent, setWrapperBlockLabelComponent] =\n useState<null | React.ReactNode>(null)\n const [clientBlock, setClientBlock] = useState<ClientBlock | null>(null)\n\n const {\n fieldProps: { featureClientSchemaMap, permissions, schemaPath },\n uuid: uuidFromContext,\n } = useEditorConfigContext()\n\n const [formData, setFormData] = useState<({ text: string } & WrapperBlockFields) | undefined>()\n const { i18n, t } = useTranslation<object, string>()\n const [schemaFieldsPath, setSchemaFieldsPath] = React.useState<null | string>(null)\n\n const { initialState, loadInitialState, onFormChange } = useLexicalFormState({\n onReceiveRenderedFields: ({ state }) => {\n setWrapperBlockComponent(state['_components']?.customComponents?.Block)\n setWrapperBlockLabelComponent(state['_components']?.customComponents?.BlockLabel)\n },\n schemaFieldsPath,\n })\n\n const editDepth = useEditDepth()\n const [isWrapperBlockNode, setIsWrapperBlockNode] = useState(false)\n const [selectedNodes, setSelectedNodes] = useState<LexicalNode[]>([])\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-rich-text-wrapper-block-` + uuidFromContext,\n depth: editDepth,\n })\n\n const { toggleDrawer } = useLexicalDrawer(drawerSlug)\n\n const hideBlockPopup = useCallback(() => {\n if (!isWrapperBlockNode) {\n return\n }\n setIsWrapperBlockNode(false)\n if (editorRef && editorRef.current) {\n editorRef.current.style.opacity = '0'\n editorRef.current.style.transform = 'translate(-10000px, -10000px)'\n }\n setWrapperBlockNode(null)\n setWrapperBlockComponent(null)\n setWrapperBlockLabelComponent(null)\n setClientBlock(null)\n setSelectedNodes([])\n setFormData(undefined)\n setSchemaFieldsPath(null)\n }, [isWrapperBlockNode])\n\n const $updateBlockPopup = useCallback(() => {\n const selection = $getSelection()\n let selectedNodeDomRect: DOMRect | undefined\n\n if (!$isRangeSelection(selection) || !selection) {\n void hideBlockPopup()\n return\n }\n\n // Handle the data displayed in the popup & drawer when you click on a wrapper block\n const focusNode = getSelectedNode(selection)\n selectedNodeDomRect = editor.getElementByKey(focusNode.getKey())?.getBoundingClientRect()\n const focusWrapperBlockParent = $findMatchingParent(focusNode, $isWrapperBlockNode)\n\n // Prevent wrapper block modal from showing if selection spans further than the wrapper block: https://github.com/facebook/lexical/issues/4064\n const badNode = selection\n .getNodes()\n .filter((node) => !$isLineBreakNode(node))\n .find((node) => {\n const wrapperBlockNode = $findMatchingParent(node, $isWrapperBlockNode)\n return (\n (focusWrapperBlockParent && !focusWrapperBlockParent.is(wrapperBlockNode)) ||\n (wrapperBlockNode && !wrapperBlockNode.is(focusWrapperBlockParent))\n )\n })\n\n if (focusWrapperBlockParent == null || badNode) {\n hideBlockPopup()\n return\n }\n\n const editorElem = editorRef.current\n const nativeSelection = window.getSelection()\n const { activeElement } = document\n\n if (editorElem === null) {\n return\n }\n\n const rootElement = editor.getRootElement()\n\n if (\n nativeSelection !== null &&\n rootElement !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n if (!selectedNodeDomRect) {\n // Get the DOM rect of the selected node using the native selection. This sometimes produces the wrong\n // result, which is why we use lexical's selection preferably.\n selectedNodeDomRect = nativeSelection.getRangeAt(0).getBoundingClientRect()\n }\n\n if (selectedNodeDomRect != null) {\n selectedNodeDomRect.y += 40\n setFloatingElemPositionForLinkEditor(selectedNodeDomRect, editorElem, anchorElem)\n\n const fields = focusWrapperBlockParent.getFields()\n\n // Initial state:\n const data: { text: string } & WrapperBlockFields = {\n ...fields,\n text: focusWrapperBlockParent.getTextContent(),\n }\n const schemaFieldsPath_ = `${schemaPath}.lexical_internal_feature.blocks.lexical_wrapper_blocks.${data.blockType}.fields`\n\n if (schemaFieldsPath_ === schemaFieldsPath && data.id === formData?.id) {\n return false\n }\n\n setWrapperBlockNode(focusWrapperBlockParent)\n\n const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_wrapper_blocks.${data.blockType}`\n\n setSchemaFieldsPath(schemaFieldsPath_)\n\n setFormData(data)\n setIsWrapperBlockNode(true)\n setSelectedNodes(selection ? selection?.getNodes() : [])\n\n const clientSchemaMap = featureClientSchemaMap['blocks']\n\n const blocksField: BlocksFieldClient = clientSchemaMap[\n componentMapRenderedBlockPath\n ][0] as BlocksFieldClient\n\n const clientBlock = blocksField.blocks[0]\n setClientBlock(clientBlock)\n\n loadInitialState({ formData: data, schemaFieldsPath: schemaFieldsPath_ })\n }\n } else if (activeElement == null || activeElement.className !== 'wraper-block-popup__content') {\n hideBlockPopup()\n }\n\n return true\n }, [\n editor,\n $isWrapperBlockNode,\n hideBlockPopup,\n anchorElem,\n schemaPath,\n schemaFieldsPath,\n formData?.id,\n featureClientSchemaMap,\n loadInitialState,\n ])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_WRAPPER_BLOCK_WITH_MODAL_COMMAND,\n (payload) => {\n if (!payload) {\n return false\n }\n editor.dispatchCommand(INSERT_WRAPPER_BLOCK_COMMAND, payload.fields)\n\n // Now, open the modal\n $updateBlockPopup()\n toggleDrawer()\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateBlockPopup, toggleDrawer, drawerSlug])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = (): void => {\n editor.getEditorState().read(() => {\n void $updateBlockPopup()\n })\n }\n\n window.addEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.addEventListener('scroll', update)\n }\n\n return () => {\n window.removeEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.removeEventListener('scroll', update)\n }\n }\n }, [anchorElem.parentElement, editor, $updateBlockPopup])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n void $updateBlockPopup()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n void $updateBlockPopup()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ESCAPE_COMMAND,\n () => {\n if (isWrapperBlockNode) {\n hideBlockPopup()\n\n return true\n }\n return false\n },\n COMMAND_PRIORITY_HIGH,\n ),\n )\n }, [editor, $updateBlockPopup, isWrapperBlockNode, hideBlockPopup])\n\n /**\n * HANDLE FORM SUBMIT\n */\n const onFormSubmit = useCallback(\n (formState: FormState) => {\n const newData: any = reduceFieldsToValues(formState)\n newData.blockType = formData?.blockType\n editor.update(() => {\n if (wrapperBlockNode && $isWrapperBlockNode(wrapperBlockNode)) {\n wrapperBlockNode.setFields(newData)\n }\n })\n },\n [formData?.blockType, editor, wrapperBlockNode, $isWrapperBlockNode],\n )\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug\n\n const EditButton = useMemo(\n () => () => (\n <button\n aria-label=\"Edit Wrapper Block\"\n className=\"wrapper-block-popup__edit\"\n onClick={() => {\n toggleDrawer()\n }}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n tabIndex={0}\n type=\"button\"\n >\n <EditIcon />\n </button>\n ),\n [toggleDrawer],\n )\n\n const RemoveButton = useMemo(\n () => () => (\n <button\n aria-label=\"Remove Wrapper Block\"\n className=\"wrapper-block-popup__remove\"\n onClick={() => {\n editor.dispatchCommand(INSERT_WRAPPER_BLOCK_COMMAND, null)\n }}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n tabIndex={0}\n type=\"button\"\n >\n <CloseMenuIcon />\n </button>\n ),\n [editor],\n )\n\n const Label = useMemo(() => {\n if (wrapperBlockLabelComponent) {\n return () => wrapperBlockLabelComponent\n } else {\n return () => blockDisplayName\n }\n }, [blockDisplayName, wrapperBlockLabelComponent])\n\n const WrapperBlockContainer = useMemo(() => {\n return ({ children }: { children: React.ReactNode }) => {\n return (\n <div className=\"wrapper-block-popup__wrapper\">\n <div className=\"wrapper-block-popup__content\">{children}</div>\n </div>\n )\n }\n }, [])\n\n return (\n <Form\n beforeSubmit={[\n async ({ formState }) => {\n // This is only called when form is submitted from drawer\n return await onFormChange({ formState, submit: true })\n },\n ]}\n disableValidationOnSubmit\n fields={clientBlock?.fields ?? []}\n initialState={initialState ?? {}}\n onChange={[onFormChange]}\n onSubmit={(formState) => {\n onFormSubmit(formState)\n toggleDrawer()\n }}\n uuid={uuid()}\n >\n <div className=\"wrapper-block-popup\" ref={editorRef}>\n {wrapperBlockComponent ? (\n <WrapperBlockComponentContext.Provider\n value={{\n EditButton,\n formData,\n initialState,\n Label,\n RemoveButton,\n WrapperBlockContainer,\n wrapperBlockNode: wrapperBlockNode!,\n }}\n >\n {wrapperBlockComponent}\n </WrapperBlockComponentContext.Provider>\n ) : (\n <WrapperBlockContainer>\n <Label />\n {editor.isEditable() && (\n <React.Fragment>\n <EditButton />\n <RemoveButton />\n </React.Fragment>\n )}\n </WrapperBlockContainer>\n )}\n </div>\n\n <EditDepthProvider>\n <Drawer\n className={''}\n slug={drawerSlug}\n title={t(`lexical:blocks:inlineBlocks:${formData?.id ? 'edit' : 'create'}`, {\n label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label'),\n })}\n >\n {initialState && clientBlock && schemaFieldsPath ? (\n <>\n <RenderFields\n fields={clientBlock.fields}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\" // See Blocks feature path for details as for why this is empty\n parentSchemaPath={schemaFieldsPath}\n permissions={permissions}\n readOnly={false}\n />\n <FormSubmit programmaticSubmit={true}>{t('fields:saveChanges')}</FormSubmit>\n </>\n ) : null}\n </Drawer>\n </EditDepthProvider>\n </Form>\n )\n}\n"],"mappings":"AAAA;;;AAIA,SAASA,yBAAyB,QAAQ;AAC1C,SAASC,mBAAmB,EAAEC,aAAa,QAAQ;AACnD,SAASC,cAAc,QAAQ;AAC/B,SACEC,aAAa,EACbC,MAAM,EACNC,iBAAiB,EACjBC,QAAQ,EACRC,IAAI,EACJC,gBAAgB,EAChBC,UAAU,EACVC,YAAY,EACZC,YAAY,EACZC,cAAc,QACT;AACP,SACEC,aAAa,EACbC,gBAAgB,EAChBC,iBAAiB,EACjBC,qBAAqB,EACrBC,oBAAoB,EACpBC,kBAAkB,EAClBC,wBAAwB,QACnB;AACP,SAASC,oBAAoB,QAAQ;AACrC,OAAOC,KAAA,IAASC,aAAa,EAAEC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AACxF,SAASC,EAAA,IAAMC,IAAI,QAAQ;AAK3B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,eAAe,QAAQ;AAChC,SAASC,oCAAoC,QAAQ;AACrD,SAASC,gBAAgB,QAAQ;AACjC,SACEC,4BAA4B,EAC5BC,uCAAuC,QAClC;AACP,SAASC,mBAAmB,QAAQ;AAYpC,MAAMC,4BAAA,gBAA+Bf,aAAA,CAAgD;EACnFgB,QAAA,EAAUC,SAAA;EACVC,YAAA,EAAc;AAChB;AAEA,OAAO,MAAMC,+BAAA,GAAkCA,CAAA;EAAA,OAAMpB,KAAA,CAAAqB,UAAA,CAAAL,4BAAiB;AAAA;AAEtE,OAAO,SAASM,YAAY;EAC1BC,uBAAuB;EACvBC,mBAAmB;EACnBC;AAAU,CACsD;EAChE,MAAM,CAACC,MAAA,CAAO,GAAGhD,yBAAA;EACjB,MAAM,CAACiD,gBAAA,EAAkBC,mBAAA,CAAoB,GAAGtB,QAAA;EAEhD,MAAMuB,SAAA,GAAYxB,MAAA,CAA8B;EAChD,MAAM,CAACyB,qBAAA,EAAuBC,wBAAA,CAAyB,GAAGzB,QAAA,CAAiC;EAC3F,MAAM,CAAC0B,0BAAA,EAA4BC,6BAAA,CAA8B,GAC/D3B,QAAA,CAAiC;EACnC,MAAM,CAAC4B,WAAA,EAAaC,cAAA,CAAe,GAAG7B,QAAA,CAA6B;EAEnE,MAAM;IACJ8B,UAAA,EAAY;MAAEC,sBAAsB;MAAEC,WAAW;MAAEC;IAAU,CAAE;IAC/D/B,IAAA,EAAMgC;EAAe,CACtB,GAAG/B,sBAAA;EAEJ,MAAM,CAACQ,QAAA,EAAUwB,WAAA,CAAY,GAAGnC,QAAA;EAChC,MAAM;IAAEoC,IAAI;IAAEC;EAAC,CAAE,GAAGpD,cAAA;EACpB,MAAM,CAACqD,gBAAA,EAAkBC,mBAAA,CAAoB,GAAG7C,KAAA,CAAMM,QAAQ,CAAgB;EAE9E,MAAM;IAAEa,YAAY;IAAE2B,gBAAgB;IAAEC;EAAY,CAAE,GAAGhC,mBAAA,CAAoB;IAC3EiC,uBAAA,EAAyBA,CAAC;MAAEC;IAAK,CAAE;MACjClB,wBAAA,CAAyBkB,KAAK,CAAC,cAAc,EAAEC,gBAAA,EAAkBC,KAAA;MACjElB,6BAAA,CAA8BgB,KAAK,CAAC,cAAc,EAAEC,gBAAA,EAAkBE,UAAA;IACxE;IACAR;EACF;EAEA,MAAMS,SAAA,GAAY/D,YAAA;EAClB,MAAM,CAACgE,kBAAA,EAAoBC,qBAAA,CAAsB,GAAGjD,QAAA,CAAS;EAC7D,MAAM,CAACkD,aAAA,EAAeC,gBAAA,CAAiB,GAAGnD,QAAA,CAAwB,EAAE;EAEpE,MAAMoD,UAAA,GAAavE,gBAAA,CAAiB;IAClCwE,IAAA,EAAM,kCAAkC,GAAGnB,eAAA;IAC3CoB,KAAA,EAAOP;EACT;EAEA,MAAM;IAAEQ;EAAY,CAAE,GAAGjD,gBAAA,CAAiB8C,UAAA;EAE1C,MAAMI,cAAA,GAAiB5D,WAAA,CAAY;IACjC,IAAI,CAACoD,kBAAA,EAAoB;MACvB;IACF;IACAC,qBAAA,CAAsB;IACtB,IAAI1B,SAAA,IAAaA,SAAA,CAAUkC,OAAO,EAAE;MAClClC,SAAA,CAAUkC,OAAO,CAACC,KAAK,CAACC,OAAO,GAAG;MAClCpC,SAAA,CAAUkC,OAAO,CAACC,KAAK,CAACE,SAAS,GAAG;IACtC;IACAtC,mBAAA,CAAoB;IACpBG,wBAAA,CAAyB;IACzBE,6BAAA,CAA8B;IAC9BE,cAAA,CAAe;IACfsB,gBAAA,CAAiB,EAAE;IACnBhB,WAAA,CAAYvB,SAAA;IACZ2B,mBAAA,CAAoB;EACtB,GAAG,CAACS,kBAAA,CAAmB;EAEvB,MAAMa,iBAAA,GAAoBjE,WAAA,CAAY;IACpC,MAAMkE,SAAA,GAAY5E,aAAA;IAClB,IAAI6E,mBAAA;IAEJ,IAAI,CAAC3E,iBAAA,CAAkB0E,SAAA,KAAc,CAACA,SAAA,EAAW;MAC/C,KAAKN,cAAA;MACL;IACF;IAEA;IACA,MAAMQ,SAAA,GAAY5D,eAAA,CAAgB0D,SAAA;IAClCC,mBAAA,GAAsB3C,MAAA,CAAO6C,eAAe,CAACD,SAAA,CAAUE,MAAM,KAAKC,qBAAA;IAClE,MAAMC,uBAAA,GAA0B/F,mBAAA,CAAoB2F,SAAA,EAAW9C,mBAAA;IAE/D;IACA,MAAMmD,OAAA,GAAUP,SAAA,CACbQ,QAAQ,GACRC,MAAM,CAAEC,IAAA,IAAS,CAACrF,gBAAA,CAAiBqF,IAAA,GACnCC,IAAI,CAAED,MAAA;MACL,MAAMnD,kBAAA,GAAmBhD,mBAAA,CAAoBmG,MAAA,EAAMtD,mBAAA;MACnD,OACEkD,uBAAC,IAA2B,CAACA,uBAAA,CAAwBM,EAAE,CAACrD,kBAAA,KACvDA,kBAAA,IAAoB,CAACA,kBAAA,CAAiBqD,EAAE,CAACN,uBAAA;IAE9C;IAEF,IAAIA,uBAAA,IAA2B,QAAQC,OAAA,EAAS;MAC9Cb,cAAA;MACA;IACF;IAEA,MAAMmB,UAAA,GAAapD,SAAA,CAAUkC,OAAO;IACpC,MAAMmB,eAAA,GAAkBC,MAAA,CAAOC,YAAY;IAC3C,MAAM;MAAEC;IAAa,CAAE,GAAGC,QAAA;IAE1B,IAAIL,UAAA,KAAe,MAAM;MACvB;IACF;IAEA,MAAMM,WAAA,GAAc7D,MAAA,CAAO8D,cAAc;IAEzC,IACEN,eAAA,KAAoB,QACpBK,WAAA,KAAgB,QAChBA,WAAA,CAAYE,QAAQ,CAACP,eAAA,CAAgBQ,UAAU,GAC/C;MACA,IAAI,CAACrB,mBAAA,EAAqB;QACxB;QACA;QACAA,mBAAA,GAAsBa,eAAA,CAAgBS,UAAU,CAAC,GAAGlB,qBAAqB;MAC3E;MAEA,IAAIJ,mBAAA,IAAuB,MAAM;QAC/BA,mBAAA,CAAoBuB,CAAC,IAAI;QACzBjF,oCAAA,CAAqC0D,mBAAA,EAAqBY,UAAA,EAAYxD,UAAA;QAEtE,MAAMoE,MAAA,GAASnB,uBAAA,CAAwBoB,SAAS;QAEhD;QACA,MAAMC,IAAA,GAA8C;UAClD,GAAGF,MAAM;UACTG,IAAA,EAAMtB,uBAAA,CAAwBuB,cAAc;QAC9C;QACA,MAAMC,iBAAA,GAAoB,GAAG3D,UAAA,2DAAqEwD,IAAA,CAAKI,SAAS,SAAS;QAEzH,IAAID,iBAAA,KAAsBtD,gBAAA,IAAoBmD,IAAA,CAAKK,EAAE,KAAKnF,QAAA,EAAUmF,EAAA,EAAI;UACtE,OAAO;QACT;QAEAxE,mBAAA,CAAoB8C,uBAAA;QAEpB,MAAM2B,6BAAA,GAAgC,GAAG9D,UAAA,2DAAqEwD,IAAA,CAAKI,SAAS,EAAE;QAE9HtD,mBAAA,CAAoBqD,iBAAA;QAEpBzD,WAAA,CAAYsD,IAAA;QACZxC,qBAAA,CAAsB;QACtBE,gBAAA,CAAiBW,SAAA,GAAYA,SAAA,EAAWQ,QAAA,KAAa,EAAE;QAEvD,MAAM0B,eAAA,GAAkBjE,sBAAsB,CAAC,SAAS;QAExD,MAAMkE,WAAA,GAAiCD,eAAe,CACpDD,6BAAA,CACD,CAAC,EAAE;QAEJ,MAAMnE,aAAA,GAAcqE,WAAA,CAAYC,MAAM,CAAC,EAAE;QACzCrE,cAAA,CAAeD,aAAA;QAEfY,gBAAA,CAAiB;UAAE7B,QAAA,EAAU8E,IAAA;UAAMnD,gBAAA,EAAkBsD;QAAkB;MACzE;IACF,OAAO,IAAIb,aAAA,IAAiB,QAAQA,aAAA,CAAcoB,SAAS,KAAK,+BAA+B;MAC7F3C,cAAA;IACF;IAEA,OAAO;EACT,GAAG,CACDpC,MAAA,EACAF,mBAAA,EACAsC,cAAA,EACArC,UAAA,EACAc,UAAA,EACAK,gBAAA,EACA3B,QAAA,EAAUmF,EAAA,EACV/D,sBAAA,EACAS,gBAAA,CACD;EAED3C,SAAA,CAAU;IACR,OAAOvB,aAAA,CACL8C,MAAA,CAAOgF,eAAe,CACpB5F,uCAAA,EACC6F,OAAA;MACC,IAAI,CAACA,OAAA,EAAS;QACZ,OAAO;MACT;MACAjF,MAAA,CAAOkF,eAAe,CAAC/F,4BAAA,EAA8B8F,OAAA,CAAQd,MAAM;MAEnE;MACA1B,iBAAA;MACAN,YAAA;MAEA,OAAO;IACT,GACAjE,oBAAA;EAGN,GAAG,CAAC8B,MAAA,EAAQyC,iBAAA,EAAmBN,YAAA,EAAcH,UAAA,CAAW;EAExDvD,SAAA,CAAU;IACR,MAAM0G,YAAA,GAAepF,UAAA,CAAWqF,aAAa;IAE7C,MAAMC,MAAA,GAASA,CAAA;MACbrF,MAAA,CAAOsF,cAAc,GAAGC,IAAI,CAAC;QAC3B,KAAK9C,iBAAA;MACP;IACF;IAEAgB,MAAA,CAAO+B,gBAAgB,CAAC,UAAUH,MAAA;IAElC,IAAIF,YAAA,IAAgB,MAAM;MACxBA,YAAA,CAAaK,gBAAgB,CAAC,UAAUH,MAAA;IAC1C;IAEA,OAAO;MACL5B,MAAA,CAAOgC,mBAAmB,CAAC,UAAUJ,MAAA;MAErC,IAAIF,YAAA,IAAgB,MAAM;QACxBA,YAAA,CAAaM,mBAAmB,CAAC,UAAUJ,MAAA;MAC7C;IACF;EACF,GAAG,CAACtF,UAAA,CAAWqF,aAAa,EAAEpF,MAAA,EAAQyC,iBAAA,CAAkB;EAExDhE,SAAA,CAAU;IACR,OAAOvB,aAAA,CACL8C,MAAA,CAAO0F,sBAAsB,CAAC,CAAC;MAAEC;IAAW,CAAE;MAC5CA,WAAA,CAAYJ,IAAI,CAAC;QACf,KAAK9C,iBAAA;MACP;IACF,IAEAzC,MAAA,CAAOgF,eAAe,CACpB5G,wBAAA,EACA;MACE,KAAKqE,iBAAA;MACL,OAAO;IACT,GACAvE,oBAAA,GAEF8B,MAAA,CAAOgF,eAAe,CACpB7G,kBAAA,EACA;MACE,IAAIyD,kBAAA,EAAoB;QACtBQ,cAAA;QAEA,OAAO;MACT;MACA,OAAO;IACT,GACAnE,qBAAA;EAGN,GAAG,CAAC+B,MAAA,EAAQyC,iBAAA,EAAmBb,kBAAA,EAAoBQ,cAAA,CAAe;EAElE;;;EAGA,MAAMwD,YAAA,GAAepH,WAAA,CAClBqH,SAAA;IACC,MAAMC,OAAA,GAAezH,oBAAA,CAAqBwH,SAAA;IAC1CC,OAAA,CAAQrB,SAAS,GAAGlF,QAAA,EAAUkF,SAAA;IAC9BzE,MAAA,CAAOqF,MAAM,CAAC;MACZ,IAAIpF,gBAAA,IAAoBH,mBAAA,CAAoBG,gBAAA,GAAmB;QAC7DA,gBAAA,CAAiB8F,SAAS,CAACD,OAAA;MAC7B;IACF;EACF,GACA,CAACvG,QAAA,EAAUkF,SAAA,EAAWzE,MAAA,EAAQC,gBAAA,EAAkBH,mBAAA,CAAoB;EAGtE,MAAMkG,gBAAA,GAAmBxF,WAAA,EAAayF,MAAA,EAAQC,QAAA,GAC1C/I,cAAA,CAAeqD,WAAA,CAAYyF,MAAM,CAACC,QAAQ,EAAElF,IAAA,IAC5CR,WAAA,EAAayB,IAAA;EAEjB,MAAMkE,UAAA,GAAazH,OAAA,CACjB,MAAM,mBACJ0H,IAAA,CAAC;IACC,cAAW;IACXrB,SAAA,EAAU;IACVsB,OAAA,EAASA,CAAA;MACPlE,YAAA;IACF;IACAmE,WAAA,EAAcC,KAAA;MACZA,KAAA,CAAMC,cAAc;IACtB;IACAC,QAAA,EAAU;IACVC,IAAA,EAAK;cAEL,aAAAN,IAAA,CAAC7I,QAAA;MAGL,CAAC4E,YAAA,CAAa;EAGhB,MAAMwE,YAAA,GAAejI,OAAA,CACnB,MAAM,mBACJ0H,IAAA,CAAC;IACC,cAAW;IACXrB,SAAA,EAAU;IACVsB,OAAA,EAASA,CAAA;MACPrG,MAAA,CAAOkF,eAAe,CAAC/F,4BAAA,EAA8B;IACvD;IACAmH,WAAA,EAAcC,OAAA;MACZA,OAAA,CAAMC,cAAc;IACtB;IACAC,QAAA,EAAU;IACVC,IAAA,EAAK;cAEL,aAAAN,IAAA,CAAChJ,aAAA;MAGL,CAAC4C,MAAA,CAAO;EAGV,MAAM4G,KAAA,GAAQlI,OAAA,CAAQ;IACpB,IAAI4B,0BAAA,EAA4B;MAC9B,OAAO,MAAMA,0BAAA;IACf,OAAO;MACL,OAAO,MAAM0F,gBAAA;IACf;EACF,GAAG,CAACA,gBAAA,EAAkB1F,0BAAA,CAA2B;EAEjD,MAAMuG,qBAAA,GAAwBnI,OAAA,CAAQ;IACpC,OAAO,CAAC;MAAEoI;IAAQ,CAAiC;MACjD,oBACEV,IAAA,CAAC;QAAIrB,SAAA,EAAU;kBACb,aAAAqB,IAAA,CAAC;UAAIrB,SAAA,EAAU;oBAAgC+B;;;IAGrD;EACF,GAAG,EAAE;EAEL,oBACEC,KAAA,CAACvJ,IAAA;IACCwJ,YAAA,EAAc,CACZ,OAAO;MAAEnB,SAAS,EAATA;IAAS,CAAE;MAClB;MACA,OAAO,MAAMxE,YAAA,CAAa;QAAEwE,SAAA,EAAAA,WAAA;QAAWoB,MAAA,EAAQ;MAAK;IACtD,EACD;IACDC,yBAAyB;IACzB/C,MAAA,EAAQ3D,WAAA,EAAa2D,MAAA,IAAU,EAAE;IACjC1E,YAAA,EAAcA,YAAA,IAAgB,CAAC;IAC/B0H,QAAA,EAAU,CAAC9F,YAAA,CAAa;IACxB+F,QAAA,EAAWvB,WAAA;MACTD,YAAA,CAAaC,WAAA;MACb1D,YAAA;IACF;IACArD,IAAA,EAAMA,IAAA;4BAENsH,IAAA,CAAC;MAAIrB,SAAA,EAAU;MAAsBsC,GAAA,EAAKlH,SAAA;gBACvCC,qBAAA,gBACCgG,IAAA,CAAC9G,4BAAA,CAA6BgI,QAAQ;QACpCC,KAAA,EAAO;UACLpB,UAAA;UACA5G,QAAA;UACAE,YAAA;UACAmH,KAAA;UACAD,YAAA;UACAE,qBAAA;UACA5G,gBAAA,EAAkBA;QACpB;kBAECG;wBAGH2G,KAAA,CAACF,qBAAA;gCACCT,IAAA,CAACQ,KAAA,OACA5G,MAAA,CAAOwH,UAAU,mBAChBT,KAAA,CAACzI,KAAA,CAAMmJ,QAAQ;kCACbrB,IAAA,CAACD,UAAA,O,aACDC,IAAA,CAACO,YAAA;;;qBAOXP,IAAA,CAAC9I,iBAAA;gBACC,aAAA8I,IAAA,CAAC/I,MAAA;QACC0H,SAAA,EAAW;QACX9C,IAAA,EAAMD,UAAA;QACN0F,KAAA,EAAOzG,CAAA,CAAE,+BAA+B1B,QAAA,EAAUmF,EAAA,GAAK,SAAS,UAAU,EAAE;UAC1EiD,KAAA,EAAO3B,gBAAA,IAAoB/E,CAAA,CAAE;QAC/B;kBAECxB,YAAA,IAAgBe,WAAA,IAAeU,gBAAA,gBAC9B6F,KAAA,CAAAa,SAAA;kCACExB,IAAA,CAACzI,YAAA;YACCwG,MAAA,EAAQ3D,WAAA,CAAY2D,MAAM;YAC1B0D,WAAW;YACXC,eAAA,EAAgB;YAChBC,UAAA,EAAW,GAAG;YAAA;;YACdC,gBAAA,EAAkB9G,gBAAA;YAClBN,WAAA,EAAaA,WAAA;YACbqH,QAAA,EAAU;2BAEZ7B,IAAA,CAAC1I,UAAA;YAAWwK,kBAAA,EAAoB;sBAAOjH,CAAA,CAAE;;aAEzC;;;;AAKd","ignoreList":[]}
@@ -1,22 +0,0 @@
1
- import type { FormState } from 'payload';
2
- import type { WrapperBlockFields } from '../../../../WrapperBlockNode.js';
3
- export type Props = {
4
- onReceiveRenderedFields: (args: {
5
- state: FormState;
6
- }) => void;
7
- schemaFieldsPath: null | string;
8
- };
9
- export declare const useLexicalFormState: (props: Props) => {
10
- initialState?: FormState;
11
- loadInitialState: (args: {
12
- formData: {
13
- text: string;
14
- } & WrapperBlockFields;
15
- schemaFieldsPath: string;
16
- }) => void;
17
- onFormChange: (args: {
18
- formState: FormState;
19
- submit?: boolean;
20
- }) => Promise<FormState>;
21
- };
22
- //# sourceMappingURL=useLexicalFormState.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLexicalFormState.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/blocks/client/plugin/wrapperBlocks/BlockEditor/useLexicalFormState.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAMxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAEzE,MAAM,MAAM,KAAK,GAAG;IAClB,uBAAuB,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,KAAK,IAAI,CAAA;IAC7D,gBAAgB,EAAE,IAAI,GAAG,MAAM,CAAA;CAChC,CAAA;AACD,eAAO,MAAM,mBAAmB,UACvB,KAAK,KACX;IACD,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,gBAAgB,EAAE,CAAC,IAAI,EAAE;QACvB,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,kBAAkB,CAAA;QAC/C,gBAAgB,EAAE,MAAM,CAAA;KACzB,KAAK,IAAI,CAAA;IACV,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,SAAS,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;CAmIvF,CAAA"}