@contentful/field-editor-rich-text 3.15.0 → 3.15.1
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/cjs/ContentfulEditorProvider.js +8 -8
- package/dist/cjs/RichTextEditor.js +22 -20
- package/dist/cjs/RichTextEditor.styles.js +2 -1
- package/dist/cjs/SdkProvider.js +7 -5
- package/dist/cjs/SyncEditorChanges.js +15 -6
- package/dist/cjs/Toolbar/_tests_/toolbar.test.js +17 -15
- package/dist/cjs/Toolbar/components/EmbedEntityWidget.js +14 -10
- package/dist/cjs/Toolbar/components/EmbeddedEntityDropdownButton.js +10 -8
- package/dist/cjs/Toolbar/components/StickyToolbarWrapper.js +2 -2
- package/dist/cjs/Toolbar/index.js +33 -30
- package/dist/cjs/__fixtures__/FakeSdk.js +3 -3
- package/dist/cjs/__fixtures__/asset/index.js +10 -10
- package/dist/cjs/__fixtures__/content-type/index.js +1 -1
- package/dist/cjs/__fixtures__/entry/index.js +7 -7
- package/dist/cjs/__fixtures__/fixtures.js +8 -6
- package/dist/cjs/__fixtures__/locale/index.js +2 -2
- package/dist/cjs/__fixtures__/space/index.js +1 -1
- package/dist/cjs/constants/Schema.js +1 -0
- package/dist/cjs/dialogs/HypelinkDialog/HyperlinkDialog.js +43 -38
- package/dist/cjs/dialogs/openRichTextDialog.js +6 -4
- package/dist/cjs/dialogs/renderRichTextDialog.js +6 -4
- package/dist/cjs/helpers/__tests__/removeInternalMarks.test.js +10 -10
- package/dist/cjs/helpers/callbacks.js +3 -3
- package/dist/cjs/helpers/config.js +2 -2
- package/dist/cjs/helpers/editor.js +53 -44
- package/dist/cjs/helpers/environment.js +3 -3
- package/dist/cjs/helpers/formatDateAndTime.js +5 -4
- package/dist/cjs/helpers/getAllowedResourcesForNodeType.js +22 -5
- package/dist/cjs/helpers/getLinkedContentTypeIdsForNodeType.js +29 -5
- package/dist/cjs/helpers/nodeFactory.js +6 -6
- package/dist/cjs/helpers/sdkNavigatorSlideIn.js +14 -6
- package/dist/cjs/helpers/sdkNavigatorSlideIn.spec.js +3 -2
- package/dist/cjs/helpers/toSlateValue.js +14 -3
- package/dist/cjs/helpers/transformers.js +5 -5
- package/dist/cjs/helpers/validations.js +12 -9
- package/dist/cjs/index.js +7 -5
- package/dist/cjs/internal/constants.js +4 -2
- package/dist/cjs/internal/hooks.js +8 -6
- package/dist/cjs/internal/misc.js +15 -12
- package/dist/cjs/internal/queries.js +115 -108
- package/dist/cjs/internal/transforms.js +51 -48
- package/dist/cjs/internal/types/editor.js +3 -1
- package/dist/cjs/plugins/Break/createExitBreakPlugin.test.js +4 -3
- package/dist/cjs/plugins/Break/createResetNodePlugin.js +1 -0
- package/dist/cjs/plugins/Break/createSoftBreakPlugin.test.js +3 -3
- package/dist/cjs/plugins/CommandPalette/components/CommandList.js +35 -33
- package/dist/cjs/plugins/CommandPalette/components/CommandList.styles.js +1 -1
- package/dist/cjs/plugins/CommandPalette/components/CommandPrompt.js +7 -5
- package/dist/cjs/plugins/CommandPalette/hooks/useCommandList.js +7 -3
- package/dist/cjs/plugins/CommandPalette/onKeyDown.js +6 -1
- package/dist/cjs/plugins/CommandPalette/onKeyDown.spec.js +6 -4
- package/dist/cjs/plugins/CommandPalette/useCommands.js +3 -3
- package/dist/cjs/plugins/CommandPalette/utils/fetchEntries.js +2 -0
- package/dist/cjs/plugins/CommandPalette/utils/trimLeadingSlash.js +6 -1
- package/dist/cjs/plugins/DragAndDrop/index.js +9 -1
- package/dist/cjs/plugins/EmbeddedEntityBlock/LinkedEntityBlock.js +10 -8
- package/dist/cjs/plugins/EmbeddedEntityBlock/index.js +3 -3
- package/dist/cjs/plugins/EmbeddedEntityInline/FetchingWrappedInlineEntryCard.js +19 -17
- package/dist/cjs/plugins/EmbeddedEntityInline/LinkedEntityInline.js +9 -7
- package/dist/cjs/plugins/EmbeddedResourceBlock/LinkedResourceBlock.js +5 -5
- package/dist/cjs/plugins/EmbeddedResourceInline/FetchingWrappedResourceInlineCard.js +13 -11
- package/dist/cjs/plugins/EmbeddedResourceInline/LinkedResourceInline.js +5 -5
- package/dist/cjs/plugins/Heading/__tests__/createHeadingPlugin.test.js +32 -32
- package/dist/cjs/plugins/Heading/components/Heading.js +13 -10
- package/dist/cjs/plugins/Heading/components/ToolbarHeadingButton.js +19 -11
- package/dist/cjs/plugins/Heading/createHeadingPlugin.js +7 -2
- package/dist/cjs/plugins/Hr/index.js +19 -14
- package/dist/cjs/plugins/Hyperlink/HyperlinkModal.js +32 -28
- package/dist/cjs/plugins/Hyperlink/__tests__/createHyperlinkPlugin.test.js +8 -8
- package/dist/cjs/plugins/Hyperlink/components/EntityHyperlink.js +8 -6
- package/dist/cjs/plugins/Hyperlink/components/ResourceHyperlink.js +8 -6
- package/dist/cjs/plugins/Hyperlink/components/ToolbarHyperlinkButton.js +6 -4
- package/dist/cjs/plugins/Hyperlink/components/UrlHyperlink.js +7 -5
- package/dist/cjs/plugins/Hyperlink/components/styles.js +1 -1
- package/dist/cjs/plugins/Hyperlink/createHyperlinkPlugin.js +10 -4
- package/dist/cjs/plugins/Hyperlink/useEntityInfo.js +6 -3
- package/dist/cjs/plugins/Hyperlink/useResourceEntityInfo.js +6 -4
- package/dist/cjs/plugins/Hyperlink/utils.js +4 -4
- package/dist/cjs/plugins/List/__tests__/createListPlugin.test.js +13 -13
- package/dist/cjs/plugins/List/__tests__/insertListBreak.test.js +29 -25
- package/dist/cjs/plugins/List/__tests__/insertListFragment.test.js +22 -22
- package/dist/cjs/plugins/List/components/List.js +9 -7
- package/dist/cjs/plugins/List/components/ListItem.js +6 -4
- package/dist/cjs/plugins/List/components/ToolbarListButton.js +7 -5
- package/dist/cjs/plugins/List/createListPlugin.js +4 -0
- package/dist/cjs/plugins/List/insertListBreak.js +13 -4
- package/dist/cjs/plugins/List/insertListFragment.js +18 -5
- package/dist/cjs/plugins/List/onKeyDownList.js +7 -4
- package/dist/cjs/plugins/List/transforms/insertListItem.js +17 -2
- package/dist/cjs/plugins/List/transforms/moveListItemDown.js +8 -2
- package/dist/cjs/plugins/List/transforms/moveListItems.js +7 -2
- package/dist/cjs/plugins/List/transforms/moveListItems.test.js +15 -14
- package/dist/cjs/plugins/List/transforms/toggleList.js +8 -3
- package/dist/cjs/plugins/List/transforms/toggleList.spec.js +28 -28
- package/dist/cjs/plugins/List/transforms/unwrapList.js +7 -2
- package/dist/cjs/plugins/List/utils.js +12 -11
- package/dist/cjs/plugins/List/withList.js +6 -2
- package/dist/cjs/plugins/Marks/Bold.js +9 -7
- package/dist/cjs/plugins/Marks/Code.js +15 -7
- package/dist/cjs/plugins/Marks/Italic.js +9 -7
- package/dist/cjs/plugins/Marks/Subscript.js +10 -8
- package/dist/cjs/plugins/Marks/Superscript.js +10 -8
- package/dist/cjs/plugins/Marks/Underline.js +6 -4
- package/dist/cjs/plugins/Marks/components/MarkToolbarButton.js +9 -7
- package/dist/cjs/plugins/Marks/helpers.js +5 -5
- package/dist/cjs/plugins/Normalizer/baseRules.js +2 -0
- package/dist/cjs/plugins/Normalizer/createNormalizerPlugin.test.js +12 -12
- package/dist/cjs/plugins/Normalizer/utils.js +4 -3
- package/dist/cjs/plugins/Normalizer/withNormalizer.js +23 -3
- package/dist/cjs/plugins/Paragraph/Paragraph.js +6 -4
- package/dist/cjs/plugins/Paragraph/__tests__/createParagraphPlugin.test.js +32 -32
- package/dist/cjs/plugins/Paragraph/createParagraphPlugin.js +3 -2
- package/dist/cjs/plugins/PasteHTML/createPasteHTMLPlugin.js +9 -6
- package/dist/cjs/plugins/PasteHTML/utils/__tests__/sanitizeHTML.test.js +2 -0
- package/dist/cjs/plugins/PasteHTML/utils/sanitizeAnchors.js +9 -0
- package/dist/cjs/plugins/PasteHTML/utils/sanitizeHTML.js +17 -2
- package/dist/cjs/plugins/PasteHTML/utils/sanitizeSheets.js +13 -1
- package/dist/cjs/plugins/Quote/__test__/createQuotePlugin.test.js +21 -21
- package/dist/cjs/plugins/Quote/components/Quote.js +6 -4
- package/dist/cjs/plugins/Quote/components/ToolbarQuoteButton.js +6 -4
- package/dist/cjs/plugins/Quote/createQuotePlugin.js +1 -0
- package/dist/cjs/plugins/Quote/toggleQuote.js +5 -5
- package/dist/cjs/plugins/Quote/withQuote.js +4 -2
- package/dist/cjs/plugins/SelectOnBackspace/createSelectOnBackspacePlugin.js +1 -0
- package/dist/cjs/plugins/Table/__tests__/createTablePlugin.test.js +22 -22
- package/dist/cjs/plugins/Table/__tests__/helpers.test.js +4 -4
- package/dist/cjs/plugins/Table/actions/addColumn.js +5 -4
- package/dist/cjs/plugins/Table/actions/addRow.js +6 -3
- package/dist/cjs/plugins/Table/components/Cell.js +7 -5
- package/dist/cjs/plugins/Table/components/HeaderCell.js +7 -5
- package/dist/cjs/plugins/Table/components/Row.js +6 -4
- package/dist/cjs/plugins/Table/components/Table.js +8 -6
- package/dist/cjs/plugins/Table/components/TableActions.js +19 -16
- package/dist/cjs/plugins/Table/components/ToolbarButton.js +7 -4
- package/dist/cjs/plugins/Table/createTablePlugin.js +11 -1
- package/dist/cjs/plugins/Table/helpers.js +16 -12
- package/dist/cjs/plugins/Table/insertTableFragment.js +15 -2
- package/dist/cjs/plugins/Table/onKeyDownTable.js +10 -2
- package/dist/cjs/plugins/Table/tableTracking.js +6 -6
- package/dist/cjs/plugins/Text/__tests__/createTextPlugin.test.js +19 -17
- package/dist/cjs/plugins/Text/createTextPlugin.js +22 -5
- package/dist/cjs/plugins/Tracking/createTrackingPlugin.js +5 -4
- package/dist/cjs/plugins/Tracking/utils.js +6 -3
- package/dist/cjs/plugins/Voids/createVoidsPlugin.js +5 -0
- package/dist/cjs/plugins/Voids/transformVoid.js +1 -0
- package/dist/cjs/plugins/index.js +15 -3
- package/dist/cjs/plugins/shared/EmbeddedBlockToolbarIcon.js +12 -10
- package/dist/cjs/plugins/shared/EmbeddedBlockUtil.js +16 -6
- package/dist/cjs/plugins/shared/EmbeddedInlineToolbarIcon.js +10 -8
- package/dist/cjs/plugins/shared/EmbeddedInlineUtil.js +9 -5
- package/dist/cjs/plugins/shared/FetchingWrappedAssetCard.js +13 -11
- package/dist/cjs/plugins/shared/FetchingWrappedEntryCard.js +14 -12
- package/dist/cjs/plugins/shared/FetchingWrappedResourceCard.js +14 -11
- package/dist/cjs/plugins/shared/LinkedBlockWrapper.js +8 -4
- package/dist/cjs/plugins/shared/LinkedInlineWrapper.js +10 -6
- package/dist/cjs/plugins/shared/ResourceNewBadge.js +5 -3
- package/dist/cjs/plugins/shared/ToolbarButton.js +8 -6
- package/dist/cjs/plugins/shared/__tests__/FetchingWrappedAssetCard.test.js +10 -5
- package/dist/cjs/plugins/shared/__tests__/FetchingWrappedEntryCard.test.js +11 -6
- package/dist/cjs/plugins/shared/__tests__/FetchingWrappedResourceCard.test.js +15 -13
- package/dist/cjs/plugins/shared/utils.js +4 -1
- package/dist/cjs/test-utils/assertOutput.js +1 -0
- package/dist/cjs/test-utils/hyperscript.d.js +1 -0
- package/dist/cjs/test-utils/randomId.js +3 -1
- package/dist/cjs/test-utils/validation.js +8 -5
- package/dist/esm/ContentfulEditorProvider.js +4 -1
- package/dist/esm/RichTextEditor.js +13 -13
- package/dist/esm/RichTextEditor.styles.js +1 -0
- package/dist/esm/SdkProvider.js +2 -2
- package/dist/esm/SyncEditorChanges.js +18 -3
- package/dist/esm/Toolbar/_tests_/toolbar.test.js +12 -12
- package/dist/esm/Toolbar/components/EmbedEntityWidget.js +10 -8
- package/dist/esm/Toolbar/components/EmbeddedEntityDropdownButton.js +6 -6
- package/dist/esm/Toolbar/components/StickyToolbarWrapper.js +1 -1
- package/dist/esm/Toolbar/index.js +28 -27
- package/dist/esm/__fixtures__/FakeSdk.js +3 -3
- package/dist/esm/constants/Schema.js +1 -0
- package/dist/esm/dialogs/HypelinkDialog/HyperlinkDialog.js +34 -31
- package/dist/esm/dialogs/openRichTextDialog.js +2 -2
- package/dist/esm/dialogs/renderRichTextDialog.js +2 -2
- package/dist/esm/helpers/__tests__/removeInternalMarks.test.js +10 -10
- package/dist/esm/helpers/callbacks.js +1 -1
- package/dist/esm/helpers/config.js +9 -1
- package/dist/esm/helpers/editor.js +22 -6
- package/dist/esm/helpers/extractNodes.js +3 -1
- package/dist/esm/helpers/formatDateAndTime.js +11 -2
- package/dist/esm/helpers/getAllowedResourcesForNodeType.js +19 -2
- package/dist/esm/helpers/getLinkedContentTypeIdsForNodeType.js +26 -2
- package/dist/esm/helpers/sdkNavigatorSlideIn.js +20 -6
- package/dist/esm/helpers/sdkNavigatorSlideIn.spec.js +1 -0
- package/dist/esm/helpers/toSlateValue.js +17 -3
- package/dist/esm/helpers/validations.js +5 -1
- package/dist/esm/internal/misc.js +23 -2
- package/dist/esm/internal/queries.js +11 -2
- package/dist/esm/internal/transforms.js +14 -3
- package/dist/esm/internal/types/editor.js +3 -1
- package/dist/esm/plugins/Break/createExitBreakPlugin.test.js +4 -3
- package/dist/esm/plugins/Break/createResetNodePlugin.js +1 -0
- package/dist/esm/plugins/Break/createSoftBreakPlugin.test.js +3 -3
- package/dist/esm/plugins/CommandPalette/components/CommandList.js +30 -30
- package/dist/esm/plugins/CommandPalette/components/CommandPrompt.js +2 -2
- package/dist/esm/plugins/CommandPalette/createCommandPalettePlugin.js +11 -1
- package/dist/esm/plugins/CommandPalette/hooks/useCommandList.js +2 -0
- package/dist/esm/plugins/CommandPalette/onKeyDown.js +5 -0
- package/dist/esm/plugins/CommandPalette/onKeyDown.spec.js +2 -2
- package/dist/esm/plugins/CommandPalette/useCommands.js +3 -3
- package/dist/esm/plugins/CommandPalette/utils/fetchEntries.js +2 -0
- package/dist/esm/plugins/CommandPalette/utils/trimLeadingSlash.js +6 -1
- package/dist/esm/plugins/DragAndDrop/index.js +9 -1
- package/dist/esm/plugins/EmbeddedEntityBlock/LinkedEntityBlock.js +6 -6
- package/dist/esm/plugins/EmbeddedEntityInline/FetchingWrappedInlineEntryCard.js +14 -14
- package/dist/esm/plugins/EmbeddedEntityInline/LinkedEntityInline.js +5 -5
- package/dist/esm/plugins/EmbeddedResourceBlock/LinkedResourceBlock.js +4 -4
- package/dist/esm/plugins/EmbeddedResourceInline/FetchingWrappedResourceInlineCard.js +9 -9
- package/dist/esm/plugins/EmbeddedResourceInline/LinkedResourceInline.js +4 -4
- package/dist/esm/plugins/Heading/__tests__/createHeadingPlugin.test.js +32 -32
- package/dist/esm/plugins/Heading/components/Heading.js +8 -7
- package/dist/esm/plugins/Heading/components/ToolbarHeadingButton.js +14 -8
- package/dist/esm/plugins/Heading/createHeadingPlugin.js +6 -1
- package/dist/esm/plugins/Hr/index.js +8 -5
- package/dist/esm/plugins/Hyperlink/HyperlinkModal.js +25 -23
- package/dist/esm/plugins/Hyperlink/__tests__/createHyperlinkPlugin.test.js +8 -8
- package/dist/esm/plugins/Hyperlink/components/EntityHyperlink.js +4 -4
- package/dist/esm/plugins/Hyperlink/components/ResourceHyperlink.js +4 -4
- package/dist/esm/plugins/Hyperlink/components/ToolbarHyperlinkButton.js +2 -2
- package/dist/esm/plugins/Hyperlink/components/UrlHyperlink.js +3 -3
- package/dist/esm/plugins/Hyperlink/createHyperlinkPlugin.js +5 -1
- package/dist/esm/plugins/Hyperlink/useEntityInfo.js +6 -3
- package/dist/esm/plugins/Hyperlink/useResourceEntityInfo.js +2 -2
- package/dist/esm/plugins/Hyperlink/utils.js +1 -1
- package/dist/esm/plugins/List/__tests__/createListPlugin.test.js +13 -13
- package/dist/esm/plugins/List/__tests__/insertListBreak.test.js +29 -25
- package/dist/esm/plugins/List/__tests__/insertListFragment.test.js +22 -22
- package/dist/esm/plugins/List/components/List.js +1 -1
- package/dist/esm/plugins/List/components/ListItem.js +1 -1
- package/dist/esm/plugins/List/components/ToolbarListButton.js +3 -3
- package/dist/esm/plugins/List/createListPlugin.js +4 -0
- package/dist/esm/plugins/List/insertListBreak.js +13 -4
- package/dist/esm/plugins/List/insertListFragment.js +18 -5
- package/dist/esm/plugins/List/onKeyDownList.js +5 -2
- package/dist/esm/plugins/List/transforms/insertListItem.js +20 -3
- package/dist/esm/plugins/List/transforms/moveListItemDown.js +8 -2
- package/dist/esm/plugins/List/transforms/moveListItems.js +7 -2
- package/dist/esm/plugins/List/transforms/moveListItems.test.js +15 -14
- package/dist/esm/plugins/List/transforms/toggleList.js +8 -3
- package/dist/esm/plugins/List/transforms/toggleList.spec.js +28 -28
- package/dist/esm/plugins/List/transforms/unwrapList.js +7 -2
- package/dist/esm/plugins/List/utils.js +7 -2
- package/dist/esm/plugins/List/withList.js +6 -2
- package/dist/esm/plugins/Marks/Bold.js +2 -2
- package/dist/esm/plugins/Marks/Code.js +8 -2
- package/dist/esm/plugins/Marks/Italic.js +2 -2
- package/dist/esm/plugins/Marks/Subscript.js +2 -2
- package/dist/esm/plugins/Marks/Superscript.js +2 -2
- package/dist/esm/plugins/Marks/Underline.js +2 -2
- package/dist/esm/plugins/Marks/components/MarkToolbarButton.js +4 -4
- package/dist/esm/plugins/Marks/helpers.js +1 -1
- package/dist/esm/plugins/Normalizer/baseRules.js +4 -0
- package/dist/esm/plugins/Normalizer/createNormalizerPlugin.test.js +12 -12
- package/dist/esm/plugins/Normalizer/utils.js +1 -0
- package/dist/esm/plugins/Normalizer/withNormalizer.js +22 -2
- package/dist/esm/plugins/Paragraph/Paragraph.js +1 -1
- package/dist/esm/plugins/Paragraph/__tests__/createParagraphPlugin.test.js +32 -32
- package/dist/esm/plugins/Paragraph/createParagraphPlugin.js +2 -1
- package/dist/esm/plugins/PasteHTML/createPasteHTMLPlugin.js +9 -3
- package/dist/esm/plugins/PasteHTML/utils/__tests__/sanitizeHTML.test.js +2 -0
- package/dist/esm/plugins/PasteHTML/utils/sanitizeAnchors.js +27 -1
- package/dist/esm/plugins/PasteHTML/utils/sanitizeHTML.js +17 -2
- package/dist/esm/plugins/PasteHTML/utils/sanitizeSheets.js +13 -1
- package/dist/esm/plugins/Quote/__test__/createQuotePlugin.test.js +21 -21
- package/dist/esm/plugins/Quote/components/Quote.js +1 -1
- package/dist/esm/plugins/Quote/components/ToolbarQuoteButton.js +2 -2
- package/dist/esm/plugins/Quote/createQuotePlugin.js +1 -0
- package/dist/esm/plugins/Quote/shouldResetQuote.js +6 -1
- package/dist/esm/plugins/Quote/toggleQuote.js +1 -1
- package/dist/esm/plugins/Quote/withQuote.js +4 -2
- package/dist/esm/plugins/SelectOnBackspace/createSelectOnBackspacePlugin.js +1 -0
- package/dist/esm/plugins/Table/__tests__/createTablePlugin.test.js +22 -22
- package/dist/esm/plugins/Table/__tests__/helpers.test.js +4 -4
- package/dist/esm/plugins/Table/actions/addColumn.js +2 -1
- package/dist/esm/plugins/Table/actions/addRow.js +3 -0
- package/dist/esm/plugins/Table/components/Cell.js +2 -2
- package/dist/esm/plugins/Table/components/HeaderCell.js +2 -2
- package/dist/esm/plugins/Table/components/Row.js +1 -1
- package/dist/esm/plugins/Table/components/Table.js +3 -3
- package/dist/esm/plugins/Table/components/TableActions.js +12 -11
- package/dist/esm/plugins/Table/components/ToolbarButton.js +3 -2
- package/dist/esm/plugins/Table/createTablePlugin.js +11 -1
- package/dist/esm/plugins/Table/helpers.js +10 -1
- package/dist/esm/plugins/Table/insertTableFragment.js +15 -2
- package/dist/esm/plugins/Table/onKeyDownTable.js +10 -2
- package/dist/esm/plugins/Table/tableTracking.js +6 -6
- package/dist/esm/plugins/Text/__tests__/createTextPlugin.test.js +19 -17
- package/dist/esm/plugins/Text/createTextPlugin.js +22 -5
- package/dist/esm/plugins/Tracking/createTrackingPlugin.js +2 -1
- package/dist/esm/plugins/Tracking/utils.js +1 -0
- package/dist/esm/plugins/Voids/createVoidsPlugin.js +5 -0
- package/dist/esm/plugins/Voids/transformVoid.js +4 -1
- package/dist/esm/plugins/index.js +12 -0
- package/dist/esm/plugins/shared/EmbeddedBlockToolbarIcon.js +5 -5
- package/dist/esm/plugins/shared/EmbeddedBlockUtil.js +15 -5
- package/dist/esm/plugins/shared/EmbeddedInlineToolbarIcon.js +5 -5
- package/dist/esm/plugins/shared/EmbeddedInlineUtil.js +8 -4
- package/dist/esm/plugins/shared/FetchingWrappedAssetCard.js +8 -8
- package/dist/esm/plugins/shared/FetchingWrappedEntryCard.js +9 -9
- package/dist/esm/plugins/shared/FetchingWrappedResourceCard.js +9 -8
- package/dist/esm/plugins/shared/LinkedBlockWrapper.js +7 -3
- package/dist/esm/plugins/shared/LinkedInlineWrapper.js +5 -3
- package/dist/esm/plugins/shared/ResourceNewBadge.js +1 -1
- package/dist/esm/plugins/shared/ToolbarButton.js +3 -3
- package/dist/esm/plugins/shared/__tests__/FetchingWrappedAssetCard.test.js +5 -2
- package/dist/esm/plugins/shared/__tests__/FetchingWrappedEntryCard.test.js +5 -2
- package/dist/esm/plugins/shared/__tests__/FetchingWrappedResourceCard.test.js +8 -8
- package/dist/esm/plugins/shared/utils.js +4 -1
- package/dist/esm/test-utils/assertOutput.js +1 -0
- package/dist/esm/test-utils/hyperscript.d.js +1 -0
- package/dist/esm/test-utils/jsx.js +5 -1
- package/dist/esm/test-utils/randomId.js +3 -1
- package/dist/esm/test-utils/setEmptyDataAttribute.js +4 -1
- package/dist/esm/test-utils/validation.js +7 -4
- package/package.json +2 -2
|
@@ -9,20 +9,20 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
|
|
13
|
-
return
|
|
12
|
+
Superscript: function() {
|
|
13
|
+
return Superscript;
|
|
14
14
|
},
|
|
15
15
|
ToolbarDropdownSuperscriptButton: function() {
|
|
16
16
|
return ToolbarDropdownSuperscriptButton;
|
|
17
17
|
},
|
|
18
|
-
|
|
19
|
-
return
|
|
18
|
+
ToolbarSuperscriptButton: function() {
|
|
19
|
+
return ToolbarSuperscriptButton;
|
|
20
20
|
},
|
|
21
21
|
createSuperscriptPlugin: function() {
|
|
22
22
|
return createSuperscriptPlugin;
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
|
-
const _react = _interop_require_wildcard(require("react"));
|
|
25
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
26
26
|
const _f36icons = require("@contentful/f36-icons");
|
|
27
27
|
const _richtexttypes = require("@contentful/rich-text-types");
|
|
28
28
|
const _platebasicmarks = require("@udecode/plate-basic-marks");
|
|
@@ -50,7 +50,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
50
50
|
if (cache && cache.has(obj)) {
|
|
51
51
|
return cache.get(obj);
|
|
52
52
|
}
|
|
53
|
-
var newObj = {
|
|
53
|
+
var newObj = {
|
|
54
|
+
__proto__: null
|
|
55
|
+
};
|
|
54
56
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
55
57
|
for(var key in obj){
|
|
56
58
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -77,14 +79,14 @@ const styles = {
|
|
|
77
79
|
const ToolbarSuperscriptButton = (0, _MarkToolbarButton.createMarkToolbarButton)({
|
|
78
80
|
title: 'Superscript',
|
|
79
81
|
mark: _richtexttypes.MARKS.SUPERSCRIPT,
|
|
80
|
-
icon: _react.createElement(_f36icons.SuperscriptIcon, null)
|
|
82
|
+
icon: /*#__PURE__*/ _react.createElement(_f36icons.SuperscriptIcon, null)
|
|
81
83
|
});
|
|
82
84
|
const ToolbarDropdownSuperscriptButton = (0, _MarkToolbarButton.createMarkToolbarButton)({
|
|
83
85
|
title: 'Superscript',
|
|
84
86
|
mark: _richtexttypes.MARKS.SUPERSCRIPT
|
|
85
87
|
});
|
|
86
88
|
function Superscript(props) {
|
|
87
|
-
return _react.createElement("sup", {
|
|
89
|
+
return /*#__PURE__*/ _react.createElement("sup", {
|
|
88
90
|
...props.attributes,
|
|
89
91
|
className: styles.superscript
|
|
90
92
|
}, props.children);
|
|
@@ -19,7 +19,7 @@ _export(exports, {
|
|
|
19
19
|
return createUnderlinePlugin;
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
|
-
const _react = _interop_require_wildcard(require("react"));
|
|
22
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
23
23
|
const _f36icons = require("@contentful/f36-icons");
|
|
24
24
|
const _richtexttypes = require("@contentful/rich-text-types");
|
|
25
25
|
const _platebasicmarks = require("@udecode/plate-basic-marks");
|
|
@@ -47,7 +47,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
47
47
|
if (cache && cache.has(obj)) {
|
|
48
48
|
return cache.get(obj);
|
|
49
49
|
}
|
|
50
|
-
var newObj = {
|
|
50
|
+
var newObj = {
|
|
51
|
+
__proto__: null
|
|
52
|
+
};
|
|
51
53
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
52
54
|
for(var key in obj){
|
|
53
55
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -68,10 +70,10 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
68
70
|
const ToolbarUnderlineButton = (0, _MarkToolbarButton.createMarkToolbarButton)({
|
|
69
71
|
title: 'Underline',
|
|
70
72
|
mark: _richtexttypes.MARKS.UNDERLINE,
|
|
71
|
-
icon: _react.createElement(_f36icons.FormatUnderlinedIcon, null)
|
|
73
|
+
icon: /*#__PURE__*/ _react.createElement(_f36icons.FormatUnderlinedIcon, null)
|
|
72
74
|
});
|
|
73
75
|
function Underline(props) {
|
|
74
|
-
return _react.createElement("u", props.attributes, props.children);
|
|
76
|
+
return /*#__PURE__*/ _react.createElement("u", props.attributes, props.children);
|
|
75
77
|
}
|
|
76
78
|
const createUnderlinePlugin = ()=>(0, _platebasicmarks.createUnderlinePlugin)({
|
|
77
79
|
type: _richtexttypes.MARKS.UNDERLINE,
|
|
@@ -8,9 +8,9 @@ Object.defineProperty(exports, "createMarkToolbarButton", {
|
|
|
8
8
|
return createMarkToolbarButton;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const _react = _interop_require_wildcard(require("react"));
|
|
11
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
12
12
|
const _f36components = require("@contentful/f36-components");
|
|
13
|
-
const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
|
|
13
|
+
const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
|
|
14
14
|
const _emotion = require("emotion");
|
|
15
15
|
const _ContentfulEditorProvider = require("../../../ContentfulEditorProvider");
|
|
16
16
|
const _editor = require("../../../helpers/editor");
|
|
@@ -43,7 +43,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
43
43
|
if (cache && cache.has(obj)) {
|
|
44
44
|
return cache.get(obj);
|
|
45
45
|
}
|
|
46
|
-
var newObj = {
|
|
46
|
+
var newObj = {
|
|
47
|
+
__proto__: null
|
|
48
|
+
};
|
|
47
49
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
48
50
|
for(var key in obj){
|
|
49
51
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -67,8 +69,8 @@ const styles = {
|
|
|
67
69
|
color: _f36tokens.default.blue600
|
|
68
70
|
})
|
|
69
71
|
};
|
|
70
|
-
const createMarkToolbarButton = ({ mark
|
|
71
|
-
const Mark = ({ isDisabled
|
|
72
|
+
const createMarkToolbarButton = ({ mark, title, icon })=>{
|
|
73
|
+
const Mark = ({ isDisabled })=>{
|
|
72
74
|
const editor = (0, _ContentfulEditorProvider.useContentfulEditor)();
|
|
73
75
|
const handleClick = _react.useCallback(()=>{
|
|
74
76
|
if (!editor?.selection) return;
|
|
@@ -83,7 +85,7 @@ const createMarkToolbarButton = ({ mark , title , icon })=>{
|
|
|
83
85
|
]);
|
|
84
86
|
if (!editor) return null;
|
|
85
87
|
if (!icon) {
|
|
86
|
-
return _react.createElement(_f36components.Menu.Item, {
|
|
88
|
+
return /*#__PURE__*/ _react.createElement(_f36components.Menu.Item, {
|
|
87
89
|
onClick: handleClick,
|
|
88
90
|
disabled: isDisabled,
|
|
89
91
|
className: (0, _emotion.cx)({
|
|
@@ -92,7 +94,7 @@ const createMarkToolbarButton = ({ mark , title , icon })=>{
|
|
|
92
94
|
testId: `${mark}-toolbar-button`
|
|
93
95
|
}, title);
|
|
94
96
|
}
|
|
95
|
-
return _react.createElement(_ToolbarButton.ToolbarButton, {
|
|
97
|
+
return /*#__PURE__*/ _react.createElement(_ToolbarButton.ToolbarButton, {
|
|
96
98
|
title: title,
|
|
97
99
|
testId: `${mark}-toolbar-button`,
|
|
98
100
|
onClick: handleClick,
|
|
@@ -9,15 +9,15 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
toggleMarkAndDeactivateConflictingMarks: function() {
|
|
13
|
-
return toggleMarkAndDeactivateConflictingMarks;
|
|
14
|
-
},
|
|
15
12
|
buildMarkEventHandler: function() {
|
|
16
13
|
return buildMarkEventHandler;
|
|
14
|
+
},
|
|
15
|
+
toggleMarkAndDeactivateConflictingMarks: function() {
|
|
16
|
+
return toggleMarkAndDeactivateConflictingMarks;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
const _richtexttypes = require("@contentful/rich-text-types");
|
|
20
|
-
const _ishotkey = _interop_require_default(require("is-hotkey"));
|
|
20
|
+
const _ishotkey = /*#__PURE__*/ _interop_require_default(require("is-hotkey"));
|
|
21
21
|
const _queries = require("../../internal/queries");
|
|
22
22
|
const _transforms = require("../../internal/transforms");
|
|
23
23
|
function _interop_require_default(obj) {
|
|
@@ -36,7 +36,7 @@ const toggleMarkAndDeactivateConflictingMarks = (editor, mark)=>{
|
|
|
36
36
|
clear
|
|
37
37
|
});
|
|
38
38
|
};
|
|
39
|
-
const buildMarkEventHandler = (type)=>(editor, { options: { hotkey
|
|
39
|
+
const buildMarkEventHandler = (type)=>(editor, { options: { hotkey } })=>(event)=>{
|
|
40
40
|
if (editor.selection && hotkey && (0, _ishotkey.default)(hotkey, event)) {
|
|
41
41
|
event.preventDefault();
|
|
42
42
|
const isActive = (0, _queries.isMarkActive)(editor, type);
|
|
@@ -16,6 +16,7 @@ const isInline = (node)=>_editor.INLINE_TYPES.includes(node.type);
|
|
|
16
16
|
const isTextContainer = (node)=>_richtexttypes.TEXT_CONTAINERS.includes(node.type);
|
|
17
17
|
const baseRules = [
|
|
18
18
|
{
|
|
19
|
+
// Wrap orphaned text nodes in a paragraph
|
|
19
20
|
match: _queries.isText,
|
|
20
21
|
validNode: (editor, [, path])=>{
|
|
21
22
|
const parent = (0, _queries.getParentNode)(editor, path)?.[0];
|
|
@@ -26,6 +27,7 @@ const baseRules = [
|
|
|
26
27
|
}
|
|
27
28
|
},
|
|
28
29
|
{
|
|
30
|
+
// Wrap orphaned inline nodes in a paragraph,
|
|
29
31
|
match: {
|
|
30
32
|
type: _editor.INLINE_TYPES
|
|
31
33
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
/** @jsx jsx */ "use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
@@ -16,15 +16,15 @@ describe('Normalizer', ()=>{
|
|
|
16
16
|
];
|
|
17
17
|
let input;
|
|
18
18
|
beforeEach(()=>{
|
|
19
|
-
input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hul", null, (0, _testutils.jsx)("hli", null, (0, _testutils.jsx)("hembed", {
|
|
19
|
+
input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hul", null, /*#__PURE__*/ (0, _testutils.jsx)("hli", null, /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
|
|
20
20
|
type: "Entry",
|
|
21
21
|
id: "embedded-entry"
|
|
22
|
-
}), (0, _testutils.jsx)("hp", null, "List item"))));
|
|
22
|
+
}), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "List item"))));
|
|
23
23
|
});
|
|
24
|
-
const expected = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hul", null, (0, _testutils.jsx)("hli", null, (0, _testutils.jsx)("hp", null, "List item"))));
|
|
24
|
+
const expected = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hul", null, /*#__PURE__*/ (0, _testutils.jsx)("hli", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "List item"))));
|
|
25
25
|
describe('rule.match', ()=>{
|
|
26
26
|
it('matches elements of type "plugin.type" by default', ()=>{
|
|
27
|
-
const { editor
|
|
27
|
+
const { editor } = (0, _testutils.createTestEditor)({
|
|
28
28
|
input,
|
|
29
29
|
plugins: [
|
|
30
30
|
(0, _testutils.mockPlugin)({
|
|
@@ -54,14 +54,14 @@ describe('Normalizer', ()=>{
|
|
|
54
54
|
});
|
|
55
55
|
describe('rule.transform', ()=>{
|
|
56
56
|
it('works with conditional transformation', ()=>{
|
|
57
|
-
const { editor
|
|
58
|
-
input: (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hul", null, (0, _testutils.jsx)("hli", null, (0, _testutils.jsx)("hembed", {
|
|
57
|
+
const { editor } = (0, _testutils.createTestEditor)({
|
|
58
|
+
input: /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hul", null, /*#__PURE__*/ (0, _testutils.jsx)("hli", null, /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
|
|
59
59
|
type: "Entry",
|
|
60
60
|
id: "embedded-entry"
|
|
61
|
-
}), (0, _testutils.jsx)("hinline", {
|
|
61
|
+
}), /*#__PURE__*/ (0, _testutils.jsx)("hinline", {
|
|
62
62
|
type: "Entry",
|
|
63
63
|
id: "inline-entry"
|
|
64
|
-
}), (0, _testutils.jsx)("hp", null, "List item")))),
|
|
64
|
+
}), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "List item")))),
|
|
65
65
|
plugins: [
|
|
66
66
|
(0, _testutils.mockPlugin)({
|
|
67
67
|
isElement: true,
|
|
@@ -82,16 +82,16 @@ describe('Normalizer', ()=>{
|
|
|
82
82
|
});
|
|
83
83
|
(0, _testutils.assertOutput)({
|
|
84
84
|
editor,
|
|
85
|
-
expected: (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hul", null, (0, _testutils.jsx)("hli", null, (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("hinline", {
|
|
85
|
+
expected: /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hul", null, /*#__PURE__*/ (0, _testutils.jsx)("hli", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("hinline", {
|
|
86
86
|
type: "Entry",
|
|
87
87
|
id: "inline-entry"
|
|
88
|
-
})), (0, _testutils.jsx)("hp", null, "List item"))))
|
|
88
|
+
})), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "List item"))))
|
|
89
89
|
});
|
|
90
90
|
});
|
|
91
91
|
});
|
|
92
92
|
describe('rule.validChildren', ()=>{
|
|
93
93
|
it('supports custom functions', ()=>{
|
|
94
|
-
const { editor
|
|
94
|
+
const { editor } = (0, _testutils.createTestEditor)({
|
|
95
95
|
input,
|
|
96
96
|
plugins: [
|
|
97
97
|
(0, _testutils.mockPlugin)({
|
|
@@ -12,11 +12,11 @@ _export(exports, {
|
|
|
12
12
|
NormalizerError: function() {
|
|
13
13
|
return NormalizerError;
|
|
14
14
|
},
|
|
15
|
-
createValidatorFromTypes: function() {
|
|
16
|
-
return createValidatorFromTypes;
|
|
17
|
-
},
|
|
18
15
|
createTransformerFromObject: function() {
|
|
19
16
|
return createTransformerFromObject;
|
|
17
|
+
},
|
|
18
|
+
createValidatorFromTypes: function() {
|
|
19
|
+
return createValidatorFromTypes;
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
const _queries = require("../../internal/queries");
|
|
@@ -26,6 +26,7 @@ const createValidatorFromTypes = (types)=>(_, [node])=>{
|
|
|
26
26
|
return (0, _queries.isElement)(node) && types.includes(node.type);
|
|
27
27
|
};
|
|
28
28
|
const createTransformerFromObject = (transforms)=>{
|
|
29
|
+
// A default transformer must always be provided
|
|
29
30
|
const fallback = transforms['default'];
|
|
30
31
|
if (!fallback) {
|
|
31
32
|
throw new NormalizerError('A default transformer MUST be provided');
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "withNormalizer", {
|
|
|
8
8
|
return withNormalizer;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const _isplainobj = _interop_require_default(require("is-plain-obj"));
|
|
11
|
+
const _isplainobj = /*#__PURE__*/ _interop_require_default(require("is-plain-obj"));
|
|
12
12
|
const _transformers = require("../../helpers/transformers");
|
|
13
13
|
const _internal = require("../../internal");
|
|
14
14
|
const _queries = require("../../internal/queries");
|
|
@@ -21,25 +21,35 @@ function _interop_require_default(obj) {
|
|
|
21
21
|
}
|
|
22
22
|
const withNormalizer = (editor)=>{
|
|
23
23
|
const rules = _baseRules.baseRules;
|
|
24
|
+
// Derive normalization rules from other plugin's configurations
|
|
24
25
|
for (const p of editor.plugins){
|
|
25
|
-
const { normalizer: _rules
|
|
26
|
+
const { normalizer: _rules } = p;
|
|
26
27
|
if (!_rules) {
|
|
27
28
|
continue;
|
|
28
29
|
}
|
|
29
30
|
for (const _rule of _rules){
|
|
31
|
+
// Clone to avoid mutation bugs
|
|
30
32
|
const rule = {
|
|
31
33
|
..._rule
|
|
32
34
|
};
|
|
33
35
|
if (!rule.match && !p.isElement) {
|
|
34
36
|
throw new _utils.NormalizerError('rule.match MUST be defined in a non-element plugin');
|
|
35
37
|
}
|
|
38
|
+
// By default we filter elements with given plugin type
|
|
36
39
|
if (!rule.match) {
|
|
37
40
|
rule.match = {
|
|
38
41
|
type: (0, _queries.getPluginType)(editor, p.key)
|
|
39
42
|
};
|
|
40
43
|
}
|
|
44
|
+
// Conditional transformation e.g.
|
|
45
|
+
// {
|
|
46
|
+
// [BLOCKS.EMBEDDED_ASSET]: transformLift,
|
|
47
|
+
// default?: transformRemove
|
|
48
|
+
// }
|
|
49
|
+
//
|
|
41
50
|
if ((0, _isplainobj.default)(rule.transform)) {
|
|
42
51
|
if ('validNode' in rule) {
|
|
52
|
+
// I can't think of a use case. Disabled to prevent misuse
|
|
43
53
|
throw new _utils.NormalizerError('conditional transformations are not supported in validNode rules');
|
|
44
54
|
}
|
|
45
55
|
rule.transform = (0, _utils.createTransformerFromObject)({
|
|
@@ -47,33 +57,43 @@ const withNormalizer = (editor)=>{
|
|
|
47
57
|
...rule.transform
|
|
48
58
|
});
|
|
49
59
|
}
|
|
60
|
+
// By default all invalid nodes are removed.
|
|
50
61
|
if (!rule.transform) {
|
|
51
62
|
rule.transform = _transformers.transformRemove;
|
|
52
63
|
}
|
|
64
|
+
// Convert Types array syntax to a validator function
|
|
53
65
|
if ('validChildren' in rule && Array.isArray(rule.validChildren)) {
|
|
54
66
|
rule.validChildren = (0, _utils.createValidatorFromTypes)(rule.validChildren);
|
|
55
67
|
}
|
|
56
68
|
rules.push(rule);
|
|
57
69
|
}
|
|
58
70
|
}
|
|
71
|
+
// Wrap transformer in a withoutNormalizing() call to avoid unnecessary
|
|
72
|
+
// normalization cycles.
|
|
59
73
|
const _transform = (tr, entry)=>{
|
|
60
74
|
(0, _internal.withoutNormalizing)(editor, ()=>{
|
|
61
75
|
tr(editor, entry);
|
|
62
76
|
});
|
|
63
77
|
};
|
|
64
|
-
const { normalizeNode
|
|
78
|
+
const { normalizeNode } = editor;
|
|
79
|
+
// @ts-expect-error
|
|
65
80
|
editor.normalizeNode = (entry)=>{
|
|
66
81
|
const [node, path] = entry;
|
|
67
82
|
const children = (0, _queries.getChildren)(entry);
|
|
83
|
+
// The order of validNode rules Vs validChildren doesn't matter. Slate
|
|
84
|
+
// will always perform normalization in a depth-first fashion.
|
|
68
85
|
for (const rule of rules){
|
|
69
86
|
if (!(0, _queries.matchNode)(node, path, rule.match)) {
|
|
70
87
|
continue;
|
|
71
88
|
}
|
|
89
|
+
// Normalize node
|
|
72
90
|
if ('validNode' in rule && !rule.validNode(editor, entry)) {
|
|
73
91
|
_transform(rule.transform, entry);
|
|
74
92
|
return;
|
|
75
93
|
}
|
|
94
|
+
// Normalize node.children
|
|
76
95
|
if ('validChildren' in rule) {
|
|
96
|
+
// It can not be an array since we enforced it earlier
|
|
77
97
|
const isValidChild = rule.validChildren;
|
|
78
98
|
const invalidChildEntry = children.find((entry)=>!isValidChild(editor, entry));
|
|
79
99
|
if (invalidChildEntry) {
|
|
@@ -8,8 +8,8 @@ Object.defineProperty(exports, "Paragraph", {
|
|
|
8
8
|
return Paragraph;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const _react = _interop_require_wildcard(require("react"));
|
|
12
|
-
const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
|
|
11
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
12
|
+
const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
|
|
13
13
|
const _richtexttypes = require("@contentful/rich-text-types");
|
|
14
14
|
const _emotion = require("emotion");
|
|
15
15
|
function _interop_require_default(obj) {
|
|
@@ -38,7 +38,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
38
38
|
if (cache && cache.has(obj)) {
|
|
39
39
|
return cache.get(obj);
|
|
40
40
|
}
|
|
41
|
-
var newObj = {
|
|
41
|
+
var newObj = {
|
|
42
|
+
__proto__: null
|
|
43
|
+
};
|
|
42
44
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
43
45
|
for(var key in obj){
|
|
44
46
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -63,7 +65,7 @@ const styles = {
|
|
|
63
65
|
`
|
|
64
66
|
};
|
|
65
67
|
function Paragraph(props) {
|
|
66
|
-
return _react.createElement("div", {
|
|
68
|
+
return /*#__PURE__*/ _react.createElement("div", {
|
|
67
69
|
...props.attributes,
|
|
68
70
|
className: styles[_richtexttypes.BLOCKS.PARAGRAPH]
|
|
69
71
|
}, props.children);
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
/* eslint-disable react/no-unknown-property */ /** @jsx jsx */ "use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
5
|
const _testutils = require("../../../test-utils");
|
|
6
6
|
describe('normalization', ()=>{
|
|
7
7
|
it('can contain inline entries & hyperlinks', ()=>{
|
|
8
|
-
const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hp", null, "some text before", (0, _testutils.jsx)("hinline", {
|
|
8
|
+
const input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "some text before", /*#__PURE__*/ (0, _testutils.jsx)("hinline", {
|
|
9
9
|
type: "Entry",
|
|
10
10
|
id: "inline-entry"
|
|
11
|
-
}), (0, _testutils.jsx)("hlink", {
|
|
11
|
+
}), /*#__PURE__*/ (0, _testutils.jsx)("hlink", {
|
|
12
12
|
uri: "https://contentful.com"
|
|
13
|
-
}), (0, _testutils.jsx)("hlink", {
|
|
13
|
+
}), /*#__PURE__*/ (0, _testutils.jsx)("hlink", {
|
|
14
14
|
entry: "entry-id"
|
|
15
|
-
}), (0, _testutils.jsx)("hlink", {
|
|
15
|
+
}), /*#__PURE__*/ (0, _testutils.jsx)("hlink", {
|
|
16
16
|
resource: "resource-urn"
|
|
17
|
-
}), (0, _testutils.jsx)("hlink", {
|
|
17
|
+
}), /*#__PURE__*/ (0, _testutils.jsx)("hlink", {
|
|
18
18
|
asset: "asset-id"
|
|
19
19
|
}), "some text after"));
|
|
20
20
|
(0, _testutils.assertOutput)({
|
|
@@ -23,20 +23,20 @@ describe('normalization', ()=>{
|
|
|
23
23
|
});
|
|
24
24
|
});
|
|
25
25
|
it('wraps orphaned text nodes in a paragraph', ()=>{
|
|
26
|
-
const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hp", null, "valid text"), (0, _testutils.jsx)("hh1", null, "valid text"), (0, _testutils.jsx)("htable", null, (0, _testutils.jsx)("htr", null, (0, _testutils.jsx)("htd", null, "invalid text"))));
|
|
27
|
-
const expected = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hp", null, "valid text"), (0, _testutils.jsx)("hh1", null, "valid text"), (0, _testutils.jsx)("htable", null, (0, _testutils.jsx)("htr", null, (0, _testutils.jsx)("htd", null, (0, _testutils.jsx)("hp", null, "invalid text")))), (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("htext", null)));
|
|
26
|
+
const input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "valid text"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "valid text"), /*#__PURE__*/ (0, _testutils.jsx)("htable", null, /*#__PURE__*/ (0, _testutils.jsx)("htr", null, /*#__PURE__*/ (0, _testutils.jsx)("htd", null, "invalid text"))));
|
|
27
|
+
const expected = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "valid text"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "valid text"), /*#__PURE__*/ (0, _testutils.jsx)("htable", null, /*#__PURE__*/ (0, _testutils.jsx)("htr", null, /*#__PURE__*/ (0, _testutils.jsx)("htd", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "invalid text")))), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("htext", null)));
|
|
28
28
|
(0, _testutils.assertOutput)({
|
|
29
29
|
input,
|
|
30
30
|
expected
|
|
31
31
|
});
|
|
32
32
|
});
|
|
33
33
|
it('unwraps nested paragraphs', ()=>{
|
|
34
|
-
const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hp", null, "some", (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("htext", {
|
|
34
|
+
const input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "some", /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("htext", {
|
|
35
35
|
bold: true,
|
|
36
36
|
italic: true,
|
|
37
37
|
underline: true
|
|
38
38
|
}, "paragraph")), "text"));
|
|
39
|
-
const expected = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hp", null, "some", (0, _testutils.jsx)("htext", {
|
|
39
|
+
const expected = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "some", /*#__PURE__*/ (0, _testutils.jsx)("htext", {
|
|
40
40
|
bold: true,
|
|
41
41
|
italic: true,
|
|
42
42
|
underline: true
|
|
@@ -48,76 +48,76 @@ describe('normalization', ()=>{
|
|
|
48
48
|
});
|
|
49
49
|
describe('lifts other invalid children', ()=>{
|
|
50
50
|
it('block void elements', ()=>{
|
|
51
|
-
const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("hembed", {
|
|
51
|
+
const input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
|
|
52
52
|
type: "Asset",
|
|
53
53
|
id: "1"
|
|
54
|
-
}), " start"), (0, _testutils.jsx)("hp", null, "end ", (0, _testutils.jsx)("hembed", {
|
|
54
|
+
}), " start"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "end ", /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
|
|
55
55
|
type: "Asset",
|
|
56
56
|
id: "2"
|
|
57
|
-
})), (0, _testutils.jsx)("hp", null, "in ", (0, _testutils.jsx)("hembed", {
|
|
57
|
+
})), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "in ", /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
|
|
58
58
|
type: "Asset",
|
|
59
59
|
id: "3"
|
|
60
|
-
}), " between"), (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("hembed", {
|
|
60
|
+
}), " between"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
|
|
61
61
|
type: "Entry",
|
|
62
62
|
id: "1"
|
|
63
|
-
}), " start"), (0, _testutils.jsx)("hp", null, "end ", (0, _testutils.jsx)("hembed", {
|
|
63
|
+
}), " start"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "end ", /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
|
|
64
64
|
type: "Entry",
|
|
65
65
|
id: "2"
|
|
66
|
-
})), (0, _testutils.jsx)("hp", null, "in ", (0, _testutils.jsx)("hembed", {
|
|
66
|
+
})), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "in ", /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
|
|
67
67
|
type: "Entry",
|
|
68
68
|
id: "3"
|
|
69
|
-
}), " between"), (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("hhr", null), " start"), (0, _testutils.jsx)("hp", null, "end ", (0, _testutils.jsx)("hhr", null)), (0, _testutils.jsx)("hp", null, "in ", (0, _testutils.jsx)("hhr", null), " between"));
|
|
70
|
-
const expected = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hembed", {
|
|
69
|
+
}), " between"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("hhr", null), " start"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "end ", /*#__PURE__*/ (0, _testutils.jsx)("hhr", null)), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "in ", /*#__PURE__*/ (0, _testutils.jsx)("hhr", null), " between"));
|
|
70
|
+
const expected = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
|
|
71
71
|
type: "Asset",
|
|
72
72
|
id: "1"
|
|
73
|
-
}), (0, _testutils.jsx)("hp", null, " start"), (0, _testutils.jsx)("hp", null, "end "), (0, _testutils.jsx)("hembed", {
|
|
73
|
+
}), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, " start"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "end "), /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
|
|
74
74
|
type: "Asset",
|
|
75
75
|
id: "2"
|
|
76
|
-
}), (0, _testutils.jsx)("hp", null, "in "), (0, _testutils.jsx)("hembed", {
|
|
76
|
+
}), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "in "), /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
|
|
77
77
|
type: "Asset",
|
|
78
78
|
id: "3"
|
|
79
|
-
}), (0, _testutils.jsx)("hp", null, " between"), (0, _testutils.jsx)("hembed", {
|
|
79
|
+
}), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, " between"), /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
|
|
80
80
|
type: "Entry",
|
|
81
81
|
id: "1"
|
|
82
|
-
}), (0, _testutils.jsx)("hp", null, " start"), (0, _testutils.jsx)("hp", null, "end "), (0, _testutils.jsx)("hembed", {
|
|
82
|
+
}), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, " start"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "end "), /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
|
|
83
83
|
type: "Entry",
|
|
84
84
|
id: "2"
|
|
85
|
-
}), (0, _testutils.jsx)("hp", null, "in "), (0, _testutils.jsx)("hembed", {
|
|
85
|
+
}), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "in "), /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
|
|
86
86
|
type: "Entry",
|
|
87
87
|
id: "3"
|
|
88
|
-
}), (0, _testutils.jsx)("hp", null, " between"), (0, _testutils.jsx)("hhr", null), (0, _testutils.jsx)("hp", null, " start"), (0, _testutils.jsx)("hp", null, "end "), (0, _testutils.jsx)("hhr", null), (0, _testutils.jsx)("hp", null, "in "), (0, _testutils.jsx)("hhr", null), (0, _testutils.jsx)("hp", null, " between"));
|
|
88
|
+
}), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, " between"), /*#__PURE__*/ (0, _testutils.jsx)("hhr", null), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, " start"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "end "), /*#__PURE__*/ (0, _testutils.jsx)("hhr", null), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "in "), /*#__PURE__*/ (0, _testutils.jsx)("hhr", null), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, " between"));
|
|
89
89
|
(0, _testutils.assertOutput)({
|
|
90
90
|
input,
|
|
91
91
|
expected
|
|
92
92
|
});
|
|
93
93
|
});
|
|
94
94
|
it('handles heading', ()=>{
|
|
95
|
-
const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hp", null, "some", (0, _testutils.jsx)("hh1", null, "heading"), "text"));
|
|
96
|
-
const expected = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hp", null, "some"), (0, _testutils.jsx)("hh1", null, "heading"), (0, _testutils.jsx)("hp", null, "text"));
|
|
95
|
+
const input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "some", /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "heading"), "text"));
|
|
96
|
+
const expected = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "some"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "heading"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "text"));
|
|
97
97
|
(0, _testutils.assertOutput)({
|
|
98
98
|
input,
|
|
99
99
|
expected
|
|
100
100
|
});
|
|
101
101
|
});
|
|
102
102
|
it('handles quotes', ()=>{
|
|
103
|
-
const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hp", null, "some", (0, _testutils.jsx)("hquote", null, (0, _testutils.jsx)("hp", null, "quote")), "text"));
|
|
104
|
-
const expected = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hp", null, "some"), (0, _testutils.jsx)("hquote", null, (0, _testutils.jsx)("hp", null, "quote")), (0, _testutils.jsx)("hp", null, "text"));
|
|
103
|
+
const input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "some", /*#__PURE__*/ (0, _testutils.jsx)("hquote", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "quote")), "text"));
|
|
104
|
+
const expected = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "some"), /*#__PURE__*/ (0, _testutils.jsx)("hquote", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "quote")), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "text"));
|
|
105
105
|
(0, _testutils.assertOutput)({
|
|
106
106
|
input,
|
|
107
107
|
expected
|
|
108
108
|
});
|
|
109
109
|
});
|
|
110
110
|
it('handles lists', ()=>{
|
|
111
|
-
const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hp", null, "some", (0, _testutils.jsx)("hul", null, (0, _testutils.jsx)("hli", null, (0, _testutils.jsx)("hp", null, "list item"))), "text"));
|
|
112
|
-
const expected = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hp", null, "some"), (0, _testutils.jsx)("hul", null, (0, _testutils.jsx)("hli", null, (0, _testutils.jsx)("hp", null, "list item"))), (0, _testutils.jsx)("hp", null, "text"));
|
|
111
|
+
const input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "some", /*#__PURE__*/ (0, _testutils.jsx)("hul", null, /*#__PURE__*/ (0, _testutils.jsx)("hli", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "list item"))), "text"));
|
|
112
|
+
const expected = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "some"), /*#__PURE__*/ (0, _testutils.jsx)("hul", null, /*#__PURE__*/ (0, _testutils.jsx)("hli", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "list item"))), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "text"));
|
|
113
113
|
(0, _testutils.assertOutput)({
|
|
114
114
|
input,
|
|
115
115
|
expected
|
|
116
116
|
});
|
|
117
117
|
});
|
|
118
118
|
it('handles tables', ()=>{
|
|
119
|
-
const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hp", null, "some", (0, _testutils.jsx)("htable", null, (0, _testutils.jsx)("htr", null, (0, _testutils.jsx)("htd", null, (0, _testutils.jsx)("hp", null, "cell 1")), (0, _testutils.jsx)("htd", null, (0, _testutils.jsx)("hp", null, "cell 2")))), "text"));
|
|
120
|
-
const expected = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hp", null, "some"), (0, _testutils.jsx)("htable", null, (0, _testutils.jsx)("htr", null, (0, _testutils.jsx)("htd", null, (0, _testutils.jsx)("hp", null, "cell 1")), (0, _testutils.jsx)("htd", null, (0, _testutils.jsx)("hp", null, "cell 2")))), (0, _testutils.jsx)("hp", null, "text"));
|
|
119
|
+
const input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "some", /*#__PURE__*/ (0, _testutils.jsx)("htable", null, /*#__PURE__*/ (0, _testutils.jsx)("htr", null, /*#__PURE__*/ (0, _testutils.jsx)("htd", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "cell 1")), /*#__PURE__*/ (0, _testutils.jsx)("htd", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "cell 2")))), "text"));
|
|
120
|
+
const expected = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "some"), /*#__PURE__*/ (0, _testutils.jsx)("htable", null, /*#__PURE__*/ (0, _testutils.jsx)("htr", null, /*#__PURE__*/ (0, _testutils.jsx)("htd", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "cell 1")), /*#__PURE__*/ (0, _testutils.jsx)("htd", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "cell 2")))), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "text"));
|
|
121
121
|
(0, _testutils.assertOutput)({
|
|
122
122
|
input,
|
|
123
123
|
expected
|
|
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "createParagraphPlugin", {
|
|
|
10
10
|
});
|
|
11
11
|
const _richtexttypes = require("@contentful/rich-text-types");
|
|
12
12
|
const _plateparagraph = require("@udecode/plate-paragraph");
|
|
13
|
-
const _ishotkey = _interop_require_default(require("is-hotkey"));
|
|
13
|
+
const _ishotkey = /*#__PURE__*/ _interop_require_default(require("is-hotkey"));
|
|
14
14
|
const _editor = require("../../helpers/editor");
|
|
15
15
|
const _transformers = require("../../helpers/transformers");
|
|
16
16
|
const _Paragraph = require("./Paragraph");
|
|
@@ -20,7 +20,7 @@ function _interop_require_default(obj) {
|
|
|
20
20
|
default: obj
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
-
const buildParagraphKeyDownHandler = (editor, { options: { hotkey
|
|
23
|
+
const buildParagraphKeyDownHandler = (editor, { options: { hotkey } })=>(event)=>{
|
|
24
24
|
if (editor.selection && hotkey && (0, _ishotkey.default)(hotkey, event)) {
|
|
25
25
|
(0, _editor.toggleElement)(editor, {
|
|
26
26
|
activeType: _richtexttypes.BLOCKS.PARAGRAPH,
|
|
@@ -41,6 +41,7 @@ const createParagraphPlugin = ()=>{
|
|
|
41
41
|
onKeyDown: buildParagraphKeyDownHandler
|
|
42
42
|
},
|
|
43
43
|
softBreak: [
|
|
44
|
+
// create a new line with SHIFT+Enter inside a paragraph
|
|
44
45
|
{
|
|
45
46
|
hotkey: 'shift+enter',
|
|
46
47
|
query: {
|
|
@@ -9,19 +9,21 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
|
|
13
|
-
return
|
|
12
|
+
createPasteHTMLPlugin: function() {
|
|
13
|
+
return createPasteHTMLPlugin;
|
|
14
14
|
},
|
|
15
15
|
ensureXSlateFragment: function() {
|
|
16
16
|
return ensureXSlateFragment;
|
|
17
17
|
},
|
|
18
|
-
|
|
19
|
-
return
|
|
18
|
+
getSlateFragmentAttribute: function() {
|
|
19
|
+
return getSlateFragmentAttribute;
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
const _platecommon = require("@udecode/plate-common");
|
|
23
23
|
const _sanitizeHTML = require("./utils/sanitizeHTML");
|
|
24
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Get x-slate-fragment attribute from data-slate-fragment
|
|
26
|
+
*/ const catchSlateFragment = /data-slate-fragment="(.+?)"/m;
|
|
25
27
|
const getSlateFragmentAttribute = (dataTransfer)=>{
|
|
26
28
|
const htmlData = dataTransfer.getData('text/html');
|
|
27
29
|
const [, fragment] = htmlData.match(catchSlateFragment) || [];
|
|
@@ -44,7 +46,7 @@ const ensureXSlateFragment = (dataTransfer)=>{
|
|
|
44
46
|
const createPasteHTMLPlugin = ()=>({
|
|
45
47
|
key: 'PasteHTMLPlugin',
|
|
46
48
|
withOverrides: (editor)=>{
|
|
47
|
-
const { insertData
|
|
49
|
+
const { insertData } = editor;
|
|
48
50
|
editor.insertData = (data)=>insertData(ensureXSlateFragment(data));
|
|
49
51
|
return editor;
|
|
50
52
|
},
|
|
@@ -54,6 +56,7 @@ const createPasteHTMLPlugin = ()=>({
|
|
|
54
56
|
editor: {
|
|
55
57
|
insertData: {
|
|
56
58
|
format: 'text/html',
|
|
59
|
+
// Perform custom content transformation *before* pasting
|
|
57
60
|
transformData: _sanitizeHTML.sanitizeHTML
|
|
58
61
|
}
|
|
59
62
|
}
|