@payloadcms/richtext-lexical 3.68.0-internal-debug.2eb12b9 → 3.68.0-internal-debug.dafc24d
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/cell/rscEntry.js +13 -5
- package/dist/cell/rscEntry.js.map +1 -1
- package/dist/features/blocks/client/component/BlockContent.js +29 -9
- package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
- package/dist/features/blocks/client/component/components/BlockCollapsible.js +7 -3
- package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -1
- package/dist/features/blocks/client/component/components/BlockEditButton.js +6 -2
- package/dist/features/blocks/client/component/components/BlockEditButton.js.map +1 -1
- package/dist/features/blocks/client/component/components/BlockRemoveButton.js +6 -2
- package/dist/features/blocks/client/component/components/BlockRemoveButton.js.map +1 -1
- package/dist/features/blocks/client/component/index.js +124 -43
- package/dist/features/blocks/client/component/index.js.map +1 -1
- package/dist/features/blocks/client/component/index.scss +188 -0
- package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js +7 -3
- package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js.map +1 -1
- package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js +6 -2
- package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js.map +1 -1
- package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js +6 -2
- package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js.map +1 -1
- package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js +6 -2
- package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js.map +1 -1
- package/dist/features/blocks/client/componentInline/index.js +118 -37
- package/dist/features/blocks/client/componentInline/index.js.map +1 -1
- package/dist/features/blocks/client/componentInline/index.scss +90 -0
- package/dist/features/blocks/client/getBlockImageComponent.js +7 -3
- package/dist/features/blocks/client/getBlockImageComponent.js.map +1 -1
- package/dist/features/blocks/client/markdown/markdownTransformer.js +1 -0
- package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
- package/dist/features/blocks/client/nodes/BlocksNode.js +7 -3
- package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
- package/dist/features/blocks/client/nodes/InlineBlocksNode.js +7 -3
- package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Block.js +88 -27
- package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Code.js +7 -3
- package/dist/features/blocks/premade/CodeBlock/Component/Code.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js +13 -4
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.scss +6 -0
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js +19 -6
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.scss +29 -0
- package/dist/features/blocks/premade/CodeBlock/Component/index.scss +97 -0
- package/dist/features/blocks/server/markdown/markdownTransformer.js +1 -0
- package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/Component/index.js +9 -5
- package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js +7 -3
- package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/heading.js +7 -3
- package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js +6 -2
- package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js +6 -2
- package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/link.js +13 -5
- package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/list.js +38 -14
- package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js +18 -6
- package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/table.js +31 -11
- package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/text.js +43 -15
- package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/upload.js +31 -11
- package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/index.js +8 -4
- package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
- package/dist/features/debug/jsxConverter/client/plugin/index.js +14 -5
- package/dist/features/debug/jsxConverter/client/plugin/index.js.map +1 -1
- package/dist/features/debug/jsxConverter/client/plugin/style.scss +12 -0
- package/dist/features/debug/testRecorder/client/plugin/index.js +62 -21
- package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
- package/dist/features/debug/testRecorder/client/plugin/index.scss +53 -0
- package/dist/features/debug/treeView/client/plugin/index.js +8 -3
- package/dist/features/debug/treeView/client/plugin/index.js.map +1 -1
- package/dist/features/debug/treeView/client/plugin/index.scss +80 -0
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +225 -72
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.scss +87 -0
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +32 -11
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.scss +11 -0
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +21 -9
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +26 -9
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.scss +233 -0
- package/dist/features/horizontalRule/client/plugin/index.js +1 -0
- package/dist/features/horizontalRule/client/plugin/index.js.map +1 -1
- package/dist/features/horizontalRule/client/plugin/index.scss +23 -0
- package/dist/features/indent/client/IndentPlugin.js +6 -2
- package/dist/features/indent/client/IndentPlugin.js.map +1 -1
- package/dist/features/link/client/plugins/autoLink/index.js +3 -0
- package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
- package/dist/features/link/client/plugins/clickableLink/index.js +6 -2
- package/dist/features/link/client/plugins/clickableLink/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +76 -24
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/index.js +8 -3
- package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/index.scss +92 -0
- package/dist/features/link/server/baseFields.js +1 -0
- package/dist/features/link/server/baseFields.js.map +1 -1
- package/dist/features/lists/checklist/client/plugin/index.js +6 -2
- package/dist/features/lists/checklist/client/plugin/index.js.map +1 -1
- package/dist/features/lists/plugin/index.js +6 -2
- package/dist/features/lists/plugin/index.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +14 -5
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +7 -3
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.scss +16 -0
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +14 -5
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +7 -3
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.scss +16 -0
- package/dist/features/relationship/client/components/RelationshipComponent.js +56 -19
- package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
- package/dist/features/relationship/client/components/index.scss +95 -0
- package/dist/features/relationship/client/drawer/index.js +18 -6
- package/dist/features/relationship/client/drawer/index.js.map +1 -1
- package/dist/features/relationship/client/nodes/RelationshipNode.js +7 -3
- package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
- package/dist/features/relationship/client/plugins/index.js +7 -3
- package/dist/features/relationship/client/plugins/index.js.map +1 -1
- package/dist/features/textState/feature.client.js +18 -6
- package/dist/features/textState/feature.client.js.map +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.js +72 -23
- package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.scss +113 -0
- package/dist/features/toolbars/inline/client/Toolbar/index.js +72 -23
- package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
- package/dist/features/toolbars/inline/client/Toolbar/index.scss +58 -0
- package/dist/features/toolbars/shared/ToolbarButton/index.js +8 -3
- package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarButton/index.scss +46 -0
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +60 -20
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js +37 -12
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.scss +129 -0
- package/dist/features/upload/client/component/index.js +92 -31
- package/dist/features/upload/client/component/index.js.map +1 -1
- package/dist/features/upload/client/component/index.scss +191 -0
- package/dist/features/upload/client/component/pending/index.js +14 -5
- package/dist/features/upload/client/component/pending/index.js.map +1 -1
- package/dist/features/upload/client/drawer/index.js +18 -6
- package/dist/features/upload/client/drawer/index.js.map +1 -1
- package/dist/features/upload/client/nodes/UploadNode.js +12 -4
- package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
- package/dist/features/upload/client/plugin/index.js +7 -3
- package/dist/features/upload/client/plugin/index.js.map +1 -1
- package/dist/field/Diff/converters/listitem/index.js +37 -12
- package/dist/field/Diff/converters/listitem/index.js.map +1 -1
- package/dist/field/Diff/converters/listitem/index.scss +47 -0
- package/dist/field/Diff/converters/relationship/index.js +37 -12
- package/dist/field/Diff/converters/relationship/index.js.map +1 -1
- package/dist/field/Diff/converters/relationship/index.scss +73 -0
- package/dist/field/Diff/converters/unknown/index.js +31 -10
- package/dist/field/Diff/converters/unknown/index.js.map +1 -1
- package/dist/field/Diff/converters/unknown/index.scss +40 -0
- package/dist/field/Diff/converters/upload/index.js +60 -19
- package/dist/field/Diff/converters/upload/index.js.map +1 -1
- package/dist/field/Diff/converters/upload/index.scss +115 -0
- package/dist/field/Diff/index.js +8 -3
- package/dist/field/Diff/index.js.map +1 -1
- package/dist/field/Diff/index.scss +102 -0
- package/dist/field/Field.js +81 -27
- package/dist/field/Field.js.map +1 -1
- package/dist/field/RenderLexical/index.js +36 -12
- package/dist/field/RenderLexical/index.js.map +1 -1
- package/dist/field/index.js +19 -7
- package/dist/field/index.js.map +1 -1
- package/dist/field/index.scss +41 -0
- package/dist/field/rscEntry.js +7 -3
- package/dist/field/rscEntry.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lexical/EditorPlugin.js +13 -5
- package/dist/lexical/EditorPlugin.js.map +1 -1
- package/dist/lexical/LexicalEditor.js +163 -50
- package/dist/lexical/LexicalEditor.js.map +1 -1
- package/dist/lexical/LexicalEditor.scss +54 -0
- package/dist/lexical/LexicalProvider.js +49 -17
- package/dist/lexical/LexicalProvider.js.map +1 -1
- package/dist/lexical/config/client/EditorConfigProvider.js +7 -3
- package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
- package/dist/lexical/plugins/DecoratorPlugin/index.js +1 -0
- package/dist/lexical/plugins/DecoratorPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/DecoratorPlugin/index.scss +13 -0
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +20 -7
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.scss +54 -0
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +2 -0
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +7 -3
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/index.js +50 -16
- package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/index.scss +68 -0
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +20 -7
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.scss +35 -0
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +32 -11
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.scss +80 -0
- package/dist/lexical/theme/EditorTheme.scss +357 -0
- package/dist/lexical/ui/ContentEditable.js +14 -5
- package/dist/lexical/ui/ContentEditable.js.map +1 -1
- package/dist/lexical/ui/ContentEditable.scss +105 -0
- package/dist/lexical/ui/icons/AI/index.js +37 -13
- package/dist/lexical/ui/icons/AI/index.js.map +1 -1
- package/dist/lexical/ui/icons/Add/index.js +19 -7
- package/dist/lexical/ui/icons/Add/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignCenter/index.js +25 -9
- package/dist/lexical/ui/icons/AlignCenter/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignJustify/index.js +25 -9
- package/dist/lexical/ui/icons/AlignJustify/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignLeft/index.js +25 -9
- package/dist/lexical/ui/icons/AlignLeft/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignRight/index.js +25 -9
- package/dist/lexical/ui/icons/AlignRight/index.js.map +1 -1
- package/dist/lexical/ui/icons/Block/index.js +25 -9
- package/dist/lexical/ui/icons/Block/index.js.map +1 -1
- package/dist/lexical/ui/icons/Blockquote/index.js +13 -5
- package/dist/lexical/ui/icons/Blockquote/index.js.map +1 -1
- package/dist/lexical/ui/icons/Bold/index.js +13 -5
- package/dist/lexical/ui/icons/Bold/index.js.map +1 -1
- package/dist/lexical/ui/icons/Checklist/index.js +19 -7
- package/dist/lexical/ui/icons/Checklist/index.js.map +1 -1
- package/dist/lexical/ui/icons/Code/index.js +19 -7
- package/dist/lexical/ui/icons/Code/index.js.map +1 -1
- package/dist/lexical/ui/icons/CodeBlock/index.js +13 -5
- package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -1
- package/dist/lexical/ui/icons/Collapse/index.js +13 -5
- package/dist/lexical/ui/icons/Collapse/index.js.map +1 -1
- package/dist/lexical/ui/icons/H1/index.js +13 -5
- package/dist/lexical/ui/icons/H1/index.js.map +1 -1
- package/dist/lexical/ui/icons/H2/index.js +13 -5
- package/dist/lexical/ui/icons/H2/index.js.map +1 -1
- package/dist/lexical/ui/icons/H3/index.js +13 -5
- package/dist/lexical/ui/icons/H3/index.js.map +1 -1
- package/dist/lexical/ui/icons/H4/index.js +13 -5
- package/dist/lexical/ui/icons/H4/index.js.map +1 -1
- package/dist/lexical/ui/icons/H5/index.js +13 -5
- package/dist/lexical/ui/icons/H5/index.js.map +1 -1
- package/dist/lexical/ui/icons/H6/index.js +13 -5
- package/dist/lexical/ui/icons/H6/index.js.map +1 -1
- package/dist/lexical/ui/icons/HorizontalRule/index.js +13 -5
- package/dist/lexical/ui/icons/HorizontalRule/index.js.map +1 -1
- package/dist/lexical/ui/icons/IndentDecrease/index.js +31 -11
- package/dist/lexical/ui/icons/IndentDecrease/index.js.map +1 -1
- package/dist/lexical/ui/icons/IndentIncrease/index.js +31 -11
- package/dist/lexical/ui/icons/IndentIncrease/index.js.map +1 -1
- package/dist/lexical/ui/icons/InlineBlocks/index.js +13 -5
- package/dist/lexical/ui/icons/InlineBlocks/index.js.map +1 -1
- package/dist/lexical/ui/icons/Italic/index.js +13 -5
- package/dist/lexical/ui/icons/Italic/index.js.map +1 -1
- package/dist/lexical/ui/icons/Link/index.js +13 -5
- package/dist/lexical/ui/icons/Link/index.js.map +1 -1
- package/dist/lexical/ui/icons/Meatballs/index.js +25 -9
- package/dist/lexical/ui/icons/Meatballs/index.js.map +1 -1
- package/dist/lexical/ui/icons/OrderedList/index.js +37 -13
- package/dist/lexical/ui/icons/OrderedList/index.js.map +1 -1
- package/dist/lexical/ui/icons/Relationship/index.js +37 -13
- package/dist/lexical/ui/icons/Relationship/index.js.map +1 -1
- package/dist/lexical/ui/icons/Strikethrough/index.js +19 -7
- package/dist/lexical/ui/icons/Strikethrough/index.js.map +1 -1
- package/dist/lexical/ui/icons/Subscript/index.js +13 -5
- package/dist/lexical/ui/icons/Subscript/index.js.map +1 -1
- package/dist/lexical/ui/icons/Superscript/index.js +13 -5
- package/dist/lexical/ui/icons/Superscript/index.js.map +1 -1
- package/dist/lexical/ui/icons/Table/index.js +13 -5
- package/dist/lexical/ui/icons/Table/index.js.map +1 -1
- package/dist/lexical/ui/icons/Text/index.js +13 -5
- package/dist/lexical/ui/icons/Text/index.js.map +1 -1
- package/dist/lexical/ui/icons/TextState/index.js +7 -3
- package/dist/lexical/ui/icons/TextState/index.js.map +1 -1
- package/dist/lexical/ui/icons/Underline/index.js +19 -7
- package/dist/lexical/ui/icons/Underline/index.js.map +1 -1
- package/dist/lexical/ui/icons/UnorderedList/index.js +43 -15
- package/dist/lexical/ui/icons/UnorderedList/index.js.map +1 -1
- package/dist/lexical/ui/icons/Upload/index.js +25 -9
- package/dist/lexical/ui/icons/Upload/index.js.map +1 -1
- package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +2 -0
- package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +1 -1
- package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +2 -0
- package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +1 -1
- package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +2 -0
- package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +1 -1
- package/dist/utilities/fieldsDrawer/Drawer.js +19 -7
- package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
- package/dist/utilities/fieldsDrawer/DrawerContent.js +19 -7
- package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
- package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +7 -3
- package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -1
- package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js +7 -3
- package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js.map +1 -1
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +2 -0
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
- package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +2 -0
- package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
- package/package.json +8 -7
|
@@ -1,17 +1,29 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
2
2
|
export const ParagraphJSXConverter = {
|
|
3
3
|
paragraph: ({ node, nodesToJSX })=>{
|
|
4
4
|
const children = nodesToJSX({
|
|
5
5
|
nodes: node.children
|
|
6
6
|
});
|
|
7
7
|
if (!children?.length) {
|
|
8
|
-
return /*#__PURE__*/
|
|
9
|
-
children: /*#__PURE__*/
|
|
10
|
-
|
|
8
|
+
return /*#__PURE__*/ _jsxDEV("p", {
|
|
9
|
+
children: /*#__PURE__*/ _jsxDEV("br", {}, void 0, false, {
|
|
10
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/paragraph.tsx",
|
|
11
|
+
lineNumber: 13,
|
|
12
|
+
columnNumber: 11
|
|
13
|
+
}, this)
|
|
14
|
+
}, void 0, false, {
|
|
15
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/paragraph.tsx",
|
|
16
|
+
lineNumber: 12,
|
|
17
|
+
columnNumber: 9
|
|
18
|
+
}, this);
|
|
11
19
|
}
|
|
12
|
-
return /*#__PURE__*/
|
|
20
|
+
return /*#__PURE__*/ _jsxDEV("p", {
|
|
13
21
|
children: children
|
|
14
|
-
}
|
|
22
|
+
}, void 0, false, {
|
|
23
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/paragraph.tsx",
|
|
24
|
+
lineNumber: 18,
|
|
25
|
+
columnNumber: 12
|
|
26
|
+
}, this);
|
|
15
27
|
}
|
|
16
28
|
};
|
|
17
29
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/paragraph.tsx"],"sourcesContent":["import type { SerializedParagraphNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const ParagraphJSXConverter: JSXConverters<SerializedParagraphNode> = {\n paragraph: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n if (!children?.length) {\n return (\n <p>\n <br />\n </p>\n )\n }\n\n return <p>{children}</p>\n },\n}\n"],"names":["ParagraphJSXConverter","paragraph","node","nodesToJSX","children","nodes","length","p","br"],"mappings":";AAGA,OAAO,MAAMA,wBAAgE;IAC3EC,WAAW,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAE;QAC9B,MAAMC,WAAWD,WAAW;YAC1BE,OAAOH,KAAKE,QAAQ;QACtB;QAEA,IAAI,CAACA,UAAUE,QAAQ;YACrB,qBACE,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/paragraph.tsx"],"sourcesContent":["import type { SerializedParagraphNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const ParagraphJSXConverter: JSXConverters<SerializedParagraphNode> = {\n paragraph: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n if (!children?.length) {\n return (\n <p>\n <br />\n </p>\n )\n }\n\n return <p>{children}</p>\n },\n}\n"],"names":["ParagraphJSXConverter","paragraph","node","nodesToJSX","children","nodes","length","p","br"],"mappings":";AAGA,OAAO,MAAMA,wBAAgE;IAC3EC,WAAW,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAE;QAC9B,MAAMC,WAAWD,WAAW;YAC1BE,OAAOH,KAAKE,QAAQ;QACtB;QAEA,IAAI,CAACA,UAAUE,QAAQ;YACrB,qBACE,QAACC;0BACC,cAAA,QAACC;;;;;;;;;;QAGP;QAEA,qBAAO,QAACD;sBAAGH;;;;;;IACb;AACF,EAAC"}
|
|
@@ -1,21 +1,33 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
2
2
|
export const TableJSXConverter = {
|
|
3
3
|
table: ({ node, nodesToJSX })=>{
|
|
4
4
|
const children = nodesToJSX({
|
|
5
5
|
nodes: node.children
|
|
6
6
|
});
|
|
7
|
-
return /*#__PURE__*/
|
|
7
|
+
return /*#__PURE__*/ _jsxDEV("div", {
|
|
8
8
|
className: "lexical-table-container",
|
|
9
|
-
children: /*#__PURE__*/
|
|
9
|
+
children: /*#__PURE__*/ _jsxDEV("table", {
|
|
10
10
|
className: "lexical-table",
|
|
11
11
|
style: {
|
|
12
12
|
borderCollapse: 'collapse'
|
|
13
13
|
},
|
|
14
|
-
children: /*#__PURE__*/
|
|
14
|
+
children: /*#__PURE__*/ _jsxDEV("tbody", {
|
|
15
15
|
children: children
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
}, void 0, false, {
|
|
17
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/table.tsx",
|
|
18
|
+
lineNumber: 18,
|
|
19
|
+
columnNumber: 11
|
|
20
|
+
}, this)
|
|
21
|
+
}, void 0, false, {
|
|
22
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/table.tsx",
|
|
23
|
+
lineNumber: 17,
|
|
24
|
+
columnNumber: 9
|
|
25
|
+
}, this)
|
|
26
|
+
}, void 0, false, {
|
|
27
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/table.tsx",
|
|
28
|
+
lineNumber: 16,
|
|
29
|
+
columnNumber: 7
|
|
30
|
+
}, this);
|
|
19
31
|
},
|
|
20
32
|
tablecell: ({ node, nodesToJSX })=>{
|
|
21
33
|
const children = nodesToJSX({
|
|
@@ -33,23 +45,31 @@ export const TableJSXConverter = {
|
|
|
33
45
|
// Note: JSX does not support setting attributes directly as strings, so you must convert the colSpan and rowSpan to numbers
|
|
34
46
|
const colSpan = node.colSpan && node.colSpan > 1 ? node.colSpan : undefined;
|
|
35
47
|
const rowSpan = node.rowSpan && node.rowSpan > 1 ? node.rowSpan : undefined;
|
|
36
|
-
return /*#__PURE__*/
|
|
48
|
+
return /*#__PURE__*/ _jsxDEV(TagName, {
|
|
37
49
|
className: `lexical-table-cell ${headerStateClass}`,
|
|
38
50
|
colSpan: colSpan,
|
|
39
51
|
// colSpan and rowSpan will only be added if they are not null
|
|
40
52
|
rowSpan: rowSpan,
|
|
41
53
|
style: style,
|
|
42
54
|
children: children
|
|
43
|
-
}
|
|
55
|
+
}, void 0, false, {
|
|
56
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/table.tsx",
|
|
57
|
+
lineNumber: 41,
|
|
58
|
+
columnNumber: 7
|
|
59
|
+
}, this);
|
|
44
60
|
},
|
|
45
61
|
tablerow: ({ node, nodesToJSX })=>{
|
|
46
62
|
const children = nodesToJSX({
|
|
47
63
|
nodes: node.children
|
|
48
64
|
});
|
|
49
|
-
return /*#__PURE__*/
|
|
65
|
+
return /*#__PURE__*/ _jsxDEV("tr", {
|
|
50
66
|
className: "lexical-table-row",
|
|
51
67
|
children: children
|
|
52
|
-
}
|
|
68
|
+
}, void 0, false, {
|
|
69
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/table.tsx",
|
|
70
|
+
lineNumber: 55,
|
|
71
|
+
columnNumber: 12
|
|
72
|
+
}, this);
|
|
53
73
|
}
|
|
54
74
|
};
|
|
55
75
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/table.tsx"],"sourcesContent":["import type {\n SerializedTableCellNode,\n SerializedTableNode,\n SerializedTableRowNode,\n} from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const TableJSXConverter: JSXConverters<\n SerializedTableCellNode | SerializedTableNode | SerializedTableRowNode\n> = {\n table: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n return (\n <div className=\"lexical-table-container\">\n <table className=\"lexical-table\" style={{ borderCollapse: 'collapse' }}>\n <tbody>{children}</tbody>\n </table>\n </div>\n )\n },\n tablecell: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n const TagName = node.headerState > 0 ? 'th' : 'td' // Use capital letter to denote a component\n const headerStateClass = `lexical-table-cell-header-${node.headerState}`\n const style = {\n backgroundColor: node.backgroundColor || undefined, // Use undefined to avoid setting the style property if not needed\n border: '1px solid #ccc',\n padding: '8px',\n }\n\n // Note: JSX does not support setting attributes directly as strings, so you must convert the colSpan and rowSpan to numbers\n const colSpan = node.colSpan && node.colSpan > 1 ? node.colSpan : undefined\n const rowSpan = node.rowSpan && node.rowSpan > 1 ? node.rowSpan : undefined\n\n return (\n <TagName\n className={`lexical-table-cell ${headerStateClass}`}\n colSpan={colSpan} // colSpan and rowSpan will only be added if they are not null\n rowSpan={rowSpan}\n style={style}\n >\n {children}\n </TagName>\n )\n },\n tablerow: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n return <tr className=\"lexical-table-row\">{children}</tr>\n },\n}\n"],"names":["TableJSXConverter","table","node","nodesToJSX","children","nodes","div","className","style","borderCollapse","tbody","tablecell","TagName","headerState","headerStateClass","backgroundColor","undefined","border","padding","colSpan","rowSpan","tablerow","tr"],"mappings":";AAOA,OAAO,MAAMA,oBAET;IACFC,OAAO,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAE;QAC1B,MAAMC,WAAWD,WAAW;YAC1BE,OAAOH,KAAKE,QAAQ;QACtB;QACA,qBACE,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/table.tsx"],"sourcesContent":["import type {\n SerializedTableCellNode,\n SerializedTableNode,\n SerializedTableRowNode,\n} from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const TableJSXConverter: JSXConverters<\n SerializedTableCellNode | SerializedTableNode | SerializedTableRowNode\n> = {\n table: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n return (\n <div className=\"lexical-table-container\">\n <table className=\"lexical-table\" style={{ borderCollapse: 'collapse' }}>\n <tbody>{children}</tbody>\n </table>\n </div>\n )\n },\n tablecell: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n const TagName = node.headerState > 0 ? 'th' : 'td' // Use capital letter to denote a component\n const headerStateClass = `lexical-table-cell-header-${node.headerState}`\n const style = {\n backgroundColor: node.backgroundColor || undefined, // Use undefined to avoid setting the style property if not needed\n border: '1px solid #ccc',\n padding: '8px',\n }\n\n // Note: JSX does not support setting attributes directly as strings, so you must convert the colSpan and rowSpan to numbers\n const colSpan = node.colSpan && node.colSpan > 1 ? node.colSpan : undefined\n const rowSpan = node.rowSpan && node.rowSpan > 1 ? node.rowSpan : undefined\n\n return (\n <TagName\n className={`lexical-table-cell ${headerStateClass}`}\n colSpan={colSpan} // colSpan and rowSpan will only be added if they are not null\n rowSpan={rowSpan}\n style={style}\n >\n {children}\n </TagName>\n )\n },\n tablerow: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n return <tr className=\"lexical-table-row\">{children}</tr>\n },\n}\n"],"names":["TableJSXConverter","table","node","nodesToJSX","children","nodes","div","className","style","borderCollapse","tbody","tablecell","TagName","headerState","headerStateClass","backgroundColor","undefined","border","padding","colSpan","rowSpan","tablerow","tr"],"mappings":";AAOA,OAAO,MAAMA,oBAET;IACFC,OAAO,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAE;QAC1B,MAAMC,WAAWD,WAAW;YAC1BE,OAAOH,KAAKE,QAAQ;QACtB;QACA,qBACE,QAACE;YAAIC,WAAU;sBACb,cAAA,QAACN;gBAAMM,WAAU;gBAAgBC,OAAO;oBAAEC,gBAAgB;gBAAW;0BACnE,cAAA,QAACC;8BAAON;;;;;;;;;;;;;;;;IAIhB;IACAO,WAAW,CAAC,EAAET,IAAI,EAAEC,UAAU,EAAE;QAC9B,MAAMC,WAAWD,WAAW;YAC1BE,OAAOH,KAAKE,QAAQ;QACtB;QAEA,MAAMQ,UAAUV,KAAKW,WAAW,GAAG,IAAI,OAAO;QAAK,2CAA2C;QAC9F,MAAMC,mBAAmB,CAAC,0BAA0B,EAAEZ,KAAKW,WAAW,EAAE;QACxE,MAAML,QAAQ;YACZO,iBAAiBb,KAAKa,eAAe,IAAIC;YAAW,kEAAkE;YACtHC,QAAQ;YACRC,SAAS;QACX;QAEA,4HAA4H;QAC5H,MAAMC,UAAUjB,KAAKiB,OAAO,IAAIjB,KAAKiB,OAAO,GAAG,IAAIjB,KAAKiB,OAAO,GAAGH;QAClE,MAAMI,UAAUlB,KAAKkB,OAAO,IAAIlB,KAAKkB,OAAO,GAAG,IAAIlB,KAAKkB,OAAO,GAAGJ;QAElE,qBACE,QAACJ;YACCL,WAAW,CAAC,mBAAmB,EAAEO,kBAAkB;YACnDK,SAASA;YAAS,8DAA8D;YAChFC,SAASA;YACTZ,OAAOA;sBAENJ;;;;;;IAGP;IACAiB,UAAU,CAAC,EAAEnB,IAAI,EAAEC,UAAU,EAAE;QAC7B,MAAMC,WAAWD,WAAW;YAC1BE,OAAOH,KAAKE,QAAQ;QACtB;QACA,qBAAO,QAACkB;YAAGf,WAAU;sBAAqBH;;;;;;IAC5C;AACF,EAAC"}
|
|
@@ -1,49 +1,77 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { NodeFormat } from '../../../../../lexical/utils/nodeFormat.js';
|
|
4
4
|
export const TextJSXConverter = {
|
|
5
5
|
text: ({ node })=>{
|
|
6
6
|
let text = node.text;
|
|
7
7
|
if (node.format & NodeFormat.IS_BOLD) {
|
|
8
|
-
text = /*#__PURE__*/
|
|
8
|
+
text = /*#__PURE__*/ _jsxDEV("strong", {
|
|
9
9
|
children: text
|
|
10
|
-
}
|
|
10
|
+
}, void 0, false, {
|
|
11
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/text.tsx",
|
|
12
|
+
lineNumber: 13,
|
|
13
|
+
columnNumber: 14
|
|
14
|
+
}, this);
|
|
11
15
|
}
|
|
12
16
|
if (node.format & NodeFormat.IS_ITALIC) {
|
|
13
|
-
text = /*#__PURE__*/
|
|
17
|
+
text = /*#__PURE__*/ _jsxDEV("em", {
|
|
14
18
|
children: text
|
|
15
|
-
}
|
|
19
|
+
}, void 0, false, {
|
|
20
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/text.tsx",
|
|
21
|
+
lineNumber: 16,
|
|
22
|
+
columnNumber: 14
|
|
23
|
+
}, this);
|
|
16
24
|
}
|
|
17
25
|
if (node.format & NodeFormat.IS_STRIKETHROUGH) {
|
|
18
|
-
text = /*#__PURE__*/
|
|
26
|
+
text = /*#__PURE__*/ _jsxDEV("span", {
|
|
19
27
|
style: {
|
|
20
28
|
textDecoration: 'line-through'
|
|
21
29
|
},
|
|
22
30
|
children: text
|
|
23
|
-
}
|
|
31
|
+
}, void 0, false, {
|
|
32
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/text.tsx",
|
|
33
|
+
lineNumber: 19,
|
|
34
|
+
columnNumber: 14
|
|
35
|
+
}, this);
|
|
24
36
|
}
|
|
25
37
|
if (node.format & NodeFormat.IS_UNDERLINE) {
|
|
26
|
-
text = /*#__PURE__*/
|
|
38
|
+
text = /*#__PURE__*/ _jsxDEV("span", {
|
|
27
39
|
style: {
|
|
28
40
|
textDecoration: 'underline'
|
|
29
41
|
},
|
|
30
42
|
children: text
|
|
31
|
-
}
|
|
43
|
+
}, void 0, false, {
|
|
44
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/text.tsx",
|
|
45
|
+
lineNumber: 22,
|
|
46
|
+
columnNumber: 14
|
|
47
|
+
}, this);
|
|
32
48
|
}
|
|
33
49
|
if (node.format & NodeFormat.IS_CODE) {
|
|
34
|
-
text = /*#__PURE__*/
|
|
50
|
+
text = /*#__PURE__*/ _jsxDEV("code", {
|
|
35
51
|
children: text
|
|
36
|
-
}
|
|
52
|
+
}, void 0, false, {
|
|
53
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/text.tsx",
|
|
54
|
+
lineNumber: 25,
|
|
55
|
+
columnNumber: 14
|
|
56
|
+
}, this);
|
|
37
57
|
}
|
|
38
58
|
if (node.format & NodeFormat.IS_SUBSCRIPT) {
|
|
39
|
-
text = /*#__PURE__*/
|
|
59
|
+
text = /*#__PURE__*/ _jsxDEV("sub", {
|
|
40
60
|
children: text
|
|
41
|
-
}
|
|
61
|
+
}, void 0, false, {
|
|
62
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/text.tsx",
|
|
63
|
+
lineNumber: 28,
|
|
64
|
+
columnNumber: 14
|
|
65
|
+
}, this);
|
|
42
66
|
}
|
|
43
67
|
if (node.format & NodeFormat.IS_SUPERSCRIPT) {
|
|
44
|
-
text = /*#__PURE__*/
|
|
68
|
+
text = /*#__PURE__*/ _jsxDEV("sup", {
|
|
45
69
|
children: text
|
|
46
|
-
}
|
|
70
|
+
}, void 0, false, {
|
|
71
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/text.tsx",
|
|
72
|
+
lineNumber: 31,
|
|
73
|
+
columnNumber: 14
|
|
74
|
+
}, this);
|
|
47
75
|
}
|
|
48
76
|
return text;
|
|
49
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/text.tsx"],"sourcesContent":["import React from 'react'\n\nimport type { SerializedTextNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nimport { NodeFormat } from '../../../../../lexical/utils/nodeFormat.js'\n\nexport const TextJSXConverter: JSXConverters<SerializedTextNode> = {\n text: ({ node }) => {\n let text: React.ReactNode = node.text\n\n if (node.format & NodeFormat.IS_BOLD) {\n text = <strong>{text}</strong>\n }\n if (node.format & NodeFormat.IS_ITALIC) {\n text = <em>{text}</em>\n }\n if (node.format & NodeFormat.IS_STRIKETHROUGH) {\n text = <span style={{ textDecoration: 'line-through' }}>{text}</span>\n }\n if (node.format & NodeFormat.IS_UNDERLINE) {\n text = <span style={{ textDecoration: 'underline' }}>{text}</span>\n }\n if (node.format & NodeFormat.IS_CODE) {\n text = <code>{text}</code>\n }\n if (node.format & NodeFormat.IS_SUBSCRIPT) {\n text = <sub>{text}</sub>\n }\n if (node.format & NodeFormat.IS_SUPERSCRIPT) {\n text = <sup>{text}</sup>\n }\n\n return text\n },\n}\n"],"names":["React","NodeFormat","TextJSXConverter","text","node","format","IS_BOLD","strong","IS_ITALIC","em","IS_STRIKETHROUGH","span","style","textDecoration","IS_UNDERLINE","IS_CODE","code","IS_SUBSCRIPT","sub","IS_SUPERSCRIPT","sup"],"mappings":";AAAA,OAAOA,WAAW,QAAO;AAKzB,SAASC,UAAU,QAAQ,6CAA4C;AAEvE,OAAO,MAAMC,mBAAsD;IACjEC,MAAM,CAAC,EAAEC,IAAI,EAAE;QACb,IAAID,OAAwBC,KAAKD,IAAI;QAErC,IAAIC,KAAKC,MAAM,GAAGJ,WAAWK,OAAO,EAAE;YACpCH,qBAAO,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/text.tsx"],"sourcesContent":["import React from 'react'\n\nimport type { SerializedTextNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nimport { NodeFormat } from '../../../../../lexical/utils/nodeFormat.js'\n\nexport const TextJSXConverter: JSXConverters<SerializedTextNode> = {\n text: ({ node }) => {\n let text: React.ReactNode = node.text\n\n if (node.format & NodeFormat.IS_BOLD) {\n text = <strong>{text}</strong>\n }\n if (node.format & NodeFormat.IS_ITALIC) {\n text = <em>{text}</em>\n }\n if (node.format & NodeFormat.IS_STRIKETHROUGH) {\n text = <span style={{ textDecoration: 'line-through' }}>{text}</span>\n }\n if (node.format & NodeFormat.IS_UNDERLINE) {\n text = <span style={{ textDecoration: 'underline' }}>{text}</span>\n }\n if (node.format & NodeFormat.IS_CODE) {\n text = <code>{text}</code>\n }\n if (node.format & NodeFormat.IS_SUBSCRIPT) {\n text = <sub>{text}</sub>\n }\n if (node.format & NodeFormat.IS_SUPERSCRIPT) {\n text = <sup>{text}</sup>\n }\n\n return text\n },\n}\n"],"names":["React","NodeFormat","TextJSXConverter","text","node","format","IS_BOLD","strong","IS_ITALIC","em","IS_STRIKETHROUGH","span","style","textDecoration","IS_UNDERLINE","IS_CODE","code","IS_SUBSCRIPT","sub","IS_SUPERSCRIPT","sup"],"mappings":";AAAA,OAAOA,WAAW,QAAO;AAKzB,SAASC,UAAU,QAAQ,6CAA4C;AAEvE,OAAO,MAAMC,mBAAsD;IACjEC,MAAM,CAAC,EAAEC,IAAI,EAAE;QACb,IAAID,OAAwBC,KAAKD,IAAI;QAErC,IAAIC,KAAKC,MAAM,GAAGJ,WAAWK,OAAO,EAAE;YACpCH,qBAAO,QAACI;0BAAQJ;;;;;;QAClB;QACA,IAAIC,KAAKC,MAAM,GAAGJ,WAAWO,SAAS,EAAE;YACtCL,qBAAO,QAACM;0BAAIN;;;;;;QACd;QACA,IAAIC,KAAKC,MAAM,GAAGJ,WAAWS,gBAAgB,EAAE;YAC7CP,qBAAO,QAACQ;gBAAKC,OAAO;oBAAEC,gBAAgB;gBAAe;0BAAIV;;;;;;QAC3D;QACA,IAAIC,KAAKC,MAAM,GAAGJ,WAAWa,YAAY,EAAE;YACzCX,qBAAO,QAACQ;gBAAKC,OAAO;oBAAEC,gBAAgB;gBAAY;0BAAIV;;;;;;QACxD;QACA,IAAIC,KAAKC,MAAM,GAAGJ,WAAWc,OAAO,EAAE;YACpCZ,qBAAO,QAACa;0BAAMb;;;;;;QAChB;QACA,IAAIC,KAAKC,MAAM,GAAGJ,WAAWgB,YAAY,EAAE;YACzCd,qBAAO,QAACe;0BAAKf;;;;;;QACf;QACA,IAAIC,KAAKC,MAAM,GAAGJ,WAAWkB,cAAc,EAAE;YAC3ChB,qBAAO,QAACiB;0BAAKjB;;;;;;QACf;QAEA,OAAOA;IACT;AACF,EAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
2
2
|
export const UploadJSXConverter = {
|
|
3
3
|
upload: ({ node })=>{
|
|
4
4
|
// TO-DO (v4): SerializedUploadNode should use UploadData_P4
|
|
@@ -11,21 +11,29 @@ export const UploadJSXConverter = {
|
|
|
11
11
|
/**
|
|
12
12
|
* If the upload is not an image, return a link to the upload
|
|
13
13
|
*/ if (!uploadDoc.mimeType.startsWith('image')) {
|
|
14
|
-
return /*#__PURE__*/
|
|
14
|
+
return /*#__PURE__*/ _jsxDEV("a", {
|
|
15
15
|
href: url,
|
|
16
16
|
rel: "noopener noreferrer",
|
|
17
17
|
children: uploadDoc.filename
|
|
18
|
-
}
|
|
18
|
+
}, void 0, false, {
|
|
19
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/upload.tsx",
|
|
20
|
+
lineNumber: 24,
|
|
21
|
+
columnNumber: 9
|
|
22
|
+
}, this);
|
|
19
23
|
}
|
|
20
24
|
/**
|
|
21
25
|
* If the upload is a simple image with no different sizes, return a simple img tag
|
|
22
26
|
*/ if (!uploadDoc.sizes || !Object.keys(uploadDoc.sizes).length) {
|
|
23
|
-
return /*#__PURE__*/
|
|
27
|
+
return /*#__PURE__*/ _jsxDEV("img", {
|
|
24
28
|
alt: uploadDoc.filename,
|
|
25
29
|
height: uploadDoc.height,
|
|
26
30
|
src: url,
|
|
27
31
|
width: uploadDoc.width
|
|
28
|
-
}
|
|
32
|
+
}, void 0, false, {
|
|
33
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/upload.tsx",
|
|
34
|
+
lineNumber: 35,
|
|
35
|
+
columnNumber: 9
|
|
36
|
+
}, this);
|
|
29
37
|
}
|
|
30
38
|
/**
|
|
31
39
|
* If the upload is an image with different sizes, return a picture element
|
|
@@ -38,22 +46,34 @@ export const UploadJSXConverter = {
|
|
|
38
46
|
continue;
|
|
39
47
|
}
|
|
40
48
|
const imageSizeURL = imageSize?.url;
|
|
41
|
-
pictureJSX.push(/*#__PURE__*/
|
|
49
|
+
pictureJSX.push(/*#__PURE__*/ _jsxDEV("source", {
|
|
42
50
|
media: `(max-width: ${imageSize.width}px)`,
|
|
43
51
|
srcSet: imageSizeURL,
|
|
44
52
|
type: imageSize.mimeType
|
|
45
|
-
}, size
|
|
53
|
+
}, size, false, {
|
|
54
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/upload.tsx",
|
|
55
|
+
lineNumber: 63,
|
|
56
|
+
columnNumber: 9
|
|
57
|
+
}, this));
|
|
46
58
|
}
|
|
47
59
|
// Add the default img tag
|
|
48
|
-
pictureJSX.push(/*#__PURE__*/
|
|
60
|
+
pictureJSX.push(/*#__PURE__*/ _jsxDEV("img", {
|
|
49
61
|
alt: uploadDoc?.filename,
|
|
50
62
|
height: uploadDoc?.height,
|
|
51
63
|
src: url,
|
|
52
64
|
width: uploadDoc?.width
|
|
53
|
-
}, 'image'
|
|
54
|
-
|
|
65
|
+
}, 'image', false, {
|
|
66
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/upload.tsx",
|
|
67
|
+
lineNumber: 74,
|
|
68
|
+
columnNumber: 7
|
|
69
|
+
}, this));
|
|
70
|
+
return /*#__PURE__*/ _jsxDEV("picture", {
|
|
55
71
|
children: pictureJSX
|
|
56
|
-
}
|
|
72
|
+
}, void 0, false, {
|
|
73
|
+
fileName: "src/features/converters/lexicalToJSX/converter/converters/upload.tsx",
|
|
74
|
+
lineNumber: 82,
|
|
75
|
+
columnNumber: 12
|
|
76
|
+
}, this);
|
|
57
77
|
}
|
|
58
78
|
};
|
|
59
79
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/upload.tsx"],"sourcesContent":["import type { FileData, FileSizeImproved, TypeWithID } from 'payload'\n\nimport type { SerializedUploadNode } from '../../../../../nodeTypes.js'\nimport type { UploadDataImproved } from '../../../../upload/server/nodes/UploadNode.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const UploadJSXConverter: JSXConverters<SerializedUploadNode> = {\n upload: ({ node }) => {\n // TO-DO (v4): SerializedUploadNode should use UploadData_P4\n const uploadNode = node as UploadDataImproved\n if (typeof uploadNode.value !== 'object') {\n return null\n }\n\n const uploadDoc = uploadNode.value as FileData & TypeWithID\n\n const url = uploadDoc.url\n\n /**\n * If the upload is not an image, return a link to the upload\n */\n if (!uploadDoc.mimeType.startsWith('image')) {\n return (\n <a href={url} rel=\"noopener noreferrer\">\n {uploadDoc.filename}\n </a>\n )\n }\n\n /**\n * If the upload is a simple image with no different sizes, return a simple img tag\n */\n if (!uploadDoc.sizes || !Object.keys(uploadDoc.sizes).length) {\n return (\n <img alt={uploadDoc.filename} height={uploadDoc.height} src={url} width={uploadDoc.width} />\n )\n }\n\n /**\n * If the upload is an image with different sizes, return a picture element\n */\n const pictureJSX: React.ReactNode[] = []\n\n // Iterate through each size in the data.sizes object\n for (const size in uploadDoc.sizes) {\n const imageSize = uploadDoc.sizes[size] as FileSizeImproved\n\n // Skip if any property of the size object is null\n if (\n !imageSize ||\n !imageSize.width ||\n !imageSize.height ||\n !imageSize.mimeType ||\n !imageSize.filesize ||\n !imageSize.filename ||\n !imageSize.url\n ) {\n continue\n }\n const imageSizeURL = imageSize?.url\n\n pictureJSX.push(\n <source\n key={size}\n media={`(max-width: ${imageSize.width}px)`}\n srcSet={imageSizeURL}\n type={imageSize.mimeType}\n />,\n )\n }\n\n // Add the default img tag\n pictureJSX.push(\n <img\n alt={uploadDoc?.filename}\n height={uploadDoc?.height}\n key={'image'}\n src={url}\n width={uploadDoc?.width}\n />,\n )\n return <picture>{pictureJSX}</picture>\n },\n}\n"],"names":["UploadJSXConverter","upload","node","uploadNode","value","uploadDoc","url","mimeType","startsWith","a","href","rel","filename","sizes","Object","keys","length","img","alt","height","src","width","pictureJSX","size","imageSize","filesize","imageSizeURL","push","source","media","srcSet","type","picture"],"mappings":";AAMA,OAAO,MAAMA,qBAA0D;IACrEC,QAAQ,CAAC,EAAEC,IAAI,EAAE;QACf,4DAA4D;QAC5D,MAAMC,aAAaD;QACnB,IAAI,OAAOC,WAAWC,KAAK,KAAK,UAAU;YACxC,OAAO;QACT;QAEA,MAAMC,YAAYF,WAAWC,KAAK;QAElC,MAAME,MAAMD,UAAUC,GAAG;QAEzB;;KAEC,GACD,IAAI,CAACD,UAAUE,QAAQ,CAACC,UAAU,CAAC,UAAU;YAC3C,qBACE,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/upload.tsx"],"sourcesContent":["import type { FileData, FileSizeImproved, TypeWithID } from 'payload'\n\nimport type { SerializedUploadNode } from '../../../../../nodeTypes.js'\nimport type { UploadDataImproved } from '../../../../upload/server/nodes/UploadNode.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const UploadJSXConverter: JSXConverters<SerializedUploadNode> = {\n upload: ({ node }) => {\n // TO-DO (v4): SerializedUploadNode should use UploadData_P4\n const uploadNode = node as UploadDataImproved\n if (typeof uploadNode.value !== 'object') {\n return null\n }\n\n const uploadDoc = uploadNode.value as FileData & TypeWithID\n\n const url = uploadDoc.url\n\n /**\n * If the upload is not an image, return a link to the upload\n */\n if (!uploadDoc.mimeType.startsWith('image')) {\n return (\n <a href={url} rel=\"noopener noreferrer\">\n {uploadDoc.filename}\n </a>\n )\n }\n\n /**\n * If the upload is a simple image with no different sizes, return a simple img tag\n */\n if (!uploadDoc.sizes || !Object.keys(uploadDoc.sizes).length) {\n return (\n <img alt={uploadDoc.filename} height={uploadDoc.height} src={url} width={uploadDoc.width} />\n )\n }\n\n /**\n * If the upload is an image with different sizes, return a picture element\n */\n const pictureJSX: React.ReactNode[] = []\n\n // Iterate through each size in the data.sizes object\n for (const size in uploadDoc.sizes) {\n const imageSize = uploadDoc.sizes[size] as FileSizeImproved\n\n // Skip if any property of the size object is null\n if (\n !imageSize ||\n !imageSize.width ||\n !imageSize.height ||\n !imageSize.mimeType ||\n !imageSize.filesize ||\n !imageSize.filename ||\n !imageSize.url\n ) {\n continue\n }\n const imageSizeURL = imageSize?.url\n\n pictureJSX.push(\n <source\n key={size}\n media={`(max-width: ${imageSize.width}px)`}\n srcSet={imageSizeURL}\n type={imageSize.mimeType}\n />,\n )\n }\n\n // Add the default img tag\n pictureJSX.push(\n <img\n alt={uploadDoc?.filename}\n height={uploadDoc?.height}\n key={'image'}\n src={url}\n width={uploadDoc?.width}\n />,\n )\n return <picture>{pictureJSX}</picture>\n },\n}\n"],"names":["UploadJSXConverter","upload","node","uploadNode","value","uploadDoc","url","mimeType","startsWith","a","href","rel","filename","sizes","Object","keys","length","img","alt","height","src","width","pictureJSX","size","imageSize","filesize","imageSizeURL","push","source","media","srcSet","type","picture"],"mappings":";AAMA,OAAO,MAAMA,qBAA0D;IACrEC,QAAQ,CAAC,EAAEC,IAAI,EAAE;QACf,4DAA4D;QAC5D,MAAMC,aAAaD;QACnB,IAAI,OAAOC,WAAWC,KAAK,KAAK,UAAU;YACxC,OAAO;QACT;QAEA,MAAMC,YAAYF,WAAWC,KAAK;QAElC,MAAME,MAAMD,UAAUC,GAAG;QAEzB;;KAEC,GACD,IAAI,CAACD,UAAUE,QAAQ,CAACC,UAAU,CAAC,UAAU;YAC3C,qBACE,QAACC;gBAAEC,MAAMJ;gBAAKK,KAAI;0BACfN,UAAUO,QAAQ;;;;;;QAGzB;QAEA;;KAEC,GACD,IAAI,CAACP,UAAUQ,KAAK,IAAI,CAACC,OAAOC,IAAI,CAACV,UAAUQ,KAAK,EAAEG,MAAM,EAAE;YAC5D,qBACE,QAACC;gBAAIC,KAAKb,UAAUO,QAAQ;gBAAEO,QAAQd,UAAUc,MAAM;gBAAEC,KAAKd;gBAAKe,OAAOhB,UAAUgB,KAAK;;;;;;QAE5F;QAEA;;KAEC,GACD,MAAMC,aAAgC,EAAE;QAExC,qDAAqD;QACrD,IAAK,MAAMC,QAAQlB,UAAUQ,KAAK,CAAE;YAClC,MAAMW,YAAYnB,UAAUQ,KAAK,CAACU,KAAK;YAEvC,kDAAkD;YAClD,IACE,CAACC,aACD,CAACA,UAAUH,KAAK,IAChB,CAACG,UAAUL,MAAM,IACjB,CAACK,UAAUjB,QAAQ,IACnB,CAACiB,UAAUC,QAAQ,IACnB,CAACD,UAAUZ,QAAQ,IACnB,CAACY,UAAUlB,GAAG,EACd;gBACA;YACF;YACA,MAAMoB,eAAeF,WAAWlB;YAEhCgB,WAAWK,IAAI,eACb,QAACC;gBAECC,OAAO,CAAC,YAAY,EAAEL,UAAUH,KAAK,CAAC,GAAG,CAAC;gBAC1CS,QAAQJ;gBACRK,MAAMP,UAAUjB,QAAQ;eAHnBgB;;;;;QAMX;QAEA,0BAA0B;QAC1BD,WAAWK,IAAI,eACb,QAACV;YACCC,KAAKb,WAAWO;YAChBO,QAAQd,WAAWc;YAEnBC,KAAKd;YACLe,OAAOhB,WAAWgB;WAFb;;;;;QAKT,qBAAO,QAACW;sBAASV;;;;;;IACnB;AACF,EAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "react/jsx-dev-runtime";
|
|
2
2
|
/* eslint-disable no-console */ import React from 'react';
|
|
3
3
|
import { hasText } from '../../../../validate/hasText.js';
|
|
4
4
|
export function convertLexicalToJSX({ converters, data, disableIndent, disableTextAlign }) {
|
|
@@ -11,7 +11,7 @@ export function convertLexicalToJSX({ converters, data, disableIndent, disableTe
|
|
|
11
11
|
parent: data?.root
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
return /*#__PURE__*/
|
|
14
|
+
return /*#__PURE__*/ _jsxDEV(_Fragment, {}, void 0, false);
|
|
15
15
|
}
|
|
16
16
|
export function convertLexicalNodesToJSX({ converters, disableIndent, disableTextAlign, nodes, parent }) {
|
|
17
17
|
const unknownConverter = converters.unknown;
|
|
@@ -56,9 +56,13 @@ export function convertLexicalNodesToJSX({ converters, disableIndent, disableTex
|
|
|
56
56
|
}) : converterForNode;
|
|
57
57
|
reactNode = converted;
|
|
58
58
|
} else {
|
|
59
|
-
reactNode = /*#__PURE__*/
|
|
59
|
+
reactNode = /*#__PURE__*/ _jsxDEV("span", {
|
|
60
60
|
children: "unknown node"
|
|
61
|
-
}, i
|
|
61
|
+
}, i, false, {
|
|
62
|
+
fileName: "src/features/converters/lexicalToJSX/converter/index.tsx",
|
|
63
|
+
lineNumber: 102,
|
|
64
|
+
columnNumber: 21
|
|
65
|
+
}, this);
|
|
62
66
|
}
|
|
63
67
|
const style = {};
|
|
64
68
|
// Check if disableTextAlign is not true and does not include node type
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/features/converters/lexicalToJSX/converter/index.tsx"],"sourcesContent":["/* eslint-disable no-console */\nimport type { SerializedEditorState, SerializedLexicalNode } from 'lexical'\n\nimport React from 'react'\n\nimport type { SerializedBlockNode, SerializedInlineBlockNode } from '../../../../nodeTypes.js'\nimport type { JSXConverter, JSXConverters, SerializedLexicalNodeWithParent } from './types.js'\n\nimport { hasText } from '../../../../validate/hasText.js'\n\nexport type ConvertLexicalToJSXArgs = {\n converters: JSXConverters\n data: SerializedEditorState\n disableIndent?: boolean | string[]\n disableTextAlign?: boolean | string[]\n}\n\nexport function convertLexicalToJSX({\n converters,\n data,\n disableIndent,\n disableTextAlign,\n}: ConvertLexicalToJSXArgs): React.ReactNode {\n if (hasText(data)) {\n return convertLexicalNodesToJSX({\n converters,\n disableIndent,\n disableTextAlign,\n nodes: data?.root?.children,\n parent: data?.root,\n })\n }\n return <></>\n}\n\nexport function convertLexicalNodesToJSX({\n converters,\n disableIndent,\n disableTextAlign,\n nodes,\n parent,\n}: {\n converters: JSXConverters\n disableIndent?: boolean | string[]\n disableTextAlign?: boolean | string[]\n nodes: SerializedLexicalNode[]\n parent: SerializedLexicalNodeWithParent\n}): React.ReactNode[] {\n const unknownConverter: JSXConverter<any> = converters.unknown as JSXConverter<any>\n\n const jsxArray: React.ReactNode[] = nodes.map((node, i) => {\n let converterForNode: JSXConverter<any> | undefined\n if (node.type === 'block') {\n converterForNode = converters?.blocks?.[(node as SerializedBlockNode)?.fields?.blockType]\n if (!converterForNode && !unknownConverter) {\n console.error(\n `Lexical => JSX converter: Blocks converter: found ${(node as SerializedBlockNode)?.fields?.blockType} block, but no converter is provided`,\n )\n }\n } else if (node.type === 'inlineBlock') {\n converterForNode =\n converters?.inlineBlocks?.[(node as SerializedInlineBlockNode)?.fields?.blockType]\n if (!converterForNode && !unknownConverter) {\n console.error(\n `Lexical => JSX converter: Inline Blocks converter: found ${(node as SerializedInlineBlockNode)?.fields?.blockType} inline block, but no converter is provided`,\n )\n }\n } else {\n converterForNode = converters[node.type] as JSXConverter<any>\n }\n\n try {\n if (!converterForNode && unknownConverter) {\n converterForNode = unknownConverter\n }\n\n let reactNode: React.ReactNode\n if (converterForNode) {\n const converted =\n typeof converterForNode === 'function'\n ? converterForNode({\n childIndex: i,\n converters,\n node,\n nodesToJSX: (args) => {\n return convertLexicalNodesToJSX({\n converters: args.converters ?? converters,\n disableIndent: args.disableIndent ?? disableIndent,\n disableTextAlign: args.disableTextAlign ?? disableTextAlign,\n nodes: args.nodes,\n parent: args.parent ?? {\n ...node,\n parent,\n },\n })\n },\n parent,\n })\n : converterForNode\n reactNode = converted\n } else {\n reactNode = <span key={i}>unknown node</span>\n }\n\n const style: React.CSSProperties = {}\n\n // Check if disableTextAlign is not true and does not include node type\n if (\n !disableTextAlign &&\n (!Array.isArray(disableTextAlign) || !disableTextAlign?.includes(node.type))\n ) {\n if ('format' in node && node.format) {\n switch (node.format) {\n case 'center':\n style.textAlign = 'center'\n break\n case 'end':\n style.textAlign = 'right'\n break\n case 'justify':\n style.textAlign = 'justify'\n break\n case 'left':\n //style.textAlign = 'left'\n // Do nothing, as left is the default\n break\n case 'right':\n style.textAlign = 'right'\n break\n case 'start':\n style.textAlign = 'left'\n break\n }\n }\n }\n\n if (\n !disableIndent &&\n (!Array.isArray(disableIndent) || !disableIndent?.includes(node.type))\n ) {\n if ('indent' in node && node.indent && node.type !== 'listitem') {\n // the unit should be px. Do not change it to rem, em, or something else.\n // The quantity should be 40px. Do not change it either.\n // See rationale in\n // https://github.com/payloadcms/payload/issues/13130#issuecomment-3058348085\n style.paddingInlineStart = `${Number(node.indent) * 40}px`\n }\n }\n\n if (React.isValidElement(reactNode)) {\n // Inject style into reactNode\n if (style.textAlign || style.paddingInlineStart) {\n const newStyle = {\n ...style,\n // @ts-expect-error type better later\n ...(reactNode?.props?.style ?? {}),\n // reactNode style comes after, thus a textAlign specified in the converter has priority over the one we inject here\n }\n\n return React.cloneElement(reactNode, {\n key: i,\n // @ts-expect-error type better later\n style: newStyle,\n })\n }\n return React.cloneElement(reactNode, {\n key: i,\n })\n }\n\n return reactNode\n } catch (error) {\n console.error('Error converting lexical node to JSX:', error, 'node:', node)\n return null\n }\n })\n\n return jsxArray.filter(Boolean)\n}\n"],"names":["React","hasText","convertLexicalToJSX","converters","data","disableIndent","disableTextAlign","convertLexicalNodesToJSX","nodes","root","children","parent","unknownConverter","unknown","jsxArray","map","node","i","converterForNode","type","blocks","fields","blockType","console","error","inlineBlocks","reactNode","converted","childIndex","nodesToJSX","args","span","style","Array","isArray","includes","format","textAlign","indent","paddingInlineStart","Number","isValidElement","newStyle","props","cloneElement","key","filter","Boolean"],"mappings":";AAAA,6BAA6B,GAG7B,OAAOA,WAAW,QAAO;AAKzB,SAASC,OAAO,QAAQ,kCAAiC;AASzD,OAAO,SAASC,oBAAoB,EAClCC,UAAU,EACVC,IAAI,EACJC,aAAa,EACbC,gBAAgB,EACQ;IACxB,IAAIL,QAAQG,OAAO;QACjB,OAAOG,yBAAyB;YAC9BJ;YACAE;YACAC;YACAE,OAAOJ,MAAMK,MAAMC;YACnBC,QAAQP,MAAMK;QAChB;IACF;IACA,qBAAO;AACT;AAEA,OAAO,SAASF,yBAAyB,EACvCJ,UAAU,EACVE,aAAa,EACbC,gBAAgB,EAChBE,KAAK,EACLG,MAAM,EAOP;IACC,MAAMC,mBAAsCT,WAAWU,OAAO;IAE9D,MAAMC,WAA8BN,MAAMO,GAAG,CAAC,CAACC,MAAMC;QACnD,IAAIC;QACJ,IAAIF,KAAKG,IAAI,KAAK,SAAS;YACzBD,mBAAmBf,YAAYiB,QAAQ,CAAEJ,MAA8BK,QAAQC,UAAU;YACzF,IAAI,CAACJ,oBAAoB,CAACN,kBAAkB;gBAC1CW,QAAQC,KAAK,CACX,CAAC,kDAAkD,EAAGR,MAA8BK,QAAQC,UAAU,oCAAoC,CAAC;YAE/I;QACF,OAAO,IAAIN,KAAKG,IAAI,KAAK,eAAe;YACtCD,mBACEf,YAAYsB,cAAc,CAAET,MAAoCK,QAAQC,UAAU;YACpF,IAAI,CAACJ,oBAAoB,CAACN,kBAAkB;gBAC1CW,QAAQC,KAAK,CACX,CAAC,yDAAyD,EAAGR,MAAoCK,QAAQC,UAAU,2CAA2C,CAAC;YAEnK;QACF,OAAO;YACLJ,mBAAmBf,UAAU,CAACa,KAAKG,IAAI,CAAC;QAC1C;QAEA,IAAI;YACF,IAAI,CAACD,oBAAoBN,kBAAkB;gBACzCM,mBAAmBN;YACrB;YAEA,IAAIc;YACJ,IAAIR,kBAAkB;gBACpB,MAAMS,YACJ,OAAOT,qBAAqB,aACxBA,iBAAiB;oBACfU,YAAYX;oBACZd;oBACAa;oBACAa,YAAY,CAACC;wBACX,OAAOvB,yBAAyB;4BAC9BJ,YAAY2B,KAAK3B,UAAU,IAAIA;4BAC/BE,eAAeyB,KAAKzB,aAAa,IAAIA;4BACrCC,kBAAkBwB,KAAKxB,gBAAgB,IAAIA;4BAC3CE,OAAOsB,KAAKtB,KAAK;4BACjBG,QAAQmB,KAAKnB,MAAM,IAAI;gCACrB,GAAGK,IAAI;gCACPL;4BACF;wBACF;oBACF;oBACAA;gBACF,KACAO;gBACNQ,YAAYC;YACd,OAAO;gBACLD,0BAAY,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/features/converters/lexicalToJSX/converter/index.tsx"],"sourcesContent":["/* eslint-disable no-console */\nimport type { SerializedEditorState, SerializedLexicalNode } from 'lexical'\n\nimport React from 'react'\n\nimport type { SerializedBlockNode, SerializedInlineBlockNode } from '../../../../nodeTypes.js'\nimport type { JSXConverter, JSXConverters, SerializedLexicalNodeWithParent } from './types.js'\n\nimport { hasText } from '../../../../validate/hasText.js'\n\nexport type ConvertLexicalToJSXArgs = {\n converters: JSXConverters\n data: SerializedEditorState\n disableIndent?: boolean | string[]\n disableTextAlign?: boolean | string[]\n}\n\nexport function convertLexicalToJSX({\n converters,\n data,\n disableIndent,\n disableTextAlign,\n}: ConvertLexicalToJSXArgs): React.ReactNode {\n if (hasText(data)) {\n return convertLexicalNodesToJSX({\n converters,\n disableIndent,\n disableTextAlign,\n nodes: data?.root?.children,\n parent: data?.root,\n })\n }\n return <></>\n}\n\nexport function convertLexicalNodesToJSX({\n converters,\n disableIndent,\n disableTextAlign,\n nodes,\n parent,\n}: {\n converters: JSXConverters\n disableIndent?: boolean | string[]\n disableTextAlign?: boolean | string[]\n nodes: SerializedLexicalNode[]\n parent: SerializedLexicalNodeWithParent\n}): React.ReactNode[] {\n const unknownConverter: JSXConverter<any> = converters.unknown as JSXConverter<any>\n\n const jsxArray: React.ReactNode[] = nodes.map((node, i) => {\n let converterForNode: JSXConverter<any> | undefined\n if (node.type === 'block') {\n converterForNode = converters?.blocks?.[(node as SerializedBlockNode)?.fields?.blockType]\n if (!converterForNode && !unknownConverter) {\n console.error(\n `Lexical => JSX converter: Blocks converter: found ${(node as SerializedBlockNode)?.fields?.blockType} block, but no converter is provided`,\n )\n }\n } else if (node.type === 'inlineBlock') {\n converterForNode =\n converters?.inlineBlocks?.[(node as SerializedInlineBlockNode)?.fields?.blockType]\n if (!converterForNode && !unknownConverter) {\n console.error(\n `Lexical => JSX converter: Inline Blocks converter: found ${(node as SerializedInlineBlockNode)?.fields?.blockType} inline block, but no converter is provided`,\n )\n }\n } else {\n converterForNode = converters[node.type] as JSXConverter<any>\n }\n\n try {\n if (!converterForNode && unknownConverter) {\n converterForNode = unknownConverter\n }\n\n let reactNode: React.ReactNode\n if (converterForNode) {\n const converted =\n typeof converterForNode === 'function'\n ? converterForNode({\n childIndex: i,\n converters,\n node,\n nodesToJSX: (args) => {\n return convertLexicalNodesToJSX({\n converters: args.converters ?? converters,\n disableIndent: args.disableIndent ?? disableIndent,\n disableTextAlign: args.disableTextAlign ?? disableTextAlign,\n nodes: args.nodes,\n parent: args.parent ?? {\n ...node,\n parent,\n },\n })\n },\n parent,\n })\n : converterForNode\n reactNode = converted\n } else {\n reactNode = <span key={i}>unknown node</span>\n }\n\n const style: React.CSSProperties = {}\n\n // Check if disableTextAlign is not true and does not include node type\n if (\n !disableTextAlign &&\n (!Array.isArray(disableTextAlign) || !disableTextAlign?.includes(node.type))\n ) {\n if ('format' in node && node.format) {\n switch (node.format) {\n case 'center':\n style.textAlign = 'center'\n break\n case 'end':\n style.textAlign = 'right'\n break\n case 'justify':\n style.textAlign = 'justify'\n break\n case 'left':\n //style.textAlign = 'left'\n // Do nothing, as left is the default\n break\n case 'right':\n style.textAlign = 'right'\n break\n case 'start':\n style.textAlign = 'left'\n break\n }\n }\n }\n\n if (\n !disableIndent &&\n (!Array.isArray(disableIndent) || !disableIndent?.includes(node.type))\n ) {\n if ('indent' in node && node.indent && node.type !== 'listitem') {\n // the unit should be px. Do not change it to rem, em, or something else.\n // The quantity should be 40px. Do not change it either.\n // See rationale in\n // https://github.com/payloadcms/payload/issues/13130#issuecomment-3058348085\n style.paddingInlineStart = `${Number(node.indent) * 40}px`\n }\n }\n\n if (React.isValidElement(reactNode)) {\n // Inject style into reactNode\n if (style.textAlign || style.paddingInlineStart) {\n const newStyle = {\n ...style,\n // @ts-expect-error type better later\n ...(reactNode?.props?.style ?? {}),\n // reactNode style comes after, thus a textAlign specified in the converter has priority over the one we inject here\n }\n\n return React.cloneElement(reactNode, {\n key: i,\n // @ts-expect-error type better later\n style: newStyle,\n })\n }\n return React.cloneElement(reactNode, {\n key: i,\n })\n }\n\n return reactNode\n } catch (error) {\n console.error('Error converting lexical node to JSX:', error, 'node:', node)\n return null\n }\n })\n\n return jsxArray.filter(Boolean)\n}\n"],"names":["React","hasText","convertLexicalToJSX","converters","data","disableIndent","disableTextAlign","convertLexicalNodesToJSX","nodes","root","children","parent","unknownConverter","unknown","jsxArray","map","node","i","converterForNode","type","blocks","fields","blockType","console","error","inlineBlocks","reactNode","converted","childIndex","nodesToJSX","args","span","style","Array","isArray","includes","format","textAlign","indent","paddingInlineStart","Number","isValidElement","newStyle","props","cloneElement","key","filter","Boolean"],"mappings":";AAAA,6BAA6B,GAG7B,OAAOA,WAAW,QAAO;AAKzB,SAASC,OAAO,QAAQ,kCAAiC;AASzD,OAAO,SAASC,oBAAoB,EAClCC,UAAU,EACVC,IAAI,EACJC,aAAa,EACbC,gBAAgB,EACQ;IACxB,IAAIL,QAAQG,OAAO;QACjB,OAAOG,yBAAyB;YAC9BJ;YACAE;YACAC;YACAE,OAAOJ,MAAMK,MAAMC;YACnBC,QAAQP,MAAMK;QAChB;IACF;IACA,qBAAO;AACT;AAEA,OAAO,SAASF,yBAAyB,EACvCJ,UAAU,EACVE,aAAa,EACbC,gBAAgB,EAChBE,KAAK,EACLG,MAAM,EAOP;IACC,MAAMC,mBAAsCT,WAAWU,OAAO;IAE9D,MAAMC,WAA8BN,MAAMO,GAAG,CAAC,CAACC,MAAMC;QACnD,IAAIC;QACJ,IAAIF,KAAKG,IAAI,KAAK,SAAS;YACzBD,mBAAmBf,YAAYiB,QAAQ,CAAEJ,MAA8BK,QAAQC,UAAU;YACzF,IAAI,CAACJ,oBAAoB,CAACN,kBAAkB;gBAC1CW,QAAQC,KAAK,CACX,CAAC,kDAAkD,EAAGR,MAA8BK,QAAQC,UAAU,oCAAoC,CAAC;YAE/I;QACF,OAAO,IAAIN,KAAKG,IAAI,KAAK,eAAe;YACtCD,mBACEf,YAAYsB,cAAc,CAAET,MAAoCK,QAAQC,UAAU;YACpF,IAAI,CAACJ,oBAAoB,CAACN,kBAAkB;gBAC1CW,QAAQC,KAAK,CACX,CAAC,yDAAyD,EAAGR,MAAoCK,QAAQC,UAAU,2CAA2C,CAAC;YAEnK;QACF,OAAO;YACLJ,mBAAmBf,UAAU,CAACa,KAAKG,IAAI,CAAC;QAC1C;QAEA,IAAI;YACF,IAAI,CAACD,oBAAoBN,kBAAkB;gBACzCM,mBAAmBN;YACrB;YAEA,IAAIc;YACJ,IAAIR,kBAAkB;gBACpB,MAAMS,YACJ,OAAOT,qBAAqB,aACxBA,iBAAiB;oBACfU,YAAYX;oBACZd;oBACAa;oBACAa,YAAY,CAACC;wBACX,OAAOvB,yBAAyB;4BAC9BJ,YAAY2B,KAAK3B,UAAU,IAAIA;4BAC/BE,eAAeyB,KAAKzB,aAAa,IAAIA;4BACrCC,kBAAkBwB,KAAKxB,gBAAgB,IAAIA;4BAC3CE,OAAOsB,KAAKtB,KAAK;4BACjBG,QAAQmB,KAAKnB,MAAM,IAAI;gCACrB,GAAGK,IAAI;gCACPL;4BACF;wBACF;oBACF;oBACAA;gBACF,KACAO;gBACNQ,YAAYC;YACd,OAAO;gBACLD,0BAAY,QAACK;8BAAa;mBAAHd;;;;;YACzB;YAEA,MAAMe,QAA6B,CAAC;YAEpC,uEAAuE;YACvE,IACE,CAAC1B,oBACA,CAAA,CAAC2B,MAAMC,OAAO,CAAC5B,qBAAqB,CAACA,kBAAkB6B,SAASnB,KAAKG,IAAI,CAAA,GAC1E;gBACA,IAAI,YAAYH,QAAQA,KAAKoB,MAAM,EAAE;oBACnC,OAAQpB,KAAKoB,MAAM;wBACjB,KAAK;4BACHJ,MAAMK,SAAS,GAAG;4BAClB;wBACF,KAAK;4BACHL,MAAMK,SAAS,GAAG;4BAClB;wBACF,KAAK;4BACHL,MAAMK,SAAS,GAAG;4BAClB;wBACF,KAAK;4BAGH;wBACF,KAAK;4BACHL,MAAMK,SAAS,GAAG;4BAClB;wBACF,KAAK;4BACHL,MAAMK,SAAS,GAAG;4BAClB;oBACJ;gBACF;YACF;YAEA,IACE,CAAChC,iBACA,CAAA,CAAC4B,MAAMC,OAAO,CAAC7B,kBAAkB,CAACA,eAAe8B,SAASnB,KAAKG,IAAI,CAAA,GACpE;gBACA,IAAI,YAAYH,QAAQA,KAAKsB,MAAM,IAAItB,KAAKG,IAAI,KAAK,YAAY;oBAC/D,yEAAyE;oBACzE,wDAAwD;oBACxD,mBAAmB;oBACnB,6EAA6E;oBAC7Ea,MAAMO,kBAAkB,GAAG,GAAGC,OAAOxB,KAAKsB,MAAM,IAAI,GAAG,EAAE,CAAC;gBAC5D;YACF;YAEA,kBAAItC,MAAMyC,cAAc,CAACf,YAAY;gBACnC,8BAA8B;gBAC9B,IAAIM,MAAMK,SAAS,IAAIL,MAAMO,kBAAkB,EAAE;oBAC/C,MAAMG,WAAW;wBACf,GAAGV,KAAK;wBACR,qCAAqC;wBACrC,GAAIN,WAAWiB,OAAOX,SAAS,CAAC,CAAC;oBAEnC;oBADE,oHAAoH;oBAGtH,qBAAOhC,MAAM4C,YAAY,CAAClB,WAAW;wBACnCmB,KAAK5B;wBACL,qCAAqC;wBACrCe,OAAOU;oBACT;gBACF;gBACA,qBAAO1C,MAAM4C,YAAY,CAAClB,WAAW;oBACnCmB,KAAK5B;gBACP;YACF;YAEA,OAAOS;QACT,EAAE,OAAOF,OAAO;YACdD,QAAQC,KAAK,CAAC,yCAAyCA,OAAO,SAASR;YACvE,OAAO;QACT;IACF;IAEA,OAAOF,SAASgC,MAAM,CAACC;AACzB"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
3
3
|
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
4
4
|
import { useEffect, useState } from 'react';
|
|
5
5
|
// eslint-disable-next-line payload/no-imports-from-exports-dir
|
|
6
6
|
import { defaultJSXConverters, RichText } from '../../../../../exports/react/index.js';
|
|
7
|
+
import './style.scss';
|
|
7
8
|
export function RichTextPlugin() {
|
|
8
9
|
const [editor] = useLexicalComposerContext();
|
|
9
10
|
const [editorState, setEditorState] = useState(editor.getEditorState().toJSON());
|
|
@@ -14,13 +15,21 @@ export function RichTextPlugin() {
|
|
|
14
15
|
}, [
|
|
15
16
|
editor
|
|
16
17
|
]);
|
|
17
|
-
return /*#__PURE__*/
|
|
18
|
+
return /*#__PURE__*/ _jsxDEV("div", {
|
|
18
19
|
className: "debug-jsx-converter",
|
|
19
|
-
children: /*#__PURE__*/
|
|
20
|
+
children: /*#__PURE__*/ _jsxDEV(RichText, {
|
|
20
21
|
converters: defaultJSXConverters,
|
|
21
22
|
data: editorState
|
|
22
|
-
}
|
|
23
|
-
|
|
23
|
+
}, void 0, false, {
|
|
24
|
+
fileName: "src/features/debug/jsxConverter/client/plugin/index.tsx",
|
|
25
|
+
lineNumber: 22,
|
|
26
|
+
columnNumber: 7
|
|
27
|
+
}, this)
|
|
28
|
+
}, void 0, false, {
|
|
29
|
+
fileName: "src/features/debug/jsxConverter/client/plugin/index.tsx",
|
|
30
|
+
lineNumber: 21,
|
|
31
|
+
columnNumber: 5
|
|
32
|
+
}, this);
|
|
24
33
|
}
|
|
25
34
|
|
|
26
35
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/features/debug/jsxConverter/client/plugin/index.tsx"],"sourcesContent":["'use client'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useEffect, useState } from 'react'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport { defaultJSXConverters, RichText } from '../../../../../exports/react/index.js'\nimport './style.scss'\n\nexport function RichTextPlugin() {\n const [editor] = useLexicalComposerContext()\n const [editorState, setEditorState] = useState(editor.getEditorState().toJSON())\n\n useEffect(() => {\n return editor.registerUpdateListener(({ editorState }) => {\n setEditorState(editorState.toJSON())\n })\n }, [editor])\n\n return (\n <div className=\"debug-jsx-converter\">\n <RichText converters={defaultJSXConverters} data={editorState} />\n </div>\n )\n}\n"],"names":["useLexicalComposerContext","useEffect","useState","defaultJSXConverters","RichText","RichTextPlugin","editor","editorState","setEditorState","getEditorState","toJSON","registerUpdateListener","div","className","converters","data"],"mappings":"AAAA;;AAEA,SAASA,yBAAyB,QAAQ,wCAAuC;AACjF,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAE3C,+DAA+D;AAC/D,SAASC,oBAAoB,EAAEC,QAAQ,QAAQ,wCAAuC;
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/features/debug/jsxConverter/client/plugin/index.tsx"],"sourcesContent":["'use client'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useEffect, useState } from 'react'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport { defaultJSXConverters, RichText } from '../../../../../exports/react/index.js'\nimport './style.scss'\n\nexport function RichTextPlugin() {\n const [editor] = useLexicalComposerContext()\n const [editorState, setEditorState] = useState(editor.getEditorState().toJSON())\n\n useEffect(() => {\n return editor.registerUpdateListener(({ editorState }) => {\n setEditorState(editorState.toJSON())\n })\n }, [editor])\n\n return (\n <div className=\"debug-jsx-converter\">\n <RichText converters={defaultJSXConverters} data={editorState} />\n </div>\n )\n}\n"],"names":["useLexicalComposerContext","useEffect","useState","defaultJSXConverters","RichText","RichTextPlugin","editor","editorState","setEditorState","getEditorState","toJSON","registerUpdateListener","div","className","converters","data"],"mappings":"AAAA;;AAEA,SAASA,yBAAyB,QAAQ,wCAAuC;AACjF,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAE3C,+DAA+D;AAC/D,SAASC,oBAAoB,EAAEC,QAAQ,QAAQ,wCAAuC;AACtF,OAAO,eAAc;AAErB,OAAO,SAASC;IACd,MAAM,CAACC,OAAO,GAAGN;IACjB,MAAM,CAACO,aAAaC,eAAe,GAAGN,SAASI,OAAOG,cAAc,GAAGC,MAAM;IAE7ET,UAAU;QACR,OAAOK,OAAOK,sBAAsB,CAAC,CAAC,EAAEJ,WAAW,EAAE;YACnDC,eAAeD,YAAYG,MAAM;QACnC;IACF,GAAG;QAACJ;KAAO;IAEX,qBACE,QAACM;QAAIC,WAAU;kBACb,cAAA,QAACT;YAASU,YAAYX;YAAsBY,MAAMR;;;;;;;;;;;AAGxD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
.debug-jsx-converter {
|
|
2
|
+
// this is to match the editor component, and be able to compare aligned styles
|
|
3
|
+
padding-left: 36px;
|
|
4
|
+
|
|
5
|
+
// We revert to the browser defaults (user-agent), because we want to see
|
|
6
|
+
// the indentations look good without the need for CSS.
|
|
7
|
+
ul,
|
|
8
|
+
ol {
|
|
9
|
+
padding-left: revert;
|
|
10
|
+
margin: revert;
|
|
11
|
+
}
|
|
12
|
+
}
|