@payloadcms/richtext-lexical 3.0.0-alpha.41 → 3.0.0-alpha.43
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/components.js +1 -1
- package/dist/cell/index.js +1 -1
- package/dist/cell/index.js.map +1 -0
- package/dist/exports/components.js +1 -1
- package/dist/exports/components.js.map +1 -0
- package/dist/field/Field.js +1 -1
- package/dist/field/Field.js.map +1 -0
- package/dist/field/features/align/feature.client.js +1 -1
- package/dist/field/features/align/feature.client.js.map +1 -0
- package/dist/field/features/align/feature.server.js +1 -1
- package/dist/field/features/align/feature.server.js.map +1 -0
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +1 -1
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js.map +1 -0
- package/dist/field/features/blockquote/feature.client.js +1 -1
- package/dist/field/features/blockquote/feature.client.js.map +1 -0
- package/dist/field/features/blockquote/feature.server.js +1 -1
- package/dist/field/features/blockquote/feature.server.js.map +1 -0
- package/dist/field/features/blockquote/markdownTransformer.js +1 -1
- package/dist/field/features/blockquote/markdownTransformer.js.map +1 -0
- package/dist/field/features/blocks/component/BlockContent.js +1 -1
- package/dist/field/features/blocks/component/BlockContent.js.map +1 -0
- package/dist/field/features/blocks/component/FormSavePlugin.js +1 -1
- package/dist/field/features/blocks/component/FormSavePlugin.js.map +1 -0
- package/dist/field/features/blocks/component/index.js +1 -1
- package/dist/field/features/blocks/component/index.js.map +1 -0
- package/dist/field/features/blocks/drawer/index.js +1 -1
- package/dist/field/features/blocks/drawer/index.js.map +1 -0
- package/dist/field/features/blocks/feature.client.js +1 -1
- package/dist/field/features/blocks/feature.client.js.map +1 -0
- package/dist/field/features/blocks/feature.server.js +1 -1
- package/dist/field/features/blocks/feature.server.js.map +1 -0
- package/dist/field/features/blocks/nodes/BlocksNode.js +1 -1
- package/dist/field/features/blocks/nodes/BlocksNode.js.map +1 -0
- package/dist/field/features/blocks/plugin/commands.js +1 -1
- package/dist/field/features/blocks/plugin/commands.js.map +1 -0
- package/dist/field/features/blocks/plugin/index.js +1 -1
- package/dist/field/features/blocks/plugin/index.js.map +1 -0
- package/dist/field/features/blocks/populationPromise.js +1 -1
- package/dist/field/features/blocks/populationPromise.js.map +1 -0
- package/dist/field/features/blocks/validate.js +1 -1
- package/dist/field/features/blocks/validate.js.map +1 -0
- package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +1 -1
- package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js.map +1 -0
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +1 -1
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js.map +1 -0
- package/dist/field/features/converters/html/converter/converters/linebreak.js +1 -1
- package/dist/field/features/converters/html/converter/converters/linebreak.js.map +1 -0
- package/dist/field/features/converters/html/converter/converters/paragraph.js +1 -1
- package/dist/field/features/converters/html/converter/converters/paragraph.js.map +1 -0
- package/dist/field/features/converters/html/converter/converters/text.js +1 -1
- package/dist/field/features/converters/html/converter/converters/text.js.map +1 -0
- package/dist/field/features/converters/html/converter/defaultConverters.js +1 -1
- package/dist/field/features/converters/html/converter/defaultConverters.js.map +1 -0
- package/dist/field/features/converters/html/converter/index.js +1 -1
- package/dist/field/features/converters/html/converter/index.js.map +1 -0
- package/dist/field/features/converters/html/converter/types.js +1 -1
- package/dist/field/features/converters/html/converter/types.js.map +1 -0
- package/dist/field/features/converters/html/feature.server.js +1 -1
- package/dist/field/features/converters/html/feature.server.js.map +1 -0
- package/dist/field/features/converters/html/field/index.js +1 -1
- package/dist/field/features/converters/html/field/index.js.map +1 -0
- package/dist/field/features/createClientComponent.js +1 -1
- package/dist/field/features/createClientComponent.js.map +1 -0
- package/dist/field/features/createFeaturePropComponent.js +1 -1
- package/dist/field/features/createFeaturePropComponent.js.map +1 -0
- package/dist/field/features/debug/testrecorder/feature.client.js +1 -1
- package/dist/field/features/debug/testrecorder/feature.client.js.map +1 -0
- package/dist/field/features/debug/testrecorder/feature.server.js +1 -1
- package/dist/field/features/debug/testrecorder/feature.server.js.map +1 -0
- package/dist/field/features/debug/testrecorder/plugin/index.js +1 -1
- package/dist/field/features/debug/testrecorder/plugin/index.js.map +1 -0
- package/dist/field/features/debug/treeview/feature.client.js +1 -1
- package/dist/field/features/debug/treeview/feature.client.js.map +1 -0
- package/dist/field/features/debug/treeview/feature.server.js +1 -1
- package/dist/field/features/debug/treeview/feature.server.js.map +1 -0
- package/dist/field/features/debug/treeview/plugin/index.js +1 -1
- package/dist/field/features/debug/treeview/plugin/index.js.map +1 -0
- package/dist/field/features/format/bold/feature.client.js +1 -1
- package/dist/field/features/format/bold/feature.client.js.map +1 -0
- package/dist/field/features/format/bold/feature.server.js +1 -1
- package/dist/field/features/format/bold/feature.server.js.map +1 -0
- package/dist/field/features/format/bold/markdownTransformers.js +1 -1
- package/dist/field/features/format/bold/markdownTransformers.js.map +1 -0
- package/dist/field/features/format/common/floatingSelectToolbarSection.js +1 -1
- package/dist/field/features/format/common/floatingSelectToolbarSection.js.map +1 -0
- package/dist/field/features/format/inlinecode/feature.client.js +1 -1
- package/dist/field/features/format/inlinecode/feature.client.js.map +1 -0
- package/dist/field/features/format/inlinecode/feature.server.js +1 -1
- package/dist/field/features/format/inlinecode/feature.server.js.map +1 -0
- package/dist/field/features/format/inlinecode/markdownTransformers.js +1 -1
- package/dist/field/features/format/inlinecode/markdownTransformers.js.map +1 -0
- package/dist/field/features/format/italic/feature.client.js +1 -1
- package/dist/field/features/format/italic/feature.client.js.map +1 -0
- package/dist/field/features/format/italic/feature.server.js +1 -1
- package/dist/field/features/format/italic/feature.server.js.map +1 -0
- package/dist/field/features/format/italic/markdownTransformers.js +1 -1
- package/dist/field/features/format/italic/markdownTransformers.js.map +1 -0
- package/dist/field/features/format/strikethrough/feature.client.js +1 -1
- package/dist/field/features/format/strikethrough/feature.client.js.map +1 -0
- package/dist/field/features/format/strikethrough/feature.server.js +1 -1
- package/dist/field/features/format/strikethrough/feature.server.js.map +1 -0
- package/dist/field/features/format/strikethrough/markdownTransformers.js +1 -1
- package/dist/field/features/format/strikethrough/markdownTransformers.js.map +1 -0
- package/dist/field/features/format/subscript/feature.client.js +1 -1
- package/dist/field/features/format/subscript/feature.client.js.map +1 -0
- package/dist/field/features/format/subscript/feature.server.js +1 -1
- package/dist/field/features/format/subscript/feature.server.js.map +1 -0
- package/dist/field/features/format/superscript/feature.client.js +1 -1
- package/dist/field/features/format/superscript/feature.client.js.map +1 -0
- package/dist/field/features/format/superscript/feature.server.js +1 -1
- package/dist/field/features/format/superscript/feature.server.js.map +1 -0
- package/dist/field/features/format/underline/feature.client.js +1 -1
- package/dist/field/features/format/underline/feature.client.js.map +1 -0
- package/dist/field/features/format/underline/feature.server.js +1 -1
- package/dist/field/features/format/underline/feature.server.js.map +1 -0
- package/dist/field/features/heading/feature.client.js +1 -1
- package/dist/field/features/heading/feature.client.js.map +1 -0
- package/dist/field/features/heading/feature.server.js +1 -1
- package/dist/field/features/heading/feature.server.js.map +1 -0
- package/dist/field/features/heading/markdownTransformer.js +1 -1
- package/dist/field/features/heading/markdownTransformer.js.map +1 -0
- package/dist/field/features/indent/feature.client.js +1 -1
- package/dist/field/features/indent/feature.client.js.map +1 -0
- package/dist/field/features/indent/feature.server.js +1 -1
- package/dist/field/features/indent/feature.server.js.map +1 -0
- package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +1 -1
- package/dist/field/features/indent/floatingSelectToolbarIndentSection.js.map +1 -0
- package/dist/field/features/link/drawer/baseFields.js +1 -1
- package/dist/field/features/link/drawer/baseFields.js.map +1 -0
- package/dist/field/features/link/drawer/index.js +1 -1
- package/dist/field/features/link/drawer/index.js.map +1 -0
- package/dist/field/features/link/drawer/types.js +1 -1
- package/dist/field/features/link/drawer/types.js.map +1 -0
- package/dist/field/features/link/feature.client.js +1 -1
- package/dist/field/features/link/feature.client.js.map +1 -0
- package/dist/field/features/link/feature.server.js +1 -1
- package/dist/field/features/link/feature.server.js.map +1 -0
- package/dist/field/features/link/nodes/AutoLinkNode.js +1 -1
- package/dist/field/features/link/nodes/AutoLinkNode.js.map +1 -0
- package/dist/field/features/link/nodes/LinkNode.js +1 -1
- package/dist/field/features/link/nodes/LinkNode.js.map +1 -0
- package/dist/field/features/link/nodes/types.js +1 -1
- package/dist/field/features/link/nodes/types.js.map +1 -0
- package/dist/field/features/link/plugins/autoLink/index.js +1 -1
- package/dist/field/features/link/plugins/autoLink/index.js.map +1 -0
- package/dist/field/features/link/plugins/clickableLink/index.js +1 -1
- package/dist/field/features/link/plugins/clickableLink/index.js.map +1 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js.map +1 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/index.js +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/index.js.map +1 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/types.js +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/types.js.map +1 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js.map +1 -0
- package/dist/field/features/link/plugins/link/index.js +1 -1
- package/dist/field/features/link/plugins/link/index.js.map +1 -0
- package/dist/field/features/link/populationPromise.js +1 -1
- package/dist/field/features/link/populationPromise.js.map +1 -0
- package/dist/field/features/lists/checklist/feature.client.js +1 -1
- package/dist/field/features/lists/checklist/feature.client.js.map +1 -0
- package/dist/field/features/lists/checklist/feature.server.js +1 -1
- package/dist/field/features/lists/checklist/feature.server.js.map +1 -0
- package/dist/field/features/lists/checklist/markdownTransformers.js +1 -1
- package/dist/field/features/lists/checklist/markdownTransformers.js.map +1 -0
- package/dist/field/features/lists/checklist/plugin/index.js +1 -1
- package/dist/field/features/lists/checklist/plugin/index.js.map +1 -0
- package/dist/field/features/lists/common/markdown.js +1 -1
- package/dist/field/features/lists/common/markdown.js.map +1 -0
- package/dist/field/features/lists/htmlConverter.js +1 -1
- package/dist/field/features/lists/htmlConverter.js.map +1 -0
- package/dist/field/features/lists/orderedlist/feature.client.js +1 -1
- package/dist/field/features/lists/orderedlist/feature.client.js.map +1 -0
- package/dist/field/features/lists/orderedlist/feature.server.js +1 -1
- package/dist/field/features/lists/orderedlist/feature.server.js.map +1 -0
- package/dist/field/features/lists/orderedlist/markdownTransformer.js +1 -1
- package/dist/field/features/lists/orderedlist/markdownTransformer.js.map +1 -0
- package/dist/field/features/lists/plugin/index.js +1 -1
- package/dist/field/features/lists/plugin/index.js.map +1 -0
- package/dist/field/features/lists/unorderedlist/feature.client.js +1 -1
- package/dist/field/features/lists/unorderedlist/feature.client.js.map +1 -0
- package/dist/field/features/lists/unorderedlist/feature.server.js +1 -1
- package/dist/field/features/lists/unorderedlist/feature.server.js.map +1 -0
- package/dist/field/features/lists/unorderedlist/markdownTransformer.js +1 -1
- package/dist/field/features/lists/unorderedlist/markdownTransformer.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/types.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/types.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/feature.client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/feature.client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/feature.server.js +1 -1
- package/dist/field/features/migrations/slateToLexical/feature.server.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +1 -1
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -0
- package/dist/field/features/paragraph/feature.client.js +1 -1
- package/dist/field/features/paragraph/feature.client.js.map +1 -0
- package/dist/field/features/paragraph/feature.server.js +1 -1
- package/dist/field/features/paragraph/feature.server.js.map +1 -0
- package/dist/field/features/relationship/drawer/commands.js +1 -1
- package/dist/field/features/relationship/drawer/commands.js.map +1 -0
- package/dist/field/features/relationship/drawer/index.js +1 -1
- package/dist/field/features/relationship/drawer/index.js.map +1 -0
- package/dist/field/features/relationship/feature.client.js +1 -1
- package/dist/field/features/relationship/feature.client.js.map +1 -0
- package/dist/field/features/relationship/feature.server.js +1 -1
- package/dist/field/features/relationship/feature.server.js.map +1 -0
- package/dist/field/features/relationship/nodes/RelationshipNode.js +1 -1
- package/dist/field/features/relationship/nodes/RelationshipNode.js.map +1 -0
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.js +1 -1
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.js.map +1 -0
- package/dist/field/features/relationship/plugins/index.js +1 -1
- package/dist/field/features/relationship/plugins/index.js.map +1 -0
- package/dist/field/features/relationship/populationPromise.js +1 -1
- package/dist/field/features/relationship/populationPromise.js.map +1 -0
- package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.js +1 -1
- package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.js.map +1 -0
- package/dist/field/features/types.js +1 -1
- package/dist/field/features/types.js.map +1 -0
- package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js +1 -1
- package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js.map +1 -0
- package/dist/field/features/upload/component/index.js +1 -1
- package/dist/field/features/upload/component/index.js.map +1 -0
- package/dist/field/features/upload/drawer/commands.js +1 -1
- package/dist/field/features/upload/drawer/commands.js.map +1 -0
- package/dist/field/features/upload/drawer/index.js +1 -1
- package/dist/field/features/upload/drawer/index.js.map +1 -0
- package/dist/field/features/upload/feature.client.js +1 -1
- package/dist/field/features/upload/feature.client.js.map +1 -0
- package/dist/field/features/upload/feature.server.js +1 -1
- package/dist/field/features/upload/feature.server.js.map +1 -0
- package/dist/field/features/upload/nodes/UploadNode.js +1 -1
- package/dist/field/features/upload/nodes/UploadNode.js.map +1 -0
- package/dist/field/features/upload/plugin/index.js +1 -1
- package/dist/field/features/upload/plugin/index.js.map +1 -0
- package/dist/field/features/upload/populationPromise.js +1 -1
- package/dist/field/features/upload/populationPromise.js.map +1 -0
- package/dist/field/features/upload/validate.js +1 -1
- package/dist/field/features/upload/validate.js.map +1 -0
- package/dist/field/index.js +1 -1
- package/dist/field/index.js.map +1 -0
- package/dist/field/lexical/EditorPlugin.js +1 -1
- package/dist/field/lexical/EditorPlugin.js.map +1 -0
- package/dist/field/lexical/LexicalEditor.js +1 -1
- package/dist/field/lexical/LexicalEditor.js.map +1 -0
- package/dist/field/lexical/LexicalProvider.js +1 -1
- package/dist/field/lexical/LexicalProvider.js.map +1 -0
- package/dist/field/lexical/config/client/EditorConfigProvider.js +1 -1
- package/dist/field/lexical/config/client/EditorConfigProvider.js.map +1 -0
- package/dist/field/lexical/config/client/default.js +1 -1
- package/dist/field/lexical/config/client/default.js.map +1 -0
- package/dist/field/lexical/config/client/loader.js +1 -1
- package/dist/field/lexical/config/client/loader.js.map +1 -0
- package/dist/field/lexical/config/client/sanitize.js +1 -1
- package/dist/field/lexical/config/client/sanitize.js.map +1 -0
- package/dist/field/lexical/config/server/default.js +1 -1
- package/dist/field/lexical/config/server/default.js.map +1 -0
- package/dist/field/lexical/config/server/loader.js +1 -1
- package/dist/field/lexical/config/server/loader.js.map +1 -0
- package/dist/field/lexical/config/server/sanitize.js +1 -1
- package/dist/field/lexical/config/server/sanitize.js.map +1 -0
- package/dist/field/lexical/config/types.js +1 -1
- package/dist/field/lexical/config/types.js.map +1 -0
- package/dist/field/lexical/nodes/index.js +1 -1
- package/dist/field/lexical/nodes/index.js.map +1 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js.map +1 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js.map +1 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js.map +1 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js.map +1 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js.map +1 -0
- package/dist/field/lexical/plugins/MarkdownShortcut/index.js +1 -1
- package/dist/field/lexical/plugins/MarkdownShortcut/index.js.map +1 -0
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +1 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -0
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +1 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -0
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +1 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -0
- package/dist/field/lexical/plugins/SlashMenu/index.js +1 -1
- package/dist/field/lexical/plugins/SlashMenu/index.js.map +1 -0
- package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +1 -1
- package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js.map +1 -0
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +1 -1
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -0
- package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.js +1 -1
- package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.js.map +1 -0
- package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +1 -1
- package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js.map +1 -0
- package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.js +1 -1
- package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.js.map +1 -0
- package/dist/field/lexical/plugins/handles/utils/setHandlePosition.js +1 -1
- package/dist/field/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -0
- package/dist/field/lexical/theme/EditorTheme.js +1 -1
- package/dist/field/lexical/theme/EditorTheme.js.map +1 -0
- package/dist/field/lexical/ui/ContentEditable.js +1 -1
- package/dist/field/lexical/ui/ContentEditable.js.map +1 -0
- package/dist/field/lexical/ui/icons/AI/index.js +1 -1
- package/dist/field/lexical/ui/icons/AI/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/AlignCenter/index.js +1 -1
- package/dist/field/lexical/ui/icons/AlignCenter/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/AlignJustify/index.js +1 -1
- package/dist/field/lexical/ui/icons/AlignJustify/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/AlignLeft/index.js +1 -1
- package/dist/field/lexical/ui/icons/AlignLeft/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/AlignRight/index.js +1 -1
- package/dist/field/lexical/ui/icons/AlignRight/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Block/index.js +1 -1
- package/dist/field/lexical/ui/icons/Block/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Blockquote/index.js +1 -1
- package/dist/field/lexical/ui/icons/Blockquote/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Bold/index.js +1 -1
- package/dist/field/lexical/ui/icons/Bold/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Checklist/index.js +1 -1
- package/dist/field/lexical/ui/icons/Checklist/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Code/index.js +1 -1
- package/dist/field/lexical/ui/icons/Code/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/CodeBlock/index.js +1 -1
- package/dist/field/lexical/ui/icons/CodeBlock/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/H1/index.js +1 -1
- package/dist/field/lexical/ui/icons/H1/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/H2/index.js +1 -1
- package/dist/field/lexical/ui/icons/H2/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/H3/index.js +1 -1
- package/dist/field/lexical/ui/icons/H3/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/H4/index.js +1 -1
- package/dist/field/lexical/ui/icons/H4/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/H5/index.js +1 -1
- package/dist/field/lexical/ui/icons/H5/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/H6/index.js +1 -1
- package/dist/field/lexical/ui/icons/H6/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/IndentDecrease/index.js +1 -1
- package/dist/field/lexical/ui/icons/IndentDecrease/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/IndentIncrease/index.js +1 -1
- package/dist/field/lexical/ui/icons/IndentIncrease/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Italic/index.js +1 -1
- package/dist/field/lexical/ui/icons/Italic/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Link/index.js +1 -1
- package/dist/field/lexical/ui/icons/Link/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/OrderedList/index.js +1 -1
- package/dist/field/lexical/ui/icons/OrderedList/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Relationship/index.js +1 -1
- package/dist/field/lexical/ui/icons/Relationship/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Strikethrough/index.js +1 -1
- package/dist/field/lexical/ui/icons/Strikethrough/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Subscript/index.js +1 -1
- package/dist/field/lexical/ui/icons/Subscript/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Superscript/index.js +1 -1
- package/dist/field/lexical/ui/icons/Superscript/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Text/index.js +1 -1
- package/dist/field/lexical/ui/icons/Text/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Underline/index.js +1 -1
- package/dist/field/lexical/ui/icons/Underline/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/UnorderedList/index.js +1 -1
- package/dist/field/lexical/ui/icons/UnorderedList/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Upload/index.js +1 -1
- package/dist/field/lexical/ui/icons/Upload/index.js.map +1 -0
- package/dist/field/lexical/utils/canUseDOM.js +1 -1
- package/dist/field/lexical/utils/canUseDOM.js.map +1 -0
- package/dist/field/lexical/utils/cloneDeep.js +1 -1
- package/dist/field/lexical/utils/cloneDeep.js.map +1 -0
- package/dist/field/lexical/utils/environment.js +1 -1
- package/dist/field/lexical/utils/environment.js.map +1 -0
- package/dist/field/lexical/utils/getDOMRangeRect.js +1 -1
- package/dist/field/lexical/utils/getDOMRangeRect.js.map +1 -0
- package/dist/field/lexical/utils/getSelectedNode.js +1 -1
- package/dist/field/lexical/utils/getSelectedNode.js.map +1 -0
- package/dist/field/lexical/utils/guard.js +1 -1
- package/dist/field/lexical/utils/guard.js.map +1 -0
- package/dist/field/lexical/utils/invariant.js +1 -1
- package/dist/field/lexical/utils/invariant.js.map +1 -0
- package/dist/field/lexical/utils/joinClasses.js +1 -1
- package/dist/field/lexical/utils/joinClasses.js.map +1 -0
- package/dist/field/lexical/utils/markdown/createBlockNode.js +1 -1
- package/dist/field/lexical/utils/markdown/createBlockNode.js.map +1 -0
- package/dist/field/lexical/utils/nodeFormat.js +1 -1
- package/dist/field/lexical/utils/nodeFormat.js.map +1 -0
- package/dist/field/lexical/utils/point.js +1 -1
- package/dist/field/lexical/utils/point.js.map +1 -0
- package/dist/field/lexical/utils/rect.js +1 -1
- package/dist/field/lexical/utils/rect.js.map +1 -0
- package/dist/field/lexical/utils/setFloatingElemPosition.js +1 -1
- package/dist/field/lexical/utils/setFloatingElemPosition.js.map +1 -0
- package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.js +1 -1
- package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.js.map +1 -0
- package/dist/field/lexical/utils/swipe.js +1 -1
- package/dist/field/lexical/utils/swipe.js.map +1 -0
- package/dist/field/lexical/utils/url.js +1 -1
- package/dist/field/lexical/utils/url.js.map +1 -0
- package/dist/generateComponentMap.js +1 -1
- package/dist/generateComponentMap.js.map +1 -0
- package/dist/generateSchemaMap.js +1 -1
- package/dist/generateSchemaMap.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -0
- package/dist/populate/defaultValue.js +1 -1
- package/dist/populate/defaultValue.js.map +1 -0
- package/dist/populate/populate.js +1 -1
- package/dist/populate/populate.js.map +1 -0
- package/dist/populate/recurseNestedFields.js +1 -1
- package/dist/populate/recurseNestedFields.js.map +1 -0
- package/dist/populate/richTextRelationshipPromise.js +1 -1
- package/dist/populate/richTextRelationshipPromise.js.map +1 -0
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -0
- package/dist/useLexicalFeature.js +1 -1
- package/dist/useLexicalFeature.js.map +1 -0
- package/dist/validate/index.js +1 -1
- package/dist/validate/index.js.map +1 -0
- package/dist/validate/validateNodes.js +1 -1
- package/dist/validate/validateNodes.js.map +1 -0
- package/package.json +7 -7
package/components.js
CHANGED
|
@@ -4,4 +4,4 @@ export { defaultEditorLexicalConfig } from './dist/field/lexical/config/client/d
|
|
|
4
4
|
export { ToolbarButton } from './dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js';
|
|
5
5
|
export { ToolbarDropdown } from './dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js';
|
|
6
6
|
|
|
7
|
-
//# sourceMappingURL=
|
|
7
|
+
//# sourceMappingURL=components.js.map
|
package/dist/cell/index.js
CHANGED
|
@@ -127,4 +127,4 @@ export const RichTextCell = (props)=>{
|
|
|
127
127
|
return /*#__PURE__*/ React.createElement("span", null, preview);
|
|
128
128
|
};
|
|
129
129
|
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZWxsL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgRWRpdG9yQ29uZmlnIGFzIExleGljYWxFZGl0b3JDb25maWcgfSBmcm9tICdsZXhpY2FsL0xleGljYWxFZGl0b3IuanMnXG5cbmltcG9ydCB7IGNyZWF0ZUhlYWRsZXNzRWRpdG9yIH0gZnJvbSAnQGxleGljYWwvaGVhZGxlc3MnXG5pbXBvcnQgeyB1c2VUYWJsZUNlbGwgfSBmcm9tICdAcGF5bG9hZGNtcy91aS9lbGVtZW50cydcbmltcG9ydCB7IHVzZUZpZWxkUGF0aCB9IGZyb20gJ0BwYXlsb2FkY21zL3VpL2Zvcm1zJ1xuaW1wb3J0IHsgdXNlQ2xpZW50RnVuY3Rpb25zIH0gZnJvbSAnQHBheWxvYWRjbXMvdWkvcHJvdmlkZXJzJ1xuaW1wb3J0IGxleGljYWxJbXBvcnQgZnJvbSAnbGV4aWNhbCdcbmNvbnN0IHsgJGdldFJvb3QgfSA9IGxleGljYWxJbXBvcnRcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgRmVhdHVyZVByb3ZpZGVyQ2xpZW50IH0gZnJvbSAnLi4vZmllbGQvZmVhdHVyZXMvdHlwZXMuanMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENsaWVudEVkaXRvckNvbmZpZyB9IGZyb20gJy4uL2ZpZWxkL2xleGljYWwvY29uZmlnL3R5cGVzLmpzJ1xuaW1wb3J0IHR5cGUgeyBHZW5lcmF0ZWRGZWF0dXJlUHJvdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi90eXBlcy5qcydcblxuaW1wb3J0IHsgZGVmYXVsdEVkaXRvckxleGljYWxDb25maWcgfSBmcm9tICcuLi9maWVsZC9sZXhpY2FsL2NvbmZpZy9jbGllbnQvZGVmYXVsdC5qcydcbmltcG9ydCB7IGxvYWRDbGllbnRGZWF0dXJlcyB9IGZyb20gJy4uL2ZpZWxkL2xleGljYWwvY29uZmlnL2NsaWVudC9sb2FkZXIuanMnXG5pbXBvcnQgeyBzYW5pdGl6ZUNsaWVudEVkaXRvckNvbmZpZyB9IGZyb20gJy4uL2ZpZWxkL2xleGljYWwvY29uZmlnL2NsaWVudC9zYW5pdGl6ZS5qcydcbmltcG9ydCB7IGdldEVuYWJsZWROb2RlcyB9IGZyb20gJy4uL2ZpZWxkL2xleGljYWwvbm9kZXMvaW5kZXguanMnXG5cbmV4cG9ydCBjb25zdCBSaWNoVGV4dENlbGw6IFJlYWN0LkZDPHtcbiAgbGV4aWNhbEVkaXRvckNvbmZpZzogTGV4aWNhbEVkaXRvckNvbmZpZ1xufT4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBsZXhpY2FsRWRpdG9yQ29uZmlnIH0gPSBwcm9wc1xuXG4gIGNvbnN0IFtwcmV2aWV3LCBzZXRQcmV2aWV3XSA9IFJlYWN0LnVzZVN0YXRlKCdMb2FkaW5nLi4uJylcbiAgY29uc3QgeyBzY2hlbWFQYXRoIH0gPSB1c2VGaWVsZFBhdGgoKVxuXG4gIGNvbnN0IHsgY2VsbERhdGEsIHJpY2hUZXh0Q29tcG9uZW50TWFwIH0gPSB1c2VUYWJsZUNlbGwoKVxuXG4gIGNvbnN0IGNsaWVudEZ1bmN0aW9ucyA9IHVzZUNsaWVudEZ1bmN0aW9ucygpXG4gIGNvbnN0IFtoYXNMb2FkZWRGZWF0dXJlcywgc2V0SGFzTG9hZGVkRmVhdHVyZXNdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgW2ZlYXR1cmVQcm92aWRlcnMsIHNldEZlYXR1cmVQcm92aWRlcnNdID0gdXNlU3RhdGU8RmVhdHVyZVByb3ZpZGVyQ2xpZW50PHVua25vd24+W10+KFtdKVxuXG4gIGNvbnN0IFtmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZywgc2V0RmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWddID1cbiAgICB1c2VTdGF0ZTxTYW5pdGl6ZWRDbGllbnRFZGl0b3JDb25maWc+KG51bGwpXG5cbiAgbGV0IGZlYXR1cmVQcm92aWRlckNvbXBvbmVudHM6IEdlbmVyYXRlZEZlYXR1cmVQcm92aWRlckNvbXBvbmVudFtdID0gcmljaFRleHRDb21wb25lbnRNYXAuZ2V0KFxuICAgICdmZWF0dXJlcycsXG4gICkgYXMgR2VuZXJhdGVkRmVhdHVyZVByb3ZpZGVyQ29tcG9uZW50W10gLy8gVE9ETzogVHlwZSBiZXR0ZXJcbiAgLy8gb3JkZXIgYnkgb3JkZXJcbiAgZmVhdHVyZVByb3ZpZGVyQ29tcG9uZW50cyA9IGZlYXR1cmVQcm92aWRlckNvbXBvbmVudHMuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpXG5cbiAgY29uc3QgZmVhdHVyZUNvbXBvbmVudHNXaXRoRmVhdHVyZXNMZW5ndGggPVxuICAgIEFycmF5LmZyb20ocmljaFRleHRDb21wb25lbnRNYXAua2V5cygpKS5maWx0ZXIoXG4gICAgICAoa2V5KSA9PiBrZXkuc3RhcnRzV2l0aChgZmVhdHVyZS5gKSAmJiAha2V5LmluY2x1ZGVzKCcuZmllbGRzLicpLFxuICAgICkubGVuZ3RoICsgZmVhdHVyZVByb3ZpZGVyQ29tcG9uZW50cy5sZW5ndGhcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaGFzTG9hZGVkRmVhdHVyZXMpIHtcbiAgICAgIGNvbnN0IGZlYXR1cmVQcm92aWRlcnNMb2NhbDogRmVhdHVyZVByb3ZpZGVyQ2xpZW50PHVua25vd24+W10gPSBbXVxuICAgICAgbGV0IGZlYXR1cmVQcm92aWRlcnNBbmRDb21wb25lbnRzTG9hZGVkID0gMFxuXG4gICAgICBPYmplY3QuZW50cmllcyhjbGllbnRGdW5jdGlvbnMpLmZvckVhY2goKFtrZXksIHBsdWdpbl0pID0+IHtcbiAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKGBsZXhpY2FsRmVhdHVyZS4ke3NjaGVtYVBhdGh9LmApKSB7XG4gICAgICAgICAgaWYgKCFrZXkuaW5jbHVkZXMoJy5jb21wb25lbnRzLicpKSB7XG4gICAgICAgICAgICBmZWF0dXJlUHJvdmlkZXJzTG9jYWwucHVzaChwbHVnaW4pXG4gICAgICAgICAgfVxuICAgICAgICAgIGZlYXR1cmVQcm92aWRlcnNBbmRDb21wb25lbnRzTG9hZGVkKytcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgaWYgKGZlYXR1cmVQcm92aWRlcnNBbmRDb21wb25lbnRzTG9hZGVkID09PSBmZWF0dXJlQ29tcG9uZW50c1dpdGhGZWF0dXJlc0xlbmd0aCkge1xuICAgICAgICBzZXRGZWF0dXJlUHJvdmlkZXJzKGZlYXR1cmVQcm92aWRlcnNMb2NhbClcbiAgICAgICAgc2V0SGFzTG9hZGVkRmVhdHVyZXModHJ1ZSlcblxuICAgICAgICAvKipcbiAgICAgICAgICogTG9hZGVkIGZlYXR1cmUgcHJvdmlkZWQgPT4gY3JlYXRlIHRoZSBmaW5hbCBzYW5pdGl6ZWQgZWRpdG9yIGNvbmZpZ1xuICAgICAgICAgKi9cblxuICAgICAgICBjb25zdCByZXNvbHZlZENsaWVudEZlYXR1cmVzID0gbG9hZENsaWVudEZlYXR1cmVzKHtcbiAgICAgICAgICBjbGllbnRGdW5jdGlvbnMsXG4gICAgICAgICAgc2NoZW1hUGF0aCxcbiAgICAgICAgICB1blNhbml0aXplZEVkaXRvckNvbmZpZzoge1xuICAgICAgICAgICAgZmVhdHVyZXM6IGZlYXR1cmVQcm92aWRlcnNMb2NhbCxcbiAgICAgICAgICAgIGxleGljYWw6IGxleGljYWxFZGl0b3JDb25maWcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcblxuICAgICAgICBzZXRGaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZyhcbiAgICAgICAgICBzYW5pdGl6ZUNsaWVudEVkaXRvckNvbmZpZyhcbiAgICAgICAgICAgIGxleGljYWxFZGl0b3JDb25maWcgPyBsZXhpY2FsRWRpdG9yQ29uZmlnIDogZGVmYXVsdEVkaXRvckxleGljYWxDb25maWcsXG4gICAgICAgICAgICByZXNvbHZlZENsaWVudEZlYXR1cmVzLFxuICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtcbiAgICBoYXNMb2FkZWRGZWF0dXJlcyxcbiAgICBjbGllbnRGdW5jdGlvbnMsXG4gICAgc2NoZW1hUGF0aCxcbiAgICBmZWF0dXJlUHJvdmlkZXJDb21wb25lbnRzLmxlbmd0aCxcbiAgICBmZWF0dXJlUHJvdmlkZXJzLFxuICAgIGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnLFxuICAgIGxleGljYWxFZGl0b3JDb25maWcsXG4gICAgZmVhdHVyZUNvbXBvbmVudHNXaXRoRmVhdHVyZXNMZW5ndGgsXG4gIF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgZGF0YVRvVXNlID0gY2VsbERhdGFcbiAgICBpZiAoZGF0YVRvVXNlID09IG51bGwgfHwgIWhhc0xvYWRlZEZlYXR1cmVzIHx8ICFmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZykge1xuICAgICAgc2V0UHJldmlldygnJylcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIFRyYW5zZm9ybSBkYXRhIHRocm91Z2ggbG9hZCBob29rc1xuICAgIGlmIChmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZz8uZmVhdHVyZXM/Lmhvb2tzPy5sb2FkPy5sZW5ndGgpIHtcbiAgICAgIGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnLmZlYXR1cmVzLmhvb2tzLmxvYWQuZm9yRWFjaCgoaG9vaykgPT4ge1xuICAgICAgICBkYXRhVG9Vc2UgPSBob29rKHsgaW5jb21pbmdFZGl0b3JTdGF0ZTogZGF0YVRvVXNlIH0pXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmICghZGF0YVRvVXNlIHx8IHR5cGVvZiBkYXRhVG9Vc2UgIT09ICdvYmplY3QnKSB7XG4gICAgICBzZXRQcmV2aWV3KCcnKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gSWYgZGF0YSBpcyBmcm9tIFNsYXRlIGFuZCBub3QgTGV4aWNhbFxuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGFUb1VzZSkgJiYgISgncm9vdCcgaW4gZGF0YVRvVXNlKSkge1xuICAgICAgc2V0UHJldmlldygnJylcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIElmIGRhdGEgaXMgZnJvbSBwYXlsb2FkLXBsdWdpbi1sZXhpY2FsXG4gICAgaWYgKCdqc29uQ29udGVudCcgaW4gZGF0YVRvVXNlKSB7XG4gICAgICBzZXRQcmV2aWV3KCcnKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gaW5pdGlhbGl6ZSBoZWFkbGVzcyBlZGl0b3JcbiAgICBjb25zdCBoZWFkbGVzc0VkaXRvciA9IGNyZWF0ZUhlYWRsZXNzRWRpdG9yKHtcbiAgICAgIG5hbWVzcGFjZTogZmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWcubGV4aWNhbC5uYW1lc3BhY2UsXG4gICAgICBub2RlczogZ2V0RW5hYmxlZE5vZGVzKHsgZWRpdG9yQ29uZmlnOiBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZyB9KSxcbiAgICAgIHRoZW1lOiBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZy5sZXhpY2FsLnRoZW1lLFxuICAgIH0pXG4gICAgaGVhZGxlc3NFZGl0b3Iuc2V0RWRpdG9yU3RhdGUoaGVhZGxlc3NFZGl0b3IucGFyc2VFZGl0b3JTdGF0ZShkYXRhVG9Vc2UpKVxuXG4gICAgY29uc3QgdGV4dENvbnRlbnQgPVxuICAgICAgaGVhZGxlc3NFZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuICRnZXRSb290KCkuZ2V0VGV4dENvbnRlbnQoKVxuICAgICAgfSkgfHwgJydcblxuICAgIC8vIExpbWl0aW5nIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBzaG93biBpcyBkb25lIGluIGEgQ1NTIHJ1bGVcbiAgICBzZXRQcmV2aWV3KHRleHRDb250ZW50KVxuICB9LCBbY2VsbERhdGEsIGxleGljYWxFZGl0b3JDb25maWcsIGhhc0xvYWRlZEZlYXR1cmVzLCBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZ10pXG5cbiAgaWYgKCFoYXNMb2FkZWRGZWF0dXJlcykge1xuICAgIHJldHVybiAoXG4gICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgIHtBcnJheS5pc0FycmF5KGZlYXR1cmVQcm92aWRlckNvbXBvbmVudHMpICYmXG4gICAgICAgICAgZmVhdHVyZVByb3ZpZGVyQ29tcG9uZW50cy5tYXAoKGZlYXR1cmVQcm92aWRlcikgPT4ge1xuICAgICAgICAgICAgLy8gZ2V0IGFsbCBjb21wb25lbnRzIHN0YXJ0aW5nIHdpdGgga2V5IGZlYXR1cmUuJHtGZWF0dXJlUHJvdmlkZXIua2V5fS5jb21wb25lbnRzLntmZWF0dXJlQ29tcG9uZW50S2V5fVxuICAgICAgICAgICAgY29uc3QgZmVhdHVyZUNvbXBvbmVudEtleXMgPSBBcnJheS5mcm9tKHJpY2hUZXh0Q29tcG9uZW50TWFwLmtleXMoKSkuZmlsdGVyKChrZXkpID0+XG4gICAgICAgICAgICAgIGtleS5zdGFydHNXaXRoKGBmZWF0dXJlLiR7ZmVhdHVyZVByb3ZpZGVyLmtleX0uY29tcG9uZW50cy5gKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVDb21wb25lbnRzOiBSZWFjdC5SZWFjdE5vZGVbXSA9IGZlYXR1cmVDb21wb25lbnRLZXlzLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiByaWNoVGV4dENvbXBvbmVudE1hcC5nZXQoa2V5KVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPFJlYWN0LkZyYWdtZW50IGtleT17ZmVhdHVyZVByb3ZpZGVyLmtleX0+XG4gICAgICAgICAgICAgICAge2ZlYXR1cmVDb21wb25lbnRzPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgID8gZmVhdHVyZUNvbXBvbmVudHMubWFwKChGZWF0dXJlQ29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZlYXR1cmVDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7ZmVhdHVyZVByb3ZpZGVyLkNsaWVudENvbXBvbmVudH1cbiAgICAgICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KX1cbiAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIDxzcGFuPntwcmV2aWV3fTwvc3Bhbj5cbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVIZWFkbGVzc0VkaXRvciIsInVzZVRhYmxlQ2VsbCIsInVzZUZpZWxkUGF0aCIsInVzZUNsaWVudEZ1bmN0aW9ucyIsImxleGljYWxJbXBvcnQiLCIkZ2V0Um9vdCIsIlJlYWN0IiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJkZWZhdWx0RWRpdG9yTGV4aWNhbENvbmZpZyIsImxvYWRDbGllbnRGZWF0dXJlcyIsInNhbml0aXplQ2xpZW50RWRpdG9yQ29uZmlnIiwiZ2V0RW5hYmxlZE5vZGVzIiwiUmljaFRleHRDZWxsIiwicHJvcHMiLCJsZXhpY2FsRWRpdG9yQ29uZmlnIiwicHJldmlldyIsInNldFByZXZpZXciLCJzY2hlbWFQYXRoIiwiY2VsbERhdGEiLCJyaWNoVGV4dENvbXBvbmVudE1hcCIsImNsaWVudEZ1bmN0aW9ucyIsImhhc0xvYWRlZEZlYXR1cmVzIiwic2V0SGFzTG9hZGVkRmVhdHVyZXMiLCJmZWF0dXJlUHJvdmlkZXJzIiwic2V0RmVhdHVyZVByb3ZpZGVycyIsImZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnIiwic2V0RmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWciLCJmZWF0dXJlUHJvdmlkZXJDb21wb25lbnRzIiwiZ2V0Iiwic29ydCIsImEiLCJiIiwib3JkZXIiLCJmZWF0dXJlQ29tcG9uZW50c1dpdGhGZWF0dXJlc0xlbmd0aCIsIkFycmF5IiwiZnJvbSIsImtleXMiLCJmaWx0ZXIiLCJrZXkiLCJzdGFydHNXaXRoIiwiaW5jbHVkZXMiLCJsZW5ndGgiLCJmZWF0dXJlUHJvdmlkZXJzTG9jYWwiLCJmZWF0dXJlUHJvdmlkZXJzQW5kQ29tcG9uZW50c0xvYWRlZCIsIk9iamVjdCIsImVudHJpZXMiLCJmb3JFYWNoIiwicGx1Z2luIiwicHVzaCIsInJlc29sdmVkQ2xpZW50RmVhdHVyZXMiLCJ1blNhbml0aXplZEVkaXRvckNvbmZpZyIsImZlYXR1cmVzIiwibGV4aWNhbCIsImRhdGFUb1VzZSIsImhvb2tzIiwibG9hZCIsImhvb2siLCJpbmNvbWluZ0VkaXRvclN0YXRlIiwiaXNBcnJheSIsImhlYWRsZXNzRWRpdG9yIiwibmFtZXNwYWNlIiwibm9kZXMiLCJlZGl0b3JDb25maWciLCJ0aGVtZSIsInNldEVkaXRvclN0YXRlIiwicGFyc2VFZGl0b3JTdGF0ZSIsInRleHRDb250ZW50IiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiZ2V0VGV4dENvbnRlbnQiLCJGcmFnbWVudCIsIm1hcCIsImZlYXR1cmVQcm92aWRlciIsImZlYXR1cmVDb21wb25lbnRLZXlzIiwiZmVhdHVyZUNvbXBvbmVudHMiLCJGZWF0dXJlQ29tcG9uZW50IiwiQ2xpZW50Q29tcG9uZW50Iiwic3BhbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFHQSxTQUFTQSxvQkFBb0IsUUFBUSxvQkFBbUI7QUFDeEQsU0FBU0MsWUFBWSxRQUFRLDBCQUF5QjtBQUN0RCxTQUFTQyxZQUFZLFFBQVEsdUJBQXNCO0FBQ25ELFNBQVNDLGtCQUFrQixRQUFRLDJCQUEwQjtBQUM3RCxPQUFPQyxtQkFBbUIsVUFBUztBQUNuQyxNQUFNLEVBQUVDLFFBQVEsRUFBRSxHQUFHRDtBQUNyQixPQUFPRSxTQUFTQyxTQUFTLEVBQUVDLFFBQVEsUUFBUSxRQUFPO0FBTWxELFNBQVNDLDBCQUEwQixRQUFRLDRDQUEyQztBQUN0RixTQUFTQyxrQkFBa0IsUUFBUSwyQ0FBMEM7QUFDN0UsU0FBU0MsMEJBQTBCLFFBQVEsNkNBQTRDO0FBQ3ZGLFNBQVNDLGVBQWUsUUFBUSxrQ0FBaUM7QUFFakUsT0FBTyxNQUFNQyxlQUVSLENBQUNDO0lBQ0osTUFBTSxFQUFFQyxtQkFBbUIsRUFBRSxHQUFHRDtJQUVoQyxNQUFNLENBQUNFLFNBQVNDLFdB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
|
|
130
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/cell/index.tsx"],"sourcesContent":["'use client'\nimport type { EditorConfig as LexicalEditorConfig } from 'lexical/LexicalEditor.js'\n\nimport { createHeadlessEditor } from '@lexical/headless'\nimport { useTableCell } from '@payloadcms/ui/elements'\nimport { useFieldPath } from '@payloadcms/ui/forms'\nimport { useClientFunctions } from '@payloadcms/ui/providers'\nimport lexicalImport from 'lexical'\nconst { $getRoot } = lexicalImport\nimport React, { useEffect, useState } from 'react'\n\nimport type { FeatureProviderClient } from '../field/features/types.js'\nimport type { SanitizedClientEditorConfig } from '../field/lexical/config/types.js'\nimport type { GeneratedFeatureProviderComponent } from '../types.js'\n\nimport { defaultEditorLexicalConfig } from '../field/lexical/config/client/default.js'\nimport { loadClientFeatures } from '../field/lexical/config/client/loader.js'\nimport { sanitizeClientEditorConfig } from '../field/lexical/config/client/sanitize.js'\nimport { getEnabledNodes } from '../field/lexical/nodes/index.js'\n\nexport const RichTextCell: React.FC<{\n lexicalEditorConfig: LexicalEditorConfig\n}> = (props) => {\n const { lexicalEditorConfig } = props\n\n const [preview, setPreview] = React.useState('Loading...')\n const { schemaPath } = useFieldPath()\n\n const { cellData, richTextComponentMap } = useTableCell()\n\n const clientFunctions = useClientFunctions()\n const [hasLoadedFeatures, setHasLoadedFeatures] = useState(false)\n\n const [featureProviders, setFeatureProviders] = useState<FeatureProviderClient<unknown>[]>([])\n\n const [finalSanitizedEditorConfig, setFinalSanitizedEditorConfig] =\n useState<SanitizedClientEditorConfig>(null)\n\n let featureProviderComponents: GeneratedFeatureProviderComponent[] = richTextComponentMap.get(\n 'features',\n ) as GeneratedFeatureProviderComponent[] // TODO: Type better\n // order by order\n featureProviderComponents = featureProviderComponents.sort((a, b) => a.order - b.order)\n\n const featureComponentsWithFeaturesLength =\n Array.from(richTextComponentMap.keys()).filter(\n (key) => key.startsWith(`feature.`) && !key.includes('.fields.'),\n ).length + featureProviderComponents.length\n\n useEffect(() => {\n if (!hasLoadedFeatures) {\n const featureProvidersLocal: FeatureProviderClient<unknown>[] = []\n let featureProvidersAndComponentsLoaded = 0\n\n Object.entries(clientFunctions).forEach(([key, plugin]) => {\n if (key.startsWith(`lexicalFeature.${schemaPath}.`)) {\n if (!key.includes('.components.')) {\n featureProvidersLocal.push(plugin)\n }\n featureProvidersAndComponentsLoaded++\n }\n })\n\n if (featureProvidersAndComponentsLoaded === featureComponentsWithFeaturesLength) {\n setFeatureProviders(featureProvidersLocal)\n setHasLoadedFeatures(true)\n\n /**\n * Loaded feature provided => create the final sanitized editor config\n */\n\n const resolvedClientFeatures = loadClientFeatures({\n clientFunctions,\n schemaPath,\n unSanitizedEditorConfig: {\n features: featureProvidersLocal,\n lexical: lexicalEditorConfig,\n },\n })\n\n setFinalSanitizedEditorConfig(\n sanitizeClientEditorConfig(\n lexicalEditorConfig ? lexicalEditorConfig : defaultEditorLexicalConfig,\n resolvedClientFeatures,\n ),\n )\n }\n }\n }, [\n hasLoadedFeatures,\n clientFunctions,\n schemaPath,\n featureProviderComponents.length,\n featureProviders,\n finalSanitizedEditorConfig,\n lexicalEditorConfig,\n featureComponentsWithFeaturesLength,\n ])\n\n useEffect(() => {\n let dataToUse = cellData\n if (dataToUse == null || !hasLoadedFeatures || !finalSanitizedEditorConfig) {\n setPreview('')\n return\n }\n\n // Transform data through load hooks\n if (finalSanitizedEditorConfig?.features?.hooks?.load?.length) {\n finalSanitizedEditorConfig.features.hooks.load.forEach((hook) => {\n dataToUse = hook({ incomingEditorState: dataToUse })\n })\n }\n\n if (!dataToUse || typeof dataToUse !== 'object') {\n setPreview('')\n return\n }\n\n // If data is from Slate and not Lexical\n if (Array.isArray(dataToUse) && !('root' in dataToUse)) {\n setPreview('')\n return\n }\n\n // If data is from payload-plugin-lexical\n if ('jsonContent' in dataToUse) {\n setPreview('')\n return\n }\n\n // initialize headless editor\n const headlessEditor = createHeadlessEditor({\n namespace: finalSanitizedEditorConfig.lexical.namespace,\n nodes: getEnabledNodes({ editorConfig: finalSanitizedEditorConfig }),\n theme: finalSanitizedEditorConfig.lexical.theme,\n })\n headlessEditor.setEditorState(headlessEditor.parseEditorState(dataToUse))\n\n const textContent =\n headlessEditor.getEditorState().read(() => {\n return $getRoot().getTextContent()\n }) || ''\n\n // Limiting the number of characters shown is done in a CSS rule\n setPreview(textContent)\n }, [cellData, lexicalEditorConfig, hasLoadedFeatures, finalSanitizedEditorConfig])\n\n if (!hasLoadedFeatures) {\n return (\n <React.Fragment>\n {Array.isArray(featureProviderComponents) &&\n featureProviderComponents.map((featureProvider) => {\n // get all components starting with key feature.${FeatureProvider.key}.components.{featureComponentKey}\n const featureComponentKeys = Array.from(richTextComponentMap.keys()).filter((key) =>\n key.startsWith(`feature.${featureProvider.key}.components.`),\n )\n const featureComponents: React.ReactNode[] = featureComponentKeys.map((key) => {\n return richTextComponentMap.get(key)\n })\n\n return (\n <React.Fragment key={featureProvider.key}>\n {featureComponents?.length\n ? featureComponents.map((FeatureComponent) => {\n return FeatureComponent\n })\n : null}\n {featureProvider.ClientComponent}\n </React.Fragment>\n )\n })}\n </React.Fragment>\n )\n }\n\n return <span>{preview}</span>\n}\n"],"names":["createHeadlessEditor","useTableCell","useFieldPath","useClientFunctions","lexicalImport","$getRoot","React","useEffect","useState","defaultEditorLexicalConfig","loadClientFeatures","sanitizeClientEditorConfig","getEnabledNodes","RichTextCell","props","lexicalEditorConfig","preview","setPreview","schemaPath","cellData","richTextComponentMap","clientFunctions","hasLoadedFeatures","setHasLoadedFeatures","featureProviders","setFeatureProviders","finalSanitizedEditorConfig","setFinalSanitizedEditorConfig","featureProviderComponents","get","sort","a","b","order","featureComponentsWithFeaturesLength","Array","from","keys","filter","key","startsWith","includes","length","featureProvidersLocal","featureProvidersAndComponentsLoaded","Object","entries","forEach","plugin","push","resolvedClientFeatures","unSanitizedEditorConfig","features","lexical","dataToUse","hooks","load","hook","incomingEditorState","isArray","headlessEditor","namespace","nodes","editorConfig","theme","setEditorState","parseEditorState","textContent","getEditorState","read","getTextContent","Fragment","map","featureProvider","featureComponentKeys","featureComponents","FeatureComponent","ClientComponent","span"],"mappings":"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"}
|
|
@@ -4,4 +4,4 @@ export { defaultEditorLexicalConfig } from '../field/lexical/config/client/defau
|
|
|
4
4
|
export { ToolbarButton } from '../field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js';
|
|
5
5
|
export { ToolbarDropdown } from '../field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js';
|
|
6
6
|
|
|
7
|
-
//# sourceMappingURL=
|
|
7
|
+
//# sourceMappingURL=components.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/exports/components.ts"],"sourcesContent":["export { RichTextCell } from '../cell/index.js'\nexport { RichTextField } from '../field/index.js'\n\nexport { defaultEditorLexicalConfig } from '../field/lexical/config/client/default.js'\nexport { ToolbarButton } from '../field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js'\nexport { ToolbarDropdown } from '../field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js'\n"],"names":["RichTextCell","RichTextField","defaultEditorLexicalConfig","ToolbarButton","ToolbarDropdown"],"mappings":"AAAA,SAASA,YAAY,QAAQ,mBAAkB;AAC/C,SAASC,aAAa,QAAQ,oBAAmB;AAEjD,SAASC,0BAA0B,QAAQ,4CAA2C;AACtF,SAASC,aAAa,QAAQ,wEAAuE;AACrG,SAASC,eAAe,QAAQ,0EAAyE"}
|
package/dist/field/Field.js
CHANGED
|
@@ -82,4 +82,4 @@ function fallbackRender({ error }) {
|
|
|
82
82
|
}, error.message));
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
//# sourceMappingURL=
|
|
85
|
+
//# sourceMappingURL=Field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/field/Field.tsx"],"sourcesContent":["'use client'\nimport type { SerializedEditorState } from 'lexical'\n\nimport { type FormFieldBase, useField } from '@payloadcms/ui'\nimport React, { useCallback } from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\n\nimport type { SanitizedClientEditorConfig } from './lexical/config/types.js'\n\nimport './index.scss'\nimport { LexicalProvider } from './lexical/LexicalProvider.js'\n\nconst baseClass = 'rich-text-lexical'\n\nexport const RichText: React.FC<\n FormFieldBase & {\n editorConfig: SanitizedClientEditorConfig // With rendered features n stuff\n name: string\n richTextComponentMap: Map<string, React.ReactNode>\n }\n> = (props) => {\n const {\n name,\n Description,\n Error,\n Label,\n className,\n editorConfig,\n path: pathFromProps,\n readOnly,\n required,\n style,\n validate, // Users can pass in client side validation if they WANT to, but it's not required anymore\n width,\n } = props\n\n const memoizedValidate = useCallback(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n return validate(value, { ...validationOptions, props, required })\n }\n },\n // Important: do not add props to the dependencies array.\n // This would cause an infinite loop and endless re-rendering.\n // Removing props from the dependencies array fixed this issue: https://github.com/payloadcms/payload/issues/3709\n [validate, required],\n )\n\n const fieldType = useField<SerializedEditorState>({\n path: pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const { errorMessage, initialValue, path, schemaPath, setValue, showError, value } = fieldType\n\n const classes = [\n baseClass,\n 'field-type',\n className,\n showError && 'error',\n readOnly && `${baseClass}--read-only`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div\n className={classes}\n key={path}\n style={{\n ...style,\n width,\n }}\n >\n <div className={`${baseClass}__wrap`}>\n {Error}\n {Label}\n <ErrorBoundary fallbackRender={fallbackRender} onReset={() => {}}>\n <LexicalProvider\n editorConfig={editorConfig}\n fieldProps={props}\n key={JSON.stringify({ initialValue, path })} // makes sure lexical is completely re-rendered when initialValue changes, bypassing the lexical-internal value memoization. That way, external changes to the form will update the editor. More infos in PR description (https://github.com/payloadcms/payload/pull/5010)\n onChange={(editorState) => {\n let serializedEditorState = editorState.toJSON()\n\n // Transform state through save hooks\n if (editorConfig?.features?.hooks?.save?.length) {\n editorConfig.features.hooks.save.forEach((hook) => {\n serializedEditorState = hook({ incomingEditorState: serializedEditorState })\n })\n }\n\n setValue(serializedEditorState)\n }}\n path={path}\n readOnly={readOnly}\n value={value}\n />\n </ErrorBoundary>\n {Description}\n </div>\n </div>\n )\n}\n\nfunction fallbackRender({ error }): React.ReactElement {\n // Call resetErrorBoundary() to reset the error boundary and retry the render.\n\n return (\n <div className=\"errorBoundary\" role=\"alert\">\n <p>Something went wrong:</p>\n <pre style={{ color: 'red' }}>{error.message}</pre>\n </div>\n )\n}\n"],"names":["useField","React","useCallback","ErrorBoundary","LexicalProvider","baseClass","RichText","props","name","Description","Error","Label","className","editorConfig","path","pathFromProps","readOnly","required","style","validate","width","memoizedValidate","value","validationOptions","fieldType","errorMessage","initialValue","schemaPath","setValue","showError","classes","filter","Boolean","join","div","key","fallbackRender","onReset","fieldProps","JSON","stringify","onChange","editorState","serializedEditorState","toJSON","features","hooks","save","length","forEach","hook","incomingEditorState","error","role","p","pre","color","message"],"mappings":"AAAA;AAGA,SAA6BA,QAAQ,QAAQ,iBAAgB;AAC7D,OAAOC,SAASC,WAAW,QAAQ,QAAO;AAC1C,SAASC,aAAa,QAAQ,uBAAsB;AAIpD,OAAO,eAAc;AACrB,SAASC,eAAe,QAAQ,+BAA8B;AAE9D,MAAMC,YAAY;AAElB,OAAO,MAAMC,WAMT,CAACC;IACH,MAAM,EACJC,IAAI,EACJC,WAAW,EACXC,KAAK,EACLC,KAAK,EACLC,SAAS,EACTC,YAAY,EACZC,MAAMC,aAAa,EACnBC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,KAAK,EACN,GAAGb;IAEJ,MAAMc,mBAAmBnB,YACvB,CAACoB,OAAOC;QACN,IAAI,OAAOJ,aAAa,YAAY;YAClC,OAAOA,SAASG,OAAO;gBAAE,GAAGC,iBAAiB;gBAAEhB;gBAAOU;YAAS;QACjE;IACF,GACA,yDAAyD;IACzD,8DAA8D;IAC9D,iHAAiH;IACjH;QAACE;QAAUF;KAAS;IAGtB,MAAMO,YAAYxB,SAAgC;QAChDc,MAAMC,iBAAiBP;QACvBW,UAAUE;IACZ;IAEA,MAAM,EAAEI,YAAY,EAAEC,YAAY,EAAEZ,IAAI,EAAEa,UAAU,EAAEC,QAAQ,EAAEC,SAAS,EAAEP,KAAK,EAAE,GAAGE;IAErF,MAAMM,UAAU;QACdzB;QACA;QACAO;QACAiB,aAAa;QACbb,YAAY,CAAC,EAAEX,UAAU,WAAW,CAAC;KACtC,CACE0B,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,qBACE,oBAACC;QACCtB,WAAWkB;QACXK,KAAKrB;QACLI,OAAO;YACL,GAAGA,KAAK;YACRE;QACF;qBAEA,oBAACc;QAAItB,WAAW,CAAC,EAAEP,UAAU,MAAM,CAAC;OACjCK,OACAC,qBACD,oBAACR;QAAciC,gBAAgBA;QAAgBC,SAAS,KAAO;qBAC7D,oBAACjC;QACCS,cAAcA;QACdyB,YAAY/B;QACZ4B,KAAKI,KAAKC,SAAS,CAAC;YAAEd;YAAcZ;QAAK;QACzC2B,UAAU,CAACC;YACT,IAAIC,wBAAwBD,YAAYE,MAAM;YAE9C,qCAAqC;YACrC,IAAI/B,cAAcgC,UAAUC,OAAOC,MAAMC,QAAQ;gBAC/CnC,aAAagC,QAAQ,CAACC,KAAK,CAACC,IAAI,CAACE,OAAO,CAAC,CAACC;oBACxCP,wBAAwBO,KAAK;wBAAEC,qBAAqBR;oBAAsB;gBAC5E;YACF;YAEAf,SAASe;QACX;QACA7B,MAAMA;QACNE,UAAUA;QACVM,OAAOA;SAGVb;AAIT,EAAC;AAED,SAAS2B,eAAe,EAAEgB,KAAK,EAAE;IAC/B,8EAA8E;IAE9E,qBACE,oBAAClB;QAAItB,WAAU;QAAgByC,MAAK;qBAClC,oBAACC,WAAE,wCACH,oBAACC;QAAIrC,OAAO;YAAEsC,OAAO;QAAM;OAAIJ,MAAMK,OAAO;AAGlD"}
|
|
@@ -69,4 +69,4 @@ const AlignFeatureClient = (props)=>{
|
|
|
69
69
|
};
|
|
70
70
|
export const AlignFeatureClientComponent = createClientComponent(AlignFeatureClient);
|
|
71
71
|
|
|
72
|
-
//# sourceMappingURL=
|
|
72
|
+
//# sourceMappingURL=feature.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/features/align/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport lexicalImport from 'lexical'\nconst { FORMAT_ELEMENT_COMMAND } = lexicalImport\n\nimport type { FeatureProviderProviderClient } from '../types.js'\n\nimport { AlignCenterIcon } from '../../lexical/ui/icons/AlignCenter/index.js'\nimport { AlignJustifyIcon } from '../../lexical/ui/icons/AlignJustify/index.js'\nimport { AlignLeftIcon } from '../../lexical/ui/icons/AlignLeft/index.js'\nimport { AlignRightIcon } from '../../lexical/ui/icons/AlignRight/index.js'\nimport { createClientComponent } from '../createClientComponent.js'\nimport { AlignDropdownSectionWithEntries } from './floatingSelectToolbarAlignDropdownSection.js'\n\nconst AlignFeatureClient: FeatureProviderProviderClient<undefined> = (props) => {\n return {\n clientFeatureProps: props,\n feature: () => ({\n clientFeatureProps: props,\n floatingSelectToolbar: {\n sections: [\n AlignDropdownSectionWithEntries([\n {\n ChildComponent: AlignLeftIcon,\n isActive: () => false,\n key: 'align-left',\n label: `Align Left`,\n onClick: ({ editor }) => {\n editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'left')\n },\n order: 1,\n },\n ]),\n AlignDropdownSectionWithEntries([\n {\n ChildComponent: AlignCenterIcon,\n isActive: () => false,\n key: 'align-center',\n label: `Align Center`,\n onClick: ({ editor }) => {\n editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'center')\n },\n order: 2,\n },\n ]),\n AlignDropdownSectionWithEntries([\n {\n ChildComponent: AlignRightIcon,\n isActive: () => false,\n key: 'align-right',\n label: `Align Right`,\n onClick: ({ editor }) => {\n editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'right')\n },\n order: 3,\n },\n ]),\n AlignDropdownSectionWithEntries([\n {\n ChildComponent: AlignJustifyIcon,\n isActive: () => false,\n key: 'align-justify',\n label: `Align Justify`,\n onClick: ({ editor }) => {\n editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'justify')\n },\n order: 4,\n },\n ]),\n ],\n },\n }),\n }\n}\n\nexport const AlignFeatureClientComponent = createClientComponent(AlignFeatureClient)\n"],"names":["lexicalImport","FORMAT_ELEMENT_COMMAND","AlignCenterIcon","AlignJustifyIcon","AlignLeftIcon","AlignRightIcon","createClientComponent","AlignDropdownSectionWithEntries","AlignFeatureClient","props","clientFeatureProps","feature","floatingSelectToolbar","sections","ChildComponent","isActive","key","label","onClick","editor","dispatchCommand","order","AlignFeatureClientComponent"],"mappings":"AAAA;AAEA,OAAOA,mBAAmB,UAAS;AACnC,MAAM,EAAEC,sBAAsB,EAAE,GAAGD;AAInC,SAASE,eAAe,QAAQ,8CAA6C;AAC7E,SAASC,gBAAgB,QAAQ,+CAA8C;AAC/E,SAASC,aAAa,QAAQ,4CAA2C;AACzE,SAASC,cAAc,QAAQ,6CAA4C;AAC3E,SAASC,qBAAqB,QAAQ,8BAA6B;AACnE,SAASC,+BAA+B,QAAQ,iDAAgD;AAEhG,MAAMC,qBAA+D,CAACC;IACpE,OAAO;QACLC,oBAAoBD;QACpBE,SAAS,IAAO,CAAA;gBACdD,oBAAoBD;gBACpBG,uBAAuB;oBACrBC,UAAU;wBACRN,gCAAgC;4BAC9B;gCACEO,gBAAgBV;gCAChBW,UAAU,IAAM;gCAChBC,KAAK;gCACLC,OAAO,CAAC,UAAU,CAAC;gCACnBC,SAAS,CAAC,EAAEC,MAAM,EAAE;oCAClBA,OAAOC,eAAe,CAACnB,wBAAwB;gCACjD;gCACAoB,OAAO;4BACT;yBACD;wBACDd,gCAAgC;4BAC9B;gCACEO,gBAAgBZ;gCAChBa,UAAU,IAAM;gCAChBC,KAAK;gCACLC,OAAO,CAAC,YAAY,CAAC;gCACrBC,SAAS,CAAC,EAAEC,MAAM,EAAE;oCAClBA,OAAOC,eAAe,CAACnB,wBAAwB;gCACjD;gCACAoB,OAAO;4BACT;yBACD;wBACDd,gCAAgC;4BAC9B;gCACEO,gBAAgBT;gCAChBU,UAAU,IAAM;gCAChBC,KAAK;gCACLC,OAAO,CAAC,WAAW,CAAC;gCACpBC,SAAS,CAAC,EAAEC,MAAM,EAAE;oCAClBA,OAAOC,eAAe,CAACnB,wBAAwB;gCACjD;gCACAoB,OAAO;4BACT;yBACD;wBACDd,gCAAgC;4BAC9B;gCACEO,gBAAgBX;gCAChBY,UAAU,IAAM;gCAChBC,KAAK;gCACLC,OAAO,CAAC,aAAa,CAAC;gCACtBC,SAAS,CAAC,EAAEC,MAAM,EAAE;oCAClBA,OAAOC,eAAe,CAACnB,wBAAwB;gCACjD;gCACAoB,OAAO;4BACT;yBACD;qBACF;gBACH;YACF,CAAA;IACF;AACF;AAEA,OAAO,MAAMC,8BAA8BhB,sBAAsBE,oBAAmB"}
|
|
@@ -13,4 +13,4 @@ export const AlignFeature = (props)=>{
|
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
15
|
|
|
16
|
-
//# sourceMappingURL=
|
|
16
|
+
//# sourceMappingURL=feature.server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/features/align/feature.server.ts"],"sourcesContent":["import type { FeatureProviderProviderServer } from '../types.js'\n\nimport { AlignFeatureClientComponent } from './feature.client.js'\n\nexport const AlignFeature: FeatureProviderProviderServer<undefined, undefined> = (props) => {\n return {\n feature: () => {\n return {\n ClientComponent: AlignFeatureClientComponent,\n clientFeatureProps: null,\n serverFeatureProps: props,\n }\n },\n key: 'align',\n serverFeatureProps: props,\n }\n}\n"],"names":["AlignFeatureClientComponent","AlignFeature","props","feature","ClientComponent","clientFeatureProps","serverFeatureProps","key"],"mappings":"AAEA,SAASA,2BAA2B,QAAQ,sBAAqB;AAEjE,OAAO,MAAMC,eAAoE,CAACC;IAChF,OAAO;QACLC,SAAS;YACP,OAAO;gBACLC,iBAAiBJ;gBACjBK,oBAAoB;gBACpBC,oBAAoBJ;YACtB;QACF;QACAK,KAAK;QACLD,oBAAoBJ;IACtB;AACF,EAAC"}
|
|
@@ -9,4 +9,4 @@ export const AlignDropdownSectionWithEntries = (entries)=>{
|
|
|
9
9
|
};
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
//# sourceMappingURL=
|
|
12
|
+
//# sourceMappingURL=floatingSelectToolbarAlignDropdownSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/features/align/floatingSelectToolbarAlignDropdownSection.ts"],"sourcesContent":["import type {\n FloatingToolbarSection,\n FloatingToolbarSectionEntry,\n} from '../../lexical/plugins/FloatingSelectToolbar/types.js'\n\nimport { AlignLeftIcon } from '../../lexical/ui/icons/AlignLeft/index.js'\n\nexport const AlignDropdownSectionWithEntries = (\n entries: FloatingToolbarSectionEntry[],\n): FloatingToolbarSection => {\n return {\n type: 'dropdown',\n ChildComponent: AlignLeftIcon,\n entries,\n key: 'dropdown-align',\n order: 2,\n }\n}\n"],"names":["AlignLeftIcon","AlignDropdownSectionWithEntries","entries","type","ChildComponent","key","order"],"mappings":"AAKA,SAASA,aAAa,QAAQ,4CAA2C;AAEzE,OAAO,MAAMC,kCAAkC,CAC7CC;IAEA,OAAO;QACLC,MAAM;QACNC,gBAAgBJ;QAChBE;QACAG,KAAK;QACLC,OAAO;IACT;AACF,EAAC"}
|
|
@@ -67,4 +67,4 @@ const BlockQuoteFeatureClient = (props)=>{
|
|
|
67
67
|
};
|
|
68
68
|
export const BlockQuoteFeatureClientComponent = createClientComponent(BlockQuoteFeatureClient);
|
|
69
69
|
|
|
70
|
-
//# sourceMappingURL=
|
|
70
|
+
//# sourceMappingURL=feature.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/features/blockquote/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport lexicalRichTextImport from '@lexical/rich-text'\nconst { $createQuoteNode, QuoteNode } = lexicalRichTextImport\n\nimport lexicalSelectionImport from '@lexical/selection'\nconst { $setBlocksType } = lexicalSelectionImport\n\nimport lexicalImport from 'lexical'\nconst { $getSelection } = lexicalImport\n\nimport type { FeatureProviderProviderClient } from '../types.js'\n\nimport { SlashMenuOption } from '../../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\nimport { BlockquoteIcon } from '../../lexical/ui/icons/Blockquote/index.js'\nimport { TextDropdownSectionWithEntries } from '../common/floatingSelectToolbarTextDropdownSection/index.js'\nimport { createClientComponent } from '../createClientComponent.js'\nimport { MarkdownTransformer } from './markdownTransformer.js'\n\nconst BlockQuoteFeatureClient: FeatureProviderProviderClient<undefined> = (props) => {\n return {\n clientFeatureProps: props,\n feature: () => ({\n clientFeatureProps: props,\n floatingSelectToolbar: {\n sections: [\n TextDropdownSectionWithEntries([\n {\n ChildComponent: BlockquoteIcon,\n isActive: () => false,\n key: 'blockquote',\n label: `Blockquote`,\n onClick: ({ editor }) => {\n editor.update(() => {\n const selection = $getSelection()\n $setBlocksType(selection, () => $createQuoteNode())\n })\n },\n order: 20,\n },\n ]),\n ],\n },\n markdownTransformers: [MarkdownTransformer],\n\n nodes: [QuoteNode],\n slashMenu: {\n options: [\n {\n displayName: 'Basic',\n key: 'basic',\n options: [\n new SlashMenuOption(`blockquote`, {\n Icon: BlockquoteIcon,\n displayName: `Blockquote`,\n keywords: ['quote', 'blockquote'],\n onSelect: () => {\n const selection = $getSelection()\n $setBlocksType(selection, () => $createQuoteNode())\n },\n }),\n ],\n },\n ],\n },\n }),\n }\n}\n\nexport const BlockQuoteFeatureClientComponent = createClientComponent(BlockQuoteFeatureClient)\n"],"names":["lexicalRichTextImport","$createQuoteNode","QuoteNode","lexicalSelectionImport","$setBlocksType","lexicalImport","$getSelection","SlashMenuOption","BlockquoteIcon","TextDropdownSectionWithEntries","createClientComponent","MarkdownTransformer","BlockQuoteFeatureClient","props","clientFeatureProps","feature","floatingSelectToolbar","sections","ChildComponent","isActive","key","label","onClick","editor","update","selection","order","markdownTransformers","nodes","slashMenu","options","displayName","Icon","keywords","onSelect","BlockQuoteFeatureClientComponent"],"mappings":"AAAA;AAEA,OAAOA,2BAA2B,qBAAoB;AACtD,MAAM,EAAEC,gBAAgB,EAAEC,SAAS,EAAE,GAAGF;AAExC,OAAOG,4BAA4B,qBAAoB;AACvD,MAAM,EAAEC,cAAc,EAAE,GAAGD;AAE3B,OAAOE,mBAAmB,UAAS;AACnC,MAAM,EAAEC,aAAa,EAAE,GAAGD;AAI1B,SAASE,eAAe,QAAQ,sEAAqE;AACrG,SAASC,cAAc,QAAQ,6CAA4C;AAC3E,SAASC,8BAA8B,QAAQ,8DAA6D;AAC5G,SAASC,qBAAqB,QAAQ,8BAA6B;AACnE,SAASC,mBAAmB,QAAQ,2BAA0B;AAE9D,MAAMC,0BAAoE,CAACC;IACzE,OAAO;QACLC,oBAAoBD;QACpBE,SAAS,IAAO,CAAA;gBACdD,oBAAoBD;gBACpBG,uBAAuB;oBACrBC,UAAU;wBACRR,+BAA+B;4BAC7B;gCACES,gBAAgBV;gCAChBW,UAAU,IAAM;gCAChBC,KAAK;gCACLC,OAAO,CAAC,UAAU,CAAC;gCACnBC,SAAS,CAAC,EAAEC,MAAM,EAAE;oCAClBA,OAAOC,MAAM,CAAC;wCACZ,MAAMC,YAAYnB;wCAClBF,eAAeqB,WAAW,IAAMxB;oCAClC;gCACF;gCACAyB,OAAO;4BACT;yBACD;qBACF;gBACH;gBACAC,sBAAsB;oBAAChB;iBAAoB;gBAE3CiB,OAAO;oBAAC1B;iBAAU;gBAClB2B,WAAW;oBACTC,SAAS;wBACP;4BACEC,aAAa;4BACbX,KAAK;4BACLU,SAAS;gCACP,IAAIvB,gBAAgB,CAAC,UAAU,CAAC,EAAE;oCAChCyB,MAAMxB;oCACNuB,aAAa,CAAC,UAAU,CAAC;oCACzBE,UAAU;wCAAC;wCAAS;qCAAa;oCACjCC,UAAU;wCACR,MAAMT,YAAYnB;wCAClBF,eAAeqB,WAAW,IAAMxB;oCAClC;gCACF;6BACD;wBACH;qBACD;gBACH;YACF,CAAA;IACF;AACF;AAEA,OAAO,MAAMkC,mCAAmCzB,sBAAsBE,yBAAwB"}
|
|
@@ -44,4 +44,4 @@ export const BlockQuoteFeature = (props)=>{
|
|
|
44
44
|
};
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
//# sourceMappingURL=
|
|
47
|
+
//# sourceMappingURL=feature.server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/features/blockquote/feature.server.ts"],"sourcesContent":["import lexicalRichTextImport, { type SerializedQuoteNode } from '@lexical/rich-text'\nconst { QuoteNode } = lexicalRichTextImport\n\nimport type { HTMLConverter } from '../converters/html/converter/types.js'\nimport type { FeatureProviderProviderServer } from '../types.js'\n\nimport { convertLexicalNodesToHTML } from '../converters/html/converter/index.js'\nimport { BlockQuoteFeatureClientComponent } from './feature.client.js'\nimport { MarkdownTransformer } from './markdownTransformer.js'\n\nexport const BlockQuoteFeature: FeatureProviderProviderServer<undefined, undefined> = (props) => {\n return {\n feature: () => {\n return {\n ClientComponent: BlockQuoteFeatureClientComponent,\n clientFeatureProps: null,\n markdownTransformers: [MarkdownTransformer],\n nodes: [\n {\n converters: {\n html: {\n converter: async ({ converters, node, parent, payload }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n lexicalNodes: node.children,\n parent: {\n ...node,\n parent,\n },\n payload,\n })\n\n return `<blockquote>${childrenText}</blockquote>`\n },\n nodeTypes: [QuoteNode.getType()],\n } as HTMLConverter<SerializedQuoteNode>,\n },\n node: QuoteNode,\n },\n ],\n serverFeatureProps: props,\n }\n },\n key: 'blockquote',\n serverFeatureProps: props,\n }\n}\n"],"names":["lexicalRichTextImport","QuoteNode","convertLexicalNodesToHTML","BlockQuoteFeatureClientComponent","MarkdownTransformer","BlockQuoteFeature","props","feature","ClientComponent","clientFeatureProps","markdownTransformers","nodes","converters","html","converter","node","parent","payload","childrenText","lexicalNodes","children","nodeTypes","getType","serverFeatureProps","key"],"mappings":"AAAA,OAAOA,2BAAyD,qBAAoB;AACpF,MAAM,EAAEC,SAAS,EAAE,GAAGD;AAKtB,SAASE,yBAAyB,QAAQ,wCAAuC;AACjF,SAASC,gCAAgC,QAAQ,sBAAqB;AACtE,SAASC,mBAAmB,QAAQ,2BAA0B;AAE9D,OAAO,MAAMC,oBAAyE,CAACC;IACrF,OAAO;QACLC,SAAS;YACP,OAAO;gBACLC,iBAAiBL;gBACjBM,oBAAoB;gBACpBC,sBAAsB;oBAACN;iBAAoB;gBAC3CO,OAAO;oBACL;wBACEC,YAAY;4BACVC,MAAM;gCACJC,WAAW,OAAO,EAAEF,UAAU,EAAEG,IAAI,EAAEC,MAAM,EAAEC,OAAO,EAAE;oCACrD,MAAMC,eAAe,MAAMhB,0BAA0B;wCACnDU;wCACAO,cAAcJ,KAAKK,QAAQ;wCAC3BJ,QAAQ;4CACN,GAAGD,IAAI;4CACPC;wCACF;wCACAC;oCACF;oCAEA,OAAO,CAAC,YAAY,EAAEC,aAAa,aAAa,CAAC;gCACnD;gCACAG,WAAW;oCAACpB,UAAUqB,OAAO;iCAAG;4BAClC;wBACF;wBACAP,MAAMd;oBACR;iBACD;gBACDsB,oBAAoBjB;YACtB;QACF;QACAkB,KAAK;QACLD,oBAAoBjB;IACtB;AACF,EAAC"}
|
|
@@ -39,4 +39,4 @@ export const MarkdownTransformer = {
|
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
|
|
42
|
-
//# sourceMappingURL=
|
|
42
|
+
//# sourceMappingURL=markdownTransformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/features/blockquote/markdownTransformer.ts"],"sourcesContent":["import type { ElementTransformer } from '@lexical/markdown'\n\nimport lexicalRichTextImport from '@lexical/rich-text'\nconst { $createQuoteNode, $isQuoteNode, QuoteNode } = lexicalRichTextImport\n\nimport lexicalImport from 'lexical'\nconst { $createLineBreakNode } = lexicalImport\n\nexport const MarkdownTransformer: ElementTransformer = {\n type: 'element',\n dependencies: [QuoteNode],\n export: (node, exportChildren) => {\n if (!$isQuoteNode(node)) {\n return null\n }\n\n const lines = exportChildren(node).split('\\n')\n const output = []\n for (const line of lines) {\n output.push('> ' + line)\n }\n return output.join('\\n')\n },\n regExp: /^>\\s/,\n replace: (parentNode, children, _match, isImport) => {\n if (isImport) {\n const previousNode = parentNode.getPreviousSibling()\n if ($isQuoteNode(previousNode)) {\n previousNode.splice(previousNode.getChildrenSize(), 0, [\n $createLineBreakNode(),\n ...children,\n ])\n previousNode.select(0, 0)\n parentNode.remove()\n return\n }\n }\n\n const node = $createQuoteNode()\n node.append(...children)\n parentNode.replace(node)\n node.select(0, 0)\n },\n}\n"],"names":["lexicalRichTextImport","$createQuoteNode","$isQuoteNode","QuoteNode","lexicalImport","$createLineBreakNode","MarkdownTransformer","type","dependencies","export","node","exportChildren","lines","split","output","line","push","join","regExp","replace","parentNode","children","_match","isImport","previousNode","getPreviousSibling","splice","getChildrenSize","select","remove","append"],"mappings":"AAEA,OAAOA,2BAA2B,qBAAoB;AACtD,MAAM,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,EAAE,GAAGH;AAEtD,OAAOI,mBAAmB,UAAS;AACnC,MAAM,EAAEC,oBAAoB,EAAE,GAAGD;AAEjC,OAAO,MAAME,sBAA0C;IACrDC,MAAM;IACNC,cAAc;QAACL;KAAU;IACzBM,QAAQ,CAACC,MAAMC;QACb,IAAI,CAACT,aAAaQ,OAAO;YACvB,OAAO;QACT;QAEA,MAAME,QAAQD,eAAeD,MAAMG,KAAK,CAAC;QACzC,MAAMC,SAAS,EAAE;QACjB,KAAK,MAAMC,QAAQH,MAAO;YACxBE,OAAOE,IAAI,CAAC,OAAOD;QACrB;QACA,OAAOD,OAAOG,IAAI,CAAC;IACrB;IACAC,QAAQ;IACRC,SAAS,CAACC,YAAYC,UAAUC,QAAQC;QACtC,IAAIA,UAAU;YACZ,MAAMC,eAAeJ,WAAWK,kBAAkB;YAClD,IAAIvB,aAAasB,eAAe;gBAC9BA,aAAaE,MAAM,CAACF,aAAaG,eAAe,IAAI,GAAG;oBACrDtB;uBACGgB;iBACJ;gBACDG,aAAaI,MAAM,CAAC,GAAG;gBACvBR,WAAWS,MAAM;gBACjB;YACF;QACF;QAEA,MAAMnB,OAAOT;QACbS,KAAKoB,MAAM,IAAIT;QACfD,WAAWD,OAAO,CAACT;QACnBA,KAAKkB,MAAM,CAAC,GAAG;IACjB;AACF,EAAC"}
|
|
@@ -162,4 +162,4 @@ import { FormSavePlugin } from './FormSavePlugin.js';
|
|
|
162
162
|
}));
|
|
163
163
|
};
|
|
164
164
|
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9ibG9ja3MvY29tcG9uZW50L0Jsb2NrQ29udGVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGaWVsZE1hcCwgRm9ybUZpZWxkQmFzZSB9IGZyb20gJ0BwYXlsb2FkY21zL3VpJ1xuaW1wb3J0IHR5cGUgeyBSZWR1Y2VkQmxvY2sgfSBmcm9tICdAcGF5bG9hZGNtcy91aS90eXBlcydcbmltcG9ydCB0eXBlIHsgRm9ybVN0YXRlIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB0eXBlIHsgRGF0YSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBsZXhpY2FsQ29tcG9zZXJDb250ZXh0SW1wb3J0IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQuanMnXG5jb25zdCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSA9IGxleGljYWxDb21wb3NlckNvbnRleHRJbXBvcnRcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdHJhbnNsYXRpb25zJ1xuaW1wb3J0IHsgUmVuZGVyRmllbGRzIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQge1xuICBCdXR0b24sXG4gIENvbGxhcHNpYmxlLFxuICBFcnJvclBpbGwsXG4gIFBpbGwsXG4gIFNlY3Rpb25UaXRsZSxcbiAgdXNlRG9jdW1lbnRJbmZvLFxuICB1c2VGb3JtU3VibWl0dGVkLFxuICB1c2VUcmFuc2xhdGlvbixcbn0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQgaXNEZWVwRXF1YWwgZnJvbSAnZGVlcC1lcXVhbCdcbmltcG9ydCBsZXhpY2FsSW1wb3J0IGZyb20gJ2xleGljYWwnXG5jb25zdCB7ICRnZXROb2RlQnlLZXkgfSA9IGxleGljYWxJbXBvcnRcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENsaWVudEVkaXRvckNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2xleGljYWwvY29uZmlnL3R5cGVzLmpzJ1xuaW1wb3J0IHR5cGUgeyBCbG9ja0ZpZWxkcywgQmxvY2tOb2RlIH0gZnJvbSAnLi4vbm9kZXMvQmxvY2tzTm9kZS5qcydcblxuaW1wb3J0IHsgRm9ybVNhdmVQbHVnaW4gfSBmcm9tICcuL0Zvcm1TYXZlUGx1Z2luLmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICBiYXNlQ2xhc3M6IHN0cmluZ1xuICBmaWVsZDogRm9ybUZpZWxkQmFzZSAmIHtcbiAgICBlZGl0b3JDb25maWc6IFNhbml0aXplZENsaWVudEVkaXRvckNvbmZpZyAvLyBXaXRoIHJlbmRlcmVkIGZlYXR1cmVzIG4gc3R1ZmZcbiAgICBuYW1lOiBzdHJpbmdcbiAgICByaWNoVGV4dENvbXBvbmVudE1hcDogTWFwPHN0cmluZywgUmVhY3QuUmVhY3ROb2RlPlxuICB9XG4gIGZvcm1EYXRhOiBCbG9ja0ZpZWxkc1xuICBmb3JtU2NoZW1hOiBGaWVsZE1hcFxuICBub2RlS2V5OiBzdHJpbmdcbiAgcmVkdWNlZEJsb2NrOiBSZWR1Y2VkQmxvY2tcbn1cblxuLyoqXG4gKiBUaGUgYWN0dWFsIGNvbnRlbnQgb2YgdGhlIEJsb2NrLiBUaGlzIHNob3VsZCBiZSBJTlNJREUgYSBGb3JtIGNvbXBvbmVudCxcbiAqIHNjb3BlZCB0byB0aGUgYmxvY2suIEFsbCBmb3JtYXQgb3BlcmF0aW9ucyBpbiBoZXJlIGFyZSB0aHVzIHNjb3BlZCB0byB0aGUgYmxvY2sncyBmb3JtLCBhbmRcbiAqIG5vdCB0aGUgd2hvbGUgZG9jdW1lbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBCbG9ja0NvbnRlbnQ6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgYmFzZUNsYXNzLFxuICAgIGZpZWxkLFxuICAgIGZvcm1EYXRhLFxuICAgIGZvcm1TY2hlbWEsXG4gICAgbm9kZUtleSxcbiAgICByZWR1Y2VkQmxvY2s6IHsgbGFiZWxzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICAvLyBVc2VkIGZvciBzYXZpbmcgY29sbGFwc2VkIHRvIHByZWZlcmVuY2VzIChhbmQgZ2V0dGluJyBpdCBmcm9tIHRoZXJlIGFnYWluKVxuICAvLyBSZW1lbWJlciwgdGhlc2UgcHJlZmVyZW5jZXMgYXJlIHNjb3BlZCB0byB0aGUgd2hvbGUgZG9jdW1lbnQsIG5vdCBqdXN0IHRoaXMgZm9ybS4gVGhpc1xuICAvLyBpcyBpbXBvcnRhbnQgdG8gY29uc2lkZXIgZm9yIHRoZSBkYXRhIHBhdGggdXNlZCBpbiBzZXREb2NGaWVsZFByZWZlcmVuY2VzXG4gIGNvbnN0IHsgZ2V0RG9jUHJlZmVyZW5jZXMsIHNldERvY0ZpZWxkUHJlZmVyZW5jZXMgfSA9IHVzZURvY3VtZW50SW5mbygpXG5cbiAgY29uc3QgW2NvbGxhcHNlZCwgc2V0Q29sbGFwc2VkXSA9IFJlYWN0LnVzZVN0YXRlPGJvb2xlYW4+KCgpID0+IHtcbiAgICBsZXQgaW5pdGlhbFN0YXRlID0gZmFsc2VcblxuICAgIGdldERvY1ByZWZlcmVuY2VzKCkudGhlbigoY3VycmVudERvY1ByZWZlcmVuY2VzKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50RmllbGRQcmVmZXJlbmNlcyA9IGN1cnJlbnREb2NQcmVmZXJlbmNlcz8uZmllbGRzW2ZpZWxkLm5hbWVdXG5cbiAgICAgIGNvbnN0IGNvbGxhcHNlZE1hcDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSBjdXJyZW50RmllbGRQcmVmZXJlbmNlcz8uY29sbGFwc2VkXG5cbiAgICAgIGlmIChjb2xsYXBzZWRNYXAgJiYgY29sbGFwc2VkTWFwW2Zvcm1EYXRhLmlkXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNldENvbGxhcHNlZChjb2xsYXBzZWRNYXBbZm9ybURhdGEuaWRdKVxuICAgICAgICBpbml0aWFsU3RhdGUgPSBjb2xsYXBzZWRNYXBbZm9ybURhdGEuaWRdXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gaW5pdGlhbFN0YXRlXG4gIH0pXG4gIGNvbnN0IGhhc1N1Ym1pdHRlZCA9IHVzZUZvcm1TdWJtaXR0ZWQoKVxuXG4gIGNvbnN0IFtlcnJvckNvdW50LCBzZXRFcnJvckNvdW50XSA9IFJlYWN0LnVzZVN0YXRlKDApXG5cbiAgY29uc3QgZmllbGRIYXNFcnJvcnMgPSBoYXNTdWJtaXR0ZWQgJiYgZXJyb3JDb3VudCA+IDBcblxuICBjb25zdCBjbGFzc05hbWVzID0gW1xuICAgIGAke2Jhc2VDbGFzc31fX3Jvd2AsXG4gICAgZmllbGRIYXNFcnJvcnMgPyBgJHtiYXNlQ2xhc3N9X19yb3ctLWhhcy1lcnJvcnNgIDogYCR7YmFzZUNsYXNzfV9fcm93LS1uby1lcnJvcnNgLFxuICBdXG4gICAgLmZpbHRlcihCb29sZWFuKVxuICAgIC5qb2luKCcgJylcblxuICBjb25zdCBvbkZvcm1DaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoe1xuICAgICAgZnVsbEZpZWxkc1dpdGhWYWx1ZXMsXG4gICAgICBuZXdGb3JtRGF0YSxcbiAgICB9OiB7XG4gICAgICBmdWxsRmllbGRzV2l0aFZhbHVlczogRm9ybVN0YXRlXG4gICAgICBuZXdGb3JtRGF0YTogRGF0YVxuICAgIH0pID0+IHtcbiAgICAgIG5ld0Zvcm1EYXRhID0ge1xuICAgICAgICAuLi5uZXdGb3JtRGF0YSxcbiAgICAgICAgaWQ6IGZvcm1EYXRhLmlkLFxuICAgICAgICBibG9ja05hbWU6IG5ld0Zvcm1EYXRhLmJsb2NrTmFtZTIsIC8vIFRPRE86IEZpbmQgYSBiZXR0ZXIgc29sdXRpb24gZm9yIHRoaXMuIFdlIGhhdmUgdG8gd3JhcCBpdCBpbiBibG9ja05hbWUyIHdoZW4gdXNpbmcgaXQgaGVyZSwgYXMgYmxvY2tOYW1lIGRvZXMgbm90IGFjY2VwdCBvciBwcm92aWRlIGFueSB1cGRhdGVkIHZhbHVlcyBmb3Igc29tZSByZWFzb24uXG4gICAgICAgIGJsb2NrVHlwZTogZm9ybURhdGEuYmxvY2tUeXBlLFxuICAgICAgfVxuXG4gICAgICAvLyBSZWN1cnNpdmVseSByZW1vdmUgYWxsIHVuZGVmaW5lZCB2YWx1ZXMgZnJvbSBldmVuIGJlaW5nIHByZXNlbnQgaW4gZm9ybURhdGEsIGFzIHRoZXkgd2lsbFxuICAgICAgLy8gY2F1c2UgaXNEZWVwRXF1YWwgdG8gcmV0dXJuIGZhbHNlIGlmLCBmb3IgZXhhbXBsZSwgZm9ybURhdGEgaGFzIGEga2V5IHRoYXQgZmllbGRzLmRhdGFcbiAgICAgIC8vIGRvZXMgbm90IGhhdmUsIGV2ZW4gaWYgaXQncyB1bmRlZmluZWQuXG4gICAgICAvLyBDdXJyZW50bHksIHRoaXMgaGFwcGVucyBpZiBhIGJsb2NrIGhhcyBhbm90aGVyIHN1Yi1ibG9ja3MgZmllbGQuIEluc2lkZSBmb3JtRGF0YSwgdGhhdCBzdWItYmxvY2tzIGZpZWxkIGhhcyBhbiB1bmRlZmluZWQgYmxvY2tOYW1lIHByb3BlcnR5LlxuICAgICAgLy8gSW5zaWRlIG9mIGZpZWxkcy5kYXRhIGhvd2V2ZXIsIHRoYXQgc3ViLWJsb2NrcyBibG9ja05hbWUgcHJvcGVydHkgZG9lcyBub3QgZXhpc3QgYXQgYWxsLlxuICAgICAgZnVuY3Rpb24gcmVtb3ZlVW5kZWZpbmVkQW5kTnVsbFJlY3Vyc2l2ZWx5KG9iajogb2JqZWN0KSB7XG4gICAgICAgIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgaWYgKG9ialtrZXldICYmIHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJlbW92ZVVuZGVmaW5lZEFuZE51bGxSZWN1cnNpdmVseShvYmpba2V5XSlcbiAgICAgICAgICB9IGVsc2UgaWYgKG9ialtrZXldID09PSB1bmRlZmluZWQgfHwgb2JqW2tleV0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBvYmpba2V5XVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIHJlbW92ZVVuZGVmaW5lZEFuZE51bGxSZWN1cnNpdmVseShuZXdGb3JtRGF0YSlcbiAgICAgIHJlbW92ZVVuZGVmaW5lZEFuZE51bGxSZWN1cnNpdmVseShmb3JtRGF0YSlcblxuICAgICAgLy8gT25seSB1cGRhdGUgaWYgdGhlIGRhdGEgaGFzIGFjdHVhbGx5IGNoYW5nZWQuIE90aGVyd2lzZSwgd2UgbWF5IGJlIHRyaWdnZXJpbmcgYW4gdW5uZWNlc3NhcnkgdmFsdWUgY2hhbmdlLFxuICAgICAgLy8gd2hpY2ggd291bGQgdHJpZ2dlciB0aGUgXCJMZWF2ZSB3aXRob3V0IHNhdmluZ1wiIGRpYWxvZyB1bm5lY2Vzc2FyaWx5XG4gICAgICBpZiAoIWlzRGVlcEVxdWFsKGZvcm1EYXRhLCBuZXdGb3JtRGF0YSkpIHtcbiAgICAgICAgLy8gUnVubmluZyB0aGlzIGluIHRoZSBuZXh0IHRpY2sgaW4gdGhlIG1lYW50aW1lIGZpeGVzIHRoaXMgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvaXNzdWVzLzQxMDhcbiAgICAgICAgLy8gSSBkb24ndCBrbm93IHdoeS4gV2hlbiB0aGlzIGlzIGNhbGxlZCBpbW1lZGlhdGVseSwgaXQgbWlnaHQgZm9jdXMgb3V0IG9mIGEgbmVzdGVkIGxleGljYWwgZWRpdG9yIGZpZWxkIGlmIGFuIHVwZGF0ZSBpcyBtYWRlIHRoZXJlLlxuICAgICAgICAvLyBNeSBoeXBvdGhlc2lzIGlzIHRoYXQgdGhlIG5lc3RlZCBlZGl0b3IgbWlnaHQgbm90IGhhdmUgZnVsbHkgZmluaXNoZWQgaXRzIHVwZGF0ZSBjeWNsZSB5ZXQuIEJ5IHVwZGF0aW5nIGluIHRoZSBuZXh0IHRpY2ssIHdlXG4gICAgICAgIC8vIGVuc3VyZSB0aGF0IHRoZSBuZXN0ZWQgZWRpdG9yIGhhcyBmaW5pc2hlZCBpdHMgdXBkYXRlIGN5Y2xlIGJlZm9yZSB3ZSB1cGRhdGUgdGhlIGJsb2NrIG5vZGUuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGVkaXRvci51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm9kZTogQmxvY2tOb2RlID0gJGdldE5vZGVCeUtleShub2RlS2V5KVxuICAgICAgICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgICAgICAgbm9kZS5zZXRGaWVsZHMobmV3Rm9ybURhdGEgYXMgQmxvY2tGaWVsZHMpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfSwgMClcbiAgICAgIH1cblxuICAgICAgLy8gdXBkYXRlIGVycm9yIGNvdW50XG4gICAgICBpZiAoaGFzU3VibWl0dGVkKSB7XG4gICAgICAgIGxldCByb3dFcnJvckNvdW50ID0gMFxuICAgICAgICBmb3IgKGNvbnN0IGZvcm1GaWVsZCBvZiBPYmplY3QudmFsdWVzKGZ1bGxGaWVsZHNXaXRoVmFsdWVzKSkge1xuICAgICAgICAgIGlmIChmb3JtRmllbGQ/LnZhbGlkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcm93RXJyb3JDb3VudCsrXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNldEVycm9yQ291bnQocm93RXJyb3JDb3VudClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtlZGl0b3IsIG5vZGVLZXksIGhhc1N1Ym1pdHRlZCwgZm9ybURhdGFdLFxuICApXG5cbiAgY29uc3Qgb25Db2xsYXBzZWRDaGFuZ2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZ2V0RG9jUHJlZmVyZW5jZXMoKS50aGVuKChjdXJyZW50RG9jUHJlZmVyZW5jZXMpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRGaWVsZFByZWZlcmVuY2VzID0gY3VycmVudERvY1ByZWZlcmVuY2VzPy5maWVsZHNbZmllbGQubmFtZV1cblxuICAgICAgY29uc3QgY29sbGFwc2VkTWFwOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IGN1cnJlbnRGaWVsZFByZWZlcmVuY2VzPy5jb2xsYXBzZWRcblxuICAgICAgY29uc3QgbmV3Q29sbGFwc2VkOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9XG4gICAgICAgIGNvbGxhcHNlZE1hcCAmJiBjb2xsYXBzZWRNYXA/LnNpemUgPyBjb2xsYXBzZWRNYXAgOiB7fVxuXG4gICAgICBuZXdDb2xsYXBzZWRbZm9ybURhdGEuaWRdID0gIWNvbGxhcHNlZFxuXG4gICAgICBzZXREb2NGaWVsZFByZWZlcmVuY2VzKGZpZWxkLm5hbWUsIHtcbiAgICAgICAgY29sbGFwc2VkOiBuZXdDb2xsYXBzZWQsXG4gICAgICB9KVxuICAgIH0pXG4gIH0sIFtjb2xsYXBzZWQsIGdldERvY1ByZWZlcmVuY2VzLCBmaWVsZC5uYW1lLCBzZXREb2NGaWVsZFByZWZlcmVuY2VzLCBmb3JtRGF0YS5pZF0pXG5cbiAgY29uc3QgcmVtb3ZlQmxvY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAkZ2V0Tm9kZUJ5S2V5KG5vZGVLZXkpLnJlbW92ZSgpXG4gICAgfSlcbiAgfSwgW2VkaXRvciwgbm9kZUtleV0pXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8Q29sbGFwc2libGVcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzfVxuICAgICAgICBjb2xsYXBzZWQ9e2NvbGxhcHNlZH1cbiAgICAgICAgY29sbGFwc2libGVTdHlsZT17ZmllbGRIYXNFcnJvcnMgPyAnZXJyb3InIDogJ2RlZmF1bHQnfVxuICAgICAgICBoZWFkZXI9e1xuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19ibG9jay1oZWFkZXJgfT5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxQaWxsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19ibG9jay1waWxsICR7YmFzZUNsYXNzfV9fYmxvY2stcGlsbC0ke2Zvcm1EYXRhPy5ibG9ja1R5cGV9YH1cbiAgICAgICAgICAgICAgICBwaWxsU3R5bGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dHlwZW9mIGxhYmVscy5zaW5ndWxhciA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgID8gZ2V0VHJhbnNsYXRpb24obGFiZWxzLnNpbmd1bGFyLCBpMThuKVxuICAgICAgICAgICAgICAgICAgOiAnW1Npbmd1bGFyIExhYmVsXSd9XG4gICAgICAgICAgICAgIDwvUGlsbD5cbiAgICAgICAgICAgICAgPFNlY3Rpb25UaXRsZSBwYXRoPVwiYmxvY2tOYW1lMlwiIHJlYWRPbmx5PXtmaWVsZD8ucmVhZE9ubHl9IC8+XG4gICAgICAgICAgICAgIHtmaWVsZEhhc0Vycm9ycyAmJiA8RXJyb3JQaWxsIGNvdW50PXtlcnJvckNvdW50fSBpMThuPXtpMThufSB3aXRoTWVzc2FnZSAvPn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2VkaXRvci5pc0VkaXRhYmxlKCkgJiYgKFxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJpY29uLWxhYmVsXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3JlbW92ZUJ1dHRvbmB9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2ZpZWxkPy5yZWFkT25seX1cbiAgICAgICAgICAgICAgICBpY29uPVwieFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgcmVtb3ZlQmxvY2soKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgcm91bmRcbiAgICAgICAgICAgICAgICB0b29sdGlwPVwiUmVtb3ZlIEJsb2NrXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAga2V5PXswfVxuICAgICAgICBvblRvZ2dsZT17KGNvbGxhcHNlZCkgPT4ge1xuICAgICAgICAgIHNldENvbGxhcHNlZChjb2xsYXBzZWQpXG4gICAgICAgICAgb25Db2xsYXBzZWRDaGFuZ2UoKVxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8UmVuZGVyRmllbGRzXG4gICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19maWVsZHNgfVxuICAgICAgICAgIGZpZWxkTWFwPXtBcnJheS5pc0FycmF5KGZvcm1TY2hlbWEpID8gZm9ybVNjaGVtYSA6IFtdfVxuICAgICAgICAgIGZvcmNlUmVuZGVyXG4gICAgICAgICAgbWFyZ2lucz1cInNtYWxsXCJcbiAgICAgICAgLz5cbiAgICAgIDwvQ29sbGFwc2libGU+XG5cbiAgICAgIDxGb3JtU2F2ZVBsdWdpbiBvbkNoYW5nZT17b25Gb3JtQ2hhbmdlfSAvPlxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJsZXhpY2FsQ29tcG9zZXJDb250ZXh0SW1wb3J0IiwidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsImdldFRyYW5zbGF0aW9uIiwiUmVuZGVyRmllbGRzIiwiQnV0dG9uIiwiQ29sbGFwc2libGUiLCJFcnJvclBpbGwiLCJQaWxsIiwiU2VjdGlvblRpdGxlIiwidXNlRG9jdW1lbnRJbmZvIiwidXNlRm9ybVN1Ym1pdHRlZCIsInVzZVRyYW5zbGF0aW9uIiwiaXNEZWVwRXF1YWwiLCJsZXhpY2FsSW1wb3J0IiwiJGdldE5vZGVCeUtleSIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJGb3JtU2F2ZVBsdWdpbiIsIkJsb2NrQ29udGVudCIsInByb3BzIiwiYmFzZUNsYXNzIiwiZmllbGQiLCJmb3JtRGF0YSIsImZvcm1TY2hlbWEiLCJub2RlS2V5IiwicmVkdWNlZEJsb2NrIiwibGFiZWxzIiwiaTE4biIsImVkaXRvciIsImdldERvY1ByZWZlcmVuY2VzIiwic2V0RG9jRmllbGRQcmVmZXJlbmNlcyIsImNvbGxhcHNlZCIsInNldENvbGxhcHNlZCIsInVzZVN0YXRlIiwiaW5pdGlhbFN0YXRlIiwidGhlbiIsImN1cnJlbnREb2NQcmVmZXJlbmNlcyIsImN1cnJlbnRGaWVsZFByZWZlcmVuY2VzIiwiZmllbGRzIiwibmFtZSIsImNvbGxhcHNlZE1hcCIsImlkIiwidW5kZWZpbmVkIiwiaGFzU3VibWl0dGVkIiwiZXJyb3JDb3VudCIsInNldEVycm9yQ291bnQiLCJmaWVsZEhhc0Vycm9ycyIsImNsYXNzTmFtZXMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsIm9uRm9ybUNoYW5nZSIsImZ1bGxGaWVsZHNXaXRoVmFsdWVzIiwibmV3Rm9ybURhdGEiLCJibG9ja05hbWUiLCJibG9ja05hbWUyIiwiYmxvY2tUeXBlIiwicmVtb3ZlVW5kZWZpbmVkQW5kTnVsbFJlY3Vyc2l2ZWx5Iiwib2JqIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJzZXRUaW1lb3V0IiwidXBkYXRlIiwibm9kZSIsInNldEZpZWxkcyIsInJvd0Vycm9yQ291bnQiLCJmb3JtRmllbGQiLCJ2YWx1ZXMiLCJ2YWxpZCIsIm9uQ29sbGFwc2VkQ2hhbmdlIiwibmV3Q29sbGFwc2VkIiwic2l6ZSIsInJlbW92ZUJsb2NrIiwicmVtb3ZlIiwiRnJhZ21lbnQiLCJjbGFzc05hbWUiLCJjb2xsYXBzaWJsZVN0eWxlIiwiaGVhZGVyIiwiZGl2IiwicGlsbFN0eWxlIiwic2luZ3VsYXIiLCJwYXRoIiwicmVhZE9ubHkiLCJjb3VudCIsIndpdGhNZXNzYWdlIiwiaXNFZGl0YWJsZSIsImJ1dHRvblN0eWxlIiwiZGlzYWJsZWQiLCJpY29uIiwib25DbGljayIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInJvdW5kIiwidG9vbHRpcCIsIm9uVG9nZ2xlIiwiZmllbGRNYXAiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JjZVJlbmRlciIsIm1hcmdpbnMiLCJvbkNoYW5nZSJdLCJtYXBwaW5ncyI6IkFBS0EsT0FBT0Esa0NBQWtDLDJDQUEwQztBQUNuRixNQUFNLEVBQUVDLHlCQUF5QixFQUFFLEdBQUdEO0FBQ3RDLFNBQVNFLGNBQWMsUUFBUSwyQkFBMEI7QUFDekQsU0FBU0MsWUFBWSxRQUFRLGlCQUFnQjtBQUM3QyxTQUNFQyxNQUFNLEVBQ05DLFdBQVcsRUFDWEMsU0FBUyxFQUNUQyxJQUFJLEVBQ0pDLFlBQVksRUFDWkMsZUFBZSxFQUNmQyxnQkFBZ0IsRUFDaEJDLGNBQWMsUUFDVCxpQkFBZ0I7QUFDdkIsT0FBT0MsaUJBQWlCLGFBQVk7QUFDcEMsT0FBT0MsbUJBQW1CLFVBQVM7QUFDbkMsTUFBTSxFQUFFQyxhQUFhLEVBQUUsR0FBR0Q7QUFDMUIsT0FBT0UsU0FBU0MsV0FBVyxRQUFRLFFBQU87QUFLMUMsU0FBU0MsY0FBYyxRQUFRLHNCQUFxQjtBQWVwRDs7OztDQUlDLEdBQ0QsT0FBTyxNQUFNQyxlQUFnQyxDQUFDQztJQUM1QyxNQUFNLEVBQ0pDLFNBQVMsRUFDVEMsS0FBSyxFQUNMQyxRQUFRLEVBQ1JDLFVBQVUsRUFDVkMsT0FBTyxFQUNQQyxjQUFjLEVBQUVDLE1BQU0sRUFBRSxFQUN6QixHQUFHUDtJQUVKLE1BQU0sRUFBRVEsSUFBSSxFQUFFLEdBQUdoQjtJQUNqQixNQUFNLENBQUNpQixPQUFPLEdBQUczQjtJQUNqQiw2RUFBNkU7SUFDN0UseUZBQXlGO0lBQ3pGLDRFQUE0RTtJQUM1RSxNQUFNLEVBQUU0QixpQkFBaUIsRUFBRUMsc0JBQXNCLEVBQUUsR0FBR3JCO0lBRXRELE1BQU0sQ0FBQ3NCLFdBQVdDLGFBQWEsR0FBR2pCLE1BQU1rQixRQUFRLENBQVU7UUFDeEQsSUFBSUMsZUFBZTtRQUVuQkwsb0JBQW9CTSxJQUFJLENBQUMsQ0FBQ0M7WUFDeEIsTUFBTUMsMEJBQTBCRCx1QkFBdUJFLE1BQU0sQ0FBQ2pCLE1BQU1rQixJQUFJLENBQUM7WUFFekUsTUFBTUMsZUFBMkNILHlCQUF5Qk47WUFFMUUsSUFBSVMsZ0JBQWdCQSxZQUFZLENBQUNsQixTQUFTbUIsRUFBRSxDQUFDLEtBQUtDLFdBQVc7Z0JBQzNEVixhQUFhUSxZQUFZLENBQUNsQixTQUFTbUIsRUFBRSxDQUFDO2dCQUN0Q1AsZUFBZU0sWUFBWSxDQUFDbEIsU0FBU21CLEVBQUUsQ0FBQztZQUMxQztRQUNGO1FBQ0EsT0FBT1A7SUFDVDtJQUNBLE1BQU1TLGVBQWVqQztJQUVyQixNQUFNLENBQUNrQyxZQUFZQyxjQUFjLEdBQUc5QixNQUFNa0IsUUFBUSxDQUFDO0lBRW5ELE1BQU1hLGlCQUFpQkgsZ0JBQWdCQyxhQUFhO0lBRXBELE1BQU1HLGFBQWE7UUFDakIsQ0FBQyxFQUFFM0IsVUFBVSxLQUFLLENBQUM7UUFDbkIwQixpQkFBaUIsQ0FBQyxFQUFFMUIsVUFBVSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRUEsVUFBVSxnQkFBZ0IsQ0FBQztLQUNsRixDQUNFNEIsTUFBTSxDQUFDQyxTQUNQQyxJQUFJLENBQUM7SUFFUixNQUFNQyxlQUFlbkMsWUFDbkIsQ0FBQyxFQUNDb0Msb0JBQW9CLEVBQ3BCQyxXQUFXLEVBSVo7UUFDQ0EsY0FBYztZQUNaLEdBQUdBLFdBQVc7WUFDZFosSUFBSW5CLFNBQVNtQixFQUFFO1lBQ2ZhLFdBQVdELFlBQVlFLFVBQVU7WUFDakNDLFdBQVdsQyxTQUFTa0MsU0FBUztRQUMvQjtRQUVBLDRGQUE0RjtRQUM1Rix5RkFBeUY7UUFDekYseUNBQXlDO1FBQ3pDLCtJQUErSTtRQUMvSSwyRkFBMkY7UUFDM0YsU0FBU0Msa0NBQWtDQyxHQUFXO1lBQ3BEQyxPQUFPQyxJQUFJLENBQUNGLEtBQUtHLE9BQU8sQ0FBQyxDQUFDQztnQkFDeEIsSUFBSUosR0FBRyxDQUFDSSxJQUFJLElBQUksT0FBT0osR0FBRyxDQUFDSSxJQUFJLEtBQUssVUFBVTtvQkFDNUNMLGtDQUFrQ0MsR0FBRyxDQUFDSSxJQUFJO2dCQUM1QyxPQUFPLElBQUlKLEdBQUcsQ0FBQ0ksSUFBSSxLQUFLcEIsYUFBYWdCLEdBQUcsQ0FBQ0ksSUFBSSxLQUFLLE1BQU07b0JBQ3RELE9BQU9KLEdBQUcsQ0FBQ0ksSUFBSTtnQkFDakI7WUFDRjtRQUNGO1FBQ0FMLGtDQUFrQ0o7UUFDbENJLGtDQUFrQ25DO1FBRWxDLDZHQUE2RztRQUM3RyxzRUFBc0U7UUFDdEUsSUFBSSxDQUFDVixZQUFZVSxVQUFVK0IsY0FBYztZQUN2QyxvSEFBb0g7WUFDcEgscUlBQXFJO1lBQ3JJLCtIQUErSDtZQUMvSCwrRkFBK0Y7WUFDL0ZVLFdBQVc7Z0JBQ1RuQyxPQUFPb0MsTUFBTSxDQUFDO29CQUNaLE1BQU1DLE9BQWtCbkQsY0FBY1U7b0JBQ3RDLElBQUl5QyxNQUFNO3dCQUNSQSxLQUFLQyxTQUFTLENBQUNiO29CQUNqQjtnQkFDRjtZQUNGLEdBQUc7UUFDTDtRQUVBLHFCQUFxQjtRQUNyQixJQUFJVixjQUFjO1lBQ2hCLElBQUl3QixnQkFBZ0I7WUFDcEIsS0FBSyxNQUFNQyxhQUFhVCxPQUFPVSxNQUFNLENBQUNqQixzQkFBdUI7Z0JBQzNELElBQUlnQixXQUFXRSxVQUFVLE9BQU87b0JBQzlCSDtnQkFDRjtZQUNGO1lBQ0F0QixjQUFjc0I7UUFDaEI7SUFDRixHQUNBO1FBQUN2QztRQUFRSjtRQUFTbUI7UUFBY3JCO0tBQVM7SUFHM0MsTUFBTWlELG9CQUFvQnZELFlBQVk7UUFDcENhLG9CQUFvQk0sSUFBSSxDQUFDLENBQUNDO1lBQ3hCLE1BQU1DLDBCQUEwQkQsdUJBQXVCRSxNQUFNLENBQUNqQixNQUFNa0IsSUFBSSxDQUFDO1lBRXpFLE1BQU1DLGVBQTJDSCx5QkFBeUJOO1lBRTFFLE1BQU15QyxlQUNKaEMsZ0JBQWdCQSxjQUFjaUMsT0FBT2pDLGVBQWUsQ0FBQztZQUV2RGdDLFlBQVksQ0FBQ2xELFNBQVNtQixFQUFFLENBQUMsR0FBRyxDQUFDVjtZQUU3QkQsdUJBQXVCVCxNQUFNa0IsSUFBSSxFQUFFO2dCQUNqQ1IsV0FBV3lDO1lBQ2I7UUFDRjtJQUNGLEdBQUc7UUFBQ3pDO1FBQVdGO1FBQW1CUixNQUFNa0IsSUFBSTtRQUFFVDtRQUF3QlIsU0FBU21CLEVBQUU7S0FBQztJQUVsRixNQUFNaUMsY0FBYzFELFlBQVk7UUFDOUJZLE9BQU9vQyxNQUFNLENBQUM7WUFDWmxELGNBQWNVLFNBQVNtRCxNQUFNO1FBQy9CO0lBQ0YsR0FBRztRQUFDL0M7UUFBUUo7S0FBUTtJQUVwQixxQkFDRSxvQkFBQ1QsTUFBTTZELFFBQVEsc0JBQ2Isb0JBQUN2RTtRQUNDd0UsV0FBVzlCO1FBQ1hoQixXQUFXQTtRQUNYK0Msa0JBQWtCaEMsaUJBQWlCLFVBQVU7UUFDN0NpQyxzQkFDRSxvQkFBQ0M7WUFBSUgsV0FBVyxDQUFDLEVBQUV6RCxVQUFVLGNBQWMsQ0FBQzt5QkFDMUMsb0JBQUM0RCwyQkFDQyxvQkFBQ3pFO1lBQ0NzRSxXQUFXLENBQUMsRUFBRXpELFVBQVUsYUFBYSxFQUFFQSxVQUFVLGFBQWEsRUFBRUUsVUFBVWtDLFVBQVUsQ0FBQztZQUNyRnlCLFdBQVU7V0FFVCxPQUFPdkQsT0FBT3dELFFBQVEsS0FBSyxXQUN4QmhGLGVBQWV3QixPQUFPd0QsUUFBUSxFQUFFdkQsUUFDaEMsbUNBRU4sb0JBQUNuQjtZQUFhMkUsTUFBSztZQUFhQyxVQUFVL0QsT0FBTytEO1lBQ2hEdEMsZ0NBQWtCLG9CQUFDeEM7WUFBVStFLE9BQU96QztZQUFZakIsTUFBTUE7WUFBTTJELGFBQUFBO2FBRTlEMUQsT0FBTzJELFVBQVUsb0JBQ2hCLG9CQUFDbkY7WUFDQ29GLGFBQVk7WUFDWlgsV0FBVyxDQUFDLEVBQUV6RCxVQUFVLGNBQWMsQ0FBQztZQUN2Q3FFLFVBQVVwRSxPQUFPK0Q7WUFDakJNLE1BQUs7WUFDTEMsU0FBUyxDQUFDQztnQkFDUkEsRUFBRUMsY0FBYztnQkFDaEJuQjtZQUNGO1lBQ0FvQixPQUFBQTtZQUNBQyxTQUFROztRQUtoQmpDLEtBQUs7UUFDTGtDLFVBQVUsQ0FBQ2pFO1lBQ1RDLGFBQWFEO1lBQ2J3QztRQUNGO3FCQUVBLG9CQUFDcEU7UUFDQzBFLFdBQVcsQ0FBQyxFQUFFekQsVUFBVSxRQUFRLENBQUM7UUFDakM2RSxVQUFVQyxNQUFNQyxPQUFPLENBQUM1RSxjQUFjQSxhQUFhLEVBQUU7UUFDckQ2RSxhQUFBQTtRQUNBQyxTQUFRO3VCQUlaLG9CQUFDcEY7UUFBZXFGLFVBQVVuRDs7QUFHaEMsRUFBQyJ9
|
|
165
|
+
//# sourceMappingURL=BlockContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/field/features/blocks/component/BlockContent.tsx"],"sourcesContent":["import type { FieldMap, FormFieldBase } from '@payloadcms/ui'\nimport type { ReducedBlock } from '@payloadcms/ui/types'\nimport type { FormState } from 'payload/types'\nimport type { Data } from 'payload/types'\n\nimport lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js'\nconst { useLexicalComposerContext } = lexicalComposerContextImport\nimport { getTranslation } from '@payloadcms/translations'\nimport { RenderFields } from '@payloadcms/ui'\nimport {\n Button,\n Collapsible,\n ErrorPill,\n Pill,\n SectionTitle,\n useDocumentInfo,\n useFormSubmitted,\n useTranslation,\n} from '@payloadcms/ui'\nimport isDeepEqual from 'deep-equal'\nimport lexicalImport from 'lexical'\nconst { $getNodeByKey } = lexicalImport\nimport React, { useCallback } from 'react'\n\nimport type { SanitizedClientEditorConfig } from '../../../lexical/config/types.js'\nimport type { BlockFields, BlockNode } from '../nodes/BlocksNode.js'\n\nimport { FormSavePlugin } from './FormSavePlugin.js'\n\ntype Props = {\n baseClass: string\n field: FormFieldBase & {\n editorConfig: SanitizedClientEditorConfig // With rendered features n stuff\n name: string\n richTextComponentMap: Map<string, React.ReactNode>\n }\n formData: BlockFields\n formSchema: FieldMap\n nodeKey: string\n reducedBlock: ReducedBlock\n}\n\n/**\n * The actual content of the Block. This should be INSIDE a Form component,\n * scoped to the block. All format operations in here are thus scoped to the block's form, and\n * not the whole document.\n */\nexport const BlockContent: React.FC<Props> = (props) => {\n const {\n baseClass,\n field,\n formData,\n formSchema,\n nodeKey,\n reducedBlock: { labels },\n } = props\n\n const { i18n } = useTranslation()\n const [editor] = useLexicalComposerContext()\n // Used for saving collapsed to preferences (and gettin' it from there again)\n // Remember, these preferences are scoped to the whole document, not just this form. This\n // is important to consider for the data path used in setDocFieldPreferences\n const { getDocPreferences, setDocFieldPreferences } = useDocumentInfo()\n\n const [collapsed, setCollapsed] = React.useState<boolean>(() => {\n let initialState = false\n\n getDocPreferences().then((currentDocPreferences) => {\n const currentFieldPreferences = currentDocPreferences?.fields[field.name]\n\n const collapsedMap: { [key: string]: boolean } = currentFieldPreferences?.collapsed\n\n if (collapsedMap && collapsedMap[formData.id] !== undefined) {\n setCollapsed(collapsedMap[formData.id])\n initialState = collapsedMap[formData.id]\n }\n })\n return initialState\n })\n const hasSubmitted = useFormSubmitted()\n\n const [errorCount, setErrorCount] = React.useState(0)\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n const onFormChange = useCallback(\n ({\n fullFieldsWithValues,\n newFormData,\n }: {\n fullFieldsWithValues: FormState\n newFormData: Data\n }) => {\n newFormData = {\n ...newFormData,\n id: formData.id,\n blockName: newFormData.blockName2, // TODO: Find a better solution for this. We have to wrap it in blockName2 when using it here, as blockName does not accept or provide any updated values for some reason.\n blockType: formData.blockType,\n }\n\n // Recursively remove all undefined values from even being present in formData, as they will\n // cause isDeepEqual to return false if, for example, formData has a key that fields.data\n // does not have, even if it's undefined.\n // Currently, this happens if a block has another sub-blocks field. Inside formData, that sub-blocks field has an undefined blockName property.\n // Inside of fields.data however, that sub-blocks blockName property does not exist at all.\n function removeUndefinedAndNullRecursively(obj: object) {\n Object.keys(obj).forEach((key) => {\n if (obj[key] && typeof obj[key] === 'object') {\n removeUndefinedAndNullRecursively(obj[key])\n } else if (obj[key] === undefined || obj[key] === null) {\n delete obj[key]\n }\n })\n }\n removeUndefinedAndNullRecursively(newFormData)\n removeUndefinedAndNullRecursively(formData)\n\n // Only update if the data has actually changed. Otherwise, we may be triggering an unnecessary value change,\n // which would trigger the \"Leave without saving\" dialog unnecessarily\n if (!isDeepEqual(formData, newFormData)) {\n // Running this in the next tick in the meantime fixes this issue: https://github.com/payloadcms/payload/issues/4108\n // I don't know why. When this is called immediately, it might focus out of a nested lexical editor field if an update is made there.\n // My hypothesis is that the nested editor might not have fully finished its update cycle yet. By updating in the next tick, we\n // ensure that the nested editor has finished its update cycle before we update the block node.\n setTimeout(() => {\n editor.update(() => {\n const node: BlockNode = $getNodeByKey(nodeKey)\n if (node) {\n node.setFields(newFormData as BlockFields)\n }\n })\n }, 0)\n }\n\n // update error count\n if (hasSubmitted) {\n let rowErrorCount = 0\n for (const formField of Object.values(fullFieldsWithValues)) {\n if (formField?.valid === false) {\n rowErrorCount++\n }\n }\n setErrorCount(rowErrorCount)\n }\n },\n [editor, nodeKey, hasSubmitted, formData],\n )\n\n const onCollapsedChange = useCallback(() => {\n getDocPreferences().then((currentDocPreferences) => {\n const currentFieldPreferences = currentDocPreferences?.fields[field.name]\n\n const collapsedMap: { [key: string]: boolean } = currentFieldPreferences?.collapsed\n\n const newCollapsed: { [key: string]: boolean } =\n collapsedMap && collapsedMap?.size ? collapsedMap : {}\n\n newCollapsed[formData.id] = !collapsed\n\n setDocFieldPreferences(field.name, {\n collapsed: newCollapsed,\n })\n })\n }, [collapsed, getDocPreferences, field.name, setDocFieldPreferences, formData.id])\n\n const removeBlock = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey).remove()\n })\n }, [editor, nodeKey])\n\n return (\n <React.Fragment>\n <Collapsible\n className={classNames}\n collapsed={collapsed}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n header={\n <div className={`${baseClass}__block-header`}>\n <div>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${formData?.blockType}`}\n pillStyle=\"white\"\n >\n {typeof labels.singular === 'string'\n ? getTranslation(labels.singular, i18n)\n : '[Singular Label]'}\n </Pill>\n <SectionTitle path=\"blockName2\" readOnly={field?.readOnly} />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n {editor.isEditable() && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={field?.readOnly}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeBlock()\n }}\n round\n tooltip=\"Remove Block\"\n />\n )}\n </div>\n }\n key={0}\n onToggle={(collapsed) => {\n setCollapsed(collapsed)\n onCollapsedChange()\n }}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={Array.isArray(formSchema) ? formSchema : []}\n forceRender\n margins=\"small\"\n />\n </Collapsible>\n\n <FormSavePlugin onChange={onFormChange} />\n </React.Fragment>\n )\n}\n"],"names":["lexicalComposerContextImport","useLexicalComposerContext","getTranslation","RenderFields","Button","Collapsible","ErrorPill","Pill","SectionTitle","useDocumentInfo","useFormSubmitted","useTranslation","isDeepEqual","lexicalImport","$getNodeByKey","React","useCallback","FormSavePlugin","BlockContent","props","baseClass","field","formData","formSchema","nodeKey","reducedBlock","labels","i18n","editor","getDocPreferences","setDocFieldPreferences","collapsed","setCollapsed","useState","initialState","then","currentDocPreferences","currentFieldPreferences","fields","name","collapsedMap","id","undefined","hasSubmitted","errorCount","setErrorCount","fieldHasErrors","classNames","filter","Boolean","join","onFormChange","fullFieldsWithValues","newFormData","blockName","blockName2","blockType","removeUndefinedAndNullRecursively","obj","Object","keys","forEach","key","setTimeout","update","node","setFields","rowErrorCount","formField","values","valid","onCollapsedChange","newCollapsed","size","removeBlock","remove","Fragment","className","collapsibleStyle","header","div","pillStyle","singular","path","readOnly","count","withMessage","isEditable","buttonStyle","disabled","icon","onClick","e","preventDefault","round","tooltip","onToggle","fieldMap","Array","isArray","forceRender","margins","onChange"],"mappings":"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"}
|
|
@@ -21,4 +21,4 @@ export const FormSavePlugin = (props)=>{
|
|
|
21
21
|
return null;
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
//# sourceMappingURL=
|
|
24
|
+
//# sourceMappingURL=FormSavePlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/field/features/blocks/component/FormSavePlugin.tsx"],"sourcesContent":["import type { FormState } from 'payload/types'\nimport type { Data } from 'payload/types'\nimport type React from 'react'\n\nimport { reduceFieldsToValues, useAllFormFields } from '@payloadcms/ui'\nimport { useEffect } from 'react'\n\ntype Props = {\n onChange?: ({\n fullFieldsWithValues,\n newFormData,\n }: {\n fullFieldsWithValues: FormState\n newFormData: Data\n }) => void\n}\n\nexport const FormSavePlugin: React.FC<Props> = (props) => {\n const { onChange } = props\n\n const [fields, dispatchFields] = useAllFormFields()\n\n // Pass in fields, and indicate if you'd like to \"unflatten\" field data.\n // The result below will reflect the data stored in the form at the given time\n const newFormData = reduceFieldsToValues(fields, true)\n\n useEffect(() => {\n if (onChange) {\n onChange({ fullFieldsWithValues: fields, newFormData })\n }\n }, [newFormData, onChange, fields])\n\n return null\n}\n"],"names":["reduceFieldsToValues","useAllFormFields","useEffect","FormSavePlugin","props","onChange","fields","dispatchFields","newFormData","fullFieldsWithValues"],"mappings":"AAIA,SAASA,oBAAoB,EAAEC,gBAAgB,QAAQ,iBAAgB;AACvE,SAASC,SAAS,QAAQ,QAAO;AAYjC,OAAO,MAAMC,iBAAkC,CAACC;IAC9C,MAAM,EAAEC,QAAQ,EAAE,GAAGD;IAErB,MAAM,CAACE,QAAQC,eAAe,GAAGN;IAEjC,wEAAwE;IACxE,8EAA8E;IAC9E,MAAMO,cAAcR,qBAAqBM,QAAQ;IAEjDJ,UAAU;QACR,IAAIG,UAAU;YACZA,SAAS;gBAAEI,sBAAsBH;gBAAQE;YAAY;QACvD;IACF,GAAG;QAACA;QAAaH;QAAUC;KAAO;IAElC,OAAO;AACT,EAAC"}
|
|
@@ -118,4 +118,4 @@ export const BlockComponent = (props)=>{
|
|
|
118
118
|
}, formContent);
|
|
119
119
|
};
|
|
120
120
|
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9ibG9ja3MvY29tcG9uZW50L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB7XG4gIEZpZWxkUGF0aFByb3ZpZGVyLFxuICBGb3JtLFxuICB0eXBlIEZvcm1Qcm9wcyxcbiAgZ2V0Rm9ybVN0YXRlLFxuICB1c2VDb25maWcsXG4gIHVzZURvY3VtZW50SW5mbyxcbiAgdXNlRmllbGRQYXRoLFxuICB1c2VGb3JtU3VibWl0dGVkLFxufSBmcm9tICdAcGF5bG9hZGNtcy91aSdcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyB0eXBlIEJsb2NrRmllbGRzIH0gZnJvbSAnLi4vbm9kZXMvQmxvY2tzTm9kZS5qcydcbmNvbnN0IGJhc2VDbGFzcyA9ICdsZXhpY2FsLWJsb2NrJ1xuXG5pbXBvcnQgdHlwZSB7IFJlZHVjZWRCbG9jayB9IGZyb20gJ0BwYXlsb2FkY21zL3VpL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGb3JtU3RhdGUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCdcblxuaW1wb3J0IHR5cGUgeyBDbGllbnRDb21wb25lbnRQcm9wcyB9IGZyb20gJy4uLy4uL3R5cGVzLmpzJ1xuaW1wb3J0IHR5cGUgeyBCbG9ja3NGZWF0dXJlQ2xpZW50UHJvcHMgfSBmcm9tICcuLi9mZWF0dXJlLmNsaWVudC5qcydcblxuaW1wb3J0IHsgdXNlRWRpdG9yQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2xleGljYWwvY29uZmlnL2NsaWVudC9FZGl0b3JDb25maWdQcm92aWRlci5qcydcbmltcG9ydCB7IEJsb2NrQ29udGVudCB9IGZyb20gJy4vQmxvY2tDb250ZW50LmpzJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGJsb2NrRmllbGRXcmFwcGVyTmFtZTogc3RyaW5nXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG5cbiAgZm9ybURhdGE6IEJsb2NrRmllbGRzXG4gIG5vZGVLZXk/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgdHJhbnNmb3JtZWRGb3JtRGF0YSBhbHJlYWR5IGNvbWVzIHdyYXBwZWQgaW4gYmxvY2tGaWVsZFdyYXBwZXJOYW1lXG4gICAqL1xuICB0cmFuc2Zvcm1lZEZvcm1EYXRhOiBCbG9ja0ZpZWxkc1xufVxuXG5leHBvcnQgY29uc3QgQmxvY2tDb21wb25lbnQ6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGJsb2NrRmllbGRXcmFwcGVyTmFtZSwgZm9ybURhdGEsIG5vZGVLZXkgfSA9IHByb3BzXG4gIGNvbnN0IGNvbmZpZyA9IHVzZUNvbmZpZygpXG4gIGNvbnN0IHN1Ym1pdHRlZCA9IHVzZUZvcm1TdWJtaXR0ZWQoKVxuICBjb25zdCB7IGlkIH0gPSB1c2VEb2N1bWVudEluZm8oKVxuICBjb25zdCB7IHNjaGVtYVBhdGggfSA9IHVzZUZpZWxkUGF0aCgpXG4gIGNvbnN0IHsgZWRpdG9yQ29uZmlnLCBmaWVsZDogcGFyZW50TGV4aWNhbFJpY2hUZXh0RmllbGQgfSA9IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQoKVxuXG4gIGNvbnN0IFtpbml0aWFsU3RhdGUsIHNldEluaXRpYWxTdGF0ZV0gPSB1c2VTdGF0ZTxGb3JtU3RhdGUgfCBmYWxzZT4oZmFsc2UpXG4gIGNvbnN0IHtcbiAgICBmaWVsZDogeyByaWNoVGV4dENvbXBvbmVudE1hcCB9LFxuICB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG5cbiAgY29uc3QgY29tcG9uZW50TWFwUmVuZGVyZWRGaWVsZHNQYXRoID0gYGZlYXR1cmUuYmxvY2tzLmZpZWxkcy4ke2Zvcm1EYXRhPy5ibG9ja1R5cGV9YFxuICBjb25zdCBzY2hlbWFGaWVsZHNQYXRoID0gYCR7c2NoZW1hUGF0aH0uZmVhdHVyZS5ibG9ja3MuJHtmb3JtRGF0YT8uYmxvY2tUeXBlfWBcblxuICBjb25zdCByZWR1Y2VkQmxvY2s6IFJlZHVjZWRCbG9jayA9IChcbiAgICBlZGl0b3JDb25maWc/LnJlc29sdmVkRmVhdHVyZU1hcD8uZ2V0KCdibG9ja3MnKVxuICAgICAgPy5jbGllbnRGZWF0dXJlUHJvcHMgYXMgQ2xpZW50Q29tcG9uZW50UHJvcHM8QmxvY2tzRmVhdHVyZUNsaWVudFByb3BzPlxuICApPy5yZWR1Y2VkQmxvY2tzPy5maW5kKChibG9jaykgPT4gYmxvY2suc2x1ZyA9PT0gZm9ybURhdGE/LmJsb2NrVHlwZSlcblxuICBjb25zdCBmaWVsZE1hcCA9IHJpY2hUZXh0Q29tcG9uZW50TWFwLmdldChjb21wb25lbnRNYXBSZW5kZXJlZEZpZWxkc1BhdGgpXG4gIC8vIEZpZWxkIFNjaGVtYVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGF3YWl0SW5pdGlhbFN0YXRlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGUgPSBhd2FpdCBnZXRGb3JtU3RhdGUoe1xuICAgICAgICBhcGlSb3V0ZTogY29uZmlnLnJvdXRlcy5hcGksXG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBkYXRhOiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGZvcm1EYXRhKSksXG4gICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICBzY2hlbWFQYXRoOiBzY2hlbWFGaWVsZHNQYXRoLFxuICAgICAgICB9LFxuICAgICAgICBzZXJ2ZXJVUkw6IGNvbmZpZy5zZXJ2ZXJVUkwsXG4gICAgICB9KSAvLyBGb3JtIFN0YXRlXG5cbiAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICBzZXRJbml0aWFsU3RhdGUoe1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGJsb2NrTmFtZTI6IHtcbiAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogJycsXG4gICAgICAgICAgICBwYXNzZXNDb25kaXRpb246IHRydWUsXG4gICAgICAgICAgICB2YWxpZDogdHJ1ZSxcbiAgICAgICAgICAgIHZhbHVlOiBmb3JtRGF0YS5ibG9ja05hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZm9ybURhdGEpIHtcbiAgICAgIHZvaWQgYXdhaXRJbml0aWFsU3RhdGUoKVxuICAgIH1cbiAgfSwgW2NvbmZpZy5yb3V0ZXMuYXBpLCBjb25maWcuc2VydmVyVVJMLCBzY2hlbWFGaWVsZHNQYXRoLCBpZF0pXG5cbiAgY29uc3Qgb25DaGFuZ2U6IEZvcm1Qcm9wc1snb25DaGFuZ2UnXVswXSA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jICh7IGZvcm1TdGF0ZTogcHJldkZvcm1TdGF0ZSB9KSA9PiB7XG4gICAgICBjb25zdCBmb3JtU3RhdGUgPSBhd2FpdCBnZXRGb3JtU3RhdGUoe1xuICAgICAgICBhcGlSb3V0ZTogY29uZmlnLnJvdXRlcy5hcGksXG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBmb3JtU3RhdGU6IHByZXZGb3JtU3RhdGUsXG4gICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICBzY2hlbWFQYXRoOiBzY2hlbWFGaWVsZHNQYXRoLFxuICAgICAgICB9LFxuICAgICAgICBzZXJ2ZXJVUkw6IGNvbmZpZy5zZXJ2ZXJVUkwsXG4gICAgICB9KVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5mb3JtU3RhdGUsXG4gICAgICAgIGJsb2NrTmFtZTI6IHtcbiAgICAgICAgICBpbml0aWFsVmFsdWU6ICcnLFxuICAgICAgICAgIHBhc3Nlc0NvbmRpdGlvbjogdHJ1ZSxcbiAgICAgICAgICB2YWxpZDogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogZm9ybURhdGEuYmxvY2tOYW1lLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0sXG5cbiAgICBbY29uZmlnLnJvdXRlcy5hcGksIGNvbmZpZy5zZXJ2ZXJVUkwsIHNjaGVtYUZpZWxkc1BhdGgsIGlkLCBmb3JtRGF0YS5ibG9ja05hbWVdLFxuICApXG5cbiAgLy8gTWVtb2l6ZWQgRm9ybSBKU1hcbiAgY29uc3QgZm9ybUNvbnRlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgcmVkdWNlZEJsb2NrICYmXG4gICAgICBpbml0aWFsU3RhdGUgIT09IGZhbHNlICYmIChcbiAgICAgICAgPEZpZWxkUGF0aFByb3ZpZGVyIHBhdGg9XCJcIiBzY2hlbWFQYXRoPVwiXCI+XG4gICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLy8gVE9ETzogRml4IHRoaXMgdHlwZS4gSXMgdGhpcyBjb3JyZWN0P1xuICAgICAgICAgICAgZmllbGRzPXtmaWVsZE1hcH1cbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZT17aW5pdGlhbFN0YXRlfVxuICAgICAgICAgICAgb25DaGFuZ2U9e1tvbkNoYW5nZV19XG4gICAgICAgICAgICBzdWJtaXR0ZWQ9e3N1Ym1pdHRlZH1cbiAgICAgICAgICAgIHV1aWQ9e3V1aWQoKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QmxvY2tDb250ZW50XG4gICAgICAgICAgICAgIGJhc2VDbGFzcz17YmFzZUNsYXNzfVxuICAgICAgICAgICAgICBmaWVsZD17cGFyZW50TGV4aWNhbFJpY2hUZXh0RmllbGR9XG4gICAgICAgICAgICAgIGZvcm1EYXRhPXtmb3JtRGF0YX1cbiAgICAgICAgICAgICAgZm9ybVNjaGVtYT17QXJyYXkuaXNBcnJheShmaWVsZE1hcCkgPyBmaWVsZE1hcCA6IFtdfVxuICAgICAgICAgICAgICBub2RlS2V5PXtub2RlS2V5fVxuICAgICAgICAgICAgICByZWR1Y2VkQmxvY2s9e3JlZHVjZWRCbG9ja31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Gb3JtPlxuICAgICAgICA8L0ZpZWxkUGF0aFByb3ZpZGVyPlxuICAgICAgKVxuICAgIClcbiAgfSwgW1xuICAgIGZpZWxkTWFwLFxuICAgIHBhcmVudExleGljYWxSaWNoVGV4dEZpZWxkLFxuICAgIG5vZGVLZXksXG4gICAgc3VibWl0dGVkLFxuICAgIGluaXRpYWxTdGF0ZSxcbiAgICByZWR1Y2VkQmxvY2ssXG4gICAgYmxvY2tGaWVsZFdyYXBwZXJOYW1lLFxuICAgIG9uQ2hhbmdlLFxuICBdKVxuXG4gIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT57Zm9ybUNvbnRlbnR9PC9kaXY+XG59XG4iXSwibmFtZXMiOlsiRmllbGRQYXRoUHJvdmlkZXIiLCJGb3JtIiwiZ2V0Rm9ybVN0YXRlIiwidXNlQ29uZmlnIiwidXNlRG9jdW1lbnRJbmZvIiwidXNlRmllbGRQYXRoIiwidXNlRm9ybVN1Ym1pdHRlZCIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlU3RhdGUiLCJiYXNlQ2xhc3MiLCJ2NCIsInV1aWQiLCJ1c2VFZGl0b3JDb25maWdDb250ZXh0IiwiQmxvY2tDb250ZW50IiwiQmxvY2tDb21wb25lbnQiLCJwcm9wcyIsImJsb2NrRmllbGRXcmFwcGVyTmFtZSIsImZvcm1EYXRhIiwibm9kZUtleSIsImNvbmZpZyIsInN1Ym1pdHRlZCIsImlkIiwic2NoZW1hUGF0aCIsImVkaXRvckNvbmZpZyIsImZpZWxkIiwicGFyZW50TGV4aWNhbFJpY2hUZXh0RmllbGQiLCJpbml0aWFsU3RhdGUiLCJzZXRJbml0aWFsU3RhdGUiLCJyaWNoVGV4dENvbXBvbmVudE1hcCIsImNvbXBvbmVudE1hcFJlbmRlcmVkRmllbGRzUGF0aCIsImJsb2NrVHlwZSIsInNjaGVtYUZpZWxkc1BhdGgiLCJyZWR1Y2VkQmxvY2siLCJyZXNvbHZlZEZlYXR1cmVNYXAiLCJnZXQiLCJjbGllbnRGZWF0dXJlUHJvcHMiLCJyZWR1Y2VkQmxvY2tzIiwiZmluZCIsImJsb2NrIiwic2x1ZyIsImZpZWxkTWFwIiwiYXdhaXRJbml0aWFsU3RhdGUiLCJzdGF0ZSIsImFwaVJvdXRlIiwicm91dGVzIiwiYXBpIiwiYm9keSIsImRhdGEiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJvcGVyYXRpb24iLCJzZXJ2ZXJVUkwiLCJibG9ja05hbWUyIiwiaW5pdGlhbFZhbHVlIiwicGFzc2VzQ29uZGl0aW9uIiwidmFsaWQiLCJ2YWx1ZSIsImJsb2NrTmFtZSIsIm9uQ2hhbmdlIiwiZm9ybVN0YXRlIiwicHJldkZvcm1TdGF0ZSIsImZvcm1Db250ZW50IiwicGF0aCIsImZpZWxkcyIsImZvcm1TY2hlbWEiLCJBcnJheSIsImlzQXJyYXkiLCJkaXYiLCJjbGFzc05hbWUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsU0FDRUEsaUJBQWlCLEVBQ2pCQyxJQUFJLEVBRUpDLFlBQVksRUFDWkMsU0FBUyxFQUNUQyxlQUFlLEVBQ2ZDLFlBQVksRUFDWkMsZ0JBQWdCLFFBQ1gsaUJBQWdCO0FBQ3ZCLE9BQU9DLFNBQVNDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBUSxRQUFPO0FBR3hFLE1BQU1DLFlBQVk7QUFLbEIsU0FBU0MsTUFBTUMsSUFBSSxRQUFRLE9BQU07QUFLakMsU0FBU0Msc0JBQXNCLFFBQVEseURBQXdEO0FBQy9GLFNBQVNDLFlBQVksUUFBUSxvQkFBbUI7QUFDaEQsT0FBTyxlQUFjO0FBY3JCLE9BQU8sTUFBTUMsaUJBQWtDLENBQUNDO0lBQzlDLE1BQU0sRUFBRUMscUJBQXFCLEVBQUVDLFFBQVEsRUFBRUMsT0FBTyxFQUFFLEdBQUdIO0lBQ3JELE1BQU1JLFNBQVNuQjtJQUNmLE1BQU1vQixZQUFZakI7SUFDbEIsTUFBTSxFQUFFa0IsRUFBRSxFQUFFLEdBQUdwQjtJQUNmLE1BQU0sRUFBRXFCLFVBQVUsRUFBRSxHQUFHcEI7SUFDdkIsTUFBTSxFQUFFcUIsWUFBWSxFQUFFQyxPQUFPQywwQkFBMEIsRUFBRSxHQUFHYjtJQUU1RCxNQUFNLENBQUNjLGNBQWNDLGdCQUFnQixHQUFH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
|
|
121
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/field/features/blocks/component/index.tsx"],"sourcesContent":["'use client'\nimport {\n FieldPathProvider,\n Form,\n type FormProps,\n getFormState,\n useConfig,\n useDocumentInfo,\n useFieldPath,\n useFormSubmitted,\n} from '@payloadcms/ui'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { type BlockFields } from '../nodes/BlocksNode.js'\nconst baseClass = 'lexical-block'\n\nimport type { ReducedBlock } from '@payloadcms/ui/types'\nimport type { FormState } from 'payload/types'\n\nimport { v4 as uuid } from 'uuid'\n\nimport type { ClientComponentProps } from '../../types.js'\nimport type { BlocksFeatureClientProps } from '../feature.client.js'\n\nimport { useEditorConfigContext } from '../../../lexical/config/client/EditorConfigProvider.js'\nimport { BlockContent } from './BlockContent.js'\nimport './index.scss'\n\ntype Props = {\n blockFieldWrapperName: string\n children?: React.ReactNode\n\n formData: BlockFields\n nodeKey?: string\n /**\n * This transformedFormData already comes wrapped in blockFieldWrapperName\n */\n transformedFormData: BlockFields\n}\n\nexport const BlockComponent: React.FC<Props> = (props) => {\n const { blockFieldWrapperName, formData, nodeKey } = props\n const config = useConfig()\n const submitted = useFormSubmitted()\n const { id } = useDocumentInfo()\n const { schemaPath } = useFieldPath()\n const { editorConfig, field: parentLexicalRichTextField } = useEditorConfigContext()\n\n const [initialState, setInitialState] = useState<FormState | false>(false)\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n const componentMapRenderedFieldsPath = `feature.blocks.fields.${formData?.blockType}`\n const schemaFieldsPath = `${schemaPath}.feature.blocks.${formData?.blockType}`\n\n const reducedBlock: ReducedBlock = (\n editorConfig?.resolvedFeatureMap?.get('blocks')\n ?.clientFeatureProps as ClientComponentProps<BlocksFeatureClientProps>\n )?.reducedBlocks?.find((block) => block.slug === formData?.blockType)\n\n const fieldMap = richTextComponentMap.get(componentMapRenderedFieldsPath)\n // Field Schema\n useEffect(() => {\n const awaitInitialState = async () => {\n const state = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id,\n data: JSON.parse(JSON.stringify(formData)),\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n }) // Form State\n\n if (state) {\n setInitialState({\n ...state,\n blockName2: {\n initialValue: '',\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n },\n })\n }\n }\n\n if (formData) {\n void awaitInitialState()\n }\n }, [config.routes.api, config.serverURL, schemaFieldsPath, id])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const formState = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id,\n formState: prevFormState,\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n })\n\n return {\n ...formState,\n blockName2: {\n initialValue: '',\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n },\n }\n },\n\n [config.routes.api, config.serverURL, schemaFieldsPath, id, formData.blockName],\n )\n\n // Memoized Form JSX\n const formContent = useMemo(() => {\n return (\n reducedBlock &&\n initialState !== false && (\n <FieldPathProvider path=\"\" schemaPath=\"\">\n <Form\n // @ts-expect-error // TODO: Fix this type. Is this correct?\n fields={fieldMap}\n initialState={initialState}\n onChange={[onChange]}\n submitted={submitted}\n uuid={uuid()}\n >\n <BlockContent\n baseClass={baseClass}\n field={parentLexicalRichTextField}\n formData={formData}\n formSchema={Array.isArray(fieldMap) ? fieldMap : []}\n nodeKey={nodeKey}\n reducedBlock={reducedBlock}\n />\n </Form>\n </FieldPathProvider>\n )\n )\n }, [\n fieldMap,\n parentLexicalRichTextField,\n nodeKey,\n submitted,\n initialState,\n reducedBlock,\n blockFieldWrapperName,\n onChange,\n ])\n\n return <div className={baseClass}>{formContent}</div>\n}\n"],"names":["FieldPathProvider","Form","getFormState","useConfig","useDocumentInfo","useFieldPath","useFormSubmitted","React","useCallback","useEffect","useMemo","useState","baseClass","v4","uuid","useEditorConfigContext","BlockContent","BlockComponent","props","blockFieldWrapperName","formData","nodeKey","config","submitted","id","schemaPath","editorConfig","field","parentLexicalRichTextField","initialState","setInitialState","richTextComponentMap","componentMapRenderedFieldsPath","blockType","schemaFieldsPath","reducedBlock","resolvedFeatureMap","get","clientFeatureProps","reducedBlocks","find","block","slug","fieldMap","awaitInitialState","state","apiRoute","routes","api","body","data","JSON","parse","stringify","operation","serverURL","blockName2","initialValue","passesCondition","valid","value","blockName","onChange","formState","prevFormState","formContent","path","fields","formSchema","Array","isArray","div","className"],"mappings":"AAAA;AACA,SACEA,iBAAiB,EACjBC,IAAI,EAEJC,YAAY,EACZC,SAAS,EACTC,eAAe,EACfC,YAAY,EACZC,gBAAgB,QACX,iBAAgB;AACvB,OAAOC,SAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,QAAO;AAGxE,MAAMC,YAAY;AAKlB,SAASC,MAAMC,IAAI,QAAQ,OAAM;AAKjC,SAASC,sBAAsB,QAAQ,yDAAwD;AAC/F,SAASC,YAAY,QAAQ,oBAAmB;AAChD,OAAO,eAAc;AAcrB,OAAO,MAAMC,iBAAkC,CAACC;IAC9C,MAAM,EAAEC,qBAAqB,EAAEC,QAAQ,EAAEC,OAAO,EAAE,GAAGH;IACrD,MAAMI,SAASnB;IACf,MAAMoB,YAAYjB;IAClB,MAAM,EAAEkB,EAAE,EAAE,GAAGpB;IACf,MAAM,EAAEqB,UAAU,EAAE,GAAGpB;IACvB,MAAM,EAAEqB,YAAY,EAAEC,OAAOC,0BAA0B,EAAE,GAAGb;IAE5D,MAAM,CAACc,cAAcC,gBAAgB,GAAGnB,SAA4B;IACpE,MAAM,EACJgB,OAAO,EAAEI,oBAAoB,EAAE,EAChC,GAAGhB;IAEJ,MAAMiB,iCAAiC,CAAC,sBAAsB,EAAEZ,UAAUa,UAAU,CAAC;IACrF,MAAMC,mBAAmB,CAAC,EAAET,WAAW,gBAAgB,EAAEL,UAAUa,UAAU,CAAC;IAE9E,MAAME,eACJT,cAAcU,oBAAoBC,IAAI,WAClCC,oBACHC,eAAeC,KAAK,CAACC,QAAUA,MAAMC,IAAI,KAAKtB,UAAUa;IAE3D,MAAMU,WAAWZ,qBAAqBM,GAAG,CAACL;IAC1C,eAAe;IACfvB,UAAU;QACR,MAAMmC,oBAAoB;YACxB,MAAMC,QAAQ,MAAM3C,aAAa;gBAC/B4C,UAAUxB,OAAOyB,MAAM,CAACC,GAAG;gBAC3BC,MAAM;oBACJzB;oBACA0B,MAAMC,KAAKC,KAAK,CAACD,KAAKE,SAAS,CAACjC;oBAChCkC,WAAW;oBACX7B,YAAYS;gBACd;gBACAqB,WAAWjC,OAAOiC,SAAS;YAC7B,GAAG,aAAa;;YAEhB,IAAIV,OAAO;gBACTf,gBAAgB;oBACd,GAAGe,KAAK;oBACRW,YAAY;wBACVC,cAAc;wBACdC,iBAAiB;wBACjBC,OAAO;wBACPC,OAAOxC,SAASyC,SAAS;oBAC3B;gBACF;YACF;QACF;QAEA,IAAIzC,UAAU;YACZ,KAAKwB;QACP;IACF,GAAG;QAACtB,OAAOyB,MAAM,CAACC,GAAG;QAAE1B,OAAOiC,SAAS;QAAErB;QAAkBV;KAAG;IAE9D,MAAMsC,WAAqCtD,YACzC,OAAO,EAAEuD,WAAWC,aAAa,EAAE;QACjC,MAAMD,YAAY,MAAM7D,aAAa;YACnC4C,UAAUxB,OAAOyB,MAAM,CAACC,GAAG;YAC3BC,MAAM;gBACJzB;gBACAuC,WAAWC;gBACXV,WAAW;gBACX7B,YAAYS;YACd;YACAqB,WAAWjC,OAAOiC,SAAS;QAC7B;QAEA,OAAO;YACL,GAAGQ,SAAS;YACZP,YAAY;gBACVC,cAAc;gBACdC,iBAAiB;gBACjBC,OAAO;gBACPC,OAAOxC,SAASyC,SAAS;YAC3B;QACF;IACF,GAEA;QAACvC,OAAOyB,MAAM,CAACC,GAAG;QAAE1B,OAAOiC,SAAS;QAAErB;QAAkBV;QAAIJ,SAASyC,SAAS;KAAC;IAGjF,oBAAoB;IACpB,MAAMI,cAAcvD,QAAQ;QAC1B,OACEyB,gBACAN,iBAAiB,uBACf,oBAAC7B;YAAkBkE,MAAK;YAAGzC,YAAW;yBACpC,oBAACxB;YACC,4DAA4D;YAC5DkE,QAAQxB;YACRd,cAAcA;YACdiC,UAAU;gBAACA;aAAS;YACpBvC,WAAWA;YACXT,MAAMA;yBAEN,oBAACE;YACCJ,WAAWA;YACXe,OAAOC;YACPR,UAAUA;YACVgD,YAAYC,MAAMC,OAAO,CAAC3B,YAAYA,WAAW,EAAE;YACnDtB,SAASA;YACTc,cAAcA;;IAM1B,GAAG;QACDQ;QACAf;QACAP;QACAE;QACAM;QACAM;QACAhB;QACA2C;KACD;IAED,qBAAO,oBAACS;QAAIC,WAAW5D;OAAYqD;AACrC,EAAC"}
|
|
@@ -78,4 +78,4 @@ export const BlocksDrawerComponent = ()=>{
|
|
|
78
78
|
});
|
|
79
79
|
};
|
|
80
80
|
|
|
81
|
-
//# sourceMappingURL=
|
|
81
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/field/features/blocks/drawer/index.tsx"],"sourcesContent":["'use client'\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js'\nconst { useLexicalComposerContext } = lexicalComposerContextImport\nimport { BlocksDrawer, formatDrawerSlug, useEditDepth, useTranslation } from '@payloadcms/ui'\nimport lexicalImport from 'lexical'\nconst { $getNodeByKey, COMMAND_PRIORITY_EDITOR, createCommand } = lexicalImport\n\nimport type { LexicalCommand, LexicalEditor } from 'lexical'\n\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { ClientComponentProps } from '../../types.js'\nimport type { BlocksFeatureClientProps } from '../feature.client.js'\n\nimport { useEditorConfigContext } from '../../../lexical/config/client/EditorConfigProvider.js'\nimport { $createBlockNode } from '../nodes/BlocksNode.js'\nimport { INSERT_BLOCK_COMMAND } from '../plugin/commands.js'\nconst baseClass = 'lexical-blocks-drawer'\n\nexport const INSERT_BLOCK_WITH_DRAWER_COMMAND: LexicalCommand<{\n replace: { nodeKey: string } | false\n}> = createCommand('INSERT_BLOCK_WITH_DRAWER_COMMAND')\n\nconst insertBlock = ({\n blockType,\n editor,\n replaceNodeKey,\n}: {\n blockType: string\n editor: LexicalEditor\n replaceNodeKey: null | string\n}) => {\n if (!replaceNodeKey) {\n editor.dispatchCommand(INSERT_BLOCK_COMMAND, {\n id: null,\n blockName: '',\n blockType,\n })\n } else {\n editor.update(() => {\n const node = $getNodeByKey(replaceNodeKey)\n if (node) {\n node.replace(\n $createBlockNode({\n id: null,\n blockName: '',\n blockType,\n }),\n )\n }\n })\n }\n}\n\nexport const BlocksDrawerComponent: React.FC = () => {\n const { useModal } = facelessUIImport\n\n const [editor] = useLexicalComposerContext()\n const { editorConfig, uuid } = useEditorConfigContext()\n\n const [replaceNodeKey, setReplaceNodeKey] = useState<null | string>(null)\n const editDepth = useEditDepth()\n const { t } = useTranslation()\n const { openModal } = useModal()\n\n const labels = {\n plural: t('fields:blocks') || 'Blocks',\n singular: t('fields:block') || 'Block',\n }\n\n const addRow = useCallback(\n (rowIndex: number, blockType: string) => {\n insertBlock({\n blockType,\n editor,\n replaceNodeKey,\n })\n },\n [editor, replaceNodeKey],\n )\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-rich-text-blocks-` + uuid,\n depth: editDepth,\n })\n\n const reducedBlocks = (\n editorConfig?.resolvedFeatureMap?.get('blocks')\n ?.clientFeatureProps as ClientComponentProps<BlocksFeatureClientProps>\n )?.reducedBlocks\n\n useEffect(() => {\n return editor.registerCommand<{\n replace: { nodeKey: string } | false\n }>(\n INSERT_BLOCK_WITH_DRAWER_COMMAND,\n (payload) => {\n setReplaceNodeKey(payload?.replace ? payload?.replace.nodeKey : null)\n openModal(drawerSlug)\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n )\n }, [editor, drawerSlug, openModal])\n\n return (\n <BlocksDrawer\n addRow={addRow}\n addRowIndex={0}\n blocks={reducedBlocks}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n )\n}\n"],"names":["facelessUIImport","lexicalComposerContextImport","useLexicalComposerContext","BlocksDrawer","formatDrawerSlug","useEditDepth","useTranslation","lexicalImport","$getNodeByKey","COMMAND_PRIORITY_EDITOR","createCommand","React","useCallback","useEffect","useState","useEditorConfigContext","$createBlockNode","INSERT_BLOCK_COMMAND","baseClass","INSERT_BLOCK_WITH_DRAWER_COMMAND","insertBlock","blockType","editor","replaceNodeKey","dispatchCommand","id","blockName","update","node","replace","BlocksDrawerComponent","useModal","editorConfig","uuid","setReplaceNodeKey","editDepth","t","openModal","labels","plural","singular","addRow","rowIndex","drawerSlug","slug","depth","reducedBlocks","resolvedFeatureMap","get","clientFeatureProps","registerCommand","payload","nodeKey","addRowIndex","blocks"],"mappings":"AAAA;AACA,YAAYA,sBAAsB,qBAAoB;AACtD,OAAOC,kCAAkC,2CAA0C;AACnF,MAAM,EAAEC,yBAAyB,EAAE,GAAGD;AACtC,SAASE,YAAY,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,cAAc,QAAQ,iBAAgB;AAC7F,OAAOC,mBAAmB,UAAS;AACnC,MAAM,EAAEC,aAAa,EAAEC,uBAAuB,EAAEC,aAAa,EAAE,GAAGH;AAIlE,OAAOI,SAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAK/D,SAASC,sBAAsB,QAAQ,yDAAwD;AAC/F,SAASC,gBAAgB,QAAQ,yBAAwB;AACzD,SAASC,oBAAoB,QAAQ,wBAAuB;AAC5D,MAAMC,YAAY;AAElB,OAAO,MAAMC,mCAERT,cAAc,oCAAmC;AAEtD,MAAMU,cAAc,CAAC,EACnBC,SAAS,EACTC,MAAM,EACNC,cAAc,EAKf;IACC,IAAI,CAACA,gBAAgB;QACnBD,OAAOE,eAAe,CAACP,sBAAsB;YAC3CQ,IAAI;YACJC,WAAW;YACXL;QACF;IACF,OAAO;QACLC,OAAOK,MAAM,CAAC;YACZ,MAAMC,OAAOpB,cAAce;YAC3B,IAAIK,MAAM;gBACRA,KAAKC,OAAO,CACVb,iBAAiB;oBACfS,IAAI;oBACJC,WAAW;oBACXL;gBACF;YAEJ;QACF;IACF;AACF;AAEA,OAAO,MAAMS,wBAAkC;IAC7C,MAAM,EAAEC,QAAQ,EAAE,GAAG/B;IAErB,MAAM,CAACsB,OAAO,GAAGpB;IACjB,MAAM,EAAE8B,YAAY,EAAEC,IAAI,EAAE,GAAGlB;IAE/B,MAAM,CAACQ,gBAAgBW,kBAAkB,GAAGpB,SAAwB;IACpE,MAAMqB,YAAY9B;IAClB,MAAM,EAAE+B,CAAC,EAAE,GAAG9B;IACd,MAAM,EAAE+B,SAAS,EAAE,GAAGN;IAEtB,MAAMO,SAAS;QACbC,QAAQH,EAAE,oBAAoB;QAC9BI,UAAUJ,EAAE,mBAAmB;IACjC;IAEA,MAAMK,SAAS7B,YACb,CAAC8B,UAAkBrB;QACjBD,YAAY;YACVC;YACAC;YACAC;QACF;IACF,GACA;QAACD;QAAQC;KAAe;IAG1B,MAAMoB,aAAavC,iBAAiB;QAClCwC,MAAM,CAAC,yBAAyB,CAAC,GAAGX;QACpCY,OAAOV;IACT;IAEA,MAAMW,gBACJd,cAAce,oBAAoBC,IAAI,WAClCC,oBACHH;IAEHjC,UAAU;QACR,OAAOS,OAAO4B,eAAe,CAG3B/B,kCACA,CAACgC;YACCjB,kBAAkBiB,SAAStB,UAAUsB,SAAStB,QAAQuB,UAAU;YAChEf,UAAUM;YACV,OAAO;QACT,GACAlC;IAEJ,GAAG;QAACa;QAAQqB;QAAYN;KAAU;IAElC,qBACE,oBAAClC;QACCsC,QAAQA;QACRY,aAAa;QACbC,QAAQR;QACRH,YAAYA;QACZL,QAAQA;;AAGd,EAAC"}
|
|
@@ -58,4 +58,4 @@ const BlocksFeatureClient = (props)=>{
|
|
|
58
58
|
};
|
|
59
59
|
export const BlocksFeatureClientComponent = createClientComponent(BlocksFeatureClient);
|
|
60
60
|
|
|
61
|
-
//# sourceMappingURL=
|
|
61
|
+
//# sourceMappingURL=feature.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/features/blocks/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport type { ReducedBlock } from '@payloadcms/ui/types'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { FeatureProviderProviderClient } from '../types.js'\n\nimport { SlashMenuOption } from '../../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\nimport { BlockIcon } from '../../lexical/ui/icons/Block/index.js'\nimport { createClientComponent } from '../createClientComponent.js'\nimport { BlockNode } from './nodes/BlocksNode.js'\nimport { INSERT_BLOCK_COMMAND } from './plugin/commands.js'\nimport { BlocksPlugin } from './plugin/index.js'\n\nexport type BlocksFeatureClientProps = {\n reducedBlocks: ReducedBlock[]\n}\n\nconst BlocksFeatureClient: FeatureProviderProviderClient<BlocksFeatureClientProps> = (props) => {\n return {\n clientFeatureProps: props,\n feature: () => ({\n clientFeatureProps: props,\n nodes: [BlockNode],\n plugins: [\n {\n Component: BlocksPlugin,\n position: 'normal',\n },\n ],\n slashMenu: {\n options: [\n {\n displayName: 'Blocks',\n key: 'blocks',\n options: [\n ...props.reducedBlocks.map((block) => {\n return new SlashMenuOption('block-' + block.slug, {\n Icon: BlockIcon,\n displayName: ({ i18n }) => {\n if (!block.labels.singular) {\n return block.slug\n }\n\n return getTranslation(block.labels.singular, i18n)\n },\n keywords: ['block', 'blocks', block.slug],\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_BLOCK_COMMAND, {\n id: null,\n blockName: '',\n blockType: block.slug,\n })\n },\n })\n }),\n ],\n },\n ],\n },\n }),\n }\n}\n\nexport const BlocksFeatureClientComponent = createClientComponent(BlocksFeatureClient)\n"],"names":["getTranslation","SlashMenuOption","BlockIcon","createClientComponent","BlockNode","INSERT_BLOCK_COMMAND","BlocksPlugin","BlocksFeatureClient","props","clientFeatureProps","feature","nodes","plugins","Component","position","slashMenu","options","displayName","key","reducedBlocks","map","block","slug","Icon","i18n","labels","singular","keywords","onSelect","editor","dispatchCommand","id","blockName","blockType","BlocksFeatureClientComponent"],"mappings":"AAAA;AAIA,SAASA,cAAc,QAAQ,2BAA0B;AAIzD,SAASC,eAAe,QAAQ,sEAAqE;AACrG,SAASC,SAAS,QAAQ,wCAAuC;AACjE,SAASC,qBAAqB,QAAQ,8BAA6B;AACnE,SAASC,SAAS,QAAQ,wBAAuB;AACjD,SAASC,oBAAoB,QAAQ,uBAAsB;AAC3D,SAASC,YAAY,QAAQ,oBAAmB;AAMhD,MAAMC,sBAA+E,CAACC;IACpF,OAAO;QACLC,oBAAoBD;QACpBE,SAAS,IAAO,CAAA;gBACdD,oBAAoBD;gBACpBG,OAAO;oBAACP;iBAAU;gBAClBQ,SAAS;oBACP;wBACEC,WAAWP;wBACXQ,UAAU;oBACZ;iBACD;gBACDC,WAAW;oBACTC,SAAS;wBACP;4BACEC,aAAa;4BACbC,KAAK;4BACLF,SAAS;mCACJR,MAAMW,aAAa,CAACC,GAAG,CAAC,CAACC;oCAC1B,OAAO,IAAIpB,gBAAgB,WAAWoB,MAAMC,IAAI,EAAE;wCAChDC,MAAMrB;wCACNe,aAAa,CAAC,EAAEO,IAAI,EAAE;4CACpB,IAAI,CAACH,MAAMI,MAAM,CAACC,QAAQ,EAAE;gDAC1B,OAAOL,MAAMC,IAAI;4CACnB;4CAEA,OAAOtB,eAAeqB,MAAMI,MAAM,CAACC,QAAQ,EAAEF;wCAC/C;wCACAG,UAAU;4CAAC;4CAAS;4CAAUN,MAAMC,IAAI;yCAAC;wCACzCM,UAAU,CAAC,EAAEC,MAAM,EAAE;4CACnBA,OAAOC,eAAe,CAACzB,sBAAsB;gDAC3C0B,IAAI;gDACJC,WAAW;gDACXC,WAAWZ,MAAMC,IAAI;4CACvB;wCACF;oCACF;gCACF;6BACD;wBACH;qBACD;gBACH;YACF,CAAA;IACF;AACF;AAEA,OAAO,MAAMY,+BAA+B/B,sBAAsBI,qBAAoB"}
|
|
@@ -101,4 +101,4 @@ export const BlocksFeature = (props)=>{
|
|
|
101
101
|
};
|
|
102
102
|
};
|
|
103
103
|
|
|
104
|
-
//# sourceMappingURL=
|
|
104
|
+
//# sourceMappingURL=feature.server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/features/blocks/feature.server.ts"],"sourcesContent":["import type { Block, BlockField, Field } from 'payload/types'\n\nimport { baseBlockFields, sanitizeFields } from 'payload/config'\nimport { fieldsToJSONSchema, formatLabels } from 'payload/utilities'\n\nimport type { FeatureProviderProviderServer } from '../types.js'\nimport type { BlocksFeatureClientProps } from './feature.client.js'\n\nimport { cloneDeep } from '../../lexical/utils/cloneDeep.js'\nimport { BlocksFeatureClientComponent } from './feature.client.js'\nimport { BlockNode } from './nodes/BlocksNode.js'\nimport { blockPopulationPromiseHOC } from './populationPromise.js'\nimport { blockValidationHOC } from './validate.js'\n\nexport type BlocksFeatureProps = {\n blocks: Block[]\n}\n\nexport const BlocksFeature: FeatureProviderProviderServer<\n BlocksFeatureProps,\n BlocksFeatureClientProps\n> = (props) => {\n // Sanitization taken from payload/src/fields/config/sanitize.ts\n\n if (props?.blocks?.length) {\n props.blocks = props.blocks.map((block) => {\n const blockCopy = cloneDeep(block)\n\n return {\n ...blockCopy,\n fields: blockCopy.fields.concat(baseBlockFields),\n labels: !blockCopy.labels ? formatLabels(blockCopy.slug) : blockCopy.labels,\n }\n })\n // unSanitizedBlock.fields are sanitized in the React component and not here.\n // That's because we do not have access to the payload config here.\n }\n\n // Build clientProps\n const clientProps: BlocksFeatureClientProps = {\n reducedBlocks: [],\n }\n for (const block of props.blocks) {\n clientProps.reducedBlocks.push({\n slug: block.slug,\n imageAltText: block.imageAltText,\n imageURL: block.imageURL,\n labels: block.labels,\n subfields: [],\n })\n }\n\n return {\n feature: () => {\n return {\n ClientComponent: BlocksFeatureClientComponent,\n clientFeatureProps: clientProps,\n generateSchemaMap: ({ config, props }) => {\n const validRelationships = config.collections.map((c) => c.slug) || []\n\n const schemaMap: {\n [key: string]: Field[]\n } = {}\n\n for (const block of props.blocks) {\n const unSanitizedFormSchema = block.fields || []\n\n const formSchema = sanitizeFields({\n config,\n fields: unSanitizedFormSchema,\n validRelationships,\n })\n\n schemaMap[block.slug] = formSchema\n }\n\n return schemaMap\n },\n generatedTypes: {\n modifyOutputSchema: ({\n collectionIDFieldTypes,\n config,\n currentSchema,\n field,\n interfaceNameDefinitions,\n }) => {\n if (!props?.blocks?.length) {\n return currentSchema\n }\n\n // sanitize blocks\n const validRelationships = config.collections.map((c) => c.slug) || []\n\n const sanitizedBlocks = props.blocks.map((block) => {\n const blockCopy = cloneDeep(block)\n return {\n ...blockCopy,\n fields: sanitizeFields({\n config,\n fields: blockCopy.fields,\n validRelationships,\n }),\n }\n })\n\n const blocksField: BlockField = {\n name: field?.name + '_lexical_blocks',\n type: 'blocks',\n blocks: sanitizedBlocks,\n }\n // This is only done so that interfaceNameDefinitions sets those block's interfaceNames.\n // we don't actually use the JSON Schema itself in the generated types yet.\n fieldsToJSONSchema(\n collectionIDFieldTypes,\n [blocksField],\n interfaceNameDefinitions,\n config,\n )\n\n return currentSchema\n },\n },\n nodes: [\n {\n node: BlockNode,\n populationPromises: [blockPopulationPromiseHOC(props)],\n validations: [blockValidationHOC(props)],\n },\n ],\n serverFeatureProps: props,\n }\n },\n key: 'blocks',\n serverFeatureProps: props,\n }\n}\n"],"names":["baseBlockFields","sanitizeFields","fieldsToJSONSchema","formatLabels","cloneDeep","BlocksFeatureClientComponent","BlockNode","blockPopulationPromiseHOC","blockValidationHOC","BlocksFeature","props","blocks","length","map","block","blockCopy","fields","concat","labels","slug","clientProps","reducedBlocks","push","imageAltText","imageURL","subfields","feature","ClientComponent","clientFeatureProps","generateSchemaMap","config","validRelationships","collections","c","schemaMap","unSanitizedFormSchema","formSchema","generatedTypes","modifyOutputSchema","collectionIDFieldTypes","currentSchema","field","interfaceNameDefinitions","sanitizedBlocks","blocksField","name","type","nodes","node","populationPromises","validations","serverFeatureProps","key"],"mappings":"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"}
|