@payloadcms/richtext-lexical 3.0.0-beta.126 → 3.0.0-beta.128

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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["TableCellNode","TableNode","TableRowNode","sanitizeFields","createServerFeature","convertLexicalNodesToHTML","createNode","fields","name","type","defaultValue","required","EXPERIMENTAL_TableFeature","feature","config","isRoot","parentIsLocalized","validRelationships","collections","map","c","slug","sanitizedFields","requireFieldLevelRichTextEditor","ClientFeature","generateSchemaMap","schemaMap","Map","set","nodes","converters","html","converter","currentDepth","depth","draft","node","overrideAccess","parent","req","showHiddenFields","childrenText","lexicalNodes","children","nodeTypes","getType","tagName","headerState","headerStateClass","backgroundColor","colSpan","rowSpan","key"],"sources":["../../../../src/features/experimental_table/server/index.ts"],"sourcesContent":["import type {\n SerializedTableCellNode as _SerializedTableCellNode,\n SerializedTableNode as _SerializedTableNode,\n SerializedTableRowNode as _SerializedTableRowNode,\n} from '@lexical/table'\nimport type { Spread } from 'lexical'\nimport type { Config, Field } from 'payload'\n\nimport { TableCellNode, TableNode, TableRowNode } from '@lexical/table'\nimport { sanitizeFields } from 'payload'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { convertLexicalNodesToHTML } from '../../converters/html/converter/index.js'\nimport { createNode } from '../../typeUtilities.js'\n\nconst fields: Field[] = [\n {\n name: 'rows',\n type: 'number',\n defaultValue: 5,\n required: true,\n },\n {\n name: 'columns',\n type: 'number',\n defaultValue: 5,\n required: true,\n },\n]\n\nexport type SerializedTableCellNode = Spread<\n {\n type: 'tablecell'\n },\n _SerializedTableCellNode\n>\n\nexport type SerializedTableNode = Spread<\n {\n type: 'table'\n },\n _SerializedTableNode\n>\n\nexport type SerializedTableRowNode = Spread<\n {\n type: 'tablerow'\n },\n _SerializedTableRowNode\n>\nexport const EXPERIMENTAL_TableFeature = createServerFeature({\n feature: async ({ config, isRoot, parentIsLocalized }) => {\n const validRelationships = config.collections.map((c) => c.slug) || []\n\n const sanitizedFields = await sanitizeFields({\n config: config as unknown as Config,\n fields,\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#TableFeatureClient',\n generateSchemaMap: () => {\n const schemaMap = new Map<string, Field[]>()\n\n schemaMap.set('fields', sanitizedFields)\n\n return schemaMap\n },\n nodes: [\n createNode({\n converters: {\n html: {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n return `<table class=\"lexical-table\" style=\"border-collapse: collapse;\">${childrenText}</table>`\n },\n nodeTypes: [TableNode.getType()],\n },\n },\n node: TableNode,\n }),\n createNode({\n converters: {\n html: {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n\n const tagName = node.headerState > 0 ? 'th' : 'td'\n const headerStateClass = `lexical-table-cell-header-${node.headerState}`\n const backgroundColor = node.backgroundColor\n ? `background-color: ${node.backgroundColor};`\n : ''\n const colSpan = node.colSpan && node.colSpan > 1 ? `colspan=\"${node.colSpan}\"` : ''\n const rowSpan = node.rowSpan && node.rowSpan > 1 ? `rowspan=\"${node.rowSpan}\"` : ''\n\n return `<${tagName} class=\"lexical-table-cell ${headerStateClass}\" style=\"border: 1px solid #ccc; padding: 8px; ${backgroundColor}\" ${colSpan} ${rowSpan}>${childrenText}</${tagName}>`\n },\n nodeTypes: [TableCellNode.getType()],\n },\n },\n node: TableCellNode,\n }),\n createNode({\n converters: {\n html: {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n return `<tr class=\"lexical-table-row\">${childrenText}</tr>`\n },\n nodeTypes: [TableRowNode.getType()],\n },\n },\n node: TableRowNode,\n }),\n ],\n }\n },\n key: 'experimental_table',\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["TableCellNode","TableNode","TableRowNode","sanitizeFields","createServerFeature","convertLexicalNodesToHTML","createNode","fields","name","type","defaultValue","required","EXPERIMENTAL_TableFeature","feature","config","isRoot","parentIsLocalized","validRelationships","collections","map","c","slug","sanitizedFields","requireFieldLevelRichTextEditor","ClientFeature","generateSchemaMap","schemaMap","Map","set","nodes","converters","html","converter","currentDepth","depth","draft","node","overrideAccess","parent","req","showHiddenFields","childrenText","lexicalNodes","children","nodeTypes","getType","tagName","headerState","headerStateClass","backgroundColor","colSpan","rowSpan","key"],"sources":["../../../../src/features/experimental_table/server/index.ts"],"sourcesContent":["import type {\n SerializedTableCellNode as _SerializedTableCellNode,\n SerializedTableNode as _SerializedTableNode,\n SerializedTableRowNode as _SerializedTableRowNode,\n} from '@lexical/table'\nimport type { Spread } from 'lexical'\nimport type { Config, Field, FieldSchemaMap } from 'payload'\n\nimport { TableCellNode, TableNode, TableRowNode } from '@lexical/table'\nimport { sanitizeFields } from 'payload'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { convertLexicalNodesToHTML } from '../../converters/html/converter/index.js'\nimport { createNode } from '../../typeUtilities.js'\n\nconst fields: Field[] = [\n {\n name: 'rows',\n type: 'number',\n defaultValue: 5,\n required: true,\n },\n {\n name: 'columns',\n type: 'number',\n defaultValue: 5,\n required: true,\n },\n]\n\nexport type SerializedTableCellNode = Spread<\n {\n type: 'tablecell'\n },\n _SerializedTableCellNode\n>\n\nexport type SerializedTableNode = Spread<\n {\n type: 'table'\n },\n _SerializedTableNode\n>\n\nexport type SerializedTableRowNode = Spread<\n {\n type: 'tablerow'\n },\n _SerializedTableRowNode\n>\nexport const EXPERIMENTAL_TableFeature = createServerFeature({\n feature: async ({ config, isRoot, parentIsLocalized }) => {\n const validRelationships = config.collections.map((c) => c.slug) || []\n\n const sanitizedFields = await sanitizeFields({\n config: config as unknown as Config,\n fields,\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#TableFeatureClient',\n generateSchemaMap: () => {\n const schemaMap: FieldSchemaMap = new Map()\n\n schemaMap.set('fields', {\n fields: sanitizedFields,\n })\n\n return schemaMap\n },\n nodes: [\n createNode({\n converters: {\n html: {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n return `<table class=\"lexical-table\" style=\"border-collapse: collapse;\">${childrenText}</table>`\n },\n nodeTypes: [TableNode.getType()],\n },\n },\n node: TableNode,\n }),\n createNode({\n converters: {\n html: {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n\n const tagName = node.headerState > 0 ? 'th' : 'td'\n const headerStateClass = `lexical-table-cell-header-${node.headerState}`\n const backgroundColor = node.backgroundColor\n ? `background-color: ${node.backgroundColor};`\n : ''\n const colSpan = node.colSpan && node.colSpan > 1 ? `colspan=\"${node.colSpan}\"` : ''\n const rowSpan = node.rowSpan && node.rowSpan > 1 ? `rowspan=\"${node.rowSpan}\"` : ''\n\n return `<${tagName} class=\"lexical-table-cell ${headerStateClass}\" style=\"border: 1px solid #ccc; padding: 8px; ${backgroundColor}\" ${colSpan} ${rowSpan}>${childrenText}</${tagName}>`\n },\n nodeTypes: [TableCellNode.getType()],\n },\n },\n node: TableCellNode,\n }),\n createNode({\n converters: {\n html: {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n return `<tr class=\"lexical-table-row\">${childrenText}</tr>`\n },\n nodeTypes: [TableRowNode.getType()],\n },\n },\n node: TableRowNode,\n }),\n ],\n }\n },\n key: 'experimental_table',\n})\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../../src/features/format/bold/feature.client.tsx"],"names":[],"mappings":"AAkCA,eAAO,MAAM,iBAAiB,oFAe5B,CAAA"}
1
+ {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../../src/features/format/bold/feature.client.tsx"],"names":[],"mappings":"AAmCA,eAAO,MAAM,iBAAiB,oFAe5B,CAAA"}
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
 
3
+ import { $isTableSelection } from '@lexical/table';
3
4
  import { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical';
4
5
  import { BoldIcon } from '../../../lexical/ui/icons/Bold/index.js';
5
6
  import { createClientFeature } from '../../../utilities/createClientFeature.js';
@@ -10,7 +11,7 @@ const toolbarGroups = [toolbarFormatGroupWithItems([{
10
11
  isActive: ({
11
12
  selection
12
13
  }) => {
13
- if ($isRangeSelection(selection)) {
14
+ if ($isRangeSelection(selection) || $isTableSelection(selection)) {
14
15
  return selection.hasFormat('bold');
15
16
  }
16
17
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.js","names":["$isRangeSelection","FORMAT_TEXT_COMMAND","BoldIcon","createClientFeature","toolbarFormatGroupWithItems","BOLD_ITALIC_STAR","BOLD_ITALIC_UNDERSCORE","BOLD_STAR","BOLD_UNDERSCORE","toolbarGroups","ChildComponent","isActive","selection","hasFormat","key","onSelect","editor","dispatchCommand","order","BoldFeatureClient","featureProviderMap","markdownTransformers","get","push","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/format/bold/feature.client.tsx"],"sourcesContent":["'use client'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { BoldIcon } from '../../../lexical/ui/icons/Bold/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport {\n BOLD_ITALIC_STAR,\n BOLD_ITALIC_UNDERSCORE,\n BOLD_STAR,\n BOLD_UNDERSCORE,\n} from './markdownTransformers.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: BoldIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n return selection.hasFormat('bold')\n }\n return false\n },\n key: 'bold',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'bold')\n },\n order: 1,\n },\n ]),\n]\n\nexport const BoldFeatureClient = createClientFeature(({ featureProviderMap }) => {\n const markdownTransformers = [BOLD_STAR, BOLD_UNDERSCORE]\n if (featureProviderMap.get('italic')) {\n markdownTransformers.push(BOLD_ITALIC_UNDERSCORE, BOLD_ITALIC_STAR)\n }\n\n return {\n markdownTransformers,\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n }\n})\n"],"mappings":"AAAA;;AACA,SAASA,iBAAiB,EAAEC,mBAAmB,QAAQ;AAIvD,SAASC,QAAQ,QAAQ;AACzB,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAC5C,SACEC,gBAAgB,EAChBC,sBAAsB,EACtBC,SAAS,EACTC,eAAe,QACV;AAEP,MAAMC,aAAA,GAAgC,CACpCL,2BAAA,CAA4B,CAC1B;EACEM,cAAA,EAAgBR,QAAA;EAChBS,QAAA,EAAUA,CAAC;IAAEC;EAAS,CAAE;IACtB,IAAIZ,iBAAA,CAAkBY,SAAA,GAAY;MAChC,OAAOA,SAAA,CAAUC,SAAS,CAAC;IAC7B;IACA,OAAO;EACT;EACAC,GAAA,EAAK;EACLC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAAChB,mBAAA,EAAqB;EAC9C;EACAiB,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,iBAAA,GAAoBhB,mBAAA,CAAoB,CAAC;EAAEiB;AAAkB,CAAE;EAC1E,MAAMC,oBAAA,GAAuB,CAACd,SAAA,EAAWC,eAAA,CAAgB;EACzD,IAAIY,kBAAA,CAAmBE,GAAG,CAAC,WAAW;IACpCD,oBAAA,CAAqBE,IAAI,CAACjB,sBAAA,EAAwBD,gBAAA;EACpD;EAEA,OAAO;IACLgB,oBAAA;IACAG,YAAA,EAAc;MACZC,MAAA,EAAQhB;IACV;IACAiB,aAAA,EAAe;MACbD,MAAA,EAAQhB;IACV;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"feature.client.js","names":["$isTableSelection","$isRangeSelection","FORMAT_TEXT_COMMAND","BoldIcon","createClientFeature","toolbarFormatGroupWithItems","BOLD_ITALIC_STAR","BOLD_ITALIC_UNDERSCORE","BOLD_STAR","BOLD_UNDERSCORE","toolbarGroups","ChildComponent","isActive","selection","hasFormat","key","onSelect","editor","dispatchCommand","order","BoldFeatureClient","featureProviderMap","markdownTransformers","get","push","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/format/bold/feature.client.tsx"],"sourcesContent":["'use client'\nimport { $isTableSelection } from '@lexical/table'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { BoldIcon } from '../../../lexical/ui/icons/Bold/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport {\n BOLD_ITALIC_STAR,\n BOLD_ITALIC_UNDERSCORE,\n BOLD_STAR,\n BOLD_UNDERSCORE,\n} from './markdownTransformers.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: BoldIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection) || $isTableSelection(selection)) {\n return selection.hasFormat('bold')\n }\n return false\n },\n key: 'bold',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'bold')\n },\n order: 1,\n },\n ]),\n]\n\nexport const BoldFeatureClient = createClientFeature(({ featureProviderMap }) => {\n const markdownTransformers = [BOLD_STAR, BOLD_UNDERSCORE]\n if (featureProviderMap.get('italic')) {\n markdownTransformers.push(BOLD_ITALIC_UNDERSCORE, BOLD_ITALIC_STAR)\n }\n\n return {\n markdownTransformers,\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n }\n})\n"],"mappings":"AAAA;;AACA,SAASA,iBAAiB,QAAQ;AAClC,SAASC,iBAAiB,EAAEC,mBAAmB,QAAQ;AAIvD,SAASC,QAAQ,QAAQ;AACzB,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAC5C,SACEC,gBAAgB,EAChBC,sBAAsB,EACtBC,SAAS,EACTC,eAAe,QACV;AAEP,MAAMC,aAAA,GAAgC,CACpCL,2BAAA,CAA4B,CAC1B;EACEM,cAAA,EAAgBR,QAAA;EAChBS,QAAA,EAAUA,CAAC;IAAEC;EAAS,CAAE;IACtB,IAAIZ,iBAAA,CAAkBY,SAAA,KAAcb,iBAAA,CAAkBa,SAAA,GAAY;MAChE,OAAOA,SAAA,CAAUC,SAAS,CAAC;IAC7B;IACA,OAAO;EACT;EACAC,GAAA,EAAK;EACLC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAAChB,mBAAA,EAAqB;EAC9C;EACAiB,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,iBAAA,GAAoBhB,mBAAA,CAAoB,CAAC;EAAEiB;AAAkB,CAAE;EAC1E,MAAMC,oBAAA,GAAuB,CAACd,SAAA,EAAWC,eAAA,CAAgB;EACzD,IAAIY,kBAAA,CAAmBE,GAAG,CAAC,WAAW;IACpCD,oBAAA,CAAqBE,IAAI,CAACjB,sBAAA,EAAwBD,gBAAA;EACpD;EAEA,OAAO;IACLgB,oBAAA;IACAG,YAAA,EAAc;MACZC,MAAA,EAAQhB;IACV;IACAiB,aAAA,EAAe;MACbD,MAAA,EAAQhB;IACV;EACF;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../../src/features/format/inlineCode/feature.client.tsx"],"names":[],"mappings":"AA8BA,eAAO,MAAM,uBAAuB,oFAQlC,CAAA"}
1
+ {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../../src/features/format/inlineCode/feature.client.tsx"],"names":[],"mappings":"AA+BA,eAAO,MAAM,uBAAuB,oFAQlC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
 
3
+ import { $isTableSelection } from '@lexical/table';
3
4
  import { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical';
4
5
  import { CodeIcon } from '../../../lexical/ui/icons/Code/index.js';
5
6
  import { createClientFeature } from '../../../utilities/createClientFeature.js';
@@ -10,7 +11,7 @@ const toolbarGroups = [toolbarFormatGroupWithItems([{
10
11
  isActive: ({
11
12
  selection
12
13
  }) => {
13
- if ($isRangeSelection(selection)) {
14
+ if ($isRangeSelection(selection) || $isTableSelection(selection)) {
14
15
  return selection.hasFormat('code');
15
16
  }
16
17
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.js","names":["$isRangeSelection","FORMAT_TEXT_COMMAND","CodeIcon","createClientFeature","toolbarFormatGroupWithItems","INLINE_CODE","toolbarGroups","ChildComponent","isActive","selection","hasFormat","key","onSelect","editor","dispatchCommand","order","InlineCodeFeatureClient","markdownTransformers","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/format/inlineCode/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { CodeIcon } from '../../../lexical/ui/icons/Code/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport { INLINE_CODE } from './markdownTransformers.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: CodeIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n return selection.hasFormat('code')\n }\n return false\n },\n key: 'inlineCode',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'code')\n },\n order: 7,\n },\n ]),\n]\n\nexport const InlineCodeFeatureClient = createClientFeature({\n markdownTransformers: [INLINE_CODE],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n"],"mappings":"AAAA;;AAEA,SAASA,iBAAiB,EAAEC,mBAAmB,QAAQ;AAIvD,SAASC,QAAQ,QAAQ;AACzB,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAC5C,SAASC,WAAW,QAAQ;AAE5B,MAAMC,aAAA,GAAgC,CACpCF,2BAAA,CAA4B,CAC1B;EACEG,cAAA,EAAgBL,QAAA;EAChBM,QAAA,EAAUA,CAAC;IAAEC;EAAS,CAAE;IACtB,IAAIT,iBAAA,CAAkBS,SAAA,GAAY;MAChC,OAAOA,SAAA,CAAUC,SAAS,CAAC;IAC7B;IACA,OAAO;EACT;EACAC,GAAA,EAAK;EACLC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAACb,mBAAA,EAAqB;EAC9C;EACAc,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,uBAAA,GAA0Bb,mBAAA,CAAoB;EACzDc,oBAAA,EAAsB,CAACZ,WAAA,CAAY;EACnCa,YAAA,EAAc;IACZC,MAAA,EAAQb;EACV;EACAc,aAAA,EAAe;IACbD,MAAA,EAAQb;EACV;AACF","ignoreList":[]}
1
+ {"version":3,"file":"feature.client.js","names":["$isTableSelection","$isRangeSelection","FORMAT_TEXT_COMMAND","CodeIcon","createClientFeature","toolbarFormatGroupWithItems","INLINE_CODE","toolbarGroups","ChildComponent","isActive","selection","hasFormat","key","onSelect","editor","dispatchCommand","order","InlineCodeFeatureClient","markdownTransformers","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/format/inlineCode/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport { $isTableSelection } from '@lexical/table'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { CodeIcon } from '../../../lexical/ui/icons/Code/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport { INLINE_CODE } from './markdownTransformers.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: CodeIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection) || $isTableSelection(selection)) {\n return selection.hasFormat('code')\n }\n return false\n },\n key: 'inlineCode',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'code')\n },\n order: 7,\n },\n ]),\n]\n\nexport const InlineCodeFeatureClient = createClientFeature({\n markdownTransformers: [INLINE_CODE],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n"],"mappings":"AAAA;;AAEA,SAASA,iBAAiB,QAAQ;AAClC,SAASC,iBAAiB,EAAEC,mBAAmB,QAAQ;AAIvD,SAASC,QAAQ,QAAQ;AACzB,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAC5C,SAASC,WAAW,QAAQ;AAE5B,MAAMC,aAAA,GAAgC,CACpCF,2BAAA,CAA4B,CAC1B;EACEG,cAAA,EAAgBL,QAAA;EAChBM,QAAA,EAAUA,CAAC;IAAEC;EAAS,CAAE;IACtB,IAAIT,iBAAA,CAAkBS,SAAA,KAAcV,iBAAA,CAAkBU,SAAA,GAAY;MAChE,OAAOA,SAAA,CAAUC,SAAS,CAAC;IAC7B;IACA,OAAO;EACT;EACAC,GAAA,EAAK;EACLC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAACb,mBAAA,EAAqB;EAC9C;EACAc,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,uBAAA,GAA0Bb,mBAAA,CAAoB;EACzDc,oBAAA,EAAsB,CAACZ,WAAA,CAAY;EACnCa,YAAA,EAAc;IACZC,MAAA,EAAQb;EACV;EACAc,aAAA,EAAe;IACbD,MAAA,EAAQb;EACV;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../../src/features/format/italic/feature.client.tsx"],"names":[],"mappings":"AA8BA,eAAO,MAAM,mBAAmB,oFAQ9B,CAAA"}
1
+ {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../../src/features/format/italic/feature.client.tsx"],"names":[],"mappings":"AA+BA,eAAO,MAAM,mBAAmB,oFAQ9B,CAAA"}
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
 
3
+ import { $isTableSelection } from '@lexical/table';
3
4
  import { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical';
4
5
  import { ItalicIcon } from '../../../lexical/ui/icons/Italic/index.js';
5
6
  import { createClientFeature } from '../../../utilities/createClientFeature.js';
@@ -10,7 +11,7 @@ const toolbarGroups = [toolbarFormatGroupWithItems([{
10
11
  isActive: ({
11
12
  selection
12
13
  }) => {
13
- if ($isRangeSelection(selection)) {
14
+ if ($isRangeSelection(selection) || $isTableSelection(selection)) {
14
15
  return selection.hasFormat('italic');
15
16
  }
16
17
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.js","names":["$isRangeSelection","FORMAT_TEXT_COMMAND","ItalicIcon","createClientFeature","toolbarFormatGroupWithItems","ITALIC_STAR","ITALIC_UNDERSCORE","toolbarGroups","ChildComponent","isActive","selection","hasFormat","key","onSelect","editor","dispatchCommand","order","ItalicFeatureClient","markdownTransformers","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/format/italic/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { ItalicIcon } from '../../../lexical/ui/icons/Italic/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport { ITALIC_STAR, ITALIC_UNDERSCORE } from './markdownTransformers.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: ItalicIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n return selection.hasFormat('italic')\n }\n return false\n },\n key: 'italic',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'italic')\n },\n order: 2,\n },\n ]),\n]\n\nexport const ItalicFeatureClient = createClientFeature({\n markdownTransformers: [ITALIC_STAR, ITALIC_UNDERSCORE],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n"],"mappings":"AAAA;;AAEA,SAASA,iBAAiB,EAAEC,mBAAmB,QAAQ;AAIvD,SAASC,UAAU,QAAQ;AAC3B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAC5C,SAASC,WAAW,EAAEC,iBAAiB,QAAQ;AAE/C,MAAMC,aAAA,GAAgC,CACpCH,2BAAA,CAA4B,CAC1B;EACEI,cAAA,EAAgBN,UAAA;EAChBO,QAAA,EAAUA,CAAC;IAAEC;EAAS,CAAE;IACtB,IAAIV,iBAAA,CAAkBU,SAAA,GAAY;MAChC,OAAOA,SAAA,CAAUC,SAAS,CAAC;IAC7B;IACA,OAAO;EACT;EACAC,GAAA,EAAK;EACLC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAACd,mBAAA,EAAqB;EAC9C;EACAe,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,mBAAA,GAAsBd,mBAAA,CAAoB;EACrDe,oBAAA,EAAsB,CAACb,WAAA,EAAaC,iBAAA,CAAkB;EACtDa,YAAA,EAAc;IACZC,MAAA,EAAQb;EACV;EACAc,aAAA,EAAe;IACbD,MAAA,EAAQb;EACV;AACF","ignoreList":[]}
1
+ {"version":3,"file":"feature.client.js","names":["$isTableSelection","$isRangeSelection","FORMAT_TEXT_COMMAND","ItalicIcon","createClientFeature","toolbarFormatGroupWithItems","ITALIC_STAR","ITALIC_UNDERSCORE","toolbarGroups","ChildComponent","isActive","selection","hasFormat","key","onSelect","editor","dispatchCommand","order","ItalicFeatureClient","markdownTransformers","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/format/italic/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport { $isTableSelection } from '@lexical/table'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { ItalicIcon } from '../../../lexical/ui/icons/Italic/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport { ITALIC_STAR, ITALIC_UNDERSCORE } from './markdownTransformers.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: ItalicIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection) || $isTableSelection(selection)) {\n return selection.hasFormat('italic')\n }\n return false\n },\n key: 'italic',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'italic')\n },\n order: 2,\n },\n ]),\n]\n\nexport const ItalicFeatureClient = createClientFeature({\n markdownTransformers: [ITALIC_STAR, ITALIC_UNDERSCORE],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n"],"mappings":"AAAA;;AAEA,SAASA,iBAAiB,QAAQ;AAClC,SAASC,iBAAiB,EAAEC,mBAAmB,QAAQ;AAIvD,SAASC,UAAU,QAAQ;AAC3B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAC5C,SAASC,WAAW,EAAEC,iBAAiB,QAAQ;AAE/C,MAAMC,aAAA,GAAgC,CACpCH,2BAAA,CAA4B,CAC1B;EACEI,cAAA,EAAgBN,UAAA;EAChBO,QAAA,EAAUA,CAAC;IAAEC;EAAS,CAAE;IACtB,IAAIV,iBAAA,CAAkBU,SAAA,KAAcX,iBAAA,CAAkBW,SAAA,GAAY;MAChE,OAAOA,SAAA,CAAUC,SAAS,CAAC;IAC7B;IACA,OAAO;EACT;EACAC,GAAA,EAAK;EACLC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAACd,mBAAA,EAAqB;EAC9C;EACAe,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,mBAAA,GAAsBd,mBAAA,CAAoB;EACrDe,oBAAA,EAAsB,CAACb,WAAA,EAAaC,iBAAA,CAAkB;EACtDa,YAAA,EAAc;IACZC,MAAA,EAAQb;EACV;EACAc,aAAA,EAAe;IACbD,MAAA,EAAQb;EACV;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../../src/features/format/strikethrough/feature.client.tsx"],"names":[],"mappings":"AA4BA,eAAO,MAAM,0BAA0B,oFAQrC,CAAA"}
1
+ {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../../src/features/format/strikethrough/feature.client.tsx"],"names":[],"mappings":"AA6BA,eAAO,MAAM,0BAA0B,oFAQrC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
 
3
+ import { $isTableSelection } from '@lexical/table';
3
4
  import { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical';
4
5
  import { StrikethroughIcon } from '../../../lexical/ui/icons/Strikethrough/index.js';
5
6
  import { createClientFeature } from '../../../utilities/createClientFeature.js';
@@ -10,7 +11,7 @@ const toolbarGroups = [toolbarFormatGroupWithItems([{
10
11
  isActive: ({
11
12
  selection
12
13
  }) => {
13
- if ($isRangeSelection(selection)) {
14
+ if ($isRangeSelection(selection) || $isTableSelection(selection)) {
14
15
  return selection.hasFormat('strikethrough');
15
16
  }
16
17
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.js","names":["$isRangeSelection","FORMAT_TEXT_COMMAND","StrikethroughIcon","createClientFeature","toolbarFormatGroupWithItems","STRIKETHROUGH","toolbarGroups","ChildComponent","isActive","selection","hasFormat","key","onSelect","editor","dispatchCommand","order","StrikethroughFeatureClient","markdownTransformers","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/format/strikethrough/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport { StrikethroughIcon } from '../../../lexical/ui/icons/Strikethrough/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport { STRIKETHROUGH } from './markdownTransformers.js'\n\nconst toolbarGroups = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: StrikethroughIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n return selection.hasFormat('strikethrough')\n }\n return false\n },\n key: 'strikethrough',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'strikethrough')\n },\n order: 4,\n },\n ]),\n]\n\nexport const StrikethroughFeatureClient = createClientFeature({\n markdownTransformers: [STRIKETHROUGH],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n"],"mappings":"AAAA;;AAEA,SAASA,iBAAiB,EAAEC,mBAAmB,QAAQ;AAEvD,SAASC,iBAAiB,QAAQ;AAClC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAC5C,SAASC,aAAa,QAAQ;AAE9B,MAAMC,aAAA,GAAgB,CACpBF,2BAAA,CAA4B,CAC1B;EACEG,cAAA,EAAgBL,iBAAA;EAChBM,QAAA,EAAUA,CAAC;IAAEC;EAAS,CAAE;IACtB,IAAIT,iBAAA,CAAkBS,SAAA,GAAY;MAChC,OAAOA,SAAA,CAAUC,SAAS,CAAC;IAC7B;IACA,OAAO;EACT;EACAC,GAAA,EAAK;EACLC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAACb,mBAAA,EAAqB;EAC9C;EACAc,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,0BAAA,GAA6Bb,mBAAA,CAAoB;EAC5Dc,oBAAA,EAAsB,CAACZ,aAAA,CAAc;EACrCa,YAAA,EAAc;IACZC,MAAA,EAAQb;EACV;EACAc,aAAA,EAAe;IACbD,MAAA,EAAQb;EACV;AACF","ignoreList":[]}
1
+ {"version":3,"file":"feature.client.js","names":["$isTableSelection","$isRangeSelection","FORMAT_TEXT_COMMAND","StrikethroughIcon","createClientFeature","toolbarFormatGroupWithItems","STRIKETHROUGH","toolbarGroups","ChildComponent","isActive","selection","hasFormat","key","onSelect","editor","dispatchCommand","order","StrikethroughFeatureClient","markdownTransformers","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/format/strikethrough/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport { $isTableSelection } from '@lexical/table'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport { StrikethroughIcon } from '../../../lexical/ui/icons/Strikethrough/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport { STRIKETHROUGH } from './markdownTransformers.js'\n\nconst toolbarGroups = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: StrikethroughIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection) || $isTableSelection(selection)) {\n return selection.hasFormat('strikethrough')\n }\n return false\n },\n key: 'strikethrough',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'strikethrough')\n },\n order: 4,\n },\n ]),\n]\n\nexport const StrikethroughFeatureClient = createClientFeature({\n markdownTransformers: [STRIKETHROUGH],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n"],"mappings":"AAAA;;AAEA,SAASA,iBAAiB,QAAQ;AAClC,SAASC,iBAAiB,EAAEC,mBAAmB,QAAQ;AAEvD,SAASC,iBAAiB,QAAQ;AAClC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAC5C,SAASC,aAAa,QAAQ;AAE9B,MAAMC,aAAA,GAAgB,CACpBF,2BAAA,CAA4B,CAC1B;EACEG,cAAA,EAAgBL,iBAAA;EAChBM,QAAA,EAAUA,CAAC;IAAEC;EAAS,CAAE;IACtB,IAAIT,iBAAA,CAAkBS,SAAA,KAAcV,iBAAA,CAAkBU,SAAA,GAAY;MAChE,OAAOA,SAAA,CAAUC,SAAS,CAAC;IAC7B;IACA,OAAO;EACT;EACAC,GAAA,EAAK;EACLC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAACb,mBAAA,EAAqB;EAC9C;EACAc,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,0BAAA,GAA6Bb,mBAAA,CAAoB;EAC5Dc,oBAAA,EAAsB,CAACZ,aAAA,CAAc;EACrCa,YAAA,EAAc;IACZC,MAAA,EAAQb;EACV;EACAc,aAAA,EAAe;IACbD,MAAA,EAAQb;EACV;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../../src/features/format/subscript/feature.client.tsx"],"names":[],"mappings":"AA6BA,eAAO,MAAM,sBAAsB,oFAOjC,CAAA"}
1
+ {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../../src/features/format/subscript/feature.client.tsx"],"names":[],"mappings":"AA8BA,eAAO,MAAM,sBAAsB,oFAOjC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
 
3
+ import { $isTableSelection } from '@lexical/table';
3
4
  import { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical';
4
5
  import { SubscriptIcon } from '../../../lexical/ui/icons/Subscript/index.js';
5
6
  import { createClientFeature } from '../../../utilities/createClientFeature.js';
@@ -9,7 +10,7 @@ const toolbarGroups = [toolbarFormatGroupWithItems([{
9
10
  isActive: ({
10
11
  selection
11
12
  }) => {
12
- if ($isRangeSelection(selection)) {
13
+ if ($isRangeSelection(selection) || $isTableSelection(selection)) {
13
14
  return selection.hasFormat('subscript');
14
15
  }
15
16
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.js","names":["$isRangeSelection","FORMAT_TEXT_COMMAND","SubscriptIcon","createClientFeature","toolbarFormatGroupWithItems","toolbarGroups","ChildComponent","isActive","selection","hasFormat","key","onSelect","editor","dispatchCommand","order","SubscriptFeatureClient","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/format/subscript/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { SubscriptIcon } from '../../../lexical/ui/icons/Subscript/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: SubscriptIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n return selection.hasFormat('subscript')\n }\n return false\n },\n key: 'subscript',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'subscript')\n },\n order: 5,\n },\n ]),\n]\n\nexport const SubscriptFeatureClient = createClientFeature({\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n"],"mappings":"AAAA;;AAEA,SAASA,iBAAiB,EAAEC,mBAAmB,QAAQ;AAIvD,SAASC,aAAa,QAAQ;AAC9B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAE5C,MAAMC,aAAA,GAAgC,CACpCD,2BAAA,CAA4B,CAC1B;EACEE,cAAA,EAAgBJ,aAAA;EAChBK,QAAA,EAAUA,CAAC;IAAEC;EAAS,CAAE;IACtB,IAAIR,iBAAA,CAAkBQ,SAAA,GAAY;MAChC,OAAOA,SAAA,CAAUC,SAAS,CAAC;IAC7B;IACA,OAAO;EACT;EACAC,GAAA,EAAK;EACLC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAACZ,mBAAA,EAAqB;EAC9C;EACAa,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,sBAAA,GAAyBZ,mBAAA,CAAoB;EACxDa,YAAA,EAAc;IACZC,MAAA,EAAQZ;EACV;EACAa,aAAA,EAAe;IACbD,MAAA,EAAQZ;EACV;AACF","ignoreList":[]}
1
+ {"version":3,"file":"feature.client.js","names":["$isTableSelection","$isRangeSelection","FORMAT_TEXT_COMMAND","SubscriptIcon","createClientFeature","toolbarFormatGroupWithItems","toolbarGroups","ChildComponent","isActive","selection","hasFormat","key","onSelect","editor","dispatchCommand","order","SubscriptFeatureClient","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/format/subscript/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport { $isTableSelection } from '@lexical/table'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { SubscriptIcon } from '../../../lexical/ui/icons/Subscript/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: SubscriptIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection) || $isTableSelection(selection)) {\n return selection.hasFormat('subscript')\n }\n return false\n },\n key: 'subscript',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'subscript')\n },\n order: 5,\n },\n ]),\n]\n\nexport const SubscriptFeatureClient = createClientFeature({\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n"],"mappings":"AAAA;;AAEA,SAASA,iBAAiB,QAAQ;AAClC,SAASC,iBAAiB,EAAEC,mBAAmB,QAAQ;AAIvD,SAASC,aAAa,QAAQ;AAC9B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAE5C,MAAMC,aAAA,GAAgC,CACpCD,2BAAA,CAA4B,CAC1B;EACEE,cAAA,EAAgBJ,aAAA;EAChBK,QAAA,EAAUA,CAAC;IAAEC;EAAS,CAAE;IACtB,IAAIR,iBAAA,CAAkBQ,SAAA,KAAcT,iBAAA,CAAkBS,SAAA,GAAY;MAChE,OAAOA,SAAA,CAAUC,SAAS,CAAC;IAC7B;IACA,OAAO;EACT;EACAC,GAAA,EAAK;EACLC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAACZ,mBAAA,EAAqB;EAC9C;EACAa,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,sBAAA,GAAyBZ,mBAAA,CAAoB;EACxDa,YAAA,EAAc;IACZC,MAAA,EAAQZ;EACV;EACAa,aAAA,EAAe;IACbD,MAAA,EAAQZ;EACV;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../../src/features/format/superscript/feature.client.tsx"],"names":[],"mappings":"AA6BA,eAAO,MAAM,wBAAwB,oFAOnC,CAAA"}
1
+ {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../../src/features/format/superscript/feature.client.tsx"],"names":[],"mappings":"AA8BA,eAAO,MAAM,wBAAwB,oFAOnC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
 
3
+ import { $isTableSelection } from '@lexical/table';
3
4
  import { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical';
4
5
  import { SuperscriptIcon } from '../../../lexical/ui/icons/Superscript/index.js';
5
6
  import { createClientFeature } from '../../../utilities/createClientFeature.js';
@@ -9,7 +10,7 @@ const toolbarGroups = [toolbarFormatGroupWithItems([{
9
10
  isActive: ({
10
11
  selection
11
12
  }) => {
12
- if ($isRangeSelection(selection)) {
13
+ if ($isRangeSelection(selection) || $isTableSelection(selection)) {
13
14
  return selection.hasFormat('superscript');
14
15
  }
15
16
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.js","names":["$isRangeSelection","FORMAT_TEXT_COMMAND","SuperscriptIcon","createClientFeature","toolbarFormatGroupWithItems","toolbarGroups","ChildComponent","isActive","selection","hasFormat","key","onSelect","editor","dispatchCommand","order","SuperscriptFeatureClient","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/format/superscript/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { SuperscriptIcon } from '../../../lexical/ui/icons/Superscript/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: SuperscriptIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n return selection.hasFormat('superscript')\n }\n return false\n },\n key: 'superscript',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'superscript')\n },\n order: 6,\n },\n ]),\n]\n\nexport const SuperscriptFeatureClient = createClientFeature({\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n"],"mappings":"AAAA;;AAEA,SAASA,iBAAiB,EAAEC,mBAAmB,QAAQ;AAIvD,SAASC,eAAe,QAAQ;AAChC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAE5C,MAAMC,aAAA,GAAgC,CACpCD,2BAAA,CAA4B,CAC1B;EACEE,cAAA,EAAgBJ,eAAA;EAChBK,QAAA,EAAUA,CAAC;IAAEC;EAAS,CAAE;IACtB,IAAIR,iBAAA,CAAkBQ,SAAA,GAAY;MAChC,OAAOA,SAAA,CAAUC,SAAS,CAAC;IAC7B;IACA,OAAO;EACT;EACAC,GAAA,EAAK;EACLC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAACZ,mBAAA,EAAqB;EAC9C;EACAa,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,wBAAA,GAA2BZ,mBAAA,CAAoB;EAC1Da,YAAA,EAAc;IACZC,MAAA,EAAQZ;EACV;EACAa,aAAA,EAAe;IACbD,MAAA,EAAQZ;EACV;AACF","ignoreList":[]}
1
+ {"version":3,"file":"feature.client.js","names":["$isTableSelection","$isRangeSelection","FORMAT_TEXT_COMMAND","SuperscriptIcon","createClientFeature","toolbarFormatGroupWithItems","toolbarGroups","ChildComponent","isActive","selection","hasFormat","key","onSelect","editor","dispatchCommand","order","SuperscriptFeatureClient","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/format/superscript/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport { $isTableSelection } from '@lexical/table'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { SuperscriptIcon } from '../../../lexical/ui/icons/Superscript/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: SuperscriptIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection) || $isTableSelection(selection)) {\n return selection.hasFormat('superscript')\n }\n return false\n },\n key: 'superscript',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'superscript')\n },\n order: 6,\n },\n ]),\n]\n\nexport const SuperscriptFeatureClient = createClientFeature({\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n"],"mappings":"AAAA;;AAEA,SAASA,iBAAiB,QAAQ;AAClC,SAASC,iBAAiB,EAAEC,mBAAmB,QAAQ;AAIvD,SAASC,eAAe,QAAQ;AAChC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAE5C,MAAMC,aAAA,GAAgC,CACpCD,2BAAA,CAA4B,CAC1B;EACEE,cAAA,EAAgBJ,eAAA;EAChBK,QAAA,EAAUA,CAAC;IAAEC;EAAS,CAAE;IACtB,IAAIR,iBAAA,CAAkBQ,SAAA,KAAcT,iBAAA,CAAkBS,SAAA,GAAY;MAChE,OAAOA,SAAA,CAAUC,SAAS,CAAC;IAC7B;IACA,OAAO;EACT;EACAC,GAAA,EAAK;EACLC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAACZ,mBAAA,EAAqB;EAC9C;EACAa,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,wBAAA,GAA2BZ,mBAAA,CAAoB;EAC1Da,YAAA,EAAc;IACZC,MAAA,EAAQZ;EACV;EACAa,aAAA,EAAe;IACbD,MAAA,EAAQZ;EACV;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../../src/features/format/underline/feature.client.tsx"],"names":[],"mappings":"AA6BA,eAAO,MAAM,sBAAsB,oFAOjC,CAAA"}
1
+ {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../../src/features/format/underline/feature.client.tsx"],"names":[],"mappings":"AA8BA,eAAO,MAAM,sBAAsB,oFAOjC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
 
3
+ import { $isTableSelection } from '@lexical/table';
3
4
  import { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical';
4
5
  import { UnderlineIcon } from '../../../lexical/ui/icons/Underline/index.js';
5
6
  import { createClientFeature } from '../../../utilities/createClientFeature.js';
@@ -9,7 +10,7 @@ const toolbarGroups = [toolbarFormatGroupWithItems([{
9
10
  isActive: ({
10
11
  selection
11
12
  }) => {
12
- if ($isRangeSelection(selection)) {
13
+ if ($isRangeSelection(selection) || $isTableSelection(selection)) {
13
14
  return selection.hasFormat('underline');
14
15
  }
15
16
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.js","names":["$isRangeSelection","FORMAT_TEXT_COMMAND","UnderlineIcon","createClientFeature","toolbarFormatGroupWithItems","toolbarGroups","ChildComponent","isActive","selection","hasFormat","key","onSelect","editor","dispatchCommand","order","UnderlineFeatureClient","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/format/underline/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { UnderlineIcon } from '../../../lexical/ui/icons/Underline/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: UnderlineIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n return selection.hasFormat('underline')\n }\n return false\n },\n key: 'underline',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'underline')\n },\n order: 3,\n },\n ]),\n]\n\nexport const UnderlineFeatureClient = createClientFeature({\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n"],"mappings":"AAAA;;AAEA,SAASA,iBAAiB,EAAEC,mBAAmB,QAAQ;AAIvD,SAASC,aAAa,QAAQ;AAC9B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAE5C,MAAMC,aAAA,GAAgC,CACpCD,2BAAA,CAA4B,CAC1B;EACEE,cAAA,EAAgBJ,aAAA;EAChBK,QAAA,EAAUA,CAAC;IAAEC;EAAS,CAAE;IACtB,IAAIR,iBAAA,CAAkBQ,SAAA,GAAY;MAChC,OAAOA,SAAA,CAAUC,SAAS,CAAC;IAC7B;IACA,OAAO;EACT;EACAC,GAAA,EAAK;EACLC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAACZ,mBAAA,EAAqB;EAC9C;EACAa,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,sBAAA,GAAyBZ,mBAAA,CAAoB;EACxDa,YAAA,EAAc;IACZC,MAAA,EAAQZ;EACV;EACAa,aAAA,EAAe;IACbD,MAAA,EAAQZ;EACV;AACF","ignoreList":[]}
1
+ {"version":3,"file":"feature.client.js","names":["$isTableSelection","$isRangeSelection","FORMAT_TEXT_COMMAND","UnderlineIcon","createClientFeature","toolbarFormatGroupWithItems","toolbarGroups","ChildComponent","isActive","selection","hasFormat","key","onSelect","editor","dispatchCommand","order","UnderlineFeatureClient","toolbarFixed","groups","toolbarInline"],"sources":["../../../../src/features/format/underline/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport { $isTableSelection } from '@lexical/table'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { UnderlineIcon } from '../../../lexical/ui/icons/Underline/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: UnderlineIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection) || $isTableSelection(selection)) {\n return selection.hasFormat('underline')\n }\n return false\n },\n key: 'underline',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'underline')\n },\n order: 3,\n },\n ]),\n]\n\nexport const UnderlineFeatureClient = createClientFeature({\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n"],"mappings":"AAAA;;AAEA,SAASA,iBAAiB,QAAQ;AAClC,SAASC,iBAAiB,EAAEC,mBAAmB,QAAQ;AAIvD,SAASC,aAAa,QAAQ;AAC9B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,2BAA2B,QAAQ;AAE5C,MAAMC,aAAA,GAAgC,CACpCD,2BAAA,CAA4B,CAC1B;EACEE,cAAA,EAAgBJ,aAAA;EAChBK,QAAA,EAAUA,CAAC;IAAEC;EAAS,CAAE;IACtB,IAAIR,iBAAA,CAAkBQ,SAAA,KAAcT,iBAAA,CAAkBS,SAAA,GAAY;MAChE,OAAOA,SAAA,CAAUC,SAAS,CAAC;IAC7B;IACA,OAAO;EACT;EACAC,GAAA,EAAK;EACLC,QAAA,EAAUA,CAAC;IAAEC;EAAM,CAAE;IACnBA,MAAA,CAAOC,eAAe,CAACZ,mBAAA,EAAqB;EAC9C;EACAa,KAAA,EAAO;AACT,EACD,EACF;AAED,OAAO,MAAMC,sBAAA,GAAyBZ,mBAAA,CAAoB;EACxDa,YAAA,EAAc;IACZC,MAAA,EAAQZ;EACV;EACAa,aAAA,EAAe;IACbD,MAAA,EAAQZ;EACV;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAevE,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,WAAW,CAAA;CAAE,GAAG,KAAK,CAAC,SAAS,CA4UvF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAcvE,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,WAAW,CAAA;CAAE,GAAG,KAAK,CAAC,SAAS,CA2XvF"}
@@ -4,7 +4,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
5
5
  import { $findMatchingParent, mergeRegister } from '@lexical/utils';
6
6
  import { getTranslation } from '@payloadcms/translations';
7
- import { CloseMenuIcon, EditIcon, formatDrawerSlug, useConfig, useEditDepth, useTranslation } from '@payloadcms/ui';
7
+ import { CloseMenuIcon, EditIcon, formatDrawerSlug, useConfig, useEditDepth, useLocale, useTranslation } from '@payloadcms/ui';
8
+ import { requests } from '@payloadcms/ui/shared';
8
9
  import { $getSelection, $isLineBreakNode, $isRangeSelection, COMMAND_PRIORITY_HIGH, COMMAND_PRIORITY_LOW, KEY_ESCAPE_COMMAND, SELECTION_CHANGE_COMMAND } from 'lexical';
9
10
  import React, { useCallback, useEffect, useRef, useState } from 'react';
10
11
  import { useEditorConfigContext } from '../../../../../../lexical/config/client/EditorConfigProvider.js';
@@ -23,6 +24,9 @@ export function LinkEditor({
23
24
  const [linkUrl, setLinkUrl] = useState(null);
24
25
  const [linkLabel, setLinkLabel] = useState(null);
25
26
  const {
27
+ fieldProps: {
28
+ schemaPath
29
+ },
26
30
  uuid
27
31
  } = useEditorConfigContext();
28
32
  const {
@@ -36,6 +40,7 @@ export function LinkEditor({
36
40
  const editDepth = useEditDepth();
37
41
  const [isLink, setIsLink] = useState(false);
38
42
  const [selectedNodes, setSelectedNodes] = useState([]);
43
+ const locale = useLocale();
39
44
  const [isAutoLink, setIsAutoLink] = useState(false);
40
45
  const drawerSlug = formatDrawerSlug({
41
46
  slug: `lexical-rich-text-link-` + uuid,
@@ -60,7 +65,7 @@ export function LinkEditor({
60
65
  const selection = $getSelection();
61
66
  let selectedNodeDomRect;
62
67
  if (!$isRangeSelection(selection) || !selection) {
63
- setNotLink();
68
+ void setNotLink();
64
69
  return;
65
70
  }
66
71
  // Handle the data displayed in the floating link editor & drawer when you click on a link node
@@ -76,29 +81,60 @@ export function LinkEditor({
76
81
  setNotLink();
77
82
  return;
78
83
  }
84
+ const fields = focusLinkParent.getFields();
79
85
  // Initial state:
80
86
  const data = {
81
- ...focusLinkParent.getFields(),
87
+ ...fields,
82
88
  id: focusLinkParent.getID(),
83
89
  text: focusLinkParent.getTextContent()
84
90
  };
85
- if (focusLinkParent.getFields()?.linkType === 'custom') {
86
- setLinkUrl(focusLinkParent.getFields()?.url ?? null);
91
+ if (fields?.linkType === 'custom') {
92
+ setLinkUrl(fields?.url ?? null);
87
93
  setLinkLabel(null);
88
94
  } else {
89
95
  // internal link
90
- setLinkUrl(`${config.routes.admin === '/' ? '' : config.routes.admin}/collections/${focusLinkParent.getFields()?.doc?.relationTo}/${focusLinkParent.getFields()?.doc?.value}`);
91
- const relatedField = config.collections.find(coll => coll.slug === focusLinkParent.getFields()?.doc?.relationTo);
96
+ setLinkUrl(`${config.routes.admin === '/' ? '' : config.routes.admin}/collections/${fields?.doc?.relationTo}/${fields?.doc?.value}`);
97
+ const relatedField = config.collections.find(coll => coll.slug === fields?.doc?.relationTo);
92
98
  if (!relatedField) {
93
99
  // Usually happens if the user removed all default fields. In this case, we let them specify the label or do not display the label at all.
94
100
  // label could be a virtual field the user added. This is useful if they want to use the link feature for things other than links.
95
- setLinkLabel(focusLinkParent.getFields()?.label ? String(focusLinkParent.getFields()?.label) : null);
96
- setLinkUrl(focusLinkParent.getFields()?.url ? String(focusLinkParent.getFields()?.url) : null);
101
+ setLinkLabel(fields?.label ? String(fields?.label) : null);
102
+ setLinkUrl(fields?.url ? String(fields?.url) : null);
97
103
  } else {
98
- const label = t('fields:linkedTo', {
99
- label: getTranslation(relatedField.labels.singular, i18n)
104
+ const id = typeof fields.doc?.value === 'object' ? fields.doc.value.id : fields.doc?.value;
105
+ const collection = fields.doc?.relationTo;
106
+ if (!id || !collection) {
107
+ throw new Error(`Focus link parent is missing doc.value or doc.relationTo`);
108
+ }
109
+ const loadingLabel = t('fields:linkedTo', {
110
+ label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('lexical:link:loadingWithEllipsis', i18n)}`
100
111
  }).replace(/<[^>]*>?/g, '');
101
- setLinkLabel(label);
112
+ setLinkLabel(loadingLabel);
113
+ requests.get(`${config.serverURL}${config.routes.api}/${collection}/${id}`, {
114
+ headers: {
115
+ 'Accept-Language': i18n.language
116
+ },
117
+ params: {
118
+ depth: 0,
119
+ locale: locale?.code
120
+ }
121
+ }).then(async res => {
122
+ if (!res.ok) {
123
+ throw new Error(`HTTP error! Status: ${res.status}`);
124
+ }
125
+ const data_0 = await res.json();
126
+ const useAsTitle = relatedField?.admin?.useAsTitle || 'id';
127
+ const title = data_0[useAsTitle];
128
+ const label = t('fields:linkedTo', {
129
+ label: `${getTranslation(relatedField.labels.singular, i18n)} - ${title}`
130
+ }).replace(/<[^>]*>?/g, '');
131
+ setLinkLabel(label);
132
+ }).catch(() => {
133
+ const label_0 = t('fields:linkedTo', {
134
+ label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('general:untitled', i18n)} - ID: ${id}`
135
+ }).replace(/<[^>]*>?/g, '');
136
+ setLinkLabel(label_0);
137
+ });
102
138
  }
103
139
  }
104
140
  setStateData(data);
@@ -136,7 +172,7 @@ export function LinkEditor({
136
172
  setLinkLabel(null);
137
173
  }
138
174
  return true;
139
- }, [editor, setNotLink, config.collections, t, i18n, anchorElem]);
175
+ }, [editor, setNotLink, config.routes.admin, config.routes.api, config.collections, config.serverURL, t, i18n, locale?.code, anchorElem]);
140
176
  useEffect(() => {
141
177
  return mergeRegister(editor.registerCommand(TOGGLE_LINK_WITH_MODAL_COMMAND, payload => {
142
178
  editor.dispatchCommand(TOGGLE_LINK_COMMAND, payload);
@@ -235,8 +271,8 @@ export function LinkEditor({
235
271
  drawerSlug: drawerSlug,
236
272
  drawerTitle: t('fields:editLink'),
237
273
  featureKey: "link",
238
- handleDrawerSubmit: (fields, data_0) => {
239
- const newLinkPayload = data_0;
274
+ handleDrawerSubmit: (fields_0, data_1) => {
275
+ const newLinkPayload = data_1;
240
276
  const bareLinkFields = {
241
277
  ...newLinkPayload
242
278
  };
@@ -267,6 +303,7 @@ export function LinkEditor({
267
303
  text: newLinkPayload.text
268
304
  });
269
305
  },
306
+ schemaPath: schemaPath,
270
307
  schemaPathSuffix: "fields"
271
308
  })]
272
309
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useLexicalComposerContext","$findMatchingParent","mergeRegister","getTranslation","CloseMenuIcon","EditIcon","formatDrawerSlug","useConfig","useEditDepth","useTranslation","$getSelection","$isLineBreakNode","$isRangeSelection","COMMAND_PRIORITY_HIGH","COMMAND_PRIORITY_LOW","KEY_ESCAPE_COMMAND","SELECTION_CHANGE_COMMAND","React","useCallback","useEffect","useRef","useState","useEditorConfigContext","getSelectedNode","setFloatingElemPositionForLinkEditor","FieldsDrawer","useLexicalDrawer","$isAutoLinkNode","$createLinkNode","$isLinkNode","TOGGLE_LINK_COMMAND","TOGGLE_LINK_WITH_MODAL_COMMAND","LinkEditor","anchorElem","editor","editorRef","linkUrl","setLinkUrl","linkLabel","setLinkLabel","uuid","config","i18n","t","stateData","setStateData","editDepth","isLink","setIsLink","selectedNodes","setSelectedNodes","isAutoLink","setIsAutoLink","drawerSlug","slug","depth","toggleDrawer","setNotLink","current","style","opacity","transform","undefined","$updateLinkEditor","selection","selectedNodeDomRect","focusNode","getElementByKey","getKey","getBoundingClientRect","focusLinkParent","badNode","getNodes","filter","node","find","linkNode","is","data","getFields","id","getID","text","getTextContent","linkType","url","routes","admin","doc","relationTo","value","relatedField","collections","coll","label","String","labels","singular","replace","editorElem","nativeSelection","window","getSelection","activeElement","document","rootElement","getRootElement","contains","anchorNode","getRangeAt","y","className","registerCommand","payload","dispatchCommand","scrollerElem","parentElement","update","getEditorState","read","addEventListener","removeEventListener","registerUpdateListener","editorState","_jsxs","Fragment","_jsx","ref","length","href","rel","target","isEditable","onClick","onMouseDown","event","preventDefault","tabIndex","type","drawerTitle","featureKey","handleDrawerSubmit","fields","newLinkPayload","bareLinkFields","linkParent","getParent","schemaPathSuffix"],"sources":["../../../../../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementNode, LexicalNode } from 'lexical'\nimport type { Data, 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 EditIcon,\n formatDrawerSlug,\n useConfig,\n useEditDepth,\n useModal,\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 React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { LinkNode } from '../../../../nodes/LinkNode.js'\nimport type { LinkFields } from '../../../../nodes/types.js'\nimport type { LinkPayload } from '../types.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 { FieldsDrawer } from '../../../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDrawer } from '../../../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $isAutoLinkNode } from '../../../../nodes/AutoLinkNode.js'\nimport { $createLinkNode, $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../../nodes/LinkNode.js'\nimport { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands.js'\n\nexport function LinkEditor({ anchorElem }: { anchorElem: HTMLElement }): React.ReactNode {\n const [editor] = useLexicalComposerContext()\n\n const editorRef = useRef<HTMLDivElement | null>(null)\n const [linkUrl, setLinkUrl] = useState<null | string>(null)\n const [linkLabel, setLinkLabel] = useState<null | string>(null)\n\n const { uuid } = useEditorConfigContext()\n\n const { config } = useConfig()\n\n const { i18n, t } = useTranslation()\n\n const [stateData, setStateData] = useState<\n ({ id?: string; text: string } & LinkFields) | undefined\n >()\n\n const editDepth = useEditDepth()\n const [isLink, setIsLink] = useState(false)\n const [selectedNodes, setSelectedNodes] = useState<LexicalNode[]>([])\n\n const [isAutoLink, setIsAutoLink] = useState(false)\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-rich-text-link-` + uuid,\n depth: editDepth,\n })\n\n const { toggleDrawer } = useLexicalDrawer(drawerSlug)\n\n const setNotLink = useCallback(() => {\n setIsLink(false)\n if (editorRef && editorRef.current) {\n editorRef.current.style.opacity = '0'\n editorRef.current.style.transform = 'translate(-10000px, -10000px)'\n }\n setIsAutoLink(false)\n setLinkUrl(null)\n setLinkLabel(null)\n setSelectedNodes([])\n setStateData(undefined)\n }, [setIsLink, setLinkUrl, setLinkLabel, setSelectedNodes])\n\n const $updateLinkEditor = useCallback(() => {\n const selection = $getSelection()\n let selectedNodeDomRect: DOMRect | undefined\n\n if (!$isRangeSelection(selection) || !selection) {\n setNotLink()\n return\n }\n\n // Handle the data displayed in the floating link editor & drawer when you click on a link node\n\n const focusNode = getSelectedNode(selection)\n selectedNodeDomRect = editor.getElementByKey(focusNode.getKey())?.getBoundingClientRect()\n const focusLinkParent = $findMatchingParent(focusNode, $isLinkNode)\n\n // Prevent link modal from showing if selection spans further than the link: https://github.com/facebook/lexical/issues/4064\n const badNode = selection\n .getNodes()\n .filter((node) => !$isLineBreakNode(node))\n .find((node) => {\n const linkNode = $findMatchingParent(node, $isLinkNode)\n return (\n (focusLinkParent && !focusLinkParent.is(linkNode)) ||\n (linkNode && !linkNode.is(focusLinkParent))\n )\n })\n\n if (focusLinkParent == null || badNode) {\n setNotLink()\n return\n }\n\n // Initial state:\n const data: { text: string } & LinkFields = {\n ...focusLinkParent.getFields(),\n id: focusLinkParent.getID(),\n text: focusLinkParent.getTextContent(),\n }\n\n if (focusLinkParent.getFields()?.linkType === 'custom') {\n setLinkUrl(focusLinkParent.getFields()?.url ?? null)\n setLinkLabel(null)\n } else {\n // internal link\n setLinkUrl(\n `${config.routes.admin === '/' ? '' : config.routes.admin}/collections/${focusLinkParent.getFields()?.doc?.relationTo}/${\n focusLinkParent.getFields()?.doc?.value\n }`,\n )\n\n const relatedField = config.collections.find(\n (coll) => coll.slug === focusLinkParent.getFields()?.doc?.relationTo,\n )\n if (!relatedField) {\n // Usually happens if the user removed all default fields. In this case, we let them specify the label or do not display the label at all.\n // label could be a virtual field the user added. This is useful if they want to use the link feature for things other than links.\n setLinkLabel(\n focusLinkParent.getFields()?.label ? String(focusLinkParent.getFields()?.label) : null,\n )\n setLinkUrl(\n focusLinkParent.getFields()?.url ? String(focusLinkParent.getFields()?.url) : null,\n )\n } else {\n const label = t('fields:linkedTo', {\n label: getTranslation(relatedField.labels.singular, i18n),\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n }\n }\n\n setStateData(data)\n setIsLink(true)\n setSelectedNodes(selection ? selection?.getNodes() : [])\n\n if ($isAutoLinkNode(focusLinkParent)) {\n setIsAutoLink(true)\n } else {\n setIsAutoLink(false)\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 } else if (activeElement == null || activeElement.className !== 'link-input') {\n if (rootElement !== null) {\n setFloatingElemPositionForLinkEditor(null, editorElem, anchorElem)\n }\n setLinkUrl(null)\n setLinkLabel(null)\n }\n\n return true\n }, [editor, setNotLink, config.collections, t, i18n, anchorElem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_WITH_MODAL_COMMAND,\n (payload: LinkPayload) => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, payload)\n\n // Now, open the modal\n $updateLinkEditor()\n toggleDrawer()\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateLinkEditor, toggleDrawer, drawerSlug])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = (): void => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\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, $updateLinkEditor])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n void $updateLinkEditor()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n void $updateLinkEditor()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ESCAPE_COMMAND,\n () => {\n if (isLink) {\n setNotLink()\n\n return true\n }\n return false\n },\n COMMAND_PRIORITY_HIGH,\n ),\n )\n }, [editor, $updateLinkEditor, isLink, setNotLink])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }, [editor, $updateLinkEditor])\n\n return (\n <React.Fragment>\n <div className=\"link-editor\" ref={editorRef}>\n <div className=\"link-input\">\n {linkUrl && linkUrl.length > 0 ? (\n <a href={linkUrl} rel=\"noopener noreferrer\" target=\"_blank\">\n {linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl}\n </a>\n ) : linkLabel != null && linkLabel.length > 0 ? (\n <span className=\"link-input__label-pure\">{linkLabel}</span>\n ) : null}\n\n {editor.isEditable() && (\n <React.Fragment>\n <button\n aria-label=\"Edit link\"\n className=\"link-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 {!isAutoLink && (\n <button\n aria-label=\"Remove link\"\n className=\"link-trash\"\n onClick={() => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)\n }}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n tabIndex={0}\n type=\"button\"\n >\n <CloseMenuIcon />\n </button>\n )}\n </React.Fragment>\n )}\n </div>\n </div>\n <FieldsDrawer\n className=\"lexical-link-edit-drawer\"\n data={stateData}\n drawerSlug={drawerSlug}\n drawerTitle={t('fields:editLink')}\n featureKey=\"link\"\n handleDrawerSubmit={(fields: FormState, data: Data) => {\n const newLinkPayload = data as { text: string } & LinkFields\n\n const bareLinkFields: LinkFields = {\n ...newLinkPayload,\n }\n delete bareLinkFields.text\n\n // See: https://github.com/facebook/lexical/pull/5536. This updates autolink nodes to link nodes whenever a change was made (which is good!).\n editor.update(() => {\n const selection = $getSelection()\n let linkParent: ElementNode | null = null\n if ($isRangeSelection(selection)) {\n linkParent = getSelectedNode(selection).getParent()\n } else {\n if (selectedNodes.length) {\n linkParent = selectedNodes[0].getParent()\n }\n }\n\n if (linkParent && $isAutoLinkNode(linkParent)) {\n const linkNode = $createLinkNode({\n fields: bareLinkFields,\n })\n linkParent.replace(linkNode, true)\n }\n })\n\n // Needs to happen AFTER a potential auto link => link node conversion, as otherwise, the updated text to display may be lost due to\n // it being applied to the auto link node instead of the link node.\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: bareLinkFields,\n selectedNodes,\n text: newLinkPayload.text,\n })\n }}\n schemaPathSuffix=\"fields\"\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useLexicalComposerContext","$findMatchingParent","mergeRegister","getTranslation","CloseMenuIcon","EditIcon","formatDrawerSlug","useConfig","useEditDepth","useLocale","useTranslation","requests","$getSelection","$isLineBreakNode","$isRangeSelection","COMMAND_PRIORITY_HIGH","COMMAND_PRIORITY_LOW","KEY_ESCAPE_COMMAND","SELECTION_CHANGE_COMMAND","React","useCallback","useEffect","useRef","useState","useEditorConfigContext","getSelectedNode","setFloatingElemPositionForLinkEditor","FieldsDrawer","useLexicalDrawer","$isAutoLinkNode","$createLinkNode","$isLinkNode","TOGGLE_LINK_COMMAND","TOGGLE_LINK_WITH_MODAL_COMMAND","LinkEditor","anchorElem","editor","editorRef","linkUrl","setLinkUrl","linkLabel","setLinkLabel","fieldProps","schemaPath","uuid","config","i18n","t","stateData","setStateData","editDepth","isLink","setIsLink","selectedNodes","setSelectedNodes","locale","isAutoLink","setIsAutoLink","drawerSlug","slug","depth","toggleDrawer","setNotLink","current","style","opacity","transform","undefined","$updateLinkEditor","selection","selectedNodeDomRect","focusNode","getElementByKey","getKey","getBoundingClientRect","focusLinkParent","badNode","getNodes","filter","node","find","linkNode","is","fields","getFields","data","id","getID","text","getTextContent","linkType","url","routes","admin","doc","relationTo","value","relatedField","collections","coll","label","String","collection","Error","loadingLabel","labels","singular","replace","get","serverURL","api","headers","language","params","code","then","res","ok","status","json","useAsTitle","title","catch","editorElem","nativeSelection","window","getSelection","activeElement","document","rootElement","getRootElement","contains","anchorNode","getRangeAt","y","className","registerCommand","payload","dispatchCommand","scrollerElem","parentElement","update","getEditorState","read","addEventListener","removeEventListener","registerUpdateListener","editorState","_jsxs","Fragment","_jsx","ref","length","href","rel","target","isEditable","onClick","onMouseDown","event","preventDefault","tabIndex","type","drawerTitle","featureKey","handleDrawerSubmit","newLinkPayload","bareLinkFields","linkParent","getParent","schemaPathSuffix"],"sources":["../../../../../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementNode, LexicalNode } from 'lexical'\nimport type { Data, 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 EditIcon,\n formatDrawerSlug,\n useConfig,\n useEditDepth,\n useLocale,\n useTranslation,\n} from '@payloadcms/ui'\nimport { requests } from '@payloadcms/ui/shared'\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 React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { LinkFields } from '../../../../nodes/types.js'\nimport type { LinkPayload } from '../types.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 { FieldsDrawer } from '../../../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDrawer } from '../../../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $isAutoLinkNode } from '../../../../nodes/AutoLinkNode.js'\nimport { $createLinkNode, $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../../nodes/LinkNode.js'\nimport { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands.js'\n\nexport function LinkEditor({ anchorElem }: { anchorElem: HTMLElement }): React.ReactNode {\n const [editor] = useLexicalComposerContext()\n\n const editorRef = useRef<HTMLDivElement | null>(null)\n const [linkUrl, setLinkUrl] = useState<null | string>(null)\n const [linkLabel, setLinkLabel] = useState<null | string>(null)\n\n const {\n fieldProps: { schemaPath },\n uuid,\n } = useEditorConfigContext()\n\n const { config } = useConfig()\n\n const { i18n, t } = useTranslation<object, 'lexical:link:loadingWithEllipsis'>()\n\n const [stateData, setStateData] = useState<\n ({ id?: string; text: string } & LinkFields) | undefined\n >()\n\n const editDepth = useEditDepth()\n const [isLink, setIsLink] = useState(false)\n const [selectedNodes, setSelectedNodes] = useState<LexicalNode[]>([])\n const locale = useLocale()\n\n const [isAutoLink, setIsAutoLink] = useState(false)\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-rich-text-link-` + uuid,\n depth: editDepth,\n })\n\n const { toggleDrawer } = useLexicalDrawer(drawerSlug)\n\n const setNotLink = useCallback(() => {\n setIsLink(false)\n if (editorRef && editorRef.current) {\n editorRef.current.style.opacity = '0'\n editorRef.current.style.transform = 'translate(-10000px, -10000px)'\n }\n setIsAutoLink(false)\n setLinkUrl(null)\n setLinkLabel(null)\n setSelectedNodes([])\n setStateData(undefined)\n }, [setIsLink, setLinkUrl, setLinkLabel, setSelectedNodes])\n\n const $updateLinkEditor = useCallback(() => {\n const selection = $getSelection()\n let selectedNodeDomRect: DOMRect | undefined\n\n if (!$isRangeSelection(selection) || !selection) {\n void setNotLink()\n return\n }\n\n // Handle the data displayed in the floating link editor & drawer when you click on a link node\n\n const focusNode = getSelectedNode(selection)\n selectedNodeDomRect = editor.getElementByKey(focusNode.getKey())?.getBoundingClientRect()\n const focusLinkParent = $findMatchingParent(focusNode, $isLinkNode)\n\n // Prevent link modal from showing if selection spans further than the link: https://github.com/facebook/lexical/issues/4064\n const badNode = selection\n .getNodes()\n .filter((node) => !$isLineBreakNode(node))\n .find((node) => {\n const linkNode = $findMatchingParent(node, $isLinkNode)\n return (\n (focusLinkParent && !focusLinkParent.is(linkNode)) ||\n (linkNode && !linkNode.is(focusLinkParent))\n )\n })\n\n if (focusLinkParent == null || badNode) {\n setNotLink()\n return\n }\n\n const fields = focusLinkParent.getFields()\n\n // Initial state:\n const data: { text: string } & LinkFields = {\n ...fields,\n id: focusLinkParent.getID(),\n text: focusLinkParent.getTextContent(),\n }\n\n if (fields?.linkType === 'custom') {\n setLinkUrl(fields?.url ?? null)\n setLinkLabel(null)\n } else {\n // internal link\n setLinkUrl(\n `${config.routes.admin === '/' ? '' : config.routes.admin}/collections/${fields?.doc?.relationTo}/${\n fields?.doc?.value\n }`,\n )\n\n const relatedField = config.collections.find((coll) => coll.slug === fields?.doc?.relationTo)\n if (!relatedField) {\n // Usually happens if the user removed all default fields. In this case, we let them specify the label or do not display the label at all.\n // label could be a virtual field the user added. This is useful if they want to use the link feature for things other than links.\n setLinkLabel(fields?.label ? String(fields?.label) : null)\n setLinkUrl(fields?.url ? String(fields?.url) : null)\n } else {\n const id = typeof fields.doc?.value === 'object' ? fields.doc.value.id : fields.doc?.value\n const collection = fields.doc?.relationTo\n if (!id || !collection) {\n throw new Error(`Focus link parent is missing doc.value or doc.relationTo`)\n }\n\n const loadingLabel = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('lexical:link:loadingWithEllipsis', i18n)}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(loadingLabel)\n\n requests\n .get(`${config.serverURL}${config.routes.api}/${collection}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n params: {\n depth: 0,\n locale: locale?.code,\n },\n })\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(`HTTP error! Status: ${res.status}`)\n }\n const data = await res.json()\n const useAsTitle = relatedField?.admin?.useAsTitle || 'id'\n const title = data[useAsTitle]\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${title}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n .catch(() => {\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('general:untitled', i18n)} - ID: ${id}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n }\n }\n\n setStateData(data)\n setIsLink(true)\n setSelectedNodes(selection ? selection?.getNodes() : [])\n\n if ($isAutoLinkNode(focusLinkParent)) {\n setIsAutoLink(true)\n } else {\n setIsAutoLink(false)\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 } else if (activeElement == null || activeElement.className !== 'link-input') {\n if (rootElement !== null) {\n setFloatingElemPositionForLinkEditor(null, editorElem, anchorElem)\n }\n setLinkUrl(null)\n setLinkLabel(null)\n }\n\n return true\n }, [\n editor,\n setNotLink,\n config.routes.admin,\n config.routes.api,\n config.collections,\n config.serverURL,\n t,\n i18n,\n locale?.code,\n anchorElem,\n ])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_WITH_MODAL_COMMAND,\n (payload: LinkPayload) => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, payload)\n\n // Now, open the modal\n $updateLinkEditor()\n toggleDrawer()\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateLinkEditor, toggleDrawer, drawerSlug])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = (): void => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\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, $updateLinkEditor])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n void $updateLinkEditor()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n void $updateLinkEditor()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ESCAPE_COMMAND,\n () => {\n if (isLink) {\n setNotLink()\n\n return true\n }\n return false\n },\n COMMAND_PRIORITY_HIGH,\n ),\n )\n }, [editor, $updateLinkEditor, isLink, setNotLink])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }, [editor, $updateLinkEditor])\n\n return (\n <React.Fragment>\n <div className=\"link-editor\" ref={editorRef}>\n <div className=\"link-input\">\n {linkUrl && linkUrl.length > 0 ? (\n <a href={linkUrl} rel=\"noopener noreferrer\" target=\"_blank\">\n {linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl}\n </a>\n ) : linkLabel != null && linkLabel.length > 0 ? (\n <span className=\"link-input__label-pure\">{linkLabel}</span>\n ) : null}\n\n {editor.isEditable() && (\n <React.Fragment>\n <button\n aria-label=\"Edit link\"\n className=\"link-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 {!isAutoLink && (\n <button\n aria-label=\"Remove link\"\n className=\"link-trash\"\n onClick={() => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)\n }}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n tabIndex={0}\n type=\"button\"\n >\n <CloseMenuIcon />\n </button>\n )}\n </React.Fragment>\n )}\n </div>\n </div>\n <FieldsDrawer\n className=\"lexical-link-edit-drawer\"\n data={stateData}\n drawerSlug={drawerSlug}\n drawerTitle={t('fields:editLink')}\n featureKey=\"link\"\n handleDrawerSubmit={(fields: FormState, data: Data) => {\n const newLinkPayload = data as { text: string } & LinkFields\n\n const bareLinkFields: LinkFields = {\n ...newLinkPayload,\n }\n delete bareLinkFields.text\n\n // See: https://github.com/facebook/lexical/pull/5536. This updates autolink nodes to link nodes whenever a change was made (which is good!).\n editor.update(() => {\n const selection = $getSelection()\n let linkParent: ElementNode | null = null\n if ($isRangeSelection(selection)) {\n linkParent = getSelectedNode(selection).getParent()\n } else {\n if (selectedNodes.length) {\n linkParent = selectedNodes[0].getParent()\n }\n }\n\n if (linkParent && $isAutoLinkNode(linkParent)) {\n const linkNode = $createLinkNode({\n fields: bareLinkFields,\n })\n linkParent.replace(linkNode, true)\n }\n })\n\n // Needs to happen AFTER a potential auto link => link node conversion, as otherwise, the updated text to display may be lost due to\n // it being applied to the auto link node instead of the link node.\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: bareLinkFields,\n selectedNodes,\n text: newLinkPayload.text,\n })\n }}\n schemaPath={schemaPath}\n schemaPathSuffix=\"fields\"\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,7 @@ export const FloatingLinkEditorPlugin = props => {
8
8
  const {
9
9
  anchorElem = document.body
10
10
  } = props;
11
- return /*#__PURE__*/createPortal( /*#__PURE__*/_jsx(LinkEditor, {
11
+ return /*#__PURE__*/createPortal(/*#__PURE__*/_jsx(LinkEditor, {
12
12
  anchorElem: anchorElem
13
13
  }), anchorElem);
14
14
  };