@payloadcms/richtext-lexical 3.0.0-beta.77 → 3.0.0-beta.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cell/index.d.ts +2 -2
- package/dist/cell/index.d.ts.map +1 -1
- package/dist/cell/index.js +5 -5
- package/dist/cell/index.js.map +1 -1
- package/dist/exports/client/Field-QK4IB5HD.js +2 -0
- package/dist/exports/client/Field-QK4IB5HD.js.map +7 -0
- package/dist/exports/client/RelationshipComponent-GYUTPDNG.js +2 -0
- package/dist/exports/client/RelationshipComponent-GYUTPDNG.js.map +7 -0
- package/dist/exports/client/bundled.css +1 -1
- package/dist/exports/client/chunk-4EX7W4UX.js +2 -0
- package/dist/exports/client/chunk-4EX7W4UX.js.map +7 -0
- package/dist/exports/client/chunk-E4HH5PS6.js +2 -0
- package/dist/exports/client/chunk-E4HH5PS6.js.map +7 -0
- package/dist/exports/client/chunk-LTR7V74A.js +2 -0
- package/dist/exports/client/chunk-LTR7V74A.js.map +7 -0
- package/dist/exports/client/chunk-SQHN3N6E.js +2 -0
- package/dist/exports/client/chunk-SQHN3N6E.js.map +7 -0
- package/dist/exports/client/chunk-VMCQSR3T.js +3 -0
- package/dist/exports/client/chunk-VMCQSR3T.js.map +7 -0
- package/dist/exports/client/component-6C5JERGA.js +2 -0
- package/dist/exports/client/component-6C5JERGA.js.map +7 -0
- package/dist/exports/client/component-GUWIGB77.js +2 -0
- package/dist/exports/client/component-GUWIGB77.js.map +7 -0
- package/dist/exports/client/component-UQ2BKD5X.js +2 -0
- package/dist/exports/client/component-UQ2BKD5X.js.map +7 -0
- package/dist/exports/client/componentInline-C2XIK5VZ.js +2 -0
- package/dist/exports/client/componentInline-C2XIK5VZ.js.map +7 -0
- package/dist/exports/client/index.d.ts +21 -22
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +12 -12
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/server/migrate.d.ts +16 -0
- package/dist/exports/server/migrate.d.ts.map +1 -0
- package/dist/exports/server/migrate.js +17 -0
- package/dist/exports/server/migrate.js.map +1 -0
- package/dist/features/align/client/index.d.ts +5 -0
- package/dist/features/align/client/index.d.ts.map +1 -0
- package/dist/features/align/client/index.js +146 -0
- package/dist/features/align/client/index.js.map +1 -0
- package/dist/features/align/client/toolbarAlignGroup.d.ts +3 -0
- package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -0
- package/dist/features/align/client/toolbarAlignGroup.js +12 -0
- package/dist/features/align/client/toolbarAlignGroup.js.map +1 -0
- package/dist/features/align/server/i18n.d.ts.map +1 -0
- package/dist/features/align/server/i18n.js.map +1 -0
- package/dist/features/align/server/index.d.ts +2 -0
- package/dist/features/align/server/index.d.ts.map +1 -0
- package/dist/features/align/server/index.js +11 -0
- package/dist/features/align/server/index.js.map +1 -0
- package/dist/features/blockquote/client/index.d.ts +5 -0
- package/dist/features/blockquote/client/index.d.ts.map +1 -0
- package/dist/features/blockquote/client/index.js +77 -0
- package/dist/features/blockquote/client/index.js.map +1 -0
- package/dist/features/blockquote/server/i18n.d.ts.map +1 -0
- package/dist/features/blockquote/server/i18n.js.map +1 -0
- package/dist/features/blockquote/server/index.d.ts +7 -0
- package/dist/features/blockquote/server/index.d.ts.map +1 -0
- package/dist/features/blockquote/server/index.js +46 -0
- package/dist/features/blockquote/server/index.js.map +1 -0
- package/dist/features/blocks/client/component/BlockContent.d.ts +22 -0
- package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -0
- package/dist/features/blocks/client/component/BlockContent.js +198 -0
- package/dist/features/blocks/client/component/BlockContent.js.map +1 -0
- package/dist/features/blocks/client/component/FormSavePlugin.d.ts.map +1 -0
- package/dist/features/blocks/client/component/FormSavePlugin.js.map +1 -0
- package/dist/features/blocks/client/component/index.d.ts +11 -0
- package/dist/features/blocks/client/component/index.d.ts.map +1 -0
- package/dist/features/blocks/client/component/index.js +157 -0
- package/dist/features/blocks/client/component/index.js.map +1 -0
- package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts.map +1 -0
- package/dist/features/blocks/client/component/removeEmptyArrayValues.js.map +1 -0
- package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -0
- package/dist/features/blocks/client/componentInline/index.js +138 -0
- package/dist/features/blocks/client/componentInline/index.js.map +1 -0
- package/dist/features/blocks/client/index.d.ts +9 -0
- package/dist/features/blocks/client/index.d.ts.map +1 -0
- package/dist/features/blocks/client/index.js +152 -0
- package/dist/features/blocks/client/index.js.map +1 -0
- package/dist/features/blocks/client/nodes/BlocksNode.d.ts +14 -0
- package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -0
- package/dist/features/blocks/client/nodes/BlocksNode.js +52 -0
- package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -0
- package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts +25 -0
- package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -0
- package/dist/features/blocks/client/nodes/InlineBlocksNode.js +41 -0
- package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -0
- package/dist/features/blocks/client/plugin/commands.d.ts.map +1 -0
- package/dist/features/blocks/client/plugin/commands.js.map +1 -0
- package/dist/features/blocks/client/plugin/index.d.ts +6 -0
- package/dist/features/blocks/client/plugin/index.d.ts.map +1 -0
- package/dist/features/blocks/client/plugin/index.js +129 -0
- package/dist/features/blocks/client/plugin/index.js.map +1 -0
- package/dist/features/blocks/server/graphQLPopulationPromise.d.ts +6 -0
- package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -0
- package/dist/features/blocks/server/graphQLPopulationPromise.js +31 -0
- package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -0
- package/dist/features/blocks/server/i18n.d.ts.map +1 -0
- package/dist/features/blocks/server/i18n.js.map +1 -0
- package/dist/features/blocks/server/index.d.ts +8 -0
- package/dist/features/blocks/server/index.d.ts.map +1 -0
- package/dist/features/blocks/server/index.js +162 -0
- package/dist/features/blocks/server/index.js.map +1 -0
- package/dist/features/blocks/server/nodes/BlocksNode.d.ts +38 -0
- package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -0
- package/dist/features/blocks/server/nodes/BlocksNode.js +84 -0
- package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -0
- package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +40 -0
- package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -0
- package/dist/features/blocks/server/nodes/InlineBlocksNode.js +86 -0
- package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -0
- package/dist/features/blocks/server/validate.d.ts +6 -0
- package/dist/features/blocks/server/validate.d.ts.map +1 -0
- package/dist/features/blocks/server/validate.js.map +1 -0
- package/dist/features/converters/html/field/index.js.map +1 -1
- package/dist/features/converters/html/index.d.ts +8 -0
- package/dist/features/converters/html/index.d.ts.map +1 -0
- package/dist/features/converters/html/index.js +8 -0
- package/dist/features/converters/html/index.js.map +1 -0
- package/dist/features/createClientComponent.d.ts +3 -3
- package/dist/features/createClientComponent.d.ts.map +1 -1
- package/dist/features/createClientComponent.js.map +1 -1
- package/dist/features/createFeaturePropComponent.js +1 -1
- package/dist/features/createFeaturePropComponent.js.map +1 -1
- package/dist/features/debug/testRecorder/client/index.d.ts +5 -0
- package/dist/features/debug/testRecorder/client/index.d.ts.map +1 -0
- package/dist/features/debug/testRecorder/client/index.js +13 -0
- package/dist/features/debug/testRecorder/client/index.js.map +1 -0
- package/dist/features/debug/testRecorder/client/plugin/index.d.ts +5 -0
- package/dist/features/debug/testRecorder/client/plugin/index.d.ts.map +1 -0
- package/dist/features/debug/testRecorder/client/plugin/index.js +471 -0
- package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -0
- package/dist/features/debug/testRecorder/server/index.d.ts +2 -0
- package/dist/features/debug/testRecorder/server/index.d.ts.map +1 -0
- package/dist/features/debug/testRecorder/server/index.js +9 -0
- package/dist/features/debug/testRecorder/server/index.js.map +1 -0
- package/dist/features/debug/treeView/client/index.d.ts +5 -0
- package/dist/features/debug/treeView/client/index.d.ts.map +1 -0
- package/dist/features/debug/treeView/client/index.js +13 -0
- package/dist/features/debug/treeView/client/index.js.map +1 -0
- package/dist/features/debug/treeView/client/plugin/index.d.ts +4 -0
- package/dist/features/debug/treeView/client/plugin/index.d.ts.map +1 -0
- package/dist/features/debug/treeView/client/plugin/index.js.map +1 -0
- package/dist/features/debug/treeView/server/index.d.ts +2 -0
- package/dist/features/debug/treeView/server/index.d.ts.map +1 -0
- package/dist/features/debug/treeView/server/index.js +9 -0
- package/dist/features/debug/treeView/server/index.js.map +1 -0
- package/dist/features/experimental_table/client/index.d.ts +2 -0
- package/dist/features/experimental_table/client/index.d.ts.map +1 -0
- package/dist/features/experimental_table/client/index.js +71 -0
- package/dist/features/experimental_table/client/index.js.map +1 -0
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts +4 -0
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -0
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +605 -0
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -0
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts +3 -0
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -0
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +327 -0
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -0
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts +12 -0
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -0
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +181 -0
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -0
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts +24 -0
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +1 -0
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +103 -0
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -0
- package/dist/features/experimental_table/client/utils/debounce.d.ts.map +1 -0
- package/dist/features/experimental_table/client/utils/debounce.js.map +1 -0
- package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +1 -0
- package/dist/features/experimental_table/client/utils/useDebounce.js.map +1 -0
- package/dist/features/experimental_table/plugins/TableHoverActionsPlugin/index.js +1 -1
- package/dist/features/experimental_table/plugins/TableHoverActionsPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/server/index.d.ts +13 -0
- package/dist/features/experimental_table/server/index.d.ts.map +1 -0
- package/dist/features/experimental_table/server/index.js +123 -0
- package/dist/features/experimental_table/server/index.js.map +1 -0
- package/dist/features/format/bold/feature.server.d.ts.map +1 -1
- package/dist/features/format/bold/feature.server.js +1 -3
- package/dist/features/format/bold/feature.server.js.map +1 -1
- package/dist/features/format/inlineCode/feature.server.d.ts.map +1 -1
- package/dist/features/format/inlineCode/feature.server.js +1 -3
- package/dist/features/format/inlineCode/feature.server.js.map +1 -1
- package/dist/features/format/italic/feature.server.d.ts.map +1 -1
- package/dist/features/format/italic/feature.server.js +1 -3
- package/dist/features/format/italic/feature.server.js.map +1 -1
- package/dist/features/format/strikethrough/feature.server.d.ts.map +1 -1
- package/dist/features/format/strikethrough/feature.server.js +1 -3
- package/dist/features/format/strikethrough/feature.server.js.map +1 -1
- package/dist/features/format/subscript/feature.server.d.ts.map +1 -1
- package/dist/features/format/subscript/feature.server.js +1 -3
- package/dist/features/format/subscript/feature.server.js.map +1 -1
- package/dist/features/format/superscript/feature.server.d.ts.map +1 -1
- package/dist/features/format/superscript/feature.server.js +1 -3
- package/dist/features/format/superscript/feature.server.js.map +1 -1
- package/dist/features/format/underline/feature.server.d.ts.map +1 -1
- package/dist/features/format/underline/feature.server.js +1 -3
- package/dist/features/format/underline/feature.server.js.map +1 -1
- package/dist/features/heading/client/index.d.ts +6 -0
- package/dist/features/heading/client/index.d.ts.map +1 -0
- package/dist/features/heading/client/index.js +112 -0
- package/dist/features/heading/client/index.js.map +1 -0
- package/dist/features/heading/server/i18n.d.ts.map +1 -0
- package/dist/features/heading/server/i18n.js.map +1 -0
- package/dist/features/heading/server/index.d.ts +10 -0
- package/dist/features/heading/server/index.d.ts.map +1 -0
- package/dist/features/heading/server/index.js +60 -0
- package/dist/features/heading/server/index.js.map +1 -0
- package/dist/features/horizontalRule/client/component/index.d.ts.map +1 -0
- package/dist/features/horizontalRule/client/component/index.js.map +1 -0
- package/dist/features/horizontalRule/client/index.d.ts +5 -0
- package/dist/features/horizontalRule/client/index.d.ts.map +1 -0
- package/dist/features/horizontalRule/client/index.js +71 -0
- package/dist/features/horizontalRule/client/index.js.map +1 -0
- package/dist/features/horizontalRule/client/markdownTransformer.d.ts.map +1 -0
- package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -0
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +20 -0
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -0
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +43 -0
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -0
- package/dist/features/horizontalRule/client/plugin/index.d.ts +7 -0
- package/dist/features/horizontalRule/client/plugin/index.d.ts.map +1 -0
- package/dist/features/horizontalRule/client/plugin/index.js +31 -0
- package/dist/features/horizontalRule/client/plugin/index.js.map +1 -0
- package/dist/features/horizontalRule/server/i18n.d.ts.map +1 -0
- package/dist/features/horizontalRule/server/i18n.js.map +1 -0
- package/dist/features/horizontalRule/server/index.d.ts +2 -0
- package/dist/features/horizontalRule/server/index.d.ts.map +1 -0
- package/dist/features/horizontalRule/server/index.js +32 -0
- package/dist/features/horizontalRule/server/index.js.map +1 -0
- package/dist/features/horizontalRule/server/markdownTransformer.d.ts +3 -0
- package/dist/features/horizontalRule/server/markdownTransformer.d.ts.map +1 -0
- package/dist/features/horizontalRule/server/markdownTransformer.js +23 -0
- package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -0
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +53 -0
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -0
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +83 -0
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -0
- package/dist/features/indent/client/index.d.ts +5 -0
- package/dist/features/indent/client/index.d.ts.map +1 -0
- package/dist/features/indent/client/index.js +56 -0
- package/dist/features/indent/client/index.js.map +1 -0
- package/dist/features/indent/client/toolbarIndentGroup.d.ts +3 -0
- package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -0
- package/dist/features/indent/client/toolbarIndentGroup.js.map +1 -0
- package/dist/features/indent/server/i18n.d.ts.map +1 -0
- package/dist/features/indent/server/i18n.js.map +1 -0
- package/dist/features/indent/server/index.d.ts +2 -0
- package/dist/features/indent/server/index.d.ts.map +1 -0
- package/dist/features/indent/server/index.js +11 -0
- package/dist/features/indent/server/index.js.map +1 -0
- package/dist/features/link/client/index.d.ts +16 -0
- package/dist/features/link/client/index.d.ts.map +1 -0
- package/dist/features/link/client/index.js +101 -0
- package/dist/features/link/client/index.js.map +1 -0
- package/dist/features/link/client/plugins/autoLink/index.d.ts +20 -0
- package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -0
- package/dist/features/link/client/plugins/autoLink/index.js +335 -0
- package/dist/features/link/client/plugins/autoLink/index.js.map +1 -0
- package/dist/features/link/client/plugins/clickableLink/index.d.ts +4 -0
- package/dist/features/link/client/plugins/clickableLink/index.d.ts.map +1 -0
- package/dist/features/link/client/plugins/clickableLink/index.js.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.d.ts.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.js.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +299 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts +5 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts +15 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/types.js.map +1 -0
- package/dist/features/link/client/plugins/link/index.d.ts +4 -0
- package/dist/features/link/client/plugins/link/index.d.ts.map +1 -0
- package/dist/features/link/client/plugins/link/index.js +51 -0
- package/dist/features/link/client/plugins/link/index.js.map +1 -0
- package/dist/features/link/nodes/LinkNode.d.ts +1 -1
- package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
- package/dist/features/link/nodes/LinkNode.js.map +1 -1
- package/dist/features/link/server/baseFields.d.ts.map +1 -0
- package/dist/features/link/server/baseFields.js.map +1 -0
- package/dist/features/link/server/graphQLPopulationPromise.d.ts +5 -0
- package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -0
- package/dist/features/link/server/graphQLPopulationPromise.js +31 -0
- package/dist/features/link/server/graphQLPopulationPromise.js.map +1 -0
- package/dist/features/link/server/i18n.d.ts.map +1 -0
- package/dist/features/link/server/i18n.js.map +1 -0
- package/dist/features/link/server/index.d.ts +35 -0
- package/dist/features/link/server/index.d.ts.map +1 -0
- package/dist/features/link/server/index.js +132 -0
- package/dist/features/link/server/index.js.map +1 -0
- package/dist/features/link/server/transformExtraFields.d.ts +9 -0
- package/dist/features/link/server/transformExtraFields.d.ts.map +1 -0
- package/dist/features/link/server/transformExtraFields.js +20 -0
- package/dist/features/link/server/transformExtraFields.js.map +1 -0
- package/dist/features/link/server/validate.d.ts +6 -0
- package/dist/features/link/server/validate.d.ts.map +1 -0
- package/dist/features/link/server/validate.js.map +1 -0
- package/dist/features/lists/checklist/client/index.d.ts +5 -0
- package/dist/features/lists/checklist/client/index.d.ts.map +1 -0
- package/dist/features/lists/checklist/client/index.js +100 -0
- package/dist/features/lists/checklist/client/index.js.map +1 -0
- package/dist/features/lists/checklist/client/plugin/index.d.ts +3 -0
- package/dist/features/lists/checklist/client/plugin/index.d.ts.map +1 -0
- package/dist/features/lists/checklist/client/plugin/index.js.map +1 -0
- package/dist/features/lists/checklist/server/i18n.d.ts.map +1 -0
- package/dist/features/lists/checklist/server/i18n.js.map +1 -0
- package/dist/features/lists/checklist/server/index.d.ts +2 -0
- package/dist/features/lists/checklist/server/index.d.ts.map +1 -0
- package/dist/features/lists/checklist/server/index.js +34 -0
- package/dist/features/lists/checklist/server/index.js.map +1 -0
- package/dist/features/lists/orderedList/client/index.d.ts +5 -0
- package/dist/features/lists/orderedList/client/index.d.ts.map +1 -0
- package/dist/features/lists/orderedList/client/index.js +90 -0
- package/dist/features/lists/orderedList/client/index.js.map +1 -0
- package/dist/features/lists/orderedList/server/i18n.d.ts.map +1 -0
- package/dist/features/lists/orderedList/server/i18n.js.map +1 -0
- package/dist/features/lists/orderedList/server/index.d.ts +2 -0
- package/dist/features/lists/orderedList/server/index.d.ts.map +1 -0
- package/dist/features/lists/orderedList/server/index.js +34 -0
- package/dist/features/lists/orderedList/server/index.js.map +1 -0
- package/dist/features/lists/unorderedList/client/index.d.ts +5 -0
- package/dist/features/lists/unorderedList/client/index.d.ts.map +1 -0
- package/dist/features/lists/unorderedList/client/index.js +88 -0
- package/dist/features/lists/unorderedList/client/index.js.map +1 -0
- package/dist/features/lists/unorderedList/server/i18n.d.ts.map +1 -0
- package/dist/features/lists/unorderedList/server/i18n.js.map +1 -0
- package/dist/features/lists/unorderedList/server/index.d.ts +2 -0
- package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -0
- package/dist/features/lists/unorderedList/server/index.js +32 -0
- package/dist/features/lists/unorderedList/server/index.js.map +1 -0
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +4 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +4 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +4 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +4 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +4 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +4 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts +2 -2
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +7 -7
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts +5 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +15 -9
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/types.d.ts +1 -9
- package/dist/features/migrations/lexicalPluginToLexical/converter/types.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/types.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.js +1 -16
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.d.ts +4 -3
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.js +16 -11
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.d.ts +2 -2
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.js +10 -10
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/types.d.ts +0 -9
- package/dist/features/migrations/slateToLexical/converter/types.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/types.js.map +1 -1
- package/dist/features/migrations/slateToLexical/feature.client.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/feature.client.js +0 -15
- package/dist/features/migrations/slateToLexical/feature.client.js.map +1 -1
- package/dist/features/migrations/slateToLexical/feature.server.d.ts +5 -5
- package/dist/features/migrations/slateToLexical/feature.server.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/feature.server.js +15 -11
- package/dist/features/migrations/slateToLexical/feature.server.js.map +1 -1
- package/dist/features/paragraph/client/index.d.ts +5 -0
- package/dist/features/paragraph/client/index.d.ts.map +1 -0
- package/dist/features/paragraph/client/index.js +71 -0
- package/dist/features/paragraph/client/index.js.map +1 -0
- package/dist/features/paragraph/server/i18n.d.ts.map +1 -0
- package/dist/features/paragraph/server/i18n.js.map +1 -0
- package/dist/features/paragraph/server/index.d.ts +2 -0
- package/dist/features/paragraph/server/index.d.ts.map +1 -0
- package/dist/features/paragraph/server/index.js +12 -0
- package/dist/features/paragraph/server/index.js.map +1 -0
- package/dist/features/relationship/client/components/RelationshipComponent.d.ts +13 -0
- package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -0
- package/dist/features/relationship/client/components/RelationshipComponent.js +171 -0
- package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -0
- package/dist/features/relationship/client/drawer/commands.d.ts.map +1 -0
- package/dist/features/relationship/client/drawer/commands.js.map +1 -0
- package/dist/features/relationship/client/drawer/index.d.ts.map +1 -0
- package/dist/features/relationship/client/drawer/index.js.map +1 -0
- package/dist/features/relationship/client/index.d.ts +18 -0
- package/dist/features/relationship/client/index.d.ts.map +1 -0
- package/dist/features/relationship/client/index.js +72 -0
- package/dist/features/relationship/client/index.js.map +1 -0
- package/dist/features/relationship/client/nodes/RelationshipNode.d.ts +15 -0
- package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -0
- package/dist/features/relationship/client/nodes/RelationshipNode.js +74 -0
- package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -0
- package/dist/features/relationship/client/plugins/index.d.ts +7 -0
- package/dist/features/relationship/client/plugins/index.d.ts.map +1 -0
- package/dist/features/relationship/client/plugins/index.js +50 -0
- package/dist/features/relationship/client/plugins/index.js.map +1 -0
- package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.d.ts.map +1 -0
- package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js +33 -0
- package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js.map +1 -0
- package/dist/features/relationship/server/graphQLPopulationPromise.d.ts +5 -0
- package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -0
- package/dist/features/relationship/server/graphQLPopulationPromise.js +29 -0
- package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -0
- package/dist/features/relationship/server/i18n.d.ts.map +1 -0
- package/dist/features/relationship/server/i18n.js.map +1 -0
- package/dist/features/relationship/server/index.d.ts +27 -0
- package/dist/features/relationship/server/index.d.ts.map +1 -0
- package/dist/features/relationship/server/index.js +53 -0
- package/dist/features/relationship/server/index.js.map +1 -0
- package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +35 -0
- package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -0
- package/dist/features/relationship/server/nodes/RelationshipNode.js +101 -0
- package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -0
- package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts +5 -0
- package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -0
- package/dist/features/toolbars/fixed/client/Toolbar/index.js +209 -0
- package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -0
- package/dist/features/toolbars/fixed/client/index.d.ts +6 -0
- package/dist/features/toolbars/fixed/client/index.d.ts.map +1 -0
- package/dist/features/toolbars/fixed/client/index.js +13 -0
- package/dist/features/toolbars/fixed/client/index.js.map +1 -0
- package/dist/features/toolbars/fixed/server/index.d.ts +18 -0
- package/dist/features/toolbars/fixed/server/index.d.ts.map +1 -0
- package/dist/features/toolbars/fixed/server/index.js +17 -0
- package/dist/features/toolbars/fixed/server/index.js.map +1 -0
- package/dist/features/toolbars/inline/client/Toolbar/index.d.ts +4 -0
- package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -0
- package/dist/features/toolbars/inline/client/Toolbar/index.js +319 -0
- package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -0
- package/dist/features/toolbars/inline/client/index.d.ts +5 -0
- package/dist/features/toolbars/inline/client/index.d.ts.map +1 -0
- package/dist/features/toolbars/inline/client/index.js +13 -0
- package/dist/features/toolbars/inline/client/index.js.map +1 -0
- package/dist/features/toolbars/inline/server/index.d.ts +2 -0
- package/dist/features/toolbars/inline/server/index.d.ts.map +1 -0
- package/dist/features/toolbars/inline/server/index.js +9 -0
- package/dist/features/toolbars/inline/server/index.js.map +1 -0
- package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js +3 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
- package/dist/features/toolbars/types.d.ts +2 -1
- package/dist/features/toolbars/types.d.ts.map +1 -1
- package/dist/features/toolbars/types.js.map +1 -1
- package/dist/features/typesServer.d.ts +17 -13
- package/dist/features/typesServer.d.ts.map +1 -1
- package/dist/features/typesServer.js.map +1 -1
- package/dist/features/upload/client/component/index.d.ts +9 -0
- package/dist/features/upload/client/component/index.d.ts.map +1 -0
- package/dist/features/upload/client/component/index.js +248 -0
- package/dist/features/upload/client/component/index.js.map +1 -0
- package/dist/features/upload/client/drawer/commands.d.ts.map +1 -0
- package/dist/features/upload/client/drawer/commands.js.map +1 -0
- package/dist/features/upload/client/drawer/index.d.ts.map +1 -0
- package/dist/features/upload/client/drawer/index.js +77 -0
- package/dist/features/upload/client/drawer/index.js.map +1 -0
- package/dist/features/upload/client/feature.client.d.ts.map +1 -0
- package/dist/features/upload/client/feature.client.js +74 -0
- package/dist/features/upload/client/feature.client.js.map +1 -0
- package/dist/features/upload/client/nodes/UploadNode.d.ts +22 -0
- package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -0
- package/dist/features/upload/client/nodes/UploadNode.js +91 -0
- package/dist/features/upload/client/nodes/UploadNode.js.map +1 -0
- package/dist/features/upload/client/plugin/index.d.ts +8 -0
- package/dist/features/upload/client/plugin/index.d.ts.map +1 -0
- package/dist/features/upload/client/plugin/index.js +53 -0
- package/dist/features/upload/client/plugin/index.js.map +1 -0
- package/dist/features/upload/server/feature.server.d.ts +18 -0
- package/dist/features/upload/server/feature.server.d.ts.map +1 -0
- package/dist/features/upload/server/feature.server.js +189 -0
- package/dist/features/upload/server/feature.server.js.map +1 -0
- package/dist/features/upload/server/graphQLPopulationPromise.d.ts +5 -0
- package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -0
- package/dist/features/upload/server/graphQLPopulationPromise.js +52 -0
- package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -0
- package/dist/features/upload/server/i18n.d.ts.map +1 -0
- package/dist/features/upload/server/i18n.js.map +1 -0
- package/dist/features/upload/server/nodes/UploadNode.d.ts +40 -0
- package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -0
- package/dist/features/upload/server/nodes/UploadNode.js +128 -0
- package/dist/features/upload/server/nodes/UploadNode.js.map +1 -0
- package/dist/features/upload/server/validate.d.ts +5 -0
- package/dist/features/upload/server/validate.d.ts.map +1 -0
- package/dist/features/upload/server/validate.js.map +1 -0
- package/dist/field/Field.d.ts +7 -7
- package/dist/field/Field.d.ts.map +1 -1
- package/dist/field/Field.js +8 -6
- package/dist/field/Field.js.map +1 -1
- package/dist/field/index.d.ts +2 -9
- package/dist/field/index.d.ts.map +1 -1
- package/dist/field/index.js +8 -8
- package/dist/field/index.js.map +1 -1
- package/dist/index.d.ts +23 -38
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +83 -68
- package/dist/index.js.map +1 -1
- package/dist/lexical/LexicalProvider.d.ts +2 -6
- package/dist/lexical/LexicalProvider.d.ts.map +1 -1
- package/dist/lexical/LexicalProvider.js +2 -2
- package/dist/lexical/LexicalProvider.js.map +1 -1
- package/dist/lexical/config/client/EditorConfigProvider.d.ts +4 -12
- package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
- package/dist/lexical/config/client/EditorConfigProvider.js +3 -3
- package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
- package/dist/lexical/config/server/default.js +13 -13
- package/dist/lexical/config/server/default.js.map +1 -1
- package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
- package/dist/lexical/config/server/sanitize.js +24 -6
- package/dist/lexical/config/server/sanitize.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +6 -2
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
- package/dist/lexical/plugins/SlashMenu/index.js +14 -4
- package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
- package/dist/lexical/theme/EditorTheme.d.ts +0 -1
- package/dist/lexical/theme/EditorTheme.d.ts.map +1 -1
- package/dist/lexical/theme/EditorTheme.js.map +1 -1
- package/dist/nodeTypes.d.ts +8 -8
- package/dist/nodeTypes.d.ts.map +1 -1
- package/dist/nodeTypes.js.map +1 -1
- package/dist/types.d.ts +6 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utilities/fieldsDrawer/Drawer.d.ts +10 -8
- package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
- package/dist/utilities/fieldsDrawer/Drawer.js +3 -1
- package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
- package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/utilities/fieldsDrawer/DrawerContent.js +6 -6
- package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
- package/dist/utilities/generateComponentMap.d.ts +2 -2
- package/dist/utilities/generateComponentMap.d.ts.map +1 -1
- package/dist/utilities/generateComponentMap.js +38 -28
- package/dist/utilities/generateComponentMap.js.map +1 -1
- package/dist/utilities/generateImportMap.d.ts +6 -0
- package/dist/utilities/generateImportMap.d.ts.map +1 -0
- package/dist/utilities/generateImportMap.js +50 -0
- package/dist/utilities/generateImportMap.js.map +1 -0
- package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
- package/dist/utilities/generateSchemaMap.js +2 -1
- package/dist/utilities/generateSchemaMap.js.map +1 -1
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts.map +1 -1
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +1 -5
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
- package/dist/utilities/useLexicalFeature.js +1 -1
- package/dist/utilities/useLexicalFeature.js.map +1 -1
- package/package.json +21 -11
- package/dist/exports/client/Field-5GGTGCKC.js +0 -2
- package/dist/exports/client/Field-5GGTGCKC.js.map +0 -7
- package/dist/exports/client/RelationshipComponent-ZR2OCBGL.js +0 -2
- package/dist/exports/client/RelationshipComponent-ZR2OCBGL.js.map +0 -7
- package/dist/exports/client/chunk-6QXGZYUK.js +0 -2
- package/dist/exports/client/chunk-6QXGZYUK.js.map +0 -7
- package/dist/exports/client/chunk-IPCJ5EVK.js +0 -2
- package/dist/exports/client/chunk-IPCJ5EVK.js.map +0 -7
- package/dist/exports/client/chunk-IWZVO3AI.js +0 -2
- package/dist/exports/client/chunk-IWZVO3AI.js.map +0 -7
- package/dist/exports/client/chunk-Q5DYR7MH.js +0 -3
- package/dist/exports/client/chunk-Q5DYR7MH.js.map +0 -7
- package/dist/exports/client/chunk-VUVXZJJR.js +0 -2
- package/dist/exports/client/chunk-VUVXZJJR.js.map +0 -7
- package/dist/exports/client/component-D4GWDXK5.js +0 -2
- package/dist/exports/client/component-D4GWDXK5.js.map +0 -7
- package/dist/exports/client/component-KA7FDRMA.js +0 -2
- package/dist/exports/client/component-KA7FDRMA.js.map +0 -7
- package/dist/exports/client/component-VM36FRT2.js +0 -2
- package/dist/exports/client/component-VM36FRT2.js.map +0 -7
- package/dist/exports/client/componentInline-6EKPZSCV.js +0 -2
- package/dist/exports/client/componentInline-6EKPZSCV.js.map +0 -7
- package/dist/features/align/feature.client.d.ts +0 -5
- package/dist/features/align/feature.client.d.ts.map +0 -1
- package/dist/features/align/feature.client.js +0 -146
- package/dist/features/align/feature.client.js.map +0 -1
- package/dist/features/align/feature.server.d.ts +0 -2
- package/dist/features/align/feature.server.d.ts.map +0 -1
- package/dist/features/align/feature.server.js +0 -13
- package/dist/features/align/feature.server.js.map +0 -1
- package/dist/features/align/i18n.d.ts.map +0 -1
- package/dist/features/align/i18n.js.map +0 -1
- package/dist/features/align/toolbarAlignGroup.d.ts +0 -3
- package/dist/features/align/toolbarAlignGroup.d.ts.map +0 -1
- package/dist/features/align/toolbarAlignGroup.js +0 -12
- package/dist/features/align/toolbarAlignGroup.js.map +0 -1
- package/dist/features/blockquote/feature.client.d.ts +0 -5
- package/dist/features/blockquote/feature.client.d.ts.map +0 -1
- package/dist/features/blockquote/feature.client.js +0 -77
- package/dist/features/blockquote/feature.client.js.map +0 -1
- package/dist/features/blockquote/feature.server.d.ts +0 -7
- package/dist/features/blockquote/feature.server.d.ts.map +0 -1
- package/dist/features/blockquote/feature.server.js +0 -48
- package/dist/features/blockquote/feature.server.js.map +0 -1
- package/dist/features/blockquote/i18n.d.ts.map +0 -1
- package/dist/features/blockquote/i18n.js.map +0 -1
- package/dist/features/blocks/component/BlockContent.d.ts +0 -27
- package/dist/features/blocks/component/BlockContent.d.ts.map +0 -1
- package/dist/features/blocks/component/BlockContent.js +0 -196
- package/dist/features/blocks/component/BlockContent.js.map +0 -1
- package/dist/features/blocks/component/FormSavePlugin.d.ts.map +0 -1
- package/dist/features/blocks/component/FormSavePlugin.js.map +0 -1
- package/dist/features/blocks/component/index.d.ts +0 -11
- package/dist/features/blocks/component/index.d.ts.map +0 -1
- package/dist/features/blocks/component/index.js +0 -162
- package/dist/features/blocks/component/index.js.map +0 -1
- package/dist/features/blocks/component/removeEmptyArrayValues.d.ts.map +0 -1
- package/dist/features/blocks/component/removeEmptyArrayValues.js.map +0 -1
- package/dist/features/blocks/componentInline/index.d.ts.map +0 -1
- package/dist/features/blocks/componentInline/index.js +0 -133
- package/dist/features/blocks/componentInline/index.js.map +0 -1
- package/dist/features/blocks/feature.client.d.ts +0 -13
- package/dist/features/blocks/feature.client.d.ts.map +0 -1
- package/dist/features/blocks/feature.client.js +0 -148
- package/dist/features/blocks/feature.client.js.map +0 -1
- package/dist/features/blocks/feature.server.d.ts +0 -8
- package/dist/features/blocks/feature.server.d.ts.map +0 -1
- package/dist/features/blocks/feature.server.js +0 -160
- package/dist/features/blocks/feature.server.js.map +0 -1
- package/dist/features/blocks/graphQLPopulationPromise.d.ts +0 -6
- package/dist/features/blocks/graphQLPopulationPromise.d.ts.map +0 -1
- package/dist/features/blocks/graphQLPopulationPromise.js +0 -31
- package/dist/features/blocks/graphQLPopulationPromise.js.map +0 -1
- package/dist/features/blocks/i18n.d.ts.map +0 -1
- package/dist/features/blocks/i18n.js.map +0 -1
- package/dist/features/blocks/nodes/BlocksNode.d.ts +0 -38
- package/dist/features/blocks/nodes/BlocksNode.d.ts.map +0 -1
- package/dist/features/blocks/nodes/BlocksNode.js +0 -92
- package/dist/features/blocks/nodes/BlocksNode.js.map +0 -1
- package/dist/features/blocks/nodes/InlineBlocksNode.d.ts +0 -39
- package/dist/features/blocks/nodes/InlineBlocksNode.d.ts.map +0 -1
- package/dist/features/blocks/nodes/InlineBlocksNode.js +0 -94
- package/dist/features/blocks/nodes/InlineBlocksNode.js.map +0 -1
- package/dist/features/blocks/plugin/commands.d.ts.map +0 -1
- package/dist/features/blocks/plugin/commands.js.map +0 -1
- package/dist/features/blocks/plugin/index.d.ts +0 -6
- package/dist/features/blocks/plugin/index.d.ts.map +0 -1
- package/dist/features/blocks/plugin/index.js +0 -111
- package/dist/features/blocks/plugin/index.js.map +0 -1
- package/dist/features/blocks/validate.d.ts +0 -6
- package/dist/features/blocks/validate.d.ts.map +0 -1
- package/dist/features/blocks/validate.js.map +0 -1
- package/dist/features/converters/html/feature.server.d.ts +0 -8
- package/dist/features/converters/html/feature.server.d.ts.map +0 -1
- package/dist/features/converters/html/feature.server.js +0 -8
- package/dist/features/converters/html/feature.server.js.map +0 -1
- package/dist/features/debug/testRecorder/feature.client.d.ts +0 -5
- package/dist/features/debug/testRecorder/feature.client.d.ts.map +0 -1
- package/dist/features/debug/testRecorder/feature.client.js +0 -13
- package/dist/features/debug/testRecorder/feature.client.js.map +0 -1
- package/dist/features/debug/testRecorder/feature.server.d.ts +0 -2
- package/dist/features/debug/testRecorder/feature.server.d.ts.map +0 -1
- package/dist/features/debug/testRecorder/feature.server.js +0 -11
- package/dist/features/debug/testRecorder/feature.server.js.map +0 -1
- package/dist/features/debug/testRecorder/plugin/index.d.ts +0 -5
- package/dist/features/debug/testRecorder/plugin/index.d.ts.map +0 -1
- package/dist/features/debug/testRecorder/plugin/index.js +0 -471
- package/dist/features/debug/testRecorder/plugin/index.js.map +0 -1
- package/dist/features/debug/treeView/feature.client.d.ts +0 -5
- package/dist/features/debug/treeView/feature.client.d.ts.map +0 -1
- package/dist/features/debug/treeView/feature.client.js +0 -13
- package/dist/features/debug/treeView/feature.client.js.map +0 -1
- package/dist/features/debug/treeView/feature.server.d.ts +0 -2
- package/dist/features/debug/treeView/feature.server.d.ts.map +0 -1
- package/dist/features/debug/treeView/feature.server.js +0 -11
- package/dist/features/debug/treeView/feature.server.js.map +0 -1
- package/dist/features/debug/treeView/plugin/index.d.ts +0 -4
- package/dist/features/debug/treeView/plugin/index.d.ts.map +0 -1
- package/dist/features/debug/treeView/plugin/index.js.map +0 -1
- package/dist/features/experimental_table/feature.client.d.ts +0 -2
- package/dist/features/experimental_table/feature.client.d.ts.map +0 -1
- package/dist/features/experimental_table/feature.client.js +0 -71
- package/dist/features/experimental_table/feature.client.js.map +0 -1
- package/dist/features/experimental_table/feature.server.d.ts +0 -13
- package/dist/features/experimental_table/feature.server.d.ts.map +0 -1
- package/dist/features/experimental_table/feature.server.js +0 -125
- package/dist/features/experimental_table/feature.server.js.map +0 -1
- package/dist/features/experimental_table/plugins/TableActionMenuPlugin/index.d.ts +0 -4
- package/dist/features/experimental_table/plugins/TableActionMenuPlugin/index.d.ts.map +0 -1
- package/dist/features/experimental_table/plugins/TableActionMenuPlugin/index.js +0 -604
- package/dist/features/experimental_table/plugins/TableActionMenuPlugin/index.js.map +0 -1
- package/dist/features/experimental_table/plugins/TableCellResizerPlugin/index.d.ts +0 -3
- package/dist/features/experimental_table/plugins/TableCellResizerPlugin/index.d.ts.map +0 -1
- package/dist/features/experimental_table/plugins/TableCellResizerPlugin/index.js +0 -327
- package/dist/features/experimental_table/plugins/TableCellResizerPlugin/index.js.map +0 -1
- package/dist/features/experimental_table/plugins/TablePlugin/index.d.ts +0 -24
- package/dist/features/experimental_table/plugins/TablePlugin/index.d.ts.map +0 -1
- package/dist/features/experimental_table/plugins/TablePlugin/index.js +0 -98
- package/dist/features/experimental_table/plugins/TablePlugin/index.js.map +0 -1
- package/dist/features/experimental_table/utils/debounce.d.ts.map +0 -1
- package/dist/features/experimental_table/utils/debounce.js.map +0 -1
- package/dist/features/experimental_table/utils/useDebounce.d.ts.map +0 -1
- package/dist/features/experimental_table/utils/useDebounce.js.map +0 -1
- package/dist/features/heading/feature.client.d.ts +0 -6
- package/dist/features/heading/feature.client.d.ts.map +0 -1
- package/dist/features/heading/feature.client.js +0 -112
- package/dist/features/heading/feature.client.js.map +0 -1
- package/dist/features/heading/feature.server.d.ts +0 -10
- package/dist/features/heading/feature.server.d.ts.map +0 -1
- package/dist/features/heading/feature.server.js +0 -62
- package/dist/features/heading/feature.server.js.map +0 -1
- package/dist/features/heading/i18n.d.ts.map +0 -1
- package/dist/features/heading/i18n.js.map +0 -1
- package/dist/features/horizontalRule/component/index.d.ts.map +0 -1
- package/dist/features/horizontalRule/component/index.js.map +0 -1
- package/dist/features/horizontalRule/feature.client.d.ts +0 -5
- package/dist/features/horizontalRule/feature.client.d.ts.map +0 -1
- package/dist/features/horizontalRule/feature.client.js +0 -70
- package/dist/features/horizontalRule/feature.client.js.map +0 -1
- package/dist/features/horizontalRule/feature.server.d.ts +0 -2
- package/dist/features/horizontalRule/feature.server.d.ts.map +0 -1
- package/dist/features/horizontalRule/feature.server.js +0 -34
- package/dist/features/horizontalRule/feature.server.js.map +0 -1
- package/dist/features/horizontalRule/i18n.d.ts.map +0 -1
- package/dist/features/horizontalRule/i18n.js.map +0 -1
- package/dist/features/horizontalRule/markdownTransformer.d.ts.map +0 -1
- package/dist/features/horizontalRule/markdownTransformer.js.map +0 -1
- package/dist/features/horizontalRule/nodes/HorizontalRuleNode.d.ts +0 -56
- package/dist/features/horizontalRule/nodes/HorizontalRuleNode.d.ts.map +0 -1
- package/dist/features/horizontalRule/nodes/HorizontalRuleNode.js +0 -92
- package/dist/features/horizontalRule/nodes/HorizontalRuleNode.js.map +0 -1
- package/dist/features/horizontalRule/plugin/index.d.ts +0 -7
- package/dist/features/horizontalRule/plugin/index.d.ts.map +0 -1
- package/dist/features/horizontalRule/plugin/index.js +0 -30
- package/dist/features/horizontalRule/plugin/index.js.map +0 -1
- package/dist/features/indent/feature.client.d.ts +0 -5
- package/dist/features/indent/feature.client.d.ts.map +0 -1
- package/dist/features/indent/feature.client.js +0 -56
- package/dist/features/indent/feature.client.js.map +0 -1
- package/dist/features/indent/feature.server.d.ts +0 -2
- package/dist/features/indent/feature.server.d.ts.map +0 -1
- package/dist/features/indent/feature.server.js +0 -13
- package/dist/features/indent/feature.server.js.map +0 -1
- package/dist/features/indent/i18n.d.ts.map +0 -1
- package/dist/features/indent/i18n.js.map +0 -1
- package/dist/features/indent/toolbarIndentGroup.d.ts +0 -3
- package/dist/features/indent/toolbarIndentGroup.d.ts.map +0 -1
- package/dist/features/indent/toolbarIndentGroup.js.map +0 -1
- package/dist/features/link/drawer/baseFields.d.ts.map +0 -1
- package/dist/features/link/drawer/baseFields.js.map +0 -1
- package/dist/features/link/feature.client.d.ts +0 -16
- package/dist/features/link/feature.client.d.ts.map +0 -1
- package/dist/features/link/feature.client.js +0 -101
- package/dist/features/link/feature.client.js.map +0 -1
- package/dist/features/link/feature.server.d.ts +0 -35
- package/dist/features/link/feature.server.d.ts.map +0 -1
- package/dist/features/link/feature.server.js +0 -134
- package/dist/features/link/feature.server.js.map +0 -1
- package/dist/features/link/graphQLPopulationPromise.d.ts +0 -5
- package/dist/features/link/graphQLPopulationPromise.d.ts.map +0 -1
- package/dist/features/link/graphQLPopulationPromise.js +0 -31
- package/dist/features/link/graphQLPopulationPromise.js.map +0 -1
- package/dist/features/link/i18n.d.ts.map +0 -1
- package/dist/features/link/i18n.js.map +0 -1
- package/dist/features/link/plugins/autoLink/index.d.ts +0 -20
- package/dist/features/link/plugins/autoLink/index.d.ts.map +0 -1
- package/dist/features/link/plugins/autoLink/index.js +0 -336
- package/dist/features/link/plugins/autoLink/index.js.map +0 -1
- package/dist/features/link/plugins/clickableLink/index.d.ts +0 -4
- package/dist/features/link/plugins/clickableLink/index.d.ts.map +0 -1
- package/dist/features/link/plugins/clickableLink/index.js.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/LinkEditor/commands.d.ts.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/LinkEditor/index.js +0 -299
- package/dist/features/link/plugins/floatingLinkEditor/LinkEditor/index.js.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/index.d.ts +0 -5
- package/dist/features/link/plugins/floatingLinkEditor/index.d.ts.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/index.js.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/types.d.ts +0 -15
- package/dist/features/link/plugins/floatingLinkEditor/types.d.ts.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/types.js.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/utilities.d.ts +0 -9
- package/dist/features/link/plugins/floatingLinkEditor/utilities.d.ts.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/utilities.js +0 -20
- package/dist/features/link/plugins/floatingLinkEditor/utilities.js.map +0 -1
- package/dist/features/link/plugins/link/index.d.ts +0 -4
- package/dist/features/link/plugins/link/index.d.ts.map +0 -1
- package/dist/features/link/plugins/link/index.js +0 -53
- package/dist/features/link/plugins/link/index.js.map +0 -1
- package/dist/features/link/validate.d.ts +0 -6
- package/dist/features/link/validate.d.ts.map +0 -1
- package/dist/features/link/validate.js.map +0 -1
- package/dist/features/lists/checklist/feature.client.d.ts +0 -5
- package/dist/features/lists/checklist/feature.client.d.ts.map +0 -1
- package/dist/features/lists/checklist/feature.client.js +0 -100
- package/dist/features/lists/checklist/feature.client.js.map +0 -1
- package/dist/features/lists/checklist/feature.server.d.ts +0 -2
- package/dist/features/lists/checklist/feature.server.d.ts.map +0 -1
- package/dist/features/lists/checklist/feature.server.js +0 -36
- package/dist/features/lists/checklist/feature.server.js.map +0 -1
- package/dist/features/lists/checklist/i18n.d.ts.map +0 -1
- package/dist/features/lists/checklist/i18n.js.map +0 -1
- package/dist/features/lists/checklist/plugin/index.d.ts +0 -3
- package/dist/features/lists/checklist/plugin/index.d.ts.map +0 -1
- package/dist/features/lists/checklist/plugin/index.js.map +0 -1
- package/dist/features/lists/orderedList/feature.client.d.ts +0 -5
- package/dist/features/lists/orderedList/feature.client.d.ts.map +0 -1
- package/dist/features/lists/orderedList/feature.client.js +0 -90
- package/dist/features/lists/orderedList/feature.client.js.map +0 -1
- package/dist/features/lists/orderedList/feature.server.d.ts +0 -2
- package/dist/features/lists/orderedList/feature.server.d.ts.map +0 -1
- package/dist/features/lists/orderedList/feature.server.js +0 -36
- package/dist/features/lists/orderedList/feature.server.js.map +0 -1
- package/dist/features/lists/orderedList/i18n.d.ts.map +0 -1
- package/dist/features/lists/orderedList/i18n.js.map +0 -1
- package/dist/features/lists/unorderedList/feature.client.d.ts +0 -5
- package/dist/features/lists/unorderedList/feature.client.d.ts.map +0 -1
- package/dist/features/lists/unorderedList/feature.client.js +0 -88
- package/dist/features/lists/unorderedList/feature.client.js.map +0 -1
- package/dist/features/lists/unorderedList/feature.server.d.ts +0 -2
- package/dist/features/lists/unorderedList/feature.server.d.ts.map +0 -1
- package/dist/features/lists/unorderedList/feature.server.js +0 -34
- package/dist/features/lists/unorderedList/feature.server.js.map +0 -1
- package/dist/features/lists/unorderedList/i18n.d.ts.map +0 -1
- package/dist/features/lists/unorderedList/i18n.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.d.ts +0 -5
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js +0 -6
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js +0 -8
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/client.d.ts +0 -5
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/client.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js +0 -6
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/index.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js +0 -8
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/client.d.ts +0 -5
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/client.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js +0 -6
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/index.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js +0 -8
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.d.ts +0 -5
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js +0 -6
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js +0 -8
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.d.ts +0 -5
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js +0 -6
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js +0 -8
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.d.ts +0 -5
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js +0 -6
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js +0 -8
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.d.ts +0 -5
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js +0 -6
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js +0 -8
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/heading/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/heading/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/heading/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/heading/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/indent/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/indent/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/indent/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/indent/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/link/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/link/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/link/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/link/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/upload/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/upload/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/upload/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/upload/index.js.map +0 -1
- package/dist/features/paragraph/feature.client.d.ts +0 -5
- package/dist/features/paragraph/feature.client.d.ts.map +0 -1
- package/dist/features/paragraph/feature.client.js +0 -71
- package/dist/features/paragraph/feature.client.js.map +0 -1
- package/dist/features/paragraph/feature.server.d.ts +0 -2
- package/dist/features/paragraph/feature.server.d.ts.map +0 -1
- package/dist/features/paragraph/feature.server.js +0 -14
- package/dist/features/paragraph/feature.server.js.map +0 -1
- package/dist/features/paragraph/i18n.d.ts.map +0 -1
- package/dist/features/paragraph/i18n.js.map +0 -1
- package/dist/features/relationship/drawer/commands.d.ts.map +0 -1
- package/dist/features/relationship/drawer/commands.js.map +0 -1
- package/dist/features/relationship/drawer/index.d.ts.map +0 -1
- package/dist/features/relationship/drawer/index.js.map +0 -1
- package/dist/features/relationship/feature.client.d.ts +0 -18
- package/dist/features/relationship/feature.client.d.ts.map +0 -1
- package/dist/features/relationship/feature.client.js +0 -72
- package/dist/features/relationship/feature.client.js.map +0 -1
- package/dist/features/relationship/feature.server.d.ts +0 -27
- package/dist/features/relationship/feature.server.d.ts.map +0 -1
- package/dist/features/relationship/feature.server.js +0 -55
- package/dist/features/relationship/feature.server.js.map +0 -1
- package/dist/features/relationship/graphQLPopulationPromise.d.ts +0 -5
- package/dist/features/relationship/graphQLPopulationPromise.d.ts.map +0 -1
- package/dist/features/relationship/graphQLPopulationPromise.js +0 -29
- package/dist/features/relationship/graphQLPopulationPromise.js.map +0 -1
- package/dist/features/relationship/i18n.d.ts.map +0 -1
- package/dist/features/relationship/i18n.js.map +0 -1
- package/dist/features/relationship/nodes/RelationshipNode.d.ts +0 -35
- package/dist/features/relationship/nodes/RelationshipNode.d.ts.map +0 -1
- package/dist/features/relationship/nodes/RelationshipNode.js +0 -111
- package/dist/features/relationship/nodes/RelationshipNode.js.map +0 -1
- package/dist/features/relationship/nodes/components/RelationshipComponent.d.ts +0 -13
- package/dist/features/relationship/nodes/components/RelationshipComponent.d.ts.map +0 -1
- package/dist/features/relationship/nodes/components/RelationshipComponent.js +0 -171
- package/dist/features/relationship/nodes/components/RelationshipComponent.js.map +0 -1
- package/dist/features/relationship/plugins/index.d.ts +0 -7
- package/dist/features/relationship/plugins/index.d.ts.map +0 -1
- package/dist/features/relationship/plugins/index.js +0 -50
- package/dist/features/relationship/plugins/index.js.map +0 -1
- package/dist/features/relationship/utils/EnabledRelationshipsCondition.d.ts.map +0 -1
- package/dist/features/relationship/utils/EnabledRelationshipsCondition.js +0 -33
- package/dist/features/relationship/utils/EnabledRelationshipsCondition.js.map +0 -1
- package/dist/features/toolbars/fixed/Toolbar/index.d.ts +0 -5
- package/dist/features/toolbars/fixed/Toolbar/index.d.ts.map +0 -1
- package/dist/features/toolbars/fixed/Toolbar/index.js +0 -207
- package/dist/features/toolbars/fixed/Toolbar/index.js.map +0 -1
- package/dist/features/toolbars/fixed/feature.client.d.ts +0 -6
- package/dist/features/toolbars/fixed/feature.client.d.ts.map +0 -1
- package/dist/features/toolbars/fixed/feature.client.js +0 -13
- package/dist/features/toolbars/fixed/feature.client.js.map +0 -1
- package/dist/features/toolbars/fixed/feature.server.d.ts +0 -18
- package/dist/features/toolbars/fixed/feature.server.d.ts.map +0 -1
- package/dist/features/toolbars/fixed/feature.server.js +0 -19
- package/dist/features/toolbars/fixed/feature.server.js.map +0 -1
- package/dist/features/toolbars/inline/Toolbar/index.d.ts +0 -4
- package/dist/features/toolbars/inline/Toolbar/index.d.ts.map +0 -1
- package/dist/features/toolbars/inline/Toolbar/index.js +0 -319
- package/dist/features/toolbars/inline/Toolbar/index.js.map +0 -1
- package/dist/features/toolbars/inline/feature.client.d.ts +0 -5
- package/dist/features/toolbars/inline/feature.client.d.ts.map +0 -1
- package/dist/features/toolbars/inline/feature.client.js +0 -13
- package/dist/features/toolbars/inline/feature.client.js.map +0 -1
- package/dist/features/toolbars/inline/feature.server.d.ts +0 -2
- package/dist/features/toolbars/inline/feature.server.d.ts.map +0 -1
- package/dist/features/toolbars/inline/feature.server.js +0 -11
- package/dist/features/toolbars/inline/feature.server.js.map +0 -1
- package/dist/features/upload/component/index.d.ts +0 -9
- package/dist/features/upload/component/index.d.ts.map +0 -1
- package/dist/features/upload/component/index.js +0 -242
- package/dist/features/upload/component/index.js.map +0 -1
- package/dist/features/upload/drawer/commands.d.ts.map +0 -1
- package/dist/features/upload/drawer/commands.js.map +0 -1
- package/dist/features/upload/drawer/index.d.ts.map +0 -1
- package/dist/features/upload/drawer/index.js +0 -77
- package/dist/features/upload/drawer/index.js.map +0 -1
- package/dist/features/upload/feature.client.d.ts.map +0 -1
- package/dist/features/upload/feature.client.js +0 -74
- package/dist/features/upload/feature.client.js.map +0 -1
- package/dist/features/upload/feature.server.d.ts +0 -18
- package/dist/features/upload/feature.server.d.ts.map +0 -1
- package/dist/features/upload/feature.server.js +0 -184
- package/dist/features/upload/feature.server.js.map +0 -1
- package/dist/features/upload/graphQLPopulationPromise.d.ts +0 -5
- package/dist/features/upload/graphQLPopulationPromise.d.ts.map +0 -1
- package/dist/features/upload/graphQLPopulationPromise.js +0 -52
- package/dist/features/upload/graphQLPopulationPromise.js.map +0 -1
- package/dist/features/upload/i18n.d.ts.map +0 -1
- package/dist/features/upload/i18n.js.map +0 -1
- package/dist/features/upload/nodes/UploadNode.d.ts +0 -39
- package/dist/features/upload/nodes/UploadNode.d.ts.map +0 -1
- package/dist/features/upload/nodes/UploadNode.js +0 -131
- package/dist/features/upload/nodes/UploadNode.js.map +0 -1
- package/dist/features/upload/plugin/index.d.ts +0 -8
- package/dist/features/upload/plugin/index.d.ts.map +0 -1
- package/dist/features/upload/plugin/index.js +0 -53
- package/dist/features/upload/plugin/index.js.map +0 -1
- package/dist/features/upload/validate.d.ts +0 -5
- package/dist/features/upload/validate.d.ts.map +0 -1
- package/dist/features/upload/validate.js.map +0 -1
- package/dist/lexical/utils/invariant.d.ts +0 -2
- package/dist/lexical/utils/invariant.d.ts.map +0 -1
- package/dist/lexical/utils/invariant.js +0 -12
- package/dist/lexical/utils/invariant.js.map +0 -1
- /package/dist/features/align/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/align/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/blockquote/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/blockquote/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/blocks/{component → client/component}/FormSavePlugin.d.ts +0 -0
- /package/dist/features/blocks/{component → client/component}/FormSavePlugin.js +0 -0
- /package/dist/features/blocks/{component → client/component}/removeEmptyArrayValues.d.ts +0 -0
- /package/dist/features/blocks/{component → client/component}/removeEmptyArrayValues.js +0 -0
- /package/dist/features/blocks/{componentInline → client/componentInline}/index.d.ts +0 -0
- /package/dist/features/blocks/{plugin → client/plugin}/commands.d.ts +0 -0
- /package/dist/features/blocks/{plugin → client/plugin}/commands.js +0 -0
- /package/dist/features/blocks/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/blocks/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/blocks/{validate.js → server/validate.js} +0 -0
- /package/dist/features/debug/treeView/{plugin → client/plugin}/index.js +0 -0
- /package/dist/features/experimental_table/{utils → client/utils}/debounce.d.ts +0 -0
- /package/dist/features/experimental_table/{utils → client/utils}/debounce.js +0 -0
- /package/dist/features/experimental_table/{utils → client/utils}/useDebounce.d.ts +0 -0
- /package/dist/features/experimental_table/{utils → client/utils}/useDebounce.js +0 -0
- /package/dist/features/heading/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/heading/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/horizontalRule/{component → client/component}/index.d.ts +0 -0
- /package/dist/features/horizontalRule/{component → client/component}/index.js +0 -0
- /package/dist/features/horizontalRule/{markdownTransformer.d.ts → client/markdownTransformer.d.ts} +0 -0
- /package/dist/features/horizontalRule/{markdownTransformer.js → client/markdownTransformer.js} +0 -0
- /package/dist/features/horizontalRule/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/horizontalRule/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/indent/{toolbarIndentGroup.js → client/toolbarIndentGroup.js} +0 -0
- /package/dist/features/indent/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/indent/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/link/{plugins → client/plugins}/clickableLink/index.js +0 -0
- /package/dist/features/link/{plugins → client/plugins}/floatingLinkEditor/LinkEditor/commands.d.ts +0 -0
- /package/dist/features/link/{plugins → client/plugins}/floatingLinkEditor/LinkEditor/commands.js +0 -0
- /package/dist/features/link/{plugins → client/plugins}/floatingLinkEditor/LinkEditor/index.d.ts +0 -0
- /package/dist/features/link/{plugins → client/plugins}/floatingLinkEditor/index.js +0 -0
- /package/dist/features/link/{plugins → client/plugins}/floatingLinkEditor/types.js +0 -0
- /package/dist/features/link/{drawer → server}/baseFields.d.ts +0 -0
- /package/dist/features/link/{drawer → server}/baseFields.js +0 -0
- /package/dist/features/link/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/link/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/link/{validate.js → server/validate.js} +0 -0
- /package/dist/features/lists/checklist/{plugin → client/plugin}/index.js +0 -0
- /package/dist/features/lists/checklist/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/lists/checklist/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/lists/orderedList/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/lists/orderedList/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/lists/unorderedList/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/lists/unorderedList/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/paragraph/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/paragraph/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/relationship/{drawer → client/drawer}/commands.d.ts +0 -0
- /package/dist/features/relationship/{drawer → client/drawer}/commands.js +0 -0
- /package/dist/features/relationship/{drawer → client/drawer}/index.d.ts +0 -0
- /package/dist/features/relationship/{drawer → client/drawer}/index.js +0 -0
- /package/dist/features/relationship/{utils → client/utils}/EnabledRelationshipsCondition.d.ts +0 -0
- /package/dist/features/relationship/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/relationship/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/upload/{drawer → client/drawer}/commands.d.ts +0 -0
- /package/dist/features/upload/{drawer → client/drawer}/commands.js +0 -0
- /package/dist/features/upload/{drawer → client/drawer}/index.d.ts +0 -0
- /package/dist/features/upload/{feature.client.d.ts → client/feature.client.d.ts} +0 -0
- /package/dist/features/upload/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/upload/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/upload/{validate.js → server/validate.js} +0 -0
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
|
|
4
|
+
import { $findMatchingParent, mergeRegister } from '@lexical/utils';
|
|
5
|
+
import { getTranslation } from '@payloadcms/translations';
|
|
6
|
+
import { formatDrawerSlug, useConfig, useEditDepth, useModal, useTranslation } from '@payloadcms/ui';
|
|
7
|
+
import { $getSelection, $isLineBreakNode, $isRangeSelection, COMMAND_PRIORITY_HIGH, COMMAND_PRIORITY_LOW, KEY_ESCAPE_COMMAND, SELECTION_CHANGE_COMMAND } from 'lexical';
|
|
8
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
9
|
+
import { useEditorConfigContext } from '../../../../../../lexical/config/client/EditorConfigProvider.js';
|
|
10
|
+
import { getSelectedNode } from '../../../../../../lexical/utils/getSelectedNode.js';
|
|
11
|
+
import { setFloatingElemPositionForLinkEditor } from '../../../../../../lexical/utils/setFloatingElemPositionForLinkEditor.js';
|
|
12
|
+
import { FieldsDrawer } from '../../../../../../utilities/fieldsDrawer/Drawer.js';
|
|
13
|
+
import { $isAutoLinkNode } from '../../../../nodes/AutoLinkNode.js';
|
|
14
|
+
import { $createLinkNode, $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../../nodes/LinkNode.js';
|
|
15
|
+
import { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands.js';
|
|
16
|
+
export function LinkEditor({ anchorElem }) {
|
|
17
|
+
const [editor] = useLexicalComposerContext();
|
|
18
|
+
const editorRef = useRef(null);
|
|
19
|
+
const [linkUrl, setLinkUrl] = useState(null);
|
|
20
|
+
const [linkLabel, setLinkLabel] = useState(null);
|
|
21
|
+
const { uuid } = useEditorConfigContext();
|
|
22
|
+
const { config } = useConfig();
|
|
23
|
+
const { i18n, t } = useTranslation();
|
|
24
|
+
const [stateData, setStateData] = useState(null);
|
|
25
|
+
const { closeModal, toggleModal } = useModal();
|
|
26
|
+
const editDepth = useEditDepth();
|
|
27
|
+
const [isLink, setIsLink] = useState(false);
|
|
28
|
+
const [selectedNodes, setSelectedNodes] = useState([]);
|
|
29
|
+
const [isAutoLink, setIsAutoLink] = useState(false);
|
|
30
|
+
const drawerSlug = formatDrawerSlug({
|
|
31
|
+
slug: `lexical-rich-text-link-` + uuid,
|
|
32
|
+
depth: editDepth
|
|
33
|
+
});
|
|
34
|
+
const setNotLink = useCallback(()=>{
|
|
35
|
+
setIsLink(false);
|
|
36
|
+
if (editorRef && editorRef.current) {
|
|
37
|
+
editorRef.current.style.opacity = '0';
|
|
38
|
+
editorRef.current.style.transform = 'translate(-10000px, -10000px)';
|
|
39
|
+
}
|
|
40
|
+
setIsAutoLink(false);
|
|
41
|
+
setLinkUrl(null);
|
|
42
|
+
setLinkLabel(null);
|
|
43
|
+
setSelectedNodes([]);
|
|
44
|
+
setStateData(null);
|
|
45
|
+
}, [
|
|
46
|
+
setIsLink,
|
|
47
|
+
setLinkUrl,
|
|
48
|
+
setLinkLabel,
|
|
49
|
+
setSelectedNodes
|
|
50
|
+
]);
|
|
51
|
+
const $updateLinkEditor = useCallback(()=>{
|
|
52
|
+
const selection = $getSelection();
|
|
53
|
+
let selectedNodeDomRect = null;
|
|
54
|
+
if (!$isRangeSelection(selection) || !selection) {
|
|
55
|
+
setNotLink();
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
// Handle the data displayed in the floating link editor & drawer when you click on a link node
|
|
59
|
+
const focusNode = getSelectedNode(selection);
|
|
60
|
+
selectedNodeDomRect = editor.getElementByKey(focusNode.getKey())?.getBoundingClientRect();
|
|
61
|
+
const focusLinkParent = $findMatchingParent(focusNode, $isLinkNode);
|
|
62
|
+
// Prevent link modal from showing if selection spans further than the link: https://github.com/facebook/lexical/issues/4064
|
|
63
|
+
const badNode = selection.getNodes().filter((node)=>!$isLineBreakNode(node)).find((node)=>{
|
|
64
|
+
const linkNode = $findMatchingParent(node, $isLinkNode);
|
|
65
|
+
return focusLinkParent && !focusLinkParent.is(linkNode) || linkNode && !linkNode.is(focusLinkParent);
|
|
66
|
+
});
|
|
67
|
+
if (focusLinkParent == null || badNode) {
|
|
68
|
+
setNotLink();
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
// Initial state:
|
|
72
|
+
const data = {
|
|
73
|
+
doc: undefined,
|
|
74
|
+
linkType: undefined,
|
|
75
|
+
newTab: undefined,
|
|
76
|
+
url: '',
|
|
77
|
+
...focusLinkParent.getFields(),
|
|
78
|
+
id: focusLinkParent.getID(),
|
|
79
|
+
text: focusLinkParent.getTextContent()
|
|
80
|
+
};
|
|
81
|
+
if (focusLinkParent.getFields()?.linkType === 'custom') {
|
|
82
|
+
setLinkUrl(focusLinkParent.getFields()?.url ?? null);
|
|
83
|
+
setLinkLabel(null);
|
|
84
|
+
} else {
|
|
85
|
+
// internal link
|
|
86
|
+
setLinkUrl(`/admin/collections/${focusLinkParent.getFields()?.doc?.relationTo}/${focusLinkParent.getFields()?.doc?.value}`);
|
|
87
|
+
const relatedField = config.collections.find((coll)=>coll.slug === focusLinkParent.getFields()?.doc?.relationTo);
|
|
88
|
+
if (!relatedField) {
|
|
89
|
+
// Usually happens if the user removed all default fields. In this case, we let them specify the label or do not display the label at all.
|
|
90
|
+
// label could be a virtual field the user added. This is useful if they want to use the link feature for things other than links.
|
|
91
|
+
setLinkLabel(focusLinkParent.getFields()?.label ? String(focusLinkParent.getFields()?.label) : null);
|
|
92
|
+
setLinkUrl(focusLinkParent.getFields()?.url ? String(focusLinkParent.getFields()?.url) : null);
|
|
93
|
+
} else {
|
|
94
|
+
const label = t('fields:linkedTo', {
|
|
95
|
+
label: getTranslation(relatedField.labels.singular, i18n)
|
|
96
|
+
}).replace(/<[^>]*>?/g, '');
|
|
97
|
+
setLinkLabel(label);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
setStateData(data);
|
|
101
|
+
setIsLink(true);
|
|
102
|
+
setSelectedNodes(selection ? selection?.getNodes() : []);
|
|
103
|
+
if ($isAutoLinkNode(focusLinkParent)) {
|
|
104
|
+
setIsAutoLink(true);
|
|
105
|
+
} else {
|
|
106
|
+
setIsAutoLink(false);
|
|
107
|
+
}
|
|
108
|
+
const editorElem = editorRef.current;
|
|
109
|
+
const nativeSelection = window.getSelection();
|
|
110
|
+
const { activeElement } = document;
|
|
111
|
+
if (editorElem === null) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
const rootElement = editor.getRootElement();
|
|
115
|
+
if (nativeSelection !== null && rootElement !== null && rootElement.contains(nativeSelection.anchorNode)) {
|
|
116
|
+
if (!selectedNodeDomRect) {
|
|
117
|
+
// Get the DOM rect of the selected node using the native selection. This sometimes produces the wrong
|
|
118
|
+
// result, which is why we use lexical's selection preferably.
|
|
119
|
+
selectedNodeDomRect = nativeSelection.getRangeAt(0).getBoundingClientRect();
|
|
120
|
+
}
|
|
121
|
+
if (selectedNodeDomRect != null) {
|
|
122
|
+
selectedNodeDomRect.y += 40;
|
|
123
|
+
setFloatingElemPositionForLinkEditor(selectedNodeDomRect, editorElem, anchorElem);
|
|
124
|
+
}
|
|
125
|
+
} else if (activeElement == null || activeElement.className !== 'link-input') {
|
|
126
|
+
if (rootElement !== null) {
|
|
127
|
+
setFloatingElemPositionForLinkEditor(null, editorElem, anchorElem);
|
|
128
|
+
}
|
|
129
|
+
setLinkUrl(null);
|
|
130
|
+
setLinkLabel(null);
|
|
131
|
+
}
|
|
132
|
+
return true;
|
|
133
|
+
}, [
|
|
134
|
+
editor,
|
|
135
|
+
setNotLink,
|
|
136
|
+
config.collections,
|
|
137
|
+
t,
|
|
138
|
+
i18n,
|
|
139
|
+
anchorElem
|
|
140
|
+
]);
|
|
141
|
+
useEffect(()=>{
|
|
142
|
+
return mergeRegister(editor.registerCommand(TOGGLE_LINK_WITH_MODAL_COMMAND, (payload)=>{
|
|
143
|
+
editor.dispatchCommand(TOGGLE_LINK_COMMAND, payload);
|
|
144
|
+
// Now, open the modal
|
|
145
|
+
$updateLinkEditor();
|
|
146
|
+
toggleModal(drawerSlug);
|
|
147
|
+
return true;
|
|
148
|
+
}, COMMAND_PRIORITY_LOW));
|
|
149
|
+
}, [
|
|
150
|
+
editor,
|
|
151
|
+
$updateLinkEditor,
|
|
152
|
+
toggleModal,
|
|
153
|
+
drawerSlug
|
|
154
|
+
]);
|
|
155
|
+
useEffect(()=>{
|
|
156
|
+
const scrollerElem = anchorElem.parentElement;
|
|
157
|
+
const update = ()=>{
|
|
158
|
+
editor.getEditorState().read(()=>{
|
|
159
|
+
void $updateLinkEditor();
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
window.addEventListener('resize', update);
|
|
163
|
+
if (scrollerElem != null) {
|
|
164
|
+
scrollerElem.addEventListener('scroll', update);
|
|
165
|
+
}
|
|
166
|
+
return ()=>{
|
|
167
|
+
window.removeEventListener('resize', update);
|
|
168
|
+
if (scrollerElem != null) {
|
|
169
|
+
scrollerElem.removeEventListener('scroll', update);
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
}, [
|
|
173
|
+
anchorElem.parentElement,
|
|
174
|
+
editor,
|
|
175
|
+
$updateLinkEditor
|
|
176
|
+
]);
|
|
177
|
+
useEffect(()=>{
|
|
178
|
+
return mergeRegister(editor.registerUpdateListener(({ editorState })=>{
|
|
179
|
+
editorState.read(()=>{
|
|
180
|
+
void $updateLinkEditor();
|
|
181
|
+
});
|
|
182
|
+
}), editor.registerCommand(SELECTION_CHANGE_COMMAND, ()=>{
|
|
183
|
+
void $updateLinkEditor();
|
|
184
|
+
return true;
|
|
185
|
+
}, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_ESCAPE_COMMAND, ()=>{
|
|
186
|
+
if (isLink) {
|
|
187
|
+
setNotLink();
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
return false;
|
|
191
|
+
}, COMMAND_PRIORITY_HIGH));
|
|
192
|
+
}, [
|
|
193
|
+
editor,
|
|
194
|
+
$updateLinkEditor,
|
|
195
|
+
isLink,
|
|
196
|
+
setNotLink
|
|
197
|
+
]);
|
|
198
|
+
useEffect(()=>{
|
|
199
|
+
editor.getEditorState().read(()=>{
|
|
200
|
+
void $updateLinkEditor();
|
|
201
|
+
});
|
|
202
|
+
}, [
|
|
203
|
+
editor,
|
|
204
|
+
$updateLinkEditor
|
|
205
|
+
]);
|
|
206
|
+
return /*#__PURE__*/ _jsxs(React.Fragment, {
|
|
207
|
+
children: [
|
|
208
|
+
/*#__PURE__*/ _jsx("div", {
|
|
209
|
+
className: "link-editor",
|
|
210
|
+
ref: editorRef,
|
|
211
|
+
children: /*#__PURE__*/ _jsxs("div", {
|
|
212
|
+
className: "link-input",
|
|
213
|
+
children: [
|
|
214
|
+
linkUrl && linkUrl.length > 0 ? /*#__PURE__*/ _jsx("a", {
|
|
215
|
+
href: linkUrl,
|
|
216
|
+
rel: "noopener noreferrer",
|
|
217
|
+
target: "_blank",
|
|
218
|
+
children: linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl
|
|
219
|
+
}) : linkLabel != null && linkLabel.length > 0 ? /*#__PURE__*/ _jsx("span", {
|
|
220
|
+
className: "link-input__label-pure",
|
|
221
|
+
children: linkLabel
|
|
222
|
+
}) : null,
|
|
223
|
+
editor.isEditable() && /*#__PURE__*/ _jsxs(React.Fragment, {
|
|
224
|
+
children: [
|
|
225
|
+
/*#__PURE__*/ _jsx("button", {
|
|
226
|
+
"aria-label": "Edit link",
|
|
227
|
+
className: "link-edit",
|
|
228
|
+
onClick: ()=>{
|
|
229
|
+
toggleModal(drawerSlug);
|
|
230
|
+
},
|
|
231
|
+
onMouseDown: (event)=>{
|
|
232
|
+
event.preventDefault();
|
|
233
|
+
},
|
|
234
|
+
tabIndex: 0,
|
|
235
|
+
type: "button"
|
|
236
|
+
}),
|
|
237
|
+
!isAutoLink && /*#__PURE__*/ _jsx("button", {
|
|
238
|
+
"aria-label": "Remove link",
|
|
239
|
+
className: "link-trash",
|
|
240
|
+
onClick: ()=>{
|
|
241
|
+
editor.dispatchCommand(TOGGLE_LINK_COMMAND, null);
|
|
242
|
+
},
|
|
243
|
+
onMouseDown: (event)=>{
|
|
244
|
+
event.preventDefault();
|
|
245
|
+
},
|
|
246
|
+
tabIndex: 0,
|
|
247
|
+
type: "button"
|
|
248
|
+
})
|
|
249
|
+
]
|
|
250
|
+
})
|
|
251
|
+
]
|
|
252
|
+
})
|
|
253
|
+
}),
|
|
254
|
+
/*#__PURE__*/ _jsx(FieldsDrawer, {
|
|
255
|
+
className: "lexical-link-edit-drawer",
|
|
256
|
+
data: stateData,
|
|
257
|
+
drawerSlug: drawerSlug,
|
|
258
|
+
drawerTitle: t('fields:editLink'),
|
|
259
|
+
featureKey: "link",
|
|
260
|
+
handleDrawerSubmit: (fields, data)=>{
|
|
261
|
+
closeModal(drawerSlug);
|
|
262
|
+
const newLinkPayload = data;
|
|
263
|
+
const bareLinkFields = {
|
|
264
|
+
...newLinkPayload
|
|
265
|
+
};
|
|
266
|
+
delete bareLinkFields.text;
|
|
267
|
+
// See: https://github.com/facebook/lexical/pull/5536. This updates autolink nodes to link nodes whenever a change was made (which is good!).
|
|
268
|
+
editor.update(()=>{
|
|
269
|
+
const selection = $getSelection();
|
|
270
|
+
let linkParent = null;
|
|
271
|
+
if ($isRangeSelection(selection)) {
|
|
272
|
+
linkParent = getSelectedNode(selection).getParent();
|
|
273
|
+
} else {
|
|
274
|
+
if (selectedNodes.length) {
|
|
275
|
+
linkParent = selectedNodes[0].getParent();
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
if (linkParent && $isAutoLinkNode(linkParent)) {
|
|
279
|
+
const linkNode = $createLinkNode({
|
|
280
|
+
fields: bareLinkFields
|
|
281
|
+
});
|
|
282
|
+
linkParent.replace(linkNode, true);
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
// Needs to happen AFTER a potential auto link => link node conversion, as otherwise, the updated text to display may be lost due to
|
|
286
|
+
// it being applied to the auto link node instead of the link node.
|
|
287
|
+
editor.dispatchCommand(TOGGLE_LINK_COMMAND, {
|
|
288
|
+
fields: bareLinkFields,
|
|
289
|
+
selectedNodes,
|
|
290
|
+
text: newLinkPayload.text
|
|
291
|
+
});
|
|
292
|
+
},
|
|
293
|
+
schemaPathSuffix: "fields"
|
|
294
|
+
})
|
|
295
|
+
]
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport type { LexicalNode } from 'lexical'\nimport type { Data, FormState } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatDrawerSlug, useConfig, useEditDepth, useModal, useTranslation } from '@payloadcms/ui'\nimport {\n $getSelection,\n $isLineBreakNode,\n $isRangeSelection,\n COMMAND_PRIORITY_HIGH,\n COMMAND_PRIORITY_LOW,\n KEY_ESCAPE_COMMAND,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { LinkNode } from '../../../../nodes/LinkNode.js'\nimport type { LinkFields } from '../../../../nodes/types.js'\nimport type { LinkPayload } from '../types.js'\n\nimport { useEditorConfigContext } from '../../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { getSelectedNode } from '../../../../../../lexical/utils/getSelectedNode.js'\nimport { setFloatingElemPositionForLinkEditor } from '../../../../../../lexical/utils/setFloatingElemPositionForLinkEditor.js'\nimport { FieldsDrawer } from '../../../../../../utilities/fieldsDrawer/Drawer.js'\nimport { $isAutoLinkNode } from '../../../../nodes/AutoLinkNode.js'\nimport { $createLinkNode, $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../../nodes/LinkNode.js'\nimport { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands.js'\n\nexport function LinkEditor({ anchorElem }: { anchorElem: HTMLElement }): React.ReactNode {\n const [editor] = useLexicalComposerContext()\n\n const editorRef = useRef<HTMLDivElement | null>(null)\n const [linkUrl, setLinkUrl] = useState(null)\n const [linkLabel, setLinkLabel] = useState(null)\n\n const { uuid } = useEditorConfigContext()\n\n const { config } = useConfig()\n\n const { i18n, t } = useTranslation()\n\n const [stateData, setStateData] = useState<{ id?: string; text: string } & LinkFields>(null)\n\n const { closeModal, toggleModal } = useModal()\n const editDepth = useEditDepth()\n const [isLink, setIsLink] = useState(false)\n const [selectedNodes, setSelectedNodes] = useState<LexicalNode[]>([])\n\n const [isAutoLink, setIsAutoLink] = useState(false)\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-rich-text-link-` + uuid,\n depth: editDepth,\n })\n\n const setNotLink = useCallback(() => {\n setIsLink(false)\n if (editorRef && editorRef.current) {\n editorRef.current.style.opacity = '0'\n editorRef.current.style.transform = 'translate(-10000px, -10000px)'\n }\n setIsAutoLink(false)\n setLinkUrl(null)\n setLinkLabel(null)\n setSelectedNodes([])\n setStateData(null)\n }, [setIsLink, setLinkUrl, setLinkLabel, setSelectedNodes])\n\n const $updateLinkEditor = useCallback(() => {\n const selection = $getSelection()\n let selectedNodeDomRect: DOMRect | undefined = null\n\n if (!$isRangeSelection(selection) || !selection) {\n setNotLink()\n return\n }\n\n // Handle the data displayed in the floating link editor & drawer when you click on a link node\n\n const focusNode = getSelectedNode(selection)\n selectedNodeDomRect = editor.getElementByKey(focusNode.getKey())?.getBoundingClientRect()\n const focusLinkParent: LinkNode = $findMatchingParent(focusNode, $isLinkNode)\n\n // Prevent link modal from showing if selection spans further than the link: https://github.com/facebook/lexical/issues/4064\n const badNode = selection\n .getNodes()\n .filter((node) => !$isLineBreakNode(node))\n .find((node) => {\n const linkNode = $findMatchingParent(node, $isLinkNode)\n return (\n (focusLinkParent && !focusLinkParent.is(linkNode)) ||\n (linkNode && !linkNode.is(focusLinkParent))\n )\n })\n\n if (focusLinkParent == null || badNode) {\n setNotLink()\n return\n }\n\n // Initial state:\n const data: { text: string } & LinkFields = {\n doc: undefined,\n linkType: undefined,\n newTab: undefined,\n url: '',\n ...focusLinkParent.getFields(),\n id: focusLinkParent.getID(),\n text: focusLinkParent.getTextContent(),\n }\n\n if (focusLinkParent.getFields()?.linkType === 'custom') {\n setLinkUrl(focusLinkParent.getFields()?.url ?? null)\n setLinkLabel(null)\n } else {\n // internal link\n setLinkUrl(\n `/admin/collections/${focusLinkParent.getFields()?.doc?.relationTo}/${\n focusLinkParent.getFields()?.doc?.value\n }`,\n )\n\n const relatedField = config.collections.find(\n (coll) => coll.slug === focusLinkParent.getFields()?.doc?.relationTo,\n )\n if (!relatedField) {\n // Usually happens if the user removed all default fields. In this case, we let them specify the label or do not display the label at all.\n // label could be a virtual field the user added. This is useful if they want to use the link feature for things other than links.\n setLinkLabel(\n focusLinkParent.getFields()?.label ? String(focusLinkParent.getFields()?.label) : null,\n )\n setLinkUrl(\n focusLinkParent.getFields()?.url ? String(focusLinkParent.getFields()?.url) : null,\n )\n } else {\n const label = t('fields:linkedTo', {\n label: getTranslation(relatedField.labels.singular, i18n),\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n }\n }\n\n setStateData(data)\n setIsLink(true)\n setSelectedNodes(selection ? selection?.getNodes() : [])\n\n if ($isAutoLinkNode(focusLinkParent)) {\n setIsAutoLink(true)\n } else {\n setIsAutoLink(false)\n }\n\n const editorElem = editorRef.current\n const nativeSelection = window.getSelection()\n const { activeElement } = document\n\n if (editorElem === null) {\n return\n }\n\n const rootElement = editor.getRootElement()\n\n if (\n nativeSelection !== null &&\n rootElement !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n if (!selectedNodeDomRect) {\n // Get the DOM rect of the selected node using the native selection. This sometimes produces the wrong\n // result, which is why we use lexical's selection preferably.\n selectedNodeDomRect = nativeSelection.getRangeAt(0).getBoundingClientRect()\n }\n\n if (selectedNodeDomRect != null) {\n selectedNodeDomRect.y += 40\n setFloatingElemPositionForLinkEditor(selectedNodeDomRect, editorElem, anchorElem)\n }\n } else if (activeElement == null || activeElement.className !== 'link-input') {\n if (rootElement !== null) {\n setFloatingElemPositionForLinkEditor(null, editorElem, anchorElem)\n }\n setLinkUrl(null)\n setLinkLabel(null)\n }\n\n return true\n }, [editor, setNotLink, config.collections, t, i18n, anchorElem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_WITH_MODAL_COMMAND,\n (payload: LinkPayload) => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, payload)\n\n // Now, open the modal\n $updateLinkEditor()\n toggleModal(drawerSlug)\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateLinkEditor, toggleModal, drawerSlug])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = (): void => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }\n\n window.addEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.addEventListener('scroll', update)\n }\n\n return () => {\n window.removeEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.removeEventListener('scroll', update)\n }\n }\n }, [anchorElem.parentElement, editor, $updateLinkEditor])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n void $updateLinkEditor()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n void $updateLinkEditor()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ESCAPE_COMMAND,\n () => {\n if (isLink) {\n setNotLink()\n\n return true\n }\n return false\n },\n COMMAND_PRIORITY_HIGH,\n ),\n )\n }, [editor, $updateLinkEditor, isLink, setNotLink])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }, [editor, $updateLinkEditor])\n\n return (\n <React.Fragment>\n <div className=\"link-editor\" ref={editorRef}>\n <div className=\"link-input\">\n {linkUrl && linkUrl.length > 0 ? (\n <a href={linkUrl} rel=\"noopener noreferrer\" target=\"_blank\">\n {linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl}\n </a>\n ) : linkLabel != null && linkLabel.length > 0 ? (\n <span className=\"link-input__label-pure\">{linkLabel}</span>\n ) : null}\n\n {editor.isEditable() && (\n <React.Fragment>\n <button\n aria-label=\"Edit link\"\n className=\"link-edit\"\n onClick={() => {\n toggleModal(drawerSlug)\n }}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n tabIndex={0}\n type=\"button\"\n />\n {!isAutoLink && (\n <button\n aria-label=\"Remove link\"\n className=\"link-trash\"\n onClick={() => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)\n }}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n tabIndex={0}\n type=\"button\"\n />\n )}\n </React.Fragment>\n )}\n </div>\n </div>\n <FieldsDrawer\n className=\"lexical-link-edit-drawer\"\n data={stateData}\n drawerSlug={drawerSlug}\n drawerTitle={t('fields:editLink')}\n featureKey=\"link\"\n handleDrawerSubmit={(fields: FormState, data: Data) => {\n closeModal(drawerSlug)\n\n const newLinkPayload = data as { text: string } & LinkFields\n\n const bareLinkFields: LinkFields = {\n ...newLinkPayload,\n }\n delete bareLinkFields.text\n\n // See: https://github.com/facebook/lexical/pull/5536. This updates autolink nodes to link nodes whenever a change was made (which is good!).\n editor.update(() => {\n const selection = $getSelection()\n let linkParent = null\n if ($isRangeSelection(selection)) {\n linkParent = getSelectedNode(selection).getParent()\n } else {\n if (selectedNodes.length) {\n linkParent = selectedNodes[0].getParent()\n }\n }\n\n if (linkParent && $isAutoLinkNode(linkParent)) {\n const linkNode = $createLinkNode({\n fields: bareLinkFields,\n })\n linkParent.replace(linkNode, true)\n }\n })\n\n // Needs to happen AFTER a potential auto link => link node conversion, as otherwise, the updated text to display may be lost due to\n // it being applied to the auto link node instead of the link node.\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: bareLinkFields,\n selectedNodes,\n text: newLinkPayload.text,\n })\n }}\n schemaPathSuffix=\"fields\"\n />\n </React.Fragment>\n )\n}\n"],"names":["useLexicalComposerContext","$findMatchingParent","mergeRegister","getTranslation","formatDrawerSlug","useConfig","useEditDepth","useModal","useTranslation","$getSelection","$isLineBreakNode","$isRangeSelection","COMMAND_PRIORITY_HIGH","COMMAND_PRIORITY_LOW","KEY_ESCAPE_COMMAND","SELECTION_CHANGE_COMMAND","React","useCallback","useEffect","useRef","useState","useEditorConfigContext","getSelectedNode","setFloatingElemPositionForLinkEditor","FieldsDrawer","$isAutoLinkNode","$createLinkNode","$isLinkNode","TOGGLE_LINK_COMMAND","TOGGLE_LINK_WITH_MODAL_COMMAND","LinkEditor","anchorElem","editor","editorRef","linkUrl","setLinkUrl","linkLabel","setLinkLabel","uuid","config","i18n","t","stateData","setStateData","closeModal","toggleModal","editDepth","isLink","setIsLink","selectedNodes","setSelectedNodes","isAutoLink","setIsAutoLink","drawerSlug","slug","depth","setNotLink","current","style","opacity","transform","$updateLinkEditor","selection","selectedNodeDomRect","focusNode","getElementByKey","getKey","getBoundingClientRect","focusLinkParent","badNode","getNodes","filter","node","find","linkNode","is","data","doc","undefined","linkType","newTab","url","getFields","id","getID","text","getTextContent","relationTo","value","relatedField","collections","coll","label","String","labels","singular","replace","editorElem","nativeSelection","window","getSelection","activeElement","document","rootElement","getRootElement","contains","anchorNode","getRangeAt","y","className","registerCommand","payload","dispatchCommand","scrollerElem","parentElement","update","getEditorState","read","addEventListener","removeEventListener","registerUpdateListener","editorState","Fragment","div","ref","length","a","href","rel","target","span","isEditable","button","aria-label","onClick","onMouseDown","event","preventDefault","tabIndex","type","drawerTitle","featureKey","handleDrawerSubmit","fields","newLinkPayload","bareLinkFields","linkParent","getParent","schemaPathSuffix"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PluginComponentWithAnchor } from '../../../../typesClient.js';
|
|
2
|
+
import type { ClientProps } from '../../index.js';
|
|
3
|
+
import './index.scss';
|
|
4
|
+
export declare const FloatingLinkEditorPlugin: PluginComponentWithAnchor<ClientProps>;
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAGjD,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,wBAAwB,EAAE,yBAAyB,CAAC,WAAW,CAI3E,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\nimport type { ClientProps } from '../../index.js'\n\nimport { LinkEditor } from './LinkEditor/index.js'\nimport './index.scss'\n\nexport const FloatingLinkEditorPlugin: PluginComponentWithAnchor<ClientProps> = (props) => {\n const { anchorElem = document.body } = props\n\n return createPortal(<LinkEditor anchorElem={anchorElem} />, anchorElem)\n}\n"],"names":["React","createPortal","LinkEditor","FloatingLinkEditorPlugin","props","anchorElem","document","body"],"mappings":"AAAA;;AACA,YAAYA,WAAW,QAAO;AAC9B,SAASC,YAAY,QAAQ,YAAW;AAKxC,SAASC,UAAU,QAAQ,wBAAuB;AAGlD,OAAO,MAAMC,2BAAmE,CAACC;IAC/E,MAAM,EAAEC,aAAaC,SAASC,IAAI,EAAE,GAAGH;IAEvC,qBAAOH,2BAAa,KAACC;QAAWG,YAAYA;QAAgBA;AAC9D,EAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { LexicalNode } from 'lexical';
|
|
2
|
+
import type { LinkFields } from '../../../nodes/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* The payload of a link node
|
|
5
|
+
* This can be delivered from the link node to the drawer, or from the drawer/anything to the TOGGLE_LINK_COMMAND
|
|
6
|
+
*/
|
|
7
|
+
export type LinkPayload = {
|
|
8
|
+
fields: LinkFields;
|
|
9
|
+
selectedNodes?: LexicalNode[];
|
|
10
|
+
/**
|
|
11
|
+
* The text content of the link node - will be displayed in the drawer
|
|
12
|
+
*/
|
|
13
|
+
text: null | string;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEzD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,UAAU,CAAA;IAClB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAA;IAC7B;;OAEG;IACH,IAAI,EAAE,IAAI,GAAG,MAAM,CAAA;CACpB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/types.ts"],"sourcesContent":["import type { LexicalNode } from 'lexical'\n\nimport type { LinkFields } from '../../../nodes/types.js'\n\n/**\n * The payload of a link node\n * This can be delivered from the link node to the drawer, or from the drawer/anything to the TOGGLE_LINK_COMMAND\n */\nexport type LinkPayload = {\n fields: LinkFields\n selectedNodes?: LexicalNode[]\n /**\n * The text content of the link node - will be displayed in the drawer\n */\n text: null | string\n}\n"],"names":[],"mappings":"AAIA;;;CAGC,GACD,WAOC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/link/client/plugins/link/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAMjD,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,WAAW,CAuDnD,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
|
|
3
|
+
import { mergeRegister } from '@lexical/utils';
|
|
4
|
+
import { $getSelection, $isElementNode, $isRangeSelection, COMMAND_PRIORITY_LOW, PASTE_COMMAND } from 'lexical';
|
|
5
|
+
import { useEffect } from 'react';
|
|
6
|
+
import { validateUrl } from '../../../../../lexical/utils/url.js';
|
|
7
|
+
import { $toggleLink, LinkNode, TOGGLE_LINK_COMMAND } from '../../../nodes/LinkNode.js';
|
|
8
|
+
export const LinkPlugin = ()=>{
|
|
9
|
+
const [editor] = useLexicalComposerContext();
|
|
10
|
+
useEffect(()=>{
|
|
11
|
+
if (!editor.hasNodes([
|
|
12
|
+
LinkNode
|
|
13
|
+
])) {
|
|
14
|
+
throw new Error('LinkPlugin: LinkNode not registered on editor');
|
|
15
|
+
}
|
|
16
|
+
return mergeRegister(editor.registerCommand(TOGGLE_LINK_COMMAND, (payload)=>{
|
|
17
|
+
$toggleLink(payload);
|
|
18
|
+
return true;
|
|
19
|
+
}, COMMAND_PRIORITY_LOW), editor.registerCommand(PASTE_COMMAND, (event)=>{
|
|
20
|
+
const selection = $getSelection();
|
|
21
|
+
if (!$isRangeSelection(selection) || selection.isCollapsed() || !(event instanceof ClipboardEvent) || event.clipboardData == null) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
const clipboardText = event.clipboardData.getData('text');
|
|
25
|
+
if (!validateUrl(clipboardText)) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
// If we select nodes that are elements then avoid applying the link.
|
|
29
|
+
if (!selection.getNodes().some((node)=>$isElementNode(node))) {
|
|
30
|
+
const linkFields = {
|
|
31
|
+
doc: null,
|
|
32
|
+
linkType: 'custom',
|
|
33
|
+
newTab: false,
|
|
34
|
+
url: clipboardText
|
|
35
|
+
};
|
|
36
|
+
editor.dispatchCommand(TOGGLE_LINK_COMMAND, {
|
|
37
|
+
fields: linkFields,
|
|
38
|
+
text: null
|
|
39
|
+
});
|
|
40
|
+
event.preventDefault();
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}, COMMAND_PRIORITY_LOW));
|
|
45
|
+
}, [
|
|
46
|
+
editor
|
|
47
|
+
]);
|
|
48
|
+
return null;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/features/link/client/plugins/link/index.tsx"],"sourcesContent":["'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n COMMAND_PRIORITY_LOW,\n PASTE_COMMAND,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { LinkFields } from '../../../nodes/types.js'\nimport type { ClientProps } from '../../index.js'\nimport type { LinkPayload } from '../floatingLinkEditor/types.js'\n\nimport { validateUrl } from '../../../../../lexical/utils/url.js'\nimport { $toggleLink, LinkNode, TOGGLE_LINK_COMMAND } from '../../../nodes/LinkNode.js'\n\nexport const LinkPlugin: PluginComponent<ClientProps> = () => {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n if (!editor.hasNodes([LinkNode])) {\n throw new Error('LinkPlugin: LinkNode not registered on editor')\n }\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_COMMAND,\n (payload: LinkPayload) => {\n $toggleLink(payload)\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n PASTE_COMMAND,\n (event) => {\n const selection = $getSelection()\n if (\n !$isRangeSelection(selection) ||\n selection.isCollapsed() ||\n !(event instanceof ClipboardEvent) ||\n event.clipboardData == null\n ) {\n return false\n }\n const clipboardText = event.clipboardData.getData('text')\n if (!validateUrl(clipboardText)) {\n return false\n }\n // If we select nodes that are elements then avoid applying the link.\n if (!selection.getNodes().some((node) => $isElementNode(node))) {\n const linkFields: LinkFields = {\n doc: null,\n linkType: 'custom',\n newTab: false,\n url: clipboardText,\n }\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: linkFields,\n text: null,\n })\n event.preventDefault()\n return true\n }\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor])\n\n return null\n}\n"],"names":["useLexicalComposerContext","mergeRegister","$getSelection","$isElementNode","$isRangeSelection","COMMAND_PRIORITY_LOW","PASTE_COMMAND","useEffect","validateUrl","$toggleLink","LinkNode","TOGGLE_LINK_COMMAND","LinkPlugin","editor","hasNodes","Error","registerCommand","payload","event","selection","isCollapsed","ClipboardEvent","clipboardData","clipboardText","getData","getNodes","some","node","linkFields","doc","linkType","newTab","url","dispatchCommand","fields","text","preventDefault"],"mappings":"AAAA;AACA,SAASA,yBAAyB,QAAQ,2CAA0C;AACpF,SAASC,aAAa,QAAQ,iBAAgB;AAC9C,SACEC,aAAa,EACbC,cAAc,EACdC,iBAAiB,EACjBC,oBAAoB,EACpBC,aAAa,QACR,UAAS;AAChB,SAASC,SAAS,QAAQ,QAAO;AAOjC,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,WAAW,EAAEC,QAAQ,EAAEC,mBAAmB,QAAQ,6BAA4B;AAEvF,OAAO,MAAMC,aAA2C;IACtD,MAAM,CAACC,OAAO,GAAGb;IAEjBO,UAAU;QACR,IAAI,CAACM,OAAOC,QAAQ,CAAC;YAACJ;SAAS,GAAG;YAChC,MAAM,IAAIK,MAAM;QAClB;QACA,OAAOd,cACLY,OAAOG,eAAe,CACpBL,qBACA,CAACM;YACCR,YAAYQ;YACZ,OAAO;QACT,GACAZ,uBAEFQ,OAAOG,eAAe,CACpBV,eACA,CAACY;YACC,MAAMC,YAAYjB;YAClB,IACE,CAACE,kBAAkBe,cACnBA,UAAUC,WAAW,MACrB,CAAEF,CAAAA,iBAAiBG,cAAa,KAChCH,MAAMI,aAAa,IAAI,MACvB;gBACA,OAAO;YACT;YACA,MAAMC,gBAAgBL,MAAMI,aAAa,CAACE,OAAO,CAAC;YAClD,IAAI,CAAChB,YAAYe,gBAAgB;gBAC/B,OAAO;YACT;YACA,qEAAqE;YACrE,IAAI,CAACJ,UAAUM,QAAQ,GAAGC,IAAI,CAAC,CAACC,OAASxB,eAAewB,QAAQ;gBAC9D,MAAMC,aAAyB;oBAC7BC,KAAK;oBACLC,UAAU;oBACVC,QAAQ;oBACRC,KAAKT;gBACP;gBACAV,OAAOoB,eAAe,CAACtB,qBAAqB;oBAC1CuB,QAAQN;oBACRO,MAAM;gBACR;gBACAjB,MAAMkB,cAAc;gBACpB,OAAO;YACT;YACA,OAAO;QACT,GACA/B;IAGN,GAAG;QAACQ;KAAO;IAEX,OAAO;AACT,EAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BaseSelection, DOMConversionMap, EditorConfig, ElementNode as ElementNodeType, LexicalCommand, LexicalNode, NodeKey, RangeSelection } from 'lexical';
|
|
2
2
|
import { ElementNode } from 'lexical';
|
|
3
|
-
import type { LinkPayload } from '../plugins/floatingLinkEditor/types.js';
|
|
3
|
+
import type { LinkPayload } from '../client/plugins/floatingLinkEditor/types.js';
|
|
4
4
|
import type { LinkFields, SerializedLinkNode } from './types.js';
|
|
5
5
|
/** @noInheritDoc */
|
|
6
6
|
export declare class LinkNode extends ElementNode {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkNode.d.ts","sourceRoot":"","sources":["../../../../src/features/link/nodes/LinkNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAEhB,YAAY,EACZ,WAAW,IAAI,eAAe,EAC9B,cAAc,EACd,WAAW,EACX,OAAO,EACP,cAAc,EACf,MAAM,SAAS,CAAA;AAIhB,OAAO,EAML,WAAW,EAEZ,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"LinkNode.d.ts","sourceRoot":"","sources":["../../../../src/features/link/nodes/LinkNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAEhB,YAAY,EACZ,WAAW,IAAI,eAAe,EAC9B,cAAc,EACd,WAAW,EACX,OAAO,EACP,cAAc,EACf,MAAM,SAAS,CAAA;AAIhB,OAAO,EAML,WAAW,EAEZ,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAA;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIhE,oBAAoB;AACpB,qBAAa,QAAS,SAAQ,WAAW;IACvC,QAAQ,EAAE,UAAU,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;gBAEA,EACV,EAAE,EACF,MAKC,EACD,GAAG,GACJ,EAAE;QACD,MAAM,EAAE,UAAU,CAAA;QAClB,EAAE,EAAE,MAAM,CAAA;QACV,GAAG,CAAC,EAAE,OAAO,CAAA;KACd;IAMD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ;IAQtC,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,SAAS,IAAI,gBAAgB,GAAG,IAAI;IAS3C,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,kBAAkB,GAAG,QAAQ;IAyB/D,UAAU,IAAI,KAAK;IAInB,kBAAkB,IAAI,KAAK;IAI3B,mBAAmB,IAAI,KAAK;IAI5B,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,iBAAiB;IAiBlD,UAAU,IAAI,kBAAkB;IAchC,gBAAgB,CACd,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,OAAO,GAAG,MAAM,GAC5B,OAAO;IAeV,SAAS,IAAI,UAAU;IAIvB,KAAK,IAAI,MAAM;IAIf,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,UAAO,GAAG,eAAe,GAAG,IAAI;IAU1F,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAahC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKnC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO;CA8BxF;AAqBD,wBAAgB,eAAe,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,CAO7F;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,QAAQ,CAElF;AAED,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAAC,WAAW,GAAG,IAAI,CAC7B,CAAA;AAEtC,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CA6GtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/features/link/nodes/LinkNode.ts"],"sourcesContent":["import type {\n BaseSelection,\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n ElementNode as ElementNodeType,\n LexicalCommand,\n LexicalNode,\n NodeKey,\n RangeSelection,\n} from 'lexical'\n\nimport { addClassNamesToElement, isHTMLAnchorElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport {\n $applyNodeReplacement,\n $createTextNode,\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n ElementNode,\n createCommand,\n} from 'lexical'\n\nimport type { LinkPayload } from '../plugins/floatingLinkEditor/types.js'\nimport type { LinkFields, SerializedLinkNode } from './types.js'\n\nconst SUPPORTED_URL_PROTOCOLS = new Set(['http:', 'https:', 'mailto:', 'sms:', 'tel:'])\n\n/** @noInheritDoc */\nexport class LinkNode extends ElementNode {\n __fields: LinkFields\n __id: string\n\n constructor({\n id,\n fields = {\n doc: null,\n linkType: 'custom',\n newTab: false,\n url: undefined,\n },\n key,\n }: {\n fields: LinkFields\n id: string\n key?: NodeKey\n }) {\n super(key)\n this.__fields = fields\n this.__id = id\n }\n\n static clone(node: LinkNode): LinkNode {\n return new LinkNode({\n id: node.__id,\n fields: node.__fields,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'link'\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n a: (node: Node) => ({\n conversion: $convertAnchorElement,\n priority: 1,\n }),\n }\n }\n\n static importJSON(serializedNode: SerializedLinkNode): LinkNode {\n if (\n serializedNode.version === 1 &&\n typeof serializedNode.fields?.doc?.value === 'object' &&\n serializedNode.fields?.doc?.value?.id\n ) {\n serializedNode.fields.doc.value = serializedNode.fields.doc.value.id\n serializedNode.version = 2\n }\n\n if (serializedNode.version === 2 && !serializedNode.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n\n const node = $createLinkNode({\n id: serializedNode.id,\n fields: serializedNode.fields,\n })\n node.setFormat(serializedNode.format)\n node.setIndent(serializedNode.indent)\n node.setDirection(serializedNode.direction)\n return node\n }\n\n canBeEmpty(): false {\n return false\n }\n\n canInsertTextAfter(): false {\n return false\n }\n\n canInsertTextBefore(): false {\n return false\n }\n\n createDOM(config: EditorConfig): HTMLAnchorElement {\n const element = document.createElement('a')\n if (this.__fields?.linkType === 'custom') {\n element.href = this.sanitizeUrl(this.__fields.url ?? '')\n }\n if (this.__fields?.newTab ?? false) {\n element.target = '_blank'\n }\n\n if (this.__fields?.newTab === true && this.__fields?.linkType === 'custom') {\n element.rel = manageRel(element.rel, 'add', 'noopener')\n }\n\n addClassNamesToElement(element, config.theme.link)\n return element\n }\n\n exportJSON(): SerializedLinkNode {\n const returnObject: SerializedLinkNode = {\n ...super.exportJSON(),\n type: 'link',\n fields: this.getFields(),\n version: 3,\n }\n const id = this.getID()\n if (id) {\n returnObject.id = id\n }\n return returnObject\n }\n\n extractWithChild(\n child: LexicalNode,\n selection: BaseSelection,\n destination: 'clone' | 'html',\n ): boolean {\n if (!$isRangeSelection(selection)) {\n return false\n }\n\n const anchorNode = selection.anchor.getNode()\n const focusNode = selection.focus.getNode()\n\n return (\n this.isParentOf(anchorNode) &&\n this.isParentOf(focusNode) &&\n selection.getTextContent().length > 0\n )\n }\n\n getFields(): LinkFields {\n return this.getLatest().__fields\n }\n\n getID(): string {\n return this.getLatest().__id\n }\n\n insertNewAfter(selection: RangeSelection, restoreSelection = true): ElementNodeType | null {\n const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection)\n if ($isElementNode(element)) {\n const linkNode = $createLinkNode({ fields: this.__fields })\n element.append(linkNode)\n return linkNode\n }\n return null\n }\n\n isInline(): true {\n return true\n }\n\n sanitizeUrl(url: string): string {\n try {\n const parsedUrl = new URL(url)\n\n if (!SUPPORTED_URL_PROTOCOLS.has(parsedUrl.protocol)) {\n return 'about:blank'\n }\n } catch (e) {\n return 'https://'\n }\n return url\n }\n\n setFields(fields: LinkFields): void {\n const writable = this.getWritable()\n writable.__fields = fields\n }\n\n updateDOM(prevNode: LinkNode, anchor: HTMLAnchorElement, config: EditorConfig): boolean {\n const url = this.__fields?.url\n const newTab = this.__fields?.newTab\n if (url != null && url !== prevNode.__fields?.url && this.__fields?.linkType === 'custom') {\n anchor.href = url\n }\n if (this.__fields?.linkType === 'internal' && prevNode.__fields?.linkType === 'custom') {\n anchor.removeAttribute('href')\n }\n\n // TODO: not 100% sure why we're settign rel to '' - revisit\n // Start rel config here, then check newTab below\n if (anchor.rel == null) {\n anchor.rel = ''\n }\n\n if (newTab !== prevNode.__fields?.newTab) {\n if (newTab ?? false) {\n anchor.target = '_blank'\n if (this.__fields?.linkType === 'custom') {\n anchor.rel = manageRel(anchor.rel, 'add', 'noopener')\n }\n } else {\n anchor.removeAttribute('target')\n anchor.rel = manageRel(anchor.rel, 'remove', 'noopener')\n }\n }\n\n return false\n }\n}\n\nfunction $convertAnchorElement(domNode: Node): DOMConversionOutput {\n let node: LinkNode | null = null\n if (isHTMLAnchorElement(domNode)) {\n const content = domNode.textContent\n if (content !== null && content !== '') {\n node = $createLinkNode({\n id: new ObjectID.default().toHexString(),\n fields: {\n doc: null,\n linkType: 'custom',\n newTab: domNode.getAttribute('target') === '_blank',\n url: domNode.getAttribute('href') ?? '',\n },\n })\n }\n }\n return { node }\n}\n\nexport function $createLinkNode({ id, fields }: { fields: LinkFields; id?: string }): LinkNode {\n return $applyNodeReplacement(\n new LinkNode({\n id: id ?? new ObjectID.default().toHexString(),\n fields,\n }),\n )\n}\n\nexport function $isLinkNode(node: LexicalNode | null | undefined): node is LinkNode {\n return node instanceof LinkNode\n}\n\nexport const TOGGLE_LINK_COMMAND: LexicalCommand<LinkPayload | null> =\n createCommand('TOGGLE_LINK_COMMAND')\n\nexport function $toggleLink(payload: LinkPayload): void {\n const selection = $getSelection()\n\n if (!$isRangeSelection(selection) && !payload.selectedNodes.length) {\n return\n }\n const nodes = $isRangeSelection(selection) ? selection.extract() : payload.selectedNodes\n\n if (payload === null) {\n // Remove LinkNodes\n nodes.forEach((node) => {\n const parent = node.getParent()\n\n if ($isLinkNode(parent)) {\n const children = parent.getChildren()\n\n for (let i = 0; i < children.length; i += 1) {\n parent.insertBefore(children[i])\n }\n\n parent.remove()\n }\n })\n } else {\n // Add or merge LinkNodes\n if (nodes.length === 1) {\n const firstNode = nodes[0]\n // if the first node is a LinkNode or if its\n // parent is a LinkNode, we update the URL, target and rel.\n const linkNode: LinkNode | null = $isLinkNode(firstNode)\n ? firstNode\n : $getLinkAncestor(firstNode)\n if (linkNode !== null) {\n linkNode.setFields(payload.fields)\n\n if (payload.text != null && payload.text !== linkNode.getTextContent()) {\n // remove all children and add child with new textcontent:\n linkNode.append($createTextNode(payload.text))\n linkNode.getChildren().forEach((child) => {\n if (child !== linkNode.getLastChild()) {\n child.remove()\n }\n })\n }\n return\n }\n }\n\n let prevParent: ElementNodeType | LinkNode | null = null\n let linkNode: LinkNode | null = null\n\n nodes.forEach((node) => {\n const parent = node.getParent()\n\n if (parent === linkNode || parent === null || ($isElementNode(node) && !node.isInline())) {\n return\n }\n\n if ($isLinkNode(parent)) {\n linkNode = parent\n parent.setFields(payload.fields)\n if (payload.text != null && payload.text !== parent.getTextContent()) {\n // remove all children and add child with new textcontent:\n parent.append($createTextNode(payload.text))\n parent.getChildren().forEach((child) => {\n if (child !== parent.getLastChild()) {\n child.remove()\n }\n })\n }\n return\n }\n\n if (!parent.is(prevParent)) {\n prevParent = parent\n linkNode = $createLinkNode({ fields: payload.fields })\n\n if ($isLinkNode(parent)) {\n if (node.getPreviousSibling() === null) {\n parent.insertBefore(linkNode)\n } else {\n parent.insertAfter(linkNode)\n }\n } else {\n node.insertBefore(linkNode)\n }\n }\n\n if ($isLinkNode(node)) {\n if (node.is(linkNode)) {\n return\n }\n if (linkNode !== null) {\n const children = node.getChildren()\n\n for (let i = 0; i < children.length; i += 1) {\n linkNode.append(children[i])\n }\n }\n\n node.remove()\n return\n }\n\n if (linkNode !== null) {\n linkNode.append(node)\n }\n })\n }\n}\n\nfunction $getLinkAncestor(node: LexicalNode): LinkNode | null {\n return $getAncestor(node, (ancestor) => $isLinkNode(ancestor)) as LinkNode\n}\n\nfunction $getAncestor(\n node: LexicalNode,\n predicate: (ancestor: LexicalNode) => boolean,\n): LexicalNode | null {\n let parent: LexicalNode | null = node\n while (parent !== null && (parent = parent.getParent()) !== null && !predicate(parent));\n return parent\n}\n\nfunction manageRel(input: string, action: 'add' | 'remove', value: string): string {\n let result: string\n let mutableInput = `${input}`\n if (action === 'add') {\n // if we somehow got out of sync - clean up\n if (mutableInput.includes(value)) {\n const re = new RegExp(value, 'g')\n mutableInput = mutableInput.replace(re, '').trim()\n }\n mutableInput = mutableInput.trim()\n result = mutableInput.length === 0 ? `${value}` : `${mutableInput} ${value}`\n } else {\n const re = new RegExp(value, 'g')\n result = mutableInput.replace(re, '').trim()\n }\n return result\n}\n"],"names":["addClassNamesToElement","isHTMLAnchorElement","ObjectID","$applyNodeReplacement","$createTextNode","$getSelection","$isElementNode","$isRangeSelection","ElementNode","createCommand","SUPPORTED_URL_PROTOCOLS","Set","LinkNode","__fields","__id","constructor","id","fields","doc","linkType","newTab","url","undefined","key","clone","node","__key","getType","importDOM","a","conversion","$convertAnchorElement","priority","importJSON","serializedNode","version","value","default","toHexString","$createLinkNode","setFormat","format","setIndent","indent","setDirection","direction","canBeEmpty","canInsertTextAfter","canInsertTextBefore","createDOM","config","element","document","createElement","href","sanitizeUrl","target","rel","manageRel","theme","link","exportJSON","returnObject","type","getFields","getID","extractWithChild","child","selection","destination","anchorNode","anchor","getNode","focusNode","focus","isParentOf","getTextContent","length","getLatest","insertNewAfter","restoreSelection","getParentOrThrow","linkNode","append","isInline","parsedUrl","URL","has","protocol","e","setFields","writable","getWritable","updateDOM","prevNode","removeAttribute","domNode","content","textContent","getAttribute","$isLinkNode","TOGGLE_LINK_COMMAND","$toggleLink","payload","selectedNodes","nodes","extract","forEach","parent","getParent","children","getChildren","i","insertBefore","remove","firstNode","$getLinkAncestor","text","getLastChild","prevParent","is","getPreviousSibling","insertAfter","$getAncestor","ancestor","predicate","input","action","result","mutableInput","includes","re","RegExp","replace","trim"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/link/nodes/LinkNode.ts"],"sourcesContent":["import type {\n BaseSelection,\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n ElementNode as ElementNodeType,\n LexicalCommand,\n LexicalNode,\n NodeKey,\n RangeSelection,\n} from 'lexical'\n\nimport { addClassNamesToElement, isHTMLAnchorElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport {\n $applyNodeReplacement,\n $createTextNode,\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n ElementNode,\n createCommand,\n} from 'lexical'\n\nimport type { LinkPayload } from '../client/plugins/floatingLinkEditor/types.js'\nimport type { LinkFields, SerializedLinkNode } from './types.js'\n\nconst SUPPORTED_URL_PROTOCOLS = new Set(['http:', 'https:', 'mailto:', 'sms:', 'tel:'])\n\n/** @noInheritDoc */\nexport class LinkNode extends ElementNode {\n __fields: LinkFields\n __id: string\n\n constructor({\n id,\n fields = {\n doc: null,\n linkType: 'custom',\n newTab: false,\n url: undefined,\n },\n key,\n }: {\n fields: LinkFields\n id: string\n key?: NodeKey\n }) {\n super(key)\n this.__fields = fields\n this.__id = id\n }\n\n static clone(node: LinkNode): LinkNode {\n return new LinkNode({\n id: node.__id,\n fields: node.__fields,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'link'\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n a: (node: Node) => ({\n conversion: $convertAnchorElement,\n priority: 1,\n }),\n }\n }\n\n static importJSON(serializedNode: SerializedLinkNode): LinkNode {\n if (\n serializedNode.version === 1 &&\n typeof serializedNode.fields?.doc?.value === 'object' &&\n serializedNode.fields?.doc?.value?.id\n ) {\n serializedNode.fields.doc.value = serializedNode.fields.doc.value.id\n serializedNode.version = 2\n }\n\n if (serializedNode.version === 2 && !serializedNode.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n\n const node = $createLinkNode({\n id: serializedNode.id,\n fields: serializedNode.fields,\n })\n node.setFormat(serializedNode.format)\n node.setIndent(serializedNode.indent)\n node.setDirection(serializedNode.direction)\n return node\n }\n\n canBeEmpty(): false {\n return false\n }\n\n canInsertTextAfter(): false {\n return false\n }\n\n canInsertTextBefore(): false {\n return false\n }\n\n createDOM(config: EditorConfig): HTMLAnchorElement {\n const element = document.createElement('a')\n if (this.__fields?.linkType === 'custom') {\n element.href = this.sanitizeUrl(this.__fields.url ?? '')\n }\n if (this.__fields?.newTab ?? false) {\n element.target = '_blank'\n }\n\n if (this.__fields?.newTab === true && this.__fields?.linkType === 'custom') {\n element.rel = manageRel(element.rel, 'add', 'noopener')\n }\n\n addClassNamesToElement(element, config.theme.link)\n return element\n }\n\n exportJSON(): SerializedLinkNode {\n const returnObject: SerializedLinkNode = {\n ...super.exportJSON(),\n type: 'link',\n fields: this.getFields(),\n version: 3,\n }\n const id = this.getID()\n if (id) {\n returnObject.id = id\n }\n return returnObject\n }\n\n extractWithChild(\n child: LexicalNode,\n selection: BaseSelection,\n destination: 'clone' | 'html',\n ): boolean {\n if (!$isRangeSelection(selection)) {\n return false\n }\n\n const anchorNode = selection.anchor.getNode()\n const focusNode = selection.focus.getNode()\n\n return (\n this.isParentOf(anchorNode) &&\n this.isParentOf(focusNode) &&\n selection.getTextContent().length > 0\n )\n }\n\n getFields(): LinkFields {\n return this.getLatest().__fields\n }\n\n getID(): string {\n return this.getLatest().__id\n }\n\n insertNewAfter(selection: RangeSelection, restoreSelection = true): ElementNodeType | null {\n const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection)\n if ($isElementNode(element)) {\n const linkNode = $createLinkNode({ fields: this.__fields })\n element.append(linkNode)\n return linkNode\n }\n return null\n }\n\n isInline(): true {\n return true\n }\n\n sanitizeUrl(url: string): string {\n try {\n const parsedUrl = new URL(url)\n\n if (!SUPPORTED_URL_PROTOCOLS.has(parsedUrl.protocol)) {\n return 'about:blank'\n }\n } catch (e) {\n return 'https://'\n }\n return url\n }\n\n setFields(fields: LinkFields): void {\n const writable = this.getWritable()\n writable.__fields = fields\n }\n\n updateDOM(prevNode: LinkNode, anchor: HTMLAnchorElement, config: EditorConfig): boolean {\n const url = this.__fields?.url\n const newTab = this.__fields?.newTab\n if (url != null && url !== prevNode.__fields?.url && this.__fields?.linkType === 'custom') {\n anchor.href = url\n }\n if (this.__fields?.linkType === 'internal' && prevNode.__fields?.linkType === 'custom') {\n anchor.removeAttribute('href')\n }\n\n // TODO: not 100% sure why we're settign rel to '' - revisit\n // Start rel config here, then check newTab below\n if (anchor.rel == null) {\n anchor.rel = ''\n }\n\n if (newTab !== prevNode.__fields?.newTab) {\n if (newTab ?? false) {\n anchor.target = '_blank'\n if (this.__fields?.linkType === 'custom') {\n anchor.rel = manageRel(anchor.rel, 'add', 'noopener')\n }\n } else {\n anchor.removeAttribute('target')\n anchor.rel = manageRel(anchor.rel, 'remove', 'noopener')\n }\n }\n\n return false\n }\n}\n\nfunction $convertAnchorElement(domNode: Node): DOMConversionOutput {\n let node: LinkNode | null = null\n if (isHTMLAnchorElement(domNode)) {\n const content = domNode.textContent\n if (content !== null && content !== '') {\n node = $createLinkNode({\n id: new ObjectID.default().toHexString(),\n fields: {\n doc: null,\n linkType: 'custom',\n newTab: domNode.getAttribute('target') === '_blank',\n url: domNode.getAttribute('href') ?? '',\n },\n })\n }\n }\n return { node }\n}\n\nexport function $createLinkNode({ id, fields }: { fields: LinkFields; id?: string }): LinkNode {\n return $applyNodeReplacement(\n new LinkNode({\n id: id ?? new ObjectID.default().toHexString(),\n fields,\n }),\n )\n}\n\nexport function $isLinkNode(node: LexicalNode | null | undefined): node is LinkNode {\n return node instanceof LinkNode\n}\n\nexport const TOGGLE_LINK_COMMAND: LexicalCommand<LinkPayload | null> =\n createCommand('TOGGLE_LINK_COMMAND')\n\nexport function $toggleLink(payload: LinkPayload): void {\n const selection = $getSelection()\n\n if (!$isRangeSelection(selection) && !payload.selectedNodes.length) {\n return\n }\n const nodes = $isRangeSelection(selection) ? selection.extract() : payload.selectedNodes\n\n if (payload === null) {\n // Remove LinkNodes\n nodes.forEach((node) => {\n const parent = node.getParent()\n\n if ($isLinkNode(parent)) {\n const children = parent.getChildren()\n\n for (let i = 0; i < children.length; i += 1) {\n parent.insertBefore(children[i])\n }\n\n parent.remove()\n }\n })\n } else {\n // Add or merge LinkNodes\n if (nodes.length === 1) {\n const firstNode = nodes[0]\n // if the first node is a LinkNode or if its\n // parent is a LinkNode, we update the URL, target and rel.\n const linkNode: LinkNode | null = $isLinkNode(firstNode)\n ? firstNode\n : $getLinkAncestor(firstNode)\n if (linkNode !== null) {\n linkNode.setFields(payload.fields)\n\n if (payload.text != null && payload.text !== linkNode.getTextContent()) {\n // remove all children and add child with new textcontent:\n linkNode.append($createTextNode(payload.text))\n linkNode.getChildren().forEach((child) => {\n if (child !== linkNode.getLastChild()) {\n child.remove()\n }\n })\n }\n return\n }\n }\n\n let prevParent: ElementNodeType | LinkNode | null = null\n let linkNode: LinkNode | null = null\n\n nodes.forEach((node) => {\n const parent = node.getParent()\n\n if (parent === linkNode || parent === null || ($isElementNode(node) && !node.isInline())) {\n return\n }\n\n if ($isLinkNode(parent)) {\n linkNode = parent\n parent.setFields(payload.fields)\n if (payload.text != null && payload.text !== parent.getTextContent()) {\n // remove all children and add child with new textcontent:\n parent.append($createTextNode(payload.text))\n parent.getChildren().forEach((child) => {\n if (child !== parent.getLastChild()) {\n child.remove()\n }\n })\n }\n return\n }\n\n if (!parent.is(prevParent)) {\n prevParent = parent\n linkNode = $createLinkNode({ fields: payload.fields })\n\n if ($isLinkNode(parent)) {\n if (node.getPreviousSibling() === null) {\n parent.insertBefore(linkNode)\n } else {\n parent.insertAfter(linkNode)\n }\n } else {\n node.insertBefore(linkNode)\n }\n }\n\n if ($isLinkNode(node)) {\n if (node.is(linkNode)) {\n return\n }\n if (linkNode !== null) {\n const children = node.getChildren()\n\n for (let i = 0; i < children.length; i += 1) {\n linkNode.append(children[i])\n }\n }\n\n node.remove()\n return\n }\n\n if (linkNode !== null) {\n linkNode.append(node)\n }\n })\n }\n}\n\nfunction $getLinkAncestor(node: LexicalNode): LinkNode | null {\n return $getAncestor(node, (ancestor) => $isLinkNode(ancestor)) as LinkNode\n}\n\nfunction $getAncestor(\n node: LexicalNode,\n predicate: (ancestor: LexicalNode) => boolean,\n): LexicalNode | null {\n let parent: LexicalNode | null = node\n while (parent !== null && (parent = parent.getParent()) !== null && !predicate(parent));\n return parent\n}\n\nfunction manageRel(input: string, action: 'add' | 'remove', value: string): string {\n let result: string\n let mutableInput = `${input}`\n if (action === 'add') {\n // if we somehow got out of sync - clean up\n if (mutableInput.includes(value)) {\n const re = new RegExp(value, 'g')\n mutableInput = mutableInput.replace(re, '').trim()\n }\n mutableInput = mutableInput.trim()\n result = mutableInput.length === 0 ? `${value}` : `${mutableInput} ${value}`\n } else {\n const re = new RegExp(value, 'g')\n result = mutableInput.replace(re, '').trim()\n }\n return result\n}\n"],"names":["addClassNamesToElement","isHTMLAnchorElement","ObjectID","$applyNodeReplacement","$createTextNode","$getSelection","$isElementNode","$isRangeSelection","ElementNode","createCommand","SUPPORTED_URL_PROTOCOLS","Set","LinkNode","__fields","__id","constructor","id","fields","doc","linkType","newTab","url","undefined","key","clone","node","__key","getType","importDOM","a","conversion","$convertAnchorElement","priority","importJSON","serializedNode","version","value","default","toHexString","$createLinkNode","setFormat","format","setIndent","indent","setDirection","direction","canBeEmpty","canInsertTextAfter","canInsertTextBefore","createDOM","config","element","document","createElement","href","sanitizeUrl","target","rel","manageRel","theme","link","exportJSON","returnObject","type","getFields","getID","extractWithChild","child","selection","destination","anchorNode","anchor","getNode","focusNode","focus","isParentOf","getTextContent","length","getLatest","insertNewAfter","restoreSelection","getParentOrThrow","linkNode","append","isInline","parsedUrl","URL","has","protocol","e","setFields","writable","getWritable","updateDOM","prevNode","removeAttribute","domNode","content","textContent","getAttribute","$isLinkNode","TOGGLE_LINK_COMMAND","$toggleLink","payload","selectedNodes","nodes","extract","forEach","parent","getParent","children","getChildren","i","insertBefore","remove","firstNode","$getLinkAncestor","text","getLastChild","prevParent","is","getPreviousSibling","insertAfter","$getAncestor","ancestor","predicate","input","action","result","mutableInput","includes","re","RegExp","replace","trim"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseFields.d.ts","sourceRoot":"","sources":["../../../../src/features/link/server/baseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAElB,eAAe,EAGhB,MAAM,SAAS,CAAA;AAIhB,eAAO,MAAM,aAAa,WAChB,eAAe,sBACH,cAAc,EAAE,uBACf,cAAc,EAAE,aAC1B,MAAM,KAChB,kBAAkB,EAsGpB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/link/server/baseFields.ts"],"sourcesContent":["import type {\n CollectionSlug,\n FieldAffectingData,\n RadioField,\n SanitizedConfig,\n TextField,\n User,\n} from 'payload'\n\nimport { validateUrl } from '../../../lexical/utils/url.js'\n\nexport const getBaseFields = (\n config: SanitizedConfig,\n enabledCollections: CollectionSlug[],\n disabledCollections: CollectionSlug[],\n maxDepth?: number,\n): FieldAffectingData[] => {\n let enabledRelations: CollectionSlug[]\n\n /**\n * Figure out which relations should be enabled (enabledRelations) based on a collection's admin.enableRichTextLink property,\n * or the Link Feature's enabledCollections and disabledCollections properties which override it.\n */\n if (enabledCollections) {\n enabledRelations = enabledCollections\n } else if (disabledCollections) {\n enabledRelations = config.collections\n .filter(({ slug }) => !disabledCollections.includes(slug))\n .map(({ slug }) => slug)\n } else {\n enabledRelations = config.collections\n .filter(({ admin: { enableRichTextLink, hidden } }) => {\n if (typeof hidden !== 'function' && hidden) {\n return false\n }\n return enableRichTextLink\n })\n .map(({ slug }) => slug)\n }\n\n const baseFields: FieldAffectingData[] = [\n {\n name: 'text',\n type: 'text',\n label: ({ t }) => t('fields:textToDisplay'),\n required: true,\n },\n {\n name: 'linkType',\n type: 'radio',\n admin: {\n description: ({ t }) => t('fields:chooseBetweenCustomTextOrDocument'),\n },\n defaultValue: 'custom',\n label: ({ t }) => t('fields:linkType'),\n options: [\n {\n label: ({ t }) => t('fields:customURL'),\n value: 'custom',\n },\n ],\n required: true,\n } as RadioField,\n {\n name: 'url',\n type: 'text',\n label: ({ t }) => t('fields:enterURL'),\n required: true,\n validate: (value: string) => {\n if (!validateUrl(value)) {\n return 'Invalid URL'\n }\n },\n },\n ]\n\n // Only display internal link-specific fields / options / conditions if there are enabled relations\n if (enabledRelations?.length) {\n ;(baseFields[1] as RadioField).options.push({\n label: ({ t }) => t('fields:internalLink'),\n value: 'internal',\n })\n ;(baseFields[2] as TextField).admin = {\n condition: ({ linkType }) => linkType !== 'internal',\n }\n\n baseFields.push({\n name: 'doc',\n admin: {\n condition: ({ linkType }) => {\n return linkType === 'internal'\n },\n },\n // when admin.hidden is a function we need to dynamically call hidden with the user to know if the collection should be shown\n type: 'relationship',\n filterOptions:\n !enabledCollections && !disabledCollections\n ? ({ relationTo, user }) => {\n const hidden = config.collections.find(({ slug }) => slug === relationTo).admin.hidden\n if (typeof hidden === 'function' && hidden({ user } as { user: User })) {\n return false\n }\n }\n : null,\n label: ({ t }) => t('fields:chooseDocumentToLink'),\n maxDepth,\n relationTo: enabledRelations,\n required: true,\n })\n }\n\n baseFields.push({\n name: 'newTab',\n type: 'checkbox',\n label: ({ t }) => t('fields:openInNewTab'),\n })\n\n return baseFields\n}\n"],"names":["validateUrl","getBaseFields","config","enabledCollections","disabledCollections","maxDepth","enabledRelations","collections","filter","slug","includes","map","admin","enableRichTextLink","hidden","baseFields","name","type","label","t","required","description","defaultValue","options","value","validate","length","push","condition","linkType","filterOptions","relationTo","user","find"],"mappings":"AASA,SAASA,WAAW,QAAQ,gCAA+B;AAE3D,OAAO,MAAMC,gBAAgB,CAC3BC,QACAC,oBACAC,qBACAC;IAEA,IAAIC;IAEJ;;;GAGC,GACD,IAAIH,oBAAoB;QACtBG,mBAAmBH;IACrB,OAAO,IAAIC,qBAAqB;QAC9BE,mBAAmBJ,OAAOK,WAAW,CAClCC,MAAM,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAK,CAACL,oBAAoBM,QAAQ,CAACD,OACnDE,GAAG,CAAC,CAAC,EAAEF,IAAI,EAAE,GAAKA;IACvB,OAAO;QACLH,mBAAmBJ,OAAOK,WAAW,CAClCC,MAAM,CAAC,CAAC,EAAEI,OAAO,EAAEC,kBAAkB,EAAEC,MAAM,EAAE,EAAE;YAChD,IAAI,OAAOA,WAAW,cAAcA,QAAQ;gBAC1C,OAAO;YACT;YACA,OAAOD;QACT,GACCF,GAAG,CAAC,CAAC,EAAEF,IAAI,EAAE,GAAKA;IACvB;IAEA,MAAMM,aAAmC;QACvC;YACEC,MAAM;YACNC,MAAM;YACNC,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;YACpBC,UAAU;QACZ;QACA;YACEJ,MAAM;YACNC,MAAM;YACNL,OAAO;gBACLS,aAAa,CAAC,EAAEF,CAAC,EAAE,GAAKA,EAAE;YAC5B;YACAG,cAAc;YACdJ,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;YACpBI,SAAS;gBACP;oBACEL,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;oBACpBK,OAAO;gBACT;aACD;YACDJ,UAAU;QACZ;QACA;YACEJ,MAAM;YACNC,MAAM;YACNC,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;YACpBC,UAAU;YACVK,UAAU,CAACD;gBACT,IAAI,CAACxB,YAAYwB,QAAQ;oBACvB,OAAO;gBACT;YACF;QACF;KACD;IAED,mGAAmG;IACnG,IAAIlB,kBAAkBoB,QAAQ;QAC1BX,UAAU,CAAC,EAAE,CAAgBQ,OAAO,CAACI,IAAI,CAAC;YAC1CT,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;YACpBK,OAAO;QACT;QACET,UAAU,CAAC,EAAE,CAAeH,KAAK,GAAG;YACpCgB,WAAW,CAAC,EAAEC,QAAQ,EAAE,GAAKA,aAAa;QAC5C;QAEAd,WAAWY,IAAI,CAAC;YACdX,MAAM;YACNJ,OAAO;gBACLgB,WAAW,CAAC,EAAEC,QAAQ,EAAE;oBACtB,OAAOA,aAAa;gBACtB;YACF;YACA,6HAA6H;YAC7HZ,MAAM;YACNa,eACE,CAAC3B,sBAAsB,CAACC,sBACpB,CAAC,EAAE2B,UAAU,EAAEC,IAAI,EAAE;gBACnB,MAAMlB,SAASZ,OAAOK,WAAW,CAAC0B,IAAI,CAAC,CAAC,EAAExB,IAAI,EAAE,GAAKA,SAASsB,YAAYnB,KAAK,CAACE,MAAM;gBACtF,IAAI,OAAOA,WAAW,cAAcA,OAAO;oBAAEkB;gBAAK,IAAsB;oBACtE,OAAO;gBACT;YACF,IACA;YACNd,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;YACpBd;YACA0B,YAAYzB;YACZc,UAAU;QACZ;IACF;IAEAL,WAAWY,IAAI,CAAC;QACdX,MAAM;QACNC,MAAM;QACNC,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;IACtB;IAEA,OAAOJ;AACT,EAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PopulationPromise } from '../../typesServer.js';
|
|
2
|
+
import type { SerializedLinkNode } from '../nodes/types.js';
|
|
3
|
+
import type { LinkFeatureServerProps } from './index.js';
|
|
4
|
+
export declare const linkPopulationPromiseHOC: (props: LinkFeatureServerProps) => PopulationPromise<SerializedLinkNode>;
|
|
5
|
+
//# sourceMappingURL=graphQLPopulationPromise.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphQLPopulationPromise.d.ts","sourceRoot":"","sources":["../../../../src/features/link/server/graphQLPopulationPromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAIxD,eAAO,MAAM,wBAAwB,UAC5B,sBAAsB,KAC5B,iBAAiB,CAAC,kBAAkB,CA2CtC,CAAA"}
|