@payloadcms/richtext-lexical 3.0.0-alpha.41 → 3.0.0-alpha.42
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
|
@@ -3,4 +3,4 @@ import lexicalImport from 'lexical';
|
|
|
3
3
|
const { createCommand } = lexicalImport;
|
|
4
4
|
export const INSERT_UPLOAD_WITH_DRAWER_COMMAND = createCommand('INSERT_UPLOAD_WITH_DRAWER_COMMAND');
|
|
5
5
|
|
|
6
|
-
//# sourceMappingURL=
|
|
6
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/field/features/upload/drawer/commands.ts"],"sourcesContent":["'use client'\nimport type { LexicalCommand } from 'lexical'\n\nimport lexicalImport from 'lexical'\nconst { createCommand } = lexicalImport\n\nexport const INSERT_UPLOAD_WITH_DRAWER_COMMAND: LexicalCommand<{\n replace: { nodeKey: string } | false\n}> = createCommand('INSERT_UPLOAD_WITH_DRAWER_COMMAND')\n"],"names":["lexicalImport","createCommand","INSERT_UPLOAD_WITH_DRAWER_COMMAND"],"mappings":"AAAA;AAGA,OAAOA,mBAAmB,UAAS;AACnC,MAAM,EAAEC,aAAa,EAAE,GAAGD;AAE1B,OAAO,MAAME,oCAERD,cAAc,qCAAoC"}
|
|
@@ -75,4 +75,4 @@ export const UploadDrawer = (props)=>{
|
|
|
75
75
|
}, /*#__PURE__*/ React.createElement(UploadDrawerComponent, props));
|
|
76
76
|
};
|
|
77
77
|
|
|
78
|
-
//# sourceMappingURL=
|
|
78
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/field/features/upload/drawer/index.tsx"],"sourcesContent":["'use client'\nimport lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js'\nconst { useLexicalComposerContext } = lexicalComposerContextImport\nimport { useListDrawer } from '@payloadcms/ui'\nimport lexicalImport from 'lexical'\nconst { $getNodeByKey, COMMAND_PRIORITY_EDITOR } = lexicalImport\n\nimport type { LexicalEditor } from 'lexical'\n\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { EnabledRelationshipsCondition } from '../../relationship/utils/EnabledRelationshipsCondition.js'\nimport { $createUploadNode } from '../nodes/UploadNode.js'\nimport { INSERT_UPLOAD_COMMAND } from '../plugin/index.js'\nimport { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from './commands.js'\n\nconst baseClass = 'lexical-upload-drawer'\n\nconst insertUpload = ({\n id,\n editor,\n relationTo,\n replaceNodeKey,\n}: {\n editor: LexicalEditor\n id: string\n relationTo: string\n replaceNodeKey: null | string\n}) => {\n if (!replaceNodeKey) {\n editor.dispatchCommand(INSERT_UPLOAD_COMMAND, {\n id,\n fields: null,\n relationTo,\n })\n } else {\n editor.update(() => {\n const node = $getNodeByKey(replaceNodeKey)\n if (node) {\n node.replace(\n $createUploadNode({\n data: {\n fields: null,\n relationTo,\n value: {\n id,\n },\n },\n }),\n )\n }\n })\n }\n}\n\ntype Props = {\n enabledCollectionSlugs: string[]\n}\n\nconst UploadDrawerComponent: React.FC<Props> = ({ enabledCollectionSlugs }) => {\n const [editor] = useLexicalComposerContext()\n\n const [replaceNodeKey, setReplaceNodeKey] = useState<null | string>(null)\n\n const [ListDrawer, ListDrawerToggler, { closeDrawer, openDrawer }] = useListDrawer({\n collectionSlugs: enabledCollectionSlugs,\n uploads: true,\n })\n\n useEffect(() => {\n return editor.registerCommand<{\n replace: { nodeKey: string } | false\n }>(\n INSERT_UPLOAD_WITH_DRAWER_COMMAND,\n (payload) => {\n setReplaceNodeKey(payload?.replace ? payload?.replace.nodeKey : null)\n openDrawer()\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n )\n }, [editor, openDrawer])\n\n const onSelect = useCallback(\n ({ collectionSlug, docID }) => {\n insertUpload({\n id: docID,\n editor,\n relationTo: collectionSlug,\n replaceNodeKey,\n })\n closeDrawer()\n },\n [editor, closeDrawer, replaceNodeKey],\n )\n\n return <ListDrawer onSelect={onSelect} />\n}\n\nexport const UploadDrawer = (props: Props): React.ReactNode => {\n return (\n <EnabledRelationshipsCondition {...props} uploads>\n <UploadDrawerComponent {...props} />\n </EnabledRelationshipsCondition>\n )\n}\n"],"names":["lexicalComposerContextImport","useLexicalComposerContext","useListDrawer","lexicalImport","$getNodeByKey","COMMAND_PRIORITY_EDITOR","React","useCallback","useEffect","useState","EnabledRelationshipsCondition","$createUploadNode","INSERT_UPLOAD_COMMAND","INSERT_UPLOAD_WITH_DRAWER_COMMAND","baseClass","insertUpload","id","editor","relationTo","replaceNodeKey","dispatchCommand","fields","update","node","replace","data","value","UploadDrawerComponent","enabledCollectionSlugs","setReplaceNodeKey","ListDrawer","ListDrawerToggler","closeDrawer","openDrawer","collectionSlugs","uploads","registerCommand","payload","nodeKey","onSelect","collectionSlug","docID","UploadDrawer","props"],"mappings":"AAAA;AACA,OAAOA,kCAAkC,2CAA0C;AACnF,MAAM,EAAEC,yBAAyB,EAAE,GAAGD;AACtC,SAASE,aAAa,QAAQ,iBAAgB;AAC9C,OAAOC,mBAAmB,UAAS;AACnC,MAAM,EAAEC,aAAa,EAAEC,uBAAuB,EAAE,GAAGF;AAInD,OAAOG,SAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAE/D,SAASC,6BAA6B,QAAQ,4DAA2D;AACzG,SAASC,iBAAiB,QAAQ,yBAAwB;AAC1D,SAASC,qBAAqB,QAAQ,qBAAoB;AAC1D,SAASC,iCAAiC,QAAQ,gBAAe;AAEjE,MAAMC,YAAY;AAElB,MAAMC,eAAe,CAAC,EACpBC,EAAE,EACFC,MAAM,EACNC,UAAU,EACVC,cAAc,EAMf;IACC,IAAI,CAACA,gBAAgB;QACnBF,OAAOG,eAAe,CAACR,uBAAuB;YAC5CI;YACAK,QAAQ;YACRH;QACF;IACF,OAAO;QACLD,OAAOK,MAAM,CAAC;YACZ,MAAMC,OAAOnB,cAAce;YAC3B,IAAII,MAAM;gBACRA,KAAKC,OAAO,CACVb,kBAAkB;oBAChBc,MAAM;wBACJJ,QAAQ;wBACRH;wBACAQ,OAAO;4BACLV;wBACF;oBACF;gBACF;YAEJ;QACF;IACF;AACF;AAMA,MAAMW,wBAAyC,CAAC,EAAEC,sBAAsB,EAAE;IACxE,MAAM,CAACX,OAAO,GAAGhB;IAEjB,MAAM,CAACkB,gBAAgBU,kBAAkB,GAAGpB,SAAwB;IAEpE,MAAM,CAACqB,YAAYC,mBAAmB,EAAEC,WAAW,EAAEC,UAAU,EAAE,CAAC,GAAG/B,cAAc;QACjFgC,iBAAiBN;QACjBO,SAAS;IACX;IAEA3B,UAAU;QACR,OAAOS,OAAOmB,eAAe,CAG3BvB,mCACA,CAACwB;YACCR,kBAAkBQ,SAASb,UAAUa,SAASb,QAAQc,UAAU;YAChEL;YACA,OAAO;QACT,GACA5B;IAEJ,GAAG;QAACY;QAAQgB;KAAW;IAEvB,MAAMM,WAAWhC,YACf,CAAC,EAAEiC,cAAc,EAAEC,KAAK,EAAE;QACxB1B,aAAa;YACXC,IAAIyB;YACJxB;YACAC,YAAYsB;YACZrB;QACF;QACAa;IACF,GACA;QAACf;QAAQe;QAAab;KAAe;IAGvC,qBAAO,oBAACW;QAAWS,UAAUA;;AAC/B;AAEA,OAAO,MAAMG,eAAe,CAACC;IAC3B,qBACE,oBAACjC;QAA+B,GAAGiC,KAAK;QAAER,SAAAA;qBACxC,oBAACR,uBAA0BgB;AAGjC,EAAC"}
|
|
@@ -52,4 +52,4 @@ const UploadFeatureClient = (props)=>{
|
|
|
52
52
|
};
|
|
53
53
|
export const UploadFeatureClientComponent = createClientComponent(UploadFeatureClient);
|
|
54
54
|
|
|
55
|
-
//# sourceMappingURL=
|
|
55
|
+
//# sourceMappingURL=feature.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/features/upload/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport type { FeatureProviderProviderClient } from '../types.js'\n\nimport { SlashMenuOption } from '../../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\nimport { UploadIcon } from '../../lexical/ui/icons/Upload/index.js'\nimport { createClientComponent } from '../createClientComponent.js'\nimport { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from './drawer/commands.js'\nimport { UploadNode } from './nodes/UploadNode.js'\nimport { UploadPlugin } from './plugin/index.js'\n\nexport type UploadFeaturePropsClient = {\n collections: {\n [collection: string]: {\n hasExtraFields: boolean\n }\n }\n}\n\nconst UploadFeatureClient: FeatureProviderProviderClient<UploadFeaturePropsClient> = (props) => {\n return {\n clientFeatureProps: props,\n feature: () => ({\n clientFeatureProps: props,\n nodes: [UploadNode],\n plugins: [\n {\n Component: UploadPlugin,\n position: 'normal',\n },\n ],\n slashMenu: {\n options: [\n {\n displayName: 'Basic',\n key: 'basic',\n options: [\n new SlashMenuOption('upload', {\n Icon: UploadIcon,\n displayName: 'Upload',\n keywords: ['upload', 'image', 'file', 'img', 'picture', 'photo', 'media'],\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: false,\n })\n },\n }),\n ],\n },\n ],\n },\n }),\n }\n}\n\nexport const UploadFeatureClientComponent = createClientComponent(UploadFeatureClient)\n"],"names":["SlashMenuOption","UploadIcon","createClientComponent","INSERT_UPLOAD_WITH_DRAWER_COMMAND","UploadNode","UploadPlugin","UploadFeatureClient","props","clientFeatureProps","feature","nodes","plugins","Component","position","slashMenu","options","displayName","key","Icon","keywords","onSelect","editor","dispatchCommand","replace","UploadFeatureClientComponent"],"mappings":"AAAA;AAIA,SAASA,eAAe,QAAQ,sEAAqE;AACrG,SAASC,UAAU,QAAQ,yCAAwC;AACnE,SAASC,qBAAqB,QAAQ,8BAA6B;AACnE,SAASC,iCAAiC,QAAQ,uBAAsB;AACxE,SAASC,UAAU,QAAQ,wBAAuB;AAClD,SAASC,YAAY,QAAQ,oBAAmB;AAUhD,MAAMC,sBAA+E,CAACC;IACpF,OAAO;QACLC,oBAAoBD;QACpBE,SAAS,IAAO,CAAA;gBACdD,oBAAoBD;gBACpBG,OAAO;oBAACN;iBAAW;gBACnBO,SAAS;oBACP;wBACEC,WAAWP;wBACXQ,UAAU;oBACZ;iBACD;gBACDC,WAAW;oBACTC,SAAS;wBACP;4BACEC,aAAa;4BACbC,KAAK;4BACLF,SAAS;gCACP,IAAIf,gBAAgB,UAAU;oCAC5BkB,MAAMjB;oCACNe,aAAa;oCACbG,UAAU;wCAAC;wCAAU;wCAAS;wCAAQ;wCAAO;wCAAW;wCAAS;qCAAQ;oCACzEC,UAAU,CAAC,EAAEC,MAAM,EAAE;wCACnBA,OAAOC,eAAe,CAACnB,mCAAmC;4CACxDoB,SAAS;wCACX;oCACF;gCACF;6BACD;wBACH;qBACD;gBACH;YACF,CAAA;IACF;AACF;AAEA,OAAO,MAAMC,+BAA+BtB,sBAAsBI,qBAAoB"}
|
|
@@ -100,4 +100,4 @@ export const UploadFeature = (props)=>{
|
|
|
100
100
|
};
|
|
101
101
|
};
|
|
102
102
|
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy91cGxvYWQvZmVhdHVyZS5zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGaWVsZCwgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgSFRNTENvbnZlcnRlciB9IGZyb20gJy4uL2NvbnZlcnRlcnMvaHRtbC9jb252ZXJ0ZXIvdHlwZXMuanMnXG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVQcm92aWRlclByb3ZpZGVyU2VydmVyIH0gZnJvbSAnLi4vdHlwZXMuanMnXG5pbXBvcnQgdHlwZSB7IFVwbG9hZEZlYXR1cmVQcm9wc0NsaWVudCB9IGZyb20gJy4vZmVhdHVyZS5jbGllbnQuanMnXG5cbmltcG9ydCB7IFVwbG9hZEZlYXR1cmVDbGllbnRDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmUuY2xpZW50LmpzJ1xuaW1wb3J0IHsgdHlwZSBTZXJpYWxpemVkVXBsb2FkTm9kZSwgVXBsb2FkTm9kZSB9IGZyb20gJy4vbm9kZXMvVXBsb2FkTm9kZS5qcydcbmltcG9ydCB7IHVwbG9hZFBvcHVsYXRpb25Qcm9taXNlSE9DIH0gZnJvbSAnLi9wb3B1bGF0aW9uUHJvbWlzZS5qcydcbmltcG9ydCB7IHVwbG9hZFZhbGlkYXRpb24gfSBmcm9tICcuL3ZhbGlkYXRlLmpzJ1xuXG5leHBvcnQgdHlwZSBVcGxvYWRGZWF0dXJlUHJvcHMgPSB7XG4gIGNvbGxlY3Rpb25zOiB7XG4gICAgW2NvbGxlY3Rpb246IHN0cmluZ106IHtcbiAgICAgIGZpZWxkczogRmllbGRbXVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEdldCB0aGUgYWJzb2x1dGUgVVJMIGZvciBhbiB1cGxvYWQgVVJMIGJ5IHBvdGVudGlhbGx5IHByZXBlbmRpbmcgdGhlIHNlcnZlclVSTFxuICovXG5mdW5jdGlvbiBnZXRBYnNvbHV0ZVVSTCh1cmw6IHN0cmluZywgcGF5bG9hZDogUGF5bG9hZCk6IHN0cmluZyB7XG4gIHJldHVybiB1cmw/LnN0YXJ0c1dpdGgoJ2h0dHAnKSA/IHVybCA6IChwYXlsb2FkPy5jb25maWc/LnNlcnZlclVSTCB8fCAnJykgKyB1cmxcbn1cblxuZXhwb3J0IGNvbnN0IFVwbG9hZEZlYXR1cmU6IEZlYXR1cmVQcm92aWRlclByb3ZpZGVyU2VydmVyPFxuICBVcGxvYWRGZWF0dXJlUHJvcHMsXG4gIFVwbG9hZEZlYXR1cmVQcm9wc0NsaWVudFxuPiA9IChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzKSB7XG4gICAgcHJvcHMgPSB7IGNvbGxlY3Rpb25zOiB7fSB9XG4gIH1cblxuICBjb25zdCBjbGllbnRQcm9wczogVXBsb2FkRmVhdHVyZVByb3BzQ2xpZW50ID0geyBjb2xsZWN0aW9uczoge30gfVxuICBpZiAocHJvcHMuY29sbGVjdGlvbnMpIHtcbiAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gaW4gcHJvcHMuY29sbGVjdGlvbnMpIHtcbiAgICAgIGNsaWVudFByb3BzLmNvbGxlY3Rpb25zW2NvbGxlY3Rpb25dID0ge1xuICAgICAgICBoYXNFeHRyYUZpZWxkczogcHJvcHMuY29sbGVjdGlvbnNbY29sbGVjdGlvbl0uZmllbGRzLmxlbmd0aCA+PSAxLFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZmVhdHVyZTogKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgQ2xpZW50Q29tcG9uZW50OiBVcGxvYWRGZWF0dXJlQ2xpZW50Q29tcG9uZW50LFxuICAgICAgICBjbGllbnRGZWF0dXJlUHJvcHM6IGNsaWVudFByb3BzLFxuICAgICAgICBnZW5lcmF0ZVNjaGVtYU1hcDogKHsgcHJvcHMgfSkgPT4ge1xuICAgICAgICAgIGlmICghcHJvcHM/LmNvbGxlY3Rpb25zKSByZXR1cm4ge31cblxuICAgICAgICAgIGNvbnN0IG1hcDoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogRmllbGRbXVxuICAgICAgICAgIH0gPSB7fVxuXG4gICAgICAgICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIGluIHByb3BzLmNvbGxlY3Rpb25zKSB7XG4gICAgICAgICAgICBtYXBbY29sbGVjdGlvbl0gPSBwcm9wcy5jb2xsZWN0aW9uc1tjb2xsZWN0aW9uXS5maWVsZHNcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWFwXG4gICAgICAgIH0sXG4gICAgICAgIG5vZGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29udmVydGVyczoge1xuICAgICAgICAgICAgICBodG1sOiB7XG4gICAgICAgICAgICAgICAgY29udmVydGVyOiBhc3luYyAoeyBub2RlLCBwYXlsb2FkIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChwYXlsb2FkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwbG9hZERvY3VtZW50OiBhbnkgPSBhd2FpdCBwYXlsb2FkLmZpbmRCeUlEKHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogbm9kZS52YWx1ZS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBub2RlLnJlbGF0aW9uVG8sXG4gICAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsOiBzdHJpbmcgPSBnZXRBYnNvbHV0ZVVSTCh1cGxvYWREb2N1bWVudD8udXJsIGFzIHN0cmluZywgcGF5bG9hZClcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogSWYgdGhlIHVwbG9hZCBpcyBub3QgYW4gaW1hZ2UsIHJldHVybiBhIGxpbmsgdG8gdGhlIHVwbG9hZFxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodXBsb2FkRG9jdW1lbnQ/Lm1pbWVUeXBlIGFzIHN0cmluZyk/LnN0YXJ0c1dpdGgoJ2ltYWdlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxhIGhyZWY9XCIke3VybH1cIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+JHt1cGxvYWREb2N1bWVudC5maWxlbmFtZX08L2E+YFxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIElmIHRoZSB1cGxvYWQgaXMgYSBzaW1wbGUgaW1hZ2Ugd2l0aCBubyBkaWZmZXJlbnQgc2l6ZXMsIHJldHVybiBhIHNpbXBsZSBpbWcgdGFnXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXVwbG9hZERvY3VtZW50Py5zaXplcyB8fCAhT2JqZWN0LmtleXModXBsb2FkRG9jdW1lbnQ/LnNpemVzKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxpbWcgc3JjPVwiJHt1cmx9XCIgYWx0PVwiJHt1cGxvYWREb2N1bWVudD8uZmlsZW5hbWV9XCIgd2lkdGg9XCIke3VwbG9hZERvY3VtZW50Py53aWR0aH1cIiAgaGVpZ2h0PVwiJHt1cGxvYWREb2N1bWVudD8uaGVpZ2h0fVwiLz5gXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogSWYgdGhlIHVwbG9hZCBpcyBhbiBpbWFnZSB3aXRoIGRpZmZlcmVudCBzaXplcywgcmV0dXJuIGEgcGljdHVyZSBlbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBsZXQgcGljdHVyZUhUTUwgPSAnPHBpY3R1cmU+J1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIHNpemUgaW4gdGhlIGRhdGEuc2l6ZXMgb2JqZWN0XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc2l6ZSBpbiB1cGxvYWREb2N1bWVudC5zaXplcykge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlU2l6ZSA9IHVwbG9hZERvY3VtZW50LnNpemVzW3NpemVdXG5cbiAgICAgICAgICAgICAgICAgICAgICAvLyBTa2lwIGlmIGFueSBwcm9wZXJ0eSBvZiB0aGUgc2l6ZSBvYmplY3QgaXMgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICFpbWFnZVNpemUud2lkdGggfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICFpbWFnZVNpemUuaGVpZ2h0IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAhaW1hZ2VTaXplLm1pbWVUeXBlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAhaW1hZ2VTaXplLmZpbGVzaXplIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAhaW1hZ2VTaXplLmZpbGVuYW1lIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAhaW1hZ2VTaXplLnVybFxuICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW1hZ2VTaXplVVJMOiBzdHJpbmcgPSBnZXRBYnNvbHV0ZVVSTChpbWFnZVNpemU/LnVybCBhcyBzdHJpbmcsIHBheWxvYWQpXG5cbiAgICAgICAgICAgICAgICAgICAgICBwaWN0dXJlSFRNTCArPSBgPHNvdXJjZSBzcmNzZXQ9XCIke2ltYWdlU2l6ZVVSTH1cIiBtZWRpYT1cIihtYXgtd2lkdGg6ICR7aW1hZ2VTaXplLndpZHRofXB4KVwiIHR5cGU9XCIke2ltYWdlU2l6ZS5taW1lVHlwZX1cIj5gXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBBZGQgdGhlIGRlZmF1bHQgaW1nIHRhZ1xuICAgICAgICAgICAgICAgICAgICBwaWN0dXJlSFRNTCArPSBgPGltZyBzcmM9XCIke3VybH1cIiBhbHQ9XCJJbWFnZVwiIHdpZHRoPVwiJHt1cGxvYWREb2N1bWVudC53aWR0aH1cIiBoZWlnaHQ9XCIke3VwbG9hZERvY3VtZW50LmhlaWdodH1cIj5gXG4gICAgICAgICAgICAgICAgICAgIHBpY3R1cmVIVE1MICs9ICc8L3BpY3R1cmU+J1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGljdHVyZUhUTUxcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgPGltZyBzcmM9XCIke25vZGUudmFsdWUuaWR9XCIgLz5gXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBub2RlVHlwZXM6IFtVcGxvYWROb2RlLmdldFR5cGUoKV0sXG4gICAgICAgICAgICAgIH0gYXMgSFRNTENvbnZlcnRlcjxTZXJpYWxpemVkVXBsb2FkTm9kZT4sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbm9kZTogVXBsb2FkTm9kZSxcbiAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlczogW3VwbG9hZFBvcHVsYXRpb25Qcm9taXNlSE9DKHByb3BzKV0sXG4gICAgICAgICAgICB2YWxpZGF0aW9uczogW3VwbG9hZFZhbGlkYXRpb24oKV0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgc2VydmVyRmVhdHVyZVByb3BzOiBwcm9wcyxcbiAgICAgIH1cbiAgICB9LFxuICAgIGtleTogJ3VwbG9hZCcsXG4gICAgc2VydmVyRmVhdHVyZVByb3BzOiBwcm9wcyxcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlVwbG9hZEZlYXR1cmVDbGllbnRDb21wb25lbnQiLCJVcGxvYWROb2RlIiwidXBsb2FkUG9wdWxhdGlvblByb21pc2VIT0MiLCJ1cGxvYWRWYWxpZGF0aW9uIiwiZ2V0QWJzb2x1dGVVUkwiLCJ1cmwiLCJwYXlsb2FkIiwic3RhcnRzV2l0aCIsImNvbmZpZyIsInNlcnZlclVSTCIsIlVwbG9hZEZlYXR1cmUiLCJwcm9wcyIsImNvbGxlY3Rpb25zIiwiY2xpZW50UHJvcHMiLCJjb2xsZWN0aW9uIiwiaGFzRXh0cmFGaWVsZHMiLCJmaWVsZHMiLCJsZW5ndGgiLCJmZWF0dXJlIiwiQ2xpZW50Q29tcG9uZW50IiwiY2xpZW50RmVhdHVyZVByb3BzIiwiZ2VuZXJhdGVTY2hlbWFNYXAiLCJtYXAiLCJub2RlcyIsImNvbnZlcnRlcnMiLCJodG1sIiwiY29udmVydGVyIiwibm9kZSIsInVwbG9hZERvY3VtZW50IiwiZmluZEJ5SUQiLCJpZCIsInZhbHVlIiwicmVsYXRpb25UbyIsIm1pbWVUeXBlIiwiZmlsZW5hbWUiLCJzaXplcyIsIk9iamVjdCIsImtleXMiLCJ3aWR0aCIsImhlaWdodCIsInBpY3R1cmVIVE1MIiwic2l6ZSIsImltYWdlU2l6ZSIsImZpbGVzaXplIiwiaW1hZ2VTaXplVVJMIiwibm9kZVR5cGVzIiwiZ2V0VHlwZSIsInBvcHVsYXRpb25Qcm9taXNlcyIsInZhbGlkYXRpb25zIiwic2VydmVyRmVhdHVyZVByb3BzIiwia2V5Il0sIm1hcHBpbmdzIjoiQUFNQSxTQUFTQSw0QkFBNEIsUUFBUSxzQkFBcUI7QUFDbEUsU0FBb0NDLFVBQVUsUUFBUSx3QkFBdUI7QUFDN0UsU0FBU0MsMEJBQTBCLFFBQVEseUJBQXdCO0FBQ25FLFNBQVNDLGdCQUFnQixRQUFRLGdCQUFlO0FBVWhEOztDQUVDLEdBQ0QsU0FBU0MsZUFBZUMsR0FBVyxFQUFFQyxPQUFnQjtJQUNuRCxPQUFPRCxLQUFLRSxXQUFXLFVBQVVGLE1BQU0sQUFBQ0MsQ0FBQUEsU0FBU0UsUUFBUUMsYUFBYSxFQUFDLElBQUtKO0FBQzlFO0FBRUEsT0FBTyxNQUFNSyxnQkFHVCxDQUFDQztJQUNILElBQUksQ0FBQ0EsT0FBTztRQUNWQSxRQUFRO1lBQUVDLGFBQWEsQ0FBQztRQUFFO0lBQzVCO0lBRUEsTUFBTUMsY0FBd0M7UUFBRUQsYUFBYSxDQUFDO0lBQUU7SUFDaEUsSUFBSUQsTUFBTUMsV0FBVyxFQUFFO1FBQ3JCLElBQUssTUFB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
|
|
103
|
+
//# sourceMappingURL=feature.server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/features/upload/feature.server.ts"],"sourcesContent":["import type { Field, Payload } from 'payload/types'\n\nimport type { HTMLConverter } from '../converters/html/converter/types.js'\nimport type { FeatureProviderProviderServer } from '../types.js'\nimport type { UploadFeaturePropsClient } from './feature.client.js'\n\nimport { UploadFeatureClientComponent } from './feature.client.js'\nimport { type SerializedUploadNode, UploadNode } from './nodes/UploadNode.js'\nimport { uploadPopulationPromiseHOC } from './populationPromise.js'\nimport { uploadValidation } from './validate.js'\n\nexport type UploadFeatureProps = {\n collections: {\n [collection: string]: {\n fields: Field[]\n }\n }\n}\n\n/**\n * Get the absolute URL for an upload URL by potentially prepending the serverURL\n */\nfunction getAbsoluteURL(url: string, payload: Payload): string {\n return url?.startsWith('http') ? url : (payload?.config?.serverURL || '') + url\n}\n\nexport const UploadFeature: FeatureProviderProviderServer<\n UploadFeatureProps,\n UploadFeaturePropsClient\n> = (props) => {\n if (!props) {\n props = { collections: {} }\n }\n\n const clientProps: UploadFeaturePropsClient = { collections: {} }\n if (props.collections) {\n for (const collection in props.collections) {\n clientProps.collections[collection] = {\n hasExtraFields: props.collections[collection].fields.length >= 1,\n }\n }\n }\n\n return {\n feature: () => {\n return {\n ClientComponent: UploadFeatureClientComponent,\n clientFeatureProps: clientProps,\n generateSchemaMap: ({ props }) => {\n if (!props?.collections) return {}\n\n const map: {\n [key: string]: Field[]\n } = {}\n\n for (const collection in props.collections) {\n map[collection] = props.collections[collection].fields\n }\n\n return map\n },\n nodes: [\n {\n converters: {\n html: {\n converter: async ({ node, payload }) => {\n if (payload) {\n const uploadDocument: any = await payload.findByID({\n id: node.value.id,\n collection: node.relationTo,\n })\n\n const url: string = getAbsoluteURL(uploadDocument?.url as string, payload)\n\n /**\n * If the upload is not an image, return a link to the upload\n */\n if (!(uploadDocument?.mimeType as string)?.startsWith('image')) {\n return `<a href=\"${url}\" rel=\"noopener noreferrer\">${uploadDocument.filename}</a>`\n }\n\n /**\n * If the upload is a simple image with no different sizes, return a simple img tag\n */\n if (!uploadDocument?.sizes || !Object.keys(uploadDocument?.sizes).length) {\n return `<img src=\"${url}\" alt=\"${uploadDocument?.filename}\" width=\"${uploadDocument?.width}\" height=\"${uploadDocument?.height}\"/>`\n }\n\n /**\n * If the upload is an image with different sizes, return a picture element\n */\n let pictureHTML = '<picture>'\n\n // Iterate through each size in the data.sizes object\n for (const size in uploadDocument.sizes) {\n const imageSize = uploadDocument.sizes[size]\n\n // Skip if any property of the size object is null\n if (\n !imageSize.width ||\n !imageSize.height ||\n !imageSize.mimeType ||\n !imageSize.filesize ||\n !imageSize.filename ||\n !imageSize.url\n ) {\n continue\n }\n const imageSizeURL: string = getAbsoluteURL(imageSize?.url as string, payload)\n\n pictureHTML += `<source srcset=\"${imageSizeURL}\" media=\"(max-width: ${imageSize.width}px)\" type=\"${imageSize.mimeType}\">`\n }\n\n // Add the default img tag\n pictureHTML += `<img src=\"${url}\" alt=\"Image\" width=\"${uploadDocument.width}\" height=\"${uploadDocument.height}\">`\n pictureHTML += '</picture>'\n return pictureHTML\n } else {\n return `<img src=\"${node.value.id}\" />`\n }\n },\n nodeTypes: [UploadNode.getType()],\n } as HTMLConverter<SerializedUploadNode>,\n },\n node: UploadNode,\n populationPromises: [uploadPopulationPromiseHOC(props)],\n validations: [uploadValidation()],\n },\n ],\n serverFeatureProps: props,\n }\n },\n key: 'upload',\n serverFeatureProps: props,\n }\n}\n"],"names":["UploadFeatureClientComponent","UploadNode","uploadPopulationPromiseHOC","uploadValidation","getAbsoluteURL","url","payload","startsWith","config","serverURL","UploadFeature","props","collections","clientProps","collection","hasExtraFields","fields","length","feature","ClientComponent","clientFeatureProps","generateSchemaMap","map","nodes","converters","html","converter","node","uploadDocument","findByID","id","value","relationTo","mimeType","filename","sizes","Object","keys","width","height","pictureHTML","size","imageSize","filesize","imageSizeURL","nodeTypes","getType","populationPromises","validations","serverFeatureProps","key"],"mappings":"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"}
|
|
@@ -99,4 +99,4 @@ export function $isUploadNode(node) {
|
|
|
99
99
|
return node instanceof UploadNode;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
//# sourceMappingURL=
|
|
102
|
+
//# sourceMappingURL=UploadNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/field/features/upload/nodes/UploadNode.tsx"],"sourcesContent":["import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type { ElementFormatType, NodeKey } from 'lexical'\n\nimport lexicalDecoratorBlockNodeImport from '@lexical/react/LexicalDecoratorBlockNode.js'\nconst { DecoratorBlockNode } = lexicalDecoratorBlockNodeImport\n\nimport lexicalImport from 'lexical'\nconst { $applyNodeReplacement } = lexicalImport\n\nimport type {\n DOMConversionMap,\n DOMConversionOutput,\n DOMExportOutput,\n LexicalNode,\n Spread,\n} from 'lexical'\n\nimport * as React from 'react'\n\nconst RawUploadComponent = React.lazy(() =>\n import('../component/index.js').then((module) => ({ default: module.UploadComponent })),\n)\n\nexport type RawUploadPayload = {\n fields: {\n // unknown, custom fields:\n [key: string]: unknown\n }\n id: string\n relationTo: string\n}\n\nexport type UploadData = {\n fields: {\n // unknown, custom fields:\n [key: string]: unknown\n }\n relationTo: string\n value: {\n // Actual upload data, populated in afterRead hook\n [key: string]: unknown\n id: string\n }\n}\n\nfunction convertUploadElement(domNode: Node): DOMConversionOutput | null {\n if (domNode instanceof HTMLImageElement) {\n // const { alt: altText, src } = domNode;\n // const node = $createImageNode({ altText, src });\n // return { node };\n // TODO: Auto-upload functionality here!\n }\n return null\n}\n\nexport type SerializedUploadNode = Spread<UploadData, SerializedDecoratorBlockNode>\n\nexport class UploadNode extends DecoratorBlockNode {\n __data: UploadData\n\n constructor({\n data,\n format,\n key,\n }: {\n data: UploadData\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__data = data\n }\n\n static clone(node: UploadNode): UploadNode {\n return new UploadNode({\n data: node.__data,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'upload'\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n img: (node: Node) => ({\n conversion: convertUploadElement,\n priority: 0,\n }),\n }\n }\n\n static importJSON(serializedNode: SerializedUploadNode): UploadNode {\n const importedData: UploadData = {\n fields: serializedNode.fields,\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n\n const node = $createUploadNode({ data: importedData })\n node.setFormat(serializedNode.format)\n\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n decorate(): JSX.Element {\n // @ts-expect-error\n return <RawUploadComponent data={this.__data} format={this.__format} nodeKey={this.getKey()} />\n }\n\n exportDOM(): DOMExportOutput {\n const element = document.createElement('img')\n // element.setAttribute('src', this.__src);\n // element.setAttribute('alt', this.__altText); //TODO\n return { element }\n }\n\n exportJSON(): SerializedUploadNode {\n return {\n ...super.exportJSON(),\n ...this.getData(),\n type: this.getType(),\n version: 1,\n }\n }\n\n getData(): UploadData {\n return this.getLatest().__data\n }\n\n setData(data: UploadData): void {\n const writable = this.getWritable()\n writable.__data = data\n }\n\n // eslint-disable-next-line class-methods-use-this\n updateDOM(): false {\n return false\n }\n}\n\nexport function $createUploadNode({ data }: { data: UploadData }): UploadNode {\n return $applyNodeReplacement(new UploadNode({ data }))\n}\n\nexport function $isUploadNode(node: LexicalNode | null | undefined): node is UploadNode {\n return node instanceof UploadNode\n}\n"],"names":["lexicalDecoratorBlockNodeImport","DecoratorBlockNode","lexicalImport","$applyNodeReplacement","React","RawUploadComponent","lazy","then","module","default","UploadComponent","convertUploadElement","domNode","HTMLImageElement","UploadNode","__data","constructor","data","format","key","clone","node","__format","__key","getType","importDOM","img","conversion","priority","importJSON","serializedNode","importedData","fields","relationTo","value","$createUploadNode","setFormat","isInline","decorate","nodeKey","getKey","exportDOM","element","document","createElement","exportJSON","getData","type","version","getLatest","setData","writable","getWritable","updateDOM","$isUploadNode"],"mappings":"AAGA,OAAOA,qCAAqC,8CAA6C;AACzF,MAAM,EAAEC,kBAAkB,EAAE,GAAGD;AAE/B,OAAOE,mBAAmB,UAAS;AACnC,MAAM,EAAEC,qBAAqB,EAAE,GAAGD;AAUlC,YAAYE,WAAW,QAAO;AAE9B,MAAMC,mCAAqBD,MAAME,IAAI,CAAC,IACpC,MAAM,CAAC,yBAAyBC,IAAI,CAAC,CAACC,SAAY,CAAA;YAAEC,SAASD,OAAOE,eAAe;QAAC,CAAA;AAyBtF,SAASC,qBAAqBC,OAAa;IACzC,IAAIA,mBAAmBC,kBAAkB;IACvC,yCAAyC;IACzC,mDAAmD;IACnD,mBAAmB;IACnB,wCAAwC;IAC1C;IACA,OAAO;AACT;AAIA,OAAO,MAAMC,mBAAmBb;IAC9Bc,OAAkB;IAElBC,YAAY,EACVC,IAAI,EACJC,MAAM,EACNC,GAAG,EAKJ,CAAE;QACD,KAAK,CAACD,QAAQC;QACd,IAAI,CAACJ,MAAM,GAAGE;IAChB;IAEA,OAAOG,MAAMC,IAAgB,EAAc;QACzC,OAAO,IAAIP,WAAW;YACpBG,MAAMI,KAAKN,MAAM;YACjBG,QAAQG,KAAKC,QAAQ;YACrBH,KAAKE,KAAKE,KAAK;QACjB;IACF;IAEA,OAAOC,UAAkB;QACvB,OAAO;IACT;IAEA,OAAOC,YAAqC;QAC1C,OAAO;YACLC,KAAK,CAACL,OAAgB,CAAA;oBACpBM,YAAYhB;oBACZiB,UAAU;gBACZ,CAAA;QACF;IACF;IAEA,OAAOC,WAAWC,cAAoC,EAAc;QAClE,MAAMC,eAA2B;YAC/BC,QAAQF,eAAeE,MAAM;YAC7BC,YAAYH,eAAeG,UAAU;YACrCC,OAAOJ,eAAeI,KAAK;QAC7B;QAEA,MAAMb,OAAOc,kBAAkB;YAAElB,MAAMc;QAAa;QACpDV,KAAKe,SAAS,CAACN,eAAeZ,MAAM;QAEpC,OAAOG;IACT;IAEA,OAAOgB,WAAkB;QACvB,OAAO;IACT;IAEAC,WAAwB;QACtB,mBAAmB;QACnB,qBAAO,oBAACjC;YAAmBY,MAAM,IAAI,CAACF,MAAM;YAAEG,QAAQ,IAAI,CAACI,QAAQ;YAAEiB,SAAS,IAAI,CAACC,MAAM;;IAC3F;IAEAC,YAA6B;QAC3B,MAAMC,UAAUC,SAASC,aAAa,CAAC;QACvC,2CAA2C;QAC3C,sDAAsD;QACtD,OAAO;YAAEF;QAAQ;IACnB;IAEAG,aAAmC;QACjC,OAAO;YACL,GAAG,KAAK,CAACA,YAAY;YACrB,GAAG,IAAI,CAACC,OAAO,EAAE;YACjBC,MAAM,IAAI,CAACvB,OAAO;YAClBwB,SAAS;QACX;IACF;IAEAF,UAAsB;QACpB,OAAO,IAAI,CAACG,SAAS,GAAGlC,MAAM;IAChC;IAEAmC,QAAQjC,IAAgB,EAAQ;QAC9B,MAAMkC,WAAW,IAAI,CAACC,WAAW;QACjCD,SAASpC,MAAM,GAAGE;IACpB;IAEA,kDAAkD;IAClDoC,YAAmB;QACjB,OAAO;IACT;AACF;AAEA,OAAO,SAASlB,kBAAkB,EAAElB,IAAI,EAAwB;IAC9D,OAAOd,sBAAsB,IAAIW,WAAW;QAAEG;IAAK;AACrD;AAEA,OAAO,SAASqC,cAAcjC,IAAoC;IAChE,OAAOA,gBAAgBP;AACzB"}
|
|
@@ -52,4 +52,4 @@ export function UploadPlugin() {
|
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
//# sourceMappingURL=
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/field/features/upload/plugin/index.tsx"],"sourcesContent":["'use client'\nimport lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js'\nconst { useLexicalComposerContext } = lexicalComposerContextImport\nimport lexicalUtilsImport from '@lexical/utils'\nconst { $insertNodeToNearestRoot, mergeRegister } = lexicalUtilsImport\nimport { useConfig } from '@payloadcms/ui'\nimport lexicalImport from 'lexical'\nconst {\n $getPreviousSelection,\n $getSelection,\n $isParagraphNode,\n $isRangeSelection,\n COMMAND_PRIORITY_EDITOR,\n createCommand,\n} = lexicalImport\n\nimport type { LexicalCommand } from 'lexical'\n\nimport React, { useEffect } from 'react'\n\nimport type { RawUploadPayload } from '../nodes/UploadNode.js'\n\nimport { UploadDrawer } from '../drawer/index.js'\nimport { $createUploadNode, UploadNode } from '../nodes/UploadNode.js'\n\nexport type InsertUploadPayload = Readonly<RawUploadPayload>\n\nexport const INSERT_UPLOAD_COMMAND: LexicalCommand<InsertUploadPayload> =\n createCommand('INSERT_UPLOAD_COMMAND')\n\nexport function UploadPlugin(): JSX.Element | null {\n const [editor] = useLexicalComposerContext()\n const { collections } = useConfig()\n\n useEffect(() => {\n if (!editor.hasNodes([UploadNode])) {\n throw new Error('UploadPlugin: UploadNode not registered on editor')\n }\n\n return mergeRegister(\n editor.registerCommand<InsertUploadPayload>(\n INSERT_UPLOAD_COMMAND,\n (payload: InsertUploadPayload) => {\n editor.update(() => {\n const uploadNode = $createUploadNode({\n data: {\n fields: payload.fields,\n relationTo: payload.relationTo,\n value: {\n id: payload.id,\n },\n },\n })\n\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n const { focus } = selection\n const focusNode = focus.getNode()\n\n // First, delete currently selected node if it's an empty paragraph and if there are sufficient\n // paragraph nodes (more than 1) left in the parent node, so that we don't \"trap\" the user\n if (\n $isParagraphNode(focusNode) &&\n focusNode.getTextContentSize() === 0 &&\n focusNode\n .getParent()\n .getChildren()\n .filter((node) => $isParagraphNode(node)).length > 1\n ) {\n focusNode.remove()\n }\n\n $insertNodeToNearestRoot(uploadNode)\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [editor])\n\n return <UploadDrawer enabledCollectionSlugs={collections.map(({ slug }) => slug)} />\n}\n"],"names":["lexicalComposerContextImport","useLexicalComposerContext","lexicalUtilsImport","$insertNodeToNearestRoot","mergeRegister","useConfig","lexicalImport","$getPreviousSelection","$getSelection","$isParagraphNode","$isRangeSelection","COMMAND_PRIORITY_EDITOR","createCommand","React","useEffect","UploadDrawer","$createUploadNode","UploadNode","INSERT_UPLOAD_COMMAND","UploadPlugin","editor","collections","hasNodes","Error","registerCommand","payload","update","uploadNode","data","fields","relationTo","value","id","selection","focus","focusNode","getNode","getTextContentSize","getParent","getChildren","filter","node","length","remove","enabledCollectionSlugs","map","slug"],"mappings":"AAAA;AACA,OAAOA,kCAAkC,2CAA0C;AACnF,MAAM,EAAEC,yBAAyB,EAAE,GAAGD;AACtC,OAAOE,wBAAwB,iBAAgB;AAC/C,MAAM,EAAEC,wBAAwB,EAAEC,aAAa,EAAE,GAAGF;AACpD,SAASG,SAAS,QAAQ,iBAAgB;AAC1C,OAAOC,mBAAmB,UAAS;AACnC,MAAM,EACJC,qBAAqB,EACrBC,aAAa,EACbC,gBAAgB,EAChBC,iBAAiB,EACjBC,uBAAuB,EACvBC,aAAa,EACd,GAAGN;AAIJ,OAAOO,SAASC,SAAS,QAAQ,QAAO;AAIxC,SAASC,YAAY,QAAQ,qBAAoB;AACjD,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,yBAAwB;AAItE,OAAO,MAAMC,wBACXN,cAAc,yBAAwB;AAExC,OAAO,SAASO;IACd,MAAM,CAACC,OAAO,GAAGnB;IACjB,MAAM,EAAEoB,WAAW,EAAE,GAAGhB;IAExBS,UAAU;QACR,IAAI,CAACM,OAAOE,QAAQ,CAAC;YAACL;SAAW,GAAG;YAClC,MAAM,IAAIM,MAAM;QAClB;QAEA,OAAOnB,cACLgB,OAAOI,eAAe,CACpBN,uBACA,CAACO;YACCL,OAAOM,MAAM,CAAC;gBACZ,MAAMC,aAAaX,kBAAkB;oBACnCY,MAAM;wBACJC,QAAQJ,QAAQI,MAAM;wBACtBC,YAAYL,QAAQK,UAAU;wBAC9BC,OAAO;4BACLC,IAAIP,QAAQO,EAAE;wBAChB;oBACF;gBACF;gBAEA,MAAMC,YAAYzB,mBAAmBD;gBAErC,IAAIG,kBAAkBuB,YAAY;oBAChC,MAAM,EAAEC,KAAK,EAAE,GAAGD;oBAClB,MAAME,YAAYD,MAAME,OAAO;oBAE/B,+FAA+F;oBAC/F,0FAA0F;oBAC1F,IACE3B,iBAAiB0B,cACjBA,UAAUE,kBAAkB,OAAO,KACnCF,UACGG,SAAS,GACTC,WAAW,GACXC,MAAM,CAAC,CAACC,OAAShC,iBAAiBgC,OAAOC,MAAM,GAAG,GACrD;wBACAP,UAAUQ,MAAM;oBAClB;oBAEAxC,yBAAyBwB;gBAC3B;YACF;YAEA,OAAO;QACT,GACAhB;IAGN,GAAG;QAACS;KAAO;IAEX,qBAAO,oBAACL;QAAa6B,wBAAwBvB,YAAYwB,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA;;AAC7E"}
|
|
@@ -43,4 +43,4 @@ export const uploadPopulationPromiseHOC = (props)=>{
|
|
|
43
43
|
return uploadPopulationPromise;
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
-
//# sourceMappingURL=
|
|
46
|
+
//# sourceMappingURL=populationPromise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/features/upload/populationPromise.ts"],"sourcesContent":["import type { PopulationPromise } from '../types.js'\nimport type { UploadFeatureProps } from './feature.server.js'\nimport type { SerializedUploadNode } from './nodes/UploadNode.js'\n\nimport { populate } from '../../../populate/populate.js'\nimport { recurseNestedFields } from '../../../populate/recurseNestedFields.js'\n\nexport const uploadPopulationPromiseHOC = (\n props?: UploadFeatureProps,\n): PopulationPromise<SerializedUploadNode> => {\n const uploadPopulationPromise: PopulationPromise<SerializedUploadNode> = ({\n context,\n currentDepth,\n depth,\n editorPopulationPromises,\n field,\n findMany,\n flattenLocales,\n node,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n }) => {\n const promises: Promise<void>[] = []\n\n if (node?.value?.id) {\n const collection = req.payload.collections[node?.relationTo]\n\n if (collection) {\n promises.push(\n populate({\n id: node?.value?.id,\n collection,\n currentDepth,\n data: node,\n depth,\n field,\n key: 'value',\n overrideAccess,\n req,\n showHiddenFields,\n }),\n )\n }\n if (Array.isArray(props?.collections?.[node?.relationTo]?.fields)) {\n recurseNestedFields({\n context,\n currentDepth,\n data: node.fields || {},\n depth,\n editorPopulationPromises,\n fields: props?.collections?.[node?.relationTo]?.fields,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n promises,\n req,\n showHiddenFields,\n siblingDoc: node.fields || {},\n })\n }\n }\n\n return promises\n }\n\n return uploadPopulationPromise\n}\n"],"names":["populate","recurseNestedFields","uploadPopulationPromiseHOC","props","uploadPopulationPromise","context","currentDepth","depth","editorPopulationPromises","field","findMany","flattenLocales","node","overrideAccess","populationPromises","req","showHiddenFields","siblingDoc","promises","value","id","collection","payload","collections","relationTo","push","data","key","Array","isArray","fields"],"mappings":"AAIA,SAASA,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,mBAAmB,QAAQ,2CAA0C;AAE9E,OAAO,MAAMC,6BAA6B,CACxCC;IAEA,MAAMC,0BAAmE,CAAC,EACxEC,OAAO,EACPC,YAAY,EACZC,KAAK,EACLC,wBAAwB,EACxBC,KAAK,EACLC,QAAQ,EACRC,cAAc,EACdC,IAAI,EACJC,cAAc,EACdC,kBAAkB,EAClBC,GAAG,EACHC,gBAAgB,EAChBC,UAAU,EACX;QACC,MAAMC,WAA4B,EAAE;QAEpC,IAAIN,MAAMO,OAAOC,IAAI;YACnB,MAAMC,aAAaN,IAAIO,OAAO,CAACC,WAAW,CAACX,MAAMY,WAAW;YAE5D,IAAIH,YAAY;gBACdH,SAASO,IAAI,CACXzB,SAAS;oBACPoB,IAAIR,MAAMO,OAAOC;oBACjBC;oBACAf;oBACAoB,MAAMd;oBACNL;oBACAE;oBACAkB,KAAK;oBACLd;oBACAE;oBACAC;gBACF;YAEJ;YACA,IAAIY,MAAMC,OAAO,CAAC1B,OAAOoB,aAAa,CAACX,MAAMY,WAAW,EAAEM,SAAS;gBACjE7B,oBAAoB;oBAClBI;oBACAC;oBACAoB,MAAMd,KAAKkB,MAAM,IAAI,CAAC;oBACtBvB;oBACAC;oBACAsB,QAAQ3B,OAAOoB,aAAa,CAACX,MAAMY,WAAW,EAAEM;oBAChDpB;oBACAC;oBACAE;oBACAC;oBACAI;oBACAH;oBACAC;oBACAC,YAAYL,KAAKkB,MAAM,IAAI,CAAC;gBAC9B;YACF;QACF;QAEA,OAAOZ;IACT;IAEA,OAAOd;AACT,EAAC"}
|
|
@@ -16,4 +16,4 @@ export const uploadValidation = ()=>{
|
|
|
16
16
|
return uploadValidation;
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/features/upload/validate.ts"],"sourcesContent":["import { fieldAffectsData } from 'payload/types'\nimport { getIDType, isValidID } from 'payload/utilities'\n\nimport type { NodeValidation } from '../types.js'\nimport type { SerializedUploadNode } from './nodes/UploadNode.js'\n\nimport { CAN_USE_DOM } from '../../lexical/utils/canUseDOM.js'\n\nexport const uploadValidation = (): NodeValidation<SerializedUploadNode> => {\n const uploadValidation: NodeValidation<SerializedUploadNode> = ({\n node,\n validation: {\n options: {\n req: {\n payload: { config, db },\n t,\n },\n },\n },\n }) => {\n if (!CAN_USE_DOM) {\n const idField = config.collections\n .find(({ slug }) => slug === node.relationTo)\n .fields.find((field) => fieldAffectsData(field) && field.name === 'id')\n\n const type = getIDType(idField, db?.defaultIDType)\n\n if (!isValidID(node.value?.id, type)) {\n return t('validation:validUploadID')\n }\n }\n\n // TODO: validate upload collection fields\n\n return true\n }\n\n return uploadValidation\n}\n"],"names":["fieldAffectsData","getIDType","isValidID","CAN_USE_DOM","uploadValidation","node","validation","options","req","payload","config","db","t","idField","collections","find","slug","relationTo","fields","field","name","type","defaultIDType","value","id"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,gBAAe;AAChD,SAASC,SAAS,EAAEC,SAAS,QAAQ,oBAAmB;AAKxD,SAASC,WAAW,QAAQ,mCAAkC;AAE9D,OAAO,MAAMC,mBAAmB;IAC9B,MAAMA,mBAAyD,CAAC,EAC9DC,IAAI,EACJC,YAAY,EACVC,SAAS,EACPC,KAAK,EACHC,SAAS,EAAEC,MAAM,EAAEC,EAAE,EAAE,EACvBC,CAAC,EACF,EACF,EACF,EACF;QACC,IAAI,CAACT,aAAa;YAChB,MAAMU,UAAUH,OAAOI,WAAW,CAC/BC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASX,KAAKY,UAAU,EAC3CC,MAAM,CAACH,IAAI,CAAC,CAACI,QAAUnB,iBAAiBmB,UAAUA,MAAMC,IAAI,KAAK;YAEpE,MAAMC,OAAOpB,UAAUY,SAASF,IAAIW;YAEpC,IAAI,CAACpB,UAAUG,KAAKkB,KAAK,EAAEC,IAAIH,OAAO;gBACpC,OAAOT,EAAE;YACX;QACF;QAEA,0CAA0C;QAE1C,OAAO;IACT;IAEA,OAAOR;AACT,EAAC"}
|
package/dist/field/index.js
CHANGED
|
@@ -84,4 +84,4 @@ export const RichTextField = (props)=>{
|
|
|
84
84
|
}));
|
|
85
85
|
};
|
|
86
86
|
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgdHlwZSB7IEVkaXRvckNvbmZpZyBhcyBMZXhpY2FsRWRpdG9yQ29uZmlnIH0gZnJvbSAnbGV4aWNhbC9MZXhpY2FsRWRpdG9yLmpzJ1xuXG5pbXBvcnQgeyB0eXBlIEZvcm1GaWVsZEJhc2UsIFNoaW1tZXJFZmZlY3QgfSBmcm9tICdAcGF5bG9hZGNtcy91aSdcbmltcG9ydCB7IHVzZUZpZWxkUGF0aCB9IGZyb20gJ0BwYXlsb2FkY21zL3VpL2Zvcm1zJ1xuaW1wb3J0IHsgdXNlQ2xpZW50RnVuY3Rpb25zIH0gZnJvbSAnQHBheWxvYWRjbXMvdWkvcHJvdmlkZXJzJ1xuaW1wb3J0IFJlYWN0LCB7IFN1c3BlbnNlLCBsYXp5LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJhdGVkRmVhdHVyZVByb3ZpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vdHlwZXMuanMnXG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVQcm92aWRlckNsaWVudCB9IGZyb20gJy4vZmVhdHVyZXMvdHlwZXMuanMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENsaWVudEVkaXRvckNvbmZpZyB9IGZyb20gJy4vbGV4aWNhbC9jb25maWcvdHlwZXMuanMnXG5cbmltcG9ydCB7IGRlZmF1bHRFZGl0b3JMZXhpY2FsQ29uZmlnIH0gZnJvbSAnLi9sZXhpY2FsL2NvbmZpZy9jbGllbnQvZGVmYXVsdC5qcydcbmltcG9ydCB7IGxvYWRDbGllbnRGZWF0dXJlcyB9IGZyb20gJy4vbGV4aWNhbC9jb25maWcvY2xpZW50L2xvYWRlci5qcydcbmltcG9ydCB7IHNhbml0aXplQ2xpZW50RWRpdG9yQ29uZmlnIH0gZnJvbSAnLi9sZXhpY2FsL2NvbmZpZy9jbGllbnQvc2FuaXRpemUuanMnXG5cbmNvbnN0IFJpY2hUZXh0RWRpdG9yID0gbGF6eSgoKSA9PlxuICBpbXBvcnQoJy4vRmllbGQuanMnKS50aGVuKChtb2R1bGUpID0+ICh7IGRlZmF1bHQ6IG1vZHVsZS5SaWNoVGV4dCB9KSksXG4pXG5cbmV4cG9ydCBjb25zdCBSaWNoVGV4dEZpZWxkOiBSZWFjdC5GQzxcbiAgRm9ybUZpZWxkQmFzZSAmIHtcbiAgICBsZXhpY2FsRWRpdG9yQ29uZmlnOiBMZXhpY2FsRWRpdG9yQ29uZmlnXG4gICAgbmFtZTogc3RyaW5nXG4gICAgcmljaFRleHRDb21wb25lbnRNYXA6IE1hcDxzdHJpbmcsIFJlYWN0LlJlYWN0Tm9kZT5cbiAgfVxuPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGxleGljYWxFZGl0b3JDb25maWcsIHJpY2hUZXh0Q29tcG9uZW50TWFwIH0gPSBwcm9wc1xuICBjb25zdCB7IHNjaGVtYVBhdGggfSA9IHVzZUZpZWxkUGF0aCgpXG4gIGNvbnN0IGNsaWVudEZ1bmN0aW9ucyA9IHVzZUNsaWVudEZ1bmN0aW9ucygpXG4gIGNvbnN0IFtoYXNMb2FkZWRGZWF0dXJlcywgc2V0SGFzTG9hZGVkRmVhdHVyZXNdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgW2ZlYXR1cmVQcm92aWRlcnMsIHNldEZlYXR1cmVQcm92aWRlcnNdID0gdXNlU3RhdGU8RmVhdHVyZVByb3ZpZGVyQ2xpZW50PHVua25vd24+W10+KFtdKVxuXG4gIGNvbnN0IFtmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZywgc2V0RmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWddID1cbiAgICB1c2VTdGF0ZTxTYW5pdGl6ZWRDbGllbnRFZGl0b3JDb25maWc+KG51bGwpXG5cbiAgbGV0IGZlYXR1cmVQcm92aWRlckNvbXBvbmVudHM6IEdlbmVyYXRlZEZlYXR1cmVQcm92aWRlckNvbXBvbmVudFtdID0gcmljaFRleHRDb21wb25lbnRNYXAuZ2V0KFxuICAgICdmZWF0dXJlcycsXG4gICkgYXMgR2VuZXJhdGVkRmVhdHVyZVByb3ZpZGVyQ29tcG9uZW50W10gLy8gVE9ETzogVHlwZSBiZXR0ZXJcbiAgLy8gb3JkZXIgYnkgb3JkZXJcbiAgZmVhdHVyZVByb3ZpZGVyQ29tcG9uZW50cyA9IGZlYXR1cmVQcm92aWRlckNvbXBvbmVudHMuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpXG5cbiAgY29uc3QgZmVhdHVyZUNvbXBvbmVudHNXaXRoRmVhdHVyZXNMZW5ndGggPVxuICAgIEFycmF5LmZyb20ocmljaFRleHRDb21wb25lbnRNYXAua2V5cygpKS5maWx0ZXIoXG4gICAgICAoa2V5KSA9PiBrZXkuc3RhcnRzV2l0aChgZmVhdHVyZS5gKSAmJiAha2V5LmluY2x1ZGVzKCcuZmllbGRzLicpLFxuICAgICkubGVuZ3RoICsgZmVhdHVyZVByb3ZpZGVyQ29tcG9uZW50cy5sZW5ndGhcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaGFzTG9hZGVkRmVhdHVyZXMpIHtcbiAgICAgIGNvbnN0IGZlYXR1cmVQcm92aWRlcnNMb2NhbDogRmVhdHVyZVByb3ZpZGVyQ2xpZW50PHVua25vd24+W10gPSBbXVxuICAgICAgbGV0IGZlYXR1cmVQcm92aWRlcnNBbmRDb21wb25lbnRzTG9hZGVkID0gMFxuXG4gICAgICBPYmplY3QuZW50cmllcyhjbGllbnRGdW5jdGlvbnMpLmZvckVhY2goKFtrZXksIHBsdWdpbl0pID0+IHtcbiAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKGBsZXhpY2FsRmVhdHVyZS4ke3NjaGVtYVBhdGh9LmApKSB7XG4gICAgICAgICAgaWYgKCFrZXkuaW5jbHVkZXMoJy5jb21wb25lbnRzLicpKSB7XG4gICAgICAgICAgICBmZWF0dXJlUHJvdmlkZXJzTG9jYWwucHVzaChwbHVnaW4pXG4gICAgICAgICAgfVxuICAgICAgICAgIGZlYXR1cmVQcm92aWRlcnNBbmRDb21wb25lbnRzTG9hZGVkKytcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgaWYgKGZlYXR1cmVQcm92aWRlcnNBbmRDb21wb25lbnRzTG9hZGVkID09PSBmZWF0dXJlQ29tcG9uZW50c1dpdGhGZWF0dXJlc0xlbmd0aCkge1xuICAgICAgICBzZXRGZWF0dXJlUHJvdmlkZXJzKGZlYXR1cmVQcm92aWRlcnNMb2NhbClcbiAgICAgICAgc2V0SGFzTG9hZGVkRmVhdHVyZXModHJ1ZSlcblxuICAgICAgICAvKipcbiAgICAgICAgICogTG9hZGVkIGZlYXR1cmUgcHJvdmlkZWQgPT4gY3JlYXRlIHRoZSBmaW5hbCBzYW5pdGl6ZWQgZWRpdG9yIGNvbmZpZ1xuICAgICAgICAgKi9cblxuICAgICAgICBjb25zdCByZXNvbHZlZENsaWVudEZlYXR1cmVzID0gbG9hZENsaWVudEZlYXR1cmVzKHtcbiAgICAgICAgICBjbGllbnRGdW5jdGlvbnMsXG4gICAgICAgICAgc2NoZW1hUGF0aCxcbiAgICAgICAgICB1blNhbml0aXplZEVkaXRvckNvbmZpZzoge1xuICAgICAgICAgICAgZmVhdHVyZXM6IGZlYXR1cmVQcm92aWRlcnNMb2NhbCxcbiAgICAgICAgICAgIGxleGljYWw6IGxleGljYWxFZGl0b3JDb25maWcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcblxuICAgICAgICBzZXRGaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZyhcbiAgICAgICAgICBzYW5pdGl6ZUNsaWVudEVkaXRvckNvbmZpZyhcbiAgICAgICAgICAgIGxleGljYWxFZGl0b3JDb25maWcgPyBsZXhpY2FsRWRpdG9yQ29uZmlnIDogZGVmYXVsdEVkaXRvckxleGljYWxDb25maWcsXG4gICAgICAgICAgICByZXNvbHZlZENsaWVudEZlYXR1cmVzLFxuICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtcbiAgICBoYXNMb2FkZWRGZWF0dXJlcyxcbiAgICBjbGllbnRGdW5jdGlvbnMsXG4gICAgc2NoZW1hUGF0aCxcbiAgICBmZWF0dXJlUHJvdmlkZXJDb21wb25lbnRzLmxlbmd0aCxcbiAgICBmZWF0dXJlUHJvdmlkZXJzLFxuICAgIGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnLFxuICAgIGxleGljYWxFZGl0b3JDb25maWcsXG4gICAgZmVhdHVyZUNvbXBvbmVudHNXaXRoRmVhdHVyZXNMZW5ndGgsXG4gIF0pXG5cbiAgaWYgKCFoYXNMb2FkZWRGZWF0dXJlcykge1xuICAgIHJldHVybiAoXG4gICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgIHtBcnJheS5pc0FycmF5KGZlYXR1cmVQcm92aWRlckNvbXBvbmVudHMpICYmXG4gICAgICAgICAgZmVhdHVyZVByb3ZpZGVyQ29tcG9uZW50cy5tYXAoKGZlYXR1cmVQcm92aWRlcikgPT4ge1xuICAgICAgICAgICAgLy8gZ2V0IGFsbCBjb21wb25lbnRzIHN0YXJ0aW5nIHdpdGgga2V5IGZlYXR1cmUuJHtGZWF0dXJlUHJvdmlkZXIua2V5fS5jb21wb25lbnRzLntmZWF0dXJlQ29tcG9uZW50S2V5fVxuICAgICAgICAgICAgY29uc3QgZmVhdHVyZUNvbXBvbmVudEtleXMgPSBBcnJheS5mcm9tKHJpY2hUZXh0Q29tcG9uZW50TWFwLmtleXMoKSkuZmlsdGVyKChrZXkpID0+XG4gICAgICAgICAgICAgIGtleS5zdGFydHNXaXRoKGBmZWF0dXJlLiR7ZmVhdHVyZVByb3ZpZGVyLmtleX0uY29tcG9uZW50cy5gKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVDb21wb25lbnRzOiBSZWFjdC5SZWFjdE5vZGVbXSA9IGZlYXR1cmVDb21wb25lbnRLZXlzLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiByaWNoVGV4dENvbXBvbmVudE1hcC5nZXQoa2V5KVxuICAgICAgICAgICAgfSkgYXMgUmVhY3QuUmVhY3ROb2RlW10gLy8gVE9ETzogVHlwZSBiZXR0ZXJcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPFJlYWN0LkZyYWdtZW50IGtleT17ZmVhdHVyZVByb3ZpZGVyLmtleX0+XG4gICAgICAgICAgICAgICAge2ZlYXR1cmVDb21wb25lbnRzPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgID8gZmVhdHVyZUNvbXBvbmVudHMubWFwKChGZWF0dXJlQ29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZlYXR1cmVDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7ZmVhdHVyZVByb3ZpZGVyLkNsaWVudENvbXBvbmVudH1cbiAgICAgICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KX1cbiAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U3VzcGVuc2UgZmFsbGJhY2s9ezxTaGltbWVyRWZmZWN0IGhlaWdodD1cIjM1dmhcIiAvPn0+XG4gICAgICB7ZmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWcgJiYgKFxuICAgICAgICA8UmljaFRleHRFZGl0b3Igey4uLnByb3BzfSBlZGl0b3JDb25maWc9e2ZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnfSAvPlxuICAgICAgKX1cbiAgICA8L1N1c3BlbnNlPlxuICApXG59XG4iXSwibmFtZXMiOlsiU2hpbW1lckVmZmVjdCIsInVzZUZpZWxkUGF0aCIsInVzZUNsaWVudEZ1bmN0aW9ucyIsIlJlYWN0IiwiU3VzcGVuc2UiLCJsYXp5IiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJkZWZhdWx0RWRpdG9yTGV4aWNhbENvbmZpZyIsImxvYWRDbGllbnRGZWF0dXJlcyIsInNhbml0aXplQ2xpZW50RWRpdG9yQ29uZmlnIiwiUmljaFRleHRFZGl0b3IiLCJ0aGVuIiwibW9kdWxlIiwiZGVmYXVsdCIsIlJpY2hUZXh0IiwiUmljaFRleHRGaWVsZCIsInByb3BzIiwibGV4aWNhbEVkaXRvckNvbmZpZyIsInJpY2hUZXh0Q29tcG9uZW50TWFwIiwic2NoZW1hUGF0aCIsImNsaWVudEZ1bmN0aW9ucyIsImhhc0xvYWRlZEZlYXR1cmVzIiwic2V0SGFzTG9hZGVkRmVhdHVyZXMiLCJmZWF0dXJlUHJvdmlkZXJzIiwic2V0RmVhdHVyZVByb3ZpZGVycyIsImZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnIiwic2V0RmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWciLCJmZWF0dXJlUHJvdmlkZXJDb21wb25lbnRzIiwiZ2V0Iiwic29ydCIsImEiLCJiIiwib3JkZXIiLCJmZWF0dXJlQ29tcG9uZW50c1dpdGhGZWF0dXJlc0xlbmd0aCIsIkFycmF5IiwiZnJvbSIsImtleXMiLCJmaWx0ZXIiLCJrZXkiLCJzdGFydHNXaXRoIiwiaW5jbHVkZXMiLCJsZW5ndGgiLCJmZWF0dXJlUHJvdmlkZXJzTG9jYWwiLCJmZWF0dXJlUHJvdmlkZXJzQW5kQ29tcG9uZW50c0xvYWRlZCIsIk9iamVjdCIsImVudHJpZXMiLCJmb3JFYWNoIiwicGx1Z2luIiwicHVzaCIsInJlc29sdmVkQ2xpZW50RmVhdHVyZXMiLCJ1blNhbml0aXplZEVkaXRvckNvbmZpZyIsImZlYXR1cmVzIiwibGV4aWNhbCIsIkZyYWdtZW50IiwiaXNBcnJheSIsIm1hcCIsImZlYXR1cmVQcm92aWRlciIsImZlYXR1cmVDb21wb25lbnRLZXlzIiwiZmVhdHVyZUNvbXBvbmVudHMiLCJGZWF0dXJlQ29tcG9uZW50IiwiQ2xpZW50Q29tcG9uZW50IiwiZmFsbGJhY2siLCJoZWlnaHQiLCJlZGl0b3JDb25maWciXSwibWFwcGluZ3MiOiJBQUFBO0FBR0EsU0FBNkJBLGFBQWEsUUFBUSxpQkFBZ0I7QUFDbEUsU0FBU0MsWUFBWSxRQUFRLHVCQUFzQjtBQUNuRCxTQUFTQyxrQkFBa0IsUUFBUSwyQkFBMEI7QUFDN0QsT0FBT0MsU0FBU0MsUUFBUSxFQUFFQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFNbEUsU0FBU0MsMEJBQTBCLFFBQVEscUNBQW9DO0FBQy9FLFNBQVNDLGtCQUFrQixRQUFRLG9DQUFtQztBQUN0RSxTQUFT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
|
|
87
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/field/index.tsx"],"sourcesContent":["'use client'\nimport type { EditorConfig as LexicalEditorConfig } from 'lexical/LexicalEditor.js'\n\nimport { type FormFieldBase, ShimmerEffect } from '@payloadcms/ui'\nimport { useFieldPath } from '@payloadcms/ui/forms'\nimport { useClientFunctions } from '@payloadcms/ui/providers'\nimport React, { Suspense, lazy, useEffect, useState } from 'react'\n\nimport type { GeneratedFeatureProviderComponent } from '../types.js'\nimport type { FeatureProviderClient } from './features/types.js'\nimport type { SanitizedClientEditorConfig } from './lexical/config/types.js'\n\nimport { defaultEditorLexicalConfig } from './lexical/config/client/default.js'\nimport { loadClientFeatures } from './lexical/config/client/loader.js'\nimport { sanitizeClientEditorConfig } from './lexical/config/client/sanitize.js'\n\nconst RichTextEditor = lazy(() =>\n import('./Field.js').then((module) => ({ default: module.RichText })),\n)\n\nexport const RichTextField: React.FC<\n FormFieldBase & {\n lexicalEditorConfig: LexicalEditorConfig\n name: string\n richTextComponentMap: Map<string, React.ReactNode>\n }\n> = (props) => {\n const { lexicalEditorConfig, richTextComponentMap } = props\n const { schemaPath } = useFieldPath()\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 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 }) as React.ReactNode[] // TODO: Type better\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 (\n <Suspense fallback={<ShimmerEffect height=\"35vh\" />}>\n {finalSanitizedEditorConfig && (\n <RichTextEditor {...props} editorConfig={finalSanitizedEditorConfig} />\n )}\n </Suspense>\n )\n}\n"],"names":["ShimmerEffect","useFieldPath","useClientFunctions","React","Suspense","lazy","useEffect","useState","defaultEditorLexicalConfig","loadClientFeatures","sanitizeClientEditorConfig","RichTextEditor","then","module","default","RichText","RichTextField","props","lexicalEditorConfig","richTextComponentMap","schemaPath","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","Fragment","isArray","map","featureProvider","featureComponentKeys","featureComponents","FeatureComponent","ClientComponent","fallback","height","editorConfig"],"mappings":"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"}
|
|
@@ -8,4 +8,4 @@ export const EditorPlugin = ({ anchorElem, plugin })=>{
|
|
|
8
8
|
return plugin.Component && /*#__PURE__*/ React.createElement(plugin.Component, null);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=EditorPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/field/lexical/EditorPlugin.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport type { SanitizedPlugin } from '../features/types.js'\n\nexport const EditorPlugin: React.FC<{\n anchorElem?: HTMLDivElement\n plugin: SanitizedPlugin\n}> = ({ anchorElem, plugin }) => {\n if (plugin.position === 'floatingAnchorElem') {\n return plugin.Component && <plugin.Component anchorElem={anchorElem} />\n }\n\n return plugin.Component && <plugin.Component />\n}\n"],"names":["React","EditorPlugin","anchorElem","plugin","position","Component"],"mappings":"AAAA,YAAYA,WAAW,QAAO;AAI9B,OAAO,MAAMC,eAGR,CAAC,EAAEC,UAAU,EAAEC,MAAM,EAAE;IAC1B,IAAIA,OAAOC,QAAQ,KAAK,sBAAsB;QAC5C,OAAOD,OAAOE,SAAS,kBAAI,oBAACF,OAAOE,SAAS;YAACH,YAAYA;;IAC3D;IAEA,OAAOC,OAAOE,SAAS,kBAAI,oBAACF,OAAOE,SAAS;AAC9C,EAAC"}
|
|
@@ -109,4 +109,4 @@ export const LexicalEditor = (props)=>{
|
|
|
109
109
|
}));
|
|
110
110
|
};
|
|
111
111
|
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL0xleGljYWxFZGl0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IGxleGljYWxDb21wb3NlckNvbnRleHRJbXBvcnQgZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dC5qcydcbmNvbnN0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9ID0gbGV4aWNhbENvbXBvc2VyQ29udGV4dEltcG9ydFxuXG5pbXBvcnQgTGV4aWNhbEVycm9yQm91bmRhcnkgZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbEVycm9yQm91bmRhcnkuanMnXG5pbXBvcnQgbGV4aWNhbEhpc3RvcnlQbHVnaW5JbXBvcnQgZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbEhpc3RvcnlQbHVnaW4uanMnXG5jb25zdCB7IEhpc3RvcnlQbHVnaW4gfSA9IGxleGljYWxIaXN0b3J5UGx1Z2luSW1wb3J0XG5cbmltcG9ydCBsZXhpY2FsT25DaGFuZ2VQbHVnaW5JbXBvcnQgZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbE9uQ2hhbmdlUGx1Z2luLmpzJ1xuY29uc3QgeyBPbkNoYW5nZVBsdWdpbiB9ID0gbGV4aWNhbE9uQ2hhbmdlUGx1Z2luSW1wb3J0XG5cbmltcG9ydCBsZXhpY2FsUmljaFRleHRQbHVnaW5JbXBvcnQgZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbFJpY2hUZXh0UGx1Z2luLmpzJ1xuY29uc3QgeyBSaWNoVGV4dFBsdWdpbiB9ID0gbGV4aWNhbFJpY2hUZXh0UGx1Z2luSW1wb3J0XG5cbmltcG9ydCBsZXhpY2FsVGFiSW5kZW50YXRpb25QbHVnaW5JbXBvcnQgZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbFRhYkluZGVudGF0aW9uUGx1Z2luLmpzJ1xuY29uc3QgeyBUYWJJbmRlbnRhdGlvblBsdWdpbiB9ID0gbGV4aWNhbFRhYkluZGVudGF0aW9uUGx1Z2luSW1wb3J0XG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IExleGljYWxQcm92aWRlclByb3BzIH0gZnJvbSAnLi9MZXhpY2FsUHJvdmlkZXIuanMnXG5cbmltcG9ydCB7IEVkaXRvclBsdWdpbiB9IGZyb20gJy4vRWRpdG9yUGx1Z2luLmpzJ1xuaW1wb3J0ICcuL0xleGljYWxFZGl0b3Iuc2NzcydcbmltcG9ydCB7IEZsb2F0aW5nU2VsZWN0VG9vbGJhclBsdWdpbiB9IGZyb20gJy4vcGx1Z2lucy9GbG9hdGluZ1NlbGVjdFRvb2xiYXIvaW5kZXguanMnXG5pbXBvcnQgeyBNYXJrZG93blNob3J0Y3V0UGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zL01hcmtkb3duU2hvcnRjdXQvaW5kZXguanMnXG5pbXBvcnQgeyBTbGFzaE1lbnVQbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvU2xhc2hNZW51L2luZGV4LmpzJ1xuaW1wb3J0IHsgQWRkQmxvY2tIYW5kbGVQbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvaGFuZGxlcy9BZGRCbG9ja0hhbmRsZVBsdWdpbi9pbmRleC5qcydcbmltcG9ydCB7IERyYWdnYWJsZUJsb2NrUGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zL2hhbmRsZXMvRHJhZ2dhYmxlQmxvY2tQbHVnaW4vaW5kZXguanMnXG5pbXBvcnQgeyBMZXhpY2FsQ29udGVudEVkaXRhYmxlIH0gZnJvbSAnLi91aS9Db250ZW50RWRpdGFibGUuanMnXG5cbmV4cG9ydCBjb25zdCBMZXhpY2FsRWRpdG9yOiBSZWFjdC5GQzxQaWNrPExleGljYWxQcm92aWRlclByb3BzLCAnZWRpdG9yQ29uZmlnJyB8ICdvbkNoYW5nZSc+PiA9IChcbiAgcHJvcHMsXG4pID0+IHtcbiAgY29uc3QgeyBlZGl0b3JDb25maWcsIG9uQ2hhbmdlIH0gPSBwcm9wc1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuXG4gIGNvbnN0IFtmbG9hdGluZ0FuY2hvckVsZW0sIHNldEZsb2F0aW5nQW5jaG9yRWxlbV0gPSB1c2VTdGF0ZTxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IG9uUmVmID0gKF9mbG9hdGluZ0FuY2hvckVsZW06IEhUTUxEaXZFbGVtZW50KSA9PiB7XG4gICAgaWYgKF9mbG9hdGluZ0FuY2hvckVsZW0gIT09IG51bGwpIHtcbiAgICAgIHNldEZsb2F0aW5nQW5jaG9yRWxlbShfZmxvYXRpbmdBbmNob3JFbGVtKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IFtpc1NtYWxsV2lkdGhWaWV3cG9ydCwgc2V0SXNTbWFsbFdpZHRoVmlld3BvcnRdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB1cGRhdGVWaWV3UG9ydFdpZHRoID0gKCkgPT4ge1xuICAgICAgY29uc3QgaXNOZXh0U21hbGxXaWR0aFZpZXdwb3J0ID0gd2luZG93Lm1hdGNoTWVkaWEoJyhtYXgtd2lkdGg6IDEwMjVweCknKS5tYXRjaGVzXG5cbiAgICAgIGlmIChpc05leHRTbWFsbFdpZHRoVmlld3BvcnQgIT09IGlzU21hbGxXaWR0aFZpZXdwb3J0KSB7XG4gICAgICAgIHNldElzU21hbGxXaWR0aFZpZXdwb3J0KGlzTmV4dFNtYWxsV2lkdGhWaWV3cG9ydClcbiAgICAgIH1cbiAgICB9XG4gICAgdXBkYXRlVmlld1BvcnRXaWR0aCgpXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZVZpZXdQb3J0V2lkdGgpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZVZpZXdQb3J0V2lkdGgpXG4gICAgfVxuICB9LCBbaXNTbWFsbFdpZHRoVmlld3BvcnRdKVxuXG4gIGNvbnN0IEVycm9yQm91bmRhcnlDb21wb25lbnQgPSBMZXhpY2FsRXJyb3JCb3VuZGFyeS5kZWZhdWx0IHx8IExleGljYWxFcnJvckJvdW5kYXJ5XG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICB7ZWRpdG9yQ29uZmlnLmZlYXR1cmVzLnBsdWdpbnMubWFwKChwbHVnaW4pID0+IHtcbiAgICAgICAgaWYgKHBsdWdpbi5wb3NpdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICByZXR1cm4gPEVkaXRvclBsdWdpbiBrZXk9e3BsdWdpbi5rZXl9IHBsdWdpbj17cGx1Z2lufSAvPlxuICAgICAgICB9XG4gICAgICB9KX1cbiAgICAgIDxSaWNoVGV4dFBsdWdpblxuICAgICAgICAvL0B0cy1leHBlY3QtZXJyb3IgdHMgYmVpbmcgZHVtYlxuICAgICAgICBFcnJvckJvdW5kYXJ5PXtFcnJvckJvdW5kYXJ5Q29tcG9uZW50fVxuICAgICAgICBjb250ZW50RWRpdGFibGU9e1xuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZWRpdG9yLXNjcm9sbGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImVkaXRvclwiIHJlZj17b25SZWZ9PlxuICAgICAgICAgICAgICA8TGV4aWNhbENvbnRlbnRFZGl0YWJsZSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgcGxhY2Vob2xkZXI9e1xuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImVkaXRvci1wbGFjZWhvbGRlclwiPlN0YXJ0IHR5cGluZywgb3IgcHJlc3MgJy8nIGZvciBjb21tYW5kcy4uLjwvcD5cbiAgICAgICAgfVxuICAgICAgLz5cbiAgICAgIDxPbkNoYW5nZVBsdWdpblxuICAgICAgICAvLyBTZWxlY3Rpb24gY2hhbmdlcyBjYW4gYmUgaWdub3JlZCBoZXJlLCByZWR1Y2luZyB0aGVcbiAgICAgICAgLy8gZnJlcXVlbmN5IHRoYXQgdGhlIEZpZWxkQ29tcG9uZW50IGFuZCBQYXlsb2FkIHJlY2VpdmUgdXBkYXRlcy5cbiAgICAgICAgLy8gU2VsZWN0aW9uIGNoYW5nZXMgYXJlIG9ubHkgbmVlZGVkIGlmIHlvdSBhcmUgc2F2aW5nIHNlbGVjdGlvbiBzdGF0ZVxuICAgICAgICBpZ25vcmVTZWxlY3Rpb25DaGFuZ2VcbiAgICAgICAgb25DaGFuZ2U9eyhlZGl0b3JTdGF0ZSwgZWRpdG9yLCB0YWdzKSA9PiB7XG4gICAgICAgICAgLy8gSWdub3JlIGFueSBvbkNoYW5nZSBldmVudCB0cmlnZ2VyZWQgYnkgZm9jdXMgb25seVxuICAgICAgICAgIGlmICghdGFncy5oYXMoJ2ZvY3VzJykgfHwgdGFncy5zaXplID4gMSkge1xuICAgICAgICAgICAgaWYgKG9uQ2hhbmdlICE9IG51bGwpIG9uQ2hhbmdlKGVkaXRvclN0YXRlLCBlZGl0b3IsIHRhZ3MpXG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICAgIHtmbG9hdGluZ0FuY2hvckVsZW0gJiYgKFxuICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgeyFpc1NtYWxsV2lkdGhWaWV3cG9ydCAmJiBlZGl0b3IuaXNFZGl0YWJsZSgpICYmIChcbiAgICAgICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgPERyYWdnYWJsZUJsb2NrUGx1Z2luIGFuY2hvckVsZW09e2Zsb2F0aW5nQW5jaG9yRWxlbX0gLz5cbiAgICAgICAgICAgICAgPEFkZEJsb2NrSGFuZGxlUGx1Z2luIGFuY2hvckVsZW09e2Zsb2F0aW5nQW5jaG9yRWxlbX0gLz5cbiAgICAgICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7ZWRpdG9yQ29uZmlnLmZlYXR1cmVzLnBsdWdpbnMubWFwKChwbHVnaW4pID0+IHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgcGx1Z2luLnBvc2l0aW9uID09PSAnZmxvYXRpbmdBbmNob3JFbGVtJyAmJlxuICAgICAgICAgICAgICAhKHBsdWdpbi5kZXNrdG9wT25seSA9PT0gdHJ1ZSAmJiBpc1NtYWxsV2lkdGhWaWV3cG9ydClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxFZGl0b3JQbHVnaW4gYW5jaG9yRWxlbT17ZmxvYXRpbmdBbmNob3JFbGVtfSBrZXk9e3BsdWdpbi5rZXl9IHBsdWdpbj17cGx1Z2lufSAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSl9XG4gICAgICAgICAge2VkaXRvci5pc0VkaXRhYmxlKCkgJiYgKFxuICAgICAgICAgICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICAgICA8RmxvYXRpbmdTZWxlY3RUb29sYmFyUGx1Z2luIGFuY2hvckVsZW09e2Zsb2F0aW5nQW5jaG9yRWxlbX0gLz5cbiAgICAgICAgICAgICAgPFNsYXNoTWVudVBsdWdpbiBhbmNob3JFbGVtPXtmbG9hdGluZ0FuY2hvckVsZW19IC8+XG4gICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICApfVxuICAgICAge2VkaXRvci5pc0VkaXRhYmxlKCkgJiYgKFxuICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgPEhpc3RvcnlQbHVnaW4gLz5cbiAgICAgICAgICB7ZWRpdG9yQ29uZmlnPy5mZWF0dXJlcz8ubWFya2Rvd25UcmFuc2Zvcm1lcnM/Lmxlbmd0aCA+IDAgJiYgPE1hcmtkb3duU2hvcnRjdXRQbHVnaW4gLz59XG4gICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICApfVxuXG4gICAgICA8VGFiSW5kZW50YXRpb25QbHVnaW4gLz5cbiAgICAgIHtlZGl0b3JDb25maWcuZmVhdHVyZXMucGx1Z2lucy5tYXAoKHBsdWdpbikgPT4ge1xuICAgICAgICBpZiAocGx1Z2luLnBvc2l0aW9uID09PSAnbm9ybWFsJykge1xuICAgICAgICAgIHJldHVybiA8RWRpdG9yUGx1Z2luIGtleT17cGx1Z2luLmtleX0gcGx1Z2luPXtwbHVnaW59IC8+XG4gICAgICAgIH1cbiAgICAgIH0pfVxuICAgICAge2VkaXRvckNvbmZpZy5mZWF0dXJlcy5wbHVnaW5zLm1hcCgocGx1Z2luKSA9PiB7XG4gICAgICAgIGlmIChwbHVnaW4ucG9zaXRpb24gPT09ICdib3R0b20nKSB7XG4gICAgICAgICAgcmV0dXJuIDxFZGl0b3JQbHVnaW4ga2V5PXtwbHVnaW4ua2V5fSBwbHVnaW49e3BsdWdpbn0gLz5cbiAgICAgICAgfVxuICAgICAgfSl9XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbImxleGljYWxDb21wb3NlckNvbnRleHRJbXBvcnQiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiTGV4aWNhbEVycm9yQm91bmRhcnkiLCJsZXhpY2FsSGlzdG9yeVBsdWdpbkltcG9ydCIsIkhpc3RvcnlQbHVnaW4iLCJsZXhpY2FsT25DaGFuZ2VQbHVnaW5JbXBvcnQiLCJPbkNoYW5nZVBsdWdpbiIsImxleGljYWxSaWNoVGV4dFBsdWdpbkltcG9ydCIsIlJpY2hUZXh0UGx1Z2luIiwibGV4aWNhbFRhYkluZGVudGF0aW9uUGx1Z2luSW1wb3J0IiwiVGFiSW5kZW50YXRpb25QbHVnaW4iLCJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiRWRpdG9yUGx1Z2luIiwiRmxvYXRpbmdTZWxlY3RUb29sYmFyUGx1Z2luIiwiTWFya2Rvd25TaG9ydGN1dFBsdWdpbiIsIlNsYXNoTWVudVBsdWdpbiIsIkFkZEJsb2NrSGFuZGxlUGx1Z2luIiwiRHJhZ2dhYmxlQmxvY2tQbHVnaW4iLCJMZXhpY2FsQ29udGVudEVkaXRhYmxlIiwiTGV4aWNhbEVkaXRvciIsInByb3BzIiwiZWRpdG9yQ29uZmlnIiwib25DaGFuZ2UiLCJlZGl0b3IiLCJmbG9hdGluZ0FuY2hvckVsZW0iLCJzZXRGbG9hdGluZ0FuY2hvckVsZW0iLCJvblJlZiIsIl9mbG9hdGluZ0FuY2hvckVsZW0iLCJpc1NtYWxsV2lkdGhWaWV3cG9ydCIsInNldElzU21hbGxXaWR0aFZpZXdwb3J0IiwidXBkYXRlVmlld1BvcnRXaWR0aCIsImlzTmV4dFNtYWxsV2lkdGhWaWV3cG9ydCIsIndpbmRvdyIsIm1hdGNoTWVkaWEiLCJtYXRjaGVzIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJFcnJvckJvdW5kYXJ5Q29tcG9uZW50IiwiZGVmYXVsdCIsIkZyYWdtZW50IiwiZmVhdHVyZXMiLCJwbHVnaW5zIiwibWFwIiwicGx1Z2luIiwicG9zaXRpb24iLCJrZXkiLCJFcnJvckJvdW5kYXJ5IiwiY29udGVudEVkaXRhYmxlIiwiZGl2IiwiY2xhc3NOYW1lIiwicmVmIiwicGxhY2Vob2xkZXIiLCJwIiwiaWdub3JlU2VsZWN0aW9uQ2hhbmdlIiwiZWRpdG9yU3RhdGUiLCJ0YWdzIiwiaGFzIiwic2l6ZSIsImlzRWRpdGFibGUiLCJhbmNob3JFbGVtIiwiZGVza3RvcE9ubHkiLCJtYXJrZG93blRyYW5zZm9ybWVycyIsImxlbmd0aCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxPQUFPQSxrQ0FBa0MsMkNBQTBDO0FBQ25GLE1BQU0sRUFBRUMseUJBQXlCLEVBQUUsR0FBR0Q7QUFFdEMsT0FBT0UsMEJBQTBCLHlDQUF3QztBQUN6RSxPQUFPQyxnQ0FBZ0MseUNBQXdDO0FBQy9FLE1BQU0sRUFBRUMsYUFBYSxFQUFFLEdBQUdEO0FBRTFCLE9BQU9FLGlDQUFpQywwQ0FBeUM7QUFDakYsTUFBTSxFQUFFQyxjQUFjLEVBQUUsR0FBR0Q7QUFFM0IsT0FBT0UsaUNBQWlDLDBDQUF5QztBQUNqRixNQUFNLEVBQUVDLGNBQWMsRUFBRSxHQUFHRDtBQUUzQixPQUFPRSx1Q0FBdUMsZ0RBQStDO0FBQzdGLE1BQU0sRUFBRUMsb0JBQW9CLEVBQUUsR0FBR0Q7QUFFakMsWUFBWUUsV0FBVyxRQUFPO0FBQzlCLFNBQVNDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLFFB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
|
|
112
|
+
//# sourceMappingURL=LexicalEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/field/lexical/LexicalEditor.tsx"],"sourcesContent":["'use client'\nimport lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js'\nconst { useLexicalComposerContext } = lexicalComposerContextImport\n\nimport LexicalErrorBoundary from '@lexical/react/LexicalErrorBoundary.js'\nimport lexicalHistoryPluginImport from '@lexical/react/LexicalHistoryPlugin.js'\nconst { HistoryPlugin } = lexicalHistoryPluginImport\n\nimport lexicalOnChangePluginImport from '@lexical/react/LexicalOnChangePlugin.js'\nconst { OnChangePlugin } = lexicalOnChangePluginImport\n\nimport lexicalRichTextPluginImport from '@lexical/react/LexicalRichTextPlugin.js'\nconst { RichTextPlugin } = lexicalRichTextPluginImport\n\nimport lexicalTabIndentationPluginImport from '@lexical/react/LexicalTabIndentationPlugin.js'\nconst { TabIndentationPlugin } = lexicalTabIndentationPluginImport\n\nimport * as React from 'react'\nimport { useEffect, useState } from 'react'\n\nimport type { LexicalProviderProps } from './LexicalProvider.js'\n\nimport { EditorPlugin } from './EditorPlugin.js'\nimport './LexicalEditor.scss'\nimport { FloatingSelectToolbarPlugin } from './plugins/FloatingSelectToolbar/index.js'\nimport { MarkdownShortcutPlugin } from './plugins/MarkdownShortcut/index.js'\nimport { SlashMenuPlugin } from './plugins/SlashMenu/index.js'\nimport { AddBlockHandlePlugin } from './plugins/handles/AddBlockHandlePlugin/index.js'\nimport { DraggableBlockPlugin } from './plugins/handles/DraggableBlockPlugin/index.js'\nimport { LexicalContentEditable } from './ui/ContentEditable.js'\n\nexport const LexicalEditor: React.FC<Pick<LexicalProviderProps, 'editorConfig' | 'onChange'>> = (\n props,\n) => {\n const { editorConfig, onChange } = props\n const [editor] = useLexicalComposerContext()\n\n const [floatingAnchorElem, setFloatingAnchorElem] = useState<HTMLDivElement | null>(null)\n const onRef = (_floatingAnchorElem: HTMLDivElement) => {\n if (_floatingAnchorElem !== null) {\n setFloatingAnchorElem(_floatingAnchorElem)\n }\n }\n\n const [isSmallWidthViewport, setIsSmallWidthViewport] = useState<boolean>(false)\n\n useEffect(() => {\n const updateViewPortWidth = () => {\n const isNextSmallWidthViewport = window.matchMedia('(max-width: 1025px)').matches\n\n if (isNextSmallWidthViewport !== isSmallWidthViewport) {\n setIsSmallWidthViewport(isNextSmallWidthViewport)\n }\n }\n updateViewPortWidth()\n window.addEventListener('resize', updateViewPortWidth)\n\n return () => {\n window.removeEventListener('resize', updateViewPortWidth)\n }\n }, [isSmallWidthViewport])\n\n const ErrorBoundaryComponent = LexicalErrorBoundary.default || LexicalErrorBoundary\n\n return (\n <React.Fragment>\n {editorConfig.features.plugins.map((plugin) => {\n if (plugin.position === 'top') {\n return <EditorPlugin key={plugin.key} plugin={plugin} />\n }\n })}\n <RichTextPlugin\n //@ts-expect-error ts being dumb\n ErrorBoundary={ErrorBoundaryComponent}\n contentEditable={\n <div className=\"editor-scroller\">\n <div className=\"editor\" ref={onRef}>\n <LexicalContentEditable />\n </div>\n </div>\n }\n placeholder={\n <p className=\"editor-placeholder\">Start typing, or press '/' for commands...</p>\n }\n />\n <OnChangePlugin\n // Selection changes can be ignored here, reducing the\n // frequency that the FieldComponent and Payload receive updates.\n // Selection changes are only needed if you are saving selection state\n ignoreSelectionChange\n onChange={(editorState, editor, tags) => {\n // Ignore any onChange event triggered by focus only\n if (!tags.has('focus') || tags.size > 1) {\n if (onChange != null) onChange(editorState, editor, tags)\n }\n }}\n />\n {floatingAnchorElem && (\n <React.Fragment>\n {!isSmallWidthViewport && editor.isEditable() && (\n <React.Fragment>\n <DraggableBlockPlugin anchorElem={floatingAnchorElem} />\n <AddBlockHandlePlugin anchorElem={floatingAnchorElem} />\n </React.Fragment>\n )}\n {editorConfig.features.plugins.map((plugin) => {\n if (\n plugin.position === 'floatingAnchorElem' &&\n !(plugin.desktopOnly === true && isSmallWidthViewport)\n ) {\n return (\n <EditorPlugin anchorElem={floatingAnchorElem} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n {editor.isEditable() && (\n <React.Fragment>\n <FloatingSelectToolbarPlugin anchorElem={floatingAnchorElem} />\n <SlashMenuPlugin anchorElem={floatingAnchorElem} />\n </React.Fragment>\n )}\n </React.Fragment>\n )}\n {editor.isEditable() && (\n <React.Fragment>\n <HistoryPlugin />\n {editorConfig?.features?.markdownTransformers?.length > 0 && <MarkdownShortcutPlugin />}\n </React.Fragment>\n )}\n\n <TabIndentationPlugin />\n {editorConfig.features.plugins.map((plugin) => {\n if (plugin.position === 'normal') {\n return <EditorPlugin key={plugin.key} plugin={plugin} />\n }\n })}\n {editorConfig.features.plugins.map((plugin) => {\n if (plugin.position === 'bottom') {\n return <EditorPlugin key={plugin.key} plugin={plugin} />\n }\n })}\n </React.Fragment>\n )\n}\n"],"names":["lexicalComposerContextImport","useLexicalComposerContext","LexicalErrorBoundary","lexicalHistoryPluginImport","HistoryPlugin","lexicalOnChangePluginImport","OnChangePlugin","lexicalRichTextPluginImport","RichTextPlugin","lexicalTabIndentationPluginImport","TabIndentationPlugin","React","useEffect","useState","EditorPlugin","FloatingSelectToolbarPlugin","MarkdownShortcutPlugin","SlashMenuPlugin","AddBlockHandlePlugin","DraggableBlockPlugin","LexicalContentEditable","LexicalEditor","props","editorConfig","onChange","editor","floatingAnchorElem","setFloatingAnchorElem","onRef","_floatingAnchorElem","isSmallWidthViewport","setIsSmallWidthViewport","updateViewPortWidth","isNextSmallWidthViewport","window","matchMedia","matches","addEventListener","removeEventListener","ErrorBoundaryComponent","default","Fragment","features","plugins","map","plugin","position","key","ErrorBoundary","contentEditable","div","className","ref","placeholder","p","ignoreSelectionChange","editorState","tags","has","size","isEditable","anchorElem","desktopOnly","markdownTransformers","length"],"mappings":"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"}
|
|
@@ -64,4 +64,4 @@ export const LexicalProvider = (props)=>{
|
|
|
64
64
|
}))));
|
|
65
65
|
};
|
|
66
66
|
|
|
67
|
-
//# sourceMappingURL=
|
|
67
|
+
//# sourceMappingURL=LexicalProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/field/lexical/LexicalProvider.tsx"],"sourcesContent":["'use client'\nimport type { FormFieldBase } from '@payloadcms/ui'\nimport type { EditorState, SerializedEditorState } from 'lexical'\nimport type { LexicalEditor } from 'lexical'\n\nimport lexicalComposerImport from '@lexical/react/LexicalComposer.js'\nconst { LexicalComposer } = lexicalComposerImport\n\nimport type { InitialConfigType } from '@lexical/react/LexicalComposer.js'\n\nimport * as React from 'react'\n\nimport type { SanitizedClientEditorConfig } from './config/types.js'\n\nimport { LexicalEditor as LexicalEditorComponent } from './LexicalEditor.js'\nimport { EditorConfigProvider } from './config/client/EditorConfigProvider.js'\nimport { getEnabledNodes } from './nodes/index.js'\n\nexport type LexicalProviderProps = {\n editorConfig: SanitizedClientEditorConfig\n fieldProps: FormFieldBase & {\n editorConfig: SanitizedClientEditorConfig // With rendered features n stuff\n name: string\n richTextComponentMap: Map<string, React.ReactNode>\n }\n onChange: (editorState: EditorState, editor: LexicalEditor, tags: Set<string>) => void\n path: string\n readOnly: boolean\n value: SerializedEditorState\n}\nexport const LexicalProvider: React.FC<LexicalProviderProps> = (props) => {\n const { editorConfig, fieldProps, onChange, path, readOnly } = props\n let { value } = props\n\n const [initialConfig, setInitialConfig] = React.useState<InitialConfigType | null>(null)\n\n // set lexical config in useEffect: // TODO: Is this the most performant way to do this? Prob not\n React.useEffect(() => {\n const newInitialConfig: InitialConfigType = {\n editable: readOnly !== true,\n editorState: value != null ? JSON.stringify(value) : undefined,\n namespace: editorConfig.lexical.namespace,\n nodes: [...getEnabledNodes({ editorConfig })],\n onError: (error: Error) => {\n throw error\n },\n theme: editorConfig.lexical.theme,\n }\n setInitialConfig(newInitialConfig)\n }, [editorConfig, readOnly, value])\n\n if (editorConfig?.features?.hooks?.load?.length) {\n editorConfig.features.hooks.load.forEach((hook) => {\n value = hook({ incomingEditorState: value })\n })\n }\n\n if (value && typeof value !== 'object') {\n throw new Error(\n 'The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: ' +\n JSON.stringify(value),\n )\n }\n\n if (value && Array.isArray(value) && !('root' in value)) {\n throw new Error(\n 'You have tried to pass in data from the old, Slate editor, to the new, Lexical editor. This is not supported. There is no automatic conversion from Slate to Lexical data available yet (coming soon). Please remove the data from the field and start again.',\n )\n }\n\n if (value && 'jsonContent' in value) {\n throw new Error(\n 'You have tried to pass in data from payload-plugin-lexical. This is not supported. The data structure has changed in this editor, compared to the plugin, and there is no automatic conversion available yet (coming soon). Please remove the data from the field and start again.',\n )\n }\n\n if (!initialConfig) {\n return <p>Loading...</p>\n }\n\n return (\n <LexicalComposer initialConfig={initialConfig} key={path}>\n <EditorConfigProvider editorConfig={editorConfig} fieldProps={fieldProps}>\n <div className=\"editor-shell\">\n <LexicalEditorComponent editorConfig={editorConfig} onChange={onChange} />\n </div>\n </EditorConfigProvider>\n </LexicalComposer>\n )\n}\n"],"names":["lexicalComposerImport","LexicalComposer","React","LexicalEditor","LexicalEditorComponent","EditorConfigProvider","getEnabledNodes","LexicalProvider","props","editorConfig","fieldProps","onChange","path","readOnly","value","initialConfig","setInitialConfig","useState","useEffect","newInitialConfig","editable","editorState","JSON","stringify","undefined","namespace","lexical","nodes","onError","error","theme","features","hooks","load","length","forEach","hook","incomingEditorState","Error","Array","isArray","p","key","div","className"],"mappings":"AAAA;AAKA,OAAOA,2BAA2B,oCAAmC;AACrE,MAAM,EAAEC,eAAe,EAAE,GAAGD;AAI5B,YAAYE,WAAW,QAAO;AAI9B,SAASC,iBAAiBC,sBAAsB,QAAQ,qBAAoB;AAC5E,SAASC,oBAAoB,QAAQ,0CAAyC;AAC9E,SAASC,eAAe,QAAQ,mBAAkB;AAclD,OAAO,MAAMC,kBAAkD,CAACC;IAC9D,MAAM,EAAEC,YAAY,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,QAAQ,EAAE,GAAGL;IAC/D,IAAI,EAAEM,KAAK,EAAE,GAAGN;IAEhB,MAAM,CAACO,eAAeC,iBAAiB,GAAGd,MAAMe,QAAQ,CAA2B;IAEnF,iGAAiG;IACjGf,MAAMgB,SAAS,CAAC;QACd,MAAMC,mBAAsC;YAC1CC,UAAUP,aAAa;YACvBQ,aAAaP,SAAS,OAAOQ,KAAKC,SAAS,CAACT,SAASU;YACrDC,WAAWhB,aAAaiB,OAAO,CAACD,SAAS;YACzCE,OAAO;mBAAIrB,gBAAgB;oBAAEG;gBAAa;aAAG;YAC7CmB,SAAS,CAACC;gBACR,MAAMA;YACR;YACAC,OAAOrB,aAAaiB,OAAO,CAACI,KAAK;QACnC;QACAd,iBAAiBG;IACnB,GAAG;QAACV;QAAcI;QAAUC;KAAM;IAElC,IAAIL,cAAcsB,UAAUC,OAAOC,MAAMC,QAAQ;QAC/CzB,aAAasB,QAAQ,CAACC,KAAK,CAACC,IAAI,CAACE,OAAO,CAAC,CAACC;YACxCtB,QAAQsB,KAAK;gBAAEC,qBAAqBvB;YAAM;QAC5C;IACF;IAEA,IAAIA,SAAS,OAAOA,UAAU,UAAU;QACtC,MAAM,IAAIwB,MACR,kLACEhB,KAAKC,SAAS,CAACT;IAErB;IAEA,IAAIA,SAASyB,MAAMC,OAAO,CAAC1B,UAAU,CAAE,CAAA,UAAUA,KAAI,GAAI;QACvD,MAAM,IAAIwB,MACR;IAEJ;IAEA,IAAIxB,SAAS,iBAAiBA,OAAO;QACnC,MAAM,IAAIwB,MACR;IAEJ;IAEA,IAAI,CAACvB,eAAe;QAClB,qBAAO,oBAAC0B,WAAE;IACZ;IAEA,qBACE,oBAACxC;QAAgBc,eAAeA;QAAe2B,KAAK9B;qBAClD,oBAACP;QAAqBI,cAAcA;QAAcC,YAAYA;qBAC5D,oBAACiC;QAAIC,WAAU;qBACb,oBAACxC;QAAuBK,cAAcA;QAAcE,UAAUA;;AAKxE,EAAC"}
|
|
@@ -38,4 +38,4 @@ export const useEditorConfigContext = ()=>{
|
|
|
38
38
|
return context;
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
-
//# sourceMappingURL=
|
|
41
|
+
//# sourceMappingURL=EditorConfigProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/field/lexical/config/client/EditorConfigProvider.tsx"],"sourcesContent":["'use client'\nimport type { FormFieldBase } from '@payloadcms/ui'\n\nimport * as React from 'react'\nimport { createContext, useContext, useEffect, useMemo, useState } from 'react'\n\nimport type { SanitizedClientEditorConfig } from '../types.js'\n\n// Should always produce a 20 character pseudo-random string\nfunction generateQuickGuid(): string {\n return Math.random().toString(36).substring(2, 12) + Math.random().toString(36).substring(2, 12)\n}\ninterface ContextType {\n editorConfig: SanitizedClientEditorConfig\n field: FormFieldBase & {\n editorConfig: SanitizedClientEditorConfig // With rendered features n stuff\n name: string\n richTextComponentMap: Map<string, React.ReactNode>\n }\n uuid: string\n}\n\nconst Context: React.Context<ContextType> = createContext({\n editorConfig: null,\n field: null,\n uuid: generateQuickGuid(),\n})\n\nexport const EditorConfigProvider = ({\n children,\n editorConfig,\n fieldProps,\n}: {\n children: React.ReactNode\n editorConfig: SanitizedClientEditorConfig\n fieldProps: FormFieldBase & {\n editorConfig: SanitizedClientEditorConfig // With rendered features n stuff\n name: string\n richTextComponentMap: Map<string, React.ReactNode>\n }\n}): React.ReactNode => {\n // State to store the UUID\n const [uuid, setUuid] = useState(generateQuickGuid())\n\n // When the component mounts, generate a new UUID only once\n useEffect(() => {\n setUuid(generateQuickGuid())\n }, [])\n\n const editorContext = useMemo(\n () => ({ editorConfig, field: fieldProps, uuid }),\n [editorConfig, fieldProps, uuid],\n )\n\n return <Context.Provider value={editorContext}>{children}</Context.Provider>\n}\n\nexport const useEditorConfigContext = (): ContextType => {\n const context = useContext(Context)\n if (context === undefined) {\n throw new Error('useEditorConfigContext must be used within an EditorConfigProvider')\n }\n return context\n}\n"],"names":["React","createContext","useContext","useEffect","useMemo","useState","generateQuickGuid","Math","random","toString","substring","Context","editorConfig","field","uuid","EditorConfigProvider","children","fieldProps","setUuid","editorContext","Provider","value","useEditorConfigContext","context","undefined","Error"],"mappings":"AAAA;AAGA,YAAYA,WAAW,QAAO;AAC9B,SAASC,aAAa,EAAEC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,QAAO;AAI/E,4DAA4D;AAC5D,SAASC;IACP,OAAOC,KAAKC,MAAM,GAAGC,QAAQ,CAAC,IAAIC,SAAS,CAAC,GAAG,MAAMH,KAAKC,MAAM,GAAGC,QAAQ,CAAC,IAAIC,SAAS,CAAC,GAAG;AAC/F;AAWA,MAAMC,wBAAsCV,cAAc;IACxDW,cAAc;IACdC,OAAO;IACPC,MAAMR;AACR;AAEA,OAAO,MAAMS,uBAAuB,CAAC,EACnCC,QAAQ,EACRJ,YAAY,EACZK,UAAU,EASX;IACC,0BAA0B;IAC1B,MAAM,CAACH,MAAMI,QAAQ,GAAGb,SAASC;IAEjC,2DAA2D;IAC3DH,UAAU;QACRe,QAAQZ;IACV,GAAG,EAAE;IAEL,MAAMa,gBAAgBf,QACpB,IAAO,CAAA;YAAEQ;YAAcC,OAAOI;YAAYH;QAAK,CAAA,GAC/C;QAACF;QAAcK;QAAYH;KAAK;IAGlC,qBAAO,oBAACH,QAAQS,QAAQ;QAACC,OAAOF;OAAgBH;AAClD,EAAC;AAED,OAAO,MAAMM,yBAAyB;IACpC,MAAMC,UAAUrB,WAAWS;IAC3B,IAAIY,YAAYC,WAAW;QACzB,MAAM,IAAIC,MAAM;IAClB;IACA,OAAOF;AACT,EAAC"}
|
|
@@ -5,4 +5,4 @@ export const defaultEditorLexicalConfig = {
|
|
|
5
5
|
theme: LexicalEditorTheme
|
|
6
6
|
};
|
|
7
7
|
|
|
8
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=default.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/field/lexical/config/client/default.ts"],"sourcesContent":["'use client'\nimport type { EditorConfig as LexicalEditorConfig } from 'lexical/LexicalEditor.js'\n\nimport { LexicalEditorTheme } from '../../theme/EditorTheme.js'\n\nexport const defaultEditorLexicalConfig: LexicalEditorConfig = {\n namespace: 'lexical',\n theme: LexicalEditorTheme,\n}\n"],"names":["LexicalEditorTheme","defaultEditorLexicalConfig","namespace","theme"],"mappings":"AAAA;AAGA,SAASA,kBAAkB,QAAQ,6BAA4B;AAE/D,OAAO,MAAMC,6BAAkD;IAC7DC,WAAW;IACXC,OAAOH;AACT,EAAC"}
|
|
@@ -43,4 +43,4 @@
|
|
|
43
43
|
return resolvedFeatures;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
//# sourceMappingURL=
|
|
46
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/field/lexical/config/client/loader.ts"],"sourcesContent":["'use client'\n\nimport type {\n ClientFeatureProviderMap,\n FeatureProviderClient,\n ResolvedClientFeatureMap,\n} from '../../../features/types.js'\nimport type { ClientEditorConfig } from '../types.js'\n\n/**\n * This function expects client functions to ALREADY be ordered & dependencies checked on the server\n * @param unSanitizedEditorConfig\n */\nexport function loadClientFeatures({\n clientFunctions,\n schemaPath,\n unSanitizedEditorConfig,\n}: {\n clientFunctions?: Record<string, any>\n schemaPath: string\n unSanitizedEditorConfig: ClientEditorConfig\n}): ResolvedClientFeatureMap {\n for (const featureProvider of unSanitizedEditorConfig.features) {\n if (\n !featureProvider?.clientFeatureProps?.featureKey ||\n featureProvider?.clientFeatureProps?.order === undefined ||\n featureProvider?.clientFeatureProps?.order === null\n ) {\n throw new Error(\n 'A Feature you have installed does not return the client props as clientFeatureProps. Please make sure to always return those props, even if they are null, as other important props like order and featureKey are later on injected.',\n )\n }\n }\n\n // sort unSanitizedEditorConfig.features by order\n unSanitizedEditorConfig.features = unSanitizedEditorConfig.features.sort(\n (a, b) => a.clientFeatureProps.order - b.clientFeatureProps.order,\n )\n\n const featureProviderMap: ClientFeatureProviderMap = new Map(\n unSanitizedEditorConfig.features.map(\n (f) => [f.clientFeatureProps.featureKey, f] as [string, FeatureProviderClient<unknown>],\n ),\n )\n\n const resolvedFeatures: ResolvedClientFeatureMap = new Map()\n\n // Make sure all dependencies declared in the respective features exist\n let loaded = 0\n for (const featureProvider of unSanitizedEditorConfig.features) {\n /**\n * Load relevant clientFunctions scoped to this feature and then pass them to the client feature\n */\n const relevantClientFunctions: Record<string, any> = {}\n Object.entries(clientFunctions).forEach(([key, plugin]) => {\n if (\n key.startsWith(\n `lexicalFeature.${schemaPath}.${featureProvider.clientFeatureProps.featureKey}.components.`,\n )\n ) {\n const featureComponentKey = key.split(\n `${schemaPath}.${featureProvider.clientFeatureProps.featureKey}.components.`,\n )[1]\n relevantClientFunctions[featureComponentKey] = plugin\n }\n })\n\n const feature = featureProvider.feature({\n clientFunctions: relevantClientFunctions,\n featureProviderMap,\n resolvedFeatures,\n unSanitizedEditorConfig,\n })\n resolvedFeatures.set(featureProvider.clientFeatureProps.featureKey, {\n ...feature,\n key: featureProvider.clientFeatureProps.featureKey,\n order: loaded,\n })\n\n loaded++\n }\n\n return resolvedFeatures\n}\n"],"names":["loadClientFeatures","clientFunctions","schemaPath","unSanitizedEditorConfig","featureProvider","features","clientFeatureProps","featureKey","order","undefined","Error","sort","a","b","featureProviderMap","Map","map","f","resolvedFeatures","loaded","relevantClientFunctions","Object","entries","forEach","key","plugin","startsWith","featureComponentKey","split","feature","set"],"mappings":"AAAA;AASA;;;CAGC,GACD,OAAO,SAASA,mBAAmB,EACjCC,eAAe,EACfC,UAAU,EACVC,uBAAuB,EAKxB;IACC,KAAK,MAAMC,mBAAmBD,wBAAwBE,QAAQ,CAAE;QAC9D,IACE,CAACD,iBAAiBE,oBAAoBC,cACtCH,iBAAiBE,oBAAoBE,UAAUC,aAC/CL,iBAAiBE,oBAAoBE,UAAU,MAC/C;YACA,MAAM,IAAIE,MACR;QAEJ;IACF;IAEA,iDAAiD;IACjDP,wBAAwBE,QAAQ,GAAGF,wBAAwBE,QAAQ,CAACM,IAAI,CACtE,CAACC,GAAGC,IAAMD,EAAEN,kBAAkB,CAACE,KAAK,GAAGK,EAAEP,kBAAkB,CAACE,KAAK;IAGnE,MAAMM,qBAA+C,IAAIC,IACvDZ,wBAAwBE,QAAQ,CAACW,GAAG,CAClC,CAACC,IAAM;YAACA,EAAEX,kBAAkB,CAACC,UAAU;YAAEU;SAAE;IAI/C,MAAMC,mBAA6C,IAAIH;IAEvD,uEAAuE;IACvE,IAAII,SAAS;IACb,KAAK,MAAMf,mBAAmBD,wBAAwBE,QAAQ,CAAE;QAC9D;;KAEC,GACD,MAAMe,0BAA+C,CAAC;QACtDC,OAAOC,OAAO,CAACrB,iBAAiBsB,OAAO,CAAC,CAAC,CAACC,KAAKC,OAAO;YACpD,IACED,IAAIE,UAAU,CACZ,CAAC,eAAe,EAAExB,WAAW,CAAC,EAAEE,gBAAgBE,kBAAkB,CAACC,UAAU,CAAC,YAAY,CAAC,GAE7F;gBACA,MAAMoB,sBAAsBH,IAAII,KAAK,CACnC,CAAC,EAAE1B,WAAW,CAAC,EAAEE,gBAAgBE,kBAAkB,CAACC,UAAU,CAAC,YAAY,CAAC,CAC7E,CAAC,EAAE;gBACJa,uBAAuB,CAACO,oBAAoB,GAAGF;YACjD;QACF;QAEA,MAAMI,UAAUzB,gBAAgByB,OAAO,CAAC;YACtC5B,iBAAiBmB;YACjBN;YACAI;YACAf;QACF;QACAe,iBAAiBY,GAAG,CAAC1B,gBAAgBE,kBAAkB,CAACC,UAAU,EAAE;YAClE,GAAGsB,OAAO;YACVL,KAAKpB,gBAAgBE,kBAAkB,CAACC,UAAU;YAClDC,OAAOW;QACT;QAEAA;IACF;IAEA,OAAOD;AACT"}
|
|
@@ -123,4 +123,4 @@ export function sanitizeClientEditorConfig(lexical, resolvedClientFeatureMap) {
|
|
|
123
123
|
};
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL2NvbmZpZy9jbGllbnQvc2FuaXRpemUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIHsgRWRpdG9yQ29uZmlnIGFzIExleGljYWxFZGl0b3JDb25maWcgfSBmcm9tICdsZXhpY2FsL0xleGljYWxFZGl0b3IuanMnXG5cbmltcG9ydCB0eXBlIHsgUmVzb2x2ZWRDbGllbnRGZWF0dXJlTWFwLCBTYW5pdGl6ZWRDbGllbnRGZWF0dXJlcyB9IGZyb20gJy4uLy4uLy4uL2ZlYXR1cmVzL3R5cGVzLmpzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDbGllbnRFZGl0b3JDb25maWcgfSBmcm9tICcuLi90eXBlcy5qcydcblxuZXhwb3J0IGNvbnN0IHNhbml0aXplQ2xpZW50RmVhdHVyZXMgPSAoXG4gIGZlYXR1cmVzOiBSZXNvbHZlZENsaWVudEZlYXR1cmVNYXAsXG4pOiBTYW5pdGl6ZWRDbGllbnRGZWF0dXJlcyA9PiB7XG4gIGNvbnN0IHNhbml0aXplZDogU2FuaXRpemVkQ2xpZW50RmVhdHVyZXMgPSB7XG4gICAgZW5hYmxlZEZlYXR1cmVzOiBbXSxcbiAgICBmbG9hdGluZ1NlbGVjdFRvb2xiYXI6IHtcbiAgICAgIHNlY3Rpb25zOiBbXSxcbiAgICB9LFxuICAgIGhvb2tzOiB7XG4gICAgICBsb2FkOiBbXSxcbiAgICAgIHNhdmU6IFtdLFxuICAgIH0sXG4gICAgbWFya2Rvd25UcmFuc2Zvcm1lcnM6IFtdLFxuICAgIG5vZGVzOiBbXSxcbiAgICBwbHVnaW5zOiBbXSxcbiAgICBzbGFzaE1lbnU6IHtcbiAgICAgIGR5bmFtaWNPcHRpb25zOiBbXSxcbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zOiBbXSxcbiAgICB9LFxuICB9XG5cbiAgaWYgKCFmZWF0dXJlcz8uc2l6ZSkge1xuICAgIHJldHVybiBzYW5pdGl6ZWRcbiAgfVxuXG4gIGZlYXR1cmVzLmZvckVhY2goKGZlYXR1cmUpID0+IHtcbiAgICBpZiAoZmVhdHVyZS5ob29rcykge1xuICAgICAgaWYgKGZlYXR1cmUuaG9va3M/LmxvYWQ/Lmxlbmd0aCkge1xuICAgICAgICBzYW5pdGl6ZWQuaG9va3MubG9hZCA9IHNhbml0aXplZC5ob29rcy5sb2FkLmNvbmNhdChmZWF0dXJlLmhvb2tzLmxvYWQpXG4gICAgICB9XG4gICAgICBpZiAoZmVhdHVyZS5ob29rcz8uc2F2ZT8ubGVuZ3RoKSB7XG4gICAgICAgIHNhbml0aXplZC5ob29rcy5zYXZlID0gc2FuaXRpemVkLmhvb2tzLnNhdmUuY29uY2F0KGZlYXR1cmUuaG9va3Muc2F2ZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmVhdHVyZS5ub2Rlcz8ubGVuZ3RoKSB7XG4gICAgICBzYW5pdGl6ZWQubm9kZXMgPSBzYW5pdGl6ZWQubm9kZXMuY29uY2F0KGZlYXR1cmUubm9kZXMpXG4gICAgfVxuICAgIGlmIChmZWF0dXJlLnBsdWdpbnM/Lmxlbmd0aCkge1xuICAgICAgZmVhdHVyZS5wbHVnaW5zLmZvckVhY2goKHBsdWdpbiwgaSkgPT4ge1xuICAgICAgICBzYW5pdGl6ZWQucGx1Z2lucy5wdXNoKHtcbiAgICAgICAgICBDb21wb25lbnQ6IHBsdWdpbi5Db21wb25lbnQsXG4gICAgICAgICAga2V5OiBmZWF0dXJlLmtleSArIGksXG4gICAgICAgICAgcG9zaXRpb246IHBsdWdpbi5wb3NpdGlvbixcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKGZlYXR1cmUuZmxvYXRpbmdTZWxlY3RUb29sYmFyPy5zZWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICBmb3IgKGNvbnN0IHNlY3Rpb24gb2YgZmVhdHVyZS5mbG9hdGluZ1NlbGVjdFRvb2xiYXIuc2VjdGlvbnMpIHtcbiAgICAgICAgLy8gMS4gZmluZCB0aGUgc2VjdGlvbiB3aXRoIHRoZSBzYW1lIGtleSBvciBjcmVhdGUgbmV3IG9uZVxuICAgICAgICBsZXQgZm91bmRTZWN0aW9uID0gc2FuaXRpemVkLmZsb2F0aW5nU2VsZWN0VG9vbGJhci5zZWN0aW9ucy5maW5kKFxuICAgICAgICAgIChzYW5pdGl6ZWRTZWN0aW9uKSA9PiBzYW5pdGl6ZWRTZWN0aW9uLmtleSA9PT0gc2VjdGlvbi5rZXksXG4gICAgICAgIClcbiAgICAgICAgaWYgKCFmb3VuZFNlY3Rpb24pIHtcbiAgICAgICAgICBmb3VuZFNlY3Rpb24gPSB7XG4gICAgICAgICAgICAuLi5zZWN0aW9uLFxuICAgICAgICAgICAgZW50cmllczogW10sXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNhbml0aXplZC5mbG9hdGluZ1NlbGVjdFRvb2xiYXIuc2VjdGlvbnMgPVxuICAgICAgICAgICAgc2FuaXRpemVkLmZsb2F0aW5nU2VsZWN0VG9vbGJhci5zZWN0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgICAgIChzYW5pdGl6ZWRTZWN0aW9uKSA9PiBzYW5pdGl6ZWRTZWN0aW9uLmtleSAhPT0gc2VjdGlvbi5rZXksXG4gICAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICAvLyAyLiBBZGQgb3B0aW9ucyB0byBncm91cCBvcHRpb25zIGFycmF5IGFuZCBhZGQgdG8gc2FuaXRpemVkLnNsYXNoTWVudS5ncm91cHNXaXRoT3B0aW9uc1xuICAgICAgICBpZiAoc2VjdGlvbj8uZW50cmllcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgZm91bmRTZWN0aW9uLmVudHJpZXMgPSBmb3VuZFNlY3Rpb24uZW50cmllcy5jb25jYXQoc2VjdGlvbi5lbnRyaWVzKVxuICAgICAgICB9XG4gICAgICAgIHNhbml0aXplZC5mbG9hdGluZ1NlbGVjdFRvb2xiYXI/LnNlY3Rpb25zLnB1c2goZm91bmRTZWN0aW9uKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmZWF0dXJlLnNsYXNoTWVudT8ub3B0aW9ucykge1xuICAgICAgaWYgKGZlYXR1cmUuc2xhc2hNZW51LmR5bmFtaWNPcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgc2FuaXRpemVkLnNsYXNoTWVudS5keW5hbWljT3B0aW9ucyA9IHNhbml0aXplZC5zbGFzaE1lbnUuZHluYW1pY09wdGlvbnMuY29uY2F0KFxuICAgICAgICAgIGZlYXR1cmUuc2xhc2hNZW51LmR5bmFtaWNPcHRpb25zLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3Qgb3B0aW9uR3JvdXAgb2YgZmVhdHVyZS5zbGFzaE1lbnUub3B0aW9ucykge1xuICAgICAgICAvLyAxLiBmaW5kIHRoZSBncm91cCB3aXRoIHRoZSBzYW1lIG5hbWUgb3IgY3JlYXRlIG5ldyBvbmVcbiAgICAgICAgbGV0IGdyb3VwID0gc2FuaXRpemVkLnNsYXNoTWVudS5ncm91cHNXaXRoT3B0aW9ucy5maW5kKFxuICAgICAgICAgIChncm91cCkgPT4gZ3JvdXAua2V5ID09PSBvcHRpb25Hcm91cC5rZXksXG4gICAgICAgIClcbiAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgIGdyb3VwID0ge1xuICAgICAgICAgICAgLi4ub3B0aW9uR3JvdXAsXG4gICAgICAgICAgICBvcHRpb25zOiBbXSxcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2FuaXRpemVkLnNsYXNoTWVudS5ncm91cHNXaXRoT3B0aW9ucyA9IHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgKGdyb3VwKSA9PiBncm91cC5rZXkgIT09IG9wdGlvbkdyb3VwLmtleSxcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICAvLyAyLiBBZGQgb3B0aW9ucyB0byBncm91cCBvcHRpb25zIGFycmF5IGFuZCBhZGQgdG8gc2FuaXRpemVkLnNsYXNoTWVudS5ncm91cHNXaXRoT3B0aW9uc1xuICAgICAgICBpZiAob3B0aW9uR3JvdXA/Lm9wdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgIGdyb3VwLm9wdGlvbnMgPSBncm91cC5vcHRpb25zLmNvbmNhdChvcHRpb25Hcm91cC5vcHRpb25zKVxuICAgICAgICB9XG4gICAgICAgIHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMucHVzaChncm91cClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmVhdHVyZS5tYXJrZG93blRyYW5zZm9ybWVycz8ubGVuZ3RoKSB7XG4gICAgICBzYW5pdGl6ZWQubWFya2Rvd25UcmFuc2Zvcm1lcnMgPSBzYW5pdGl6ZWQubWFya2Rvd25UcmFuc2Zvcm1lcnMuY29uY2F0KFxuICAgICAgICBmZWF0dXJlLm1hcmtkb3duVHJhbnNmb3JtZXJzLFxuICAgICAgKVxuICAgIH1cbiAgICBzYW5pdGl6ZWQuZW5hYmxlZEZlYXR1cmVzLnB1c2goZmVhdHVyZS5rZXkpXG4gIH0pXG5cbiAgLy8gU29ydCBzYW5pdGl6ZWQuZmxvYXRpbmdTZWxlY3RUb29sYmFyLnNlY3Rpb25zIGJ5IG9yZGVyIHByb3BlcnR5XG4gIHNhbml0aXplZC5mbG9hdGluZ1NlbGVjdFRvb2xiYXIuc2VjdGlvbnMuc29ydCgoYSwgYikgPT4ge1xuICAgIGlmIChhLm9yZGVyICYmIGIub3JkZXIpIHtcbiAgICAgIHJldHVybiBhLm9yZGVyIC0gYi5vcmRlclxuICAgIH0gZWxzZSBpZiAoYS5vcmRlcikge1xuICAgICAgcmV0dXJuIC0xXG4gICAgfSBlbHNlIGlmIChiLm9yZGVyKSB7XG4gICAgICByZXR1cm4gMVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gMFxuICAgIH1cbiAgfSlcblxuICAvLyBTb3J0IHNhbml0aXplZC5mbG9hdGluZ1NlbGVjdFRvb2xiYXIuc2VjdGlvbnMuW3NlY3Rpb25dLmVudHJpZXMgYnkgb3JkZXIgcHJvcGVydHlcbiAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHNhbml0aXplZC5mbG9hdGluZ1NlbGVjdFRvb2xiYXIuc2VjdGlvbnMpIHtcbiAgICBzZWN0aW9uLmVudHJpZXMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgaWYgKGEub3JkZXIgJiYgYi5vcmRlcikge1xuICAgICAgICByZXR1cm4gYS5vcmRlciAtIGIub3JkZXJcbiAgICAgIH0gZWxzZSBpZiAoYS5vcmRlcikge1xuICAgICAgICByZXR1cm4gLTFcbiAgICAgIH0gZWxzZSBpZiAoYi5vcmRlcikge1xuICAgICAgICByZXR1cm4gMVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDBcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHNhbml0aXplZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemVDbGllbnRFZGl0b3JDb25maWcoXG4gIGxleGljYWw6IExleGljYWxFZGl0b3JDb25maWcsXG4gIHJlc29sdmVkQ2xpZW50RmVhdHVyZU1hcDogUmVzb2x2ZWRDbGllbnRGZWF0dXJlTWFwLFxuKTogU2FuaXRpemVkQ2xpZW50RWRpdG9yQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICBmZWF0dXJlczogc2FuaXRpemVDbGllbnRGZWF0dXJlcyhyZXNvbHZlZENsaWVudEZlYXR1cmVNYXApLFxuICAgIGxleGljYWwsXG4gICAgcmVzb2x2ZWRGZWF0dXJlTWFwOiByZXNvbHZlZENsaWVudEZlYXR1cmVNYXAsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJzYW5pdGl6ZUNsaWVudEZlYXR1cmVzIiwiZmVhdHVyZXMiLCJzYW5pdGl6ZWQiLCJlbmFibGVkRmVhdHVyZXMiLCJmbG9hdGluZ1NlbGVjdFRvb2xiYXIiLCJzZWN0aW9ucyIsImhvb2tzIiwibG9hZCIsInNhdmUiLCJtYXJrZG93blRyYW5zZm9ybWVycyIsIm5vZGVzIiwicGx1Z2lucyIsInNsYXNoTWVudSIsImR5bmFtaWNPcHRpb25zIiwiZ3JvdXBzV2l0aE9wdGlvbnMiLCJzaXplIiwiZm9yRWFjaCIsImZlYXR1cmUiLCJsZW5ndGgiLCJjb25jYXQiLCJwbHVnaW4iLCJpIiwicHVzaCIsIkNvbXBvbmVudCIsImtleSIsInBvc2l0aW9uIiwic2VjdGlvbiIsImZvdW5kU2VjdGlvbiIsImZpbmQiLCJzYW5pdGl6ZWRTZWN0aW9uIiwiZW50cmllcyIsImZpbHRlciIsIm9wdGlvbnMiLCJvcHRpb25Hcm91cCIsImdyb3VwIiwic29ydCIsImEiLCJiIiwib3JkZXIiLCJzYW5pdGl6ZUNsaWVudEVkaXRvckNvbmZpZyIsImxleGljYWwiLCJyZXNvbHZlZENsaWVudEZlYXR1cmVNYXAiLCJyZXNvbHZlZEZlYXR1cmVNYXAiXSwibWFwcGluZ3MiOiJBQUFBO0FBT0EsT0FBTyxNQUFNQSx5QkFBeUIsQ0FDcENDO0lBRUEsTUFBTUMsWUFBcUM7UUFDekNDLGlCQUFpQixFQUFFO1FBQ25CQyx1QkFBdUI7WUFDckJDLFVBQVUsRUFBRTtRQUNkO1FBQ0FDLE9BQU87WUFDTEMsTUFBTSxFQUFFO1lBQ1JDLE1BQU0sRUFBRTtRQUNWO1FBQ0FDLHNCQUFzQixFQUFFO1FBQ3hCQyxPQUFPLEVBQUU7UUFDVEMsU0FBUyxFQUFFO1FBQ1hDLFdBQVc7WUFDVEMsZ0JBQWdCLEVBQUU7WUFDbEJDLG1CQUFtQixFQUFFO1FBQ3ZCO0lBQ0Y7SUFFQSxJQUFJLENBQUNiLFVBQVVjLE1BQU07UUFDbkIsT0FBT2I7SUFDVDtJQUVBRCxTQUFTZSxPQUFPLENBQUMsQ0FBQ0M7UUFDaEIsSUFBSUEsUUFBUVgsS0FBSyxFQUFFO1lBQ2pCLElBQUlXLFFBQVFYLEtBQUssRUFBRUMsTUFBTVcsUUFBUTtnQkFDL0JoQixVQUFVSSxLQUFLLENBQUNDLElBQUksR0FBR0wsVUFBVUksS0FBSyxDQUFDQyxJQUFJLENBQUNZLE1BQU0sQ0FBQ0YsUUFBUVgsS0FBSyxDQUFDQyxJQUFJO1lBQ3ZFO1lBQ0EsSUFBSVUsUUFBUVgsS0FBSyxFQUFFRSxNQUFNVSxRQUFRO2dCQUMvQmhCLFVBQVVJLEtBQUssQ0FBQ0UsSUFBSSxHQUFHTixVQUFVSSxLQUFLLENBQUNFLElBQUksQ0FBQ1csTUFBTSxDQUFDRixRQUFRWCxLQUFLLENBQUNFLElBQUk7WUFDdkU7UUFDRjtRQUVBLElBQUlTLFFBQVFQLEtBQUssRUFBRVEsUUFBUTtZQUN6QmhCLFVB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
|
|
126
|
+
//# sourceMappingURL=sanitize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/field/lexical/config/client/sanitize.ts"],"sourcesContent":["'use client'\n\nimport type { EditorConfig as LexicalEditorConfig } from 'lexical/LexicalEditor.js'\n\nimport type { ResolvedClientFeatureMap, SanitizedClientFeatures } from '../../../features/types.js'\nimport type { SanitizedClientEditorConfig } from '../types.js'\n\nexport const sanitizeClientFeatures = (\n features: ResolvedClientFeatureMap,\n): SanitizedClientFeatures => {\n const sanitized: SanitizedClientFeatures = {\n enabledFeatures: [],\n floatingSelectToolbar: {\n sections: [],\n },\n hooks: {\n load: [],\n save: [],\n },\n markdownTransformers: [],\n nodes: [],\n plugins: [],\n slashMenu: {\n dynamicOptions: [],\n groupsWithOptions: [],\n },\n }\n\n if (!features?.size) {\n return sanitized\n }\n\n features.forEach((feature) => {\n if (feature.hooks) {\n if (feature.hooks?.load?.length) {\n sanitized.hooks.load = sanitized.hooks.load.concat(feature.hooks.load)\n }\n if (feature.hooks?.save?.length) {\n sanitized.hooks.save = sanitized.hooks.save.concat(feature.hooks.save)\n }\n }\n\n if (feature.nodes?.length) {\n sanitized.nodes = sanitized.nodes.concat(feature.nodes)\n }\n if (feature.plugins?.length) {\n feature.plugins.forEach((plugin, i) => {\n sanitized.plugins.push({\n Component: plugin.Component,\n key: feature.key + i,\n position: plugin.position,\n })\n })\n }\n\n if (feature.floatingSelectToolbar?.sections?.length) {\n for (const section of feature.floatingSelectToolbar.sections) {\n // 1. find the section with the same key or create new one\n let foundSection = sanitized.floatingSelectToolbar.sections.find(\n (sanitizedSection) => sanitizedSection.key === section.key,\n )\n if (!foundSection) {\n foundSection = {\n ...section,\n entries: [],\n }\n } else {\n sanitized.floatingSelectToolbar.sections =\n sanitized.floatingSelectToolbar.sections.filter(\n (sanitizedSection) => sanitizedSection.key !== section.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (section?.entries?.length) {\n foundSection.entries = foundSection.entries.concat(section.entries)\n }\n sanitized.floatingSelectToolbar?.sections.push(foundSection)\n }\n }\n\n if (feature.slashMenu?.options) {\n if (feature.slashMenu.dynamicOptions?.length) {\n sanitized.slashMenu.dynamicOptions = sanitized.slashMenu.dynamicOptions.concat(\n feature.slashMenu.dynamicOptions,\n )\n }\n\n for (const optionGroup of feature.slashMenu.options) {\n // 1. find the group with the same name or create new one\n let group = sanitized.slashMenu.groupsWithOptions.find(\n (group) => group.key === optionGroup.key,\n )\n if (!group) {\n group = {\n ...optionGroup,\n options: [],\n }\n } else {\n sanitized.slashMenu.groupsWithOptions = sanitized.slashMenu.groupsWithOptions.filter(\n (group) => group.key !== optionGroup.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (optionGroup?.options?.length) {\n group.options = group.options.concat(optionGroup.options)\n }\n sanitized.slashMenu.groupsWithOptions.push(group)\n }\n }\n\n if (feature.markdownTransformers?.length) {\n sanitized.markdownTransformers = sanitized.markdownTransformers.concat(\n feature.markdownTransformers,\n )\n }\n sanitized.enabledFeatures.push(feature.key)\n })\n\n // Sort sanitized.floatingSelectToolbar.sections by order property\n sanitized.floatingSelectToolbar.sections.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n\n // Sort sanitized.floatingSelectToolbar.sections.[section].entries by order property\n for (const section of sanitized.floatingSelectToolbar.sections) {\n section.entries.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n }\n\n return sanitized\n}\n\nexport function sanitizeClientEditorConfig(\n lexical: LexicalEditorConfig,\n resolvedClientFeatureMap: ResolvedClientFeatureMap,\n): SanitizedClientEditorConfig {\n return {\n features: sanitizeClientFeatures(resolvedClientFeatureMap),\n lexical,\n resolvedFeatureMap: resolvedClientFeatureMap,\n }\n}\n"],"names":["sanitizeClientFeatures","features","sanitized","enabledFeatures","floatingSelectToolbar","sections","hooks","load","save","markdownTransformers","nodes","plugins","slashMenu","dynamicOptions","groupsWithOptions","size","forEach","feature","length","concat","plugin","i","push","Component","key","position","section","foundSection","find","sanitizedSection","entries","filter","options","optionGroup","group","sort","a","b","order","sanitizeClientEditorConfig","lexical","resolvedClientFeatureMap","resolvedFeatureMap"],"mappings":"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"}
|