@contentful/field-editor-rich-text 3.16.8 → 3.16.10
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 +20 -22
- package/dist/cjs/RichTextEditor.styles.js +1 -2
- package/dist/cjs/SdkProvider.js +5 -7
- package/dist/cjs/SyncEditorChanges.js +6 -15
- package/dist/cjs/Toolbar/_tests_/toolbar.test.js +15 -17
- package/dist/cjs/Toolbar/components/EmbedEntityWidget.js +9 -13
- package/dist/cjs/Toolbar/components/EmbeddedEntityDropdownButton.js +8 -10
- package/dist/cjs/Toolbar/components/StickyToolbarWrapper.js +2 -2
- package/dist/cjs/Toolbar/index.js +30 -33
- 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 +6 -8
- package/dist/cjs/__fixtures__/locale/index.js +2 -2
- package/dist/cjs/__fixtures__/space/index.js +1 -1
- package/dist/cjs/constants/Schema.js +0 -1
- package/dist/cjs/dialogs/HypelinkDialog/HyperlinkDialog.js +38 -43
- package/dist/cjs/dialogs/openRichTextDialog.js +4 -6
- package/dist/cjs/dialogs/renderRichTextDialog.js +4 -6
- 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 +44 -53
- package/dist/cjs/helpers/environment.js +3 -3
- package/dist/cjs/helpers/formatDateAndTime.js +4 -5
- package/dist/cjs/helpers/getAllowedResourcesForNodeType.js +5 -22
- package/dist/cjs/helpers/getLinkedContentTypeIdsForNodeType.js +5 -29
- package/dist/cjs/helpers/nodeFactory.js +6 -6
- package/dist/cjs/helpers/sdkNavigatorSlideIn.js +6 -14
- package/dist/cjs/helpers/sdkNavigatorSlideIn.spec.js +2 -3
- package/dist/cjs/helpers/toSlateValue.js +3 -14
- package/dist/cjs/helpers/transformers.js +5 -5
- package/dist/cjs/helpers/validations.js +9 -12
- package/dist/cjs/index.js +5 -7
- package/dist/cjs/internal/constants.js +2 -4
- package/dist/cjs/internal/hooks.js +7 -9
- package/dist/cjs/internal/misc.js +12 -15
- package/dist/cjs/internal/queries.js +108 -115
- package/dist/cjs/internal/transforms.js +48 -51
- package/dist/cjs/internal/types/editor.js +1 -3
- package/dist/cjs/plugins/Break/createExitBreakPlugin.test.js +3 -4
- package/dist/cjs/plugins/Break/createResetNodePlugin.js +0 -1
- package/dist/cjs/plugins/Break/createSoftBreakPlugin.test.js +3 -3
- package/dist/cjs/plugins/CommandPalette/components/CommandList.js +33 -35
- package/dist/cjs/plugins/CommandPalette/components/CommandList.styles.js +1 -1
- package/dist/cjs/plugins/CommandPalette/components/CommandPrompt.js +5 -7
- package/dist/cjs/plugins/CommandPalette/hooks/useCommandList.js +3 -7
- package/dist/cjs/plugins/CommandPalette/onKeyDown.js +1 -6
- package/dist/cjs/plugins/CommandPalette/onKeyDown.spec.js +4 -6
- package/dist/cjs/plugins/CommandPalette/useCommands.js +3 -3
- package/dist/cjs/plugins/CommandPalette/utils/fetchEntries.js +0 -2
- package/dist/cjs/plugins/CommandPalette/utils/trimLeadingSlash.js +1 -6
- package/dist/cjs/plugins/DragAndDrop/index.js +1 -9
- package/dist/cjs/plugins/EmbeddedEntityBlock/LinkedEntityBlock.js +8 -10
- package/dist/cjs/plugins/EmbeddedEntityBlock/index.js +3 -3
- package/dist/cjs/plugins/EmbeddedEntityInline/FetchingWrappedInlineEntryCard.js +17 -19
- package/dist/cjs/plugins/EmbeddedEntityInline/LinkedEntityInline.js +7 -9
- package/dist/cjs/plugins/EmbeddedResourceBlock/LinkedResourceBlock.js +5 -5
- package/dist/cjs/plugins/EmbeddedResourceInline/FetchingWrappedResourceInlineCard.js +11 -13
- 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 +10 -13
- package/dist/cjs/plugins/Heading/components/ToolbarHeadingButton.js +29 -23
- package/dist/cjs/plugins/Heading/createHeadingPlugin.js +2 -7
- package/dist/cjs/plugins/Hr/index.js +14 -19
- package/dist/cjs/plugins/Hyperlink/HyperlinkModal.js +28 -32
- package/dist/cjs/plugins/Hyperlink/__tests__/createHyperlinkPlugin.test.js +8 -8
- package/dist/cjs/plugins/Hyperlink/components/EntityHyperlink.js +8 -10
- package/dist/cjs/plugins/Hyperlink/components/LinkPopover.js +17 -23
- package/dist/cjs/plugins/Hyperlink/components/ResourceHyperlink.js +8 -10
- package/dist/cjs/plugins/Hyperlink/components/ToolbarHyperlinkButton.js +4 -6
- package/dist/cjs/plugins/Hyperlink/components/UrlHyperlink.js +6 -8
- package/dist/cjs/plugins/Hyperlink/components/linkHandlers.js +3 -3
- package/dist/cjs/plugins/Hyperlink/components/styles.js +1 -1
- package/dist/cjs/plugins/Hyperlink/createHyperlinkPlugin.js +4 -10
- package/dist/cjs/plugins/Hyperlink/useEntityInfo.js +3 -6
- package/dist/cjs/plugins/Hyperlink/useResourceEntityInfo.js +4 -6
- 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 +25 -29
- package/dist/cjs/plugins/List/__tests__/insertListFragment.test.js +22 -22
- package/dist/cjs/plugins/List/components/List.js +7 -9
- package/dist/cjs/plugins/List/components/ListItem.js +4 -6
- package/dist/cjs/plugins/List/components/ToolbarListButton.js +5 -7
- package/dist/cjs/plugins/List/createListPlugin.js +0 -4
- package/dist/cjs/plugins/List/insertListBreak.js +4 -13
- package/dist/cjs/plugins/List/insertListFragment.js +5 -18
- package/dist/cjs/plugins/List/onKeyDownList.js +6 -8
- package/dist/cjs/plugins/List/transforms/insertListItem.js +2 -17
- package/dist/cjs/plugins/List/transforms/moveListItemDown.js +2 -8
- package/dist/cjs/plugins/List/transforms/moveListItems.js +2 -7
- package/dist/cjs/plugins/List/transforms/moveListItems.test.js +14 -15
- package/dist/cjs/plugins/List/transforms/toggleList.js +3 -8
- package/dist/cjs/plugins/List/transforms/toggleList.spec.js +28 -28
- package/dist/cjs/plugins/List/transforms/unwrapList.js +2 -7
- package/dist/cjs/plugins/List/utils.js +11 -12
- package/dist/cjs/plugins/List/withList.js +2 -6
- package/dist/cjs/plugins/Marks/Bold.js +7 -9
- package/dist/cjs/plugins/Marks/Code.js +7 -15
- package/dist/cjs/plugins/Marks/Italic.js +7 -9
- package/dist/cjs/plugins/Marks/Subscript.js +8 -10
- package/dist/cjs/plugins/Marks/Superscript.js +8 -10
- package/dist/cjs/plugins/Marks/Underline.js +4 -6
- package/dist/cjs/plugins/Marks/components/MarkToolbarButton.js +7 -9
- package/dist/cjs/plugins/Marks/helpers.js +5 -5
- package/dist/cjs/plugins/Normalizer/baseRules.js +0 -2
- package/dist/cjs/plugins/Normalizer/createNormalizerPlugin.test.js +12 -12
- package/dist/cjs/plugins/Normalizer/utils.js +3 -4
- package/dist/cjs/plugins/Normalizer/withNormalizer.js +3 -23
- package/dist/cjs/plugins/Paragraph/Paragraph.js +4 -6
- package/dist/cjs/plugins/Paragraph/__tests__/createParagraphPlugin.test.js +32 -32
- package/dist/cjs/plugins/Paragraph/createParagraphPlugin.js +2 -3
- package/dist/cjs/plugins/PasteHTML/createPasteHTMLPlugin.js +6 -9
- package/dist/cjs/plugins/PasteHTML/utils/__tests__/sanitizeHTML.test.js +0 -2
- package/dist/cjs/plugins/PasteHTML/utils/sanitizeAnchors.js +0 -9
- package/dist/cjs/plugins/PasteHTML/utils/sanitizeHTML.js +2 -17
- package/dist/cjs/plugins/PasteHTML/utils/sanitizeSheets.js +1 -13
- package/dist/cjs/plugins/Quote/__test__/createQuotePlugin.test.js +21 -21
- package/dist/cjs/plugins/Quote/components/Quote.js +4 -6
- package/dist/cjs/plugins/Quote/components/ToolbarQuoteButton.js +4 -6
- package/dist/cjs/plugins/Quote/createQuotePlugin.js +0 -1
- package/dist/cjs/plugins/Quote/toggleQuote.js +5 -5
- package/dist/cjs/plugins/Quote/withQuote.js +2 -4
- package/dist/cjs/plugins/SelectOnBackspace/createSelectOnBackspacePlugin.js +0 -1
- 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 +4 -5
- package/dist/cjs/plugins/Table/actions/addRow.js +3 -6
- package/dist/cjs/plugins/Table/components/Cell.js +5 -7
- package/dist/cjs/plugins/Table/components/HeaderCell.js +5 -7
- package/dist/cjs/plugins/Table/components/Row.js +4 -6
- package/dist/cjs/plugins/Table/components/Table.js +6 -8
- package/dist/cjs/plugins/Table/components/TableActions.js +16 -19
- package/dist/cjs/plugins/Table/components/ToolbarButton.js +4 -7
- package/dist/cjs/plugins/Table/createTablePlugin.js +1 -11
- package/dist/cjs/plugins/Table/helpers.js +12 -16
- package/dist/cjs/plugins/Table/insertTableFragment.js +2 -15
- package/dist/cjs/plugins/Table/onKeyDownTable.js +2 -11
- package/dist/cjs/plugins/Table/tableTracking.js +6 -6
- package/dist/cjs/plugins/Text/__tests__/createTextPlugin.test.js +17 -19
- package/dist/cjs/plugins/Text/createTextPlugin.js +5 -22
- package/dist/cjs/plugins/Tracking/createTrackingPlugin.js +4 -5
- package/dist/cjs/plugins/Tracking/utils.js +3 -6
- package/dist/cjs/plugins/Voids/createVoidsPlugin.js +0 -5
- package/dist/cjs/plugins/Voids/transformVoid.js +0 -1
- package/dist/cjs/plugins/index.js +3 -15
- package/dist/cjs/plugins/shared/EmbeddedBlockToolbarIcon.js +10 -12
- package/dist/cjs/plugins/shared/EmbeddedBlockUtil.js +6 -16
- package/dist/cjs/plugins/shared/EmbeddedInlineToolbarIcon.js +8 -10
- package/dist/cjs/plugins/shared/EmbeddedInlineUtil.js +5 -9
- package/dist/cjs/plugins/shared/FetchingWrappedAssetCard.js +11 -13
- package/dist/cjs/plugins/shared/FetchingWrappedEntryCard.js +12 -14
- package/dist/cjs/plugins/shared/FetchingWrappedResourceCard.js +11 -14
- package/dist/cjs/plugins/shared/LinkedBlockWrapper.js +4 -8
- package/dist/cjs/plugins/shared/LinkedInlineWrapper.js +6 -10
- package/dist/cjs/plugins/shared/ResourceNewBadge.js +3 -5
- package/dist/cjs/plugins/shared/ToolbarButton.js +6 -8
- package/dist/cjs/plugins/shared/__tests__/FetchingWrappedAssetCard.test.js +5 -10
- package/dist/cjs/plugins/shared/__tests__/FetchingWrappedEntryCard.test.js +6 -11
- package/dist/cjs/plugins/shared/__tests__/FetchingWrappedResourceCard.test.js +13 -15
- package/dist/cjs/plugins/shared/utils.js +1 -4
- package/dist/cjs/test-utils/assertOutput.js +0 -1
- package/dist/cjs/test-utils/hyperscript.d.js +0 -1
- package/dist/cjs/test-utils/randomId.js +1 -3
- package/dist/cjs/test-utils/validation.js +5 -8
- package/dist/esm/ContentfulEditorProvider.js +1 -4
- package/dist/esm/RichTextEditor.js +13 -13
- package/dist/esm/RichTextEditor.styles.js +0 -1
- package/dist/esm/SdkProvider.js +2 -2
- package/dist/esm/SyncEditorChanges.js +3 -18
- package/dist/esm/Toolbar/_tests_/toolbar.test.js +12 -12
- package/dist/esm/Toolbar/components/EmbedEntityWidget.js +7 -9
- package/dist/esm/Toolbar/components/EmbeddedEntityDropdownButton.js +6 -6
- package/dist/esm/Toolbar/components/StickyToolbarWrapper.js +1 -1
- package/dist/esm/Toolbar/index.js +27 -28
- package/dist/esm/__fixtures__/FakeSdk.js +3 -3
- package/dist/esm/constants/Schema.js +0 -1
- package/dist/esm/dialogs/HypelinkDialog/HyperlinkDialog.js +31 -34
- 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 +1 -9
- package/dist/esm/helpers/editor.js +6 -22
- package/dist/esm/helpers/extractNodes.js +1 -3
- package/dist/esm/helpers/formatDateAndTime.js +2 -11
- package/dist/esm/helpers/getAllowedResourcesForNodeType.js +2 -19
- package/dist/esm/helpers/getLinkedContentTypeIdsForNodeType.js +2 -26
- package/dist/esm/helpers/sdkNavigatorSlideIn.js +6 -20
- package/dist/esm/helpers/sdkNavigatorSlideIn.spec.js +0 -1
- package/dist/esm/helpers/toSlateValue.js +3 -17
- package/dist/esm/helpers/validations.js +1 -5
- package/dist/esm/internal/misc.js +2 -23
- package/dist/esm/internal/queries.js +2 -11
- package/dist/esm/internal/transforms.js +3 -14
- package/dist/esm/internal/types/editor.js +1 -3
- package/dist/esm/plugins/Break/createExitBreakPlugin.test.js +3 -4
- package/dist/esm/plugins/Break/createResetNodePlugin.js +0 -1
- 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 +1 -11
- package/dist/esm/plugins/CommandPalette/hooks/useCommandList.js +0 -2
- package/dist/esm/plugins/CommandPalette/onKeyDown.js +0 -5
- 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 +0 -2
- package/dist/esm/plugins/CommandPalette/utils/trimLeadingSlash.js +1 -6
- package/dist/esm/plugins/DragAndDrop/index.js +1 -9
- 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 +7 -8
- package/dist/esm/plugins/Heading/components/ToolbarHeadingButton.js +26 -18
- package/dist/esm/plugins/Heading/createHeadingPlugin.js +1 -6
- package/dist/esm/plugins/Hr/index.js +5 -8
- package/dist/esm/plugins/Hyperlink/HyperlinkModal.js +23 -25
- package/dist/esm/plugins/Hyperlink/__tests__/createHyperlinkPlugin.test.js +8 -8
- package/dist/esm/plugins/Hyperlink/components/EntityHyperlink.js +6 -6
- package/dist/esm/plugins/Hyperlink/components/LinkPopover.js +15 -19
- package/dist/esm/plugins/Hyperlink/components/ResourceHyperlink.js +6 -6
- package/dist/esm/plugins/Hyperlink/components/ToolbarHyperlinkButton.js +2 -2
- package/dist/esm/plugins/Hyperlink/components/UrlHyperlink.js +4 -4
- package/dist/esm/plugins/Hyperlink/createHyperlinkPlugin.js +1 -5
- package/dist/esm/plugins/Hyperlink/useEntityInfo.js +3 -6
- 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 +25 -29
- 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 +0 -4
- package/dist/esm/plugins/List/insertListBreak.js +4 -13
- package/dist/esm/plugins/List/insertListFragment.js +5 -18
- package/dist/esm/plugins/List/onKeyDownList.js +5 -7
- package/dist/esm/plugins/List/transforms/insertListItem.js +3 -20
- package/dist/esm/plugins/List/transforms/moveListItemDown.js +2 -8
- package/dist/esm/plugins/List/transforms/moveListItems.js +2 -7
- package/dist/esm/plugins/List/transforms/moveListItems.test.js +14 -15
- package/dist/esm/plugins/List/transforms/toggleList.js +3 -8
- package/dist/esm/plugins/List/transforms/toggleList.spec.js +28 -28
- package/dist/esm/plugins/List/transforms/unwrapList.js +2 -7
- package/dist/esm/plugins/List/utils.js +2 -7
- package/dist/esm/plugins/List/withList.js +2 -6
- package/dist/esm/plugins/Marks/Bold.js +2 -2
- package/dist/esm/plugins/Marks/Code.js +2 -8
- 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 +0 -4
- package/dist/esm/plugins/Normalizer/createNormalizerPlugin.test.js +12 -12
- package/dist/esm/plugins/Normalizer/utils.js +0 -1
- package/dist/esm/plugins/Normalizer/withNormalizer.js +2 -22
- 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 +1 -2
- package/dist/esm/plugins/PasteHTML/createPasteHTMLPlugin.js +3 -9
- package/dist/esm/plugins/PasteHTML/utils/__tests__/sanitizeHTML.test.js +0 -2
- package/dist/esm/plugins/PasteHTML/utils/sanitizeAnchors.js +1 -27
- package/dist/esm/plugins/PasteHTML/utils/sanitizeHTML.js +2 -17
- package/dist/esm/plugins/PasteHTML/utils/sanitizeSheets.js +1 -13
- 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 +0 -1
- package/dist/esm/plugins/Quote/shouldResetQuote.js +1 -6
- package/dist/esm/plugins/Quote/toggleQuote.js +1 -1
- package/dist/esm/plugins/Quote/withQuote.js +2 -4
- package/dist/esm/plugins/SelectOnBackspace/createSelectOnBackspacePlugin.js +0 -1
- 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 +1 -2
- package/dist/esm/plugins/Table/actions/addRow.js +0 -3
- 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 +11 -12
- package/dist/esm/plugins/Table/components/ToolbarButton.js +2 -3
- package/dist/esm/plugins/Table/createTablePlugin.js +1 -11
- package/dist/esm/plugins/Table/helpers.js +1 -10
- package/dist/esm/plugins/Table/insertTableFragment.js +2 -15
- package/dist/esm/plugins/Table/onKeyDownTable.js +2 -11
- package/dist/esm/plugins/Table/tableTracking.js +6 -6
- package/dist/esm/plugins/Text/__tests__/createTextPlugin.test.js +17 -19
- package/dist/esm/plugins/Text/createTextPlugin.js +5 -22
- package/dist/esm/plugins/Tracking/createTrackingPlugin.js +1 -2
- package/dist/esm/plugins/Tracking/utils.js +0 -1
- package/dist/esm/plugins/Voids/createVoidsPlugin.js +0 -5
- package/dist/esm/plugins/Voids/transformVoid.js +1 -4
- package/dist/esm/plugins/index.js +0 -12
- package/dist/esm/plugins/shared/EmbeddedBlockToolbarIcon.js +5 -5
- package/dist/esm/plugins/shared/EmbeddedBlockUtil.js +5 -15
- package/dist/esm/plugins/shared/EmbeddedInlineToolbarIcon.js +5 -5
- package/dist/esm/plugins/shared/EmbeddedInlineUtil.js +4 -8
- 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 +8 -9
- package/dist/esm/plugins/shared/LinkedBlockWrapper.js +3 -7
- package/dist/esm/plugins/shared/LinkedInlineWrapper.js +3 -5
- 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 +2 -5
- package/dist/esm/plugins/shared/__tests__/FetchingWrappedEntryCard.test.js +2 -5
- package/dist/esm/plugins/shared/__tests__/FetchingWrappedResourceCard.test.js +8 -8
- package/dist/esm/plugins/shared/utils.js +1 -4
- package/dist/esm/test-utils/assertOutput.js +0 -1
- package/dist/esm/test-utils/hyperscript.d.js +0 -1
- package/dist/esm/test-utils/jsx.js +1 -5
- package/dist/esm/test-utils/randomId.js +1 -3
- package/dist/esm/test-utils/setEmptyDataAttribute.js +1 -4
- package/dist/esm/test-utils/validation.js +4 -7
- package/dist/types/RichTextEditor.d.ts +2 -3
- package/dist/types/Toolbar/components/EmbedEntityWidget.d.ts +1 -2
- package/dist/types/Toolbar/components/EmbeddedEntityDropdownButton.d.ts +1 -1
- package/dist/types/Toolbar/components/StickyToolbarWrapper.d.ts +2 -2
- package/dist/types/Toolbar/index.d.ts +1 -2
- package/dist/types/dialogs/HypelinkDialog/HyperlinkDialog.d.ts +4 -4
- package/dist/types/dialogs/renderRichTextDialog.d.ts +1 -2
- package/dist/types/plugins/CommandPalette/components/CommandList.d.ts +1 -2
- package/dist/types/plugins/CommandPalette/components/CommandPrompt.d.ts +1 -2
- package/dist/types/plugins/EmbeddedEntityBlock/LinkedEntityBlock.d.ts +1 -2
- package/dist/types/plugins/EmbeddedEntityInline/FetchingWrappedInlineEntryCard.d.ts +1 -1
- package/dist/types/plugins/EmbeddedEntityInline/LinkedEntityInline.d.ts +1 -2
- package/dist/types/plugins/EmbeddedResourceBlock/LinkedResourceBlock.d.ts +1 -2
- package/dist/types/plugins/EmbeddedResourceInline/FetchingWrappedResourceInlineCard.d.ts +1 -1
- package/dist/types/plugins/EmbeddedResourceInline/LinkedResourceInline.d.ts +1 -2
- package/dist/types/plugins/Heading/components/Heading.d.ts +6 -6
- package/dist/types/plugins/Heading/components/ToolbarHeadingButton.d.ts +1 -2
- package/dist/types/plugins/Hr/index.d.ts +2 -2
- package/dist/types/plugins/Hyperlink/HyperlinkModal.d.ts +1 -2
- package/dist/types/plugins/Hyperlink/components/EntityHyperlink.d.ts +1 -2
- package/dist/types/plugins/Hyperlink/components/LinkPopover.d.ts +1 -1
- package/dist/types/plugins/Hyperlink/components/ResourceHyperlink.d.ts +1 -2
- package/dist/types/plugins/Hyperlink/components/ToolbarHyperlinkButton.d.ts +1 -2
- package/dist/types/plugins/Hyperlink/components/UrlHyperlink.d.ts +1 -2
- package/dist/types/plugins/List/components/List.d.ts +2 -3
- package/dist/types/plugins/List/components/ListItem.d.ts +1 -2
- package/dist/types/plugins/List/components/ToolbarListButton.d.ts +1 -2
- package/dist/types/plugins/Marks/Bold.d.ts +2 -3
- package/dist/types/plugins/Marks/Code.d.ts +3 -4
- package/dist/types/plugins/Marks/Italic.d.ts +2 -3
- package/dist/types/plugins/Marks/Subscript.d.ts +3 -4
- package/dist/types/plugins/Marks/Superscript.d.ts +3 -4
- package/dist/types/plugins/Marks/Underline.d.ts +2 -3
- package/dist/types/plugins/Marks/components/MarkToolbarButton.d.ts +1 -1
- package/dist/types/plugins/Paragraph/Paragraph.d.ts +1 -2
- package/dist/types/plugins/Quote/components/Quote.d.ts +1 -2
- package/dist/types/plugins/Quote/components/ToolbarQuoteButton.d.ts +1 -2
- package/dist/types/plugins/Table/components/Cell.d.ts +1 -2
- package/dist/types/plugins/Table/components/HeaderCell.d.ts +1 -2
- package/dist/types/plugins/Table/components/Row.d.ts +1 -2
- package/dist/types/plugins/Table/components/Table.d.ts +1 -2
- package/dist/types/plugins/Table/components/TableActions.d.ts +1 -2
- package/dist/types/plugins/Table/components/ToolbarButton.d.ts +1 -2
- package/dist/types/plugins/shared/EmbeddedBlockToolbarIcon.d.ts +1 -2
- package/dist/types/plugins/shared/EmbeddedInlineToolbarIcon.d.ts +1 -2
- package/dist/types/plugins/shared/FetchingWrappedAssetCard.d.ts +1 -2
- package/dist/types/plugins/shared/FetchingWrappedEntryCard.d.ts +1 -2
- package/dist/types/plugins/shared/FetchingWrappedResourceCard.d.ts +1 -2
- package/dist/types/plugins/shared/LinkedBlockWrapper.d.ts +1 -1
- package/dist/types/plugins/shared/LinkedInlineWrapper.d.ts +1 -1
- package/dist/types/plugins/shared/ResourceNewBadge.d.ts +1 -2
- package/dist/types/plugins/shared/ToolbarButton.d.ts +1 -2
- package/package.json +8 -5
|
@@ -5,7 +5,7 @@ import { focus } from '../../helpers/editor';
|
|
|
5
5
|
import { watchCurrentSlide } from '../../helpers/sdkNavigatorSlideIn';
|
|
6
6
|
import { insertNodes, select } from '../../internal/transforms';
|
|
7
7
|
export function getWithEmbeddedEntryInlineEvents(nodeType, sdk) {
|
|
8
|
-
return function withEmbeddedEntryInlineEvents(editor, { options: { hotkey
|
|
8
|
+
return function withEmbeddedEntryInlineEvents(editor, { options: { hotkey } }) {
|
|
9
9
|
return function handleEvent(event) {
|
|
10
10
|
if (!editor) return;
|
|
11
11
|
if (hotkey && isHotkey(hotkey, event)) {
|
|
@@ -56,7 +56,7 @@ export async function selectEntityAndInsert(editor, sdk, logAction) {
|
|
|
56
56
|
...newEntitySelectorConfigFromRichTextField(sdk.field, nodeType),
|
|
57
57
|
withCreate: true
|
|
58
58
|
};
|
|
59
|
-
const { selection
|
|
59
|
+
const { selection } = editor;
|
|
60
60
|
const rteSlide = watchCurrentSlide(sdk.navigator);
|
|
61
61
|
const entry = await sdk.dialogs.selectSingleEntry(config);
|
|
62
62
|
if (!entry) {
|
|
@@ -64,8 +64,6 @@ export async function selectEntityAndInsert(editor, sdk, logAction) {
|
|
|
64
64
|
nodeType
|
|
65
65
|
});
|
|
66
66
|
} else {
|
|
67
|
-
// Selection prevents incorrect position of inserted ref when RTE doesn't have focus
|
|
68
|
-
// (i.e. when using hotkeys and slide-in)
|
|
69
67
|
select(editor, selection);
|
|
70
68
|
insertNodes(editor, createInlineEntryNode(nodeType, entry));
|
|
71
69
|
logAction('insert', {
|
|
@@ -82,20 +80,18 @@ export async function selectResourceEntityAndInsert(editor, sdk, logAction) {
|
|
|
82
80
|
logAction('openCreateEmbedDialog', {
|
|
83
81
|
nodeType
|
|
84
82
|
});
|
|
85
|
-
const { dialogs, field
|
|
83
|
+
const { dialogs , field } = sdk;
|
|
86
84
|
const config = {
|
|
87
85
|
...newResourceEntitySelectorConfigFromRichTextField(field, nodeType),
|
|
88
86
|
withCreate: true
|
|
89
87
|
};
|
|
90
|
-
const { selection
|
|
88
|
+
const { selection } = editor;
|
|
91
89
|
const entry = await dialogs.selectSingleResourceEntry(config);
|
|
92
90
|
if (!entry) {
|
|
93
91
|
logAction('cancelCreateEmbedDialog', {
|
|
94
92
|
nodeType
|
|
95
93
|
});
|
|
96
94
|
} else {
|
|
97
|
-
// Selection prevents incorrect position of inserted ref when RTE doesn't have focus
|
|
98
|
-
// (i.e. when using hotkeys and slide-in)
|
|
99
95
|
select(editor, selection);
|
|
100
96
|
insertNodes(editor, createInlineEntryNode(nodeType, entry));
|
|
101
97
|
logAction('insert', {
|
|
@@ -2,21 +2,21 @@ import * as React from 'react';
|
|
|
2
2
|
import { AssetCard } from '@contentful/f36-components';
|
|
3
3
|
import { useEntity, useEntityLoader, MissingEntityCard, WrappedAssetCard } from '@contentful/field-editor-reference';
|
|
4
4
|
import areEqual from 'fast-deep-equal';
|
|
5
|
-
const InternalAssetCard =
|
|
5
|
+
const InternalAssetCard = React.memo((props)=>{
|
|
6
6
|
if (props.asset === undefined) {
|
|
7
|
-
return
|
|
7
|
+
return React.createElement(AssetCard, {
|
|
8
8
|
size: "default",
|
|
9
9
|
isLoading: true
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
if (props.asset === 'failed') {
|
|
13
|
-
return
|
|
13
|
+
return React.createElement(MissingEntityCard, {
|
|
14
14
|
entityType: "Asset",
|
|
15
15
|
isDisabled: props.isDisabled,
|
|
16
16
|
onRemove: props.onRemove
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
|
-
return
|
|
19
|
+
return React.createElement(WrappedAssetCard, {
|
|
20
20
|
getEntityScheduledActions: props.loadEntityScheduledActions,
|
|
21
21
|
size: "small",
|
|
22
22
|
isSelected: props.isSelected,
|
|
@@ -31,9 +31,9 @@ const InternalAssetCard = /*#__PURE__*/ React.memo((props)=>{
|
|
|
31
31
|
}, areEqual);
|
|
32
32
|
InternalAssetCard.displayName = 'InternalAssetCard';
|
|
33
33
|
export function FetchingWrappedAssetCard(props) {
|
|
34
|
-
const { onEntityFetchComplete
|
|
35
|
-
const { data: asset, status
|
|
36
|
-
const { getEntityScheduledActions
|
|
34
|
+
const { onEntityFetchComplete } = props;
|
|
35
|
+
const { data: asset , status } = useEntity('Asset', props.assetId);
|
|
36
|
+
const { getEntityScheduledActions } = useEntityLoader();
|
|
37
37
|
const loadEntityScheduledActions = React.useCallback(()=>getEntityScheduledActions('Asset', props.assetId), [
|
|
38
38
|
getEntityScheduledActions,
|
|
39
39
|
props.assetId
|
|
@@ -46,7 +46,7 @@ export function FetchingWrappedAssetCard(props) {
|
|
|
46
46
|
onEntityFetchComplete,
|
|
47
47
|
status
|
|
48
48
|
]);
|
|
49
|
-
return
|
|
49
|
+
return React.createElement(InternalAssetCard, {
|
|
50
50
|
asset: asset,
|
|
51
51
|
sdk: props.sdk,
|
|
52
52
|
isDisabled: props.isDisabled,
|
|
@@ -2,22 +2,22 @@ import * as React from 'react';
|
|
|
2
2
|
import { EntryCard } from '@contentful/f36-components';
|
|
3
3
|
import { useEntity, MissingEntityCard, WrappedEntryCard, useEntityLoader } from '@contentful/field-editor-reference';
|
|
4
4
|
import areEqual from 'fast-deep-equal';
|
|
5
|
-
const InternalEntryCard =
|
|
6
|
-
const { entry, sdk, loadEntityScheduledActions
|
|
5
|
+
const InternalEntryCard = React.memo((props)=>{
|
|
6
|
+
const { entry , sdk , loadEntityScheduledActions } = props;
|
|
7
7
|
if (entry === undefined) {
|
|
8
|
-
return
|
|
8
|
+
return React.createElement(EntryCard, {
|
|
9
9
|
isLoading: true
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
if (entry === 'failed') {
|
|
13
|
-
return
|
|
13
|
+
return React.createElement(MissingEntityCard, {
|
|
14
14
|
entityType: "Entry",
|
|
15
15
|
isDisabled: props.isDisabled,
|
|
16
16
|
onRemove: props.onRemove
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
const contentType = sdk.space.getCachedContentTypes().find((contentType)=>contentType.sys.id === entry.sys.contentType.sys.id);
|
|
20
|
-
return
|
|
20
|
+
return React.createElement(WrappedEntryCard, {
|
|
21
21
|
size: "default",
|
|
22
22
|
getAsset: props.sdk.space.getAsset,
|
|
23
23
|
getEntityScheduledActions: loadEntityScheduledActions,
|
|
@@ -34,9 +34,9 @@ const InternalEntryCard = /*#__PURE__*/ React.memo((props)=>{
|
|
|
34
34
|
}, areEqual);
|
|
35
35
|
InternalEntryCard.displayName = 'ReferenceCard';
|
|
36
36
|
export const FetchingWrappedEntryCard = (props)=>{
|
|
37
|
-
const { entryId, onEntityFetchComplete
|
|
38
|
-
const { data: entry, status
|
|
39
|
-
const { getEntityScheduledActions
|
|
37
|
+
const { entryId , onEntityFetchComplete } = props;
|
|
38
|
+
const { data: entry , status } = useEntity('Entry', entryId);
|
|
39
|
+
const { getEntityScheduledActions } = useEntityLoader();
|
|
40
40
|
const loadEntityScheduledActions = React.useCallback(()=>getEntityScheduledActions('Entry', entryId), [
|
|
41
41
|
getEntityScheduledActions,
|
|
42
42
|
entryId
|
|
@@ -49,7 +49,7 @@ export const FetchingWrappedEntryCard = (props)=>{
|
|
|
49
49
|
onEntityFetchComplete,
|
|
50
50
|
status
|
|
51
51
|
]);
|
|
52
|
-
return
|
|
52
|
+
return React.createElement(InternalEntryCard, {
|
|
53
53
|
entry: entry,
|
|
54
54
|
sdk: props.sdk,
|
|
55
55
|
locale: props.locale,
|
|
@@ -2,14 +2,14 @@ import * as React from 'react';
|
|
|
2
2
|
import { EntryCard } from '@contentful/f36-components';
|
|
3
3
|
import { ResourceEntityErrorCard, WrappedEntryCard, useResource } from '@contentful/field-editor-reference';
|
|
4
4
|
import areEqual from 'fast-deep-equal';
|
|
5
|
-
const InternalEntryCard =
|
|
5
|
+
const InternalEntryCard = React.memo((props)=>{
|
|
6
6
|
if (props.data === undefined || props.status === 'loading') {
|
|
7
|
-
return
|
|
7
|
+
return React.createElement(EntryCard, {
|
|
8
8
|
isLoading: true
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
|
-
const { contentType, resource: entry, space
|
|
12
|
-
return
|
|
11
|
+
const { contentType , resource: entry , space } = props.data;
|
|
12
|
+
return React.createElement(WrappedEntryCard, {
|
|
13
13
|
size: "default",
|
|
14
14
|
getAsset: ()=>Promise.resolve(),
|
|
15
15
|
isSelected: props.isSelected,
|
|
@@ -27,8 +27,8 @@ const InternalEntryCard = /*#__PURE__*/ React.memo((props)=>{
|
|
|
27
27
|
}, areEqual);
|
|
28
28
|
InternalEntryCard.displayName = 'ReferenceCard';
|
|
29
29
|
export const FetchingWrappedResourceCard = (props)=>{
|
|
30
|
-
const { link, onEntityFetchComplete
|
|
31
|
-
const { data, status, error
|
|
30
|
+
const { link , onEntityFetchComplete } = props;
|
|
31
|
+
const { data , status , error } = useResource(link.linkType, link.urn);
|
|
32
32
|
React.useEffect(()=>{
|
|
33
33
|
if (status === 'success') {
|
|
34
34
|
onEntityFetchComplete?.();
|
|
@@ -38,7 +38,7 @@ export const FetchingWrappedResourceCard = (props)=>{
|
|
|
38
38
|
status
|
|
39
39
|
]);
|
|
40
40
|
if (status === 'error') {
|
|
41
|
-
return
|
|
41
|
+
return React.createElement(ResourceEntityErrorCard, {
|
|
42
42
|
error: error,
|
|
43
43
|
linkType: link.linkType,
|
|
44
44
|
isSelected: props.isSelected,
|
|
@@ -46,8 +46,7 @@ export const FetchingWrappedResourceCard = (props)=>{
|
|
|
46
46
|
onRemove: props.onRemove
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
|
-
return
|
|
50
|
-
// entry is the only currently supported entity but TypeScript is not aware
|
|
49
|
+
return React.createElement(InternalEntryCard, {
|
|
51
50
|
data: data,
|
|
52
51
|
status: status,
|
|
53
52
|
sdk: props.sdk,
|
|
@@ -8,24 +8,20 @@ const styles = {
|
|
|
8
8
|
display: 'block'
|
|
9
9
|
}),
|
|
10
10
|
container: css({
|
|
11
|
-
// The next 2 properties ensure Entity card won't be aligned above
|
|
12
|
-
// a list item marker (i.e. bullet)
|
|
13
11
|
display: 'inline-block',
|
|
14
12
|
verticalAlign: 'text-top',
|
|
15
13
|
width: '100%'
|
|
16
14
|
})
|
|
17
15
|
};
|
|
18
|
-
export function LinkedBlockWrapper({ attributes, card, children, link
|
|
19
|
-
return
|
|
16
|
+
export function LinkedBlockWrapper({ attributes , card , children , link }) {
|
|
17
|
+
return React.createElement("div", {
|
|
20
18
|
...attributes,
|
|
21
19
|
className: styles.root,
|
|
22
20
|
"data-entity-type": link.sys.linkType,
|
|
23
21
|
"data-entity-id": getLinkEntityId(link),
|
|
24
|
-
// COMPAT: This makes copy & paste work for Firefox
|
|
25
22
|
contentEditable: IS_CHROME ? undefined : false,
|
|
26
23
|
draggable: IS_CHROME ? true : undefined
|
|
27
|
-
},
|
|
28
|
-
// COMPAT: This makes copy & paste work for Chromium/Blink browsers and Safari
|
|
24
|
+
}, React.createElement("div", {
|
|
29
25
|
contentEditable: IS_CHROME ? false : undefined,
|
|
30
26
|
draggable: IS_CHROME ? true : undefined,
|
|
31
27
|
className: styles.container
|
|
@@ -16,17 +16,15 @@ const styles = {
|
|
|
16
16
|
}
|
|
17
17
|
})
|
|
18
18
|
};
|
|
19
|
-
export function LinkedInlineWrapper({ attributes, card, children, link
|
|
20
|
-
return
|
|
19
|
+
export function LinkedInlineWrapper({ attributes , card , children , link }) {
|
|
20
|
+
return React.createElement("span", {
|
|
21
21
|
...attributes,
|
|
22
22
|
className: styles.root,
|
|
23
23
|
"data-entity-type": link.sys.linkType,
|
|
24
24
|
"data-entity-id": getLinkEntityId(link),
|
|
25
|
-
// COMPAT: This makes copy & paste work for Firefox
|
|
26
25
|
contentEditable: IS_CHROME ? undefined : false,
|
|
27
26
|
draggable: IS_CHROME ? true : undefined
|
|
28
|
-
},
|
|
29
|
-
// COMPAT: This makes copy & paste work for Chromium/Blink browsers and Safari
|
|
27
|
+
}, React.createElement("span", {
|
|
30
28
|
contentEditable: IS_CHROME ? false : undefined,
|
|
31
29
|
draggable: IS_CHROME ? true : undefined
|
|
32
30
|
}, card), children);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Badge } from '@contentful/f36-components';
|
|
3
3
|
export const ResourceNewBadge = ()=>{
|
|
4
|
-
return
|
|
4
|
+
return React.createElement(React.Fragment, null, ' ', "(different space)", ' ', React.createElement(Badge, {
|
|
5
5
|
variant: "primary-filled",
|
|
6
6
|
size: "small"
|
|
7
7
|
}, "new"));
|
|
@@ -14,12 +14,12 @@ const styles = {
|
|
|
14
14
|
})
|
|
15
15
|
};
|
|
16
16
|
export function ToolbarButton(props) {
|
|
17
|
-
const { title, testId, isActive, children, className, isDisabled =
|
|
17
|
+
const { title , testId , isActive , children , className , isDisabled =false } = props;
|
|
18
18
|
const handleClick = (event)=>{
|
|
19
19
|
event.preventDefault();
|
|
20
20
|
props.onClick();
|
|
21
21
|
};
|
|
22
|
-
const button =
|
|
22
|
+
const button = React.createElement(Button, {
|
|
23
23
|
className: cx(styles.button, className),
|
|
24
24
|
isDisabled: isDisabled,
|
|
25
25
|
startIcon: children,
|
|
@@ -29,7 +29,7 @@ export function ToolbarButton(props) {
|
|
|
29
29
|
size: "small"
|
|
30
30
|
});
|
|
31
31
|
if (title) {
|
|
32
|
-
return
|
|
32
|
+
return React.createElement(Tooltip, {
|
|
33
33
|
className: styles.tooltip,
|
|
34
34
|
placement: "bottom",
|
|
35
35
|
content: title
|
|
@@ -38,20 +38,17 @@ beforeEach(()=>{
|
|
|
38
38
|
};
|
|
39
39
|
});
|
|
40
40
|
test('some dropdown actions should be disabled', async ()=>{
|
|
41
|
-
const { getByTestId, queryByTestId
|
|
41
|
+
const { getByTestId , queryByTestId } = render(React.createElement(EntityProvider, {
|
|
42
42
|
sdk: sdk
|
|
43
|
-
},
|
|
43
|
+
}, React.createElement(FetchingWrappedAssetCard, {
|
|
44
44
|
sdk: sdk,
|
|
45
45
|
assetId: "asset-id",
|
|
46
46
|
locale: "en-US",
|
|
47
|
-
// eslint-disable-next-line -- TODO: explain this disable
|
|
48
47
|
onEdit: ()=>{},
|
|
49
|
-
// eslint-disable-next-line -- TODO: explain this disable
|
|
50
48
|
onRemove: ()=>{},
|
|
51
49
|
isDisabled: true,
|
|
52
50
|
isSelected: true
|
|
53
51
|
})));
|
|
54
|
-
// Assert Asset title
|
|
55
52
|
await waitFor(()=>expect(getByTestId('cf-ui-asset').textContent).toBe('asset title'));
|
|
56
53
|
fireEvent.click(getByTestId('cf-ui-card-actions'));
|
|
57
54
|
await waitFor(()=>{
|
|
@@ -42,20 +42,17 @@ beforeEach(()=>{
|
|
|
42
42
|
};
|
|
43
43
|
});
|
|
44
44
|
test('some dropdown actions should be disabled/removed', async ()=>{
|
|
45
|
-
const { getByTestId, queryByTestId
|
|
45
|
+
const { getByTestId , queryByTestId } = render(React.createElement(EntityProvider, {
|
|
46
46
|
sdk: sdk
|
|
47
|
-
},
|
|
47
|
+
}, React.createElement(FetchingWrappedEntryCard, {
|
|
48
48
|
sdk: sdk,
|
|
49
49
|
entryId: "entry-id",
|
|
50
50
|
locale: "en-US",
|
|
51
|
-
// eslint-disable-next-line -- TODO: explain this disable
|
|
52
51
|
onEdit: ()=>{},
|
|
53
|
-
// eslint-disable-next-line -- TODO: explain this disable
|
|
54
52
|
onRemove: ()=>{},
|
|
55
53
|
isDisabled: true,
|
|
56
54
|
isSelected: true
|
|
57
55
|
})));
|
|
58
|
-
// Assert Asset title
|
|
59
56
|
await waitFor(()=>expect(getByTestId('title').textContent).toBe('The best article ever'));
|
|
60
57
|
fireEvent.click(getByTestId('cf-ui-card-actions'));
|
|
61
58
|
await waitFor(()=>{
|
|
@@ -23,7 +23,7 @@ beforeEach(()=>{
|
|
|
23
23
|
get: jest.fn().mockReturnValue(publishedCT)
|
|
24
24
|
},
|
|
25
25
|
Entry: {
|
|
26
|
-
get: jest.fn().mockImplementation(({ entryId
|
|
26
|
+
get: jest.fn().mockImplementation(({ entryId })=>{
|
|
27
27
|
if (entryId === 'linked-entry-urn') {
|
|
28
28
|
return Promise.resolve(publishedEntry);
|
|
29
29
|
}
|
|
@@ -60,10 +60,10 @@ beforeEach(()=>{
|
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
62
|
});
|
|
63
|
-
function renderResourceCard({ linkType =
|
|
64
|
-
return render(
|
|
63
|
+
function renderResourceCard({ linkType ='Contentful:Entry' , entryUrn =resolvableEntryUrn } = {}) {
|
|
64
|
+
return render(React.createElement(EntityProvider, {
|
|
65
65
|
sdk: sdk
|
|
66
|
-
},
|
|
66
|
+
}, React.createElement(FetchingWrappedResourceCard, {
|
|
67
67
|
isDisabled: false,
|
|
68
68
|
isSelected: false,
|
|
69
69
|
sdk: sdk,
|
|
@@ -75,23 +75,23 @@ function renderResourceCard({ linkType = 'Contentful:Entry', entryUrn = resolvab
|
|
|
75
75
|
})));
|
|
76
76
|
}
|
|
77
77
|
test('renders entry card', async ()=>{
|
|
78
|
-
const { getByTestId, getByText
|
|
78
|
+
const { getByTestId , getByText } = renderResourceCard();
|
|
79
79
|
await waitFor(()=>expect(getByTestId('cf-ui-entry-card')).toBeDefined());
|
|
80
80
|
expect(getByText(publishedEntry.fields.exField.en)).toBeDefined();
|
|
81
81
|
expect(getByText(space.name)).toBeDefined();
|
|
82
82
|
});
|
|
83
83
|
test('renders skeleton when no data is provided', ()=>{
|
|
84
|
-
const { getByTestId
|
|
84
|
+
const { getByTestId } = renderResourceCard();
|
|
85
85
|
expect(getByTestId('cf-ui-skeleton-form')).toBeDefined();
|
|
86
86
|
});
|
|
87
87
|
test('renders unsupported entity card when unsupported link is passed', async ()=>{
|
|
88
|
-
const { getByText
|
|
88
|
+
const { getByText } = renderResourceCard({
|
|
89
89
|
linkType: 'Contentful:UnsupportedLink'
|
|
90
90
|
});
|
|
91
91
|
await waitFor(()=>expect(getByText('Resource type Contentful:UnsupportedLink is currently not supported')).toBeDefined());
|
|
92
92
|
});
|
|
93
93
|
test('renders missing entity card when unknown error is returned', async ()=>{
|
|
94
|
-
const { getByTestId
|
|
94
|
+
const { getByTestId } = renderResourceCard({
|
|
95
95
|
entryUrn: unknownEntryUrn
|
|
96
96
|
});
|
|
97
97
|
await waitFor(()=>expect(getByTestId('cf-ui-missing-entry-card')).toBeDefined());
|
|
@@ -2,10 +2,7 @@ const isResourceLink = (link)=>!!link.sys.urn;
|
|
|
2
2
|
export const getLinkEntityId = (link)=>isResourceLink(link) ? link.sys.urn : link.sys.id;
|
|
3
3
|
export function truncateTitle(str, length) {
|
|
4
4
|
if (typeof str === 'string' && str.length > length) {
|
|
5
|
-
return str && str.substr(0, length + 1)
|
|
6
|
-
// Get rid of orphan letters but not one letter words (I, a, 2).
|
|
7
|
-
// Try to not have “.” as last character to avoid awkward “....”.
|
|
8
|
-
.replace(/(\s+\S(?=\S)|\s*)\.?.$/, '…');
|
|
5
|
+
return str && str.substr(0, length + 1).replace(/(\s+\S(?=\S)|\s*)\.?.$/, '…');
|
|
9
6
|
}
|
|
10
7
|
return str;
|
|
11
8
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
// eslint-disable-next-line -- TODO: explain this disable
|
|
@@ -85,11 +85,7 @@ const createHR = (_, __, children)=>{
|
|
|
85
85
|
const createFragment = (_, __, children)=>{
|
|
86
86
|
return children;
|
|
87
87
|
};
|
|
88
|
-
|
|
89
|
-
* Mapping for JSX => Slate Node types
|
|
90
|
-
*
|
|
91
|
-
* Add items as needed. Don't forget to adjust hyperscript.d.ts
|
|
92
|
-
*/ export const jsx = createHyperscript({
|
|
88
|
+
export const jsx = createHyperscript({
|
|
93
89
|
elements: {
|
|
94
90
|
hquote: {
|
|
95
91
|
type: BLOCKS.QUOTE,
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { setNodes } from '@udecode/plate-common';
|
|
2
2
|
import { Element } from 'slate';
|
|
3
|
-
|
|
4
|
-
* Sets empty node.data attributes. Helpful when testing against
|
|
5
|
-
* output generated by a 3rd-party library e.g. Plate.
|
|
6
|
-
*/ export const setEmptyDataAttribute = (root)=>{
|
|
3
|
+
export const setEmptyDataAttribute = (root)=>{
|
|
7
4
|
setNodes(root, {
|
|
8
5
|
data: {}
|
|
9
6
|
}, {
|
|
@@ -60,7 +60,7 @@ function buildSchemaErrors(validateSchema, _, errors) {
|
|
|
60
60
|
errors.push(...schemaErrors);
|
|
61
61
|
}
|
|
62
62
|
function resetChildNodes(node) {
|
|
63
|
-
const { content
|
|
63
|
+
const { content } = node;
|
|
64
64
|
if (isLeafNode(node)) {
|
|
65
65
|
return node;
|
|
66
66
|
}
|
|
@@ -69,7 +69,7 @@ function resetChildNodes(node) {
|
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
71
|
function resetNode(node) {
|
|
72
|
-
const { nodeType
|
|
72
|
+
const { nodeType } = node;
|
|
73
73
|
if (helpers.isText(node)) {
|
|
74
74
|
return {
|
|
75
75
|
nodeType,
|
|
@@ -85,7 +85,7 @@ function resetNode(node) {
|
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
87
|
function removeGrandChildNodes(node) {
|
|
88
|
-
const { content
|
|
88
|
+
const { content } = node;
|
|
89
89
|
if (isLeafNode(node)) {
|
|
90
90
|
return node;
|
|
91
91
|
}
|
|
@@ -104,10 +104,7 @@ function removeChildNodes(node) {
|
|
|
104
104
|
function isLeafNode(node) {
|
|
105
105
|
return helpers.isText(node) || !Array.isArray(node.content);
|
|
106
106
|
}
|
|
107
|
-
|
|
108
|
-
* Removes minItems errors occurred in grand-children to avoid
|
|
109
|
-
* false positives caused by the use of `removeGrandChildNodes`
|
|
110
|
-
*/ function removeGrandChildrenMinItemsErrors(errors) {
|
|
107
|
+
function removeGrandChildrenMinItemsErrors(errors) {
|
|
111
108
|
return errors.filter((error)=>{
|
|
112
109
|
const level = error.instancePath.split('/').length;
|
|
113
110
|
return !(level > 3 && error.keyword === 'minItems');
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import { FieldAppSDK } from '@contentful/app-sdk';
|
|
3
2
|
import * as Contentful from '@contentful/rich-text-types';
|
|
4
3
|
import { RichTextTrackingActionHandler } from './plugins/Tracking';
|
|
@@ -14,9 +13,9 @@ type ConnectedProps = {
|
|
|
14
13
|
actionsDisabled?: boolean;
|
|
15
14
|
restrictedMarks?: string[];
|
|
16
15
|
};
|
|
17
|
-
export declare const ConnectedRichTextEditor: (props: ConnectedProps) =>
|
|
16
|
+
export declare const ConnectedRichTextEditor: (props: ConnectedProps) => JSX.Element;
|
|
18
17
|
type Props = ConnectedProps & {
|
|
19
18
|
isInitiallyDisabled: boolean;
|
|
20
19
|
};
|
|
21
|
-
declare const RichTextEditor: (props: Props) =>
|
|
20
|
+
declare const RichTextEditor: (props: Props) => JSX.Element;
|
|
22
21
|
export default RichTextEditor;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
export interface EmbedEntityWidgetProps {
|
|
3
2
|
isDisabled?: boolean;
|
|
4
3
|
canInsertBlocks?: boolean;
|
|
5
4
|
}
|
|
6
|
-
export declare const EmbedEntityWidget: ({ isDisabled, canInsertBlocks }: EmbedEntityWidgetProps) =>
|
|
5
|
+
export declare const EmbedEntityWidget: ({ isDisabled, canInsertBlocks }: EmbedEntityWidgetProps) => JSX.Element | null;
|
|
@@ -6,4 +6,4 @@ export interface EmbeddedEntityDropdownButtonProps {
|
|
|
6
6
|
onClose: () => void;
|
|
7
7
|
onToggle: () => void;
|
|
8
8
|
}
|
|
9
|
-
export declare function EmbeddedEntityDropdownButton({ children, isDisabled, isOpen, onClose, onToggle, }: EmbeddedEntityDropdownButtonProps):
|
|
9
|
+
export declare function EmbeddedEntityDropdownButton({ children, isDisabled, isOpen, onClose, onToggle, }: EmbeddedEntityDropdownButtonProps): JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
type StickyToolbarProps = {
|
|
3
3
|
isDisabled?: boolean;
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
};
|
|
6
|
-
declare const StickyToolbarWrapper: ({ isDisabled, children }: StickyToolbarProps) =>
|
|
6
|
+
declare const StickyToolbarWrapper: ({ isDisabled, children }: StickyToolbarProps) => JSX.Element;
|
|
7
7
|
export default StickyToolbarWrapper;
|
|
@@ -48,10 +48,10 @@ export class HyperlinkDialog extends React.Component<any, any, any> {
|
|
|
48
48
|
handleSubmit: (event: any) => void;
|
|
49
49
|
selectEntry: () => Promise<void>;
|
|
50
50
|
selectAsset: () => Promise<void>;
|
|
51
|
-
render():
|
|
52
|
-
renderFields():
|
|
53
|
-
renderEntityField():
|
|
54
|
-
renderEntitySelector(type: any):
|
|
51
|
+
render(): JSX.Element;
|
|
52
|
+
renderFields(): JSX.Element;
|
|
53
|
+
renderEntityField(): JSX.Element;
|
|
54
|
+
renderEntitySelector(type: any): JSX.Element;
|
|
55
55
|
}
|
|
56
56
|
export function openHyperlinkDialog(dialogs: any, { value, showTextInput, allowedHyperlinkTypes, entitySelectorConfigs }: {
|
|
57
57
|
value: any;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import { PlateEditor } from '../../../internal/types';
|
|
3
2
|
export interface CommandListProps {
|
|
4
3
|
query: string;
|
|
5
4
|
editor: PlateEditor;
|
|
6
5
|
textContainer?: HTMLSpanElement;
|
|
7
6
|
}
|
|
8
|
-
export declare const CommandList: ({ query, editor, textContainer }: CommandListProps) =>
|
|
7
|
+
export declare const CommandList: ({ query, editor, textContainer }: CommandListProps) => JSX.Element | null;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import { EntityLink } from '@contentful/field-editor-reference';
|
|
3
2
|
import { Element, RenderElementProps } from '../../internal/types';
|
|
4
3
|
type LinkedEntityBlockProps = {
|
|
@@ -10,5 +9,5 @@ type LinkedEntityBlockProps = {
|
|
|
10
9
|
attributes: Pick<RenderElementProps, 'attributes'>;
|
|
11
10
|
children: Pick<RenderElementProps, 'children'>;
|
|
12
11
|
};
|
|
13
|
-
export declare function LinkedEntityBlock(props: LinkedEntityBlockProps):
|
|
12
|
+
export declare function LinkedEntityBlock(props: LinkedEntityBlockProps): JSX.Element;
|
|
14
13
|
export {};
|
|
@@ -9,5 +9,5 @@ interface FetchingWrappedInlineEntryCardProps {
|
|
|
9
9
|
onRemove: (event: React.MouseEvent<Element, MouseEvent>) => void;
|
|
10
10
|
onEntityFetchComplete?: VoidFunction;
|
|
11
11
|
}
|
|
12
|
-
export declare function FetchingWrappedInlineEntryCard(props: FetchingWrappedInlineEntryCardProps):
|
|
12
|
+
export declare function FetchingWrappedInlineEntryCard(props: FetchingWrappedInlineEntryCardProps): JSX.Element;
|
|
13
13
|
export {};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import { EntryLink } from '@contentful/field-editor-reference';
|
|
3
2
|
import { Element, RenderElementProps } from '../../internal/types';
|
|
4
3
|
type LinkedEntityInlineProps = {
|
|
@@ -10,5 +9,5 @@ type LinkedEntityInlineProps = {
|
|
|
10
9
|
attributes: Pick<RenderElementProps, 'attributes'>;
|
|
11
10
|
children: Pick<RenderElementProps, 'children'>;
|
|
12
11
|
};
|
|
13
|
-
export declare function LinkedEntityInline(props: LinkedEntityInlineProps):
|
|
12
|
+
export declare function LinkedEntityInline(props: LinkedEntityInlineProps): JSX.Element;
|
|
14
13
|
export {};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { Element, RenderElementProps } from '../../internal';
|
|
3
2
|
export type LinkedResourceBlockProps = {
|
|
4
3
|
element: Element & {
|
|
@@ -15,4 +14,4 @@ export type LinkedResourceBlockProps = {
|
|
|
15
14
|
attributes: Pick<RenderElementProps, 'attributes'>;
|
|
16
15
|
children: Pick<RenderElementProps, 'children'>;
|
|
17
16
|
};
|
|
18
|
-
export declare function LinkedResourceBlock(props: LinkedResourceBlockProps):
|
|
17
|
+
export declare function LinkedResourceBlock(props: LinkedResourceBlockProps): JSX.Element;
|
|
@@ -9,5 +9,5 @@ interface FetchingWrappedResourceInlineCardProps {
|
|
|
9
9
|
onRemove: (event: React.MouseEvent<Element, MouseEvent>) => void;
|
|
10
10
|
onEntityFetchComplete?: VoidFunction;
|
|
11
11
|
}
|
|
12
|
-
export declare function FetchingWrappedResourceInlineCard(props: FetchingWrappedResourceInlineCardProps):
|
|
12
|
+
export declare function FetchingWrappedResourceInlineCard(props: FetchingWrappedResourceInlineCardProps): JSX.Element;
|
|
13
13
|
export {};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { ResourceLink } from '@contentful/field-editor-reference';
|
|
3
2
|
import { Element, RenderElementProps } from '../../internal';
|
|
4
3
|
export type LinkedResourceInlineProps = {
|
|
@@ -10,4 +9,4 @@ export type LinkedResourceInlineProps = {
|
|
|
10
9
|
attributes: Pick<RenderElementProps, 'attributes'>;
|
|
11
10
|
children: Pick<RenderElementProps, 'children'>;
|
|
12
11
|
};
|
|
13
|
-
export declare function LinkedResourceInline(props: LinkedResourceInlineProps):
|
|
12
|
+
export declare function LinkedResourceInline(props: LinkedResourceInlineProps): JSX.Element;
|