@contentful/field-editor-rich-text 2.0.0-next.13 → 2.0.0-next.14
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/ContentfulEditorProvider.d.ts +6 -5
- package/dist/RichTextEditor.d.ts +1 -1
- package/dist/field-editor-rich-text.cjs.development.js +502 -359
- package/dist/field-editor-rich-text.cjs.development.js.map +1 -1
- package/dist/field-editor-rich-text.cjs.production.min.js +1 -1
- package/dist/field-editor-rich-text.cjs.production.min.js.map +1 -1
- package/dist/field-editor-rich-text.esm.js +505 -362
- package/dist/field-editor-rich-text.esm.js.map +1 -1
- package/dist/helpers/editor.d.ts +16 -17
- package/dist/helpers/extractNodes.d.ts +2 -3
- package/dist/helpers/transformers.d.ts +6 -6
- package/dist/plugins/EmbeddedEntityBlock/ToolbarIcon.d.ts +1 -2
- package/dist/plugins/EmbeddedEntityBlock/Util.d.ts +2 -1
- package/dist/plugins/EmbeddedEntityBlock/index.d.ts +2 -3
- package/dist/plugins/EmbeddedEntityInline/index.d.ts +1 -2
- package/dist/plugins/Hr/index.d.ts +2 -3
- package/dist/plugins/Hyperlink/HyperlinkModal.d.ts +3 -4
- package/dist/plugins/Hyperlink/index.d.ts +1 -2
- package/dist/plugins/Hyperlink/utils.d.ts +2 -2
- package/dist/plugins/List/insertListBreak.d.ts +2 -2
- package/dist/plugins/List/insertListFragment.d.ts +3 -2
- package/dist/plugins/List/transforms/insertListItem.d.ts +2 -2
- package/dist/plugins/List/utils.d.ts +6 -7
- package/dist/plugins/List/withList.d.ts +2 -1
- package/dist/plugins/Marks/Bold.d.ts +7 -5
- package/dist/plugins/Marks/Code.d.ts +7 -5
- package/dist/plugins/Marks/Italic.d.ts +7 -5
- package/dist/plugins/Marks/Underline.d.ts +7 -5
- package/dist/plugins/Marks/components/MarkToolbarButton.d.ts +13 -0
- package/dist/plugins/Marks/helpers.d.ts +4 -0
- package/dist/plugins/Normalizer/types.d.ts +4 -3
- package/dist/plugins/Normalizer/utils.d.ts +2 -2
- package/dist/plugins/Normalizer/withNormalizer.d.ts +2 -2
- package/dist/plugins/Quote/toggleQuote.d.ts +5 -3
- package/dist/plugins/Table/actions/addColumn.d.ts +3 -3
- package/dist/plugins/Table/actions/addRow.d.ts +3 -3
- package/dist/plugins/Table/actions/setHeader.d.ts +2 -2
- package/dist/plugins/Table/addTableTrackingEvents.d.ts +2 -3
- package/dist/plugins/Table/createTablePlugin.d.ts +1 -2
- package/dist/plugins/Table/helpers.d.ts +7 -7
- package/dist/plugins/Tracking/createTrackingPlugin.d.ts +10 -0
- package/dist/plugins/Tracking/index.d.ts +1 -0
- package/dist/plugins/Tracking/utils.d.ts +2 -0
- package/dist/plugins/TrailingParagraph/index.d.ts +2 -1
- package/dist/plugins/Voids/transformVoid.d.ts +2 -2
- package/dist/plugins/index.d.ts +2 -2
- package/dist/plugins/links-tracking.d.ts +1 -2
- package/dist/test-utils/assertOutput.d.ts +2 -2
- package/dist/test-utils/createEditor.d.ts +5 -6
- package/dist/test-utils/mockPlugin.d.ts +1 -1
- package/dist/test-utils/setEmptyDataAttribute.d.ts +2 -2
- package/dist/types.d.ts +6 -2
- package/dist/useOnValueChanged.d.ts +7 -0
- package/package.json +1 -1
- package/dist/TrackingProvider.d.ts +0 -11
package/dist/helpers/editor.d.ts
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { Link } from '@contentful/field-editor-reference/dist/types';
|
|
2
2
|
import { BLOCKS, INLINES } from '@contentful/rich-text-types';
|
|
3
|
-
import { PlateEditor } from '@udecode/plate-core';
|
|
4
3
|
import { Path, Node } from 'slate';
|
|
5
|
-
import { CustomElement } from '../types';
|
|
4
|
+
import { CustomElement, RichTextEditor } from '../types';
|
|
6
5
|
export declare const LINK_TYPES: INLINES[];
|
|
7
|
-
export declare function isBlockSelected(editor:
|
|
6
|
+
export declare function isBlockSelected(editor: RichTextEditor, type: string): boolean;
|
|
8
7
|
export declare function isRootLevel(path: Path): boolean;
|
|
9
8
|
declare type NodeEntry = [CustomElement, Path];
|
|
10
9
|
declare type NodeType = BLOCKS | INLINES;
|
|
11
|
-
export declare function getNodeEntryFromSelection(editor:
|
|
12
|
-
export declare function isNodeTypeSelected(editor:
|
|
13
|
-
export declare function moveToTheNextLine(editor:
|
|
14
|
-
export declare function getElementFromCurrentSelection(editor:
|
|
15
|
-
export declare function isList(editor?:
|
|
10
|
+
export declare function getNodeEntryFromSelection(editor: RichTextEditor, nodeTypeOrTypes: NodeType | NodeType[]): NodeEntry | [];
|
|
11
|
+
export declare function isNodeTypeSelected(editor: RichTextEditor, nodeType: BLOCKS | INLINES): boolean;
|
|
12
|
+
export declare function moveToTheNextLine(editor: RichTextEditor): void;
|
|
13
|
+
export declare function getElementFromCurrentSelection(editor: RichTextEditor): (import("slate").BaseEditor | CustomElement<unknown> | import("../types").CustomText | Path)[];
|
|
14
|
+
export declare function isList(editor?: RichTextEditor): boolean;
|
|
16
15
|
export declare function getTableSize(table: CustomElement): Record<'numRows' | 'numColumns', number> | null;
|
|
17
16
|
interface InsertLinkOptions {
|
|
18
17
|
text: string;
|
|
@@ -22,21 +21,21 @@ interface InsertLinkOptions {
|
|
|
22
21
|
path?: Path;
|
|
23
22
|
}
|
|
24
23
|
export declare function insertLink(editor: any, options: InsertLinkOptions): void;
|
|
25
|
-
export declare function isLinkActive(editor?:
|
|
24
|
+
export declare function isLinkActive(editor?: RichTextEditor): boolean;
|
|
26
25
|
export declare function unwrapLink(editor: any): void;
|
|
27
26
|
export declare function wrapLink(editor: any, { text, url, target, type, path }: InsertLinkOptions): void;
|
|
28
|
-
export declare function getAncestorPathFromSelection(editor:
|
|
29
|
-
export declare function shouldUnwrapBlockquote(editor:
|
|
30
|
-
export declare function unwrapFromRoot(editor:
|
|
31
|
-
export declare const isAtEndOfTextSelection: (editor:
|
|
32
|
-
export declare function currentSelectionStartsTableCell(editor:
|
|
27
|
+
export declare function getAncestorPathFromSelection(editor: RichTextEditor): Path | undefined;
|
|
28
|
+
export declare function shouldUnwrapBlockquote(editor: RichTextEditor, type: BLOCKS): boolean;
|
|
29
|
+
export declare function unwrapFromRoot(editor: RichTextEditor): void;
|
|
30
|
+
export declare const isAtEndOfTextSelection: (editor: RichTextEditor) => boolean;
|
|
31
|
+
export declare function currentSelectionStartsTableCell(editor: RichTextEditor): boolean;
|
|
33
32
|
/**
|
|
34
33
|
* This traversal strategy is unfortunately necessary because Slate doesn't
|
|
35
34
|
* expose something like Node.next(editor).
|
|
36
35
|
*/
|
|
37
|
-
export declare function getNextNode(editor:
|
|
38
|
-
export declare function currentSelectionPrecedesTableCell(editor:
|
|
36
|
+
export declare function getNextNode(editor: RichTextEditor): CustomElement | null;
|
|
37
|
+
export declare function currentSelectionPrecedesTableCell(editor: RichTextEditor): boolean;
|
|
39
38
|
export declare const INLINE_TYPES: string[];
|
|
40
39
|
export declare const isInlineOrText: (node: Node) => boolean;
|
|
41
|
-
export declare const focus: (editor:
|
|
40
|
+
export declare const focus: (editor: RichTextEditor) => void;
|
|
42
41
|
export {};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { PlateEditor } from '@udecode/plate-core';
|
|
2
1
|
import { Path } from 'slate';
|
|
3
|
-
import { CustomElement } from '../types';
|
|
2
|
+
import { CustomElement, RichTextEditor } from '../types';
|
|
4
3
|
/**
|
|
5
4
|
* It filters out all paragraphs and headings from a path and convert them into paragraphs.
|
|
6
5
|
*/
|
|
7
|
-
export declare function extractParagraphs(editor:
|
|
6
|
+
export declare function extractParagraphs(editor: RichTextEditor, path: Path): CustomElement[];
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BLOCKS, INLINES } from '@contentful/rich-text-types';
|
|
2
|
-
import { PlateEditor } from '@udecode/plate-core';
|
|
3
2
|
import { NodeEntry } from 'slate';
|
|
4
|
-
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
8
|
-
export declare const
|
|
3
|
+
import { RichTextEditor } from '../types';
|
|
4
|
+
export declare const transformRemove: (editor: RichTextEditor, [, path]: NodeEntry<import("slate").Node>) => void;
|
|
5
|
+
export declare const transformParagraphs: (editor: RichTextEditor, entry: NodeEntry<import("slate").Node>) => void;
|
|
6
|
+
export declare const transformUnwrap: (editor: RichTextEditor, [, path]: NodeEntry<import("slate").Node>) => void;
|
|
7
|
+
export declare const transformWrapIn: (type: BLOCKS | INLINES) => (editor: RichTextEditor, [, path]: NodeEntry<import("slate").Node>) => void;
|
|
8
|
+
export declare const transformLift: (editor: RichTextEditor, [, path]: NodeEntry<import("slate").Node>) => void;
|
|
@@ -4,9 +4,8 @@ export declare const styles: {
|
|
|
4
4
|
interface EmbeddedEntityBlockToolbarIconProps {
|
|
5
5
|
isButton?: boolean;
|
|
6
6
|
isDisabled: boolean;
|
|
7
|
-
logAction?: () => void;
|
|
8
7
|
nodeType: string;
|
|
9
8
|
onClose: () => void;
|
|
10
9
|
}
|
|
11
|
-
export declare function EmbeddedEntityBlockToolbarIcon({ isButton, isDisabled,
|
|
10
|
+
export declare function EmbeddedEntityBlockToolbarIcon({ isButton, isDisabled, nodeType, onClose, }: EmbeddedEntityBlockToolbarIconProps): JSX.Element;
|
|
12
11
|
export {};
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
import { TrackingPluginActions } from '../../plugins/Tracking';
|
|
2
|
+
export declare function selectEntityAndInsert(nodeType: any, sdk: any, editor: any, logAction: TrackingPluginActions['onToolbarAction'] | TrackingPluginActions['onShortcutAction']): Promise<void>;
|
|
2
3
|
export declare function insertBlock(editor: any, nodeType: any, entity: any): void;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { FieldExtensionSDK } from '@contentful/app-sdk';
|
|
2
|
-
import { TrackingProvider } from 'TrackingProvider';
|
|
3
2
|
import { RichTextPlugin } from '../../types';
|
|
4
3
|
export { EmbeddedEntityBlockToolbarIcon as ToolbarIcon } from './ToolbarIcon';
|
|
5
|
-
export declare const createEmbeddedEntryBlockPlugin: (sdk: FieldExtensionSDK
|
|
6
|
-
export declare const createEmbeddedAssetBlockPlugin: (sdk: FieldExtensionSDK
|
|
4
|
+
export declare const createEmbeddedEntryBlockPlugin: (sdk: FieldExtensionSDK) => RichTextPlugin;
|
|
5
|
+
export declare const createEmbeddedAssetBlockPlugin: (sdk: FieldExtensionSDK) => RichTextPlugin;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { FieldExtensionSDK } from '@contentful/app-sdk';
|
|
2
|
-
import { TrackingProvider } from 'TrackingProvider';
|
|
3
2
|
import { RichTextPlugin } from '../../types';
|
|
4
3
|
interface ToolbarEmbeddedEntityInlineButtonProps {
|
|
5
4
|
onClose: () => void;
|
|
@@ -7,5 +6,5 @@ interface ToolbarEmbeddedEntityInlineButtonProps {
|
|
|
7
6
|
isButton?: boolean;
|
|
8
7
|
}
|
|
9
8
|
export declare function ToolbarEmbeddedEntityInlineButton(props: ToolbarEmbeddedEntityInlineButtonProps): JSX.Element;
|
|
10
|
-
export declare function createEmbeddedEntityInlinePlugin(sdk: FieldExtensionSDK
|
|
9
|
+
export declare function createEmbeddedEntityInlinePlugin(sdk: FieldExtensionSDK): RichTextPlugin;
|
|
11
10
|
export {};
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { PlateEditor } from '@udecode/plate-core';
|
|
3
2
|
import * as Slate from 'slate-react';
|
|
4
|
-
import { RichTextPlugin } from '../../types';
|
|
3
|
+
import { RichTextEditor, RichTextPlugin } from '../../types';
|
|
5
4
|
interface ToolbarHrButtonProps {
|
|
6
5
|
isDisabled?: boolean;
|
|
7
6
|
}
|
|
8
|
-
export declare function withHrEvents(editor:
|
|
7
|
+
export declare function withHrEvents(editor: RichTextEditor): (event: React.KeyboardEvent) => void;
|
|
9
8
|
export declare function ToolbarHrButton(props: ToolbarHrButtonProps): JSX.Element | null;
|
|
10
9
|
export declare function Hr(props: Slate.RenderLeafProps): JSX.Element;
|
|
11
10
|
export declare const createHrPlugin: () => RichTextPlugin;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Link } from '@contentful/field-editor-reference/dist/types';
|
|
2
2
|
import { FieldExtensionSDK } from '@contentful/field-editor-shared';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { ReactEditor } from 'slate-react';
|
|
3
|
+
import { TrackingPluginActions } from '../../plugins/Tracking';
|
|
4
|
+
import { RichTextEditor } from '../../types';
|
|
6
5
|
interface HyperlinkModalProps {
|
|
7
6
|
linkText?: string;
|
|
8
7
|
linkType?: string;
|
|
@@ -12,5 +11,5 @@ interface HyperlinkModalProps {
|
|
|
12
11
|
sdk: FieldExtensionSDK;
|
|
13
12
|
}
|
|
14
13
|
export declare function HyperlinkModal(props: HyperlinkModalProps): JSX.Element;
|
|
15
|
-
export declare function addOrEditLink(editor:
|
|
14
|
+
export declare function addOrEditLink(editor: RichTextEditor, sdk: FieldExtensionSDK, logAction: TrackingPluginActions['onToolbarAction'] | TrackingPluginActions['onShortcutAction'] | TrackingPluginActions['onViewportAction']): Promise<void>;
|
|
16
15
|
export {};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { FieldExtensionSDK } from '@contentful/app-sdk';
|
|
2
|
-
import { TrackingProvider } from 'TrackingProvider';
|
|
3
2
|
import { RichTextPlugin } from '../../types';
|
|
4
3
|
interface ToolbarHyperlinkButtonProps {
|
|
5
4
|
isDisabled: boolean | undefined;
|
|
6
5
|
}
|
|
7
6
|
export declare function ToolbarHyperlinkButton(props: ToolbarHyperlinkButtonProps): JSX.Element | null;
|
|
8
|
-
export declare const createHyperlinkPlugin: (sdk: FieldExtensionSDK
|
|
7
|
+
export declare const createHyperlinkPlugin: (sdk: FieldExtensionSDK) => RichTextPlugin;
|
|
9
8
|
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { PlateEditor } from '@udecode/plate-core';
|
|
2
1
|
import { NodeEntry, Node } from 'slate';
|
|
3
|
-
|
|
2
|
+
import { RichTextEditor } from '../../types';
|
|
3
|
+
export declare const hasText: (editor: RichTextEditor, entry: NodeEntry<Node>) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const insertListBreak: (editor:
|
|
1
|
+
import { RichTextEditor } from '../../types';
|
|
2
|
+
export declare const insertListBreak: (editor: RichTextEditor) => () => void;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { TDescendant } from '@udecode/plate-core';
|
|
2
|
+
import { RichTextEditor } from '../../types';
|
|
3
|
+
export declare const insertListFragment: (editor: RichTextEditor) => (fragment: TDescendant[]) => void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RichTextEditor } from '../../../types';
|
|
2
2
|
/**
|
|
3
3
|
* Insert list item if selection is in li>p.
|
|
4
4
|
*/
|
|
5
|
-
export declare const insertListItem: (editor:
|
|
5
|
+
export declare const insertListItem: (editor: RichTextEditor) => boolean;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { PlateEditor } from '@udecode/plate-core';
|
|
2
1
|
import { NodeEntry, Node } from 'slate';
|
|
3
|
-
import { CustomElement } from '../../types';
|
|
4
|
-
export declare const hasListAsDirectParent: (editor:
|
|
2
|
+
import { CustomElement, RichTextEditor } from '../../types';
|
|
3
|
+
export declare const hasListAsDirectParent: (editor: RichTextEditor, [, path]: NodeEntry<Node>) => boolean;
|
|
5
4
|
/**
|
|
6
5
|
* Places orphaned list items in a list. If there's a list somewhere
|
|
7
6
|
* in the node's ancestors, defaults to that list type, else places
|
|
8
7
|
* the list item in an unordered list.
|
|
9
8
|
*/
|
|
10
|
-
export declare const normalizeOrphanedListItem: (editor:
|
|
11
|
-
export declare const isNonEmptyListItem: (editor:
|
|
12
|
-
export declare const firstNodeIsNotList: (_editor:
|
|
13
|
-
export declare const insertParagraphAsChild: (editor:
|
|
9
|
+
export declare const normalizeOrphanedListItem: (editor: RichTextEditor, [, path]: NodeEntry<Node>) => void;
|
|
10
|
+
export declare const isNonEmptyListItem: (editor: RichTextEditor, [, path]: NodeEntry<Node>) => boolean;
|
|
11
|
+
export declare const firstNodeIsNotList: (_editor: RichTextEditor, [node]: NodeEntry<CustomElement<unknown>>) => boolean;
|
|
12
|
+
export declare const insertParagraphAsChild: (editor: RichTextEditor, [, path]: NodeEntry<Node>) => void;
|
|
14
13
|
export declare const replaceNodeWithListItems: (editor: any, entry: any) => void;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { WithOverride } from '@udecode/plate-core';
|
|
2
2
|
import { ListPlugin } from '@udecode/plate-list';
|
|
3
|
-
|
|
3
|
+
import { RichTextEditor } from '../../types';
|
|
4
|
+
export declare const withList: WithOverride<RichTextEditor, ListPlugin>;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { MARKS } from '@contentful/rich-text-types';
|
|
1
2
|
import * as Slate from 'slate-react';
|
|
2
3
|
import { RichTextPlugin } from '../../types';
|
|
3
|
-
|
|
4
|
-
isDisabled
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
export declare const ToolbarBoldButton: {
|
|
5
|
+
({ isDisabled }: {
|
|
6
|
+
isDisabled?: boolean | undefined;
|
|
7
|
+
}): JSX.Element | null;
|
|
8
|
+
displayName: MARKS;
|
|
9
|
+
};
|
|
7
10
|
export declare function Bold(props: Slate.RenderLeafProps): JSX.Element;
|
|
8
11
|
export declare const createBoldPlugin: () => RichTextPlugin;
|
|
9
|
-
export {};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { MARKS } from '@contentful/rich-text-types';
|
|
1
2
|
import * as Slate from 'slate-react';
|
|
2
3
|
import { RichTextPlugin } from '../../types';
|
|
3
|
-
|
|
4
|
-
isDisabled
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
export declare const ToolbarCodeButton: {
|
|
5
|
+
({ isDisabled }: {
|
|
6
|
+
isDisabled?: boolean | undefined;
|
|
7
|
+
}): JSX.Element | null;
|
|
8
|
+
displayName: MARKS;
|
|
9
|
+
};
|
|
7
10
|
export declare function Code(props: Slate.RenderLeafProps): JSX.Element;
|
|
8
11
|
export declare const createCodePlugin: () => RichTextPlugin;
|
|
9
|
-
export {};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { MARKS } from '@contentful/rich-text-types';
|
|
1
2
|
import * as Slate from 'slate-react';
|
|
2
3
|
import { RichTextPlugin } from '../../types';
|
|
3
|
-
|
|
4
|
-
isDisabled
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
export declare const ToolbarItalicButton: {
|
|
5
|
+
({ isDisabled }: {
|
|
6
|
+
isDisabled?: boolean | undefined;
|
|
7
|
+
}): JSX.Element | null;
|
|
8
|
+
displayName: MARKS;
|
|
9
|
+
};
|
|
7
10
|
export declare function Italic(props: Slate.RenderLeafProps): JSX.Element;
|
|
8
11
|
export declare const createItalicPlugin: () => RichTextPlugin;
|
|
9
|
-
export {};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { MARKS } from '@contentful/rich-text-types';
|
|
1
2
|
import * as Slate from 'slate-react';
|
|
2
3
|
import { RichTextPlugin } from '../../types';
|
|
3
|
-
|
|
4
|
-
isDisabled
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
export declare const ToolbarUnderlineButton: {
|
|
5
|
+
({ isDisabled }: {
|
|
6
|
+
isDisabled?: boolean | undefined;
|
|
7
|
+
}): JSX.Element | null;
|
|
8
|
+
displayName: MARKS;
|
|
9
|
+
};
|
|
7
10
|
export declare function Underline(props: Slate.RenderLeafProps): JSX.Element;
|
|
8
11
|
export declare const createUnderlinePlugin: () => RichTextPlugin;
|
|
9
|
-
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { MARKS } from '@contentful/rich-text-types';
|
|
3
|
+
export interface MarkOptions {
|
|
4
|
+
mark: MARKS;
|
|
5
|
+
title: string;
|
|
6
|
+
icon: React.ReactElement;
|
|
7
|
+
}
|
|
8
|
+
export declare const createMarkToolbarButton: ({ mark, title, icon }: MarkOptions) => {
|
|
9
|
+
({ isDisabled }: {
|
|
10
|
+
isDisabled?: boolean | undefined;
|
|
11
|
+
}): JSX.Element | null;
|
|
12
|
+
displayName: MARKS;
|
|
13
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { MARKS } from '@contentful/rich-text-types';
|
|
2
|
+
import { HotkeyPlugin, KeyboardHandler } from '@udecode/plate-core';
|
|
3
|
+
import { RichTextEditor } from '../../types';
|
|
4
|
+
export declare const buildMarkEventHandler: (type: MARKS) => KeyboardHandler<RichTextEditor, HotkeyPlugin>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NodeMatch } from '@udecode/plate-core';
|
|
2
2
|
import { NodeEntry } from 'slate';
|
|
3
|
-
|
|
4
|
-
export declare type
|
|
3
|
+
import { RichTextEditor } from '../../types';
|
|
4
|
+
export declare type NodeTransformer = (editor: RichTextEditor, entry: NodeEntry) => void;
|
|
5
|
+
export declare type NodeValidator = (editor: RichTextEditor, entry: NodeEntry) => boolean;
|
|
5
6
|
declare type BaseRule = {
|
|
6
7
|
/**
|
|
7
8
|
* A helper to return a Node to which valid* rules are applied
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { PlateEditor } from '@udecode/plate-core';
|
|
2
1
|
import { NodeEntry, Node } from 'slate';
|
|
2
|
+
import { RichTextEditor } from 'types';
|
|
3
3
|
import { NodeValidator, NodeTransformer } from './types';
|
|
4
4
|
export declare class NormalizerError extends Error {
|
|
5
5
|
}
|
|
6
6
|
export declare const createValidatorFromTypes: (types: string[]) => NodeValidator;
|
|
7
|
-
export declare const getChildren: (editor:
|
|
7
|
+
export declare const getChildren: (editor: RichTextEditor, [node, path]: NodeEntry<Node>) => NodeEntry[];
|
|
8
8
|
export declare const createTransformerFromObject: (transforms: Record<string, NodeTransformer>) => NodeTransformer;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const withNormalizer: (editor:
|
|
1
|
+
import { RichTextEditor } from '../../types';
|
|
2
|
+
export declare const withNormalizer: (editor: RichTextEditor) => RichTextEditor;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import { HotkeyPlugin, KeyboardHandler
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { HotkeyPlugin, KeyboardHandler } from '@udecode/plate-core';
|
|
2
|
+
import { TrackingPluginActions } from '../../plugins/Tracking';
|
|
3
|
+
import { RichTextEditor } from '../../types';
|
|
4
|
+
export declare function toggleQuote(editor: RichTextEditor, logAction: TrackingPluginActions['onShortcutAction'] | TrackingPluginActions['onToolbarAction']): void;
|
|
5
|
+
export declare const onKeyDownToggleQuote: KeyboardHandler<RichTextEditor, HotkeyPlugin>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PlateEditor } from '@udecode/plate-core';
|
|
2
1
|
import { TablePluginOptions } from '@udecode/plate-table';
|
|
3
|
-
|
|
4
|
-
export declare const
|
|
2
|
+
import { RichTextEditor } from '../../../types';
|
|
3
|
+
export declare const addColumnRight: (editor: RichTextEditor, options: TablePluginOptions) => void;
|
|
4
|
+
export declare const addColumnLeft: (editor: RichTextEditor, options: TablePluginOptions) => void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const addRowBelow: (editor:
|
|
3
|
-
export declare const addRowAbove: (editor:
|
|
1
|
+
import { RichTextEditor } from '../../../types';
|
|
2
|
+
export declare const addRowBelow: (editor: RichTextEditor) => void;
|
|
3
|
+
export declare const addRowAbove: (editor: RichTextEditor) => void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const setHeader: (editor:
|
|
1
|
+
import { RichTextEditor } from '../../../types';
|
|
2
|
+
export declare const setHeader: (editor: RichTextEditor, enable?: boolean | undefined) => void;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare function addTableTrackingEvents(editor: PlateEditor, { onViewportAction }: TrackingProvider): void;
|
|
1
|
+
import { RichTextEditor } from '../../types';
|
|
2
|
+
export declare function addTableTrackingEvents(editor: RichTextEditor): void;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { PlateEditor } from '@udecode/plate-core';
|
|
2
1
|
import { Node, NodeEntry } from 'slate';
|
|
3
|
-
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
2
|
+
import { RichTextEditor } from '../../types';
|
|
3
|
+
export declare function insertTableAndFocusFirstCell(editor: RichTextEditor): void;
|
|
4
|
+
export declare function isTableActive(editor: RichTextEditor): boolean;
|
|
5
|
+
export declare function isTableHeaderEnabled(editor: RichTextEditor): boolean;
|
|
6
|
+
export declare function replaceEmptyParagraphWithTable(editor: RichTextEditor): void;
|
|
7
7
|
/**
|
|
8
8
|
* Returns the number of cells in a given row vs the table width
|
|
9
9
|
*
|
|
10
10
|
* Note: We should only get different table rows cell counts in between
|
|
11
11
|
* normalization cycles.
|
|
12
12
|
*/
|
|
13
|
-
export declare const getNoOfMissingTableCellsInRow: (editor:
|
|
13
|
+
export declare const getNoOfMissingTableCellsInRow: (editor: RichTextEditor, [, rowPath]: NodeEntry<Node>) => number;
|
|
14
14
|
export declare const createEmptyTableCells: (count: number) => Node[];
|
|
15
|
-
export declare const isNotEmpty: (editor:
|
|
15
|
+
export declare const isNotEmpty: (editor: RichTextEditor, [, path]: NodeEntry<Node>) => boolean;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RichTextPlugin } from '../../types';
|
|
2
|
+
export declare type RichTextTrackingActionName = 'edit' | 'insert' | 'remove' | 'mark' | 'unmark' | 'insertTable' | 'insertTableRow' | 'insertTableColumn' | 'removeTable' | 'removeTableRow' | 'removeTableColumn' | 'paste' | 'cancelCreateHyperlinkDialog' | 'cancelEditHyperlinkDialog' | 'linkRendered' | 'openCreateHyperlinkDialog' | 'openEditHyperlinkDialog' | 'unlinkHyperlinks' | 'openCreateEmbedDialog' | 'cancelCreateEmbedDialog';
|
|
3
|
+
export declare type RichTextTrackingActionHandler = (name: RichTextTrackingActionName, data: Record<string, unknown>) => unknown;
|
|
4
|
+
export interface TrackingPluginActions {
|
|
5
|
+
onViewportAction: (actionName: RichTextTrackingActionName, data?: Record<string, unknown>) => ReturnType<RichTextTrackingActionHandler>;
|
|
6
|
+
onShortcutAction: (actionName: RichTextTrackingActionName, data?: Record<string, unknown>) => ReturnType<RichTextTrackingActionHandler>;
|
|
7
|
+
onToolbarAction: (actionName: RichTextTrackingActionName, data?: Record<string, unknown>) => ReturnType<RichTextTrackingActionHandler>;
|
|
8
|
+
onCommandPaletteAction: (actionName: RichTextTrackingActionName, data?: Record<string, unknown>) => ReturnType<RichTextTrackingActionHandler>;
|
|
9
|
+
}
|
|
10
|
+
export declare const createTrackingPlugin: (onAction: RichTextTrackingActionHandler) => RichTextPlugin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './createTrackingPlugin';
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { RichTextPlugin } from '../../types';
|
|
2
|
+
export declare const createTrailingParagraphPlugin: () => RichTextPlugin;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { PlateEditor } from '@udecode/plate-core';
|
|
2
1
|
import { NodeEntry } from 'slate';
|
|
2
|
+
import { RichTextEditor } from '../../types';
|
|
3
3
|
/**
|
|
4
4
|
* Re-creates a void node with valid children.
|
|
5
5
|
*/
|
|
6
|
-
export declare const transformVoid: (editor:
|
|
6
|
+
export declare const transformVoid: (editor: RichTextEditor, [node, path]: NodeEntry<import("slate").Node>) => void;
|
package/dist/plugins/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FieldExtensionSDK } from '@contentful/app-sdk';
|
|
2
2
|
import { PlateProps } from '@udecode/plate-core';
|
|
3
|
-
import { TrackingProvider } from '../TrackingProvider';
|
|
4
3
|
import { RichTextPlugin } from '../types';
|
|
5
|
-
|
|
4
|
+
import { RichTextTrackingActionHandler } from './Tracking';
|
|
5
|
+
export declare const getPlugins: (sdk: FieldExtensionSDK, onAction: RichTextTrackingActionHandler) => RichTextPlugin[];
|
|
6
6
|
export declare const disableCorePlugins: PlateProps['disableCorePlugins'];
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React, { ComponentProps } from 'react';
|
|
2
|
-
import { TrackingProvider } from '../TrackingProvider';
|
|
3
2
|
declare type WithEntityFetchProps = {
|
|
4
3
|
onEntityFetchComplete: VoidFunction;
|
|
5
4
|
} & JSX.IntrinsicAttributes;
|
|
6
|
-
export declare function withLinkTracking(
|
|
5
|
+
export declare function withLinkTracking(Component: React.ComponentType<WithEntityFetchProps>): (props: ComponentProps<typeof Component>) => JSX.Element;
|
|
7
6
|
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RichTextEditor } from '../types';
|
|
2
2
|
export declare const assertOutput: (options: {
|
|
3
3
|
input?: any;
|
|
4
4
|
expected: any;
|
|
5
|
-
editor?:
|
|
5
|
+
editor?: RichTextEditor;
|
|
6
6
|
log?: boolean;
|
|
7
7
|
skipCursor?: boolean;
|
|
8
8
|
}) => void;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { FieldExtensionSDK } from '@contentful/app-sdk';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export declare const normalize: (editor: PlateEditor) => void;
|
|
2
|
+
import { RichTextTrackingActionHandler } from '../plugins/Tracking';
|
|
3
|
+
import { RichTextEditor, RichTextPlugin } from '../types';
|
|
4
|
+
export declare const normalize: (editor: RichTextEditor) => void;
|
|
6
5
|
export declare const createTestEditor: (options: {
|
|
7
6
|
input?: any;
|
|
8
7
|
sdk?: FieldExtensionSDK;
|
|
9
|
-
|
|
8
|
+
trackingHandler?: RichTextTrackingActionHandler;
|
|
10
9
|
plugins?: RichTextPlugin[];
|
|
11
10
|
}) => {
|
|
12
|
-
editor: PlateEditor<
|
|
11
|
+
editor: import("@udecode/plate-core").PlateEditor<RichTextEditor>;
|
|
13
12
|
normalize: () => void;
|
|
14
13
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { RichTextPlugin } from '../types';
|
|
2
|
-
export declare const mockPlugin: (p: Partial<RichTextPlugin>) =>
|
|
2
|
+
export declare const mockPlugin: (p: Partial<RichTextPlugin>) => any;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RichTextEditor } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* Sets empty node.data attributes. Helpful when testing against
|
|
4
4
|
* output generated by a 3rd-party library e.g. Plate.
|
|
5
5
|
*/
|
|
6
|
-
export declare const setEmptyDataAttribute: (root:
|
|
6
|
+
export declare const setEmptyDataAttribute: (root: RichTextEditor) => void;
|
package/dist/types.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { MARKS } from '@contentful/rich-text-types';
|
|
2
|
-
import { PlatePlugin } from '@udecode/plate-core';
|
|
2
|
+
import { PlateEditor, PlatePlugin } from '@udecode/plate-core';
|
|
3
3
|
import { RenderElementProps } from 'slate-react';
|
|
4
4
|
import type { SoftBreakRule, ExitBreakRule } from './plugins/Break';
|
|
5
5
|
import type { NormalizerRule } from './plugins/Normalizer';
|
|
6
|
+
import { TrackingPluginActions } from './plugins/Tracking';
|
|
6
7
|
export declare type CustomText = {
|
|
7
8
|
text: string;
|
|
8
9
|
[MARKS.BOLD]?: boolean;
|
|
@@ -26,7 +27,7 @@ declare module 'slate' {
|
|
|
26
27
|
Text: CustomText;
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
|
-
export interface RichTextPlugin extends PlatePlugin {
|
|
30
|
+
export interface RichTextPlugin extends PlatePlugin<RichTextEditor> {
|
|
30
31
|
/**
|
|
31
32
|
* @see createSoftBreakPlugin
|
|
32
33
|
*/
|
|
@@ -40,3 +41,6 @@ export interface RichTextPlugin extends PlatePlugin {
|
|
|
40
41
|
*/
|
|
41
42
|
normalizer?: NormalizerRule[];
|
|
42
43
|
}
|
|
44
|
+
export interface RichTextEditor extends PlateEditor {
|
|
45
|
+
tracking: TrackingPluginActions;
|
|
46
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Document } from '@contentful/rich-text-types';
|
|
2
|
+
import { PlateEditor } from '@udecode/plate-core';
|
|
3
|
+
export declare type OnValueChangedProps = {
|
|
4
|
+
editor: PlateEditor;
|
|
5
|
+
handler?: (value: Document) => unknown;
|
|
6
|
+
};
|
|
7
|
+
export declare const useOnValueChanged: ({ editor, handler }: OnValueChangedProps) => (value: unknown) => void;
|
package/package.json
CHANGED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
export declare type RichTextTrackingActionName = 'insertTable' | 'insertTableRow' | 'insertTableColumn' | 'removeTable' | 'removeTableRow' | 'removeTableColumn' | 'paste' | 'linkRendered';
|
|
3
|
-
export declare type RichTextTrackingActionHandler = (name: RichTextTrackingActionName, data: Record<string, unknown>) => unknown;
|
|
4
|
-
interface TrackingProviderProps {
|
|
5
|
-
onAction: RichTextTrackingActionHandler;
|
|
6
|
-
}
|
|
7
|
-
export interface TrackingProvider {
|
|
8
|
-
onViewportAction: (actionName: RichTextTrackingActionName, data?: Record<string, unknown>) => ReturnType<TrackingProviderProps['onAction']>;
|
|
9
|
-
}
|
|
10
|
-
export declare const TrackingProvider: React.FC<TrackingProviderProps>, useTrackingContext: any;
|
|
11
|
-
export {};
|