@payloadcms/richtext-lexical 3.29.0-internal.d2c9ba5 → 3.29.0-internal.e4e913b
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.
- package/dist/exports/client/Field-5SZDDPZE.js +2 -0
- package/dist/exports/client/Field-5SZDDPZE.js.map +7 -0
- package/dist/exports/client/{RelationshipComponent-JPESGV4Q.js → RelationshipComponent-APF3CN47.js} +2 -2
- package/dist/exports/client/bundled.css +1 -1
- package/dist/exports/client/chunk-46KMRCKV.js +2 -0
- package/dist/exports/client/chunk-46KMRCKV.js.map +7 -0
- package/dist/exports/client/chunk-BZZVLW4U.js +2 -0
- package/dist/exports/client/chunk-BZZVLW4U.js.map +7 -0
- package/dist/exports/client/{chunk-PUXDVIHC.js → chunk-Y2GOLUGU.js} +2 -2
- package/dist/exports/client/{component-P5K7Z5NW.js → component-Y3OSWJM5.js} +2 -2
- package/dist/exports/client/componentInline-ZB4EY7EQ.js +2 -0
- package/dist/exports/client/index.js +10 -10
- package/dist/exports/client/index.js.map +3 -3
- package/dist/exports/html/index.d.ts +15 -15
- package/dist/exports/html/index.d.ts.map +1 -1
- package/dist/exports/html/index.js +13 -13
- package/dist/exports/html/index.js.map +1 -1
- package/dist/exports/html-async/index.d.ts +15 -15
- package/dist/exports/html-async/index.d.ts.map +1 -1
- package/dist/exports/html-async/index.js +13 -13
- package/dist/exports/html-async/index.js.map +1 -1
- package/dist/exports/plaintext/index.d.ts +3 -0
- package/dist/exports/plaintext/index.d.ts.map +1 -0
- package/dist/exports/plaintext/index.js +2 -0
- package/dist/exports/plaintext/index.js.map +1 -0
- package/dist/exports/react/index.d.ts +15 -15
- package/dist/exports/react/index.d.ts.map +1 -1
- package/dist/exports/react/index.js +14 -14
- package/dist/exports/react/index.js.map +1 -1
- package/dist/features/blockquote/server/index.js +1 -1
- package/dist/features/blockquote/server/index.js.map +1 -1
- package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
- package/dist/features/blocks/client/component/BlockContent.js +2 -4
- package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
- package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
- package/dist/features/blocks/client/componentInline/index.js +2 -4
- package/dist/features/blocks/client/componentInline/index.js.map +1 -1
- package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.d.ts.map +1 -1
- package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.js +1 -1
- package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.js.map +1 -1
- package/dist/features/converters/htmlToLexical/index.d.ts.map +1 -1
- package/dist/features/converters/htmlToLexical/index.js +0 -1
- package/dist/features/converters/htmlToLexical/index.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/blockquote.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/blockquote.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/heading.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/linebreak.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/linebreak.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts.map +1 -0
- package/dist/features/converters/{html → lexicalToHtml}/async/converters/link.js +4 -12
- package/dist/features/converters/lexicalToHtml/async/converters/link.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts.map +1 -0
- package/dist/features/converters/{html → lexicalToHtml}/async/converters/list.js +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/paragraph.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/paragraph.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/tab.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/tab.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/table.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/text.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/text.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/defaultConverters.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/defaultConverters.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/field/index.d.ts.map +1 -0
- package/dist/features/converters/{html → lexicalToHtml}/async/field/index.js +11 -11
- package/dist/features/converters/lexicalToHtml/async/field/index.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/index.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/index.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/types.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/async/types.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/shared/types.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/shared/types.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/heading.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts.map +1 -0
- package/dist/features/converters/{html → lexicalToHtml}/sync/converters/link.js +4 -12
- package/dist/features/converters/lexicalToHtml/sync/converters/link.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts.map +1 -0
- package/dist/features/converters/{html → lexicalToHtml}/sync/converters/list.js +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/tab.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/tab.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/table.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/text.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/text.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/defaultConverters.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/defaultConverters.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/index.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/index.js.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/types.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml/sync/types.js.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.js.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.js.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.js.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.js.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.js.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/converter/index.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/converter/index.js.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/converter/types.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/converter/types.js.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/field/index.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/field/index.js.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/index.d.ts.map +1 -0
- package/dist/features/converters/lexicalToHtml_deprecated/index.js.map +1 -0
- package/dist/features/converters/lexicalToJSX/Component/index.d.ts.map +1 -0
- package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.d.ts.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.d.ts.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.d.ts.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/link.d.ts.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.d.ts.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/tab.d.ts.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/tab.js.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/text.d.ts.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/defaultConverters.d.ts.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/defaultConverters.js.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/index.d.ts.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/types.d.ts.map +1 -0
- package/dist/features/converters/lexicalToJSX/converter/types.js.map +1 -0
- package/dist/features/converters/lexicalToMarkdown/index.d.ts +7 -0
- package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -0
- package/dist/features/converters/lexicalToMarkdown/index.js +24 -0
- package/dist/features/converters/lexicalToMarkdown/index.js.map +1 -0
- package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js +84 -0
- package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +1 -0
- package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.d.ts +7 -0
- package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.d.ts.map +1 -0
- package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.js +15 -0
- package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.js.map +1 -0
- package/dist/features/converters/lexicalToPlaintext/shared/types.d.ts +5 -0
- package/dist/features/converters/lexicalToPlaintext/shared/types.d.ts.map +1 -0
- package/dist/features/converters/lexicalToPlaintext/shared/types.js +2 -0
- package/dist/features/converters/lexicalToPlaintext/shared/types.js.map +1 -0
- package/dist/features/converters/lexicalToPlaintext/sync/index.d.ts +22 -0
- package/dist/features/converters/lexicalToPlaintext/sync/index.d.ts.map +1 -0
- package/dist/features/converters/lexicalToPlaintext/sync/index.js +79 -0
- package/dist/features/converters/lexicalToPlaintext/sync/index.js.map +1 -0
- package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts +60 -0
- package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts.map +1 -0
- package/dist/features/converters/lexicalToPlaintext/sync/types.js +2 -0
- package/dist/features/converters/lexicalToPlaintext/sync/types.js.map +1 -0
- package/dist/features/converters/markdownToLexical/index.d.ts +8 -0
- package/dist/features/converters/markdownToLexical/index.d.ts.map +1 -0
- package/dist/features/converters/markdownToLexical/index.js +21 -0
- package/dist/features/converters/markdownToLexical/index.js.map +1 -0
- package/dist/features/converters/utilities/payloadPopulateFn.d.ts +1 -1
- package/dist/features/converters/utilities/payloadPopulateFn.d.ts.map +1 -1
- package/dist/features/converters/utilities/payloadPopulateFn.js.map +1 -1
- package/dist/features/converters/utilities/restPopulateFn.d.ts +1 -1
- package/dist/features/converters/utilities/restPopulateFn.d.ts.map +1 -1
- package/dist/features/converters/utilities/restPopulateFn.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +5 -6
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts +1 -0
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +5 -1
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +3 -3
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
- package/dist/features/experimental_table/server/index.js +1 -1
- package/dist/features/experimental_table/server/index.js.map +1 -1
- package/dist/features/heading/server/index.js +1 -1
- package/dist/features/heading/server/index.js.map +1 -1
- package/dist/features/indent/client/IndentPlugin.d.ts.map +1 -1
- package/dist/features/indent/client/IndentPlugin.js +26 -6
- package/dist/features/indent/client/IndentPlugin.js.map +1 -1
- package/dist/features/indent/client/index.d.ts +2 -1
- package/dist/features/indent/client/index.d.ts.map +1 -1
- package/dist/features/indent/client/index.js +41 -19
- package/dist/features/indent/client/index.js.map +1 -1
- package/dist/features/indent/server/index.d.ts +7 -0
- package/dist/features/indent/server/index.d.ts.map +1 -1
- package/dist/features/indent/server/index.js.map +1 -1
- package/dist/features/link/server/index.d.ts.map +1 -1
- package/dist/features/link/server/index.js +3 -7
- package/dist/features/link/server/index.js.map +1 -1
- package/dist/features/lists/htmlConverter.d.ts +1 -1
- package/dist/features/lists/htmlConverter.d.ts.map +1 -1
- package/dist/features/lists/htmlConverter.js +1 -1
- package/dist/features/lists/htmlConverter.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +2 -2
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
- package/dist/features/typesServer.d.ts +1 -1
- package/dist/features/typesServer.d.ts.map +1 -1
- package/dist/features/typesServer.js.map +1 -1
- package/dist/field/Field.d.ts.map +1 -1
- package/dist/field/Field.js +2 -3
- package/dist/field/Field.js.map +1 -1
- package/dist/field/bundled.css +1 -1
- package/dist/index.d.ts +13 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -10
- package/dist/index.js.map +1 -1
- package/dist/lexical/config/client/EditorConfigProvider.js +4 -4
- package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
- package/dist/nodeTypes.d.ts +1 -1
- package/dist/nodeTypes.d.ts.map +1 -1
- package/dist/nodeTypes.js.map +1 -1
- package/package.json +23 -18
- package/dist/exports/client/Field-FLAQN6LU.js +0 -2
- package/dist/exports/client/Field-FLAQN6LU.js.map +0 -7
- package/dist/exports/client/chunk-3LGFOM34.js +0 -2
- package/dist/exports/client/chunk-3LGFOM34.js.map +0 -7
- package/dist/exports/client/chunk-QBDC3MVG.js +0 -2
- package/dist/exports/client/chunk-QBDC3MVG.js.map +0 -7
- package/dist/exports/client/componentInline-IBB73SHH.js +0 -2
- package/dist/features/converters/html/async/converters/blockquote.d.ts.map +0 -1
- package/dist/features/converters/html/async/converters/blockquote.js.map +0 -1
- package/dist/features/converters/html/async/converters/heading.d.ts.map +0 -1
- package/dist/features/converters/html/async/converters/heading.js.map +0 -1
- package/dist/features/converters/html/async/converters/horizontalRule.d.ts.map +0 -1
- package/dist/features/converters/html/async/converters/horizontalRule.js.map +0 -1
- package/dist/features/converters/html/async/converters/linebreak.d.ts.map +0 -1
- package/dist/features/converters/html/async/converters/linebreak.js.map +0 -1
- package/dist/features/converters/html/async/converters/link.d.ts.map +0 -1
- package/dist/features/converters/html/async/converters/link.js.map +0 -1
- package/dist/features/converters/html/async/converters/list.d.ts.map +0 -1
- package/dist/features/converters/html/async/converters/list.js.map +0 -1
- package/dist/features/converters/html/async/converters/paragraph.d.ts.map +0 -1
- package/dist/features/converters/html/async/converters/paragraph.js.map +0 -1
- package/dist/features/converters/html/async/converters/tab.d.ts.map +0 -1
- package/dist/features/converters/html/async/converters/tab.js.map +0 -1
- package/dist/features/converters/html/async/converters/table.d.ts.map +0 -1
- package/dist/features/converters/html/async/converters/table.js.map +0 -1
- package/dist/features/converters/html/async/converters/text.d.ts.map +0 -1
- package/dist/features/converters/html/async/converters/text.js.map +0 -1
- package/dist/features/converters/html/async/converters/upload.d.ts.map +0 -1
- package/dist/features/converters/html/async/converters/upload.js.map +0 -1
- package/dist/features/converters/html/async/defaultConverters.d.ts.map +0 -1
- package/dist/features/converters/html/async/defaultConverters.js.map +0 -1
- package/dist/features/converters/html/async/field/index.d.ts.map +0 -1
- package/dist/features/converters/html/async/field/index.js.map +0 -1
- package/dist/features/converters/html/async/index.d.ts.map +0 -1
- package/dist/features/converters/html/async/index.js.map +0 -1
- package/dist/features/converters/html/async/types.d.ts.map +0 -1
- package/dist/features/converters/html/async/types.js.map +0 -1
- package/dist/features/converters/html/shared/findConverterForNode.d.ts.map +0 -1
- package/dist/features/converters/html/shared/findConverterForNode.js.map +0 -1
- package/dist/features/converters/html/shared/types.d.ts.map +0 -1
- package/dist/features/converters/html/shared/types.js.map +0 -1
- package/dist/features/converters/html/sync/converters/blockquote.d.ts.map +0 -1
- package/dist/features/converters/html/sync/converters/blockquote.js.map +0 -1
- package/dist/features/converters/html/sync/converters/heading.d.ts.map +0 -1
- package/dist/features/converters/html/sync/converters/heading.js.map +0 -1
- package/dist/features/converters/html/sync/converters/horizontalRule.d.ts.map +0 -1
- package/dist/features/converters/html/sync/converters/horizontalRule.js.map +0 -1
- package/dist/features/converters/html/sync/converters/linebreak.d.ts.map +0 -1
- package/dist/features/converters/html/sync/converters/linebreak.js.map +0 -1
- package/dist/features/converters/html/sync/converters/link.d.ts.map +0 -1
- package/dist/features/converters/html/sync/converters/link.js.map +0 -1
- package/dist/features/converters/html/sync/converters/list.d.ts.map +0 -1
- package/dist/features/converters/html/sync/converters/list.js.map +0 -1
- package/dist/features/converters/html/sync/converters/paragraph.d.ts.map +0 -1
- package/dist/features/converters/html/sync/converters/paragraph.js.map +0 -1
- package/dist/features/converters/html/sync/converters/tab.d.ts.map +0 -1
- package/dist/features/converters/html/sync/converters/tab.js.map +0 -1
- package/dist/features/converters/html/sync/converters/table.d.ts.map +0 -1
- package/dist/features/converters/html/sync/converters/table.js.map +0 -1
- package/dist/features/converters/html/sync/converters/text.d.ts.map +0 -1
- package/dist/features/converters/html/sync/converters/text.js.map +0 -1
- package/dist/features/converters/html/sync/converters/upload.d.ts.map +0 -1
- package/dist/features/converters/html/sync/converters/upload.js.map +0 -1
- package/dist/features/converters/html/sync/defaultConverters.d.ts.map +0 -1
- package/dist/features/converters/html/sync/defaultConverters.js.map +0 -1
- package/dist/features/converters/html/sync/index.d.ts.map +0 -1
- package/dist/features/converters/html/sync/index.js.map +0 -1
- package/dist/features/converters/html/sync/types.d.ts.map +0 -1
- package/dist/features/converters/html/sync/types.js.map +0 -1
- package/dist/features/converters/html_deprecated/converter/converters/linebreak.d.ts.map +0 -1
- package/dist/features/converters/html_deprecated/converter/converters/linebreak.js.map +0 -1
- package/dist/features/converters/html_deprecated/converter/converters/paragraph.d.ts.map +0 -1
- package/dist/features/converters/html_deprecated/converter/converters/paragraph.js.map +0 -1
- package/dist/features/converters/html_deprecated/converter/converters/tab.d.ts.map +0 -1
- package/dist/features/converters/html_deprecated/converter/converters/tab.js.map +0 -1
- package/dist/features/converters/html_deprecated/converter/converters/text.d.ts.map +0 -1
- package/dist/features/converters/html_deprecated/converter/converters/text.js.map +0 -1
- package/dist/features/converters/html_deprecated/converter/defaultConverters.d.ts.map +0 -1
- package/dist/features/converters/html_deprecated/converter/defaultConverters.js.map +0 -1
- package/dist/features/converters/html_deprecated/converter/index.d.ts.map +0 -1
- package/dist/features/converters/html_deprecated/converter/index.js.map +0 -1
- package/dist/features/converters/html_deprecated/converter/types.d.ts.map +0 -1
- package/dist/features/converters/html_deprecated/converter/types.js.map +0 -1
- package/dist/features/converters/html_deprecated/field/index.d.ts.map +0 -1
- package/dist/features/converters/html_deprecated/field/index.js.map +0 -1
- package/dist/features/converters/html_deprecated/index.d.ts.map +0 -1
- package/dist/features/converters/html_deprecated/index.js.map +0 -1
- package/dist/features/converters/jsx/Component/index.d.ts.map +0 -1
- package/dist/features/converters/jsx/Component/index.js.map +0 -1
- package/dist/features/converters/jsx/converter/converters/blockquote.d.ts.map +0 -1
- package/dist/features/converters/jsx/converter/converters/blockquote.js.map +0 -1
- package/dist/features/converters/jsx/converter/converters/heading.d.ts.map +0 -1
- package/dist/features/converters/jsx/converter/converters/heading.js.map +0 -1
- package/dist/features/converters/jsx/converter/converters/horizontalRule.d.ts.map +0 -1
- package/dist/features/converters/jsx/converter/converters/horizontalRule.js.map +0 -1
- package/dist/features/converters/jsx/converter/converters/linebreak.d.ts.map +0 -1
- package/dist/features/converters/jsx/converter/converters/linebreak.js.map +0 -1
- package/dist/features/converters/jsx/converter/converters/link.d.ts.map +0 -1
- package/dist/features/converters/jsx/converter/converters/link.js.map +0 -1
- package/dist/features/converters/jsx/converter/converters/list.d.ts.map +0 -1
- package/dist/features/converters/jsx/converter/converters/list.js.map +0 -1
- package/dist/features/converters/jsx/converter/converters/paragraph.d.ts.map +0 -1
- package/dist/features/converters/jsx/converter/converters/paragraph.js.map +0 -1
- package/dist/features/converters/jsx/converter/converters/tab.d.ts.map +0 -1
- package/dist/features/converters/jsx/converter/converters/tab.js.map +0 -1
- package/dist/features/converters/jsx/converter/converters/table.d.ts.map +0 -1
- package/dist/features/converters/jsx/converter/converters/table.js.map +0 -1
- package/dist/features/converters/jsx/converter/converters/text.d.ts.map +0 -1
- package/dist/features/converters/jsx/converter/converters/text.js.map +0 -1
- package/dist/features/converters/jsx/converter/converters/upload.d.ts.map +0 -1
- package/dist/features/converters/jsx/converter/converters/upload.js.map +0 -1
- package/dist/features/converters/jsx/converter/defaultConverters.d.ts.map +0 -1
- package/dist/features/converters/jsx/converter/defaultConverters.js.map +0 -1
- package/dist/features/converters/jsx/converter/index.d.ts.map +0 -1
- package/dist/features/converters/jsx/converter/index.js.map +0 -1
- package/dist/features/converters/jsx/converter/types.d.ts.map +0 -1
- package/dist/features/converters/jsx/converter/types.js.map +0 -1
- /package/dist/exports/client/{RelationshipComponent-JPESGV4Q.js.map → RelationshipComponent-APF3CN47.js.map} +0 -0
- /package/dist/exports/client/{chunk-PUXDVIHC.js.map → chunk-Y2GOLUGU.js.map} +0 -0
- /package/dist/exports/client/{component-P5K7Z5NW.js.map → component-Y3OSWJM5.js.map} +0 -0
- /package/dist/exports/client/{componentInline-IBB73SHH.js.map → componentInline-ZB4EY7EQ.js.map} +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/blockquote.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/blockquote.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/heading.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/heading.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/horizontalRule.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/horizontalRule.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/linebreak.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/linebreak.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/link.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/list.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/paragraph.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/paragraph.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/tab.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/tab.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/table.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/table.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/text.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/text.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/upload.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/converters/upload.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/defaultConverters.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/defaultConverters.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/field/index.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/index.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/index.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/types.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/async/types.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/shared/findConverterForNode.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/shared/findConverterForNode.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/shared/types.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/shared/types.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/blockquote.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/blockquote.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/heading.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/heading.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/horizontalRule.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/horizontalRule.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/linebreak.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/linebreak.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/link.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/list.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/paragraph.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/paragraph.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/tab.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/tab.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/table.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/table.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/text.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/text.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/upload.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/converters/upload.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/defaultConverters.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/defaultConverters.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/index.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/index.js +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/types.d.ts +0 -0
- /package/dist/features/converters/{html → lexicalToHtml}/sync/types.js +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/converter/converters/linebreak.d.ts +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/converter/converters/linebreak.js +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/converter/converters/paragraph.d.ts +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/converter/converters/paragraph.js +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/converter/converters/tab.d.ts +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/converter/converters/tab.js +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/converter/converters/text.d.ts +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/converter/converters/text.js +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/converter/defaultConverters.d.ts +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/converter/defaultConverters.js +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/converter/index.d.ts +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/converter/index.js +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/converter/types.d.ts +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/converter/types.js +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/field/index.d.ts +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/field/index.js +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/index.d.ts +0 -0
- /package/dist/features/converters/{html_deprecated → lexicalToHtml_deprecated}/index.js +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/Component/index.d.ts +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/Component/index.js +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/blockquote.d.ts +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/blockquote.js +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/heading.d.ts +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/heading.js +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/horizontalRule.d.ts +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/horizontalRule.js +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/linebreak.d.ts +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/linebreak.js +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/link.d.ts +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/link.js +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/list.d.ts +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/list.js +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/paragraph.d.ts +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/paragraph.js +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/tab.d.ts +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/tab.js +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/table.d.ts +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/table.js +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/text.d.ts +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/text.js +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/upload.d.ts +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/converters/upload.js +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/defaultConverters.d.ts +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/defaultConverters.js +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/index.d.ts +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/index.js +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/types.d.ts +0 -0
- /package/dist/features/converters/{jsx → lexicalToJSX}/converter/types.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["HeadingNode","createServerFeature","convertLexicalNodesToHTML","createNode","MarkdownTransformer","i18n","HeadingFeature","feature","props","enabledHeadingSizes","ClientFeature","clientFeatureProps","markdownTransformers","nodes","converters","html","converter","currentDepth","depth","draft","node","overrideAccess","parent","req","showHiddenFields","childrenText","lexicalNodes","children","style","format","indent","filter","Boolean","join","tag","nodeTypes","getType","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/heading/server/index.ts"],"sourcesContent":["import type {\n SerializedHeadingNode as _SerializedHeadingNode,\n HeadingTagType,\n} from '@lexical/rich-text'\nimport type { Spread } from 'lexical'\n\nimport { HeadingNode } from '@lexical/rich-text'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { convertLexicalNodesToHTML } from '../../converters/
|
|
1
|
+
{"version":3,"file":"index.js","names":["HeadingNode","createServerFeature","convertLexicalNodesToHTML","createNode","MarkdownTransformer","i18n","HeadingFeature","feature","props","enabledHeadingSizes","ClientFeature","clientFeatureProps","markdownTransformers","nodes","converters","html","converter","currentDepth","depth","draft","node","overrideAccess","parent","req","showHiddenFields","childrenText","lexicalNodes","children","style","format","indent","filter","Boolean","join","tag","nodeTypes","getType","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/heading/server/index.ts"],"sourcesContent":["import type {\n SerializedHeadingNode as _SerializedHeadingNode,\n HeadingTagType,\n} from '@lexical/rich-text'\nimport type { Spread } from 'lexical'\n\nimport { HeadingNode } from '@lexical/rich-text'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { convertLexicalNodesToHTML } from '../../converters/lexicalToHtml_deprecated/converter/index.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { MarkdownTransformer } from '../markdownTransformer.js'\nimport { i18n } from './i18n.js'\n\nexport type SerializedHeadingNode = Spread<\n {\n type: 'heading'\n },\n _SerializedHeadingNode\n>\n\nexport type HeadingFeatureProps = {\n enabledHeadingSizes?: HeadingTagType[]\n}\n\nexport const HeadingFeature = createServerFeature<\n HeadingFeatureProps,\n HeadingFeatureProps,\n HeadingFeatureProps\n>({\n feature: ({ props }) => {\n if (!props) {\n props = {}\n }\n\n const { enabledHeadingSizes = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] } = props\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#HeadingFeatureClient',\n clientFeatureProps: props,\n i18n,\n markdownTransformers: [MarkdownTransformer(enabledHeadingSizes)],\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 const style = [\n node.format ? `text-align: ${node.format};` : '',\n node.indent > 0 ? `padding-inline-start: ${node.indent * 40}px;` : '',\n ]\n .filter(Boolean)\n .join(' ')\n return `<${node?.tag}${style ? ` style='${style}'` : ''}>${childrenText}</${node?.tag}>`\n },\n nodeTypes: [HeadingNode.getType()],\n },\n },\n node: HeadingNode,\n }),\n ],\n sanitizedServerFeatureProps: props,\n }\n },\n key: 'heading',\n})\n"],"mappings":"AAMA,SAASA,WAAW,QAAQ;AAE5B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,UAAU,QAAQ;AAC3B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,IAAI,QAAQ;AAarB,OAAO,MAAMC,cAAA,GAAiBL,mBAAA,CAI5B;EACAM,OAAA,EAASA,CAAC;IAAEC;EAAK,CAAE;IACjB,IAAI,CAACA,KAAA,EAAO;MACVA,KAAA,GAAQ,CAAC;IACX;IAEA,MAAM;MAAEC,mBAAA,GAAsB,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM;IAAK,CAAE,GAAGD,KAAA;IAEvE,OAAO;MACLE,aAAA,EAAe;MACfC,kBAAA,EAAoBH,KAAA;MACpBH,IAAA;MACAO,oBAAA,EAAsB,CAACR,mBAAA,CAAoBK,mBAAA,EAAqB;MAChEI,KAAA,EAAO,CACLV,UAAA,CAAW;QACTW,UAAA,EAAY;UACVC,IAAA,EAAM;YACJC,SAAA,EAAW,MAAAA,CAAO;cAChBF,UAAU;cACVG,YAAY;cACZC,KAAK;cACLC,KAAK;cACLC,IAAI;cACJC,cAAc;cACdC,MAAM;cACNC,GAAG;cACHC;YAAgB,CACjB;cACC,MAAMC,YAAA,GAAe,MAAMvB,yBAAA,CAA0B;gBACnDY,UAAA;gBACAG,YAAA;gBACAC,KAAA;gBACAC,KAAA;gBACAO,YAAA,EAAcN,IAAA,CAAKO,QAAQ;gBAC3BN,cAAA;gBACAC,MAAA,EAAQ;kBACN,GAAGF,IAAI;kBACPE;gBACF;gBACAC,GAAA;gBACAC;cACF;cACA,MAAMI,KAAA,GAAQ,CACZR,IAAA,CAAKS,MAAM,GAAG,eAAeT,IAAA,CAAKS,MAAM,GAAG,GAAG,IAC9CT,IAAA,CAAKU,MAAM,GAAG,IAAI,yBAAyBV,IAAA,CAAKU,MAAM,GAAG,OAAO,GAAG,GACpE,CACEC,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;cACR,OAAO,IAAIb,IAAA,EAAMc,GAAA,GAAMN,KAAA,GAAQ,WAAWA,KAAA,GAAQ,GAAG,MAAMH,YAAA,KAAiBL,IAAA,EAAMc,GAAA,GAAM;YAC1F;YACAC,SAAA,EAAW,CAACnC,WAAA,CAAYoC,OAAO;UACjC;QACF;QACAhB,IAAA,EAAMpB;MACR,GACD;MACDqC,2BAAA,EAA6B7B;IAC/B;EACF;EACA8B,GAAA,EAAK;AACP","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndentPlugin.d.ts","sourceRoot":"","sources":["../../../../src/features/indent/client/IndentPlugin.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IndentPlugin.d.ts","sourceRoot":"","sources":["../../../../src/features/indent/client/IndentPlugin.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,kBAAkB,CAiD5D,CAAA"}
|
|
@@ -2,26 +2,46 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
3
3
|
import { TabIndentationPlugin } from '@lexical/react/LexicalTabIndentationPlugin';
|
|
4
4
|
import { $findMatchingParent, mergeRegister } from '@lexical/utils';
|
|
5
|
-
import { $getSelection, $isElementNode, $isRangeSelection, COMMAND_PRIORITY_LOW, INDENT_CONTENT_COMMAND } from 'lexical';
|
|
5
|
+
import { $getSelection, $isElementNode, $isRangeSelection, COMMAND_PRIORITY_LOW, INDENT_CONTENT_COMMAND, KEY_TAB_COMMAND, OUTDENT_CONTENT_COMMAND, TabNode } from 'lexical';
|
|
6
6
|
import { useEffect } from 'react';
|
|
7
|
-
export const IndentPlugin =
|
|
7
|
+
export const IndentPlugin = ({
|
|
8
|
+
clientProps
|
|
9
|
+
}) => {
|
|
8
10
|
const [editor] = useLexicalComposerContext();
|
|
9
11
|
const {
|
|
10
|
-
disabledNodes
|
|
11
|
-
|
|
12
|
+
disabledNodes,
|
|
13
|
+
disableTabNode
|
|
14
|
+
} = clientProps;
|
|
12
15
|
useEffect(() => {
|
|
13
16
|
if (!editor || !disabledNodes?.length) {
|
|
14
17
|
return;
|
|
15
18
|
}
|
|
16
|
-
return
|
|
19
|
+
return editor.registerCommand(INDENT_CONTENT_COMMAND, () => {
|
|
17
20
|
return $handleIndentAndOutdent(block => {
|
|
18
21
|
if (!disabledNodes.includes(block.getType())) {
|
|
19
22
|
const indent = block.getIndent();
|
|
20
23
|
block.setIndent(indent + 1);
|
|
21
24
|
}
|
|
22
25
|
});
|
|
23
|
-
}, COMMAND_PRIORITY_LOW)
|
|
26
|
+
}, COMMAND_PRIORITY_LOW);
|
|
24
27
|
}, [editor, disabledNodes]);
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
if (!editor || !disableTabNode) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
return mergeRegister(
|
|
33
|
+
// This is so that when you press Tab in the middle of a paragraph,
|
|
34
|
+
// it indents the paragraph, instead of inserting a TabNode.
|
|
35
|
+
editor.registerCommand(KEY_TAB_COMMAND, event => {
|
|
36
|
+
event.preventDefault();
|
|
37
|
+
return editor.dispatchCommand(event.shiftKey ? OUTDENT_CONTENT_COMMAND : INDENT_CONTENT_COMMAND, undefined);
|
|
38
|
+
}, COMMAND_PRIORITY_LOW),
|
|
39
|
+
// Tab isn't the only way to insert a TabNode. We have to make sure
|
|
40
|
+
// it doesn't happen, for example, when pasting from the clipboard.
|
|
41
|
+
editor.registerNodeTransform(TabNode, node => {
|
|
42
|
+
node.remove();
|
|
43
|
+
}));
|
|
44
|
+
}, [editor, disableTabNode]);
|
|
25
45
|
return /*#__PURE__*/_jsx(TabIndentationPlugin, {});
|
|
26
46
|
};
|
|
27
47
|
function $handleIndentAndOutdent(indentOrOutdent) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndentPlugin.js","names":["useLexicalComposerContext","TabIndentationPlugin","$findMatchingParent","mergeRegister","$getSelection","$isElementNode","$isRangeSelection","COMMAND_PRIORITY_LOW","INDENT_CONTENT_COMMAND","useEffect","IndentPlugin","
|
|
1
|
+
{"version":3,"file":"IndentPlugin.js","names":["useLexicalComposerContext","TabIndentationPlugin","$findMatchingParent","mergeRegister","$getSelection","$isElementNode","$isRangeSelection","COMMAND_PRIORITY_LOW","INDENT_CONTENT_COMMAND","KEY_TAB_COMMAND","OUTDENT_CONTENT_COMMAND","TabNode","useEffect","IndentPlugin","clientProps","editor","disabledNodes","disableTabNode","length","registerCommand","$handleIndentAndOutdent","block","includes","getType","indent","getIndent","setIndent","event","preventDefault","dispatchCommand","shiftKey","undefined","registerNodeTransform","node","remove","_jsx","indentOrOutdent","selection","alreadyHandled","Set","nodes","getNodes","i","key","getKey","has","parentBlock","parentNode","isInline","parentKey","canIndent","add","size"],"sources":["../../../../src/features/indent/client/IndentPlugin.tsx"],"sourcesContent":["import type { ElementNode } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { TabIndentationPlugin } from '@lexical/react/LexicalTabIndentationPlugin'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n COMMAND_PRIORITY_LOW,\n INDENT_CONTENT_COMMAND,\n KEY_TAB_COMMAND,\n OUTDENT_CONTENT_COMMAND,\n TabNode,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../typesClient.js'\nimport type { IndentFeatureProps } from '../server/index.js'\n\nexport const IndentPlugin: PluginComponent<IndentFeatureProps> = ({ clientProps }) => {\n const [editor] = useLexicalComposerContext()\n const { disabledNodes, disableTabNode } = clientProps\n\n useEffect(() => {\n if (!editor || !disabledNodes?.length) {\n return\n }\n return editor.registerCommand(\n INDENT_CONTENT_COMMAND,\n () => {\n return $handleIndentAndOutdent((block) => {\n if (!disabledNodes.includes(block.getType())) {\n const indent = block.getIndent()\n block.setIndent(indent + 1)\n }\n })\n },\n COMMAND_PRIORITY_LOW,\n )\n }, [editor, disabledNodes])\n\n useEffect(() => {\n if (!editor || !disableTabNode) {\n return\n }\n return mergeRegister(\n // This is so that when you press Tab in the middle of a paragraph,\n // it indents the paragraph, instead of inserting a TabNode.\n editor.registerCommand<KeyboardEvent>(\n KEY_TAB_COMMAND,\n (event) => {\n event.preventDefault()\n return editor.dispatchCommand(\n event.shiftKey ? OUTDENT_CONTENT_COMMAND : INDENT_CONTENT_COMMAND,\n undefined,\n )\n },\n COMMAND_PRIORITY_LOW,\n ),\n // Tab isn't the only way to insert a TabNode. We have to make sure\n // it doesn't happen, for example, when pasting from the clipboard.\n editor.registerNodeTransform(TabNode, (node) => {\n node.remove()\n }),\n )\n }, [editor, disableTabNode])\n\n return <TabIndentationPlugin />\n}\n\nfunction $handleIndentAndOutdent(indentOrOutdent: (block: ElementNode) => void): boolean {\n const selection = $getSelection()\n if (!$isRangeSelection(selection)) {\n return false\n }\n const alreadyHandled = new Set()\n const nodes = selection.getNodes()\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i]!\n const key = node.getKey()\n if (alreadyHandled.has(key)) {\n continue\n }\n const parentBlock = $findMatchingParent(\n node,\n (parentNode): parentNode is ElementNode =>\n $isElementNode(parentNode) && !parentNode.isInline(),\n )\n if (parentBlock === null) {\n continue\n }\n const parentKey = parentBlock.getKey()\n if (parentBlock.canIndent() && !alreadyHandled.has(parentKey)) {\n alreadyHandled.add(parentKey)\n indentOrOutdent(parentBlock)\n }\n }\n return alreadyHandled.size > 0\n}\n"],"mappings":";AAEA,SAASA,yBAAyB,QAAQ;AAC1C,SAASC,oBAAoB,QAAQ;AACrC,SAASC,mBAAmB,EAAEC,aAAa,QAAQ;AACnD,SACEC,aAAa,EACbC,cAAc,EACdC,iBAAiB,EACjBC,oBAAoB,EACpBC,sBAAsB,EACtBC,eAAe,EACfC,uBAAuB,EACvBC,OAAO,QACF;AACP,SAASC,SAAS,QAAQ;AAK1B,OAAO,MAAMC,YAAA,GAAoDA,CAAC;EAAEC;AAAW,CAAE;EAC/E,MAAM,CAACC,MAAA,CAAO,GAAGf,yBAAA;EACjB,MAAM;IAAEgB,aAAa;IAAEC;EAAc,CAAE,GAAGH,WAAA;EAE1CF,SAAA,CAAU;IACR,IAAI,CAACG,MAAA,IAAU,CAACC,aAAA,EAAeE,MAAA,EAAQ;MACrC;IACF;IACA,OAAOH,MAAA,CAAOI,eAAe,CAC3BX,sBAAA,EACA;MACE,OAAOY,uBAAA,CAAyBC,KAAA;QAC9B,IAAI,CAACL,aAAA,CAAcM,QAAQ,CAACD,KAAA,CAAME,OAAO,KAAK;UAC5C,MAAMC,MAAA,GAASH,KAAA,CAAMI,SAAS;UAC9BJ,KAAA,CAAMK,SAAS,CAACF,MAAA,GAAS;QAC3B;MACF;IACF,GACAjB,oBAAA;EAEJ,GAAG,CAACQ,MAAA,EAAQC,aAAA,CAAc;EAE1BJ,SAAA,CAAU;IACR,IAAI,CAACG,MAAA,IAAU,CAACE,cAAA,EAAgB;MAC9B;IACF;IACA,OAAOd,aAAA;IACL;IACA;IACAY,MAAA,CAAOI,eAAe,CACpBV,eAAA,EACCkB,KAAA;MACCA,KAAA,CAAMC,cAAc;MACpB,OAAOb,MAAA,CAAOc,eAAe,CAC3BF,KAAA,CAAMG,QAAQ,GAAGpB,uBAAA,GAA0BF,sBAAA,EAC3CuB,SAAA;IAEJ,GACAxB,oBAAA;IAEF;IACA;IACAQ,MAAA,CAAOiB,qBAAqB,CAACrB,OAAA,EAAUsB,IAAA;MACrCA,IAAA,CAAKC,MAAM;IACb;EAEJ,GAAG,CAACnB,MAAA,EAAQE,cAAA,CAAe;EAE3B,oBAAOkB,IAAA,CAAClC,oBAAA;AACV;AAEA,SAASmB,wBAAwBgB,eAA6C;EAC5E,MAAMC,SAAA,GAAYjC,aAAA;EAClB,IAAI,CAACE,iBAAA,CAAkB+B,SAAA,GAAY;IACjC,OAAO;EACT;EACA,MAAMC,cAAA,GAAiB,IAAIC,GAAA;EAC3B,MAAMC,KAAA,GAAQH,SAAA,CAAUI,QAAQ;EAChC,KAAK,IAAIC,CAAA,GAAI,GAAGA,CAAA,GAAIF,KAAA,CAAMtB,MAAM,EAAEwB,CAAA,IAAK;IACrC,MAAMT,IAAA,GAAOO,KAAK,CAACE,CAAA,CAAE;IACrB,MAAMC,GAAA,GAAMV,IAAA,CAAKW,MAAM;IACvB,IAAIN,cAAA,CAAeO,GAAG,CAACF,GAAA,GAAM;MAC3B;IACF;IACA,MAAMG,WAAA,GAAc5C,mBAAA,CAClB+B,IAAA,EACCc,UAAA,IACC1C,cAAA,CAAe0C,UAAA,KAAe,CAACA,UAAA,CAAWC,QAAQ;IAEtD,IAAIF,WAAA,KAAgB,MAAM;MACxB;IACF;IACA,MAAMG,SAAA,GAAYH,WAAA,CAAYF,MAAM;IACpC,IAAIE,WAAA,CAAYI,SAAS,MAAM,CAACZ,cAAA,CAAeO,GAAG,CAACI,SAAA,GAAY;MAC7DX,cAAA,CAAea,GAAG,CAACF,SAAA;MACnBb,eAAA,CAAgBU,WAAA;IAClB;EACF;EACA,OAAOR,cAAA,CAAec,IAAI,GAAG;AAC/B","ignoreList":[]}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
import { type IndentFeatureProps } from '../server/index.js';
|
|
2
|
+
export declare const IndentFeatureClient: import("../../typesClient.js").FeatureProviderProviderClient<IndentFeatureProps, IndentFeatureProps>;
|
|
2
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/indent/client/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/indent/client/index.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAwE5D,eAAO,MAAM,mBAAmB,sGAiB9B,CAAA"}
|
|
@@ -7,7 +7,9 @@ import { IndentIncreaseIcon } from '../../../lexical/ui/icons/IndentIncrease/ind
|
|
|
7
7
|
import { createClientFeature } from '../../../utilities/createClientFeature.js';
|
|
8
8
|
import { IndentPlugin } from './IndentPlugin.js';
|
|
9
9
|
import { toolbarIndentGroupWithItems } from './toolbarIndentGroup.js';
|
|
10
|
-
const toolbarGroups =
|
|
10
|
+
const toolbarGroups = ({
|
|
11
|
+
disabledNodes
|
|
12
|
+
}) => [toolbarIndentGroupWithItems([{
|
|
11
13
|
ChildComponent: IndentDecreaseIcon,
|
|
12
14
|
isActive: () => false,
|
|
13
15
|
isEnabled: ({
|
|
@@ -28,13 +30,8 @@ const toolbarGroups = [toolbarIndentGroupWithItems([{
|
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
32
|
}
|
|
31
|
-
if (!atLeastOneNodeCanOutdent
|
|
32
|
-
|
|
33
|
-
if ($findMatchingParent(anchorNode, node => isIndentable(node) && node.getIndent() > 0)) {
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
const focusNode = selection.focus.getNode();
|
|
37
|
-
if ($findMatchingParent(focusNode, node => isIndentable(node) && node.getIndent() > 0)) {
|
|
33
|
+
if (!atLeastOneNodeCanOutdent) {
|
|
34
|
+
if ($pointsAncestorMatch(selection, node => isIndentable(node) && node.getIndent() > 0)) {
|
|
38
35
|
return true;
|
|
39
36
|
}
|
|
40
37
|
}
|
|
@@ -55,6 +52,18 @@ const toolbarGroups = [toolbarIndentGroupWithItems([{
|
|
|
55
52
|
}, {
|
|
56
53
|
ChildComponent: IndentIncreaseIcon,
|
|
57
54
|
isActive: () => false,
|
|
55
|
+
isEnabled: ({
|
|
56
|
+
selection
|
|
57
|
+
}) => {
|
|
58
|
+
const nodes = selection?.getNodes();
|
|
59
|
+
if (!nodes?.length) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
if (nodes.some(node => disabledNodes?.includes(node.getType()))) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
return !$pointsAncestorMatch(selection, node => (disabledNodes ?? []).includes(node.getType()));
|
|
66
|
+
},
|
|
58
67
|
key: 'indentIncrease',
|
|
59
68
|
label: ({
|
|
60
69
|
i18n
|
|
@@ -68,16 +77,29 @@ const toolbarGroups = [toolbarIndentGroupWithItems([{
|
|
|
68
77
|
},
|
|
69
78
|
order: 2
|
|
70
79
|
}])];
|
|
71
|
-
export const IndentFeatureClient = createClientFeature({
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
export const IndentFeatureClient = createClientFeature(({
|
|
81
|
+
props
|
|
82
|
+
}) => {
|
|
83
|
+
const disabledNodes = props.disabledNodes ?? [];
|
|
84
|
+
return {
|
|
85
|
+
plugins: [{
|
|
86
|
+
Component: IndentPlugin,
|
|
87
|
+
position: 'normal'
|
|
88
|
+
}],
|
|
89
|
+
sanitizedClientFeatureProps: props,
|
|
90
|
+
toolbarFixed: {
|
|
91
|
+
groups: toolbarGroups({
|
|
92
|
+
disabledNodes
|
|
93
|
+
})
|
|
94
|
+
},
|
|
95
|
+
toolbarInline: {
|
|
96
|
+
groups: toolbarGroups({
|
|
97
|
+
disabledNodes
|
|
98
|
+
})
|
|
99
|
+
}
|
|
100
|
+
};
|
|
82
101
|
});
|
|
102
|
+
function $pointsAncestorMatch(selection, fn) {
|
|
103
|
+
return $isRangeSelection(selection) && (!!$findMatchingParent(selection.anchor.getNode(), fn) || !!$findMatchingParent(selection.focus.getNode(), fn));
|
|
104
|
+
}
|
|
83
105
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["$findMatchingParent","$isElementNode","$isRangeSelection","INDENT_CONTENT_COMMAND","OUTDENT_CONTENT_COMMAND","IndentDecreaseIcon","IndentIncreaseIcon","createClientFeature","IndentPlugin","toolbarIndentGroupWithItems","toolbarGroups","ChildComponent","isActive","isEnabled","selection","nodes","getNodes","length","atLeastOneNodeCanOutdent","isIndentable","node","canIndent","getIndent","
|
|
1
|
+
{"version":3,"file":"index.js","names":["$findMatchingParent","$isElementNode","$isRangeSelection","INDENT_CONTENT_COMMAND","OUTDENT_CONTENT_COMMAND","IndentDecreaseIcon","IndentIncreaseIcon","createClientFeature","IndentPlugin","toolbarIndentGroupWithItems","toolbarGroups","disabledNodes","ChildComponent","isActive","isEnabled","selection","nodes","getNodes","length","atLeastOneNodeCanOutdent","isIndentable","node","canIndent","getIndent","$pointsAncestorMatch","key","label","i18n","t","onSelect","editor","dispatchCommand","undefined","order","some","includes","getType","IndentFeatureClient","props","plugins","Component","position","sanitizedClientFeatureProps","toolbarFixed","groups","toolbarInline","fn","anchor","getNode","focus"],"sources":["../../../../src/features/indent/client/index.tsx"],"sourcesContent":["'use client'\n\nimport type { BaseSelection, ElementNode, LexicalNode } from 'lexical'\n\nimport { $findMatchingParent } from '@lexical/utils'\nimport {\n $isElementNode,\n $isRangeSelection,\n INDENT_CONTENT_COMMAND,\n OUTDENT_CONTENT_COMMAND,\n} from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { IndentDecreaseIcon } from '../../../lexical/ui/icons/IndentDecrease/index.js'\nimport { IndentIncreaseIcon } from '../../../lexical/ui/icons/IndentIncrease/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { type IndentFeatureProps } from '../server/index.js'\nimport { IndentPlugin } from './IndentPlugin.js'\nimport { toolbarIndentGroupWithItems } from './toolbarIndentGroup.js'\n\nconst toolbarGroups = ({ disabledNodes }: IndentFeatureProps): ToolbarGroup[] => [\n toolbarIndentGroupWithItems([\n {\n ChildComponent: IndentDecreaseIcon,\n isActive: () => false,\n isEnabled: ({ selection }) => {\n const nodes = selection?.getNodes()\n if (!nodes?.length) {\n return false\n }\n let atLeastOneNodeCanOutdent = false\n const isIndentable = (node: LexicalNode): node is ElementNode =>\n $isElementNode(node) && node.canIndent()\n for (const node of nodes) {\n if (isIndentable(node)) {\n if (node.getIndent() <= 0) {\n return false\n } else {\n atLeastOneNodeCanOutdent = true\n }\n }\n }\n\n if (!atLeastOneNodeCanOutdent) {\n if (\n $pointsAncestorMatch(selection, (node) => isIndentable(node) && node.getIndent() > 0)\n ) {\n return true\n }\n }\n return atLeastOneNodeCanOutdent\n },\n key: 'indentDecrease',\n label: ({ i18n }) => {\n return i18n.t('lexical:indent:decreaseLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(OUTDENT_CONTENT_COMMAND, undefined)\n },\n order: 1,\n },\n {\n ChildComponent: IndentIncreaseIcon,\n isActive: () => false,\n isEnabled: ({ selection }) => {\n const nodes = selection?.getNodes()\n if (!nodes?.length) {\n return false\n }\n if (nodes.some((node) => disabledNodes?.includes(node.getType()))) {\n return false\n }\n return !$pointsAncestorMatch(selection, (node) =>\n (disabledNodes ?? []).includes(node.getType()),\n )\n },\n key: 'indentIncrease',\n label: ({ i18n }) => {\n return i18n.t('lexical:indent:increaseLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INDENT_CONTENT_COMMAND, undefined)\n },\n order: 2,\n },\n ]),\n]\n\nexport const IndentFeatureClient = createClientFeature<IndentFeatureProps>(({ props }) => {\n const disabledNodes = props.disabledNodes ?? []\n return {\n plugins: [\n {\n Component: IndentPlugin,\n position: 'normal',\n },\n ],\n sanitizedClientFeatureProps: props,\n toolbarFixed: {\n groups: toolbarGroups({ disabledNodes }),\n },\n toolbarInline: {\n groups: toolbarGroups({ disabledNodes }),\n },\n }\n})\n\nfunction $pointsAncestorMatch(\n selection: BaseSelection,\n fn: (node: LexicalNode) => boolean,\n): boolean {\n return (\n $isRangeSelection(selection) &&\n (!!$findMatchingParent(selection.anchor.getNode(), fn) ||\n !!$findMatchingParent(selection.focus.getNode(), fn))\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +4,13 @@ export type IndentFeatureProps = {
|
|
|
4
4
|
* These can be: "paragraph", "heading", "listitem", "quote" or other indentable nodes if they exist.
|
|
5
5
|
*/
|
|
6
6
|
disabledNodes?: string[];
|
|
7
|
+
/**
|
|
8
|
+
* If true, pressing Tab in the middle of a block such as a paragraph or heading will not insert a tabNode.
|
|
9
|
+
* Instead, Tab will only be used for block-level indentation.
|
|
10
|
+
*
|
|
11
|
+
* @default false
|
|
12
|
+
*/
|
|
13
|
+
disableTabNode?: boolean;
|
|
7
14
|
};
|
|
8
15
|
export declare const IndentFeature: import("../../typesServer.js").FeatureProviderProviderServer<IndentFeatureProps, IndentFeatureProps, IndentFeatureProps>;
|
|
9
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/indent/server/index.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,aAAa,0HAaxB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/indent/server/index.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,aAAa,0HAaxB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["createServerFeature","i18n","IndentFeature","feature","props","ClientFeature","clientFeatureProps","key"],"sources":["../../../../src/features/indent/server/index.ts"],"sourcesContent":["import { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { i18n } from './i18n.js'\n\nexport type IndentFeatureProps = {\n /**\n * The nodes that should not be indented. \"type\" property of the nodes you don't want to be indented.\n * These can be: \"paragraph\", \"heading\", \"listitem\", \"quote\" or other indentable nodes if they exist.\n */\n disabledNodes?: string[]\n}\n\nexport const IndentFeature = createServerFeature<\n IndentFeatureProps,\n IndentFeatureProps,\n IndentFeatureProps\n>({\n feature: ({ props }) => {\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#IndentFeatureClient',\n clientFeatureProps: props,\n i18n,\n }\n },\n key: 'indent',\n})\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ;AACpC,SAASC,IAAI,QAAQ;
|
|
1
|
+
{"version":3,"file":"index.js","names":["createServerFeature","i18n","IndentFeature","feature","props","ClientFeature","clientFeatureProps","key"],"sources":["../../../../src/features/indent/server/index.ts"],"sourcesContent":["import { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { i18n } from './i18n.js'\n\nexport type IndentFeatureProps = {\n /**\n * The nodes that should not be indented. \"type\" property of the nodes you don't want to be indented.\n * These can be: \"paragraph\", \"heading\", \"listitem\", \"quote\" or other indentable nodes if they exist.\n */\n disabledNodes?: string[]\n /**\n * If true, pressing Tab in the middle of a block such as a paragraph or heading will not insert a tabNode.\n * Instead, Tab will only be used for block-level indentation.\n *\n * @default false\n */\n disableTabNode?: boolean\n}\n\nexport const IndentFeature = createServerFeature<\n IndentFeatureProps,\n IndentFeatureProps,\n IndentFeatureProps\n>({\n feature: ({ props }) => {\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#IndentFeatureClient',\n clientFeatureProps: props,\n i18n,\n }\n },\n key: 'indent',\n})\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ;AACpC,SAASC,IAAI,QAAQ;AAiBrB,OAAO,MAAMC,aAAA,GAAgBF,mBAAA,CAI3B;EACAG,OAAA,EAASA,CAAC;IAAEC;EAAK,CAAE;IACjB,OAAO;MACLC,aAAA,EAAe;MACfC,kBAAA,EAAoBF,KAAA;MACpBH;IACF;EACF;EACAM,GAAA,EAAK;AACP","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/link/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAEd,KAAK,EACL,kBAAkB,EAElB,eAAe,EAChB,MAAM,SAAS,CAAA;AAMhB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAarD,MAAM,MAAM,6BAA6B,GACrC;IACE;;;QAGI;IACJ,mBAAmB,CAAC,EAAE,cAAc,EAAE,CAAA;IAGtC,kBAAkB,CAAC,EAAE,KAAK,CAAA;CAC3B,GACD;IAEE,mBAAmB,CAAC,EAAE,KAAK,CAAA;IAE3B;;;QAGI;IACJ,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAA;CACtC,CAAA;AAEL,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IACxC;;;OAGG;IACH,MAAM,CAAC,EACH,CAAC,CAAC,IAAI,EAAE;QACN,MAAM,EAAE,eAAe,CAAA;QACvB,aAAa,EAAE,kBAAkB,EAAE,CAAA;KACpC,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,GACrC,KAAK,EAAE,CAAA;IACX;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,6BAA6B,CAAA;AAEjC,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/link/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAEd,KAAK,EACL,kBAAkB,EAElB,eAAe,EAChB,MAAM,SAAS,CAAA;AAMhB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAarD,MAAM,MAAM,6BAA6B,GACrC;IACE;;;QAGI;IACJ,mBAAmB,CAAC,EAAE,cAAc,EAAE,CAAA;IAGtC,kBAAkB,CAAC,EAAE,KAAK,CAAA;CAC3B,GACD;IAEE,mBAAmB,CAAC,EAAE,KAAK,CAAA;IAE3B;;;QAGI;IACJ,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAA;CACtC,CAAA;AAEL,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IACxC;;;OAGG;IACH,MAAM,CAAC,EACH,CAAC,CAAC,IAAI,EAAE;QACN,MAAM,EAAE,eAAe,CAAA;QACvB,aAAa,EAAE,kBAAkB,EAAE,CAAA;KACpC,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,GACrC,KAAK,EAAE,CAAA;IACX;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,6BAA6B,CAAA;AAEjC,eAAO,MAAM,WAAW,2HA0LtB,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import escapeHTML from 'escape-html';
|
|
2
2
|
import { sanitizeFields } from 'payload';
|
|
3
3
|
import { createServerFeature } from '../../../utilities/createServerFeature.js';
|
|
4
|
-
import { convertLexicalNodesToHTML } from '../../converters/
|
|
4
|
+
import { convertLexicalNodesToHTML } from '../../converters/lexicalToHtml_deprecated/converter/index.js';
|
|
5
5
|
import { createNode } from '../../typeUtilities.js';
|
|
6
6
|
import { LinkMarkdownTransformer } from '../markdownTransformer.js';
|
|
7
7
|
import { AutoLinkNode } from '../nodes/AutoLinkNode.js';
|
|
@@ -95,13 +95,11 @@ export const LinkFeature = createServerFeature({
|
|
|
95
95
|
req,
|
|
96
96
|
showHiddenFields
|
|
97
97
|
});
|
|
98
|
-
const rel = node.fields.newTab ? ' rel="noopener noreferrer"' : '';
|
|
99
|
-
const target = node.fields.newTab ? ' target="_blank"' : '';
|
|
100
98
|
let href = node.fields.url ?? '';
|
|
101
99
|
if (node.fields.linkType === 'internal') {
|
|
102
100
|
href = typeof node.fields.doc?.value !== 'object' ? String(node.fields.doc?.value) : String(node.fields.doc?.value?.id);
|
|
103
101
|
}
|
|
104
|
-
return `<a href="${href}"${target}
|
|
102
|
+
return `<a href="${href}"${node.fields.newTab ? ' rel="noopener noreferrer" target="_blank"' : ''}>${childrenText}</a>`;
|
|
105
103
|
},
|
|
106
104
|
nodeTypes: [AutoLinkNode.getType()]
|
|
107
105
|
}
|
|
@@ -137,10 +135,8 @@ export const LinkFeature = createServerFeature({
|
|
|
137
135
|
req,
|
|
138
136
|
showHiddenFields
|
|
139
137
|
});
|
|
140
|
-
const rel = node.fields.newTab ? ' rel="noopener noreferrer"' : '';
|
|
141
|
-
const target = node.fields.newTab ? ' target="_blank"' : '';
|
|
142
138
|
const href = node.fields.linkType === 'custom' ? escapeHTML(node.fields.url) : node.fields.doc?.value;
|
|
143
|
-
return `<a href="${href}"${target}
|
|
139
|
+
return `<a href="${href}"${node.fields.newTab ? ' rel="noopener noreferrer" target="_blank"' : ''}>${childrenText}</a>`;
|
|
144
140
|
},
|
|
145
141
|
nodeTypes: [LinkNode.getType()]
|
|
146
142
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["escapeHTML","sanitizeFields","createServerFeature","convertLexicalNodesToHTML","createNode","LinkMarkdownTransformer","AutoLinkNode","LinkNode","linkPopulationPromiseHOC","i18n","transformExtraFields","linkValidation","LinkFeature","feature","config","_config","isRoot","parentIsLocalized","props","validRelationships","collections","map","c","slug","_transformedFields","fields","enabledCollections","disabledCollections","maxDepth","sanitizedFields","requireFieldLevelRichTextEditor","sanitizedFieldsWithoutText","filter","field","name","linkTypeField","linkURLField","defaultLinkType","defaultValue","undefined","defaultLinkURL","ClientFeature","clientFeatureProps","disableAutoLinks","generateSchemaMap","Array","isArray","length","schemaMap","Map","set","markdownTransformers","nodes","converters","html","converter","currentDepth","depth","draft","node","overrideAccess","parent","req","showHiddenFields","childrenText","lexicalNodes","children","rel","newTab","target","href","url","linkType","doc","value","String","id","nodeTypes","getType","validations","getSubFields","getSubFieldsData","graphQLPopulationPromises","Boolean","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/link/server/index.ts"],"sourcesContent":["import type {\n CollectionSlug,\n Config,\n Field,\n FieldAffectingData,\n FieldSchemaMap,\n SanitizedConfig,\n} from 'payload'\n\nimport escapeHTML from 'escape-html'\nimport { sanitizeFields } from 'payload'\n\nimport type { NodeWithHooks } from '../../typesServer.js'\nimport type { ClientProps } from '../client/index.js'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { convertLexicalNodesToHTML } from '../../converters/html_deprecated/converter/index.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { LinkMarkdownTransformer } from '../markdownTransformer.js'\nimport { AutoLinkNode } from '../nodes/AutoLinkNode.js'\nimport { LinkNode } from '../nodes/LinkNode.js'\nimport { linkPopulationPromiseHOC } from './graphQLPopulationPromise.js'\nimport { i18n } from './i18n.js'\nimport { transformExtraFields } from './transformExtraFields.js'\nimport { linkValidation } from './validate.js'\n\nexport type ExclusiveLinkCollectionsProps =\n | {\n /**\n * The collections that should be disabled for internal linking. Overrides the `enableRichTextLink` property in the collection config.\n * When this property is set, `enabledCollections` will not be available.\n **/\n disabledCollections?: CollectionSlug[]\n\n // Ensures that enabledCollections is not available when disabledCollections is set\n enabledCollections?: never\n }\n | {\n // Ensures that disabledCollections is not available when enabledCollections is set\n disabledCollections?: never\n\n /**\n * The collections that should be enabled for internal linking. Overrides the `enableRichTextLink` property in the collection config\n * When this property is set, `disabledCollections` will not be available.\n **/\n enabledCollections?: CollectionSlug[]\n }\n\nexport type LinkFeatureServerProps = {\n /**\n * Disables the automatic creation of links from URLs pasted into the editor, as well\n * as auto link nodes.\n *\n * If set to 'creationOnly', only the creation of new auto link nodes will be disabled.\n * Existing auto link nodes will still be editable.\n *\n * @default false\n */\n disableAutoLinks?: 'creationOnly' | true\n /**\n * A function or array defining additional fields for the link feature. These will be\n * displayed in the link editor drawer.\n */\n fields?:\n | ((args: {\n config: SanitizedConfig\n defaultFields: FieldAffectingData[]\n }) => (Field | FieldAffectingData)[])\n | Field[]\n /**\n * Sets a maximum population depth for the internal doc default field of link, regardless of the remaining depth when the field is reached.\n * This behaves exactly like the maxDepth properties of relationship and upload fields.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n} & ExclusiveLinkCollectionsProps\n\nexport const LinkFeature = createServerFeature<\n LinkFeatureServerProps,\n LinkFeatureServerProps,\n ClientProps\n>({\n feature: async ({ config: _config, isRoot, parentIsLocalized, props }) => {\n if (!props) {\n props = {}\n }\n const validRelationships = _config.collections.map((c) => c.slug) || []\n\n const _transformedFields = transformExtraFields(\n props.fields ? props.fields : null,\n _config,\n props.enabledCollections,\n props.disabledCollections,\n props.maxDepth,\n )\n\n const sanitizedFields = await sanitizeFields({\n config: _config as unknown as Config,\n fields: _transformedFields,\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n props.fields = sanitizedFields\n\n // the text field is not included in the node data.\n // Thus, for tasks like validation, we do not want to pass it a text field in the schema which will never have data.\n // Otherwise, it will cause a validation error (field is required).\n const sanitizedFieldsWithoutText = sanitizedFields.filter(\n (field) => !('name' in field) || field.name !== 'text',\n )\n\n let linkTypeField: Field | null = null\n let linkURLField: Field | null = null\n\n for (const field of sanitizedFields) {\n if ('name' in field && field.name === 'linkType') {\n linkTypeField = field\n }\n\n if ('name' in field && field.name === 'url') {\n linkURLField = field\n }\n }\n\n const defaultLinkType = linkTypeField\n ? 'defaultValue' in linkTypeField && typeof linkTypeField.defaultValue === 'string'\n ? linkTypeField.defaultValue\n : 'custom'\n : undefined\n\n const defaultLinkURL = linkURLField\n ? 'defaultValue' in linkURLField && typeof linkURLField.defaultValue === 'string'\n ? linkURLField.defaultValue\n : 'https://'\n : undefined\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#LinkFeatureClient',\n clientFeatureProps: {\n defaultLinkType,\n defaultLinkURL,\n disableAutoLinks: props.disableAutoLinks,\n disabledCollections: props.disabledCollections,\n enabledCollections: props.enabledCollections,\n } as ClientProps,\n generateSchemaMap: () => {\n if (!sanitizedFields || !Array.isArray(sanitizedFields) || sanitizedFields.length === 0) {\n return null\n }\n\n const schemaMap: FieldSchemaMap = new Map()\n schemaMap.set('fields', {\n fields: sanitizedFields,\n })\n\n return schemaMap\n },\n i18n,\n markdownTransformers: [LinkMarkdownTransformer],\n nodes: [\n props?.disableAutoLinks === true\n ? null\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 rel: string = node.fields.newTab ? ' rel=\"noopener noreferrer\"' : ''\n const target: string = node.fields.newTab ? ' target=\"_blank\"' : ''\n\n let href: string = node.fields.url ?? ''\n if (node.fields.linkType === 'internal') {\n href =\n typeof node.fields.doc?.value !== 'object'\n ? String(node.fields.doc?.value)\n : String(node.fields.doc?.value?.id)\n }\n\n return `<a href=\"${href}\"${target}${rel}>${childrenText}</a>`\n },\n nodeTypes: [AutoLinkNode.getType()],\n },\n },\n node: AutoLinkNode,\n // Since AutoLinkNodes are just internal links, they need no hooks or graphQL population promises\n validations: [linkValidation(props, sanitizedFieldsWithoutText)],\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 rel: string = node.fields.newTab ? ' rel=\"noopener noreferrer\"' : ''\n const target: string = node.fields.newTab ? ' target=\"_blank\"' : ''\n\n const href: string =\n node.fields.linkType === 'custom'\n ? escapeHTML(node.fields.url)\n : (node.fields.doc?.value as string)\n\n return `<a href=\"${href}\"${target}${rel}>${childrenText}</a>`\n },\n nodeTypes: [LinkNode.getType()],\n },\n },\n getSubFields: () => {\n return sanitizedFieldsWithoutText\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [linkPopulationPromiseHOC(props)],\n node: LinkNode,\n validations: [linkValidation(props, sanitizedFieldsWithoutText)],\n }),\n ].filter(Boolean) as Array<NodeWithHooks>,\n sanitizedServerFeatureProps: props,\n }\n },\n key: 'link',\n})\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["escapeHTML","sanitizeFields","createServerFeature","convertLexicalNodesToHTML","createNode","LinkMarkdownTransformer","AutoLinkNode","LinkNode","linkPopulationPromiseHOC","i18n","transformExtraFields","linkValidation","LinkFeature","feature","config","_config","isRoot","parentIsLocalized","props","validRelationships","collections","map","c","slug","_transformedFields","fields","enabledCollections","disabledCollections","maxDepth","sanitizedFields","requireFieldLevelRichTextEditor","sanitizedFieldsWithoutText","filter","field","name","linkTypeField","linkURLField","defaultLinkType","defaultValue","undefined","defaultLinkURL","ClientFeature","clientFeatureProps","disableAutoLinks","generateSchemaMap","Array","isArray","length","schemaMap","Map","set","markdownTransformers","nodes","converters","html","converter","currentDepth","depth","draft","node","overrideAccess","parent","req","showHiddenFields","childrenText","lexicalNodes","children","href","url","linkType","doc","value","String","id","newTab","nodeTypes","getType","validations","getSubFields","getSubFieldsData","graphQLPopulationPromises","Boolean","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/link/server/index.ts"],"sourcesContent":["import type {\n CollectionSlug,\n Config,\n Field,\n FieldAffectingData,\n FieldSchemaMap,\n SanitizedConfig,\n} from 'payload'\n\nimport escapeHTML from 'escape-html'\nimport { sanitizeFields } from 'payload'\n\nimport type { NodeWithHooks } from '../../typesServer.js'\nimport type { ClientProps } from '../client/index.js'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { convertLexicalNodesToHTML } from '../../converters/lexicalToHtml_deprecated/converter/index.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { LinkMarkdownTransformer } from '../markdownTransformer.js'\nimport { AutoLinkNode } from '../nodes/AutoLinkNode.js'\nimport { LinkNode } from '../nodes/LinkNode.js'\nimport { linkPopulationPromiseHOC } from './graphQLPopulationPromise.js'\nimport { i18n } from './i18n.js'\nimport { transformExtraFields } from './transformExtraFields.js'\nimport { linkValidation } from './validate.js'\n\nexport type ExclusiveLinkCollectionsProps =\n | {\n /**\n * The collections that should be disabled for internal linking. Overrides the `enableRichTextLink` property in the collection config.\n * When this property is set, `enabledCollections` will not be available.\n **/\n disabledCollections?: CollectionSlug[]\n\n // Ensures that enabledCollections is not available when disabledCollections is set\n enabledCollections?: never\n }\n | {\n // Ensures that disabledCollections is not available when enabledCollections is set\n disabledCollections?: never\n\n /**\n * The collections that should be enabled for internal linking. Overrides the `enableRichTextLink` property in the collection config\n * When this property is set, `disabledCollections` will not be available.\n **/\n enabledCollections?: CollectionSlug[]\n }\n\nexport type LinkFeatureServerProps = {\n /**\n * Disables the automatic creation of links from URLs pasted into the editor, as well\n * as auto link nodes.\n *\n * If set to 'creationOnly', only the creation of new auto link nodes will be disabled.\n * Existing auto link nodes will still be editable.\n *\n * @default false\n */\n disableAutoLinks?: 'creationOnly' | true\n /**\n * A function or array defining additional fields for the link feature. These will be\n * displayed in the link editor drawer.\n */\n fields?:\n | ((args: {\n config: SanitizedConfig\n defaultFields: FieldAffectingData[]\n }) => (Field | FieldAffectingData)[])\n | Field[]\n /**\n * Sets a maximum population depth for the internal doc default field of link, regardless of the remaining depth when the field is reached.\n * This behaves exactly like the maxDepth properties of relationship and upload fields.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n} & ExclusiveLinkCollectionsProps\n\nexport const LinkFeature = createServerFeature<\n LinkFeatureServerProps,\n LinkFeatureServerProps,\n ClientProps\n>({\n feature: async ({ config: _config, isRoot, parentIsLocalized, props }) => {\n if (!props) {\n props = {}\n }\n const validRelationships = _config.collections.map((c) => c.slug) || []\n\n const _transformedFields = transformExtraFields(\n props.fields ? props.fields : null,\n _config,\n props.enabledCollections,\n props.disabledCollections,\n props.maxDepth,\n )\n\n const sanitizedFields = await sanitizeFields({\n config: _config as unknown as Config,\n fields: _transformedFields,\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n props.fields = sanitizedFields\n\n // the text field is not included in the node data.\n // Thus, for tasks like validation, we do not want to pass it a text field in the schema which will never have data.\n // Otherwise, it will cause a validation error (field is required).\n const sanitizedFieldsWithoutText = sanitizedFields.filter(\n (field) => !('name' in field) || field.name !== 'text',\n )\n\n let linkTypeField: Field | null = null\n let linkURLField: Field | null = null\n\n for (const field of sanitizedFields) {\n if ('name' in field && field.name === 'linkType') {\n linkTypeField = field\n }\n\n if ('name' in field && field.name === 'url') {\n linkURLField = field\n }\n }\n\n const defaultLinkType = linkTypeField\n ? 'defaultValue' in linkTypeField && typeof linkTypeField.defaultValue === 'string'\n ? linkTypeField.defaultValue\n : 'custom'\n : undefined\n\n const defaultLinkURL = linkURLField\n ? 'defaultValue' in linkURLField && typeof linkURLField.defaultValue === 'string'\n ? linkURLField.defaultValue\n : 'https://'\n : undefined\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#LinkFeatureClient',\n clientFeatureProps: {\n defaultLinkType,\n defaultLinkURL,\n disableAutoLinks: props.disableAutoLinks,\n disabledCollections: props.disabledCollections,\n enabledCollections: props.enabledCollections,\n } as ClientProps,\n generateSchemaMap: () => {\n if (!sanitizedFields || !Array.isArray(sanitizedFields) || sanitizedFields.length === 0) {\n return null\n }\n\n const schemaMap: FieldSchemaMap = new Map()\n schemaMap.set('fields', {\n fields: sanitizedFields,\n })\n\n return schemaMap\n },\n i18n,\n markdownTransformers: [LinkMarkdownTransformer],\n nodes: [\n props?.disableAutoLinks === true\n ? null\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 let href: string = node.fields.url ?? ''\n if (node.fields.linkType === 'internal') {\n href =\n typeof node.fields.doc?.value !== 'object'\n ? String(node.fields.doc?.value)\n : String(node.fields.doc?.value?.id)\n }\n\n return `<a href=\"${href}\"${node.fields.newTab ? ' rel=\"noopener noreferrer\" target=\"_blank\"' : ''}>${childrenText}</a>`\n },\n nodeTypes: [AutoLinkNode.getType()],\n },\n },\n node: AutoLinkNode,\n // Since AutoLinkNodes are just internal links, they need no hooks or graphQL population promises\n validations: [linkValidation(props, sanitizedFieldsWithoutText)],\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 href: string =\n node.fields.linkType === 'custom'\n ? escapeHTML(node.fields.url)\n : (node.fields.doc?.value as string)\n\n return `<a href=\"${href}\"${node.fields.newTab ? ' rel=\"noopener noreferrer\" target=\"_blank\"' : ''}>${childrenText}</a>`\n },\n nodeTypes: [LinkNode.getType()],\n },\n },\n getSubFields: () => {\n return sanitizedFieldsWithoutText\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [linkPopulationPromiseHOC(props)],\n node: LinkNode,\n validations: [linkValidation(props, sanitizedFieldsWithoutText)],\n }),\n ].filter(Boolean) as Array<NodeWithHooks>,\n sanitizedServerFeatureProps: props,\n }\n },\n key: 'link',\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HTMLConverter } from '../converters/
|
|
1
|
+
import type { HTMLConverter } from '../converters/lexicalToHtml_deprecated/converter/types.js';
|
|
2
2
|
import type { SerializedListItemNode, SerializedListNode } from './plugin/index.js';
|
|
3
3
|
export declare const ListHTMLConverter: HTMLConverter<SerializedListNode>;
|
|
4
4
|
export declare const ListItemHTMLConverter: HTMLConverter<SerializedListItemNode>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"htmlConverter.d.ts","sourceRoot":"","sources":["../../../src/features/lists/htmlConverter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"htmlConverter.d.ts","sourceRoot":"","sources":["../../../src/features/lists/htmlConverter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2DAA2D,CAAA;AAC9F,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAInF,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,kBAAkB,CA8B/D,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,sBAAsB,CAyDvE,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ListItemNode, ListNode } from '@lexical/list';
|
|
2
2
|
import { v4 as uuidv4 } from 'uuid';
|
|
3
|
-
import { convertLexicalNodesToHTML } from '../converters/
|
|
3
|
+
import { convertLexicalNodesToHTML } from '../converters/lexicalToHtml_deprecated/converter/index.js';
|
|
4
4
|
export const ListHTMLConverter = {
|
|
5
5
|
converter: async ({
|
|
6
6
|
converters,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"htmlConverter.js","names":["ListItemNode","ListNode","v4","uuidv4","convertLexicalNodesToHTML","ListHTMLConverter","converter","converters","currentDepth","depth","draft","node","overrideAccess","parent","req","showHiddenFields","childrenText","lexicalNodes","children","tag","listType","nodeTypes","getType","ListItemHTMLConverter","hasSubLists","some","child","type","uuid","checked","value"],"sources":["../../../src/features/lists/htmlConverter.ts"],"sourcesContent":["import { ListItemNode, ListNode } from '@lexical/list'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport type { HTMLConverter } from '../converters/
|
|
1
|
+
{"version":3,"file":"htmlConverter.js","names":["ListItemNode","ListNode","v4","uuidv4","convertLexicalNodesToHTML","ListHTMLConverter","converter","converters","currentDepth","depth","draft","node","overrideAccess","parent","req","showHiddenFields","childrenText","lexicalNodes","children","tag","listType","nodeTypes","getType","ListItemHTMLConverter","hasSubLists","some","child","type","uuid","checked","value"],"sources":["../../../src/features/lists/htmlConverter.ts"],"sourcesContent":["import { ListItemNode, ListNode } from '@lexical/list'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport type { HTMLConverter } from '../converters/lexicalToHtml_deprecated/converter/types.js'\nimport type { SerializedListItemNode, SerializedListNode } from './plugin/index.js'\n\nimport { convertLexicalNodesToHTML } from '../converters/lexicalToHtml_deprecated/converter/index.js'\n\nexport const ListHTMLConverter: HTMLConverter<SerializedListNode> = {\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 return `<${node?.tag} class=\"list-${node?.listType}\">${childrenText}</${node?.tag}>`\n },\n nodeTypes: [ListNode.getType()],\n}\n\nexport const ListItemHTMLConverter: HTMLConverter<SerializedListItemNode> = {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const hasSubLists = node.children.some((child) => child.type === 'list')\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 if ('listType' in parent && parent?.listType === 'check') {\n const uuid = uuidv4()\n\n return `<li aria-checked=${node.checked ? 'true' : 'false'} class=\"${\n 'list-item-checkbox' +\n (node.checked ? ' list-item-checkbox-checked' : ' list-item-checkbox-unchecked') +\n (hasSubLists ? ' nestedListItem' : '')\n }\"\n role=\"checkbox\"\n tabIndex=${-1}\n value=${node?.value}\n >\n ${\n hasSubLists\n ? childrenText\n : `\n <input type=\"checkbox\" id=\"${uuid}\"${node.checked ? ' checked' : ''}>\n <label for=\"${uuid}\">${childrenText}</label><br>\n `\n }\n\n\n </li>`\n } else {\n return `<li ${hasSubLists ? `class=\"nestedListItem\" ` : ''}value=${node?.value}>${childrenText}</li>`\n }\n },\n nodeTypes: [ListItemNode.getType()],\n}\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,QAAQ,QAAQ;AACvC,SAASC,EAAA,IAAMC,MAAM,QAAQ;AAK7B,SAASC,yBAAyB,QAAQ;AAE1C,OAAO,MAAMC,iBAAA,GAAuD;EAClEC,SAAA,EAAW,MAAAA,CAAO;IAChBC,UAAU;IACVC,YAAY;IACZC,KAAK;IACLC,KAAK;IACLC,IAAI;IACJC,cAAc;IACdC,MAAM;IACNC,GAAG;IACHC;EAAgB,CACjB;IACC,MAAMC,YAAA,GAAe,MAAMZ,yBAAA,CAA0B;MACnDG,UAAA;MACAC,YAAA;MACAC,KAAA;MACAC,KAAA;MACAO,YAAA,EAAcN,IAAA,CAAKO,QAAQ;MAC3BN,cAAA;MACAC,MAAA,EAAQ;QACN,GAAGF,IAAI;QACPE;MACF;MACAC,GAAA;MACAC;IACF;IAEA,OAAO,IAAIJ,IAAA,EAAMQ,GAAA,gBAAmBR,IAAA,EAAMS,QAAA,KAAaJ,YAAA,KAAiBL,IAAA,EAAMQ,GAAA,GAAM;EACtF;EACAE,SAAA,EAAW,CAACpB,QAAA,CAASqB,OAAO;AAC9B;AAEA,OAAO,MAAMC,qBAAA,GAA+D;EAC1EjB,SAAA,EAAW,MAAAA,CAAO;IAChBC,UAAU;IACVC,YAAY;IACZC,KAAK;IACLC,KAAK;IACLC,IAAI;IACJC,cAAc;IACdC,MAAM;IACNC,GAAG;IACHC;EAAgB,CACjB;IACC,MAAMS,WAAA,GAAcb,IAAA,CAAKO,QAAQ,CAACO,IAAI,CAAEC,KAAA,IAAUA,KAAA,CAAMC,IAAI,KAAK;IAEjE,MAAMX,YAAA,GAAe,MAAMZ,yBAAA,CAA0B;MACnDG,UAAA;MACAC,YAAA;MACAC,KAAA;MACAC,KAAA;MACAO,YAAA,EAAcN,IAAA,CAAKO,QAAQ;MAC3BN,cAAA;MACAC,MAAA,EAAQ;QACN,GAAGF,IAAI;QACPE;MACF;MACAC,GAAA;MACAC;IACF;IAEA,IAAI,cAAcF,MAAA,IAAUA,MAAA,EAAQO,QAAA,KAAa,SAAS;MACxD,MAAMQ,IAAA,GAAOzB,MAAA;MAEb,OAAO,oBAAoBQ,IAAA,CAAKkB,OAAO,GAAG,SAAS,kBACjD,wBACClB,IAAA,CAAKkB,OAAO,GAAG,gCAAgC,+BAA8B,KAC7EL,WAAA,GAAc,oBAAoB,EAAC;;qBAGvB,CAAC;kBACJb,IAAA,EAAMmB,KAAA;;QAGhBN,WAAA,GACIR,YAAA,GACA;qCACyBY,IAAA,IAAQjB,IAAA,CAAKkB,OAAO,GAAG,aAAa;sBACnDD,IAAA,KAASZ,YAAA;OACxB;;;gBAIS;IACZ,OAAO;MACL,OAAO,OAAOQ,WAAA,GAAc,yBAAyB,GAAG,WAAWb,IAAA,EAAMmB,KAAA,IAASd,YAAA,OAAmB;IACvG;EACF;EACAK,SAAA,EAAW,CAACrB,YAAA,CAAasB,OAAO;AAClC","ignoreList":[]}
|
|
@@ -21,7 +21,7 @@ export function DropDownItem({
|
|
|
21
21
|
setClassName([baseClass, enabled === false ? 'disabled' : '', active ? 'active' : '', item?.key ? `${baseClass}-${item.key}` : ''].filter(Boolean).join(' '));
|
|
22
22
|
}, [enabled, active, className, item.key]);
|
|
23
23
|
const ref = useRef(null);
|
|
24
|
-
const dropDownContext = React.
|
|
24
|
+
const dropDownContext = React.use(DropDownContext);
|
|
25
25
|
if (dropDownContext === null) {
|
|
26
26
|
throw new Error('DropDownItem must be used within a DropDown');
|
|
27
27
|
}
|
|
@@ -117,7 +117,7 @@ function DropDownItems({
|
|
|
117
117
|
highlightedItem.current.focus();
|
|
118
118
|
}
|
|
119
119
|
}, [items, highlightedItem]);
|
|
120
|
-
return /*#__PURE__*/_jsx(DropDownContext
|
|
120
|
+
return /*#__PURE__*/_jsx(DropDownContext, {
|
|
121
121
|
value: contextValue,
|
|
122
122
|
children: /*#__PURE__*/_jsx("div", {
|
|
123
123
|
className: (itemsContainerClassNames ?? ['toolbar-popup__dropdown-items']).join(' '),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropDown.js","names":["Button","$addUpdateTag","isDOMNode","React","useCallback","useEffect","useMemo","useRef","useState","createPortal","baseClass","DropDownContext","createContext","DropDownItem","active","children","editor","enabled","Icon","item","tooltip","className","setClassName","key","filter","Boolean","join","ref","dropDownContext","useContext","Error","registerItem","current","_jsx","buttonStyle","disabled","icon","iconPosition","iconStyle","onClick","focus","update","onSelect","isActive","onMouseDown","e","preventDefault","type","DropDownItems","dropDownRef","itemsContainerClassNames","onClose","items","setItems","highlightedItem","setHighlightedItem","itemRef","prev","handleKeyDown","event","includes","index","indexOf","length","contextValue","Provider","value","onKeyDown","DropDown","buttonAriaLabel","buttonClassName","label","stopCloseOnClickSelf","buttonRef","showDropDown","setShowDropDown","handleClose","button","dropDown","left","top","getBoundingClientRect","scrollTopOffset","window","scrollY","document","documentElement","scrollTop","style","offsetHeight","Math","min","innerWidth","offsetWidth","handle","target","contains","addEventListener","removeEventListener","portal","body","_jsxs","Fragment"],"sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/DropDown.tsx"],"sourcesContent":["'use client'\nimport { Button } from '@payloadcms/ui'\nimport { $addUpdateTag, isDOMNode, type LexicalEditor } from 'lexical'\nimport React, { type ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { ToolbarGroupItem } from '../../types.js'\n\nconst baseClass = 'toolbar-popup__dropdown-item'\n\ninterface DropDownContextType {\n registerItem: (ref: React.RefObject<HTMLButtonElement | null>) => void\n}\n\nconst DropDownContext = React.createContext<DropDownContextType | null>(null)\n\nexport function DropDownItem({\n active,\n children,\n editor,\n enabled,\n Icon,\n item,\n tooltip,\n}: {\n active?: boolean\n children: React.ReactNode\n editor: LexicalEditor\n enabled?: boolean\n Icon: React.ReactNode\n item: ToolbarGroupItem\n tooltip?: string\n}): React.ReactNode {\n const [className, setClassName] = useState<string>(baseClass)\n\n useEffect(() => {\n setClassName(\n [\n baseClass,\n enabled === false ? 'disabled' : '',\n active ? 'active' : '',\n item?.key ? `${baseClass}-${item.key}` : '',\n ]\n .filter(Boolean)\n .join(' '),\n )\n }, [enabled, active, className, item.key])\n\n const ref = useRef<HTMLButtonElement>(null)\n\n const dropDownContext = React.useContext(DropDownContext)\n\n if (dropDownContext === null) {\n throw new Error('DropDownItem must be used within a DropDown')\n }\n\n const { registerItem } = dropDownContext\n\n useEffect(() => {\n if (ref?.current != null) {\n registerItem(ref)\n }\n }, [ref, registerItem])\n\n return (\n <Button\n aria-label={tooltip}\n buttonStyle=\"none\"\n className={className}\n disabled={enabled === false}\n icon={Icon}\n iconPosition=\"left\"\n iconStyle=\"none\"\n onClick={() => {\n if (enabled !== false) {\n editor.focus(() => {\n editor.update(() => {\n $addUpdateTag('toolbar')\n })\n // We need to wrap the onSelect in the callback, so the editor is properly focused before the onSelect is called.\n item.onSelect?.({\n editor,\n isActive: active!,\n })\n })\n }\n }}\n onMouseDown={(e) => {\n // This is required for Firefox compatibility. Without it, the dropdown will disappear without the onClick being called.\n // This only happens in Firefox. Must be something about how Firefox handles focus events differently.\n e.preventDefault()\n }}\n ref={ref}\n tooltip={tooltip}\n type=\"button\"\n >\n {children}\n </Button>\n )\n}\n\nfunction DropDownItems({\n children,\n dropDownRef,\n itemsContainerClassNames,\n onClose,\n}: {\n children: React.ReactNode\n dropDownRef: React.Ref<HTMLDivElement>\n itemsContainerClassNames?: string[]\n onClose: () => void\n}): React.ReactElement {\n const [items, setItems] = useState<Array<React.RefObject<HTMLButtonElement | null>>>()\n const [highlightedItem, setHighlightedItem] =\n useState<React.RefObject<HTMLButtonElement | null>>()\n\n const registerItem = useCallback(\n (itemRef: React.RefObject<HTMLButtonElement | null>) => {\n setItems((prev) => (prev != null ? [...prev, itemRef] : [itemRef]))\n },\n [setItems],\n )\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (items == null) {\n return\n }\n\n const { key } = event\n\n if (['ArrowDown', 'ArrowUp', 'Escape', 'Tab'].includes(key)) {\n event.preventDefault()\n }\n\n if (key === 'Escape' || key === 'Tab') {\n onClose()\n } else if (key === 'ArrowUp') {\n setHighlightedItem((prev) => {\n if (prev == null) {\n return items[0]\n }\n const index = items.indexOf(prev) - 1\n return items[index === -1 ? items.length - 1 : index]\n })\n } else if (key === 'ArrowDown') {\n setHighlightedItem((prev) => {\n if (prev == null) {\n return items[0]\n }\n return items[items.indexOf(prev) + 1]\n })\n }\n }\n\n const contextValue = useMemo(\n () => ({\n registerItem,\n }),\n [registerItem],\n )\n\n useEffect(() => {\n if (items != null && highlightedItem == null) {\n setHighlightedItem(items[0])\n }\n\n if (highlightedItem != null && highlightedItem?.current != null) {\n highlightedItem.current.focus()\n }\n }, [items, highlightedItem])\n\n return (\n <DropDownContext.Provider value={contextValue}>\n <div\n className={(itemsContainerClassNames ?? ['toolbar-popup__dropdown-items']).join(' ')}\n onKeyDown={handleKeyDown}\n ref={dropDownRef}\n >\n {children}\n </div>\n </DropDownContext.Provider>\n )\n}\n\nexport function DropDown({\n buttonAriaLabel,\n buttonClassName,\n children,\n disabled = false,\n Icon,\n itemsContainerClassNames,\n label,\n stopCloseOnClickSelf,\n}: {\n buttonAriaLabel?: string\n buttonClassName: string\n children: ReactNode\n disabled?: boolean\n Icon?: React.FC\n itemsContainerClassNames?: string[]\n label?: string\n stopCloseOnClickSelf?: boolean\n}): React.ReactNode {\n const dropDownRef = useRef<HTMLDivElement>(null)\n const buttonRef = useRef<HTMLButtonElement>(null)\n const [showDropDown, setShowDropDown] = useState(false)\n\n const handleClose = (): void => {\n setShowDropDown(false)\n if (buttonRef?.current != null) {\n buttonRef.current.focus()\n }\n }\n\n useEffect(() => {\n const button = buttonRef.current\n const dropDown = dropDownRef.current\n\n if (showDropDown && button !== null && dropDown !== null) {\n const { left, top } = button.getBoundingClientRect()\n const scrollTopOffset = window.scrollY || document.documentElement.scrollTop\n dropDown.style.top = `${top + scrollTopOffset + button.offsetHeight + 5}px`\n dropDown.style.left = `${Math.min(left - 5, window.innerWidth - dropDown.offsetWidth - 20)}px`\n }\n }, [dropDownRef, buttonRef, showDropDown])\n\n useEffect(() => {\n const button = buttonRef.current\n\n if (button !== null && showDropDown) {\n const handle = (event: MouseEvent): void => {\n const target = event.target\n if (!isDOMNode(target)) {\n return\n }\n if (stopCloseOnClickSelf) {\n if (dropDownRef.current && dropDownRef.current.contains(target)) {\n return\n }\n }\n if (!button.contains(target)) {\n setShowDropDown(false)\n }\n }\n document.addEventListener('click', handle)\n\n return () => {\n document.removeEventListener('click', handle)\n }\n }\n }, [dropDownRef, buttonRef, showDropDown, stopCloseOnClickSelf])\n\n const portal = createPortal(\n <DropDownItems\n dropDownRef={dropDownRef}\n itemsContainerClassNames={itemsContainerClassNames}\n onClose={handleClose}\n >\n {children}\n </DropDownItems>,\n document.body,\n )\n\n return (\n <React.Fragment>\n <button\n aria-label={buttonAriaLabel}\n className={buttonClassName + (showDropDown ? ' active' : '')}\n disabled={disabled}\n onClick={(event) => {\n event.preventDefault()\n setShowDropDown(!showDropDown)\n }}\n onMouseDown={(e) => {\n // This fixes a bug where you are unable to click the button if you are in a NESTED editor (editor in blocks field in editor).\n // Thus only happens if you click on the SVG of the button. Clicking on the outside works. Related issue: https://github.com/payloadcms/payload/issues/4025\n // TODO: Find out why exactly it happens and why e.preventDefault() on the mouseDown fixes it. Write that down here, or potentially fix a root cause, if there is any.\n e.preventDefault()\n }}\n ref={buttonRef}\n type=\"button\"\n >\n {Icon && <Icon />}\n {label && <span className=\"toolbar-popup__dropdown-label\">{label}</span>}\n <i className=\"toolbar-popup__dropdown-caret\" />\n </button>\n\n {showDropDown && <React.Fragment>{portal}</React.Fragment>}\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;;AACA,SAASA,MAAM,QAAQ;AACvB,SAASC,aAAa,EAAEC,SAAS,QAA4B;AAC7D,OAAOC,KAAA,IAAyBC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AACzF,SAASC,YAAY,QAAQ;AAI7B,MAAMC,SAAA,GAAY;AAMlB,MAAMC,eAAA,gBAAkBR,KAAA,CAAMS,aAAa,CAA6B;AAExE,OAAO,SAASC,aAAa;EAC3BC,MAAM;EACNC,QAAQ;EACRC,MAAM;EACNC,OAAO;EACPC,IAAI;EACJC,IAAI;EACJC;AAAO,CASR;EACC,MAAM,CAACC,SAAA,EAAWC,YAAA,CAAa,GAAGd,QAAA,CAAiBE,SAAA;EAEnDL,SAAA,CAAU;IACRiB,YAAA,CACE,CACEZ,SAAA,EACAO,OAAA,KAAY,QAAQ,aAAa,IACjCH,MAAA,GAAS,WAAW,IACpBK,IAAA,EAAMI,GAAA,GAAM,GAAGb,SAAA,IAAaS,IAAA,CAAKI,GAAG,EAAE,GAAG,GAC1C,CACEC,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EAEZ,GAAG,CAACT,OAAA,EAASH,MAAA,EAAQO,SAAA,EAAWF,IAAA,CAAKI,GAAG,CAAC;EAEzC,MAAMI,GAAA,GAAMpB,MAAA,CAA0B;EAEtC,MAAMqB,eAAA,GAAkBzB,KAAA,CAAM0B,UAAU,CAAClB,eAAA;EAEzC,IAAIiB,eAAA,KAAoB,MAAM;IAC5B,MAAM,IAAIE,KAAA,CAAM;EAClB;EAEA,MAAM;IAAEC;EAAY,CAAE,GAAGH,eAAA;EAEzBvB,SAAA,CAAU;IACR,IAAIsB,GAAA,EAAKK,OAAA,IAAW,MAAM;MACxBD,YAAA,CAAaJ,GAAA;IACf;EACF,GAAG,CAACA,GAAA,EAAKI,YAAA,CAAa;EAEtB,oBACEE,IAAA,CAACjC,MAAA;IACC,cAAYoB,OAAA;IACZc,WAAA,EAAY;IACZb,SAAA,EAAWA,SAAA;IACXc,QAAA,EAAUlB,OAAA,KAAY;IACtBmB,IAAA,EAAMlB,IAAA;IACNmB,YAAA,EAAa;IACbC,SAAA,EAAU;IACVC,OAAA,EAASA,CAAA;MACP,IAAItB,OAAA,KAAY,OAAO;QACrBD,MAAA,CAAOwB,KAAK,CAAC;UACXxB,MAAA,CAAOyB,MAAM,CAAC;YACZxC,aAAA,CAAc;UAChB;UACA;UACAkB,IAAA,CAAKuB,QAAQ,GAAG;YACd1B,MAAA;YACA2B,QAAA,EAAU7B;UACZ;QACF;MACF;IACF;IACA8B,WAAA,EAAcC,CAAA;MACZ;MACA;MACAA,CAAA,CAAEC,cAAc;IAClB;IACAnB,GAAA,EAAKA,GAAA;IACLP,OAAA,EAASA,OAAA;IACT2B,IAAA,EAAK;cAEJhC;;AAGP;AAEA,SAASiC,cAAc;EACrBjC,QAAQ;EACRkC,WAAW;EACXC,wBAAwB;EACxBC;AAAO,CAMR;EACC,MAAM,CAACC,KAAA,EAAOC,QAAA,CAAS,GAAG7C,QAAA;EAC1B,MAAM,CAAC8C,eAAA,EAAiBC,kBAAA,CAAmB,GACzC/C,QAAA;EAEF,MAAMuB,YAAA,GAAe3B,WAAA,CAClBoD,OAAA;IACCH,QAAA,CAAUI,IAAA,IAAUA,IAAA,IAAQ,OAAO,C,GAAIA,IAAA,EAAMD,OAAA,CAAQ,GAAG,CAACA,OAAA,CAAQ;EACnE,GACA,CAACH,QAAA,CAAS;EAGZ,MAAMK,aAAA,GAAiBC,KAAA;IACrB,IAAIP,KAAA,IAAS,MAAM;MACjB;IACF;IAEA,MAAM;MAAE7B;IAAG,CAAE,GAAGoC,KAAA;IAEhB,IAAI,CAAC,aAAa,WAAW,UAAU,MAAM,CAACC,QAAQ,CAACrC,GAAA,GAAM;MAC3DoC,KAAA,CAAMb,cAAc;IACtB;IAEA,IAAIvB,GAAA,KAAQ,YAAYA,GAAA,KAAQ,OAAO;MACrC4B,OAAA;IACF,OAAO,IAAI5B,GAAA,KAAQ,WAAW;MAC5BgC,kBAAA,CAAoBE,MAAA;QAClB,IAAIA,MAAA,IAAQ,MAAM;UAChB,OAAOL,KAAK,CAAC,EAAE;QACjB;QACA,MAAMS,KAAA,GAAQT,KAAA,CAAMU,OAAO,CAACL,MAAA,IAAQ;QACpC,OAAOL,KAAK,CAACS,KAAA,KAAU,CAAC,IAAIT,KAAA,CAAMW,MAAM,GAAG,IAAIF,KAAA,CAAM;MACvD;IACF,OAAO,IAAItC,GAAA,KAAQ,aAAa;MAC9BgC,kBAAA,CAAoBE,MAAA;QAClB,IAAIA,MAAA,IAAQ,MAAM;UAChB,OAAOL,KAAK,CAAC,EAAE;QACjB;QACA,OAAOA,KAAK,CAACA,KAAA,CAAMU,OAAO,CAACL,MAAA,IAAQ,EAAE;MACvC;IACF;EACF;EAEA,MAAMO,YAAA,GAAe1D,OAAA,CACnB,OAAO;IACLyB;EACF,IACA,CAACA,YAAA,CAAa;EAGhB1B,SAAA,CAAU;IACR,IAAI+C,KAAA,IAAS,QAAQE,eAAA,IAAmB,MAAM;MAC5CC,kBAAA,CAAmBH,KAAK,CAAC,EAAE;IAC7B;IAEA,IAAIE,eAAA,IAAmB,QAAQA,eAAA,EAAiBtB,OAAA,IAAW,MAAM;MAC/DsB,eAAA,CAAgBtB,OAAO,CAACQ,KAAK;IAC/B;EACF,GAAG,CAACY,KAAA,EAAOE,eAAA,CAAgB;EAE3B,oBACErB,IAAA,CAACtB,eAAA,CAAgBsD,QAAQ;IAACC,KAAA,EAAOF,YAAA;cAC/B,aAAA/B,IAAA,CAAC;MACCZ,SAAA,EAAW,CAAC6B,wBAAA,IAA4B,CAAC,gCAAgC,EAAExB,IAAI,CAAC;MAChFyC,SAAA,EAAWT,aAAA;MACX/B,GAAA,EAAKsB,WAAA;gBAEJlC;;;AAIT;AAEA,OAAO,SAASqD,SAAS;EACvBC,eAAe;EACfC,eAAe;EACfvD,QAAQ;EACRoB,QAAA,GAAW,KAAK;EAChBjB,IAAI;EACJgC,wBAAwB;EACxBqB,KAAK;EACLC;AAAoB,CAUrB;EACC,MAAMvB,WAAA,GAAc1C,MAAA,CAAuB;EAC3C,MAAMkE,SAAA,GAAYlE,MAAA,CAA0B;EAC5C,MAAM,CAACmE,YAAA,EAAcC,eAAA,CAAgB,GAAGnE,QAAA,CAAS;EAEjD,MAAMoE,WAAA,GAAcA,CAAA;IAClBD,eAAA,CAAgB;IAChB,IAAIF,SAAA,EAAWzC,OAAA,IAAW,MAAM;MAC9ByC,SAAA,CAAUzC,OAAO,CAACQ,KAAK;IACzB;EACF;EAEAnC,SAAA,CAAU;IACR,MAAMwE,MAAA,GAASJ,SAAA,CAAUzC,OAAO;IAChC,MAAM8C,QAAA,GAAW7B,WAAA,CAAYjB,OAAO;IAEpC,IAAI0C,YAAA,IAAgBG,MAAA,KAAW,QAAQC,QAAA,KAAa,MAAM;MACxD,MAAM;QAAEC,IAAI;QAAEC;MAAG,CAAE,GAAGH,MAAA,CAAOI,qBAAqB;MAClD,MAAMC,eAAA,GAAkBC,MAAA,CAAOC,OAAO,IAAIC,QAAA,CAASC,eAAe,CAACC,SAAS;MAC5ET,QAAA,CAASU,KAAK,CAACR,GAAG,GAAG,GAAGA,GAAA,GAAME,eAAA,GAAkBL,MAAA,CAAOY,YAAY,GAAG,KAAK;MAC3EX,QAAA,CAASU,KAAK,CAACT,IAAI,GAAG,GAAGW,IAAA,CAAKC,GAAG,CAACZ,IAAA,GAAO,GAAGI,MAAA,CAAOS,UAAU,GAAGd,QAAA,CAASe,WAAW,GAAG,OAAO;IAChG;EACF,GAAG,CAAC5C,WAAA,EAAawB,SAAA,EAAWC,YAAA,CAAa;EAEzCrE,SAAA,CAAU;IACR,MAAMwE,QAAA,GAASJ,SAAA,CAAUzC,OAAO;IAEhC,IAAI6C,QAAA,KAAW,QAAQH,YAAA,EAAc;MACnC,MAAMoB,MAAA,GAAUnC,KAAA;QACd,MAAMoC,MAAA,GAASpC,KAAA,CAAMoC,MAAM;QAC3B,IAAI,CAAC7F,SAAA,CAAU6F,MAAA,GAAS;UACtB;QACF;QACA,IAAIvB,oBAAA,EAAsB;UACxB,IAAIvB,WAAA,CAAYjB,OAAO,IAAIiB,WAAA,CAAYjB,OAAO,CAACgE,QAAQ,CAACD,MAAA,GAAS;YAC/D;UACF;QACF;QACA,IAAI,CAAClB,QAAA,CAAOmB,QAAQ,CAACD,MAAA,GAAS;UAC5BpB,eAAA,CAAgB;QAClB;MACF;MACAU,QAAA,CAASY,gBAAgB,CAAC,SAASH,MAAA;MAEnC,OAAO;QACLT,QAAA,CAASa,mBAAmB,CAAC,SAASJ,MAAA;MACxC;IACF;EACF,GAAG,CAAC7C,WAAA,EAAawB,SAAA,EAAWC,YAAA,EAAcF,oBAAA,CAAqB;EAE/D,MAAM2B,MAAA,gBAAS1F,YAAA,cACbwB,IAAA,CAACe,aAAA;IACCC,WAAA,EAAaA,WAAA;IACbC,wBAAA,EAA0BA,wBAAA;IAC1BC,OAAA,EAASyB,WAAA;cAER7D;MAEHsE,QAAA,CAASe,IAAI;EAGf,oBACEC,KAAA,CAAClG,KAAA,CAAMmG,QAAQ;4BACbD,KAAA,CAAC;MACC,cAAYhC,eAAA;MACZhD,SAAA,EAAWiD,eAAA,IAAmBI,YAAA,GAAe,YAAY,EAAC;MAC1DvC,QAAA,EAAUA,QAAA;MACVI,OAAA,EAAUoB,OAAA;QACRA,OAAA,CAAMb,cAAc;QACpB6B,eAAA,CAAgB,CAACD,YAAA;MACnB;MACA9B,WAAA,EAAcC,CAAA;QACZ;QACA;QACA;QACAA,CAAA,CAAEC,cAAc;MAClB;MACAnB,GAAA,EAAK8C,SAAA;MACL1B,IAAA,EAAK;iBAEJ7B,IAAA,iBAAQe,IAAA,CAACf,IAAA,OACTqD,KAAA,iBAAStC,IAAA,CAAC;QAAKZ,SAAA,EAAU;kBAAiCkD;uBAC3DtC,IAAA,CAAC;QAAEZ,SAAA,EAAU;;QAGdqD,YAAA,iBAAgBzC,IAAA,CAAC9B,KAAA,CAAMmG,QAAQ;gBAAEH;;;AAGxC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DropDown.js","names":["Button","$addUpdateTag","isDOMNode","React","useCallback","useEffect","useMemo","useRef","useState","createPortal","baseClass","DropDownContext","createContext","DropDownItem","active","children","editor","enabled","Icon","item","tooltip","className","setClassName","key","filter","Boolean","join","ref","dropDownContext","use","Error","registerItem","current","_jsx","buttonStyle","disabled","icon","iconPosition","iconStyle","onClick","focus","update","onSelect","isActive","onMouseDown","e","preventDefault","type","DropDownItems","dropDownRef","itemsContainerClassNames","onClose","items","setItems","highlightedItem","setHighlightedItem","itemRef","prev","handleKeyDown","event","includes","index","indexOf","length","contextValue","value","onKeyDown","DropDown","buttonAriaLabel","buttonClassName","label","stopCloseOnClickSelf","buttonRef","showDropDown","setShowDropDown","handleClose","button","dropDown","left","top","getBoundingClientRect","scrollTopOffset","window","scrollY","document","documentElement","scrollTop","style","offsetHeight","Math","min","innerWidth","offsetWidth","handle","target","contains","addEventListener","removeEventListener","portal","body","_jsxs","Fragment"],"sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/DropDown.tsx"],"sourcesContent":["'use client'\nimport { Button } from '@payloadcms/ui'\nimport { $addUpdateTag, isDOMNode, type LexicalEditor } from 'lexical'\nimport React, { type ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { ToolbarGroupItem } from '../../types.js'\n\nconst baseClass = 'toolbar-popup__dropdown-item'\n\ninterface DropDownContextType {\n registerItem: (ref: React.RefObject<HTMLButtonElement | null>) => void\n}\n\nconst DropDownContext = React.createContext<DropDownContextType | null>(null)\n\nexport function DropDownItem({\n active,\n children,\n editor,\n enabled,\n Icon,\n item,\n tooltip,\n}: {\n active?: boolean\n children: React.ReactNode\n editor: LexicalEditor\n enabled?: boolean\n Icon: React.ReactNode\n item: ToolbarGroupItem\n tooltip?: string\n}): React.ReactNode {\n const [className, setClassName] = useState<string>(baseClass)\n\n useEffect(() => {\n setClassName(\n [\n baseClass,\n enabled === false ? 'disabled' : '',\n active ? 'active' : '',\n item?.key ? `${baseClass}-${item.key}` : '',\n ]\n .filter(Boolean)\n .join(' '),\n )\n }, [enabled, active, className, item.key])\n\n const ref = useRef<HTMLButtonElement>(null)\n\n const dropDownContext = React.use(DropDownContext)\n\n if (dropDownContext === null) {\n throw new Error('DropDownItem must be used within a DropDown')\n }\n\n const { registerItem } = dropDownContext\n\n useEffect(() => {\n if (ref?.current != null) {\n registerItem(ref)\n }\n }, [ref, registerItem])\n\n return (\n <Button\n aria-label={tooltip}\n buttonStyle=\"none\"\n className={className}\n disabled={enabled === false}\n icon={Icon}\n iconPosition=\"left\"\n iconStyle=\"none\"\n onClick={() => {\n if (enabled !== false) {\n editor.focus(() => {\n editor.update(() => {\n $addUpdateTag('toolbar')\n })\n // We need to wrap the onSelect in the callback, so the editor is properly focused before the onSelect is called.\n item.onSelect?.({\n editor,\n isActive: active!,\n })\n })\n }\n }}\n onMouseDown={(e) => {\n // This is required for Firefox compatibility. Without it, the dropdown will disappear without the onClick being called.\n // This only happens in Firefox. Must be something about how Firefox handles focus events differently.\n e.preventDefault()\n }}\n ref={ref}\n tooltip={tooltip}\n type=\"button\"\n >\n {children}\n </Button>\n )\n}\n\nfunction DropDownItems({\n children,\n dropDownRef,\n itemsContainerClassNames,\n onClose,\n}: {\n children: React.ReactNode\n dropDownRef: React.Ref<HTMLDivElement>\n itemsContainerClassNames?: string[]\n onClose: () => void\n}): React.ReactElement {\n const [items, setItems] = useState<Array<React.RefObject<HTMLButtonElement | null>>>()\n const [highlightedItem, setHighlightedItem] =\n useState<React.RefObject<HTMLButtonElement | null>>()\n\n const registerItem = useCallback(\n (itemRef: React.RefObject<HTMLButtonElement | null>) => {\n setItems((prev) => (prev != null ? [...prev, itemRef] : [itemRef]))\n },\n [setItems],\n )\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (items == null) {\n return\n }\n\n const { key } = event\n\n if (['ArrowDown', 'ArrowUp', 'Escape', 'Tab'].includes(key)) {\n event.preventDefault()\n }\n\n if (key === 'Escape' || key === 'Tab') {\n onClose()\n } else if (key === 'ArrowUp') {\n setHighlightedItem((prev) => {\n if (prev == null) {\n return items[0]\n }\n const index = items.indexOf(prev) - 1\n return items[index === -1 ? items.length - 1 : index]\n })\n } else if (key === 'ArrowDown') {\n setHighlightedItem((prev) => {\n if (prev == null) {\n return items[0]\n }\n return items[items.indexOf(prev) + 1]\n })\n }\n }\n\n const contextValue = useMemo(\n () => ({\n registerItem,\n }),\n [registerItem],\n )\n\n useEffect(() => {\n if (items != null && highlightedItem == null) {\n setHighlightedItem(items[0])\n }\n\n if (highlightedItem != null && highlightedItem?.current != null) {\n highlightedItem.current.focus()\n }\n }, [items, highlightedItem])\n\n return (\n <DropDownContext value={contextValue}>\n <div\n className={(itemsContainerClassNames ?? ['toolbar-popup__dropdown-items']).join(' ')}\n onKeyDown={handleKeyDown}\n ref={dropDownRef}\n >\n {children}\n </div>\n </DropDownContext>\n )\n}\n\nexport function DropDown({\n buttonAriaLabel,\n buttonClassName,\n children,\n disabled = false,\n Icon,\n itemsContainerClassNames,\n label,\n stopCloseOnClickSelf,\n}: {\n buttonAriaLabel?: string\n buttonClassName: string\n children: ReactNode\n disabled?: boolean\n Icon?: React.FC\n itemsContainerClassNames?: string[]\n label?: string\n stopCloseOnClickSelf?: boolean\n}): React.ReactNode {\n const dropDownRef = useRef<HTMLDivElement>(null)\n const buttonRef = useRef<HTMLButtonElement>(null)\n const [showDropDown, setShowDropDown] = useState(false)\n\n const handleClose = (): void => {\n setShowDropDown(false)\n if (buttonRef?.current != null) {\n buttonRef.current.focus()\n }\n }\n\n useEffect(() => {\n const button = buttonRef.current\n const dropDown = dropDownRef.current\n\n if (showDropDown && button !== null && dropDown !== null) {\n const { left, top } = button.getBoundingClientRect()\n const scrollTopOffset = window.scrollY || document.documentElement.scrollTop\n dropDown.style.top = `${top + scrollTopOffset + button.offsetHeight + 5}px`\n dropDown.style.left = `${Math.min(left - 5, window.innerWidth - dropDown.offsetWidth - 20)}px`\n }\n }, [dropDownRef, buttonRef, showDropDown])\n\n useEffect(() => {\n const button = buttonRef.current\n\n if (button !== null && showDropDown) {\n const handle = (event: MouseEvent): void => {\n const target = event.target\n if (!isDOMNode(target)) {\n return\n }\n if (stopCloseOnClickSelf) {\n if (dropDownRef.current && dropDownRef.current.contains(target)) {\n return\n }\n }\n if (!button.contains(target)) {\n setShowDropDown(false)\n }\n }\n document.addEventListener('click', handle)\n\n return () => {\n document.removeEventListener('click', handle)\n }\n }\n }, [dropDownRef, buttonRef, showDropDown, stopCloseOnClickSelf])\n\n const portal = createPortal(\n <DropDownItems\n dropDownRef={dropDownRef}\n itemsContainerClassNames={itemsContainerClassNames}\n onClose={handleClose}\n >\n {children}\n </DropDownItems>,\n document.body,\n )\n\n return (\n <React.Fragment>\n <button\n aria-label={buttonAriaLabel}\n className={buttonClassName + (showDropDown ? ' active' : '')}\n disabled={disabled}\n onClick={(event) => {\n event.preventDefault()\n setShowDropDown(!showDropDown)\n }}\n onMouseDown={(e) => {\n // This fixes a bug where you are unable to click the button if you are in a NESTED editor (editor in blocks field in editor).\n // Thus only happens if you click on the SVG of the button. Clicking on the outside works. Related issue: https://github.com/payloadcms/payload/issues/4025\n // TODO: Find out why exactly it happens and why e.preventDefault() on the mouseDown fixes it. Write that down here, or potentially fix a root cause, if there is any.\n e.preventDefault()\n }}\n ref={buttonRef}\n type=\"button\"\n >\n {Icon && <Icon />}\n {label && <span className=\"toolbar-popup__dropdown-label\">{label}</span>}\n <i className=\"toolbar-popup__dropdown-caret\" />\n </button>\n\n {showDropDown && <React.Fragment>{portal}</React.Fragment>}\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;;AACA,SAASA,MAAM,QAAQ;AACvB,SAASC,aAAa,EAAEC,SAAS,QAA4B;AAC7D,OAAOC,KAAA,IAAyBC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AACzF,SAASC,YAAY,QAAQ;AAI7B,MAAMC,SAAA,GAAY;AAMlB,MAAMC,eAAA,gBAAkBR,KAAA,CAAMS,aAAa,CAA6B;AAExE,OAAO,SAASC,aAAa;EAC3BC,MAAM;EACNC,QAAQ;EACRC,MAAM;EACNC,OAAO;EACPC,IAAI;EACJC,IAAI;EACJC;AAAO,CASR;EACC,MAAM,CAACC,SAAA,EAAWC,YAAA,CAAa,GAAGd,QAAA,CAAiBE,SAAA;EAEnDL,SAAA,CAAU;IACRiB,YAAA,CACE,CACEZ,SAAA,EACAO,OAAA,KAAY,QAAQ,aAAa,IACjCH,MAAA,GAAS,WAAW,IACpBK,IAAA,EAAMI,GAAA,GAAM,GAAGb,SAAA,IAAaS,IAAA,CAAKI,GAAG,EAAE,GAAG,GAC1C,CACEC,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EAEZ,GAAG,CAACT,OAAA,EAASH,MAAA,EAAQO,SAAA,EAAWF,IAAA,CAAKI,GAAG,CAAC;EAEzC,MAAMI,GAAA,GAAMpB,MAAA,CAA0B;EAEtC,MAAMqB,eAAA,GAAkBzB,KAAA,CAAM0B,GAAG,CAAClB,eAAA;EAElC,IAAIiB,eAAA,KAAoB,MAAM;IAC5B,MAAM,IAAIE,KAAA,CAAM;EAClB;EAEA,MAAM;IAAEC;EAAY,CAAE,GAAGH,eAAA;EAEzBvB,SAAA,CAAU;IACR,IAAIsB,GAAA,EAAKK,OAAA,IAAW,MAAM;MACxBD,YAAA,CAAaJ,GAAA;IACf;EACF,GAAG,CAACA,GAAA,EAAKI,YAAA,CAAa;EAEtB,oBACEE,IAAA,CAACjC,MAAA;IACC,cAAYoB,OAAA;IACZc,WAAA,EAAY;IACZb,SAAA,EAAWA,SAAA;IACXc,QAAA,EAAUlB,OAAA,KAAY;IACtBmB,IAAA,EAAMlB,IAAA;IACNmB,YAAA,EAAa;IACbC,SAAA,EAAU;IACVC,OAAA,EAASA,CAAA;MACP,IAAItB,OAAA,KAAY,OAAO;QACrBD,MAAA,CAAOwB,KAAK,CAAC;UACXxB,MAAA,CAAOyB,MAAM,CAAC;YACZxC,aAAA,CAAc;UAChB;UACA;UACAkB,IAAA,CAAKuB,QAAQ,GAAG;YACd1B,MAAA;YACA2B,QAAA,EAAU7B;UACZ;QACF;MACF;IACF;IACA8B,WAAA,EAAcC,CAAA;MACZ;MACA;MACAA,CAAA,CAAEC,cAAc;IAClB;IACAnB,GAAA,EAAKA,GAAA;IACLP,OAAA,EAASA,OAAA;IACT2B,IAAA,EAAK;cAEJhC;;AAGP;AAEA,SAASiC,cAAc;EACrBjC,QAAQ;EACRkC,WAAW;EACXC,wBAAwB;EACxBC;AAAO,CAMR;EACC,MAAM,CAACC,KAAA,EAAOC,QAAA,CAAS,GAAG7C,QAAA;EAC1B,MAAM,CAAC8C,eAAA,EAAiBC,kBAAA,CAAmB,GACzC/C,QAAA;EAEF,MAAMuB,YAAA,GAAe3B,WAAA,CAClBoD,OAAA;IACCH,QAAA,CAAUI,IAAA,IAAUA,IAAA,IAAQ,OAAO,C,GAAIA,IAAA,EAAMD,OAAA,CAAQ,GAAG,CAACA,OAAA,CAAQ;EACnE,GACA,CAACH,QAAA,CAAS;EAGZ,MAAMK,aAAA,GAAiBC,KAAA;IACrB,IAAIP,KAAA,IAAS,MAAM;MACjB;IACF;IAEA,MAAM;MAAE7B;IAAG,CAAE,GAAGoC,KAAA;IAEhB,IAAI,CAAC,aAAa,WAAW,UAAU,MAAM,CAACC,QAAQ,CAACrC,GAAA,GAAM;MAC3DoC,KAAA,CAAMb,cAAc;IACtB;IAEA,IAAIvB,GAAA,KAAQ,YAAYA,GAAA,KAAQ,OAAO;MACrC4B,OAAA;IACF,OAAO,IAAI5B,GAAA,KAAQ,WAAW;MAC5BgC,kBAAA,CAAoBE,MAAA;QAClB,IAAIA,MAAA,IAAQ,MAAM;UAChB,OAAOL,KAAK,CAAC,EAAE;QACjB;QACA,MAAMS,KAAA,GAAQT,KAAA,CAAMU,OAAO,CAACL,MAAA,IAAQ;QACpC,OAAOL,KAAK,CAACS,KAAA,KAAU,CAAC,IAAIT,KAAA,CAAMW,MAAM,GAAG,IAAIF,KAAA,CAAM;MACvD;IACF,OAAO,IAAItC,GAAA,KAAQ,aAAa;MAC9BgC,kBAAA,CAAoBE,MAAA;QAClB,IAAIA,MAAA,IAAQ,MAAM;UAChB,OAAOL,KAAK,CAAC,EAAE;QACjB;QACA,OAAOA,KAAK,CAACA,KAAA,CAAMU,OAAO,CAACL,MAAA,IAAQ,EAAE;MACvC;IACF;EACF;EAEA,MAAMO,YAAA,GAAe1D,OAAA,CACnB,OAAO;IACLyB;EACF,IACA,CAACA,YAAA,CAAa;EAGhB1B,SAAA,CAAU;IACR,IAAI+C,KAAA,IAAS,QAAQE,eAAA,IAAmB,MAAM;MAC5CC,kBAAA,CAAmBH,KAAK,CAAC,EAAE;IAC7B;IAEA,IAAIE,eAAA,IAAmB,QAAQA,eAAA,EAAiBtB,OAAA,IAAW,MAAM;MAC/DsB,eAAA,CAAgBtB,OAAO,CAACQ,KAAK;IAC/B;EACF,GAAG,CAACY,KAAA,EAAOE,eAAA,CAAgB;EAE3B,oBACErB,IAAA,CAACtB,eAAA;IAAgBsD,KAAA,EAAOD,YAAA;cACtB,aAAA/B,IAAA,CAAC;MACCZ,SAAA,EAAW,CAAC6B,wBAAA,IAA4B,CAAC,gCAAgC,EAAExB,IAAI,CAAC;MAChFwC,SAAA,EAAWR,aAAA;MACX/B,GAAA,EAAKsB,WAAA;gBAEJlC;;;AAIT;AAEA,OAAO,SAASoD,SAAS;EACvBC,eAAe;EACfC,eAAe;EACftD,QAAQ;EACRoB,QAAA,GAAW,KAAK;EAChBjB,IAAI;EACJgC,wBAAwB;EACxBoB,KAAK;EACLC;AAAoB,CAUrB;EACC,MAAMtB,WAAA,GAAc1C,MAAA,CAAuB;EAC3C,MAAMiE,SAAA,GAAYjE,MAAA,CAA0B;EAC5C,MAAM,CAACkE,YAAA,EAAcC,eAAA,CAAgB,GAAGlE,QAAA,CAAS;EAEjD,MAAMmE,WAAA,GAAcA,CAAA;IAClBD,eAAA,CAAgB;IAChB,IAAIF,SAAA,EAAWxC,OAAA,IAAW,MAAM;MAC9BwC,SAAA,CAAUxC,OAAO,CAACQ,KAAK;IACzB;EACF;EAEAnC,SAAA,CAAU;IACR,MAAMuE,MAAA,GAASJ,SAAA,CAAUxC,OAAO;IAChC,MAAM6C,QAAA,GAAW5B,WAAA,CAAYjB,OAAO;IAEpC,IAAIyC,YAAA,IAAgBG,MAAA,KAAW,QAAQC,QAAA,KAAa,MAAM;MACxD,MAAM;QAAEC,IAAI;QAAEC;MAAG,CAAE,GAAGH,MAAA,CAAOI,qBAAqB;MAClD,MAAMC,eAAA,GAAkBC,MAAA,CAAOC,OAAO,IAAIC,QAAA,CAASC,eAAe,CAACC,SAAS;MAC5ET,QAAA,CAASU,KAAK,CAACR,GAAG,GAAG,GAAGA,GAAA,GAAME,eAAA,GAAkBL,MAAA,CAAOY,YAAY,GAAG,KAAK;MAC3EX,QAAA,CAASU,KAAK,CAACT,IAAI,GAAG,GAAGW,IAAA,CAAKC,GAAG,CAACZ,IAAA,GAAO,GAAGI,MAAA,CAAOS,UAAU,GAAGd,QAAA,CAASe,WAAW,GAAG,OAAO;IAChG;EACF,GAAG,CAAC3C,WAAA,EAAauB,SAAA,EAAWC,YAAA,CAAa;EAEzCpE,SAAA,CAAU;IACR,MAAMuE,QAAA,GAASJ,SAAA,CAAUxC,OAAO;IAEhC,IAAI4C,QAAA,KAAW,QAAQH,YAAA,EAAc;MACnC,MAAMoB,MAAA,GAAUlC,KAAA;QACd,MAAMmC,MAAA,GAASnC,KAAA,CAAMmC,MAAM;QAC3B,IAAI,CAAC5F,SAAA,CAAU4F,MAAA,GAAS;UACtB;QACF;QACA,IAAIvB,oBAAA,EAAsB;UACxB,IAAItB,WAAA,CAAYjB,OAAO,IAAIiB,WAAA,CAAYjB,OAAO,CAAC+D,QAAQ,CAACD,MAAA,GAAS;YAC/D;UACF;QACF;QACA,IAAI,CAAClB,QAAA,CAAOmB,QAAQ,CAACD,MAAA,GAAS;UAC5BpB,eAAA,CAAgB;QAClB;MACF;MACAU,QAAA,CAASY,gBAAgB,CAAC,SAASH,MAAA;MAEnC,OAAO;QACLT,QAAA,CAASa,mBAAmB,CAAC,SAASJ,MAAA;MACxC;IACF;EACF,GAAG,CAAC5C,WAAA,EAAauB,SAAA,EAAWC,YAAA,EAAcF,oBAAA,CAAqB;EAE/D,MAAM2B,MAAA,gBAASzF,YAAA,cACbwB,IAAA,CAACe,aAAA;IACCC,WAAA,EAAaA,WAAA;IACbC,wBAAA,EAA0BA,wBAAA;IAC1BC,OAAA,EAASwB,WAAA;cAER5D;MAEHqE,QAAA,CAASe,IAAI;EAGf,oBACEC,KAAA,CAACjG,KAAA,CAAMkG,QAAQ;4BACbD,KAAA,CAAC;MACC,cAAYhC,eAAA;MACZ/C,SAAA,EAAWgD,eAAA,IAAmBI,YAAA,GAAe,YAAY,EAAC;MAC1DtC,QAAA,EAAUA,QAAA;MACVI,OAAA,EAAUoB,OAAA;QACRA,OAAA,CAAMb,cAAc;QACpB4B,eAAA,CAAgB,CAACD,YAAA;MACnB;MACA7B,WAAA,EAAcC,CAAA;QACZ;QACA;QACA;QACAA,CAAA,CAAEC,cAAc;MAClB;MACAnB,GAAA,EAAK6C,SAAA;MACLzB,IAAA,EAAK;iBAEJ7B,IAAA,iBAAQe,IAAA,CAACf,IAAA,OACToD,KAAA,iBAASrC,IAAA,CAAC;QAAKZ,SAAA,EAAU;kBAAiCiD;uBAC3DrC,IAAA,CAAC;QAAEZ,SAAA,EAAU;;QAGdoD,YAAA,iBAAgBxC,IAAA,CAAC9B,KAAA,CAAMkG,QAAQ;gBAAEH;;;AAGxC","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import type { Config, Field, FieldSchemaMap, JsonObject, PayloadComponent, Paylo
|
|
|
5
5
|
import type { ServerEditorConfig } from '../lexical/config/types.js';
|
|
6
6
|
import type { Transformer } from '../packages/@lexical/markdown/index.js';
|
|
7
7
|
import type { AdapterProps } from '../types.js';
|
|
8
|
-
import type { HTMLConverter } from './converters/
|
|
8
|
+
import type { HTMLConverter } from './converters/lexicalToHtml_deprecated/converter/types.js';
|
|
9
9
|
import type { BaseClientFeatureProps } from './typesClient.js';
|
|
10
10
|
export type PopulationPromise<T extends SerializedLexicalNode = SerializedLexicalNode> = (args: {
|
|
11
11
|
context: RequestContext;
|