@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,11 +9,11 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
getPastingSource: function() {
|
|
13
|
-
return getPastingSource;
|
|
14
|
-
},
|
|
15
12
|
createTrackingPlugin: function() {
|
|
16
13
|
return createTrackingPlugin;
|
|
14
|
+
},
|
|
15
|
+
getPastingSource: function() {
|
|
16
|
+
return getPastingSource;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
const _utils = require("./utils");
|
|
@@ -39,6 +39,7 @@ function getPastingSource(data) {
|
|
|
39
39
|
if (doc.querySelector('meta[content*="Microsoft Word"]')) {
|
|
40
40
|
return 'Microsoft Word';
|
|
41
41
|
}
|
|
42
|
+
// TODO: MS Word Online doesn't give us specific tags, we might need to have a closer look at its tracking result since we are using generic values to identify it
|
|
42
43
|
if (doc.querySelector('[style*="Arial_MSFontService"]') && (doc.querySelector('.TextRun') || doc.querySelector('.OutlineElement'))) {
|
|
43
44
|
return 'Microsoft Word Online';
|
|
44
45
|
}
|
|
@@ -76,7 +77,7 @@ const createTrackingPlugin = (onAction)=>{
|
|
|
76
77
|
return {
|
|
77
78
|
key: 'TrackingPlugin',
|
|
78
79
|
withOverrides: (editor)=>{
|
|
79
|
-
const { insertData
|
|
80
|
+
const { insertData } = editor;
|
|
80
81
|
editor.tracking = trackingActions;
|
|
81
82
|
editor.insertData = (data)=>{
|
|
82
83
|
const isCopyAndPaste = data.types.length !== 0;
|
|
@@ -8,9 +8,9 @@ Object.defineProperty(exports, "getCharacterCount", {
|
|
|
8
8
|
return getCharacterCount;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const _contentfulslatejsadapter = _interop_require_wildcard(require("@contentful/contentful-slatejs-adapter"));
|
|
11
|
+
const _contentfulslatejsadapter = /*#__PURE__*/ _interop_require_wildcard(require("@contentful/contentful-slatejs-adapter"));
|
|
12
12
|
const _richtextplaintextrenderer = require("@contentful/rich-text-plain-text-renderer");
|
|
13
|
-
const _Schema = _interop_require_default(require("../../constants/Schema"));
|
|
13
|
+
const _Schema = /*#__PURE__*/ _interop_require_default(require("../../constants/Schema"));
|
|
14
14
|
function _interop_require_default(obj) {
|
|
15
15
|
return obj && obj.__esModule ? obj : {
|
|
16
16
|
default: obj
|
|
@@ -37,7 +37,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
37
37
|
if (cache && cache.has(obj)) {
|
|
38
38
|
return cache.get(obj);
|
|
39
39
|
}
|
|
40
|
-
var newObj = {
|
|
40
|
+
var newObj = {
|
|
41
|
+
__proto__: null
|
|
42
|
+
};
|
|
41
43
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
42
44
|
for(var key in obj){
|
|
43
45
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -57,6 +59,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
57
59
|
}
|
|
58
60
|
function getCharacterCount(editor) {
|
|
59
61
|
const document = _contentfulslatejsadapter.toContentfulDocument({
|
|
62
|
+
// eslint-disable-next-line -- parameter type is not exported @typescript-eslint/no-explicit-any
|
|
60
63
|
document: editor.children,
|
|
61
64
|
schema: _Schema.default
|
|
62
65
|
});
|
|
@@ -14,6 +14,8 @@ const createVoidsPlugin = ()=>({
|
|
|
14
14
|
key: 'VoidsPlugin',
|
|
15
15
|
exitBreak: [
|
|
16
16
|
{
|
|
17
|
+
// Inserts a new paragraph *before* a void element if it's the very first
|
|
18
|
+
// node on the editor
|
|
17
19
|
hotkey: 'enter',
|
|
18
20
|
before: true,
|
|
19
21
|
query: {
|
|
@@ -21,7 +23,10 @@ const createVoidsPlugin = ()=>({
|
|
|
21
23
|
}
|
|
22
24
|
},
|
|
23
25
|
{
|
|
26
|
+
// Inserts a new paragraph on enter when a void element is focused
|
|
24
27
|
hotkey: 'enter',
|
|
28
|
+
// exploit the internal use of Array.slice(0, level + 1) by the exitBreak plugin
|
|
29
|
+
// to stay in the parent element
|
|
25
30
|
level: -2,
|
|
26
31
|
query: {
|
|
27
32
|
filter: ([node, path])=>!((0, _editor.isRootLevel)(path) && (0, _queries.isFirstChildPath)(path)) && !!node.isVoid
|
|
@@ -9,11 +9,11 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
getPlugins: function() {
|
|
13
|
-
return getPlugins;
|
|
14
|
-
},
|
|
15
12
|
disableCorePlugins: function() {
|
|
16
13
|
return disableCorePlugins;
|
|
14
|
+
},
|
|
15
|
+
getPlugins: function() {
|
|
16
|
+
return getPlugins;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
const _plateserializerdocx = require("@udecode/plate-serializer-docx");
|
|
@@ -42,11 +42,15 @@ const _TrailingParagraph = require("./TrailingParagraph");
|
|
|
42
42
|
const _Voids = require("./Voids");
|
|
43
43
|
const getPlugins = (sdk, onAction, restrictedMarks)=>[
|
|
44
44
|
(0, _plateserializerdocx.createDeserializeDocxPlugin)(),
|
|
45
|
+
// Tracking - This should come first so all plugins below will have access to `editor.tracking`
|
|
45
46
|
(0, _Tracking.createTrackingPlugin)(onAction),
|
|
47
|
+
// Global / Global shortcuts
|
|
46
48
|
(0, _DragAndDrop.createDragAndDropPlugin)(),
|
|
49
|
+
// Enable command palette plugin only, if at least action type is allowed
|
|
47
50
|
...Object.values((0, _useCommands.isCommandPromptPluginEnabled)(sdk)).some(Boolean) ? [
|
|
48
51
|
(0, _CommandPalette.createCommandPalettePlugin)()
|
|
49
52
|
] : [],
|
|
53
|
+
// Block Elements
|
|
50
54
|
(0, _Paragraph.createParagraphPlugin)(),
|
|
51
55
|
(0, _List.createListPlugin)(),
|
|
52
56
|
(0, _Hr.createHrPlugin)(),
|
|
@@ -56,20 +60,28 @@ const getPlugins = (sdk, onAction, restrictedMarks)=>[
|
|
|
56
60
|
(0, _EmbeddedEntityBlock.createEmbeddedEntryBlockPlugin)(sdk),
|
|
57
61
|
(0, _EmbeddedEntityBlock.createEmbeddedAssetBlockPlugin)(sdk),
|
|
58
62
|
(0, _EmbeddedResourceBlock.createEmbeddedResourceBlockPlugin)(sdk),
|
|
63
|
+
// Inline elements
|
|
59
64
|
(0, _Hyperlink.createHyperlinkPlugin)(sdk),
|
|
60
65
|
(0, _EmbeddedEntityInline.createEmbeddedEntityInlinePlugin)(sdk),
|
|
61
66
|
(0, _EmbeddedResourceInline.createEmbeddedResourceInlinePlugin)(sdk),
|
|
67
|
+
// Marks
|
|
62
68
|
(0, _Marks.createMarksPlugin)(),
|
|
69
|
+
// Other
|
|
63
70
|
(0, _TrailingParagraph.createTrailingParagraphPlugin)(),
|
|
64
71
|
(0, _Text.createTextPlugin)(restrictedMarks),
|
|
65
72
|
(0, _Voids.createVoidsPlugin)(),
|
|
66
73
|
(0, _SelectOnBackspace.createSelectOnBackspacePlugin)(),
|
|
74
|
+
// Pasting content from other sources
|
|
67
75
|
(0, _PasteHTML.createPasteHTMLPlugin)(),
|
|
76
|
+
// These plugins drive their configurations from the list of plugins
|
|
77
|
+
// above. They MUST come last.
|
|
68
78
|
(0, _Break.createSoftBreakPlugin)(),
|
|
69
79
|
(0, _Break.createExitBreakPlugin)(),
|
|
70
80
|
(0, _Break.createResetNodePlugin)(),
|
|
71
81
|
(0, _Normalizer.createNormalizerPlugin)()
|
|
72
82
|
];
|
|
73
83
|
const disableCorePlugins = {
|
|
84
|
+
// Note: Enabled by default since v9.0.0 but it causes Cypress's
|
|
85
|
+
// .click() command to fail
|
|
74
86
|
eventEditor: true
|
|
75
87
|
};
|
|
@@ -9,14 +9,14 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
styles: function() {
|
|
13
|
-
return styles;
|
|
14
|
-
},
|
|
15
12
|
EmbeddedBlockToolbarIcon: function() {
|
|
16
13
|
return EmbeddedBlockToolbarIcon;
|
|
14
|
+
},
|
|
15
|
+
styles: function() {
|
|
16
|
+
return styles;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
|
-
const _react = _interop_require_wildcard(require("react"));
|
|
19
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
20
20
|
const _f36components = require("@contentful/f36-components");
|
|
21
21
|
const _f36icons = require("@contentful/f36-icons");
|
|
22
22
|
const _richtexttypes = require("@contentful/rich-text-types");
|
|
@@ -46,7 +46,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
46
46
|
if (cache && cache.has(obj)) {
|
|
47
47
|
return cache.get(obj);
|
|
48
48
|
}
|
|
49
|
-
var newObj = {
|
|
49
|
+
var newObj = {
|
|
50
|
+
__proto__: null
|
|
51
|
+
};
|
|
50
52
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
51
53
|
for(var key in obj){
|
|
52
54
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -69,7 +71,7 @@ const styles = {
|
|
|
69
71
|
marginRight: '10px'
|
|
70
72
|
})
|
|
71
73
|
};
|
|
72
|
-
function EmbeddedBlockToolbarIcon({ isDisabled
|
|
74
|
+
function EmbeddedBlockToolbarIcon({ isDisabled, nodeType, onClose }) {
|
|
73
75
|
const editor = (0, _ContentfulEditorProvider.useContentfulEditor)();
|
|
74
76
|
const sdk = (0, _SdkProvider.useSdkContext)();
|
|
75
77
|
const handleClick = async (event)=>{
|
|
@@ -86,19 +88,19 @@ function EmbeddedBlockToolbarIcon({ isDisabled , nodeType , onClose }) {
|
|
|
86
88
|
};
|
|
87
89
|
const type = getEntityTypeFromNodeType(nodeType);
|
|
88
90
|
const baseClass = `rich-text__${nodeType}`;
|
|
89
|
-
return _react.createElement(_f36components.Menu.Item, {
|
|
91
|
+
return /*#__PURE__*/ _react.createElement(_f36components.Menu.Item, {
|
|
90
92
|
disabled: isDisabled,
|
|
91
93
|
className: `${baseClass}-list-item`,
|
|
92
94
|
onClick: handleClick,
|
|
93
95
|
testId: `toolbar-toggle-${nodeType}`
|
|
94
|
-
}, _react.createElement(_f36components.Flex, {
|
|
96
|
+
}, /*#__PURE__*/ _react.createElement(_f36components.Flex, {
|
|
95
97
|
alignItems: "center",
|
|
96
98
|
flexDirection: "row"
|
|
97
|
-
}, _react.createElement(_f36components.Icon, {
|
|
99
|
+
}, /*#__PURE__*/ _react.createElement(_f36components.Icon, {
|
|
98
100
|
as: type === 'Asset' ? _f36icons.AssetIcon : _f36icons.EmbeddedEntryBlockIcon,
|
|
99
101
|
className: `rich-text__embedded-entry-list-icon ${styles.icon}`,
|
|
100
102
|
variant: "secondary"
|
|
101
|
-
}), _react.createElement("span", null, type, nodeType == _richtexttypes.BLOCKS.EMBEDDED_RESOURCE && _react.createElement(_ResourceNewBadge.ResourceNewBadge, null))));
|
|
103
|
+
}), /*#__PURE__*/ _react.createElement("span", null, type, nodeType == _richtexttypes.BLOCKS.EMBEDDED_RESOURCE && /*#__PURE__*/ _react.createElement(_ResourceNewBadge.ResourceNewBadge, null))));
|
|
102
104
|
}
|
|
103
105
|
function getEntityTypeFromNodeType(nodeType) {
|
|
104
106
|
const words = nodeType.toLowerCase().split('-');
|
|
@@ -20,7 +20,7 @@ _export(exports, {
|
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
const _richtexttypes = require("@contentful/rich-text-types");
|
|
23
|
-
const _ishotkey = _interop_require_default(require("is-hotkey"));
|
|
23
|
+
const _ishotkey = /*#__PURE__*/ _interop_require_default(require("is-hotkey"));
|
|
24
24
|
const _config = require("../../helpers/config");
|
|
25
25
|
const _editor = require("../../helpers/editor");
|
|
26
26
|
const _sdkNavigatorSlideIn = require("../../helpers/sdkNavigatorSlideIn");
|
|
@@ -31,7 +31,7 @@ function _interop_require_default(obj) {
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
function getWithEmbeddedBlockEvents(nodeType, sdk) {
|
|
34
|
-
return (editor, { options: { hotkey
|
|
34
|
+
return (editor, { options: { hotkey } })=>(event)=>{
|
|
35
35
|
const [, pathToSelectedElement] = (0, _editor.getNodeEntryFromSelection)(editor, nodeType);
|
|
36
36
|
if (pathToSelectedElement) {
|
|
37
37
|
const isDelete = event.key === 'Delete';
|
|
@@ -57,14 +57,14 @@ async function selectEntityAndInsert(nodeType, sdk, editor, logAction) {
|
|
|
57
57
|
logAction('openCreateEmbedDialog', {
|
|
58
58
|
nodeType
|
|
59
59
|
});
|
|
60
|
-
const { field
|
|
60
|
+
const { field, dialogs } = sdk;
|
|
61
61
|
const baseConfig = (0, _config.newEntitySelectorConfigFromRichTextField)(field, nodeType);
|
|
62
62
|
const selectEntity = baseConfig.entityType === 'Asset' ? dialogs.selectSingleAsset : dialogs.selectSingleEntry;
|
|
63
63
|
const config = {
|
|
64
64
|
...baseConfig,
|
|
65
65
|
withCreate: true
|
|
66
66
|
};
|
|
67
|
-
const { selection
|
|
67
|
+
const { selection } = editor;
|
|
68
68
|
const rteSlide = (0, _sdkNavigatorSlideIn.watchCurrentSlide)(sdk.navigator);
|
|
69
69
|
const entity = await selectEntity(config);
|
|
70
70
|
if (!entity) {
|
|
@@ -72,6 +72,8 @@ async function selectEntityAndInsert(nodeType, sdk, editor, logAction) {
|
|
|
72
72
|
nodeType
|
|
73
73
|
});
|
|
74
74
|
} else {
|
|
75
|
+
// Selection prevents incorrect position of inserted ref when RTE doesn't have focus
|
|
76
|
+
// (i.e. when using hotkeys and slide-in)
|
|
75
77
|
(0, _internal.select)(editor, selection);
|
|
76
78
|
insertBlock(editor, nodeType, entity);
|
|
77
79
|
ensureFollowingParagraph(editor, [
|
|
@@ -82,6 +84,8 @@ async function selectEntityAndInsert(nodeType, sdk, editor, logAction) {
|
|
|
82
84
|
nodeType
|
|
83
85
|
});
|
|
84
86
|
}
|
|
87
|
+
// If user chose to create a new entity, this might open slide-in to edit the
|
|
88
|
+
// entity. In this case, no point in focusing RTE which is now in the slide below.
|
|
85
89
|
rteSlide.onActive(()=>{
|
|
86
90
|
rteSlide.unwatch();
|
|
87
91
|
(0, _editor.focus)(editor);
|
|
@@ -91,15 +95,17 @@ async function selectResourceEntityAndInsert(sdk, editor, logAction) {
|
|
|
91
95
|
logAction('openCreateEmbedDialog', {
|
|
92
96
|
nodeType: _richtexttypes.BLOCKS.EMBEDDED_RESOURCE
|
|
93
97
|
});
|
|
94
|
-
const { field
|
|
98
|
+
const { field, dialogs } = sdk;
|
|
95
99
|
const config = (0, _config.newResourceEntitySelectorConfigFromRichTextField)(field, _richtexttypes.BLOCKS.EMBEDDED_RESOURCE);
|
|
96
|
-
const { selection
|
|
100
|
+
const { selection } = editor;
|
|
97
101
|
const entity = await dialogs.selectSingleResourceEntry(config);
|
|
98
102
|
if (!entity) {
|
|
99
103
|
logAction('cancelCreateEmbedDialog', {
|
|
100
104
|
nodeType: _richtexttypes.BLOCKS.EMBEDDED_RESOURCE
|
|
101
105
|
});
|
|
102
106
|
} else {
|
|
107
|
+
// Selection prevents incorrect position of inserted ref when RTE doesn't have focus
|
|
108
|
+
// (i.e. when using hotkeys and slide-in)
|
|
103
109
|
(0, _internal.select)(editor, selection);
|
|
104
110
|
insertBlock(editor, _richtexttypes.BLOCKS.EMBEDDED_RESOURCE, entity);
|
|
105
111
|
ensureFollowingParagraph(editor, [
|
|
@@ -110,6 +116,7 @@ async function selectResourceEntityAndInsert(sdk, editor, logAction) {
|
|
|
110
116
|
});
|
|
111
117
|
}
|
|
112
118
|
}
|
|
119
|
+
// TODO: incorporate this logic inside the trailingParagraph plugin instead
|
|
113
120
|
function ensureFollowingParagraph(editor, nodeTypes) {
|
|
114
121
|
const entityBlock = (0, _internal.getAboveNode)(editor, {
|
|
115
122
|
match: {
|
|
@@ -122,6 +129,8 @@ function ensureFollowingParagraph(editor, nodeTypes) {
|
|
|
122
129
|
const level = entityBlock[1].length - 1;
|
|
123
130
|
const lastNode = (0, _internal.getLastNodeByLevel)(editor, level);
|
|
124
131
|
const isTextContainer = _richtexttypes.TEXT_CONTAINERS.includes(lastNode?.[0].type ?? '');
|
|
132
|
+
// If the new block isn't followed by a sibling text container (e.g. paragraph)
|
|
133
|
+
// we insert a new empty one. Level 0 is handled by the trailingParagraph plugin
|
|
125
134
|
if (level !== 0 && !isTextContainer) {
|
|
126
135
|
(0, _editor.insertEmptyParagraph)(editor);
|
|
127
136
|
}
|
|
@@ -157,6 +166,7 @@ const createNode = (nodeType, entity)=>{
|
|
|
157
166
|
isVoid: true
|
|
158
167
|
};
|
|
159
168
|
};
|
|
169
|
+
// TODO: DRY up copied code from HR
|
|
160
170
|
function insertBlock(editor, nodeType, entity) {
|
|
161
171
|
if (!editor?.selection) return;
|
|
162
172
|
const linkedEntityBlock = createNode(nodeType, entity);
|
|
@@ -8,10 +8,10 @@ Object.defineProperty(exports, "EmbeddedInlineToolbarIcon", {
|
|
|
8
8
|
return EmbeddedInlineToolbarIcon;
|
|
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
13
|
const _f36icons = require("@contentful/f36-icons");
|
|
14
|
-
const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
|
|
14
|
+
const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
|
|
15
15
|
const _richtexttypes = require("@contentful/rich-text-types");
|
|
16
16
|
const _emotion = require("emotion");
|
|
17
17
|
const _ContentfulEditorProvider = require("../../ContentfulEditorProvider");
|
|
@@ -45,7 +45,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
45
45
|
if (cache && cache.has(obj)) {
|
|
46
46
|
return cache.get(obj);
|
|
47
47
|
}
|
|
48
|
-
var newObj = {
|
|
48
|
+
var newObj = {
|
|
49
|
+
__proto__: null
|
|
50
|
+
};
|
|
49
51
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
50
52
|
for(var key in obj){
|
|
51
53
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -76,7 +78,7 @@ const styles = {
|
|
|
76
78
|
}
|
|
77
79
|
})
|
|
78
80
|
};
|
|
79
|
-
function EmbeddedInlineToolbarIcon({ onClose
|
|
81
|
+
function EmbeddedInlineToolbarIcon({ onClose, nodeType, isDisabled }) {
|
|
80
82
|
const editor = (0, _ContentfulEditorProvider.useContentfulEditor)();
|
|
81
83
|
const sdk = (0, _SdkProvider.useSdkContext)();
|
|
82
84
|
async function handleClick(event) {
|
|
@@ -90,16 +92,16 @@ function EmbeddedInlineToolbarIcon({ onClose , nodeType , isDisabled }) {
|
|
|
90
92
|
}
|
|
91
93
|
(0, _editor.moveToTheNextChar)(editor);
|
|
92
94
|
}
|
|
93
|
-
return _react.createElement(_f36components.Menu.Item, {
|
|
95
|
+
return /*#__PURE__*/ _react.createElement(_f36components.Menu.Item, {
|
|
94
96
|
disabled: isDisabled,
|
|
95
97
|
className: "rich-text__entry-link-block-button",
|
|
96
98
|
testId: `toolbar-toggle-${nodeType}`,
|
|
97
99
|
onClick: handleClick
|
|
98
|
-
}, _react.createElement(_f36components.Flex, {
|
|
100
|
+
}, /*#__PURE__*/ _react.createElement(_f36components.Flex, {
|
|
99
101
|
alignItems: "center",
|
|
100
102
|
flexDirection: "row"
|
|
101
|
-
}, _react.createElement(_f36icons.EmbeddedEntryInlineIcon, {
|
|
103
|
+
}, /*#__PURE__*/ _react.createElement(_f36icons.EmbeddedEntryInlineIcon, {
|
|
102
104
|
variant: "secondary",
|
|
103
105
|
className: `rich-text__embedded-entry-list-icon ${styles.icon}`
|
|
104
|
-
}), _react.createElement("span", null, "Inline entry", nodeType == _richtexttypes.INLINES.EMBEDDED_RESOURCE && _react.createElement(_ResourceNewBadge.ResourceNewBadge, null))));
|
|
106
|
+
}), /*#__PURE__*/ _react.createElement("span", null, "Inline entry", nodeType == _richtexttypes.INLINES.EMBEDDED_RESOURCE && /*#__PURE__*/ _react.createElement(_ResourceNewBadge.ResourceNewBadge, null))));
|
|
105
107
|
}
|
|
@@ -20,7 +20,7 @@ _export(exports, {
|
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
const _richtexttypes = require("@contentful/rich-text-types");
|
|
23
|
-
const _ishotkey = _interop_require_default(require("is-hotkey"));
|
|
23
|
+
const _ishotkey = /*#__PURE__*/ _interop_require_default(require("is-hotkey"));
|
|
24
24
|
const _config = require("../../helpers/config");
|
|
25
25
|
const _editor = require("../../helpers/editor");
|
|
26
26
|
const _sdkNavigatorSlideIn = require("../../helpers/sdkNavigatorSlideIn");
|
|
@@ -31,7 +31,7 @@ function _interop_require_default(obj) {
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
function getWithEmbeddedEntryInlineEvents(nodeType, sdk) {
|
|
34
|
-
return function withEmbeddedEntryInlineEvents(editor, { options: { hotkey
|
|
34
|
+
return function withEmbeddedEntryInlineEvents(editor, { options: { hotkey } }) {
|
|
35
35
|
return function handleEvent(event) {
|
|
36
36
|
if (!editor) return;
|
|
37
37
|
if (hotkey && (0, _ishotkey.default)(hotkey, event)) {
|
|
@@ -82,7 +82,7 @@ async function selectEntityAndInsert(editor, sdk, logAction) {
|
|
|
82
82
|
...(0, _config.newEntitySelectorConfigFromRichTextField)(sdk.field, nodeType),
|
|
83
83
|
withCreate: true
|
|
84
84
|
};
|
|
85
|
-
const { selection
|
|
85
|
+
const { selection } = editor;
|
|
86
86
|
const rteSlide = (0, _sdkNavigatorSlideIn.watchCurrentSlide)(sdk.navigator);
|
|
87
87
|
const entry = await sdk.dialogs.selectSingleEntry(config);
|
|
88
88
|
if (!entry) {
|
|
@@ -90,6 +90,8 @@ async function selectEntityAndInsert(editor, sdk, logAction) {
|
|
|
90
90
|
nodeType
|
|
91
91
|
});
|
|
92
92
|
} else {
|
|
93
|
+
// Selection prevents incorrect position of inserted ref when RTE doesn't have focus
|
|
94
|
+
// (i.e. when using hotkeys and slide-in)
|
|
93
95
|
(0, _transforms.select)(editor, selection);
|
|
94
96
|
(0, _transforms.insertNodes)(editor, createInlineEntryNode(nodeType, entry));
|
|
95
97
|
logAction('insert', {
|
|
@@ -106,18 +108,20 @@ async function selectResourceEntityAndInsert(editor, sdk, logAction) {
|
|
|
106
108
|
logAction('openCreateEmbedDialog', {
|
|
107
109
|
nodeType
|
|
108
110
|
});
|
|
109
|
-
const { dialogs
|
|
111
|
+
const { dialogs, field } = sdk;
|
|
110
112
|
const config = {
|
|
111
113
|
...(0, _config.newResourceEntitySelectorConfigFromRichTextField)(field, nodeType),
|
|
112
114
|
withCreate: true
|
|
113
115
|
};
|
|
114
|
-
const { selection
|
|
116
|
+
const { selection } = editor;
|
|
115
117
|
const entry = await dialogs.selectSingleResourceEntry(config);
|
|
116
118
|
if (!entry) {
|
|
117
119
|
logAction('cancelCreateEmbedDialog', {
|
|
118
120
|
nodeType
|
|
119
121
|
});
|
|
120
122
|
} else {
|
|
123
|
+
// Selection prevents incorrect position of inserted ref when RTE doesn't have focus
|
|
124
|
+
// (i.e. when using hotkeys and slide-in)
|
|
121
125
|
(0, _transforms.select)(editor, selection);
|
|
122
126
|
(0, _transforms.insertNodes)(editor, createInlineEntryNode(nodeType, entry));
|
|
123
127
|
logAction('insert', {
|
|
@@ -8,10 +8,10 @@ Object.defineProperty(exports, "FetchingWrappedAssetCard", {
|
|
|
8
8
|
return FetchingWrappedAssetCard;
|
|
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
13
|
const _fieldeditorreference = require("@contentful/field-editor-reference");
|
|
14
|
-
const _fastdeepequal = _interop_require_default(require("fast-deep-equal"));
|
|
14
|
+
const _fastdeepequal = /*#__PURE__*/ _interop_require_default(require("fast-deep-equal"));
|
|
15
15
|
function _interop_require_default(obj) {
|
|
16
16
|
return obj && obj.__esModule ? obj : {
|
|
17
17
|
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)) {
|
|
@@ -56,21 +58,21 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
56
58
|
}
|
|
57
59
|
return newObj;
|
|
58
60
|
}
|
|
59
|
-
const InternalAssetCard = _react.memo((props)=>{
|
|
61
|
+
const InternalAssetCard = /*#__PURE__*/ _react.memo((props)=>{
|
|
60
62
|
if (props.asset === undefined) {
|
|
61
|
-
return _react.createElement(_f36components.AssetCard, {
|
|
63
|
+
return /*#__PURE__*/ _react.createElement(_f36components.AssetCard, {
|
|
62
64
|
size: "default",
|
|
63
65
|
isLoading: true
|
|
64
66
|
});
|
|
65
67
|
}
|
|
66
68
|
if (props.asset === 'failed') {
|
|
67
|
-
return _react.createElement(_fieldeditorreference.MissingEntityCard, {
|
|
69
|
+
return /*#__PURE__*/ _react.createElement(_fieldeditorreference.MissingEntityCard, {
|
|
68
70
|
entityType: "Asset",
|
|
69
71
|
isDisabled: props.isDisabled,
|
|
70
72
|
onRemove: props.onRemove
|
|
71
73
|
});
|
|
72
74
|
}
|
|
73
|
-
return _react.createElement(_fieldeditorreference.WrappedAssetCard, {
|
|
75
|
+
return /*#__PURE__*/ _react.createElement(_fieldeditorreference.WrappedAssetCard, {
|
|
74
76
|
getEntityScheduledActions: props.loadEntityScheduledActions,
|
|
75
77
|
size: "small",
|
|
76
78
|
isSelected: props.isSelected,
|
|
@@ -85,9 +87,9 @@ const InternalAssetCard = _react.memo((props)=>{
|
|
|
85
87
|
}, _fastdeepequal.default);
|
|
86
88
|
InternalAssetCard.displayName = 'InternalAssetCard';
|
|
87
89
|
function FetchingWrappedAssetCard(props) {
|
|
88
|
-
const { onEntityFetchComplete
|
|
89
|
-
const { data: asset
|
|
90
|
-
const { getEntityScheduledActions
|
|
90
|
+
const { onEntityFetchComplete } = props;
|
|
91
|
+
const { data: asset, status } = (0, _fieldeditorreference.useEntity)('Asset', props.assetId);
|
|
92
|
+
const { getEntityScheduledActions } = (0, _fieldeditorreference.useEntityLoader)();
|
|
91
93
|
const loadEntityScheduledActions = _react.useCallback(()=>getEntityScheduledActions('Asset', props.assetId), [
|
|
92
94
|
getEntityScheduledActions,
|
|
93
95
|
props.assetId
|
|
@@ -100,7 +102,7 @@ function FetchingWrappedAssetCard(props) {
|
|
|
100
102
|
onEntityFetchComplete,
|
|
101
103
|
status
|
|
102
104
|
]);
|
|
103
|
-
return _react.createElement(InternalAssetCard, {
|
|
105
|
+
return /*#__PURE__*/ _react.createElement(InternalAssetCard, {
|
|
104
106
|
asset: asset,
|
|
105
107
|
sdk: props.sdk,
|
|
106
108
|
isDisabled: props.isDisabled,
|
|
@@ -8,10 +8,10 @@ Object.defineProperty(exports, "FetchingWrappedEntryCard", {
|
|
|
8
8
|
return FetchingWrappedEntryCard;
|
|
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
13
|
const _fieldeditorreference = require("@contentful/field-editor-reference");
|
|
14
|
-
const _fastdeepequal = _interop_require_default(require("fast-deep-equal"));
|
|
14
|
+
const _fastdeepequal = /*#__PURE__*/ _interop_require_default(require("fast-deep-equal"));
|
|
15
15
|
function _interop_require_default(obj) {
|
|
16
16
|
return obj && obj.__esModule ? obj : {
|
|
17
17
|
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)) {
|
|
@@ -56,22 +58,22 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
56
58
|
}
|
|
57
59
|
return newObj;
|
|
58
60
|
}
|
|
59
|
-
const InternalEntryCard = _react.memo((props)=>{
|
|
60
|
-
const { entry
|
|
61
|
+
const InternalEntryCard = /*#__PURE__*/ _react.memo((props)=>{
|
|
62
|
+
const { entry, sdk, loadEntityScheduledActions } = props;
|
|
61
63
|
if (entry === undefined) {
|
|
62
|
-
return _react.createElement(_f36components.EntryCard, {
|
|
64
|
+
return /*#__PURE__*/ _react.createElement(_f36components.EntryCard, {
|
|
63
65
|
isLoading: true
|
|
64
66
|
});
|
|
65
67
|
}
|
|
66
68
|
if (entry === 'failed') {
|
|
67
|
-
return _react.createElement(_fieldeditorreference.MissingEntityCard, {
|
|
69
|
+
return /*#__PURE__*/ _react.createElement(_fieldeditorreference.MissingEntityCard, {
|
|
68
70
|
entityType: "Entry",
|
|
69
71
|
isDisabled: props.isDisabled,
|
|
70
72
|
onRemove: props.onRemove
|
|
71
73
|
});
|
|
72
74
|
}
|
|
73
75
|
const contentType = sdk.space.getCachedContentTypes().find((contentType)=>contentType.sys.id === entry.sys.contentType.sys.id);
|
|
74
|
-
return _react.createElement(_fieldeditorreference.WrappedEntryCard, {
|
|
76
|
+
return /*#__PURE__*/ _react.createElement(_fieldeditorreference.WrappedEntryCard, {
|
|
75
77
|
size: "default",
|
|
76
78
|
getAsset: props.sdk.space.getAsset,
|
|
77
79
|
getEntityScheduledActions: loadEntityScheduledActions,
|
|
@@ -88,9 +90,9 @@ const InternalEntryCard = _react.memo((props)=>{
|
|
|
88
90
|
}, _fastdeepequal.default);
|
|
89
91
|
InternalEntryCard.displayName = 'ReferenceCard';
|
|
90
92
|
const FetchingWrappedEntryCard = (props)=>{
|
|
91
|
-
const { entryId
|
|
92
|
-
const { data: entry
|
|
93
|
-
const { getEntityScheduledActions
|
|
93
|
+
const { entryId, onEntityFetchComplete } = props;
|
|
94
|
+
const { data: entry, status } = (0, _fieldeditorreference.useEntity)('Entry', entryId);
|
|
95
|
+
const { getEntityScheduledActions } = (0, _fieldeditorreference.useEntityLoader)();
|
|
94
96
|
const loadEntityScheduledActions = _react.useCallback(()=>getEntityScheduledActions('Entry', entryId), [
|
|
95
97
|
getEntityScheduledActions,
|
|
96
98
|
entryId
|
|
@@ -103,7 +105,7 @@ const FetchingWrappedEntryCard = (props)=>{
|
|
|
103
105
|
onEntityFetchComplete,
|
|
104
106
|
status
|
|
105
107
|
]);
|
|
106
|
-
return _react.createElement(InternalEntryCard, {
|
|
108
|
+
return /*#__PURE__*/ _react.createElement(InternalEntryCard, {
|
|
107
109
|
entry: entry,
|
|
108
110
|
sdk: props.sdk,
|
|
109
111
|
locale: props.locale,
|
|
@@ -8,10 +8,10 @@ Object.defineProperty(exports, "FetchingWrappedResourceCard", {
|
|
|
8
8
|
return FetchingWrappedResourceCard;
|
|
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
13
|
const _fieldeditorreference = require("@contentful/field-editor-reference");
|
|
14
|
-
const _fastdeepequal = _interop_require_default(require("fast-deep-equal"));
|
|
14
|
+
const _fastdeepequal = /*#__PURE__*/ _interop_require_default(require("fast-deep-equal"));
|
|
15
15
|
function _interop_require_default(obj) {
|
|
16
16
|
return obj && obj.__esModule ? obj : {
|
|
17
17
|
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)) {
|
|
@@ -56,14 +58,14 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
56
58
|
}
|
|
57
59
|
return newObj;
|
|
58
60
|
}
|
|
59
|
-
const InternalEntryCard = _react.memo((props)=>{
|
|
61
|
+
const InternalEntryCard = /*#__PURE__*/ _react.memo((props)=>{
|
|
60
62
|
if (props.data === undefined || props.status === 'loading') {
|
|
61
|
-
return _react.createElement(_f36components.EntryCard, {
|
|
63
|
+
return /*#__PURE__*/ _react.createElement(_f36components.EntryCard, {
|
|
62
64
|
isLoading: true
|
|
63
65
|
});
|
|
64
66
|
}
|
|
65
|
-
const { contentType
|
|
66
|
-
return _react.createElement(_fieldeditorreference.WrappedEntryCard, {
|
|
67
|
+
const { contentType, resource: entry, space } = props.data;
|
|
68
|
+
return /*#__PURE__*/ _react.createElement(_fieldeditorreference.WrappedEntryCard, {
|
|
67
69
|
size: "default",
|
|
68
70
|
getAsset: ()=>Promise.resolve(),
|
|
69
71
|
isSelected: props.isSelected,
|
|
@@ -81,8 +83,8 @@ const InternalEntryCard = _react.memo((props)=>{
|
|
|
81
83
|
}, _fastdeepequal.default);
|
|
82
84
|
InternalEntryCard.displayName = 'ReferenceCard';
|
|
83
85
|
const FetchingWrappedResourceCard = (props)=>{
|
|
84
|
-
const { link
|
|
85
|
-
const { data
|
|
86
|
+
const { link, onEntityFetchComplete } = props;
|
|
87
|
+
const { data, status, error } = (0, _fieldeditorreference.useResource)(link.linkType, link.urn);
|
|
86
88
|
_react.useEffect(()=>{
|
|
87
89
|
if (status === 'success') {
|
|
88
90
|
onEntityFetchComplete?.();
|
|
@@ -92,7 +94,7 @@ const FetchingWrappedResourceCard = (props)=>{
|
|
|
92
94
|
status
|
|
93
95
|
]);
|
|
94
96
|
if (status === 'error') {
|
|
95
|
-
return _react.createElement(_fieldeditorreference.ResourceEntityErrorCard, {
|
|
97
|
+
return /*#__PURE__*/ _react.createElement(_fieldeditorreference.ResourceEntityErrorCard, {
|
|
96
98
|
error: error,
|
|
97
99
|
linkType: link.linkType,
|
|
98
100
|
isSelected: props.isSelected,
|
|
@@ -100,7 +102,8 @@ const FetchingWrappedResourceCard = (props)=>{
|
|
|
100
102
|
onRemove: props.onRemove
|
|
101
103
|
});
|
|
102
104
|
}
|
|
103
|
-
return _react.createElement(InternalEntryCard, {
|
|
105
|
+
return /*#__PURE__*/ _react.createElement(InternalEntryCard, {
|
|
106
|
+
// entry is the only currently supported entity but TypeScript is not aware
|
|
104
107
|
data: data,
|
|
105
108
|
status: status,
|
|
106
109
|
sdk: props.sdk,
|