@payloadcms/richtext-lexical 0.1.0-beta.0
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/LICENSE.md +22 -0
- package/dist/cell/index.d.ts +6 -0
- package/dist/cell/index.d.ts.map +1 -0
- package/dist/cell/index.js +86 -0
- package/dist/field/Field.d.ts +6 -0
- package/dist/field/Field.d.ts.map +1 -0
- package/dist/field/Field.js +138 -0
- package/dist/field/features/BlockQuote/index.d.ts +3 -0
- package/dist/field/features/BlockQuote/index.d.ts.map +1 -0
- package/dist/field/features/BlockQuote/index.js +82 -0
- package/dist/field/features/BlockQuote/markdownTransformer.d.ts +3 -0
- package/dist/field/features/BlockQuote/markdownTransformer.d.ts.map +1 -0
- package/dist/field/features/BlockQuote/markdownTransformer.js +50 -0
- package/dist/field/features/Blocks/component/FormSavePlugin.d.ts +12 -0
- package/dist/field/features/Blocks/component/FormSavePlugin.d.ts.map +1 -0
- package/dist/field/features/Blocks/component/FormSavePlugin.js +33 -0
- package/dist/field/features/Blocks/component/index.d.ts +14 -0
- package/dist/field/features/Blocks/component/index.d.ts.map +1 -0
- package/dist/field/features/Blocks/component/index.js +176 -0
- package/dist/field/features/Blocks/drawer/index.d.ts +10 -0
- package/dist/field/features/Blocks/drawer/index.d.ts.map +1 -0
- package/dist/field/features/Blocks/drawer/index.js +140 -0
- package/dist/field/features/Blocks/index.d.ts +8 -0
- package/dist/field/features/Blocks/index.d.ts.map +1 -0
- package/dist/field/features/Blocks/index.js +80 -0
- package/dist/field/features/Blocks/nodes/BlocksNode.d.ts +38 -0
- package/dist/field/features/Blocks/nodes/BlocksNode.d.ts.map +1 -0
- package/dist/field/features/Blocks/nodes/BlocksNode.js +104 -0
- package/dist/field/features/Blocks/plugin/index.d.ts +7 -0
- package/dist/field/features/Blocks/plugin/index.d.ts.map +1 -0
- package/dist/field/features/Blocks/plugin/index.js +86 -0
- package/dist/field/features/Heading/index.d.ts +8 -0
- package/dist/field/features/Heading/index.d.ts.map +1 -0
- package/dist/field/features/Heading/index.js +104 -0
- package/dist/field/features/Heading/markdownTransformer.d.ts +3 -0
- package/dist/field/features/Heading/markdownTransformer.d.ts.map +1 -0
- package/dist/field/features/Heading/markdownTransformer.js +32 -0
- package/dist/field/features/Link/afterReadPromise.d.ts +5 -0
- package/dist/field/features/Link/afterReadPromise.d.ts.map +1 -0
- package/dist/field/features/Link/afterReadPromise.js +51 -0
- package/dist/field/features/Link/drawer/baseFields.d.ts +4 -0
- package/dist/field/features/Link/drawer/baseFields.d.ts.map +1 -0
- package/dist/field/features/Link/drawer/baseFields.js +91 -0
- package/dist/field/features/Link/drawer/index.d.ts +5 -0
- package/dist/field/features/Link/drawer/index.d.ts.map +1 -0
- package/dist/field/features/Link/drawer/index.js +40 -0
- package/dist/field/features/Link/drawer/types.d.ts +8 -0
- package/dist/field/features/Link/drawer/types.d.ts.map +1 -0
- package/dist/field/features/Link/drawer/types.js +6 -0
- package/dist/field/features/Link/index.d.ts +14 -0
- package/dist/field/features/Link/index.d.ts.map +1 -0
- package/dist/field/features/Link/index.js +117 -0
- package/dist/field/features/Link/nodes/AutoLinkNode.d.ts +16 -0
- package/dist/field/features/Link/nodes/AutoLinkNode.d.ts.map +1 -0
- package/dist/field/features/Link/nodes/AutoLinkNode.js +75 -0
- package/dist/field/features/Link/nodes/LinkNode.d.ts +55 -0
- package/dist/field/features/Link/nodes/LinkNode.d.ts.map +1 -0
- package/dist/field/features/Link/nodes/LinkNode.js +368 -0
- package/dist/field/features/Link/plugins/autoLink/index.d.ts +26 -0
- package/dist/field/features/Link/plugins/autoLink/index.d.ts.map +1 -0
- package/dist/field/features/Link/plugins/autoLink/index.js +230 -0
- package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.d.ts +9 -0
- package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -0
- package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.js +301 -0
- package/dist/field/features/Link/plugins/floatingLinkEditor/index.d.ts +7 -0
- package/dist/field/features/Link/plugins/floatingLinkEditor/index.d.ts.map +1 -0
- package/dist/field/features/Link/plugins/floatingLinkEditor/index.js +61 -0
- package/dist/field/features/Link/plugins/floatingLinkEditor/types.d.ts +13 -0
- package/dist/field/features/Link/plugins/floatingLinkEditor/types.d.ts.map +1 -0
- package/dist/field/features/Link/plugins/floatingLinkEditor/types.js +6 -0
- package/dist/field/features/Link/plugins/floatingLinkEditor/utilities.d.ts +12 -0
- package/dist/field/features/Link/plugins/floatingLinkEditor/utilities.d.ts.map +1 -0
- package/dist/field/features/Link/plugins/floatingLinkEditor/utilities.js +44 -0
- package/dist/field/features/Link/plugins/link/index.d.ts +9 -0
- package/dist/field/features/Link/plugins/link/index.d.ts.map +1 -0
- package/dist/field/features/Link/plugins/link/index.js +74 -0
- package/dist/field/features/Paragraph/index.d.ts +3 -0
- package/dist/field/features/Paragraph/index.d.ts.map +1 -0
- package/dist/field/features/Paragraph/index.js +74 -0
- package/dist/field/features/Relationship/afterReadPromise.d.ts +4 -0
- package/dist/field/features/Relationship/afterReadPromise.d.ts.map +1 -0
- package/dist/field/features/Relationship/afterReadPromise.js +34 -0
- package/dist/field/features/Relationship/drawer/index.d.ts +14 -0
- package/dist/field/features/Relationship/drawer/index.d.ts.map +1 -0
- package/dist/field/features/Relationship/drawer/index.js +135 -0
- package/dist/field/features/Relationship/index.d.ts +4 -0
- package/dist/field/features/Relationship/index.d.ts.map +1 -0
- package/dist/field/features/Relationship/index.js +72 -0
- package/dist/field/features/Relationship/nodes/RelationshipNode.d.ts +34 -0
- package/dist/field/features/Relationship/nodes/RelationshipNode.d.ts.map +1 -0
- package/dist/field/features/Relationship/nodes/RelationshipNode.js +165 -0
- package/dist/field/features/Relationship/nodes/components/RelationshipComponent.d.ts +14 -0
- package/dist/field/features/Relationship/nodes/components/RelationshipComponent.d.ts.map +1 -0
- package/dist/field/features/Relationship/nodes/components/RelationshipComponent.js +158 -0
- package/dist/field/features/Relationship/plugins/index.d.ts +6 -0
- package/dist/field/features/Relationship/plugins/index.d.ts.map +1 -0
- package/dist/field/features/Relationship/plugins/index.js +88 -0
- package/dist/field/features/Relationship/utils/EnabledRelationshipsCondition.d.ts +3 -0
- package/dist/field/features/Relationship/utils/EnabledRelationshipsCondition.d.ts.map +1 -0
- package/dist/field/features/Relationship/utils/EnabledRelationshipsCondition.js +75 -0
- package/dist/field/features/Upload/afterReadPromise.d.ts +5 -0
- package/dist/field/features/Upload/afterReadPromise.d.ts.map +1 -0
- package/dist/field/features/Upload/afterReadPromise.js +51 -0
- package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.d.ts +12 -0
- package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.d.ts.map +1 -0
- package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.js +129 -0
- package/dist/field/features/Upload/component/index.d.ts +10 -0
- package/dist/field/features/Upload/component/index.d.ts.map +1 -0
- package/dist/field/features/Upload/component/index.js +188 -0
- package/dist/field/features/Upload/drawer/index.d.ts +14 -0
- package/dist/field/features/Upload/drawer/index.d.ts.map +1 -0
- package/dist/field/features/Upload/drawer/index.js +131 -0
- package/dist/field/features/Upload/index.d.ts +12 -0
- package/dist/field/features/Upload/index.d.ts.map +1 -0
- package/dist/field/features/Upload/index.js +70 -0
- package/dist/field/features/Upload/nodes/UploadNode.d.ts +44 -0
- package/dist/field/features/Upload/nodes/UploadNode.d.ts.map +1 -0
- package/dist/field/features/Upload/nodes/UploadNode.js +153 -0
- package/dist/field/features/Upload/plugin/index.d.ts +7 -0
- package/dist/field/features/Upload/plugin/index.d.ts.map +1 -0
- package/dist/field/features/Upload/plugin/index.js +97 -0
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts +4 -0
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts.map +1 -0
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +23 -0
- package/dist/field/features/align/index.d.ts +4 -0
- package/dist/field/features/align/index.d.ts.map +1 -0
- package/dist/field/features/align/index.js +67 -0
- package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.d.ts +4 -0
- package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.d.ts.map +1 -0
- package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +21 -0
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts +4 -0
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts.map +1 -0
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +23 -0
- package/dist/field/features/debug/TreeView/index.d.ts +4 -0
- package/dist/field/features/debug/TreeView/index.d.ts.map +1 -0
- package/dist/field/features/debug/TreeView/index.js +30 -0
- package/dist/field/features/debug/TreeView/plugin.d.ts +3 -0
- package/dist/field/features/debug/TreeView/plugin.d.ts.map +1 -0
- package/dist/field/features/debug/TreeView/plugin.js +66 -0
- package/dist/field/features/format/Bold/index.d.ts +3 -0
- package/dist/field/features/format/Bold/index.d.ts.map +1 -0
- package/dist/field/features/format/Bold/index.js +57 -0
- package/dist/field/features/format/Bold/markdownTransformers.d.ts +6 -0
- package/dist/field/features/format/Bold/markdownTransformers.d.ts.map +1 -0
- package/dist/field/features/format/Bold/markdownTransformers.js +58 -0
- package/dist/field/features/format/InlineCode/index.d.ts +3 -0
- package/dist/field/features/format/InlineCode/index.d.ts.map +1 -0
- package/dist/field/features/format/InlineCode/index.js +49 -0
- package/dist/field/features/format/InlineCode/markdownTransformers.d.ts +3 -0
- package/dist/field/features/format/InlineCode/markdownTransformers.d.ts.map +1 -0
- package/dist/field/features/format/InlineCode/markdownTransformers.js +19 -0
- package/dist/field/features/format/Italic/index.d.ts +3 -0
- package/dist/field/features/format/Italic/index.d.ts.map +1 -0
- package/dist/field/features/format/Italic/index.js +50 -0
- package/dist/field/features/format/Italic/markdownTransformers.d.ts +4 -0
- package/dist/field/features/format/Italic/markdownTransformers.d.ts.map +1 -0
- package/dist/field/features/format/Italic/markdownTransformers.js +35 -0
- package/dist/field/features/format/common/floatingSelectToolbarSection.d.ts +4 -0
- package/dist/field/features/format/common/floatingSelectToolbarSection.d.ts.map +1 -0
- package/dist/field/features/format/common/floatingSelectToolbarSection.js +21 -0
- package/dist/field/features/format/strikethrough/index.d.ts +3 -0
- package/dist/field/features/format/strikethrough/index.d.ts.map +1 -0
- package/dist/field/features/format/strikethrough/index.js +49 -0
- package/dist/field/features/format/strikethrough/markdownTransformers.d.ts +3 -0
- package/dist/field/features/format/strikethrough/markdownTransformers.d.ts.map +1 -0
- package/dist/field/features/format/strikethrough/markdownTransformers.js +19 -0
- package/dist/field/features/format/subscript/index.d.ts +3 -0
- package/dist/field/features/format/subscript/index.d.ts.map +1 -0
- package/dist/field/features/format/subscript/index.js +45 -0
- package/dist/field/features/format/superscript/index.d.ts +3 -0
- package/dist/field/features/format/superscript/index.d.ts.map +1 -0
- package/dist/field/features/format/superscript/index.js +45 -0
- package/dist/field/features/format/underline/index.d.ts +3 -0
- package/dist/field/features/format/underline/index.d.ts.map +1 -0
- package/dist/field/features/format/underline/index.js +45 -0
- package/dist/field/features/indent/floatingSelectToolbarIndentSection.d.ts +4 -0
- package/dist/field/features/indent/floatingSelectToolbarIndentSection.d.ts.map +1 -0
- package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +21 -0
- package/dist/field/features/indent/index.d.ts +4 -0
- package/dist/field/features/indent/index.d.ts.map +1 -0
- package/dist/field/features/indent/index.js +67 -0
- package/dist/field/features/lists/CheckList/index.d.ts +3 -0
- package/dist/field/features/lists/CheckList/index.d.ts.map +1 -0
- package/dist/field/features/lists/CheckList/index.js +67 -0
- package/dist/field/features/lists/CheckList/markdownTransformers.d.ts +3 -0
- package/dist/field/features/lists/CheckList/markdownTransformers.d.ts.map +1 -0
- package/dist/field/features/lists/CheckList/markdownTransformers.js +26 -0
- package/dist/field/features/lists/OrderedList/index.d.ts +3 -0
- package/dist/field/features/lists/OrderedList/index.d.ts.map +1 -0
- package/dist/field/features/lists/OrderedList/index.js +65 -0
- package/dist/field/features/lists/OrderedList/markdownTransformer.d.ts +3 -0
- package/dist/field/features/lists/OrderedList/markdownTransformer.d.ts.map +1 -0
- package/dist/field/features/lists/OrderedList/markdownTransformer.js +26 -0
- package/dist/field/features/lists/UnorderedList/index.d.ts +3 -0
- package/dist/field/features/lists/UnorderedList/index.d.ts.map +1 -0
- package/dist/field/features/lists/UnorderedList/index.js +65 -0
- package/dist/field/features/lists/UnorderedList/markdownTransformer.d.ts +3 -0
- package/dist/field/features/lists/UnorderedList/markdownTransformer.d.ts.map +1 -0
- package/dist/field/features/lists/UnorderedList/markdownTransformer.js +26 -0
- package/dist/field/features/lists/common/markdown.d.ts +6 -0
- package/dist/field/features/lists/common/markdown.d.ts.map +1 -0
- package/dist/field/features/lists/common/markdown.js +76 -0
- package/dist/field/features/types.d.ts +95 -0
- package/dist/field/features/types.d.ts.map +1 -0
- package/dist/field/features/types.js +6 -0
- package/dist/field/index.d.ts +4 -0
- package/dist/field/index.d.ts.map +1 -0
- package/dist/field/index.js +60 -0
- package/dist/field/lexical/LexicalEditor.d.ts +5 -0
- package/dist/field/lexical/LexicalEditor.d.ts.map +1 -0
- package/dist/field/lexical/LexicalEditor.js +134 -0
- package/dist/field/lexical/LexicalProvider.d.ts +16 -0
- package/dist/field/lexical/LexicalProvider.d.ts.map +1 -0
- package/dist/field/lexical/LexicalProvider.js +89 -0
- package/dist/field/lexical/config/EditorConfigProvider.d.ts +16 -0
- package/dist/field/lexical/config/EditorConfigProvider.d.ts.map +1 -0
- package/dist/field/lexical/config/EditorConfigProvider.js +96 -0
- package/dist/field/lexical/config/default.d.ts +4 -0
- package/dist/field/lexical/config/default.d.ts.map +1 -0
- package/dist/field/lexical/config/default.js +67 -0
- package/dist/field/lexical/config/loader.d.ts +7 -0
- package/dist/field/lexical/config/loader.d.ts.map +1 -0
- package/dist/field/lexical/config/loader.js +133 -0
- package/dist/field/lexical/config/sanitize.d.ts +5 -0
- package/dist/field/lexical/config/sanitize.d.ts.map +1 -0
- package/dist/field/lexical/config/sanitize.js +138 -0
- package/dist/field/lexical/config/types.d.ts +12 -0
- package/dist/field/lexical/config/types.d.ts.map +1 -0
- package/dist/field/lexical/config/types.js +6 -0
- package/dist/field/lexical/nodes/index.d.ts +6 -0
- package/dist/field/lexical/nodes/index.d.ts.map +1 -0
- package/dist/field/lexical/nodes/index.js +15 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.d.ts +8 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.d.ts.map +1 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +135 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts +17 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts.map +1 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +289 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts +9 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts.map +1 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +36 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.d.ts +6 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.d.ts.map +1 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +272 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/types.d.ts +40 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/types.d.ts.map +1 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js +6 -0
- package/dist/field/lexical/plugins/MarkdownShortcut/index.d.ts +10 -0
- package/dist/field/lexical/plugins/MarkdownShortcut/index.d.ts.map +1 -0
- package/dist/field/lexical/plugins/MarkdownShortcut/index.js +66 -0
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +63 -0
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -0
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +457 -0
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +26 -0
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -0
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +281 -0
- package/dist/field/lexical/plugins/SlashMenu/defaultGroups.d.ts +2 -0
- package/dist/field/lexical/plugins/SlashMenu/defaultGroups.d.ts.map +1 -0
- package/dist/field/lexical/plugins/SlashMenu/defaultGroups.js +3 -0
- package/dist/field/lexical/plugins/SlashMenu/index.d.ts +4 -0
- package/dist/field/lexical/plugins/SlashMenu/index.d.ts.map +1 -0
- package/dist/field/lexical/plugins/SlashMenu/index.js +187 -0
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts +6 -0
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -0
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +264 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts +2 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +24 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.d.ts +2 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.d.ts.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +24 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.d.ts +27 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.d.ts.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js +160 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.d.ts +3 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.d.ts.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +37 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts +6 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +346 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.d.ts +3 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.d.ts.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +59 -0
- package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.d.ts +5 -0
- package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.d.ts.map +1 -0
- package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.js +24 -0
- package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.d.ts +3 -0
- package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.d.ts.map +1 -0
- package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +16 -0
- package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.d.ts +2 -0
- package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.d.ts.map +1 -0
- package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.js +15 -0
- package/dist/field/lexical/plugins/handles/utils/setHandlePosition.d.ts +2 -0
- package/dist/field/lexical/plugins/handles/utils/setHandlePosition.d.ts.map +1 -0
- package/dist/field/lexical/plugins/handles/utils/setHandlePosition.js +27 -0
- package/dist/field/lexical/theme/EditorTheme.d.ts +4 -0
- package/dist/field/lexical/theme/EditorTheme.d.ts.map +1 -0
- package/dist/field/lexical/theme/EditorTheme.js +115 -0
- package/dist/field/lexical/ui/ContentEditable.d.ts +6 -0
- package/dist/field/lexical/ui/ContentEditable.d.ts.map +1 -0
- package/dist/field/lexical/ui/ContentEditable.js +59 -0
- package/dist/field/lexical/ui/icons/AI/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/AI/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/AI/index.js +42 -0
- package/dist/field/lexical/ui/icons/AlignCenter/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/AlignCenter/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/AlignCenter/index.js +40 -0
- package/dist/field/lexical/ui/icons/AlignLeft/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/AlignLeft/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/AlignLeft/index.js +40 -0
- package/dist/field/lexical/ui/icons/AlignRight/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/AlignRight/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/AlignRight/index.js +40 -0
- package/dist/field/lexical/ui/icons/Block/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/Block/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/Block/index.js +49 -0
- package/dist/field/lexical/ui/icons/Blockquote/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/Blockquote/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/Blockquote/index.js +31 -0
- package/dist/field/lexical/ui/icons/Bold/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/Bold/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/Bold/index.js +31 -0
- package/dist/field/lexical/ui/icons/Checklist/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/Checklist/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/Checklist/index.js +39 -0
- package/dist/field/lexical/ui/icons/Code/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/Code/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/Code/index.js +34 -0
- package/dist/field/lexical/ui/icons/CodeBlock/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/CodeBlock/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/CodeBlock/index.js +34 -0
- package/dist/field/lexical/ui/icons/H1/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/H1/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/H1/index.js +31 -0
- package/dist/field/lexical/ui/icons/H2/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/H2/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/H2/index.js +31 -0
- package/dist/field/lexical/ui/icons/H3/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/H3/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/H3/index.js +31 -0
- package/dist/field/lexical/ui/icons/H4/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/H4/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/H4/index.js +31 -0
- package/dist/field/lexical/ui/icons/H5/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/H5/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/H5/index.js +31 -0
- package/dist/field/lexical/ui/icons/H6/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/H6/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/H6/index.js +31 -0
- package/dist/field/lexical/ui/icons/IndentDecrease/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/IndentDecrease/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/IndentDecrease/index.js +43 -0
- package/dist/field/lexical/ui/icons/IndentIncrease/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/IndentIncrease/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/IndentIncrease/index.js +43 -0
- package/dist/field/lexical/ui/icons/Italic/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/Italic/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/Italic/index.js +31 -0
- package/dist/field/lexical/ui/icons/Link/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/Link/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/Link/index.js +42 -0
- package/dist/field/lexical/ui/icons/OrderedList/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/OrderedList/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/OrderedList/index.js +46 -0
- package/dist/field/lexical/ui/icons/Relationship/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/Relationship/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/Relationship/index.js +42 -0
- package/dist/field/lexical/ui/icons/Strikethrough/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/Strikethrough/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/Strikethrough/index.js +34 -0
- package/dist/field/lexical/ui/icons/Subscript/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/Subscript/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/Subscript/index.js +31 -0
- package/dist/field/lexical/ui/icons/Superscript/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/Superscript/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/Superscript/index.js +31 -0
- package/dist/field/lexical/ui/icons/Text/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/Text/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/Text/index.js +31 -0
- package/dist/field/lexical/ui/icons/Underline/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/Underline/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/Underline/index.js +34 -0
- package/dist/field/lexical/ui/icons/UnorderedList/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/UnorderedList/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/UnorderedList/index.js +61 -0
- package/dist/field/lexical/ui/icons/Upload/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/Upload/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/Upload/index.js +43 -0
- package/dist/field/lexical/utils/canUseDOM.d.ts +2 -0
- package/dist/field/lexical/utils/canUseDOM.d.ts.map +1 -0
- package/dist/field/lexical/utils/canUseDOM.js +13 -0
- package/dist/field/lexical/utils/cloneDeep.d.ts +2 -0
- package/dist/field/lexical/utils/cloneDeep.d.ts.map +1 -0
- package/dist/field/lexical/utils/cloneDeep.js +39 -0
- package/dist/field/lexical/utils/getDOMRangeRect.d.ts +2 -0
- package/dist/field/lexical/utils/getDOMRangeRect.d.ts.map +1 -0
- package/dist/field/lexical/utils/getDOMRangeRect.js +26 -0
- package/dist/field/lexical/utils/getSelectedNode.d.ts +3 -0
- package/dist/field/lexical/utils/getSelectedNode.d.ts.map +1 -0
- package/dist/field/lexical/utils/getSelectedNode.js +33 -0
- package/dist/field/lexical/utils/guard.d.ts +9 -0
- package/dist/field/lexical/utils/guard.d.ts.map +1 -0
- package/dist/field/lexical/utils/guard.js +21 -0
- package/dist/field/lexical/utils/invariant.d.ts +2 -0
- package/dist/field/lexical/utils/invariant.d.ts.map +1 -0
- package/dist/field/lexical/utils/invariant.js +22 -0
- package/dist/field/lexical/utils/isMobileWidth.d.ts +9 -0
- package/dist/field/lexical/utils/isMobileWidth.d.ts.map +1 -0
- package/dist/field/lexical/utils/isMobileWidth.js +9 -0
- package/dist/field/lexical/utils/joinClasses.d.ts +9 -0
- package/dist/field/lexical/utils/joinClasses.d.ts.map +1 -0
- package/dist/field/lexical/utils/joinClasses.js +21 -0
- package/dist/field/lexical/utils/markdown/createBlockNode.d.ts +4 -0
- package/dist/field/lexical/utils/markdown/createBlockNode.d.ts.map +1 -0
- package/dist/field/lexical/utils/markdown/createBlockNode.js +20 -0
- package/dist/field/lexical/utils/point.d.ts +22 -0
- package/dist/field/lexical/utils/point.d.ts.map +1 -0
- package/dist/field/lexical/utils/point.js +61 -0
- package/dist/field/lexical/utils/rect.d.ts +54 -0
- package/dist/field/lexical/utils/rect.d.ts.map +1 -0
- package/dist/field/lexical/utils/rect.js +154 -0
- package/dist/field/lexical/utils/setFloatingElemPosition.d.ts +2 -0
- package/dist/field/lexical/utils/setFloatingElemPosition.d.ts.map +1 -0
- package/dist/field/lexical/utils/setFloatingElemPosition.js +55 -0
- package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.d.ts +2 -0
- package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.d.ts.map +1 -0
- package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.js +43 -0
- package/dist/field/lexical/utils/swipe.d.ts +12 -0
- package/dist/field/lexical/utils/swipe.d.ts.map +1 -0
- package/dist/field/lexical/utils/swipe.js +130 -0
- package/dist/field/lexical/utils/url.d.ts +10 -0
- package/dist/field/lexical/utils/url.d.ts.map +1 -0
- package/dist/field/lexical/utils/url.js +40 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +170 -0
- package/dist/populate/defaultValue.d.ts +26 -0
- package/dist/populate/defaultValue.d.ts.map +1 -0
- package/dist/populate/defaultValue.js +41 -0
- package/dist/populate/populate.d.ts +20 -0
- package/dist/populate/populate.d.ts.map +1 -0
- package/dist/populate/populate.js +31 -0
- package/dist/populate/recurseNestedFields.d.ts +16 -0
- package/dist/populate/recurseNestedFields.d.ts.map +1 -0
- package/dist/populate/recurseNestedFields.js +182 -0
- package/dist/populate/richTextRelationshipPromise.d.ts +22 -0
- package/dist/populate/richTextRelationshipPromise.d.ts.map +1 -0
- package/dist/populate/richTextRelationshipPromise.js +71 -0
- package/dist/populate/validation.d.ts +4 -0
- package/dist/populate/validation.d.ts.map +1 -0
- package/dist/populate/validation.js +21 -0
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/package.json +60 -0
- package/src/index.ts +92 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*/ "use strict";
|
|
8
|
+
Object.defineProperty(exports, "__esModule", {
|
|
9
|
+
value: true
|
|
10
|
+
});
|
|
11
|
+
function _export(target, all) {
|
|
12
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: all[name]
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
_export(exports, {
|
|
18
|
+
createLinkMatcherWithRegExp: function() {
|
|
19
|
+
return createLinkMatcherWithRegExp;
|
|
20
|
+
},
|
|
21
|
+
AutoLinkPlugin: function() {
|
|
22
|
+
return AutoLinkPlugin;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
const _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
26
|
+
const _utils = require("@lexical/utils");
|
|
27
|
+
const _lexical = require("lexical");
|
|
28
|
+
const _react = require("react");
|
|
29
|
+
const _invariant = require("../../../../lexical/utils/invariant");
|
|
30
|
+
const _AutoLinkNode = require("../../nodes/AutoLinkNode");
|
|
31
|
+
const _LinkNode = require("../../nodes/LinkNode");
|
|
32
|
+
function createLinkMatcherWithRegExp(regExp, urlTransformer = (text)=>text) {
|
|
33
|
+
return (text)=>{
|
|
34
|
+
const match = regExp.exec(text);
|
|
35
|
+
if (match === null) return null;
|
|
36
|
+
return {
|
|
37
|
+
index: match.index,
|
|
38
|
+
length: match[0].length,
|
|
39
|
+
text: match[0],
|
|
40
|
+
url: urlTransformer(text)
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function findFirstMatch(text, matchers) {
|
|
45
|
+
for(let i = 0; i < matchers.length; i++){
|
|
46
|
+
const match = matchers[i](text);
|
|
47
|
+
if (match != null) {
|
|
48
|
+
return match;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const PUNCTUATION_OR_SPACE = /[.,;\s]/;
|
|
54
|
+
function isSeparator(char) {
|
|
55
|
+
return PUNCTUATION_OR_SPACE.test(char);
|
|
56
|
+
}
|
|
57
|
+
function endsWithSeparator(textContent) {
|
|
58
|
+
return isSeparator(textContent[textContent.length - 1]);
|
|
59
|
+
}
|
|
60
|
+
function startsWithSeparator(textContent) {
|
|
61
|
+
return isSeparator(textContent[0]);
|
|
62
|
+
}
|
|
63
|
+
function isPreviousNodeValid(node) {
|
|
64
|
+
let previousNode = node.getPreviousSibling();
|
|
65
|
+
if ((0, _lexical.$isElementNode)(previousNode)) {
|
|
66
|
+
previousNode = previousNode.getLastDescendant();
|
|
67
|
+
}
|
|
68
|
+
return previousNode === null || (0, _lexical.$isLineBreakNode)(previousNode) || (0, _lexical.$isTextNode)(previousNode) && endsWithSeparator(previousNode.getTextContent());
|
|
69
|
+
}
|
|
70
|
+
function isNextNodeValid(node) {
|
|
71
|
+
let nextNode = node.getNextSibling();
|
|
72
|
+
if ((0, _lexical.$isElementNode)(nextNode)) {
|
|
73
|
+
nextNode = nextNode.getFirstDescendant();
|
|
74
|
+
}
|
|
75
|
+
return nextNode === null || (0, _lexical.$isLineBreakNode)(nextNode) || (0, _lexical.$isTextNode)(nextNode) && startsWithSeparator(nextNode.getTextContent());
|
|
76
|
+
}
|
|
77
|
+
function isContentAroundIsValid(matchStart, matchEnd, text, node) {
|
|
78
|
+
const contentBeforeIsValid = matchStart > 0 ? isSeparator(text[matchStart - 1]) : isPreviousNodeValid(node);
|
|
79
|
+
if (!contentBeforeIsValid) {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
const contentAfterIsValid = matchEnd < text.length ? isSeparator(text[matchEnd]) : isNextNodeValid(node);
|
|
83
|
+
return contentAfterIsValid;
|
|
84
|
+
}
|
|
85
|
+
function handleLinkCreation(node, matchers, onChange) {
|
|
86
|
+
const nodeText = node.getTextContent();
|
|
87
|
+
let text = nodeText;
|
|
88
|
+
let invalidMatchEnd = 0;
|
|
89
|
+
let remainingTextNode = node;
|
|
90
|
+
let match;
|
|
91
|
+
while((match = findFirstMatch(text, matchers)) != null && match !== null){
|
|
92
|
+
const matchStart = match.index;
|
|
93
|
+
const matchLength = match.length;
|
|
94
|
+
const matchEnd = matchStart + matchLength;
|
|
95
|
+
const isValid = isContentAroundIsValid(invalidMatchEnd + matchStart, invalidMatchEnd + matchEnd, nodeText, node);
|
|
96
|
+
if (isValid) {
|
|
97
|
+
let linkTextNode;
|
|
98
|
+
if (invalidMatchEnd + matchStart === 0) {
|
|
99
|
+
[linkTextNode, remainingTextNode] = remainingTextNode.splitText(invalidMatchEnd + matchLength);
|
|
100
|
+
} else {
|
|
101
|
+
[, linkTextNode, remainingTextNode] = remainingTextNode.splitText(invalidMatchEnd + matchStart, invalidMatchEnd + matchStart + matchLength);
|
|
102
|
+
}
|
|
103
|
+
const fields = {
|
|
104
|
+
linkType: 'custom',
|
|
105
|
+
url: match.url,
|
|
106
|
+
...match.attributes
|
|
107
|
+
};
|
|
108
|
+
const linkNode = (0, _AutoLinkNode.$createAutoLinkNode)({
|
|
109
|
+
fields
|
|
110
|
+
});
|
|
111
|
+
const textNode = (0, _lexical.$createTextNode)(match.text);
|
|
112
|
+
textNode.setFormat(linkTextNode.getFormat());
|
|
113
|
+
textNode.setDetail(linkTextNode.getDetail());
|
|
114
|
+
linkNode.append(textNode);
|
|
115
|
+
linkTextNode.replace(linkNode);
|
|
116
|
+
onChange(match.url, null);
|
|
117
|
+
invalidMatchEnd = 0;
|
|
118
|
+
} else {
|
|
119
|
+
invalidMatchEnd += matchEnd;
|
|
120
|
+
}
|
|
121
|
+
text = text.substring(matchEnd);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function handleLinkEdit(linkNode, matchers, onChange) {
|
|
125
|
+
// Check children are simple text
|
|
126
|
+
const children = linkNode.getChildren();
|
|
127
|
+
const childrenLength = children.length;
|
|
128
|
+
for(let i = 0; i < childrenLength; i++){
|
|
129
|
+
const child = children[i];
|
|
130
|
+
if (!(0, _lexical.$isTextNode)(child) || !child.isSimpleText()) {
|
|
131
|
+
replaceWithChildren(linkNode);
|
|
132
|
+
onChange(null, linkNode.getFields()?.url ?? null);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Check text content fully matches
|
|
137
|
+
const text = linkNode.getTextContent();
|
|
138
|
+
const match = findFirstMatch(text, matchers);
|
|
139
|
+
if (match === null || match.text !== text) {
|
|
140
|
+
replaceWithChildren(linkNode);
|
|
141
|
+
onChange(null, linkNode.getFields()?.url ?? null);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
// Check neighbors
|
|
145
|
+
if (!isPreviousNodeValid(linkNode) || !isNextNodeValid(linkNode)) {
|
|
146
|
+
replaceWithChildren(linkNode);
|
|
147
|
+
onChange(null, linkNode.getFields()?.url ?? null);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
const url = linkNode.getFields()?.url;
|
|
151
|
+
if (url !== match?.url) {
|
|
152
|
+
const flds = linkNode.getFields();
|
|
153
|
+
flds.url = match?.url;
|
|
154
|
+
linkNode.setFields(flds);
|
|
155
|
+
onChange(match.url, url ?? null);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// Bad neighbours are edits in neighbor nodes that make AutoLinks incompatible.
|
|
159
|
+
// Given the creation preconditions, these can only be simple text nodes.
|
|
160
|
+
function handleBadNeighbors(textNode, matchers, onChange) {
|
|
161
|
+
const previousSibling = textNode.getPreviousSibling();
|
|
162
|
+
const nextSibling = textNode.getNextSibling();
|
|
163
|
+
const text = textNode.getTextContent();
|
|
164
|
+
if ((0, _AutoLinkNode.$isAutoLinkNode)(previousSibling) && !startsWithSeparator(text)) {
|
|
165
|
+
previousSibling.append(textNode);
|
|
166
|
+
handleLinkEdit(previousSibling, matchers, onChange);
|
|
167
|
+
onChange(null, previousSibling.getFields()?.url ?? null);
|
|
168
|
+
}
|
|
169
|
+
if ((0, _AutoLinkNode.$isAutoLinkNode)(nextSibling) && !endsWithSeparator(text)) {
|
|
170
|
+
replaceWithChildren(nextSibling);
|
|
171
|
+
handleLinkEdit(nextSibling, matchers, onChange);
|
|
172
|
+
onChange(null, nextSibling.getFields()?.url ?? null);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function replaceWithChildren(node) {
|
|
176
|
+
const children = node.getChildren();
|
|
177
|
+
const childrenLength = children.length;
|
|
178
|
+
for(let j = childrenLength - 1; j >= 0; j--){
|
|
179
|
+
node.insertAfter(children[j]);
|
|
180
|
+
}
|
|
181
|
+
node.remove();
|
|
182
|
+
return children.map((child)=>child.getLatest());
|
|
183
|
+
}
|
|
184
|
+
function useAutoLink(editor, matchers, onChange) {
|
|
185
|
+
(0, _react.useEffect)(()=>{
|
|
186
|
+
if (!editor.hasNodes([
|
|
187
|
+
_AutoLinkNode.AutoLinkNode
|
|
188
|
+
])) {
|
|
189
|
+
(0, _invariant.invariant)(false, 'LexicalAutoLinkPlugin: AutoLinkNode not registered on editor');
|
|
190
|
+
}
|
|
191
|
+
const onChangeWrapped = (url, prevUrl)=>{
|
|
192
|
+
if (onChange != null) {
|
|
193
|
+
onChange(url, prevUrl);
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
return (0, _utils.mergeRegister)(editor.registerNodeTransform(_lexical.TextNode, (textNode)=>{
|
|
197
|
+
const parent = textNode.getParentOrThrow();
|
|
198
|
+
const previous = textNode.getPreviousSibling();
|
|
199
|
+
if ((0, _AutoLinkNode.$isAutoLinkNode)(parent)) {
|
|
200
|
+
handleLinkEdit(parent, matchers, onChangeWrapped);
|
|
201
|
+
} else if (!(0, _LinkNode.$isLinkNode)(parent)) {
|
|
202
|
+
if (textNode.isSimpleText() && (startsWithSeparator(textNode.getTextContent()) || !(0, _AutoLinkNode.$isAutoLinkNode)(previous))) {
|
|
203
|
+
handleLinkCreation(textNode, matchers, onChangeWrapped);
|
|
204
|
+
}
|
|
205
|
+
handleBadNeighbors(textNode, matchers, onChangeWrapped);
|
|
206
|
+
}
|
|
207
|
+
}));
|
|
208
|
+
}, [
|
|
209
|
+
editor,
|
|
210
|
+
matchers,
|
|
211
|
+
onChange
|
|
212
|
+
]);
|
|
213
|
+
}
|
|
214
|
+
const URL_REGEX = /((https?:\/\/(www\.)?)|(www\.))[-\w@:%.+~#=]{1,256}\.[a-zA-Z\d()]{1,6}\b([-\w()@:%+.~#?&/=]*)/;
|
|
215
|
+
const EMAIL_REGEX = /(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])|(([a-zA-Z\-\d]+\.)+[a-zA-Z]{2,}))/;
|
|
216
|
+
const MATCHERS = [
|
|
217
|
+
createLinkMatcherWithRegExp(URL_REGEX, (text)=>{
|
|
218
|
+
return text.startsWith('http') ? text : `https://${text}`;
|
|
219
|
+
}),
|
|
220
|
+
createLinkMatcherWithRegExp(EMAIL_REGEX, (text)=>{
|
|
221
|
+
return `mailto:${text}`;
|
|
222
|
+
})
|
|
223
|
+
];
|
|
224
|
+
function AutoLinkPlugin() {
|
|
225
|
+
const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
|
|
226
|
+
useAutoLink(editor, MATCHERS);
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL3BsdWdpbnMvYXV0b0xpbmsvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBFbGVtZW50Tm9kZSwgTGV4aWNhbEVkaXRvciwgTGV4aWNhbE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IG1lcmdlUmVnaXN0ZXIgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7ICRjcmVhdGVUZXh0Tm9kZSwgJGlzRWxlbWVudE5vZGUsICRpc0xpbmVCcmVha05vZGUsICRpc1RleHROb2RlLCBUZXh0Tm9kZSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgaW52YXJpYW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbGV4aWNhbC91dGlscy9pbnZhcmlhbnQnXG5pbXBvcnQgeyAkY3JlYXRlQXV0b0xpbmtOb2RlLCAkaXNBdXRvTGlua05vZGUsIEF1dG9MaW5rTm9kZSB9IGZyb20gJy4uLy4uL25vZGVzL0F1dG9MaW5rTm9kZSdcbmltcG9ydCB7ICRpc0xpbmtOb2RlLCB0eXBlIExpbmtGaWVsZHMgfSBmcm9tICcuLi8uLi9ub2Rlcy9MaW5rTm9kZSdcblxudHlwZSBDaGFuZ2VIYW5kbGVyID0gKHVybDogbnVsbCB8IHN0cmluZywgcHJldlVybDogbnVsbCB8IHN0cmluZykgPT4gdm9pZFxuXG5pbnRlcmZhY2UgTGlua01hdGNoZXJSZXN1bHQge1xuICBmaWVsZHM/OiBMaW5rRmllbGRzXG4gIGluZGV4OiBudW1iZXJcbiAgbGVuZ3RoOiBudW1iZXJcbiAgdGV4dDogc3RyaW5nXG4gIHVybDogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIExpbmtNYXRjaGVyID0gKHRleHQ6IHN0cmluZykgPT4gTGlua01hdGNoZXJSZXN1bHQgfCBudWxsXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMaW5rTWF0Y2hlcldpdGhSZWdFeHAoXG4gIHJlZ0V4cDogUmVnRXhwLFxuICB1cmxUcmFuc2Zvcm1lcjogKHRleHQ6IHN0cmluZykgPT4gc3RyaW5nID0gKHRleHQpID0+IHRleHQsXG4pIHtcbiAgcmV0dXJuICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBtYXRjaCA9IHJlZ0V4cC5leGVjKHRleHQpXG4gICAgaWYgKG1hdGNoID09PSBudWxsKSByZXR1cm4gbnVsbFxuICAgIHJldHVybiB7XG4gICAgICBpbmRleDogbWF0Y2guaW5kZXgsXG4gICAgICBsZW5ndGg6IG1hdGNoWzBdLmxlbmd0aCxcbiAgICAgIHRleHQ6IG1hdGNoWzBdLFxuICAgICAgdXJsOiB1cmxUcmFuc2Zvcm1lcih0ZXh0KSxcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZEZpcnN0TWF0Y2godGV4dDogc3RyaW5nLCBtYXRjaGVyczogTGlua01hdGNoZXJbXSk6IExpbmtNYXRjaGVyUmVzdWx0IHwgbnVsbCB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWF0Y2hlcnMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBtYXRjaCA9IG1hdGNoZXJzW2ldKHRleHQpXG5cbiAgICBpZiAobWF0Y2ggIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG1hdGNoXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuY29uc3QgUFVOQ1RVQVRJT05fT1JfU1BBQ0UgPSAvWy4sO1xcc10vXG5cbmZ1bmN0aW9uIGlzU2VwYXJhdG9yKGNoYXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gUFVOQ1RVQVRJT05fT1JfU1BBQ0UudGVzdChjaGFyKVxufVxuXG5mdW5jdGlvbiBlbmRzV2l0aFNlcGFyYXRvcih0ZXh0Q29udGVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc1NlcGFyYXRvcih0ZXh0Q29udGVudFt0ZXh0Q29udGVudC5sZW5ndGggLSAxXSlcbn1cblxuZnVuY3Rpb24gc3RhcnRzV2l0aFNlcGFyYXRvcih0ZXh0Q29udGVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc1NlcGFyYXRvcih0ZXh0Q29udGVudFswXSlcbn1cblxuZnVuY3Rpb24gaXNQcmV2aW91c05vZGVWYWxpZChub2RlOiBMZXhpY2FsTm9kZSk6IGJvb2xlYW4ge1xuICBsZXQgcHJldmlvdXNOb2RlID0gbm9kZS5nZXRQcmV2aW91c1NpYmxpbmcoKVxuICBpZiAoJGlzRWxlbWVudE5vZGUocHJldmlvdXNOb2RlKSkge1xuICAgIHByZXZpb3VzTm9kZSA9IHByZXZpb3VzTm9kZS5nZXRMYXN0RGVzY2VuZGFudCgpXG4gIH1cbiAgcmV0dXJuIChcbiAgICBwcmV2aW91c05vZGUgPT09IG51bGwgfHxcbiAgICAkaXNMaW5lQnJlYWtOb2RlKHByZXZpb3VzTm9kZSkgfHxcbiAgICAoJGlzVGV4dE5vZGUocHJldmlvdXNOb2RlKSAmJiBlbmRzV2l0aFNlcGFyYXRvcihwcmV2aW91c05vZGUuZ2V0VGV4dENvbnRlbnQoKSkpXG4gIClcbn1cblxuZnVuY3Rpb24gaXNOZXh0Tm9kZVZhbGlkKG5vZGU6IExleGljYWxOb2RlKTogYm9vbGVhbiB7XG4gIGxldCBuZXh0Tm9kZSA9IG5vZGUuZ2V0TmV4dFNpYmxpbmcoKVxuICBpZiAoJGlzRWxlbWVudE5vZGUobmV4dE5vZGUpKSB7XG4gICAgbmV4dE5vZGUgPSBuZXh0Tm9kZS5nZXRGaXJzdERlc2NlbmRhbnQoKVxuICB9XG4gIHJldHVybiAoXG4gICAgbmV4dE5vZGUgPT09IG51bGwgfHxcbiAgICAkaXNMaW5lQnJlYWtOb2RlKG5leHROb2RlKSB8fFxuICAgICgkaXNUZXh0Tm9kZShuZXh0Tm9kZSkgJiYgc3RhcnRzV2l0aFNlcGFyYXRvcihuZXh0Tm9kZS5nZXRUZXh0Q29udGVudCgpKSlcbiAgKVxufVxuXG5mdW5jdGlvbiBpc0NvbnRlbnRBcm91bmRJc1ZhbGlkKFxuICBtYXRjaFN0YXJ0OiBudW1iZXIsXG4gIG1hdGNoRW5kOiBudW1iZXIsXG4gIHRleHQ6IHN0cmluZyxcbiAgbm9kZTogVGV4dE5vZGUsXG4pOiBib29sZWFuIHtcbiAgY29uc3QgY29udGVudEJlZm9yZUlzVmFsaWQgPVxuICAgIG1hdGNoU3RhcnQgPiAwID8gaXNTZXBhcmF0b3IodGV4dFttYXRjaFN0YXJ0IC0gMV0pIDogaXNQcmV2aW91c05vZGVWYWxpZChub2RlKVxuICBpZiAoIWNvbnRlbnRCZWZvcmVJc1ZhbGlkKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjb25zdCBjb250ZW50QWZ0ZXJJc1ZhbGlkID1cbiAgICBtYXRjaEVuZCA8IHRleHQubGVuZ3RoID8gaXNTZXBhcmF0b3IodGV4dFttYXRjaEVuZF0pIDogaXNOZXh0Tm9kZVZhbGlkKG5vZGUpXG4gIHJldHVybiBjb250ZW50QWZ0ZXJJc1ZhbGlkXG59XG5cbmZ1bmN0aW9uIGhhbmRsZUxpbmtDcmVhdGlvbihcbiAgbm9kZTogVGV4dE5vZGUsXG4gIG1hdGNoZXJzOiBMaW5rTWF0Y2hlcltdLFxuICBvbkNoYW5nZTogQ2hhbmdlSGFuZGxlcixcbik6IHZvaWQge1xuICBjb25zdCBub2RlVGV4dCA9IG5vZGUuZ2V0VGV4dENvbnRlbnQoKVxuICBsZXQgdGV4dCA9IG5vZGVUZXh0XG4gIGxldCBpbnZhbGlkTWF0Y2hFbmQgPSAwXG4gIGxldCByZW1haW5pbmdUZXh0Tm9kZSA9IG5vZGVcbiAgbGV0IG1hdGNoXG5cbiAgd2hpbGUgKChtYXRjaCA9IGZpbmRGaXJzdE1hdGNoKHRleHQsIG1hdGNoZXJzKSkgIT0gbnVsbCAmJiBtYXRjaCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1hdGNoU3RhcnQ6IG51bWJlciA9IG1hdGNoLmluZGV4XG4gICAgY29uc3QgbWF0Y2hMZW5ndGg6IG51bWJlciA9IG1hdGNoLmxlbmd0aFxuICAgIGNvbnN0IG1hdGNoRW5kID0gbWF0Y2hTdGFydCArIG1hdGNoTGVuZ3RoXG4gICAgY29uc3QgaXNWYWxpZCA9IGlzQ29udGVudEFyb3VuZElzVmFsaWQoXG4gICAgICBpbnZhbGlkTWF0Y2hFbmQgKyBtYXRjaFN0YXJ0LFxuICAgICAgaW52YWxpZE1hdGNoRW5kICsgbWF0Y2hFbmQsXG4gICAgICBub2RlVGV4dCxcbiAgICAgIG5vZGUsXG4gICAgKVxuXG4gICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgIGxldCBsaW5rVGV4dE5vZGVcbiAgICAgIGlmIChpbnZhbGlkTWF0Y2hFbmQgKyBtYXRjaFN0YXJ0ID09PSAwKSB7XG4gICAgICAgIDtbbGlua1RleHROb2RlLCByZW1haW5pbmdUZXh0Tm9kZV0gPSByZW1haW5pbmdUZXh0Tm9kZS5zcGxpdFRleHQoXG4gICAgICAgICAgaW52YWxpZE1hdGNoRW5kICsgbWF0Y2hMZW5ndGgsXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIDtbLCBsaW5rVGV4dE5vZGUsIHJlbWFpbmluZ1RleHROb2RlXSA9IHJlbWFpbmluZ1RleHROb2RlLnNwbGl0VGV4dChcbiAgICAgICAgICBpbnZhbGlkTWF0Y2hFbmQgKyBtYXRjaFN0YXJ0LFxuICAgICAgICAgIGludmFsaWRNYXRjaEVuZCArIG1hdGNoU3RhcnQgKyBtYXRjaExlbmd0aCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgY29uc3QgZmllbGRzOiBMaW5rRmllbGRzID0ge1xuICAgICAgICBsaW5rVHlwZTogJ2N1c3RvbScsXG4gICAgICAgIHVybDogbWF0Y2gudXJsLFxuICAgICAgICAuLi5tYXRjaC5hdHRyaWJ1dGVzLFxuICAgICAgfVxuXG4gICAgICBjb25zdCBsaW5rTm9kZSA9ICRjcmVhdGVBdXRvTGlua05vZGUoeyBmaWVsZHMgfSlcbiAgICAgIGNvbnN0IHRleHROb2RlID0gJGNyZWF0ZVRleHROb2RlKG1hdGNoLnRleHQpXG4gICAgICB0ZXh0Tm9kZS5zZXRGb3JtYXQobGlua1RleHROb2RlLmdldEZvcm1hdCgpKVxuICAgICAgdGV4dE5vZGUuc2V0RGV0YWlsKGxpbmtUZXh0Tm9kZS5nZXREZXRhaWwoKSlcbiAgICAgIGxpbmtOb2RlLmFwcGVuZCh0ZXh0Tm9kZSlcbiAgICAgIGxpbmtUZXh0Tm9kZS5yZXBsYWNlKGxpbmtOb2RlKVxuICAgICAgb25DaGFuZ2UobWF0Y2gudXJsLCBudWxsKVxuICAgICAgaW52YWxpZE1hdGNoRW5kID0gMFxuICAgIH0gZWxzZSB7XG4gICAgICBpbnZhbGlkTWF0Y2hFbmQgKz0gbWF0Y2hFbmRcbiAgICB9XG5cbiAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcobWF0Y2hFbmQpXG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlTGlua0VkaXQoXG4gIGxpbmtOb2RlOiBBdXRvTGlua05vZGUsXG4gIG1hdGNoZXJzOiBMaW5rTWF0Y2hlcltdLFxuICBvbkNoYW5nZTogQ2hhbmdlSGFuZGxlcixcbik6IHZvaWQge1xuICAvLyBDaGVjayBjaGlsZHJlbiBhcmUgc2ltcGxlIHRleHRcbiAgY29uc3QgY2hpbGRyZW4gPSBsaW5rTm9kZS5nZXRDaGlsZHJlbigpXG4gIGNvbnN0IGNoaWxkcmVuTGVuZ3RoID0gY2hpbGRyZW4ubGVuZ3RoXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW5baV1cbiAgICBpZiAoISRpc1RleHROb2RlKGNoaWxkKSB8fCAhY2hpbGQuaXNTaW1wbGVUZXh0KCkpIHtcbiAgICAgIHJlcGxhY2VXaXRoQ2hpbGRyZW4obGlua05vZGUpXG4gICAgICBvbkNoYW5nZShudWxsLCBsaW5rTm9kZS5nZXRGaWVsZHMoKT8udXJsID8/IG51bGwpXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayB0ZXh0IGNvbnRlbnQgZnVsbHkgbWF0Y2hlc1xuICBjb25zdCB0ZXh0ID0gbGlua05vZGUuZ2V0VGV4dENvbnRlbnQoKVxuICBjb25zdCBtYXRjaCA9IGZpbmRGaXJzdE1hdGNoKHRleHQsIG1hdGNoZXJzKVxuICBpZiAobWF0Y2ggPT09IG51bGwgfHwgbWF0Y2gudGV4dCAhPT0gdGV4dCkge1xuICAgIHJlcGxhY2VXaXRoQ2hpbGRyZW4obGlua05vZGUpXG4gICAgb25DaGFuZ2UobnVsbCwgbGlua05vZGUuZ2V0RmllbGRzKCk/LnVybCA/PyBudWxsKVxuICAgIHJldHVyblxuICB9XG5cbiAgLy8gQ2hlY2sgbmVpZ2hib3JzXG4gIGlmICghaXNQcmV2aW91c05vZGVWYWxpZChsaW5rTm9kZSkgfHwgIWlzTmV4dE5vZGVWYWxpZChsaW5rTm9kZSkpIHtcbiAgICByZXBsYWNlV2l0aENoaWxkcmVuKGxpbmtOb2RlKVxuICAgIG9uQ2hhbmdlKG51bGwsIGxpbmtOb2RlLmdldEZpZWxkcygpPy51cmwgPz8gbnVsbClcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IHVybCA9IGxpbmtOb2RlLmdldEZpZWxkcygpPy51cmxcbiAgaWYgKHVybCAhPT0gbWF0Y2g/LnVybCkge1xuICAgIGNvbnN0IGZsZHMgPSBsaW5rTm9kZS5nZXRGaWVsZHMoKVxuICAgIGZsZHMudXJsID0gbWF0Y2g/LnVybFxuICAgIGxpbmtOb2RlLnNldEZpZWxkcyhmbGRzKVxuICAgIG9uQ2hhbmdlKG1hdGNoLnVybCwgdXJsID8/IG51bGwpXG4gIH1cbn1cblxuLy8gQmFkIG5laWdoYm91cnMgYXJlIGVkaXRzIGluIG5laWdoYm9yIG5vZGVzIHRoYXQgbWFrZSBBdXRvTGlua3MgaW5jb21wYXRpYmxlLlxuLy8gR2l2ZW4gdGhlIGNyZWF0aW9uIHByZWNvbmRpdGlvbnMsIHRoZXNlIGNhbiBvbmx5IGJlIHNpbXBsZSB0ZXh0IG5vZGVzLlxuZnVuY3Rpb24gaGFuZGxlQmFkTmVpZ2hib3JzKFxuICB0ZXh0Tm9kZTogVGV4dE5vZGUsXG4gIG1hdGNoZXJzOiBMaW5rTWF0Y2hlcltdLFxuICBvbkNoYW5nZTogQ2hhbmdlSGFuZGxlcixcbik6IHZvaWQge1xuICBjb25zdCBwcmV2aW91c1NpYmxpbmcgPSB0ZXh0Tm9kZS5nZXRQcmV2aW91c1NpYmxpbmcoKVxuICBjb25zdCBuZXh0U2libGluZyA9IHRleHROb2RlLmdldE5leHRTaWJsaW5nKClcbiAgY29uc3QgdGV4dCA9IHRleHROb2RlLmdldFRleHRDb250ZW50KClcblxuICBpZiAoJGlzQXV0b0xpbmtOb2RlKHByZXZpb3VzU2libGluZykgJiYgIXN0YXJ0c1dpdGhTZXBhcmF0b3IodGV4dCkpIHtcbiAgICBwcmV2aW91c1NpYmxpbmcuYXBwZW5kKHRleHROb2RlKVxuICAgIGhhbmRsZUxpbmtFZGl0KHByZXZpb3VzU2libGluZywgbWF0Y2hlcnMsIG9uQ2hhbmdlKVxuICAgIG9uQ2hhbmdlKG51bGwsIHByZXZpb3VzU2libGluZy5nZXRGaWVsZHMoKT8udXJsID8/IG51bGwpXG4gIH1cblxuICBpZiAoJGlzQXV0b0xpbmtOb2RlKG5leHRTaWJsaW5nKSAmJiAhZW5kc1dpdGhTZXBhcmF0b3IodGV4dCkpIHtcbiAgICByZXBsYWNlV2l0aENoaWxkcmVuKG5leHRTaWJsaW5nKVxuICAgIGhhbmRsZUxpbmtFZGl0KG5leHRTaWJsaW5nLCBtYXRjaGVycywgb25DaGFuZ2UpXG4gICAgb25DaGFuZ2UobnVsbCwgbmV4dFNpYmxpbmcuZ2V0RmllbGRzKCk/LnVybCA/PyBudWxsKVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlcGxhY2VXaXRoQ2hpbGRyZW4obm9kZTogRWxlbWVudE5vZGUpOiBMZXhpY2FsTm9kZVtdIHtcbiAgY29uc3QgY2hpbGRyZW4gPSBub2RlLmdldENoaWxkcmVuKClcbiAgY29uc3QgY2hpbGRyZW5MZW5ndGggPSBjaGlsZHJlbi5sZW5ndGhcblxuICBmb3IgKGxldCBqID0gY2hpbGRyZW5MZW5ndGggLSAxOyBqID49IDA7IGotLSkge1xuICAgIG5vZGUuaW5zZXJ0QWZ0ZXIoY2hpbGRyZW5bal0pXG4gIH1cblxuICBub2RlLnJlbW92ZSgpXG4gIHJldHVybiBjaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiBjaGlsZC5nZXRMYXRlc3QoKSlcbn1cblxuZnVuY3Rpb24gdXNlQXV0b0xpbmsoXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvcixcbiAgbWF0Y2hlcnM6IExpbmtNYXRjaGVyW10sXG4gIG9uQ2hhbmdlPzogQ2hhbmdlSGFuZGxlcixcbik6IHZvaWQge1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZWRpdG9yLmhhc05vZGVzKFtBdXRvTGlua05vZGVdKSkge1xuICAgICAgaW52YXJpYW50KGZhbHNlLCAnTGV4aWNhbEF1dG9MaW5rUGx1Z2luOiBBdXRvTGlua05vZGUgbm90IHJlZ2lzdGVyZWQgb24gZWRpdG9yJylcbiAgICB9XG5cbiAgICBjb25zdCBvbkNoYW5nZVdyYXBwZWQgPSAodXJsOiBudWxsIHwgc3RyaW5nLCBwcmV2VXJsOiBudWxsIHwgc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgICBpZiAob25DaGFuZ2UgIT0gbnVsbCkge1xuICAgICAgICBvbkNoYW5nZSh1cmwsIHByZXZVcmwpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJOb2RlVHJhbnNmb3JtKFRleHROb2RlLCAodGV4dE5vZGU6IFRleHROb2RlKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHRleHROb2RlLmdldFBhcmVudE9yVGhyb3coKVxuICAgICAgICBjb25zdCBwcmV2aW91cyA9IHRleHROb2RlLmdldFByZXZpb3VzU2libGluZygpXG4gICAgICAgIGlmICgkaXNBdXRvTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICAgIGhhbmRsZUxpbmtFZGl0KHBhcmVudCwgbWF0Y2hlcnMsIG9uQ2hhbmdlV3JhcHBlZClcbiAgICAgICAgfSBlbHNlIGlmICghJGlzTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRleHROb2RlLmlzU2ltcGxlVGV4dCgpICYmXG4gICAgICAgICAgICAoc3RhcnRzV2l0aFNlcGFyYXRvcih0ZXh0Tm9kZS5nZXRUZXh0Q29udGVudCgpKSB8fCAhJGlzQXV0b0xpbmtOb2RlKHByZXZpb3VzKSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGhhbmRsZUxpbmtDcmVhdGlvbih0ZXh0Tm9kZSwgbWF0Y2hlcnMsIG9uQ2hhbmdlV3JhcHBlZClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBoYW5kbGVCYWROZWlnaGJvcnModGV4dE5vZGUsIG1hdGNoZXJzLCBvbkNoYW5nZVdyYXBwZWQpXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIClcbiAgfSwgW2VkaXRvciwgbWF0Y2hlcnMsIG9uQ2hhbmdlXSlcbn1cblxuY29uc3QgVVJMX1JFR0VYID1cbiAgLygoaHR0cHM/OlxcL1xcLyh3d3dcXC4pPyl8KHd3d1xcLikpWy1cXHdAOiUuK34jPV17MSwyNTZ9XFwuW2EtekEtWlxcZCgpXXsxLDZ9XFxiKFstXFx3KClAOiUrLn4jPyYvPV0qKS9cblxuY29uc3QgRU1BSUxfUkVHRVggPVxuICAvKChbXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKChcXFtcXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM31cXC5cXGR7MSwzfVxcXSl8KChbYS16QS1aXFwtXFxkXStcXC4pK1thLXpBLVpdezIsfSkpL1xuXG5jb25zdCBNQVRDSEVSUyA9IFtcbiAgY3JlYXRlTGlua01hdGNoZXJXaXRoUmVnRXhwKFVSTF9SRUdFWCwgKHRleHQpID0+IHtcbiAgICByZXR1cm4gdGV4dC5zdGFydHNXaXRoKCdodHRwJykgPyB0ZXh0IDogYGh0dHBzOi8vJHt0ZXh0fWBcbiAgfSksXG4gIGNyZWF0ZUxpbmtNYXRjaGVyV2l0aFJlZ0V4cChFTUFJTF9SRUdFWCwgKHRleHQpID0+IHtcbiAgICByZXR1cm4gYG1haWx0bzoke3RleHR9YFxuICB9KSxcbl1cblxuZXhwb3J0IGZ1bmN0aW9uIEF1dG9MaW5rUGx1Z2luKCk6IEpTWC5FbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG5cbiAgdXNlQXV0b0xpbmsoZWRpdG9yLCBNQVRDSEVSUylcblxuICByZXR1cm4gbnVsbFxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZUxpbmtNYXRjaGVyV2l0aFJlZ0V4cCIsIkF1dG9MaW5rUGx1Z2luIiwicmVnRXhwIiwidXJsVHJhbnNmb3JtZXIiLCJ0ZXh0IiwibWF0Y2giLCJleGVjIiwiaW5kZXgiLCJsZW5ndGgiLCJ1cmwiLCJmaW5kRmlyc3RNYXRjaCIsIm1hdGNoZXJzIiwiaSIsIlBVTkNUVUFUSU9OX09SX1NQQUNFIiwiaXNTZXBhcmF0b3IiLCJjaGFyIiwidGVzdCIsImVuZHNXaXRoU2VwYXJhdG9yIiwidGV4dENvbnRlbnQiLCJzdGFydHNXaXRoU2VwYXJhdG9yIiwiaXNQcmV2aW91c05vZGVWYWxpZCIsIm5vZGUiLCJwcmV2aW91c05vZGUiLCJnZXRQcmV2aW91c1NpYmxpbmciLCIkaXNFbGVtZW50Tm9kZSIsImdldExhc3REZXNjZW5kYW50IiwiJGlzTGluZUJyZWFrTm9kZSIsIiRpc1RleHROb2RlIiwiZ2V0VGV4dENvbnRlbnQiLCJpc05leHROb2RlVmFsaWQiLCJuZXh0Tm9kZSIsImdldE5leHRTaWJsaW5nIiwiZ2V0Rmlyc3REZXNjZW5kYW50IiwiaXNDb250ZW50QXJvdW5kSXNWYWxpZCIsIm1hdGNoU3RhcnQiLCJtYXRjaEVuZCIsImNvbnRlbnRCZWZvcmVJc1ZhbGlkIiwiY29udGVudEFmdGVySXNWYWxpZCIsImhhbmRsZUxpbmtDcmVhdGlvbiIsIm9uQ2hhbmdlIiwibm9kZVRleHQiLCJpbnZhbGlkTWF0Y2hFbmQiLCJyZW1haW5pbmdUZXh0Tm9kZSIsIm1hdGNoTGVuZ3RoIiwiaXNWYWxpZCIsImxpbmtUZXh0Tm9kZSIsInNwbGl0VGV4dCIsImZpZWxkcyIsImxpbmtUeXBlIiwiYXR0cmlidXRlcyIsImxpbmtOb2RlIiwiJGNyZWF0ZUF1dG9MaW5rTm9kZSIsInRleHROb2RlIiwiJGNyZWF0ZVRleHROb2RlIiwic2V0Rm9ybWF0IiwiZ2V0Rm9ybWF0Iiwic2V0RGV0YWlsIiwiZ2V0RGV0YWlsIiwiYXBwZW5kIiwicmVwbGFjZSIsInN1YnN0cmluZyIsImhhbmRsZUxpbmtFZGl0IiwiY2hpbGRyZW4iLCJnZXRDaGlsZHJlbiIsImNoaWxkcmVuTGVuZ3RoIiwiY2hpbGQiLCJpc1NpbXBsZVRleHQiLCJyZXBsYWNlV2l0aENoaWxkcmVuIiwiZ2V0RmllbGRzIiwiZmxkcyIsInNldEZpZWxkcyIsImhhbmRsZUJhZE5laWdoYm9ycyIsInByZXZpb3VzU2libGluZyIsIm5leHRTaWJsaW5nIiwiJGlzQXV0b0xpbmtOb2RlIiwiaiIsImluc2VydEFmdGVyIiwicmVtb3ZlIiwibWFwIiwiZ2V0TGF0ZXN0IiwidXNlQXV0b0xpbmsiLCJlZGl0b3IiLCJ1c2VFZmZlY3QiLCJoYXNOb2RlcyIsIkF1dG9MaW5rTm9kZSIsImludmFyaWFudCIsIm9uQ2hhbmdlV3JhcHBlZCIsInByZXZVcmwiLCJtZXJnZVJlZ2lzdGVyIiwicmVnaXN0ZXJOb2RlVHJhbnNmb3JtIiwiVGV4dE5vZGUiLCJwYXJlbnQiLCJnZXRQYXJlbnRPclRocm93IiwicHJldmlvdXMiLCIkaXNMaW5rTm9kZSIsIlVSTF9SRUdFWCIsIkVNQUlMX1JFR0VYIiwiTUFUQ0hFUlMiLCJzdGFydHNXaXRoIiwidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztDQU1DOzs7Ozs7Ozs7OztJQXlCZUEsMkJBQTJCO2VBQTNCQTs7SUE2UUFDLGNBQWM7ZUFBZEE7Ozt3Q0FsUzBCO3VC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
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { LexicalCommand } from 'lexical';
|
|
3
|
+
import type { LinkFeatureProps } from '../../..';
|
|
4
|
+
import type { LinkPayload } from '../types';
|
|
5
|
+
export declare const TOGGLE_LINK_WITH_MODAL_COMMAND: LexicalCommand<LinkPayload | null>;
|
|
6
|
+
export declare function LinkEditor({ anchorElem, fields: customFieldSchema, }: {
|
|
7
|
+
anchorElem: HTMLElement;
|
|
8
|
+
} & LinkFeatureProps): JSX.Element;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AA4B7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAS3C,eAAO,MAAM,8BAA8B,EAAE,cAAc,CAAC,WAAW,GAAG,IAAI,CAE7E,CAAA;AAED,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,MAAM,EAAE,iBAAiB,GAC1B,EAAE;IAAE,UAAU,EAAE,WAAW,CAAA;CAAE,GAAG,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA+Q9D"}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
TOGGLE_LINK_WITH_MODAL_COMMAND: function() {
|
|
13
|
+
return TOGGLE_LINK_WITH_MODAL_COMMAND;
|
|
14
|
+
},
|
|
15
|
+
LinkEditor: function() {
|
|
16
|
+
return LinkEditor;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _modal = require("@faceless-ui/modal");
|
|
20
|
+
const _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
21
|
+
const _utils = require("@lexical/utils");
|
|
22
|
+
const _lexical = require("lexical");
|
|
23
|
+
const _elements = require("payload/components/elements");
|
|
24
|
+
const _forms = require("payload/components/forms");
|
|
25
|
+
const _utilities = require("payload/components/utilities");
|
|
26
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
27
|
+
const _reacti18next = require("react-i18next");
|
|
28
|
+
const _EditorConfigProvider = require("../../../../../lexical/config/EditorConfigProvider");
|
|
29
|
+
const _getSelectedNode = require("../../../../../lexical/utils/getSelectedNode");
|
|
30
|
+
const _setFloatingElemPositionForLinkEditor = require("../../../../../lexical/utils/setFloatingElemPositionForLinkEditor");
|
|
31
|
+
const _drawer = require("../../../drawer");
|
|
32
|
+
const _LinkNode = require("../../../nodes/LinkNode");
|
|
33
|
+
const _utilities1 = require("../utilities");
|
|
34
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
35
|
+
if (typeof WeakMap !== "function") return null;
|
|
36
|
+
var cacheBabelInterop = new WeakMap();
|
|
37
|
+
var cacheNodeInterop = new WeakMap();
|
|
38
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
39
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
40
|
+
})(nodeInterop);
|
|
41
|
+
}
|
|
42
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
43
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
44
|
+
return obj;
|
|
45
|
+
}
|
|
46
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
47
|
+
return {
|
|
48
|
+
default: obj
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
52
|
+
if (cache && cache.has(obj)) {
|
|
53
|
+
return cache.get(obj);
|
|
54
|
+
}
|
|
55
|
+
var newObj = {};
|
|
56
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
57
|
+
for(var key in obj){
|
|
58
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
59
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
60
|
+
if (desc && (desc.get || desc.set)) {
|
|
61
|
+
Object.defineProperty(newObj, key, desc);
|
|
62
|
+
} else {
|
|
63
|
+
newObj[key] = obj[key];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
newObj.default = obj;
|
|
68
|
+
if (cache) {
|
|
69
|
+
cache.set(obj, newObj);
|
|
70
|
+
}
|
|
71
|
+
return newObj;
|
|
72
|
+
}
|
|
73
|
+
const TOGGLE_LINK_WITH_MODAL_COMMAND = (0, _lexical.createCommand)('TOGGLE_LINK_WITH_MODAL_COMMAND');
|
|
74
|
+
function LinkEditor({ anchorElem, fields: customFieldSchema }) {
|
|
75
|
+
const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
|
|
76
|
+
const editorRef = (0, _react.useRef)(null);
|
|
77
|
+
const [linkUrl, setLinkUrl] = (0, _react.useState)('');
|
|
78
|
+
const [linkLabel, setLinkLabel] = (0, _react.useState)('');
|
|
79
|
+
const { uuid } = (0, _EditorConfigProvider.useEditorConfigContext)();
|
|
80
|
+
const config = (0, _utilities.useConfig)();
|
|
81
|
+
const { user } = (0, _utilities.useAuth)();
|
|
82
|
+
const { code: locale } = (0, _utilities.useLocale)();
|
|
83
|
+
const { i18n, t } = (0, _reacti18next.useTranslation)([
|
|
84
|
+
'fields',
|
|
85
|
+
'upload',
|
|
86
|
+
'general'
|
|
87
|
+
]);
|
|
88
|
+
const { getDocPreferences } = (0, _utilities.useDocumentInfo)();
|
|
89
|
+
const [initialState, setInitialState] = (0, _react.useState)({});
|
|
90
|
+
const [fieldSchema] = (0, _react.useState)(()=>{
|
|
91
|
+
const fields = (0, _utilities1.transformExtraFields)(customFieldSchema, config, i18n);
|
|
92
|
+
return fields;
|
|
93
|
+
});
|
|
94
|
+
const { closeModal, toggleModal } = (0, _modal.useModal)();
|
|
95
|
+
const editDepth = (0, _utilities.useEditDepth)();
|
|
96
|
+
const [isLink, setIsLink] = (0, _react.useState)(false);
|
|
97
|
+
const drawerSlug = (0, _elements.formatDrawerSlug)({
|
|
98
|
+
depth: editDepth,
|
|
99
|
+
slug: `lexical-rich-text-link-` + uuid
|
|
100
|
+
});
|
|
101
|
+
const updateLinkEditor = (0, _react.useCallback)(async ()=>{
|
|
102
|
+
const selection = (0, _lexical.$getSelection)();
|
|
103
|
+
let selectedNodeDomRect = null;
|
|
104
|
+
// Handle the data displayed in the floating link editor & drawer when you click on a link node
|
|
105
|
+
if ((0, _lexical.$isRangeSelection)(selection)) {
|
|
106
|
+
const node = (0, _getSelectedNode.getSelectedNode)(selection);
|
|
107
|
+
selectedNodeDomRect = editor.getElementByKey(node.getKey())?.getBoundingClientRect();
|
|
108
|
+
const linkParent = (0, _utils.$findMatchingParent)(node, _LinkNode.$isLinkNode);
|
|
109
|
+
if (linkParent == null) {
|
|
110
|
+
setIsLink(false);
|
|
111
|
+
setLinkUrl('');
|
|
112
|
+
setLinkLabel('');
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
// Initial state:
|
|
116
|
+
const data = {
|
|
117
|
+
fields: {
|
|
118
|
+
doc: undefined,
|
|
119
|
+
linkType: undefined,
|
|
120
|
+
newTab: undefined,
|
|
121
|
+
nofollow: undefined,
|
|
122
|
+
sponsored: undefined,
|
|
123
|
+
url: '',
|
|
124
|
+
...linkParent.getFields()
|
|
125
|
+
},
|
|
126
|
+
text: linkParent.getTextContent()
|
|
127
|
+
};
|
|
128
|
+
if (linkParent.getFields()?.linkType === 'custom') {
|
|
129
|
+
setLinkUrl(linkParent.getFields()?.url ?? '');
|
|
130
|
+
setLinkLabel('');
|
|
131
|
+
} else {
|
|
132
|
+
// internal link
|
|
133
|
+
setLinkUrl(`/admin/collections/${linkParent.getFields()?.doc?.relationTo}/${linkParent.getFields()?.doc?.value}`);
|
|
134
|
+
setLinkLabel(`relation to ${linkParent.getFields()?.doc?.relationTo}: ${linkParent.getFields()?.doc?.value}`);
|
|
135
|
+
}
|
|
136
|
+
// Set initial state of the drawer. This will basically pre-fill the drawer fields with the
|
|
137
|
+
// values saved in the link node you clicked on.
|
|
138
|
+
const preferences = await getDocPreferences();
|
|
139
|
+
const state = await (0, _utilities.buildStateFromSchema)({
|
|
140
|
+
data,
|
|
141
|
+
fieldSchema,
|
|
142
|
+
locale,
|
|
143
|
+
operation: 'create',
|
|
144
|
+
preferences,
|
|
145
|
+
t,
|
|
146
|
+
user: user ?? undefined
|
|
147
|
+
});
|
|
148
|
+
setInitialState(state);
|
|
149
|
+
setIsLink(true);
|
|
150
|
+
}
|
|
151
|
+
const editorElem = editorRef.current;
|
|
152
|
+
const nativeSelection = window.getSelection();
|
|
153
|
+
const { activeElement } = document;
|
|
154
|
+
if (editorElem === null) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
const rootElement = editor.getRootElement();
|
|
158
|
+
if (selection !== null && nativeSelection !== null && rootElement !== null && rootElement.contains(nativeSelection.anchorNode) && editor.isEditable()) {
|
|
159
|
+
if (!selectedNodeDomRect) {
|
|
160
|
+
// Get the DOM rect of the selected node using the native selection. This sometimes produces the wrong
|
|
161
|
+
// result, which is why we use lexical's selection preferably.
|
|
162
|
+
selectedNodeDomRect = nativeSelection.getRangeAt(0).getBoundingClientRect();
|
|
163
|
+
}
|
|
164
|
+
if (selectedNodeDomRect != null) {
|
|
165
|
+
selectedNodeDomRect.y += 40;
|
|
166
|
+
(0, _setFloatingElemPositionForLinkEditor.setFloatingElemPositionForLinkEditor)(selectedNodeDomRect, editorElem, anchorElem);
|
|
167
|
+
}
|
|
168
|
+
} else if (activeElement == null || activeElement.className !== 'link-input') {
|
|
169
|
+
if (rootElement !== null) {
|
|
170
|
+
(0, _setFloatingElemPositionForLinkEditor.setFloatingElemPositionForLinkEditor)(null, editorElem, anchorElem);
|
|
171
|
+
}
|
|
172
|
+
setLinkUrl('');
|
|
173
|
+
setLinkLabel('');
|
|
174
|
+
}
|
|
175
|
+
return true;
|
|
176
|
+
}, [
|
|
177
|
+
anchorElem,
|
|
178
|
+
editor,
|
|
179
|
+
fieldSchema
|
|
180
|
+
]);
|
|
181
|
+
(0, _react.useEffect)(()=>{
|
|
182
|
+
return (0, _utils.mergeRegister)(editor.registerCommand(TOGGLE_LINK_WITH_MODAL_COMMAND, (payload)=>{
|
|
183
|
+
editor.dispatchCommand(_LinkNode.TOGGLE_LINK_COMMAND, payload);
|
|
184
|
+
// Now, open the modal
|
|
185
|
+
updateLinkEditor().then(()=>{
|
|
186
|
+
toggleModal(drawerSlug);
|
|
187
|
+
}).catch((error)=>{
|
|
188
|
+
throw error;
|
|
189
|
+
});
|
|
190
|
+
return true;
|
|
191
|
+
}, _lexical.COMMAND_PRIORITY_LOW));
|
|
192
|
+
}, [
|
|
193
|
+
editor,
|
|
194
|
+
updateLinkEditor,
|
|
195
|
+
toggleModal,
|
|
196
|
+
drawerSlug
|
|
197
|
+
]);
|
|
198
|
+
(0, _react.useEffect)(()=>{
|
|
199
|
+
if (!isLink && editorRef) {
|
|
200
|
+
editorRef.current.style.opacity = '0';
|
|
201
|
+
editorRef.current.style.transform = 'translate(-10000px, -10000px)';
|
|
202
|
+
}
|
|
203
|
+
}, [
|
|
204
|
+
isLink
|
|
205
|
+
]);
|
|
206
|
+
(0, _react.useEffect)(()=>{
|
|
207
|
+
const scrollerElem = anchorElem.parentElement;
|
|
208
|
+
const update = ()=>{
|
|
209
|
+
editor.getEditorState().read(()=>{
|
|
210
|
+
void updateLinkEditor();
|
|
211
|
+
});
|
|
212
|
+
};
|
|
213
|
+
window.addEventListener('resize', update);
|
|
214
|
+
if (scrollerElem != null) {
|
|
215
|
+
scrollerElem.addEventListener('scroll', update);
|
|
216
|
+
}
|
|
217
|
+
return ()=>{
|
|
218
|
+
window.removeEventListener('resize', update);
|
|
219
|
+
if (scrollerElem != null) {
|
|
220
|
+
scrollerElem.removeEventListener('scroll', update);
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
}, [
|
|
224
|
+
anchorElem.parentElement,
|
|
225
|
+
editor,
|
|
226
|
+
updateLinkEditor
|
|
227
|
+
]);
|
|
228
|
+
(0, _react.useEffect)(()=>{
|
|
229
|
+
return (0, _utils.mergeRegister)(editor.registerUpdateListener(({ editorState })=>{
|
|
230
|
+
editorState.read(()=>{
|
|
231
|
+
void updateLinkEditor();
|
|
232
|
+
});
|
|
233
|
+
}), editor.registerCommand(_lexical.SELECTION_CHANGE_COMMAND, ()=>{
|
|
234
|
+
void updateLinkEditor();
|
|
235
|
+
return true;
|
|
236
|
+
}, _lexical.COMMAND_PRIORITY_LOW), editor.registerCommand(_lexical.KEY_ESCAPE_COMMAND, ()=>{
|
|
237
|
+
if (isLink) {
|
|
238
|
+
setIsLink(false);
|
|
239
|
+
return true;
|
|
240
|
+
}
|
|
241
|
+
return false;
|
|
242
|
+
}, _lexical.COMMAND_PRIORITY_HIGH));
|
|
243
|
+
}, [
|
|
244
|
+
editor,
|
|
245
|
+
updateLinkEditor,
|
|
246
|
+
setIsLink,
|
|
247
|
+
isLink
|
|
248
|
+
]);
|
|
249
|
+
(0, _react.useEffect)(()=>{
|
|
250
|
+
editor.getEditorState().read(()=>{
|
|
251
|
+
void updateLinkEditor();
|
|
252
|
+
});
|
|
253
|
+
}, [
|
|
254
|
+
editor,
|
|
255
|
+
updateLinkEditor
|
|
256
|
+
]);
|
|
257
|
+
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement("div", {
|
|
258
|
+
className: "link-editor",
|
|
259
|
+
ref: editorRef
|
|
260
|
+
}, /*#__PURE__*/ _react.default.createElement("div", {
|
|
261
|
+
className: "link-input"
|
|
262
|
+
}, /*#__PURE__*/ _react.default.createElement("a", {
|
|
263
|
+
href: linkUrl,
|
|
264
|
+
rel: "noopener noreferrer",
|
|
265
|
+
target: "_blank"
|
|
266
|
+
}, linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl), /*#__PURE__*/ _react.default.createElement("button", {
|
|
267
|
+
"aria-label": "Edit link",
|
|
268
|
+
className: "link-edit",
|
|
269
|
+
onClick: ()=>{
|
|
270
|
+
toggleModal(drawerSlug);
|
|
271
|
+
},
|
|
272
|
+
onMouseDown: (event)=>{
|
|
273
|
+
event.preventDefault();
|
|
274
|
+
},
|
|
275
|
+
tabIndex: 0,
|
|
276
|
+
type: "button"
|
|
277
|
+
}), /*#__PURE__*/ _react.default.createElement("button", {
|
|
278
|
+
"aria-label": "Remove link",
|
|
279
|
+
className: "link-trash",
|
|
280
|
+
onClick: ()=>{
|
|
281
|
+
editor.dispatchCommand(_LinkNode.TOGGLE_LINK_COMMAND, null);
|
|
282
|
+
},
|
|
283
|
+
onMouseDown: (event)=>{
|
|
284
|
+
event.preventDefault();
|
|
285
|
+
},
|
|
286
|
+
tabIndex: 0,
|
|
287
|
+
type: "button"
|
|
288
|
+
}))), /*#__PURE__*/ _react.default.createElement(_drawer.LinkDrawer, {
|
|
289
|
+
drawerSlug: drawerSlug,
|
|
290
|
+
fieldSchema: fieldSchema,
|
|
291
|
+
handleModalSubmit: (fields)=>{
|
|
292
|
+
closeModal(drawerSlug);
|
|
293
|
+
const data = (0, _forms.reduceFieldsToValues)(fields, true);
|
|
294
|
+
const newLinkPayload = data;
|
|
295
|
+
editor.dispatchCommand(_LinkNode.TOGGLE_LINK_COMMAND, newLinkPayload);
|
|
296
|
+
},
|
|
297
|
+
initialState: initialState
|
|
298
|
+
}));
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3IvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGV4aWNhbENvbW1hbmQgfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZHMgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VNb2RhbCB9IGZyb20gJ0BmYWNlbGVzcy11aS9tb2RhbCdcbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgJGZpbmRNYXRjaGluZ1BhcmVudCwgbWVyZ2VSZWdpc3RlciB9IGZyb20gJ0BsZXhpY2FsL3V0aWxzJ1xuaW1wb3J0IHtcbiAgJGdldFNlbGVjdGlvbixcbiAgJGlzUmFuZ2VTZWxlY3Rpb24sXG4gIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gIEtFWV9FU0NBUEVfQ09NTUFORCxcbiAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxuICBjcmVhdGVDb21tYW5kLFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgZm9ybWF0RHJhd2VyU2x1ZyB9IGZyb20gJ3BheWxvYWQvY29tcG9uZW50cy9lbGVtZW50cydcbmltcG9ydCB7IHJlZHVjZUZpZWxkc1RvVmFsdWVzIH0gZnJvbSAncGF5bG9hZC9jb21wb25lbnRzL2Zvcm1zJ1xuaW1wb3J0IHtcbiAgYnVpbGRTdGF0ZUZyb21TY2hlbWEsXG4gIHVzZUF1dGgsXG4gIHVzZUNvbmZpZyxcbiAgdXNlRG9jdW1lbnRJbmZvLFxuICB1c2VFZGl0RGVwdGgsXG4gIHVzZUxvY2FsZSxcbn0gZnJvbSAncGF5bG9hZC9jb21wb25lbnRzL3V0aWxpdGllcydcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB0eXBlIHsgTGlua0ZlYXR1cmVQcm9wcyB9IGZyb20gJy4uLy4uLy4uJ1xuaW1wb3J0IHR5cGUgeyBMaW5rTm9kZSB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0xpbmtOb2RlJ1xuaW1wb3J0IHR5cGUgeyBMaW5rUGF5bG9hZCB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VFZGl0b3JDb25maWdDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGV4aWNhbC9jb25maWcvRWRpdG9yQ29uZmlnUHJvdmlkZXInXG5pbXBvcnQgeyBnZXRTZWxlY3RlZE5vZGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL3V0aWxzL2dldFNlbGVjdGVkTm9kZSdcbmltcG9ydCB7IHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xleGljYWwvdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yJ1xuaW1wb3J0IHsgTGlua0RyYXdlciB9IGZyb20gJy4uLy4uLy4uL2RyYXdlcidcbmltcG9ydCB7ICRpc0xpbmtOb2RlLCBUT0dHTEVfTElOS19DT01NQU5EIH0gZnJvbSAnLi4vLi4vLi4vbm9kZXMvTGlua05vZGUnXG5pbXBvcnQgeyB0cmFuc2Zvcm1FeHRyYUZpZWxkcyB9IGZyb20gJy4uL3V0aWxpdGllcydcblxuZXhwb3J0IGNvbnN0IFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORDogTGV4aWNhbENvbW1hbmQ8TGlua1BheWxvYWQgfCBudWxsPiA9IGNyZWF0ZUNvbW1hbmQoXG4gICdUT0dHTEVfTElOS19XSVRIX01PREFMX0NPTU1BTkQnLFxuKVxuXG5leHBvcnQgZnVuY3Rpb24gTGlua0VkaXRvcih7XG4gIGFuY2hvckVsZW0sXG4gIGZpZWxkczogY3VzdG9tRmllbGRTY2hlbWEsXG59OiB7IGFuY2hvckVsZW06IEhUTUxFbGVtZW50IH0gJiBMaW5rRmVhdHVyZVByb3BzKTogSlNYLkVsZW1lbnQge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuXG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtsaW5rVXJsLCBzZXRMaW5rVXJsXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbbGlua0xhYmVsLCBzZXRMaW5rTGFiZWxdID0gdXNlU3RhdGUoJycpXG5cbiAgY29uc3QgeyB1dWlkIH0gPSB1c2VFZGl0b3JDb25maWdDb250ZXh0KClcblxuICBjb25zdCBjb25maWcgPSB1c2VDb25maWcoKVxuXG4gIGNvbnN0IHsgdXNlciB9ID0gdXNlQXV0aCgpXG4gIGNvbnN0IHsgY29kZTogbG9jYWxlIH0gPSB1c2VMb2NhbGUoKVxuICBjb25zdCB7IGkxOG4sIHQgfSA9IHVzZVRyYW5zbGF0aW9uKFsnZmllbGRzJywgJ3VwbG9hZCcsICdnZW5lcmFsJ10pXG5cbiAgY29uc3QgeyBnZXREb2NQcmVmZXJlbmNlcyB9ID0gdXNlRG9jdW1lbnRJbmZvKClcblxuICBjb25zdCBbaW5pdGlhbFN0YXRlLCBzZXRJbml0aWFsU3RhdGVdID0gdXNlU3RhdGU8RmllbGRzPih7fSlcblxuICBjb25zdCBbZmllbGRTY2hlbWFdID0gdXNlU3RhdGUoKCkgPT4ge1xuICAgIGNvbnN0IGZpZWxkcyA9IHRyYW5zZm9ybUV4dHJhRmllbGRzKGN1c3RvbUZpZWxkU2NoZW1hLCBjb25maWcsIGkxOG4pXG5cbiAgICByZXR1cm4gZmllbGRzXG4gIH0pXG5cbiAgY29uc3QgeyBjbG9zZU1vZGFsLCB0b2dnbGVNb2RhbCB9ID0gdXNlTW9kYWwoKVxuICBjb25zdCBlZGl0RGVwdGggPSB1c2VFZGl0RGVwdGgoKVxuICBjb25zdCBbaXNMaW5rLCBzZXRJc0xpbmtdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgZHJhd2VyU2x1ZyA9IGZvcm1hdERyYXdlclNsdWcoe1xuICAgIGRlcHRoOiBlZGl0RGVwdGgsXG4gICAgc2x1ZzogYGxleGljYWwtcmljaC10ZXh0LWxpbmstYCArIHV1aWQsXG4gIH0pXG5cbiAgY29uc3QgdXBkYXRlTGlua0VkaXRvciA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICBsZXQgc2VsZWN0ZWROb2RlRG9tUmVjdDogRE9NUmVjdCB8IHVuZGVmaW5lZCA9IG51bGxcblxuICAgIC8vIEhhbmRsZSB0aGUgZGF0YSBkaXNwbGF5ZWQgaW4gdGhlIGZsb2F0aW5nIGxpbmsgZWRpdG9yICYgZHJhd2VyIHdoZW4geW91IGNsaWNrIG9uIGEgbGluayBub2RlXG4gICAgaWYgKCRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSBnZXRTZWxlY3RlZE5vZGUoc2VsZWN0aW9uKVxuICAgICAgc2VsZWN0ZWROb2RlRG9tUmVjdCA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkobm9kZS5nZXRLZXkoKSk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBsaW5rUGFyZW50OiBMaW5rTm9kZSA9ICRmaW5kTWF0Y2hpbmdQYXJlbnQobm9kZSwgJGlzTGlua05vZGUpIGFzIExpbmtOb2RlXG4gICAgICBpZiAobGlua1BhcmVudCA9PSBudWxsKSB7XG4gICAgICAgIHNldElzTGluayhmYWxzZSlcbiAgICAgICAgc2V0TGlua1VybCgnJylcbiAgICAgICAgc2V0TGlua0xhYmVsKCcnKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gSW5pdGlhbCBzdGF0ZTpcbiAgICAgIGNvbnN0IGRhdGE6IExpbmtQYXlsb2FkID0ge1xuICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICBkb2M6IHVuZGVmaW5lZCxcbiAgICAgICAgICBsaW5rVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgIG5ld1RhYjogdW5kZWZpbmVkLFxuICAgICAgICAgIG5vZm9sbG93OiB1bmRlZmluZWQsXG4gICAgICAgICAgc3BvbnNvcmVkOiB1bmRlZmluZWQsXG4gICAgICAgICAgdXJsOiAnJyxcbiAgICAgICAgICAuLi5saW5rUGFyZW50LmdldEZpZWxkcygpLFxuICAgICAgICB9LFxuICAgICAgICB0ZXh0OiBsaW5rUGFyZW50LmdldFRleHRDb250ZW50KCksXG4gICAgICB9XG5cbiAgICAgIGlmIChsaW5rUGFyZW50LmdldEZpZWxkcygpPy5saW5rVHlwZSA9PT0gJ2N1c3RvbScpIHtcbiAgICAgICAgc2V0TGlua1VybChsaW5rUGFyZW50LmdldEZpZWxkcygpPy51cmwgPz8gJycpXG4gICAgICAgIHNldExpbmtMYWJlbCgnJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGludGVybmFsIGxpbmtcbiAgICAgICAgc2V0TGlua1VybChcbiAgICAgICAgICBgL2FkbWluL2NvbGxlY3Rpb25zLyR7bGlua1BhcmVudC5nZXRGaWVsZHMoKT8uZG9jPy5yZWxhdGlvblRvfS8ke2xpbmtQYXJlbnQuZ2V0RmllbGRzKClcbiAgICAgICAgICAgID8uZG9jPy52YWx1ZX1gLFxuICAgICAgICApXG4gICAgICAgIHNldExpbmtMYWJlbChcbiAgICAgICAgICBgcmVsYXRpb24gdG8gJHtsaW5rUGFyZW50LmdldEZpZWxkcygpPy5kb2M/LnJlbGF0aW9uVG99OiAke2xpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvY1xuICAgICAgICAgICAgPy52YWx1ZX1gLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIC8vIFNldCBpbml0aWFsIHN0YXRlIG9mIHRoZSBkcmF3ZXIuIFRoaXMgd2lsbCBiYXNpY2FsbHkgcHJlLWZpbGwgdGhlIGRyYXdlciBmaWVsZHMgd2l0aCB0aGVcbiAgICAgIC8vIHZhbHVlcyBzYXZlZCBpbiB0aGUgbGluayBub2RlIHlvdSBjbGlja2VkIG9uLlxuICAgICAgY29uc3QgcHJlZmVyZW5jZXMgPSBhd2FpdCBnZXREb2NQcmVmZXJlbmNlcygpXG4gICAgICBjb25zdCBzdGF0ZSA9IGF3YWl0IGJ1aWxkU3RhdGVGcm9tU2NoZW1hKHtcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZmllbGRTY2hlbWEsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgb3BlcmF0aW9uOiAnY3JlYXRlJyxcbiAgICAgICAgcHJlZmVyZW5jZXMsXG4gICAgICAgIHQsXG4gICAgICAgIHVzZXI6IHVzZXIgPz8gdW5kZWZpbmVkLFxuICAgICAgfSlcbiAgICAgIHNldEluaXRpYWxTdGF0ZShzdGF0ZSlcbiAgICAgIHNldElzTGluayh0cnVlKVxuICAgIH1cblxuICAgIGNvbnN0IGVkaXRvckVsZW0gPSBlZGl0b3JSZWYuY3VycmVudFxuICAgIGNvbnN0IG5hdGl2ZVNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgIGNvbnN0IHsgYWN0aXZlRWxlbWVudCB9ID0gZG9jdW1lbnRcblxuICAgIGlmIChlZGl0b3JFbGVtID09PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCByb290RWxlbWVudCA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG5cbiAgICBpZiAoXG4gICAgICBzZWxlY3Rpb24gIT09IG51bGwgJiZcbiAgICAgIG5hdGl2ZVNlbGVjdGlvbiAhPT0gbnVsbCAmJlxuICAgICAgcm9vdEVsZW1lbnQgIT09IG51bGwgJiZcbiAgICAgIHJvb3RFbGVtZW50LmNvbnRhaW5zKG5hdGl2ZVNlbGVjdGlvbi5hbmNob3JOb2RlKSAmJlxuICAgICAgZWRpdG9yLmlzRWRpdGFibGUoKVxuICAgICkge1xuICAgICAgaWYgKCFzZWxlY3RlZE5vZGVEb21SZWN0KSB7XG4gICAgICAgIC8vIEdldCB0aGUgRE9NIHJlY3Qgb2YgdGhlIHNlbGVjdGVkIG5vZGUgdXNpbmcgdGhlIG5hdGl2ZSBzZWxlY3Rpb24uIFRoaXMgc29tZXRpbWVzIHByb2R1Y2VzIHRoZSB3cm9uZ1xuICAgICAgICAvLyByZXN1bHQsIHdoaWNoIGlzIHdoeSB3ZSB1c2UgbGV4aWNhbCdzIHNlbGVjdGlvbiBwcmVmZXJhYmx5LlxuICAgICAgICBzZWxlY3RlZE5vZGVEb21SZWN0ID0gbmF0aXZlU2VsZWN0aW9uLmdldFJhbmdlQXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGVjdGVkTm9kZURvbVJlY3QgIT0gbnVsbCkge1xuICAgICAgICBzZWxlY3RlZE5vZGVEb21SZWN0LnkgKz0gNDBcbiAgICAgICAgc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yKHNlbGVjdGVkTm9kZURvbVJlY3QsIGVkaXRvckVsZW0sIGFuY2hvckVsZW0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChhY3RpdmVFbGVtZW50ID09IG51bGwgfHwgYWN0aXZlRWxlbWVudC5jbGFzc05hbWUgIT09ICdsaW5rLWlucHV0Jykge1xuICAgICAgaWYgKHJvb3RFbGVtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvcihudWxsLCBlZGl0b3JFbGVtLCBhbmNob3JFbGVtKVxuICAgICAgfVxuICAgICAgc2V0TGlua1VybCgnJylcbiAgICAgIHNldExpbmtMYWJlbCgnJylcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9LCBbYW5jaG9yRWxlbSwgZWRpdG9yLCBmaWVsZFNjaGVtYV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQ6IExpbmtQYXlsb2FkKSA9PiB7XG4gICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChUT0dHTEVfTElOS19DT01NQU5ELCBwYXlsb2FkKVxuXG4gICAgICAgICAgLy8gTm93LCBvcGVuIHRoZSBtb2RhbFxuICAgICAgICAgIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0b2dnbGVNb2RhbChkcmF3ZXJTbHVnKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgIClcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvciwgdG9nZ2xlTW9kYWwsIGRyYXdlclNsdWddKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0xpbmsgJiYgZWRpdG9yUmVmKSB7XG4gICAgICBlZGl0b3JSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzAnXG4gICAgICBlZGl0b3JSZWYuY3VycmVudC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlKC0xMDAwMHB4LCAtMTAwMDBweCknXG4gICAgfVxuICB9LCBbaXNMaW5rXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNjcm9sbGVyRWxlbSA9IGFuY2hvckVsZW0ucGFyZW50RWxlbWVudFxuXG4gICAgY29uc3QgdXBkYXRlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICB9KVxuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpXG5cbiAgICBpZiAoc2Nyb2xsZXJFbGVtICE9IG51bGwpIHtcbiAgICAgIHNjcm9sbGVyRWxlbS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpXG5cbiAgICAgIGlmIChzY3JvbGxlckVsZW0gIT0gbnVsbCkge1xuICAgICAgICBzY3JvbGxlckVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2FuY2hvckVsZW0ucGFyZW50RWxlbWVudCwgZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIoKHsgZWRpdG9yU3RhdGUgfSkgPT4ge1xuICAgICAgICBlZGl0b3JTdGF0ZS5yZWFkKCgpID0+IHtcbiAgICAgICAgICB2b2lkIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICB9KVxuICAgICAgfSksXG5cbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFNFTEVDVElPTl9DSEFOR0VfQ09NTUFORCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZChcbiAgICAgICAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgaWYgKGlzTGluaykge1xuICAgICAgICAgICAgc2V0SXNMaW5rKGZhbHNlKVxuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yLCBzZXRJc0xpbmssIGlzTGlua10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgfSlcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvcl0pXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstZWRpdG9yXCIgcmVmPXtlZGl0b3JSZWZ9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstaW5wdXRcIj5cbiAgICAgICAgICA8YSBocmVmPXtsaW5rVXJsfSByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICB7bGlua0xhYmVsICE9IG51bGwgJiYgbGlua0xhYmVsLmxlbmd0aCA+IDAgPyBsaW5rTGFiZWwgOiBsaW5rVXJsfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiRWRpdCBsaW5rXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImxpbmstZWRpdFwiXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgIHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25Nb3VzZURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJSZW1vdmUgbGlua1wiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5rLXRyYXNoXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChUT0dHTEVfTElOS19DT01NQU5ELCBudWxsKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxMaW5rRHJhd2VyXG4gICAgICAgIGRyYXdlclNsdWc9e2RyYXdlclNsdWd9XG4gICAgICAgIGZpZWxkU2NoZW1hPXtmaWVsZFNjaGVtYX1cbiAgICAgICAgaGFuZGxlTW9kYWxTdWJtaXQ9eyhmaWVsZHM6IEZpZWxkcykgPT4ge1xuICAgICAgICAgIGNsb3NlTW9kYWwoZHJhd2VyU2x1ZylcblxuICAgICAgICAgIGNvbnN0IGRhdGEgPSByZWR1Y2VGaWVsZHNUb1ZhbHVlcyhmaWVsZHMsIHRydWUpXG5cbiAgICAgICAgICBjb25zdCBuZXdMaW5rUGF5bG9hZDogTGlua1BheWxvYWQgPSBkYXRhIGFzIExpbmtQYXlsb2FkXG5cbiAgICAgICAgICBlZGl0b3IuZGlzcGF0Y2hDb21tYW5kKFRPR0dMRV9MSU5LX0NPTU1BTkQsIG5ld0xpbmtQYXlsb2FkKVxuICAgICAgICB9fVxuICAgICAgICBpbml0aWFsU3RhdGU9e2luaXRpYWxTdGF0ZX1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCIsIkxpbmtFZGl0b3IiLCJjcmVhdGVDb21tYW5kIiwiYW5jaG9yRWxlbSIsImZpZWxkcyIsImN1c3RvbUZpZWxkU2NoZW1hIiwiZWRpdG9yIiwidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsImVkaXRvclJlZiIsInVzZVJlZiIsImxpbmtVcmwiLCJzZXRMaW5rVXJsIiwidXNlU3RhdGUiLCJsaW5rTGFiZWwiLCJzZXRMaW5rTGFiZWwiLCJ1dWlkIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsImNvbmZpZyIsInVzZUNvbmZpZyIsInVzZXIiLCJ1c2VBdXRoIiwiY29kZSIsImxvY2FsZSIsInVzZUxvY2FsZSIsImkxOG4iLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJnZXREb2NQcmVmZXJlbmNlcyIsInVzZURvY3VtZW50SW5mbyIsImluaXRpYWxTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsImZpZWxkU2NoZW1hIiwidHJhbnNmb3JtRXh0cmFGaWVsZHMiLCJjbG9zZU1vZGFsIiwidG9nZ2xlTW9kYWwiLCJ1c2VNb2RhbCIsImVkaXREZXB0aCIsInVzZUVkaXREZXB0aCIsImlzTGluayIsInNldElzTGluayIsImRyYXdlclNsdWciLCJmb3JtYXREcmF3ZXJTbHVnIiwiZGVwdGgiLCJzbHVnIiwidXBkYXRlTGlua0VkaXRvciIsInVzZUNhbGxiYWNrIiwic2VsZWN0aW9uIiwiJGdldFNlbGVjdGlvbiIsInNlbGVjdGVkTm9kZURvbVJlY3QiLCIkaXNSYW5nZVNlbGVjdGlvbiIsIm5vZGUiLCJnZXRTZWxlY3RlZE5vZGUiLCJnZXRFbGVtZW50QnlLZXkiLCJnZXRLZXkiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJsaW5rUGFyZW50IiwiJGZpbmRNYXRjaGluZ1BhcmVudCIsIiRpc0xpbmtOb2RlIiwiZGF0YSIsImRvYyIsInVuZGVmaW5lZCIsImxpbmtUeXBlIiwibmV3VGFiIiwibm9mb2xsb3ciLCJzcG9uc29yZWQiLCJ1cmwiLCJnZXRGaWVsZHMiLCJ0ZXh0IiwiZ2V0VGV4dENvbnRlbnQiLCJyZWxhdGlvblRvIiwidmFsdWUiLCJwcmVmZXJlbmNlcyIsInN0YXRlIiwiYnVpbGRTdGF0ZUZyb21TY2hlbWEiLCJvcGVyYXRpb24iLCJlZGl0b3JFbGVtIiwiY3VycmVudCIsIm5hdGl2ZVNlbGVjdGlvbiIsIndpbmRvdyIsImdldFNlbGVjdGlvbiIsImFjdGl2ZUVsZW1lbnQiLCJkb2N1bWVudCIsInJvb3RFbGVtZW50IiwiZ2V0Um9vdEVsZW1lbnQiLCJjb250YWlucyIsImFuY2hvck5vZGUiLCJpc0VkaXRhYmxlIiwiZ2V0UmFuZ2VBdCIsInkiLCJzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3IiLCJjbGFzc05hbWUiLCJ1c2VFZmZlY3QiLCJtZXJnZVJlZ2lzdGVyIiwicmVnaXN0ZXJDb21tYW5kIiwicGF5bG9hZCIsImRpc3BhdGNoQ29tbWFuZCIsIlRPR0dMRV9MSU5LX0NPTU1BTkQiLCJ0aGVuIiwiY2F0Y2giLCJlcnJvciIsIkNPTU1BTkRfUFJJT1JJVFlfTE9XIiwic3R5bGUiLCJvcGFjaXR5IiwidHJhbnNmb3JtIiwic2Nyb2xsZXJFbGVtIiwicGFyZW50RWxlbWVudCIsInVwZGF0ZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVnaXN0ZXJVcGRhdGVMaXN0ZW5lciIsImVkaXRvclN0YXRlIiwiU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5EIiwiS0VZX0VTQ0FQRV9DT01NQU5EIiwiQ09NTUFORF9QUklPUklUWV9ISUdIIiwiUmVhY3QiLCJGcmFnbWVudCIsImRpdiIsInJlZiIsImEiLCJocmVmIiwicmVsIiwidGFyZ2V0IiwibGVuZ3RoIiwiYnV0dG9uIiwiYXJpYS1sYWJlbCIsIm9uQ2xpY2siLCJvbk1vdXNlRG93biIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ0YWJJbmRleCIsInR5cGUiLCJMaW5rRHJhd2VyIiwiaGFuZGxlTW9kYWxTdWJtaXQiLCJyZWR1Y2VG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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/features/Link/plugins/floatingLinkEditor/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAG7C,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAC7C;IACE,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,gBAAgB,CAGrB,CAAA"}
|