@payloadcms/richtext-lexical 3.0.0-beta.127 → 3.0.0-beta.129

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 (237) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/cell/rscEntry.d.ts +12 -0
  3. package/dist/cell/rscEntry.d.ts.map +1 -0
  4. package/dist/cell/rscEntry.js +82 -0
  5. package/dist/cell/rscEntry.js.map +1 -0
  6. package/dist/exports/client/Field-SHUAQNQD.js +2 -0
  7. package/dist/exports/client/Field-SHUAQNQD.js.map +7 -0
  8. package/dist/exports/client/RelationshipComponent-IMM4CFBE.js +2 -0
  9. package/dist/exports/client/RelationshipComponent-IMM4CFBE.js.map +7 -0
  10. package/dist/exports/client/bundled.css +1 -1
  11. package/dist/exports/client/{chunk-NEO76RJK.js → chunk-352SHIZR.js} +2 -2
  12. package/dist/exports/client/chunk-75T7MDBH.js +2 -0
  13. package/dist/exports/client/chunk-75T7MDBH.js.map +7 -0
  14. package/dist/exports/client/{chunk-XY4TCSM7.js → chunk-O4IOO4EU.js} +2 -2
  15. package/dist/exports/client/chunk-OOBB5GCO.js +2 -0
  16. package/dist/exports/client/chunk-OOBB5GCO.js.map +7 -0
  17. package/dist/exports/client/chunk-PDAZFJVO.js +2 -0
  18. package/dist/exports/client/chunk-PDAZFJVO.js.map +7 -0
  19. package/dist/exports/client/{chunk-32KXGBIQ.js → chunk-ZOYGBIAN.js} +2 -2
  20. package/dist/exports/client/component-EHTN2BHZ.js +2 -0
  21. package/dist/exports/client/component-EHTN2BHZ.js.map +7 -0
  22. package/dist/exports/client/component-YE2TDR5O.js +2 -0
  23. package/dist/exports/client/component-YE2TDR5O.js.map +7 -0
  24. package/dist/exports/client/componentInline-N5LJ2LY2.js +2 -0
  25. package/dist/exports/client/componentInline-N5LJ2LY2.js.map +7 -0
  26. package/dist/exports/client/index.d.ts +0 -1
  27. package/dist/exports/client/index.d.ts.map +1 -1
  28. package/dist/exports/client/index.js +8 -8
  29. package/dist/exports/client/index.js.map +4 -4
  30. package/dist/exports/server/rsc.d.ts +3 -0
  31. package/dist/exports/server/rsc.d.ts.map +1 -0
  32. package/dist/exports/server/rsc.js +3 -0
  33. package/dist/exports/server/rsc.js.map +1 -0
  34. package/dist/features/blocks/client/component/BlockContent.d.ts +1 -0
  35. package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
  36. package/dist/features/blocks/client/component/BlockContent.js +15 -15
  37. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  38. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  39. package/dist/features/blocks/client/component/index.js +68 -52
  40. package/dist/features/blocks/client/component/index.js.map +1 -1
  41. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  42. package/dist/features/blocks/client/componentInline/index.js +14 -19
  43. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  44. package/dist/features/blocks/client/index.d.ts.map +1 -1
  45. package/dist/features/blocks/client/index.js +26 -24
  46. package/dist/features/blocks/client/index.js.map +1 -1
  47. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
  48. package/dist/features/blocks/client/plugin/index.js +83 -75
  49. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  50. package/dist/features/blocks/server/index.d.ts.map +1 -1
  51. package/dist/features/blocks/server/index.js +20 -10
  52. package/dist/features/blocks/server/index.js.map +1 -1
  53. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  54. package/dist/features/blocks/server/validate.js +8 -5
  55. package/dist/features/blocks/server/validate.js.map +1 -1
  56. package/dist/features/debug/testRecorder/client/plugin/index.js +25 -14
  57. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  58. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +19 -7
  59. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  60. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +16 -3
  61. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  62. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -1
  63. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +58 -19
  64. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
  65. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +1 -1
  66. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +38 -32
  67. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  68. package/dist/features/experimental_table/server/index.d.ts.map +1 -1
  69. package/dist/features/experimental_table/server/index.js +3 -1
  70. package/dist/features/experimental_table/server/index.js.map +1 -1
  71. package/dist/features/format/bold/feature.client.d.ts.map +1 -1
  72. package/dist/features/format/bold/feature.client.js +2 -1
  73. package/dist/features/format/bold/feature.client.js.map +1 -1
  74. package/dist/features/format/inlineCode/feature.client.d.ts.map +1 -1
  75. package/dist/features/format/inlineCode/feature.client.js +2 -1
  76. package/dist/features/format/inlineCode/feature.client.js.map +1 -1
  77. package/dist/features/format/italic/feature.client.d.ts.map +1 -1
  78. package/dist/features/format/italic/feature.client.js +2 -1
  79. package/dist/features/format/italic/feature.client.js.map +1 -1
  80. package/dist/features/format/strikethrough/feature.client.d.ts.map +1 -1
  81. package/dist/features/format/strikethrough/feature.client.js +2 -1
  82. package/dist/features/format/strikethrough/feature.client.js.map +1 -1
  83. package/dist/features/format/subscript/feature.client.d.ts.map +1 -1
  84. package/dist/features/format/subscript/feature.client.js +2 -1
  85. package/dist/features/format/subscript/feature.client.js.map +1 -1
  86. package/dist/features/format/superscript/feature.client.d.ts.map +1 -1
  87. package/dist/features/format/superscript/feature.client.js +2 -1
  88. package/dist/features/format/superscript/feature.client.js.map +1 -1
  89. package/dist/features/format/underline/feature.client.d.ts.map +1 -1
  90. package/dist/features/format/underline/feature.client.js +2 -1
  91. package/dist/features/format/underline/feature.client.js.map +1 -1
  92. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  93. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +52 -15
  94. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  95. package/dist/features/link/client/plugins/floatingLinkEditor/index.js +1 -1
  96. package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
  97. package/dist/features/link/server/i18n.d.ts.map +1 -1
  98. package/dist/features/link/server/i18n.js +64 -32
  99. package/dist/features/link/server/i18n.js.map +1 -1
  100. package/dist/features/link/server/index.d.ts.map +1 -1
  101. package/dist/features/link/server/index.js +3 -1
  102. package/dist/features/link/server/index.js.map +1 -1
  103. package/dist/features/link/server/validate.d.ts.map +1 -1
  104. package/dist/features/link/server/validate.js +8 -5
  105. package/dist/features/link/server/validate.js.map +1 -1
  106. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
  107. package/dist/features/relationship/client/components/RelationshipComponent.js +6 -4
  108. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  109. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  110. package/dist/features/toolbars/fixed/client/Toolbar/index.js +77 -49
  111. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  112. package/dist/features/toolbars/inline/client/Toolbar/index.js +93 -52
  113. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  114. package/dist/features/toolbars/shared/ToolbarButton/index.js +1 -1
  115. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  116. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +2 -2
  117. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  118. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  119. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +25 -22
  120. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  121. package/dist/features/toolbars/types.d.ts +3 -1
  122. package/dist/features/toolbars/types.d.ts.map +1 -1
  123. package/dist/features/toolbars/types.js.map +1 -1
  124. package/dist/features/typesServer.d.ts +4 -17
  125. package/dist/features/typesServer.d.ts.map +1 -1
  126. package/dist/features/typesServer.js.map +1 -1
  127. package/dist/features/upload/client/component/index.d.ts.map +1 -1
  128. package/dist/features/upload/client/component/index.js +8 -4
  129. package/dist/features/upload/client/component/index.js.map +1 -1
  130. package/dist/features/upload/server/feature.server.d.ts.map +1 -1
  131. package/dist/features/upload/server/feature.server.js +3 -1
  132. package/dist/features/upload/server/feature.server.js.map +1 -1
  133. package/dist/features/upload/server/validate.d.ts.map +1 -1
  134. package/dist/features/upload/server/validate.js +7 -4
  135. package/dist/features/upload/server/validate.js.map +1 -1
  136. package/dist/field/Field.d.ts.map +1 -1
  137. package/dist/field/Field.js +27 -41
  138. package/dist/field/Field.js.map +1 -1
  139. package/dist/field/bundled.css +1 -1
  140. package/dist/field/index.d.ts.map +1 -1
  141. package/dist/field/index.js +26 -27
  142. package/dist/field/index.js.map +1 -1
  143. package/dist/field/rscEntry.d.ts +9 -0
  144. package/dist/field/rscEntry.d.ts.map +1 -0
  145. package/dist/field/rscEntry.js +37 -0
  146. package/dist/field/rscEntry.js.map +1 -0
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/index.js +8 -14
  149. package/dist/index.js.map +1 -1
  150. package/dist/lexical/LexicalProvider.d.ts +1 -1
  151. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  152. package/dist/lexical/LexicalProvider.js +2 -2
  153. package/dist/lexical/LexicalProvider.js.map +1 -1
  154. package/dist/lexical/config/client/EditorConfigProvider.d.ts +4 -3
  155. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  156. package/dist/lexical/config/client/EditorConfigProvider.js +5 -5
  157. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  158. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +4 -4
  159. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  160. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +14 -5
  161. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  162. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +2 -2
  163. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -1
  164. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +5 -5
  165. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  166. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +3 -2
  167. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
  168. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  169. package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
  170. package/dist/lexical/plugins/SlashMenu/index.js +15 -24
  171. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  172. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +6 -4
  173. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  174. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +6 -4
  175. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  176. package/dist/lexical/theme/EditorTheme.d.ts.map +1 -1
  177. package/dist/lexical/theme/EditorTheme.js +0 -2
  178. package/dist/lexical/theme/EditorTheme.js.map +1 -1
  179. package/dist/types.d.ts +15 -2
  180. package/dist/types.d.ts.map +1 -1
  181. package/dist/types.js.map +1 -1
  182. package/dist/utilities/fieldsDrawer/Drawer.d.ts +1 -0
  183. package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
  184. package/dist/utilities/fieldsDrawer/Drawer.js +25 -20
  185. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  186. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  187. package/dist/utilities/fieldsDrawer/DrawerContent.js +99 -143
  188. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  189. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js +1 -1
  190. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js.map +1 -1
  191. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  192. package/dist/utilities/generateImportMap.js +2 -3
  193. package/dist/utilities/generateImportMap.js.map +1 -1
  194. package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
  195. package/dist/utilities/generateSchemaMap.js +13 -10
  196. package/dist/utilities/generateSchemaMap.js.map +1 -1
  197. package/dist/utilities/initLexicalFeatures.d.ts +18 -0
  198. package/dist/utilities/initLexicalFeatures.d.ts.map +1 -0
  199. package/dist/utilities/initLexicalFeatures.js +95 -0
  200. package/dist/utilities/initLexicalFeatures.js.map +1 -0
  201. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  202. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +5 -1
  203. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  204. package/dist/utilities/useLexicalFeature.d.ts.map +1 -1
  205. package/dist/utilities/useLexicalFeature.js +12 -4
  206. package/dist/utilities/useLexicalFeature.js.map +1 -1
  207. package/dist/validate/index.d.ts.map +1 -1
  208. package/dist/validate/index.js +1 -1
  209. package/dist/validate/index.js.map +1 -1
  210. package/package.json +43 -35
  211. package/dist/cell/index.d.ts +0 -9
  212. package/dist/cell/index.d.ts.map +0 -1
  213. package/dist/cell/index.js +0 -120
  214. package/dist/cell/index.js.map +0 -1
  215. package/dist/exports/client/Field-Y47DV2NP.js +0 -2
  216. package/dist/exports/client/Field-Y47DV2NP.js.map +0 -7
  217. package/dist/exports/client/RelationshipComponent-LBWKOBGF.js +0 -2
  218. package/dist/exports/client/RelationshipComponent-LBWKOBGF.js.map +0 -7
  219. package/dist/exports/client/chunk-7SR2HYD6.js +0 -2
  220. package/dist/exports/client/chunk-7SR2HYD6.js.map +0 -7
  221. package/dist/exports/client/chunk-GD6LBQBJ.js +0 -2
  222. package/dist/exports/client/chunk-GD6LBQBJ.js.map +0 -7
  223. package/dist/exports/client/chunk-IIWHHN4J.js +0 -2
  224. package/dist/exports/client/chunk-IIWHHN4J.js.map +0 -7
  225. package/dist/exports/client/component-4TP4L5EV.js +0 -2
  226. package/dist/exports/client/component-4TP4L5EV.js.map +0 -7
  227. package/dist/exports/client/component-XMR5NN36.js +0 -2
  228. package/dist/exports/client/component-XMR5NN36.js.map +0 -7
  229. package/dist/exports/client/componentInline-NUDJIIQ4.js +0 -2
  230. package/dist/exports/client/componentInline-NUDJIIQ4.js.map +0 -7
  231. package/dist/utilities/generateComponentMap.d.ts +0 -6
  232. package/dist/utilities/generateComponentMap.d.ts.map +0 -1
  233. package/dist/utilities/generateComponentMap.js +0 -93
  234. package/dist/utilities/generateComponentMap.js.map +0 -1
  235. /package/dist/exports/client/{chunk-NEO76RJK.js.map → chunk-352SHIZR.js.map} +0 -0
  236. /package/dist/exports/client/{chunk-XY4TCSM7.js.map → chunk-O4IOO4EU.js.map} +0 -0
  237. /package/dist/exports/client/{chunk-32KXGBIQ.js.map → chunk-ZOYGBIAN.js.map} +0 -0
@@ -26,15 +26,17 @@ export const BlocksFeatureClient = createClientFeature(({
26
26
  key: 'block-' + blockSlug,
27
27
  keywords: ['block', 'blocks', blockSlug],
28
28
  label: ({
29
+ featureClientSchemaMap,
29
30
  i18n,
30
- richTextComponentMap
31
+ schemaPath
31
32
  }) => {
32
- if (!richTextComponentMap) {
33
+ if (!featureClientSchemaMap) {
33
34
  return blockSlug;
34
35
  }
35
- const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_blocks`;
36
- const blocksField = richTextComponentMap.get(componentMapRenderedBlockPath)?.[0];
37
- const clientBlock = blocksField.blocks.find(_block => _block.slug === blockSlug);
36
+ const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockSlug}`;
37
+ const clientSchemaMap = featureClientSchemaMap['blocks'];
38
+ const blocksField = clientSchemaMap[componentMapRenderedBlockPath][0];
39
+ const clientBlock = blocksField.blocks[0];
38
40
  const blockDisplayName = clientBlock?.labels?.singular ? getTranslation(clientBlock.labels.singular, i18n) : clientBlock?.slug;
39
41
  return blockDisplayName;
40
42
  },
@@ -61,15 +63,14 @@ export const BlocksFeatureClient = createClientFeature(({
61
63
  key: 'inlineBlocks-' + inlineBlockSlug,
62
64
  keywords: ['inlineBlock', 'inline block', inlineBlockSlug],
63
65
  label: ({
66
+ featureClientSchemaMap,
64
67
  i18n,
65
- richTextComponentMap
68
+ schemaPath
66
69
  }) => {
67
- if (!richTextComponentMap) {
68
- return inlineBlockSlug;
69
- }
70
- const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_inline_blocks`;
71
- const blocksField = richTextComponentMap.get(componentMapRenderedBlockPath)?.[0];
72
- const clientBlock = blocksField.blocks.find(_block => _block.slug === inlineBlockSlug);
70
+ const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${inlineBlockSlug}`;
71
+ const clientSchemaMap = featureClientSchemaMap['blocks'];
72
+ const blocksField = clientSchemaMap[componentMapRenderedBlockPath][0];
73
+ const clientBlock = blocksField.blocks[0];
73
74
  const blockDisplayName = clientBlock?.labels?.singular ? getTranslation(clientBlock.labels.singular, i18n) : clientBlock?.slug;
74
75
  return blockDisplayName;
75
76
  },
@@ -103,15 +104,14 @@ export const BlocksFeatureClient = createClientFeature(({
103
104
  isActive: undefined,
104
105
  key: 'block-' + blockSlug,
105
106
  label: ({
107
+ featureClientSchemaMap,
106
108
  i18n,
107
- richTextComponentMap
109
+ schemaPath
108
110
  }) => {
109
- if (!richTextComponentMap) {
110
- return blockSlug;
111
- }
112
- const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_blocks`;
113
- const blocksField = richTextComponentMap.get(componentMapRenderedBlockPath)?.[0];
114
- const clientBlock = blocksField.blocks.find(_block => _block.slug === blockSlug);
111
+ const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockSlug}`;
112
+ const clientSchemaMap = featureClientSchemaMap['blocks'];
113
+ const blocksField = clientSchemaMap[componentMapRenderedBlockPath][0];
114
+ const clientBlock = blocksField.blocks[0];
115
115
  const blockDisplayName = clientBlock?.labels?.singular ? getTranslation(clientBlock.labels.singular, i18n) : clientBlock?.slug;
116
116
  return blockDisplayName;
117
117
  },
@@ -137,15 +137,17 @@ export const BlocksFeatureClient = createClientFeature(({
137
137
  isActive: undefined,
138
138
  key: 'inlineBlock-' + inlineBlockSlug,
139
139
  label: ({
140
+ featureClientSchemaMap,
140
141
  i18n,
141
- richTextComponentMap
142
+ schemaPath
142
143
  }) => {
143
- if (!richTextComponentMap) {
144
+ if (!featureClientSchemaMap) {
144
145
  return inlineBlockSlug;
145
146
  }
146
- const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_inline_blocks`;
147
- const blocksField = richTextComponentMap.get(componentMapRenderedBlockPath)?.[0];
148
- const clientBlock = blocksField.blocks.find(_block => _block.slug === inlineBlockSlug);
147
+ const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${inlineBlockSlug}`;
148
+ const clientSchemaMap = featureClientSchemaMap['blocks'];
149
+ const blocksField = clientSchemaMap[componentMapRenderedBlockPath][0];
150
+ const clientBlock = blocksField.blocks[0];
149
151
  const blockDisplayName = clientBlock?.labels?.singular ? getTranslation(clientBlock.labels.singular, i18n) : clientBlock?.slug;
150
152
  return blockDisplayName;
151
153
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","BlockIcon","InlineBlocksIcon","createClientFeature","BlockNode","InlineBlockNode","INSERT_BLOCK_COMMAND","OPEN_INLINE_BLOCK_DRAWER_COMMAND","BlocksPlugin","BlocksFeatureClient","props","nodes","plugins","Component","position","sanitizedClientFeatureProps","slashMenu","groups","clientBlockSlugs","length","items","map","blockSlug","Icon","key","keywords","label","i18n","richTextComponentMap","componentMapRenderedBlockPath","blocksField","get","clientBlock","blocks","find","_block","slug","blockDisplayName","labels","singular","onSelect","editor","dispatchCommand","blockName","blockType","t","clientInlineBlockSlugs","inlineBlockSlug","fields","filter","Boolean","toolbarFixed","type","ChildComponent","index","isActive","undefined","order"],"sources":["../../../../src/features/blocks/client/index.tsx"],"sourcesContent":["'use client'\n\nimport type { BlocksFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { SlashMenuItem } from '../../../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nimport { BlockIcon } from '../../../lexical/ui/icons/Block/index.js'\nimport { InlineBlocksIcon } from '../../../lexical/ui/icons/InlineBlocks/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { BlockNode } from './nodes/BlocksNode.js'\nimport { InlineBlockNode } from './nodes/InlineBlocksNode.js'\nimport { INSERT_BLOCK_COMMAND, OPEN_INLINE_BLOCK_DRAWER_COMMAND } from './plugin/commands.js'\nimport { BlocksPlugin } from './plugin/index.js'\n\nexport type BlocksFeatureClientProps = {\n clientBlockSlugs: string[]\n clientInlineBlockSlugs: string[]\n}\n// @ts-expect-error - TODO: fix this\nexport const BlocksFeatureClient = createClientFeature<BlocksFeatureClientProps>(({ props }) => ({\n nodes: [BlockNode, InlineBlockNode],\n plugins: [\n {\n Component: BlocksPlugin,\n position: 'normal',\n },\n ],\n sanitizedClientFeatureProps: props,\n slashMenu: {\n groups: [\n props.clientBlockSlugs?.length\n ? {\n items: props.clientBlockSlugs.map((blockSlug) => {\n return {\n Icon: BlockIcon,\n key: 'block-' + blockSlug,\n keywords: ['block', 'blocks', blockSlug],\n label: ({ i18n, richTextComponentMap }) => {\n if (!richTextComponentMap) {\n return blockSlug\n }\n\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_blocks`\n const blocksField: BlocksFieldClient = richTextComponentMap.get(\n componentMapRenderedBlockPath,\n )?.[0]\n\n const clientBlock = blocksField.blocks.find((_block) => _block.slug === blockSlug)\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_BLOCK_COMMAND, {\n blockName: '',\n blockType: blockSlug,\n })\n },\n } as SlashMenuItem\n }),\n key: 'blocks',\n label: ({ i18n }) => {\n return i18n.t('lexical:blocks:label')\n },\n }\n : null,\n props.clientInlineBlockSlugs?.length\n ? {\n items: props.clientInlineBlockSlugs.map((inlineBlockSlug) => {\n return {\n Icon: InlineBlocksIcon,\n key: 'inlineBlocks-' + inlineBlockSlug,\n keywords: ['inlineBlock', 'inline block', inlineBlockSlug],\n label: ({ i18n, richTextComponentMap }) => {\n if (!richTextComponentMap) {\n return inlineBlockSlug\n }\n\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_inline_blocks`\n\n const blocksField: BlocksFieldClient = richTextComponentMap.get(\n componentMapRenderedBlockPath,\n )?.[0]\n\n const clientBlock = blocksField.blocks.find(\n (_block) => _block.slug === inlineBlockSlug,\n )\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(OPEN_INLINE_BLOCK_DRAWER_COMMAND, {\n fields: {\n blockName: '',\n blockType: inlineBlockSlug,\n },\n })\n },\n } as SlashMenuItem\n }),\n key: 'inlineBlocks',\n label: ({ i18n }) => {\n return i18n.t('lexical:blocks:inlineBlocks:label')\n },\n }\n : null,\n ].filter(Boolean),\n },\n toolbarFixed: {\n groups: [\n props.clientBlockSlugs?.length\n ? {\n type: 'dropdown',\n ChildComponent: BlockIcon,\n items: props.clientBlockSlugs.map((blockSlug, index) => {\n return {\n ChildComponent: BlockIcon,\n isActive: undefined, // At this point, we would be inside a sub-richtext-editor. And at this point this will be run against the focused sub-editor, not the parent editor which has the actual block. Thus, no point in running this\n key: 'block-' + blockSlug,\n label: ({ i18n, richTextComponentMap }) => {\n if (!richTextComponentMap) {\n return blockSlug\n }\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_blocks`\n const blocksField: BlocksFieldClient = richTextComponentMap.get(\n componentMapRenderedBlockPath,\n )?.[0]\n\n const clientBlock = blocksField.blocks.find((_block) => _block.slug === blockSlug)\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_BLOCK_COMMAND, {\n blockName: '',\n blockType: blockSlug,\n })\n },\n order: index,\n } as ToolbarGroupItem\n }),\n key: 'blocks',\n order: 20,\n }\n : null,\n props.clientInlineBlockSlugs?.length\n ? {\n type: 'dropdown',\n ChildComponent: InlineBlocksIcon,\n items: props.clientInlineBlockSlugs.map((inlineBlockSlug, index) => {\n return {\n ChildComponent: InlineBlocksIcon,\n isActive: undefined,\n key: 'inlineBlock-' + inlineBlockSlug,\n label: ({ i18n, richTextComponentMap }) => {\n if (!richTextComponentMap) {\n return inlineBlockSlug\n }\n\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_inline_blocks`\n const blocksField: BlocksFieldClient = richTextComponentMap.get(\n componentMapRenderedBlockPath,\n )?.[0]\n\n const clientBlock = blocksField.blocks.find(\n (_block) => _block.slug === inlineBlockSlug,\n )\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(OPEN_INLINE_BLOCK_DRAWER_COMMAND, {\n fields: {\n blockType: inlineBlockSlug,\n },\n })\n },\n order: index,\n } as ToolbarGroupItem\n }),\n key: 'inlineBlocks',\n order: 25,\n }\n : null,\n ].filter(Boolean) as ToolbarGroup[],\n },\n}))\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","BlockIcon","InlineBlocksIcon","createClientFeature","BlockNode","InlineBlockNode","INSERT_BLOCK_COMMAND","OPEN_INLINE_BLOCK_DRAWER_COMMAND","BlocksPlugin","BlocksFeatureClient","props","nodes","plugins","Component","position","sanitizedClientFeatureProps","slashMenu","groups","clientBlockSlugs","length","items","map","blockSlug","Icon","key","keywords","label","featureClientSchemaMap","i18n","schemaPath","componentMapRenderedBlockPath","clientSchemaMap","blocksField","clientBlock","blocks","blockDisplayName","labels","singular","slug","onSelect","editor","dispatchCommand","blockName","blockType","t","clientInlineBlockSlugs","inlineBlockSlug","fields","filter","Boolean","toolbarFixed","type","ChildComponent","index","isActive","undefined","order"],"sources":["../../../../src/features/blocks/client/index.tsx"],"sourcesContent":["'use client'\n\nimport type { BlocksFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { SlashMenuItem } from '../../../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nimport { BlockIcon } from '../../../lexical/ui/icons/Block/index.js'\nimport { InlineBlocksIcon } from '../../../lexical/ui/icons/InlineBlocks/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { BlockNode } from './nodes/BlocksNode.js'\nimport { InlineBlockNode } from './nodes/InlineBlocksNode.js'\nimport { INSERT_BLOCK_COMMAND, OPEN_INLINE_BLOCK_DRAWER_COMMAND } from './plugin/commands.js'\nimport { BlocksPlugin } from './plugin/index.js'\n\nexport type BlocksFeatureClientProps = {\n clientBlockSlugs: string[]\n clientInlineBlockSlugs: string[]\n}\n// @ts-expect-error - TODO: fix this\nexport const BlocksFeatureClient = createClientFeature<BlocksFeatureClientProps>(({ props }) => ({\n nodes: [BlockNode, InlineBlockNode],\n plugins: [\n {\n Component: BlocksPlugin,\n position: 'normal',\n },\n ],\n sanitizedClientFeatureProps: props,\n slashMenu: {\n groups: [\n props.clientBlockSlugs?.length\n ? {\n items: props.clientBlockSlugs.map((blockSlug) => {\n return {\n Icon: BlockIcon,\n key: 'block-' + blockSlug,\n keywords: ['block', 'blocks', blockSlug],\n label: ({ featureClientSchemaMap, i18n, schemaPath }) => {\n if (!featureClientSchemaMap) {\n return blockSlug\n }\n\n const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockSlug}`\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\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_BLOCK_COMMAND, {\n blockName: '',\n blockType: blockSlug,\n })\n },\n } as SlashMenuItem\n }),\n key: 'blocks',\n label: ({ i18n }) => {\n return i18n.t('lexical:blocks:label')\n },\n }\n : null,\n props.clientInlineBlockSlugs?.length\n ? {\n items: props.clientInlineBlockSlugs.map((inlineBlockSlug) => {\n return {\n Icon: InlineBlocksIcon,\n key: 'inlineBlocks-' + inlineBlockSlug,\n keywords: ['inlineBlock', 'inline block', inlineBlockSlug],\n label: ({ featureClientSchemaMap, i18n, schemaPath }) => {\n const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${inlineBlockSlug}`\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\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(OPEN_INLINE_BLOCK_DRAWER_COMMAND, {\n fields: {\n blockName: '',\n blockType: inlineBlockSlug,\n },\n })\n },\n } as SlashMenuItem\n }),\n key: 'inlineBlocks',\n label: ({ i18n }) => {\n return i18n.t('lexical:blocks:inlineBlocks:label')\n },\n }\n : null,\n ].filter(Boolean),\n },\n toolbarFixed: {\n groups: [\n props.clientBlockSlugs?.length\n ? {\n type: 'dropdown',\n ChildComponent: BlockIcon,\n items: props.clientBlockSlugs.map((blockSlug, index) => {\n return {\n ChildComponent: BlockIcon,\n isActive: undefined, // At this point, we would be inside a sub-richtext-editor. And at this point this will be run against the focused sub-editor, not the parent editor which has the actual block. Thus, no point in running this\n key: 'block-' + blockSlug,\n label: ({ featureClientSchemaMap, i18n, schemaPath }) => {\n const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockSlug}`\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\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_BLOCK_COMMAND, {\n blockName: '',\n blockType: blockSlug,\n })\n },\n order: index,\n } as ToolbarGroupItem\n }),\n key: 'blocks',\n order: 20,\n }\n : null,\n props.clientInlineBlockSlugs?.length\n ? {\n type: 'dropdown',\n ChildComponent: InlineBlocksIcon,\n items: props.clientInlineBlockSlugs.map((inlineBlockSlug, index) => {\n return {\n ChildComponent: InlineBlocksIcon,\n isActive: undefined,\n key: 'inlineBlock-' + inlineBlockSlug,\n label: ({ featureClientSchemaMap, i18n, schemaPath }) => {\n if (!featureClientSchemaMap) {\n return inlineBlockSlug\n }\n\n const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${inlineBlockSlug}`\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\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(OPEN_INLINE_BLOCK_DRAWER_COMMAND, {\n fields: {\n blockType: inlineBlockSlug,\n },\n })\n },\n order: index,\n } as ToolbarGroupItem\n }),\n key: 'inlineBlocks',\n order: 25,\n }\n : null,\n ].filter(Boolean) as ToolbarGroup[],\n },\n}))\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/client/plugin/index.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAe,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC1F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAa3D,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,CAAA;AAEtD,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,wBAAwB,CAmKlE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/client/plugin/index.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAe,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC1F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAa3D,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,CAAA;AAEtD,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,wBAAwB,CA8JlE,CAAA"}
@@ -5,7 +5,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
5
5
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
6
6
  import { $insertNodeToNearestRoot, $wrapNodeInElement, mergeRegister } from '@lexical/utils';
7
7
  import { getTranslation } from '@payloadcms/translations';
8
- import { formatDrawerSlug, useEditDepth, useFieldProps, useTranslation } from '@payloadcms/ui';
8
+ import { formatDrawerSlug, useEditDepth, useTranslation } from '@payloadcms/ui';
9
9
  import { $createParagraphNode, $getNodeByKey, $getPreviousSelection, $getSelection, $insertNodes, $isParagraphNode, $isRangeSelection, $isRootOrShadowRoot, COMMAND_PRIORITY_EDITOR } from 'lexical';
10
10
  import React, { useEffect, useState } from 'react';
11
11
  import { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js';
@@ -15,7 +15,7 @@ import { $createBlockNode, BlockNode } from '../nodes/BlocksNode.js';
15
15
  import { $createInlineBlockNode, $isInlineBlockNode } from '../nodes/InlineBlocksNode.js';
16
16
  import { INSERT_BLOCK_COMMAND, INSERT_INLINE_BLOCK_COMMAND, OPEN_INLINE_BLOCK_DRAWER_COMMAND } from './commands.js';
17
17
  export const BlocksPlugin = () => {
18
- const $ = _c(21);
18
+ const $ = _c(27);
19
19
  const [editor] = useLexicalComposerContext();
20
20
  const [blockFields, setBlockFields] = useState(null);
21
21
  const [blockType, setBlockType] = useState("");
@@ -25,35 +25,33 @@ export const BlocksPlugin = () => {
25
25
  t
26
26
  } = useTranslation();
27
27
  const {
28
+ fieldProps: t0
29
+ } = useEditorConfigContext();
30
+ const {
31
+ featureClientSchemaMap,
28
32
  schemaPath
29
- } = useFieldProps();
33
+ } = t0;
30
34
  const {
31
35
  uuid
32
36
  } = useEditorConfigContext();
33
37
  const editDepth = useEditDepth();
34
- const t0 = `lexical-inlineBlocks-create-` + uuid;
35
- let t1;
36
- if ($[0] !== t0 || $[1] !== editDepth) {
37
- t1 = formatDrawerSlug({
38
- slug: t0,
38
+ const t1 = `lexical-inlineBlocks-create-` + uuid;
39
+ let t2;
40
+ if ($[0] !== t1 || $[1] !== editDepth) {
41
+ t2 = formatDrawerSlug({
42
+ slug: t1,
39
43
  depth: editDepth
40
44
  });
41
- $[0] = t0;
45
+ $[0] = t1;
42
46
  $[1] = editDepth;
43
- $[2] = t1;
47
+ $[2] = t2;
44
48
  } else {
45
- t1 = $[2];
49
+ t2 = $[2];
46
50
  }
47
- const drawerSlug = t1;
51
+ const drawerSlug = t2;
48
52
  const {
49
53
  toggleDrawer
50
- } = useLexicalDrawer(drawerSlug);
51
- const {
52
- field: t2
53
- } = useEditorConfigContext();
54
- const {
55
- richTextComponentMap
56
- } = t2;
54
+ } = useLexicalDrawer(drawerSlug, true);
57
55
  let t3;
58
56
  let t4;
59
57
  if ($[3] !== editor || $[4] !== targetNodeKey || $[5] !== toggleDrawer) {
@@ -133,65 +131,75 @@ export const BlocksPlugin = () => {
133
131
  if (!blockFields) {
134
132
  return null;
135
133
  }
136
- const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.lexical_inline_blocks.${blockFields?.blockType}`;
137
- const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_inline_blocks`;
134
+ const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${blockFields?.blockType}`;
135
+ const clientSchemaMap = featureClientSchemaMap.blocks;
136
+ const blocksField = clientSchemaMap[schemaFieldsPath][0];
137
+ const clientBlock = blocksField.blocks[0];
138
+ if (!blocksField) {
139
+ return null;
140
+ }
138
141
  let t5;
139
- let t6;
140
- if ($[8] !== richTextComponentMap || $[9] !== blockFields || $[10] !== i18n || $[11] !== t || $[12] !== blockType || $[13] !== editor || $[14] !== drawerSlug || $[15] !== schemaFieldsPath) {
141
- t6 = Symbol.for("react.early_return_sentinel");
142
- bb0: {
143
- const blocksField = richTextComponentMap?.has(componentMapRenderedBlockPath) ? richTextComponentMap.get(componentMapRenderedBlockPath)[0] : null;
144
- const clientBlock = blocksField ? blocksField.blocks.find(block => block.slug === blockFields?.blockType) : null;
145
- if (!blocksField) {
146
- t6 = null;
147
- break bb0;
148
- }
149
- const blockDisplayName = clientBlock?.labels?.singular ? getTranslation(clientBlock?.labels?.singular, i18n) : clientBlock?.slug;
150
- let t7;
151
- if ($[18] !== blockType || $[19] !== editor) {
152
- t7 = (_fields, data) => {
153
- if (!data) {
154
- return;
155
- }
156
- data.blockType = blockType;
157
- editor.dispatchCommand(INSERT_INLINE_BLOCK_COMMAND, data);
158
- };
159
- $[18] = blockType;
160
- $[19] = editor;
161
- $[20] = t7;
162
- } else {
163
- t7 = $[20];
164
- }
165
- t5 = _jsx(FieldsDrawer, {
166
- data: blockFields,
167
- drawerSlug,
168
- drawerTitle: t(`lexical:blocks:inlineBlocks:${blockFields?.id ? "edit" : "create"}`, {
169
- label: blockDisplayName ?? t("lexical:blocks:inlineBlocks:label")
170
- }),
171
- featureKey: "blocks",
172
- fieldMapOverride: clientBlock?.fields,
173
- handleDrawerSubmit: t7,
174
- schemaFieldsPathOverride: schemaFieldsPath,
175
- schemaPathSuffix: blockFields?.blockType
176
- });
177
- }
178
- $[8] = richTextComponentMap;
179
- $[9] = blockFields;
180
- $[10] = i18n;
181
- $[11] = t;
182
- $[12] = blockType;
183
- $[13] = editor;
184
- $[14] = drawerSlug;
185
- $[15] = schemaFieldsPath;
186
- $[16] = t5;
187
- $[17] = t6;
142
+ if ($[8] !== clientBlock || $[9] !== i18n) {
143
+ t5 = clientBlock?.labels?.singular ? getTranslation(clientBlock?.labels?.singular, i18n) : clientBlock?.slug;
144
+ $[8] = clientBlock;
145
+ $[9] = i18n;
146
+ $[10] = t5;
147
+ } else {
148
+ t5 = $[10];
149
+ }
150
+ const blockDisplayName = t5;
151
+ const t6 = `lexical:blocks:inlineBlocks:${blockFields?.id ? "edit" : "create"}`;
152
+ let t7;
153
+ if ($[11] !== blockDisplayName || $[12] !== t) {
154
+ t7 = blockDisplayName ?? t("lexical:blocks:inlineBlocks:label");
155
+ $[11] = blockDisplayName;
156
+ $[12] = t;
157
+ $[13] = t7;
188
158
  } else {
189
- t5 = $[16];
190
- t6 = $[17];
159
+ t7 = $[13];
191
160
  }
192
- if (t6 !== Symbol.for("react.early_return_sentinel")) {
193
- return t6;
161
+ let t8;
162
+ if ($[14] !== t7 || $[15] !== t || $[16] !== t6 || $[17] !== clientBlock?.fields || $[18] !== blockType || $[19] !== editor || $[20] !== blockFields || $[21] !== drawerSlug || $[22] !== schemaPath) {
163
+ let t9;
164
+ if ($[24] !== blockType || $[25] !== editor) {
165
+ t9 = (_fields, data) => {
166
+ if (!data) {
167
+ return;
168
+ }
169
+ data.blockType = blockType;
170
+ editor.dispatchCommand(INSERT_INLINE_BLOCK_COMMAND, data);
171
+ };
172
+ $[24] = blockType;
173
+ $[25] = editor;
174
+ $[26] = t9;
175
+ } else {
176
+ t9 = $[26];
177
+ }
178
+ t8 = _jsx(FieldsDrawer, {
179
+ data: blockFields,
180
+ drawerSlug,
181
+ drawerTitle: t(t6, {
182
+ label: t7
183
+ }),
184
+ featureKey: "blocks",
185
+ fieldMapOverride: clientBlock?.fields,
186
+ handleDrawerSubmit: t9,
187
+ schemaPath,
188
+ schemaPathSuffix: `lexical_inline_blocks.${blockFields?.blockType}.fields`
189
+ });
190
+ $[14] = t7;
191
+ $[15] = t;
192
+ $[16] = t6;
193
+ $[17] = clientBlock?.fields;
194
+ $[18] = blockType;
195
+ $[19] = editor;
196
+ $[20] = blockFields;
197
+ $[21] = drawerSlug;
198
+ $[22] = schemaPath;
199
+ $[23] = t8;
200
+ } else {
201
+ t8 = $[23];
194
202
  }
195
- return t5;
203
+ return t8;
196
204
  };
197
205
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","$insertNodeToNearestRoot","$wrapNodeInElement","mergeRegister","getTranslation","formatDrawerSlug","useEditDepth","useFieldProps","useTranslation","$createParagraphNode","$getNodeByKey","$getPreviousSelection","$getSelection","$insertNodes","$isParagraphNode","$isRangeSelection","$isRootOrShadowRoot","COMMAND_PRIORITY_EDITOR","React","useEffect","useState","useEditorConfigContext","FieldsDrawer","useLexicalDrawer","$createBlockNode","BlockNode","$createInlineBlockNode","$isInlineBlockNode","INSERT_BLOCK_COMMAND","INSERT_INLINE_BLOCK_COMMAND","OPEN_INLINE_BLOCK_DRAWER_COMMAND","BlocksPlugin","$","editor","blockFields","setBlockFields","blockType","setBlockType","targetNodeKey","setTargetNodeKey","i18n","t","schemaPath","uuid","editDepth","t0","t1","slug","depth","drawerSlug","toggleDrawer","field","t2","richTextComponentMap","t3","t4","hasNodes","Error","registerCommand","payload","update","selection","blockNode","focus","focusNode","getNode","getTextContentSize","getParentOrThrow","getChildren","filter","node","length","remove","fields","node_0","setFields","inlineBlockNode","selectEnd","t5","fields_0","nodeKey","rangeSelection","getEditorState","read","selection_0","schemaFieldsPath","componentMapRenderedBlockPath","t6","Symbol","for","bb0","blocksField","has","get","clientBlock","blocks","find","block","blockDisplayName","labels","singular","t7","_fields","data","dispatchCommand","_jsx","drawerTitle","id","label","featureKey","fieldMapOverride","handleDrawerSubmit","schemaFieldsPathOverride","schemaPathSuffix"],"sources":["../../../../../src/features/blocks/client/plugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type { BlocksFieldClient } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $insertNodeToNearestRoot, $wrapNodeInElement, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n formatDrawerSlug,\n useEditDepth,\n useFieldProps,\n useModal,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n $createParagraphNode,\n $getNodeByKey,\n $getPreviousSelection,\n $getSelection,\n $insertNodes,\n $isParagraphNode,\n $isRangeSelection,\n $isRootOrShadowRoot,\n COMMAND_PRIORITY_EDITOR,\n type RangeSelection,\n} from 'lexical'\nimport React, { useEffect, useState } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\nimport type { BlockFields, BlockFieldsOptionalID } from '../../server/nodes/BlocksNode.js'\nimport type { BlocksFeatureClientProps } from '../index.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $createBlockNode, BlockNode } from '../nodes/BlocksNode.js'\nimport { $createInlineBlockNode, $isInlineBlockNode } from '../nodes/InlineBlocksNode.js'\nimport {\n INSERT_BLOCK_COMMAND,\n INSERT_INLINE_BLOCK_COMMAND,\n OPEN_INLINE_BLOCK_DRAWER_COMMAND,\n} from './commands.js'\n\nexport type InsertBlockPayload = BlockFieldsOptionalID\n\nexport const BlocksPlugin: PluginComponent<BlocksFeatureClientProps> = () => {\n const [editor] = useLexicalComposerContext()\n const [blockFields, setBlockFields] = useState<BlockFields | null>(null)\n const [blockType, setBlockType] = useState<string>('' as any)\n const [targetNodeKey, setTargetNodeKey] = useState<null | string>(null)\n const { i18n, t } = useTranslation<string, any>()\n const { schemaPath } = useFieldProps()\n const { uuid } = useEditorConfigContext()\n const editDepth = useEditDepth()\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-inlineBlocks-create-` + uuid,\n depth: editDepth,\n })\n\n const { toggleDrawer } = useLexicalDrawer(drawerSlug)\n\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n useEffect(() => {\n if (!editor.hasNodes([BlockNode])) {\n throw new Error('BlocksPlugin: BlocksNode not registered on editor')\n }\n\n return mergeRegister(\n editor.registerCommand<InsertBlockPayload>(\n INSERT_BLOCK_COMMAND,\n (payload: InsertBlockPayload) => {\n editor.update(() => {\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n const blockNode = $createBlockNode(payload)\n // Insert blocks node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(blockNode)\n\n const { focus } = selection\n const focusNode = focus.getNode()\n\n // First, delete currently selected node if it's an empty paragraph and if there are sufficient\n // paragraph nodes (more than 1) left in the parent node, so that we don't \"trap\" the user\n if (\n $isParagraphNode(focusNode) &&\n focusNode.getTextContentSize() === 0 &&\n focusNode\n .getParentOrThrow()\n .getChildren()\n .filter((node) => $isParagraphNode(node)).length > 1\n ) {\n focusNode.remove()\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n INSERT_INLINE_BLOCK_COMMAND,\n (fields) => {\n if (targetNodeKey) {\n const node = $getNodeByKey(targetNodeKey)\n\n if (!node || !$isInlineBlockNode(node)) {\n return false\n }\n\n node.setFields(fields as BlockFields)\n\n setTargetNodeKey(null)\n return true\n }\n\n const inlineBlockNode = $createInlineBlockNode(fields as BlockFields)\n $insertNodes([inlineBlockNode])\n if ($isRootOrShadowRoot(inlineBlockNode.getParentOrThrow())) {\n $wrapNodeInElement(inlineBlockNode, $createParagraphNode).selectEnd()\n }\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n OPEN_INLINE_BLOCK_DRAWER_COMMAND,\n ({ fields, nodeKey }) => {\n setBlockFields((fields as BlockFields) ?? null)\n setTargetNodeKey(nodeKey ?? null)\n setBlockType(fields?.blockType ?? ('' as any))\n\n if (nodeKey) {\n toggleDrawer()\n return true\n }\n\n let rangeSelection: null | RangeSelection = null\n\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n rangeSelection = selection\n }\n })\n\n if (rangeSelection) {\n //setLastSelection(rangeSelection)\n toggleDrawer()\n }\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [editor, targetNodeKey, toggleDrawer])\n\n if (!blockFields) {\n return null\n }\n\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.lexical_inline_blocks.${blockFields?.blockType}`\n\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_inline_blocks`\n const blocksField: BlocksFieldClient = richTextComponentMap?.has(componentMapRenderedBlockPath)\n ? richTextComponentMap.get(componentMapRenderedBlockPath)[0]\n : null\n\n const clientBlock = blocksField\n ? blocksField.blocks.find((block) => block.slug === blockFields?.blockType)\n : null\n\n if (!blocksField) {\n return null\n }\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock?.labels?.singular, i18n)\n : clientBlock?.slug\n\n return (\n <FieldsDrawer\n data={blockFields}\n drawerSlug={drawerSlug}\n drawerTitle={t(`lexical:blocks:inlineBlocks:${blockFields?.id ? 'edit' : 'create'}`, {\n label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label'),\n })}\n featureKey=\"blocks\"\n fieldMapOverride={clientBlock?.fields}\n handleDrawerSubmit={(_fields, data) => {\n if (!data) {\n return\n }\n\n data.blockType = blockType\n\n editor.dispatchCommand(INSERT_INLINE_BLOCK_COMMAND, data)\n }}\n schemaFieldsPathOverride={schemaFieldsPath}\n schemaPathSuffix={blockFields?.blockType}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","$insertNodeToNearestRoot","$wrapNodeInElement","mergeRegister","getTranslation","formatDrawerSlug","useEditDepth","useTranslation","$createParagraphNode","$getNodeByKey","$getPreviousSelection","$getSelection","$insertNodes","$isParagraphNode","$isRangeSelection","$isRootOrShadowRoot","COMMAND_PRIORITY_EDITOR","React","useEffect","useState","useEditorConfigContext","FieldsDrawer","useLexicalDrawer","$createBlockNode","BlockNode","$createInlineBlockNode","$isInlineBlockNode","INSERT_BLOCK_COMMAND","INSERT_INLINE_BLOCK_COMMAND","OPEN_INLINE_BLOCK_DRAWER_COMMAND","BlocksPlugin","$","editor","blockFields","setBlockFields","blockType","setBlockType","targetNodeKey","setTargetNodeKey","i18n","t","fieldProps","t0","featureClientSchemaMap","schemaPath","uuid","editDepth","t1","t2","slug","depth","drawerSlug","toggleDrawer","t3","t4","hasNodes","Error","registerCommand","payload","update","selection","blockNode","focus","focusNode","getNode","getTextContentSize","getParentOrThrow","getChildren","filter","node","length","remove","fields","node_0","setFields","inlineBlockNode","selectEnd","t5","fields_0","nodeKey","rangeSelection","getEditorState","read","selection_0","schemaFieldsPath","clientSchemaMap","blocks","blocksField","clientBlock","labels","singular","blockDisplayName","t6","id","t7","t8","t9","_fields","data","dispatchCommand","_jsx","drawerTitle","label","featureKey","fieldMapOverride","handleDrawerSubmit","schemaPathSuffix"],"sources":["../../../../../src/features/blocks/client/plugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type { BlocksFieldClient } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $insertNodeToNearestRoot, $wrapNodeInElement, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatDrawerSlug, useEditDepth, useTranslation } from '@payloadcms/ui'\nimport {\n $createParagraphNode,\n $getNodeByKey,\n $getPreviousSelection,\n $getSelection,\n $insertNodes,\n $isParagraphNode,\n $isRangeSelection,\n $isRootOrShadowRoot,\n COMMAND_PRIORITY_EDITOR,\n type RangeSelection,\n} from 'lexical'\nimport React, { useEffect, useState } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\nimport type { BlockFields, BlockFieldsOptionalID } from '../../server/nodes/BlocksNode.js'\nimport type { BlocksFeatureClientProps } from '../index.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $createBlockNode, BlockNode } from '../nodes/BlocksNode.js'\nimport { $createInlineBlockNode, $isInlineBlockNode } from '../nodes/InlineBlocksNode.js'\nimport {\n INSERT_BLOCK_COMMAND,\n INSERT_INLINE_BLOCK_COMMAND,\n OPEN_INLINE_BLOCK_DRAWER_COMMAND,\n} from './commands.js'\n\nexport type InsertBlockPayload = BlockFieldsOptionalID\n\nexport const BlocksPlugin: PluginComponent<BlocksFeatureClientProps> = () => {\n const [editor] = useLexicalComposerContext()\n const [blockFields, setBlockFields] = useState<BlockFields | null>(null)\n const [blockType, setBlockType] = useState<string>('' as any)\n const [targetNodeKey, setTargetNodeKey] = useState<null | string>(null)\n const { i18n, t } = useTranslation<string, any>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n const { uuid } = useEditorConfigContext()\n const editDepth = useEditDepth()\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-inlineBlocks-create-` + uuid,\n depth: editDepth,\n })\n\n const { toggleDrawer } = useLexicalDrawer(drawerSlug, true)\n\n useEffect(() => {\n if (!editor.hasNodes([BlockNode])) {\n throw new Error('BlocksPlugin: BlocksNode not registered on editor')\n }\n\n return mergeRegister(\n editor.registerCommand<InsertBlockPayload>(\n INSERT_BLOCK_COMMAND,\n (payload: InsertBlockPayload) => {\n editor.update(() => {\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n const blockNode = $createBlockNode(payload)\n // Insert blocks node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(blockNode)\n\n const { focus } = selection\n const focusNode = focus.getNode()\n\n // First, delete currently selected node if it's an empty paragraph and if there are sufficient\n // paragraph nodes (more than 1) left in the parent node, so that we don't \"trap\" the user\n if (\n $isParagraphNode(focusNode) &&\n focusNode.getTextContentSize() === 0 &&\n focusNode\n .getParentOrThrow()\n .getChildren()\n .filter((node) => $isParagraphNode(node)).length > 1\n ) {\n focusNode.remove()\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n INSERT_INLINE_BLOCK_COMMAND,\n (fields) => {\n if (targetNodeKey) {\n const node = $getNodeByKey(targetNodeKey)\n\n if (!node || !$isInlineBlockNode(node)) {\n return false\n }\n\n node.setFields(fields as BlockFields)\n\n setTargetNodeKey(null)\n return true\n }\n\n const inlineBlockNode = $createInlineBlockNode(fields as BlockFields)\n $insertNodes([inlineBlockNode])\n if ($isRootOrShadowRoot(inlineBlockNode.getParentOrThrow())) {\n $wrapNodeInElement(inlineBlockNode, $createParagraphNode).selectEnd()\n }\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n OPEN_INLINE_BLOCK_DRAWER_COMMAND,\n ({ fields, nodeKey }) => {\n setBlockFields((fields as BlockFields) ?? null)\n setTargetNodeKey(nodeKey ?? null)\n setBlockType(fields?.blockType ?? ('' as any))\n\n if (nodeKey) {\n toggleDrawer()\n return true\n }\n\n let rangeSelection: null | RangeSelection = null\n\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n rangeSelection = selection\n }\n })\n\n if (rangeSelection) {\n //setLastSelection(rangeSelection)\n toggleDrawer()\n }\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [editor, targetNodeKey, toggleDrawer])\n\n if (!blockFields) {\n return null\n }\n\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${blockFields?.blockType}`\n\n const clientSchemaMap = featureClientSchemaMap['blocks']\n\n const blocksField: BlocksFieldClient = clientSchemaMap[schemaFieldsPath][0] as BlocksFieldClient\n\n const clientBlock = blocksField.blocks[0]\n\n if (!blocksField) {\n return null\n }\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock?.labels?.singular, i18n)\n : clientBlock?.slug\n\n return (\n <FieldsDrawer\n data={blockFields}\n drawerSlug={drawerSlug}\n drawerTitle={t(`lexical:blocks:inlineBlocks:${blockFields?.id ? 'edit' : 'create'}`, {\n label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label'),\n })}\n featureKey=\"blocks\"\n fieldMapOverride={clientBlock?.fields}\n handleDrawerSubmit={(_fields, data) => {\n if (!data) {\n return\n }\n\n data.blockType = blockType\n\n editor.dispatchCommand(INSERT_INLINE_BLOCK_COMMAND, data)\n }}\n schemaPath={schemaPath}\n schemaPathSuffix={`lexical_inline_blocks.${blockFields?.blockType}.fields`}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAA8B,MAAM,SAAS,CAAA;AAIhE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAUlE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;IAChB,YAAY,CAAC,EAAE,KAAK,EAAE,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,aAAa,gIA4KxB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAA8C,MAAM,SAAS,CAAA;AAIhF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAUlE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;IAChB,YAAY,CAAC,EAAE,KAAK,EAAE,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,aAAa,gIAmLxB,CAAA"}
@@ -84,19 +84,29 @@ export const BlocksFeature = createServerFeature({
84
84
  */
85
85
  const schemaMap = new Map();
86
86
  if (props?.blocks?.length) {
87
- schemaMap.set('lexical_blocks', [{
88
- name: 'lexical_blocks',
89
- type: 'blocks',
90
- blocks: props.blocks
91
- }]);
87
+ for (const block of props.blocks) {
88
+ schemaMap.set(`lexical_blocks.${block.slug}.fields`, {
89
+ fields: block.fields
90
+ });
91
+ schemaMap.set(`lexical_blocks.${block.slug}`, {
92
+ name: `lexical_blocks_${block.slug}`,
93
+ type: 'blocks',
94
+ blocks: [block]
95
+ });
96
+ }
92
97
  }
93
98
  if (props?.inlineBlocks?.length) {
94
99
  // To generate block schemaMap which generates things like the componentMap for admin.Label
95
- schemaMap.set('lexical_inline_blocks', [{
96
- name: 'lexical_inline_blocks',
97
- type: 'blocks',
98
- blocks: props.inlineBlocks
99
- }]);
100
+ for (const block of props.inlineBlocks) {
101
+ schemaMap.set(`lexical_inline_blocks.${block.slug}.fields`, {
102
+ fields: block.fields
103
+ });
104
+ schemaMap.set(`lexical_inline_blocks.${block.slug}`, {
105
+ name: `lexical_inline_blocks_${block.slug}`,
106
+ type: 'blocks',
107
+ blocks: [block]
108
+ });
109
+ }
100
110
  }
101
111
  return schemaMap;
102
112
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["fieldsToJSONSchema","sanitizeFields","createServerFeature","createNode","blockPopulationPromiseHOC","i18n","ServerBlockNode","ServerInlineBlockNode","blockValidationHOC","BlocksFeature","feature","config","_config","isRoot","parentIsLocalized","props","clientProps","clientBlockSlugs","clientInlineBlockSlugs","validRelationships","collections","map","c","slug","sanitized","fields","name","type","blocks","inlineBlocks","requireFieldLevelRichTextEditor","block","ClientFeature","clientFeatureProps","generatedTypes","modifyOutputSchema","collectionIDFieldTypes","currentSchema","field","interfaceNameDefinitions","length","push","generateSchemaMap","schemaMap","Map","set","nodes","getSubFields","node","blockType","find","getSubFieldsData","graphQLPopulationPromises","validations","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/blocks/server/index.ts"],"sourcesContent":["import type { Block, BlocksField, Config, Field } from 'payload'\n\nimport { fieldsToJSONSchema, sanitizeFields } from 'payload'\n\nimport type { BlocksFeatureClientProps } from '../client/index.js'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { blockPopulationPromiseHOC } from './graphQLPopulationPromise.js'\nimport { i18n } from './i18n.js'\nimport { ServerBlockNode } from './nodes/BlocksNode.js'\nimport { ServerInlineBlockNode } from './nodes/InlineBlocksNode.js'\nimport { blockValidationHOC } from './validate.js'\n\nexport type BlocksFeatureProps = {\n blocks?: Block[]\n inlineBlocks?: Block[]\n}\n\nexport const BlocksFeature = createServerFeature<\n BlocksFeatureProps,\n BlocksFeatureProps,\n BlocksFeatureClientProps\n>({\n feature: async ({ config: _config, isRoot, parentIsLocalized, props }) => {\n // Build clientProps\n const clientProps: BlocksFeatureClientProps = {\n clientBlockSlugs: [],\n clientInlineBlockSlugs: [],\n }\n const validRelationships = _config.collections.map((c) => c.slug) || []\n\n const sanitized = await sanitizeFields({\n config: _config as unknown as Config,\n fields: [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: props.blocks ?? [],\n },\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: props.inlineBlocks ?? [],\n },\n ],\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n\n props.blocks = (sanitized[0] as BlocksField).blocks\n props.inlineBlocks = (sanitized[1] as BlocksField).blocks\n\n clientProps.clientBlockSlugs = props.blocks.map((block) => block.slug)\n clientProps.clientInlineBlockSlugs = props.inlineBlocks.map((block) => block.slug)\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#BlocksFeatureClient',\n clientFeatureProps: clientProps,\n generatedTypes: {\n modifyOutputSchema: ({\n collectionIDFieldTypes,\n config,\n currentSchema,\n field,\n interfaceNameDefinitions,\n }) => {\n if (!props?.blocks?.length && !props?.inlineBlocks?.length) {\n return currentSchema\n }\n\n const fields: BlocksField[] = []\n\n if (props?.blocks?.length) {\n fields.push({\n name: field?.name + '_lexical_blocks',\n type: 'blocks',\n blocks: props.blocks,\n })\n }\n if (props?.inlineBlocks?.length) {\n fields.push({\n name: field?.name + '_lexical_inline_blocks',\n type: 'blocks',\n blocks: props.inlineBlocks,\n })\n }\n\n if (fields.length) {\n // This is only done so that interfaceNameDefinitions sets those block's interfaceNames.\n // we don't actually use the JSON Schema itself in the generated types yet.\n fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinitions, config)\n }\n\n return currentSchema\n },\n },\n generateSchemaMap: ({ props }) => {\n /**\n * Add sub-fields to the schemaMap. E.g. if you have an array field as part of the block, and it runs addRow, it will request these\n * sub-fields from the component map. Thus, we need to put them in the component map here.\n */\n const schemaMap = new Map<string, Field[]>()\n\n if (props?.blocks?.length) {\n schemaMap.set('lexical_blocks', [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: props.blocks,\n },\n ])\n }\n\n if (props?.inlineBlocks?.length) {\n // To generate block schemaMap which generates things like the componentMap for admin.Label\n schemaMap.set('lexical_inline_blocks', [\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: props.inlineBlocks,\n },\n ])\n }\n\n return schemaMap\n },\n i18n,\n nodes: [\n createNode({\n // @ts-expect-error - TODO: fix this\n getSubFields: ({ node }) => {\n if (!node) {\n if (props?.blocks?.length) {\n return [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: props.blocks,\n },\n ]\n }\n return []\n }\n\n const blockType = node.fields.blockType\n\n const block = props.blocks?.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(props.blocks)],\n node: ServerBlockNode,\n validations: [blockValidationHOC(props.blocks)],\n }),\n createNode({\n // @ts-expect-error - TODO: fix this\n getSubFields: ({ node }) => {\n if (!node) {\n if (props?.inlineBlocks?.length) {\n return [\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: props.inlineBlocks,\n },\n ]\n }\n return []\n }\n\n const blockType = node.fields.blockType\n\n const block = props.inlineBlocks?.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(props.inlineBlocks)],\n node: ServerInlineBlockNode,\n validations: [blockValidationHOC(props.inlineBlocks)],\n }),\n ],\n sanitizedServerFeatureProps: props,\n }\n },\n key: 'blocks',\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["fieldsToJSONSchema","sanitizeFields","createServerFeature","createNode","blockPopulationPromiseHOC","i18n","ServerBlockNode","ServerInlineBlockNode","blockValidationHOC","BlocksFeature","feature","config","_config","isRoot","parentIsLocalized","props","clientProps","clientBlockSlugs","clientInlineBlockSlugs","validRelationships","collections","map","c","slug","sanitized","fields","name","type","blocks","inlineBlocks","requireFieldLevelRichTextEditor","block","ClientFeature","clientFeatureProps","generatedTypes","modifyOutputSchema","collectionIDFieldTypes","currentSchema","field","interfaceNameDefinitions","length","push","generateSchemaMap","schemaMap","Map","set","nodes","getSubFields","node","blockType","find","getSubFieldsData","graphQLPopulationPromises","validations","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/blocks/server/index.ts"],"sourcesContent":["import type { Block, BlocksField, Config, Field, FieldSchemaMap } from 'payload'\n\nimport { fieldsToJSONSchema, sanitizeFields } from 'payload'\n\nimport type { BlocksFeatureClientProps } from '../client/index.js'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { blockPopulationPromiseHOC } from './graphQLPopulationPromise.js'\nimport { i18n } from './i18n.js'\nimport { ServerBlockNode } from './nodes/BlocksNode.js'\nimport { ServerInlineBlockNode } from './nodes/InlineBlocksNode.js'\nimport { blockValidationHOC } from './validate.js'\n\nexport type BlocksFeatureProps = {\n blocks?: Block[]\n inlineBlocks?: Block[]\n}\n\nexport const BlocksFeature = createServerFeature<\n BlocksFeatureProps,\n BlocksFeatureProps,\n BlocksFeatureClientProps\n>({\n feature: async ({ config: _config, isRoot, parentIsLocalized, props }) => {\n // Build clientProps\n const clientProps: BlocksFeatureClientProps = {\n clientBlockSlugs: [],\n clientInlineBlockSlugs: [],\n }\n const validRelationships = _config.collections.map((c) => c.slug) || []\n\n const sanitized = await sanitizeFields({\n config: _config as unknown as Config,\n fields: [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: props.blocks ?? [],\n },\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: props.inlineBlocks ?? [],\n },\n ],\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n\n props.blocks = (sanitized[0] as BlocksField).blocks\n props.inlineBlocks = (sanitized[1] as BlocksField).blocks\n\n clientProps.clientBlockSlugs = props.blocks.map((block) => block.slug)\n clientProps.clientInlineBlockSlugs = props.inlineBlocks.map((block) => block.slug)\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#BlocksFeatureClient',\n clientFeatureProps: clientProps,\n generatedTypes: {\n modifyOutputSchema: ({\n collectionIDFieldTypes,\n config,\n currentSchema,\n field,\n interfaceNameDefinitions,\n }) => {\n if (!props?.blocks?.length && !props?.inlineBlocks?.length) {\n return currentSchema\n }\n\n const fields: BlocksField[] = []\n\n if (props?.blocks?.length) {\n fields.push({\n name: field?.name + '_lexical_blocks',\n type: 'blocks',\n blocks: props.blocks,\n })\n }\n if (props?.inlineBlocks?.length) {\n fields.push({\n name: field?.name + '_lexical_inline_blocks',\n type: 'blocks',\n blocks: props.inlineBlocks,\n })\n }\n\n if (fields.length) {\n // This is only done so that interfaceNameDefinitions sets those block's interfaceNames.\n // we don't actually use the JSON Schema itself in the generated types yet.\n fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinitions, config)\n }\n\n return currentSchema\n },\n },\n generateSchemaMap: ({ props }) => {\n /**\n * Add sub-fields to the schemaMap. E.g. if you have an array field as part of the block, and it runs addRow, it will request these\n * sub-fields from the component map. Thus, we need to put them in the component map here.\n */\n const schemaMap: FieldSchemaMap = new Map()\n\n if (props?.blocks?.length) {\n for (const block of props.blocks) {\n schemaMap.set(`lexical_blocks.${block.slug}.fields`, {\n fields: block.fields,\n })\n schemaMap.set(`lexical_blocks.${block.slug}`, {\n name: `lexical_blocks_${block.slug}`,\n type: 'blocks',\n blocks: [block],\n })\n }\n }\n\n if (props?.inlineBlocks?.length) {\n // To generate block schemaMap which generates things like the componentMap for admin.Label\n for (const block of props.inlineBlocks) {\n schemaMap.set(`lexical_inline_blocks.${block.slug}.fields`, {\n fields: block.fields,\n })\n\n schemaMap.set(`lexical_inline_blocks.${block.slug}`, {\n name: `lexical_inline_blocks_${block.slug}`,\n type: 'blocks',\n blocks: [block],\n })\n }\n }\n\n return schemaMap\n },\n i18n,\n nodes: [\n createNode({\n // @ts-expect-error - TODO: fix this\n getSubFields: ({ node }) => {\n if (!node) {\n if (props?.blocks?.length) {\n return [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: props.blocks,\n },\n ]\n }\n return []\n }\n\n const blockType = node.fields.blockType\n\n const block = props.blocks?.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(props.blocks)],\n node: ServerBlockNode,\n validations: [blockValidationHOC(props.blocks)],\n }),\n createNode({\n // @ts-expect-error - TODO: fix this\n getSubFields: ({ node }) => {\n if (!node) {\n if (props?.inlineBlocks?.length) {\n return [\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: props.inlineBlocks,\n },\n ]\n }\n return []\n }\n\n const blockType = node.fields.blockType\n\n const block = props.inlineBlocks?.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(props.inlineBlocks)],\n node: ServerInlineBlockNode,\n validations: [blockValidationHOC(props.inlineBlocks)],\n }),\n ],\n sanitizedServerFeatureProps: props,\n }\n },\n key: 'blocks',\n})\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/server/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,KAAK,EAAe,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE7E,eAAO,MAAM,kBAAkB,WACrB,KAAK,EAAE,KACd,cAAc,CAAC,mBAAmB,GAAG,yBAAyB,CA4ChE,CAAA"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/server/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,KAAK,EAAe,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE7E,eAAO,MAAM,kBAAkB,WACrB,KAAK,EAAE,KACd,cAAc,CAAC,mBAAmB,GAAG,yBAAyB,CA+ChE,CAAA"}
@@ -1,4 +1,4 @@
1
- import { buildStateFromSchema } from '@payloadcms/ui/forms/buildStateFromSchema';
1
+ import { fieldSchemasToFormState } from '@payloadcms/ui/forms/fieldSchemasToFormState';
2
2
  export const blockValidationHOC = blocks => {
3
3
  return async ({
4
4
  node,
@@ -21,17 +21,20 @@ export const blockValidationHOC = blocks => {
21
21
  return 'Block not found';
22
22
  }
23
23
  /**
24
- * Run buildStateFromSchema as that properly validates block and block sub-fields
24
+ * Run fieldSchemasToFormState as that properly validates block and block sub-fields
25
25
  */
26
- const result = await buildStateFromSchema({
26
+ const result = await fieldSchemasToFormState({
27
27
  id,
28
28
  collectionSlug,
29
29
  data: blockFieldData,
30
- fieldSchema: block.fields,
30
+ fields: block.fields,
31
+ fieldSchemaMap: undefined,
31
32
  operation: operation === 'create' || operation === 'update' ? operation : 'update',
33
+ permissions: {},
32
34
  preferences,
35
+ renderAllFields: false,
33
36
  req,
34
- siblingData: blockFieldData
37
+ schemaPath: ''
35
38
  });
36
39
  let errorPaths = [];
37
40
  for (const fieldKey in result) {
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","names":["buildStateFromSchema","blockValidationHOC","blocks","node","validation","blockFieldData","fields","options","id","collectionSlug","operation","preferences","req","block","find","slug","blockType","result","data","fieldSchema","siblingData","errorPaths","fieldKey","concat","length","join"],"sources":["../../../../src/features/blocks/server/validate.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nimport { buildStateFromSchema } from '@payloadcms/ui/forms/buildStateFromSchema'\n\nimport type { NodeValidation } from '../../typesServer.js'\nimport type { SerializedInlineBlockNode } from '../client/nodes/InlineBlocksNode.js'\nimport type { BlockFields, SerializedBlockNode } from './nodes/BlocksNode.js'\n\nexport const blockValidationHOC = (\n blocks: Block[],\n): NodeValidation<SerializedBlockNode | SerializedInlineBlockNode> => {\n return async ({ node, validation }) => {\n const blockFieldData = node.fields ?? ({} as BlockFields)\n\n const {\n options: { id, collectionSlug, operation, preferences, req },\n } = validation\n\n // find block\n const block = blocks.find((block) => block.slug === blockFieldData.blockType)\n\n // validate block\n if (!block) {\n return 'Block not found'\n }\n\n /**\n * Run buildStateFromSchema as that properly validates block and block sub-fields\n */\n\n const result = await buildStateFromSchema({\n id,\n collectionSlug,\n data: blockFieldData,\n fieldSchema: block.fields,\n operation: operation === 'create' || operation === 'update' ? operation : 'update',\n preferences,\n req,\n siblingData: blockFieldData,\n })\n\n let errorPaths: string[] = []\n for (const fieldKey in result) {\n if (result[fieldKey].errorPaths) {\n errorPaths = errorPaths.concat(result[fieldKey].errorPaths)\n }\n }\n\n if (errorPaths.length) {\n return 'The following fields are invalid: ' + errorPaths.join(', ')\n }\n\n return true\n }\n}\n"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ;AAMrC,OAAO,MAAMC,kBAAA,GACXC,MAAA;EAEA,OAAO,OAAO;IAAEC,IAAI;IAAEC;EAAU,CAAE;IAChC,MAAMC,cAAA,GAAiBF,IAAA,CAAKG,MAAM,IAAK,CAAC;IAExC,MAAM;MACJC,OAAA,EAAS;QAAEC,EAAE;QAAEC,cAAc;QAAEC,SAAS;QAAEC,WAAW;QAAEC;MAAG;IAAE,CAC7D,GAAGR,UAAA;IAEJ;IACA,MAAMS,KAAA,GAAQX,MAAA,CAAOY,IAAI,CAAED,KAAA,IAAUA,KAAA,CAAME,IAAI,KAAKV,cAAA,CAAeW,SAAS;IAE5E;IACA,IAAI,CAACH,KAAA,EAAO;MACV,OAAO;IACT;IAEA;;;IAIA,MAAMI,MAAA,GAAS,MAAMjB,oBAAA,CAAqB;MACxCQ,EAAA;MACAC,cAAA;MACAS,IAAA,EAAMb,cAAA;MACNc,WAAA,EAAaN,KAAA,CAAMP,MAAM;MACzBI,SAAA,EAAWA,SAAA,KAAc,YAAYA,SAAA,KAAc,WAAWA,SAAA,GAAY;MAC1EC,WAAA;MACAC,GAAA;MACAQ,WAAA,EAAaf;IACf;IAEA,IAAIgB,UAAA,GAAuB,EAAE;IAC7B,KAAK,MAAMC,QAAA,IAAYL,MAAA,EAAQ;MAC7B,IAAIA,MAAM,CAACK,QAAA,CAAS,CAACD,UAAU,EAAE;QAC/BA,UAAA,GAAaA,UAAA,CAAWE,MAAM,CAACN,MAAM,CAACK,QAAA,CAAS,CAACD,UAAU;MAC5D;IACF;IAEA,IAAIA,UAAA,CAAWG,MAAM,EAAE;MACrB,OAAO,uCAAuCH,UAAA,CAAWI,IAAI,CAAC;IAChE;IAEA,OAAO;EACT;AACF","ignoreList":[]}
1
+ {"version":3,"file":"validate.js","names":["fieldSchemasToFormState","blockValidationHOC","blocks","node","validation","blockFieldData","fields","options","id","collectionSlug","operation","preferences","req","block","find","slug","blockType","result","data","fieldSchemaMap","undefined","permissions","renderAllFields","schemaPath","errorPaths","fieldKey","concat","length","join"],"sources":["../../../../src/features/blocks/server/validate.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nimport { fieldSchemasToFormState } from '@payloadcms/ui/forms/fieldSchemasToFormState'\n\nimport type { NodeValidation } from '../../typesServer.js'\nimport type { SerializedInlineBlockNode } from '../client/nodes/InlineBlocksNode.js'\nimport type { BlockFields, SerializedBlockNode } from './nodes/BlocksNode.js'\n\nexport const blockValidationHOC = (\n blocks: Block[],\n): NodeValidation<SerializedBlockNode | SerializedInlineBlockNode> => {\n return async ({ node, validation }) => {\n const blockFieldData = node.fields ?? ({} as BlockFields)\n\n const {\n options: { id, collectionSlug, operation, preferences, req },\n } = validation\n\n // find block\n const block = blocks.find((block) => block.slug === blockFieldData.blockType)\n\n // validate block\n if (!block) {\n return 'Block not found'\n }\n\n /**\n * Run fieldSchemasToFormState as that properly validates block and block sub-fields\n */\n\n const result = await fieldSchemasToFormState({\n id,\n collectionSlug,\n data: blockFieldData,\n fields: block.fields,\n fieldSchemaMap: undefined,\n operation: operation === 'create' || operation === 'update' ? operation : 'update',\n permissions: {},\n preferences,\n renderAllFields: false,\n req,\n schemaPath: '',\n })\n\n let errorPaths: string[] = []\n for (const fieldKey in result) {\n if (result[fieldKey].errorPaths) {\n errorPaths = errorPaths.concat(result[fieldKey].errorPaths)\n }\n }\n\n if (errorPaths.length) {\n return 'The following fields are invalid: ' + errorPaths.join(', ')\n }\n\n return true\n }\n}\n"],"mappings":"AAEA,SAASA,uBAAuB,QAAQ;AAMxC,OAAO,MAAMC,kBAAA,GACXC,MAAA;EAEA,OAAO,OAAO;IAAEC,IAAI;IAAEC;EAAU,CAAE;IAChC,MAAMC,cAAA,GAAiBF,IAAA,CAAKG,MAAM,IAAK,CAAC;IAExC,MAAM;MACJC,OAAA,EAAS;QAAEC,EAAE;QAAEC,cAAc;QAAEC,SAAS;QAAEC,WAAW;QAAEC;MAAG;IAAE,CAC7D,GAAGR,UAAA;IAEJ;IACA,MAAMS,KAAA,GAAQX,MAAA,CAAOY,IAAI,CAAED,KAAA,IAAUA,KAAA,CAAME,IAAI,KAAKV,cAAA,CAAeW,SAAS;IAE5E;IACA,IAAI,CAACH,KAAA,EAAO;MACV,OAAO;IACT;IAEA;;;IAIA,MAAMI,MAAA,GAAS,MAAMjB,uBAAA,CAAwB;MAC3CQ,EAAA;MACAC,cAAA;MACAS,IAAA,EAAMb,cAAA;MACNC,MAAA,EAAQO,KAAA,CAAMP,MAAM;MACpBa,cAAA,EAAgBC,SAAA;MAChBV,SAAA,EAAWA,SAAA,KAAc,YAAYA,SAAA,KAAc,WAAWA,SAAA,GAAY;MAC1EW,WAAA,EAAa,CAAC;MACdV,WAAA;MACAW,eAAA,EAAiB;MACjBV,GAAA;MACAW,UAAA,EAAY;IACd;IAEA,IAAIC,UAAA,GAAuB,EAAE;IAC7B,KAAK,MAAMC,QAAA,IAAYR,MAAA,EAAQ;MAC7B,IAAIA,MAAM,CAACQ,QAAA,CAAS,CAACD,UAAU,EAAE;QAC/BA,UAAA,GAAaA,UAAA,CAAWE,MAAM,CAACT,MAAM,CAACQ,QAAA,CAAS,CAACD,UAAU;MAC5D;IACF;IAEA,IAAIA,UAAA,CAAWG,MAAM,EAAE;MACrB,OAAO,uCAAuCH,UAAA,CAAWI,IAAI,CAAC;IAChE;IAEA,OAAO;EACT;AACF","ignoreList":[]}