@tiptap/core 2.0.0-beta.14 → 2.0.0-beta.140
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/README.md +2 -2
- package/dist/packages/core/src/CommandManager.d.ts +12 -5
- package/dist/packages/core/src/Editor.d.ts +19 -20
- package/dist/packages/core/src/EventEmitter.d.ts +8 -4
- package/dist/packages/core/src/Extension.d.ts +102 -26
- package/dist/packages/core/src/ExtensionManager.d.ts +6 -11
- package/dist/packages/core/src/InputRule.d.ts +42 -0
- package/dist/packages/core/src/Mark.d.ts +134 -30
- package/dist/packages/core/src/Node.d.ts +151 -32
- package/dist/packages/core/src/NodeView.d.ts +5 -9
- package/dist/packages/core/src/PasteRule.d.ts +42 -0
- package/dist/packages/core/src/Tracker.d.ts +11 -0
- package/dist/packages/core/src/commands/blur.d.ts +3 -3
- package/dist/packages/core/src/commands/clearContent.d.ts +3 -3
- package/dist/packages/core/src/commands/clearNodes.d.ts +3 -3
- package/dist/packages/core/src/commands/command.d.ts +2 -2
- package/dist/packages/core/src/commands/createParagraphNear.d.ts +3 -3
- package/dist/packages/core/src/commands/deleteNode.d.ts +13 -0
- package/dist/packages/core/src/commands/deleteRange.d.ts +3 -3
- package/dist/packages/core/src/commands/deleteSelection.d.ts +3 -3
- package/dist/packages/core/src/commands/enter.d.ts +3 -3
- package/dist/packages/core/src/commands/exitCode.d.ts +3 -3
- package/dist/packages/core/src/commands/extendMarkRange.d.ts +3 -3
- package/dist/packages/core/src/commands/first.d.ts +3 -3
- package/dist/packages/core/src/commands/focus.d.ts +3 -3
- package/dist/packages/core/src/commands/forEach.d.ts +14 -0
- package/dist/packages/core/src/commands/insertContent.d.ts +16 -0
- package/dist/packages/core/src/commands/insertContentAt.d.ts +16 -0
- package/dist/packages/core/src/commands/joinBackward.d.ts +3 -3
- package/dist/packages/core/src/commands/joinForward.d.ts +3 -3
- package/dist/packages/core/src/commands/keyboardShortcut.d.ts +3 -3
- package/dist/packages/core/src/commands/lift.d.ts +3 -3
- package/dist/packages/core/src/commands/liftEmptyBlock.d.ts +3 -3
- package/dist/packages/core/src/commands/liftListItem.d.ts +3 -3
- package/dist/packages/core/src/commands/newlineInCode.d.ts +3 -3
- package/dist/packages/core/src/commands/resetAttributes.d.ts +13 -0
- package/dist/packages/core/src/commands/scrollIntoView.d.ts +3 -3
- package/dist/packages/core/src/commands/selectAll.d.ts +3 -3
- package/dist/packages/core/src/commands/selectNodeBackward.d.ts +3 -3
- package/dist/packages/core/src/commands/selectNodeForward.d.ts +3 -3
- package/dist/packages/core/src/commands/selectParentNode.d.ts +3 -3
- package/dist/packages/core/src/commands/setContent.d.ts +4 -3
- package/dist/packages/core/src/commands/setMark.d.ts +3 -3
- package/dist/packages/core/src/commands/setMeta.d.ts +12 -0
- package/dist/packages/core/src/commands/setNode.d.ts +3 -3
- package/dist/packages/core/src/commands/setNodeSelection.d.ts +12 -0
- package/dist/packages/core/src/commands/setTextSelection.d.ts +12 -0
- package/dist/packages/core/src/commands/sinkListItem.d.ts +3 -3
- package/dist/packages/core/src/commands/splitBlock.d.ts +3 -3
- package/dist/packages/core/src/commands/splitListItem.d.ts +3 -3
- package/dist/packages/core/src/commands/toggleList.d.ts +3 -3
- package/dist/packages/core/src/commands/toggleMark.d.ts +8 -3
- package/dist/packages/core/src/commands/toggleNode.d.ts +3 -3
- package/dist/packages/core/src/commands/toggleWrap.d.ts +3 -3
- package/dist/packages/core/src/commands/undoInputRule.d.ts +3 -3
- package/dist/packages/core/src/commands/unsetAllMarks.d.ts +3 -3
- package/dist/packages/core/src/commands/unsetMark.d.ts +8 -3
- package/dist/packages/core/src/commands/updateAttributes.d.ts +13 -0
- package/dist/packages/core/src/commands/wrapIn.d.ts +3 -3
- package/dist/packages/core/src/commands/wrapInList.d.ts +3 -3
- package/dist/packages/core/src/extensions/clipboardTextSerializer.d.ts +1 -1
- package/dist/packages/core/src/extensions/commands.d.ts +19 -15
- package/dist/packages/core/src/extensions/editable.d.ts +1 -1
- package/dist/packages/core/src/extensions/focusEvents.d.ts +1 -1
- package/dist/packages/core/src/extensions/index.d.ts +1 -0
- package/dist/packages/core/src/extensions/keymap.d.ts +1 -1
- package/dist/packages/core/src/extensions/tabindex.d.ts +2 -0
- package/dist/packages/core/src/helpers/createChainableState.d.ts +5 -0
- package/dist/packages/core/src/helpers/createDocument.d.ts +3 -0
- package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +7 -0
- package/dist/packages/core/src/helpers/findChildren.d.ts +3 -0
- package/dist/packages/core/src/helpers/findChildrenInRange.d.ts +6 -0
- package/dist/packages/core/src/helpers/generateHTML.d.ts +2 -2
- package/dist/packages/core/src/helpers/generateJSON.d.ts +2 -0
- package/dist/packages/core/src/helpers/generateText.d.ts +5 -0
- package/dist/packages/core/src/helpers/getAttributes.d.ts +3 -0
- package/dist/packages/core/src/helpers/getDebugJSON.d.ts +8 -0
- package/dist/packages/core/src/helpers/getExtensionField.d.ts +2 -0
- package/dist/packages/core/src/helpers/getHTMLFromFragment.d.ts +2 -2
- package/dist/packages/core/src/helpers/getMarkAttributes.d.ts +1 -2
- package/dist/packages/core/src/helpers/getMarkRange.d.ts +1 -1
- package/dist/packages/core/src/helpers/getNodeAttributes.d.ts +1 -2
- package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +2 -2
- package/dist/packages/core/src/helpers/getSchemaByResolvedExtensions.d.ts +3 -0
- package/dist/packages/core/src/helpers/getSplittedAttributes.d.ts +2 -2
- package/dist/packages/core/src/helpers/getText.d.ts +6 -0
- package/dist/packages/core/src/helpers/getTextBetween.d.ts +6 -0
- package/dist/packages/core/src/helpers/getTextSeralizersFromSchema.d.ts +3 -0
- package/dist/packages/core/src/helpers/isActive.d.ts +1 -2
- package/dist/packages/core/src/helpers/isExtensionRulesEnabled.d.ts +2 -0
- package/dist/packages/core/src/helpers/isMarkActive.d.ts +1 -2
- package/dist/packages/core/src/helpers/isNodeActive.d.ts +1 -2
- package/dist/packages/core/src/helpers/posToDOMRect.d.ts +2 -0
- package/dist/packages/core/src/helpers/splitExtensions.d.ts +3 -3
- package/dist/packages/core/src/index.d.ts +32 -5
- package/dist/packages/core/src/inputRules/markInputRule.d.ts +11 -2
- package/dist/packages/core/src/inputRules/nodeInputRule.d.ts +11 -2
- package/dist/packages/core/src/inputRules/textInputRule.d.ts +9 -0
- package/dist/packages/core/src/inputRules/textblockTypeInputRule.d.ts +14 -0
- package/dist/packages/core/src/inputRules/wrappingInputRule.d.ts +23 -0
- package/dist/packages/core/src/pasteRules/markPasteRule.d.ts +11 -2
- package/dist/packages/core/src/pasteRules/textPasteRule.d.ts +9 -0
- package/dist/packages/core/src/style.d.ts +1 -1
- package/dist/packages/core/src/types.d.ts +104 -51
- package/dist/packages/core/src/utilities/callOrReturn.d.ts +2 -1
- package/dist/packages/core/src/utilities/deleteProps.d.ts +1 -2
- package/dist/packages/core/src/utilities/findDuplicates.d.ts +1 -0
- package/dist/packages/core/src/utilities/isClass.d.ts +1 -1
- package/dist/packages/core/src/utilities/isEmptyObject.d.ts +1 -1
- package/dist/packages/core/src/utilities/isFunction.d.ts +1 -0
- package/dist/packages/core/src/utilities/isNumber.d.ts +1 -0
- package/dist/packages/core/src/utilities/isObject.d.ts +1 -1
- package/dist/packages/core/src/utilities/isPlainObject.d.ts +1 -1
- package/dist/packages/core/src/utilities/isRegExp.d.ts +1 -0
- package/dist/packages/core/src/utilities/isiOS.d.ts +1 -0
- package/dist/packages/core/src/utilities/mergeAttributes.d.ts +1 -2
- package/dist/packages/core/src/utilities/mergeDeep.d.ts +1 -2
- package/dist/packages/core/src/utilities/objectIncludes.d.ts +3 -2
- package/dist/tiptap-core.cjs.js +2695 -1451
- package/dist/tiptap-core.cjs.js.map +1 -1
- package/dist/tiptap-core.esm.js +3244 -2026
- package/dist/tiptap-core.esm.js.map +1 -1
- package/dist/tiptap-core.umd.js +3182 -1937
- package/dist/tiptap-core.umd.js.map +1 -1
- package/package.json +19 -16
- package/src/CommandManager.ts +59 -61
- package/src/Editor.ts +91 -95
- package/src/EventEmitter.ts +14 -4
- package/src/Extension.ts +202 -40
- package/src/ExtensionManager.ts +234 -70
- package/src/InputRule.ts +268 -0
- package/src/Mark.ts +248 -46
- package/src/Node.ts +275 -51
- package/src/NodeView.ts +105 -42
- package/src/PasteRule.ts +215 -0
- package/src/Tracker.ts +42 -0
- package/src/commands/blur.ts +9 -7
- package/src/commands/clearContent.ts +3 -3
- package/src/commands/clearNodes.ts +25 -19
- package/src/commands/command.ts +2 -2
- package/src/commands/createParagraphNear.ts +3 -3
- package/src/commands/deleteNode.ts +36 -0
- package/src/commands/deleteRange.ts +3 -3
- package/src/commands/deleteSelection.ts +3 -3
- package/src/commands/enter.ts +3 -3
- package/src/commands/exitCode.ts +3 -3
- package/src/commands/extendMarkRange.ts +8 -8
- package/src/commands/first.ts +3 -3
- package/src/commands/focus.ts +31 -9
- package/src/commands/forEach.ts +24 -0
- package/src/commands/insertContent.ts +23 -0
- package/src/commands/insertContentAt.ts +93 -0
- package/src/commands/joinBackward.ts +3 -3
- package/src/commands/joinForward.ts +3 -3
- package/src/commands/keyboardShortcut.ts +3 -3
- package/src/commands/lift.ts +3 -3
- package/src/commands/liftEmptyBlock.ts +3 -3
- package/src/commands/liftListItem.ts +3 -3
- package/src/commands/newlineInCode.ts +3 -3
- package/src/commands/resetAttributes.ts +61 -0
- package/src/commands/scrollIntoView.ts +3 -3
- package/src/commands/selectAll.ts +8 -6
- package/src/commands/selectNodeBackward.ts +3 -3
- package/src/commands/selectNodeForward.ts +3 -3
- package/src/commands/selectParentNode.ts +3 -3
- package/src/commands/setContent.ts +10 -5
- package/src/commands/setMark.ts +33 -10
- package/src/commands/setMeta.ts +18 -0
- package/src/commands/setNode.ts +3 -3
- package/src/commands/setNodeSelection.ts +28 -0
- package/src/commands/setTextSelection.ts +32 -0
- package/src/commands/sinkListItem.ts +3 -3
- package/src/commands/splitBlock.ts +13 -8
- package/src/commands/splitListItem.ts +39 -13
- package/src/commands/toggleList.ts +4 -4
- package/src/commands/toggleMark.ts +15 -5
- package/src/commands/toggleNode.ts +3 -3
- package/src/commands/toggleWrap.ts +3 -3
- package/src/commands/undoInputRule.ts +33 -5
- package/src/commands/unsetAllMarks.ts +3 -3
- package/src/commands/unsetMark.ts +32 -20
- package/src/commands/updateAttributes.ts +72 -0
- package/src/commands/wrapIn.ts +3 -3
- package/src/commands/wrapInList.ts +3 -3
- package/src/extensions/clipboardTextSerializer.ts +11 -35
- package/src/extensions/commands.ts +27 -21
- package/src/extensions/focusEvents.ts +0 -3
- package/src/extensions/index.ts +1 -0
- package/src/extensions/keymap.ts +6 -6
- package/src/extensions/tabindex.ts +19 -0
- package/src/helpers/createChainableState.ts +37 -0
- package/src/helpers/createDocument.ts +11 -0
- package/src/helpers/createNodeFromContent.ts +56 -0
- package/src/helpers/findChildren.ts +17 -0
- package/src/helpers/findChildrenInRange.ts +31 -0
- package/src/helpers/generateHTML.ts +3 -3
- package/src/helpers/generateJSON.ts +13 -0
- package/src/helpers/generateText.ts +29 -0
- package/src/helpers/getAttributes.ts +27 -0
- package/src/helpers/getAttributesFromExtensions.ts +26 -5
- package/src/helpers/getDebugJSON.ts +46 -0
- package/src/helpers/getExtensionField.ts +25 -0
- package/src/helpers/getHTMLFromFragment.ts +5 -5
- package/src/helpers/getMarkAttributes.ts +11 -8
- package/src/helpers/getMarkRange.ts +34 -6
- package/src/helpers/getMarkType.ts +4 -0
- package/src/helpers/getMarksBetween.ts +3 -3
- package/src/helpers/getNodeAttributes.ts +6 -7
- package/src/helpers/getNodeType.ts +4 -0
- package/src/helpers/getRenderedAttributes.ts +3 -5
- package/src/helpers/getSchema.ts +5 -132
- package/src/helpers/getSchemaByResolvedExtensions.ts +147 -0
- package/src/helpers/getSchemaTypeByName.ts +1 -9
- package/src/helpers/getSplittedAttributes.ts +3 -3
- package/src/helpers/getText.ts +18 -0
- package/src/helpers/getTextBetween.ts +45 -0
- package/src/helpers/getTextSeralizersFromSchema.ts +9 -0
- package/src/helpers/injectExtensionAttributesToParseRule.ts +12 -8
- package/src/helpers/isActive.ts +1 -2
- package/src/helpers/isExtensionRulesEnabled.ts +15 -0
- package/src/helpers/isList.ts +11 -4
- package/src/helpers/isMarkActive.ts +40 -16
- package/src/helpers/isNodeActive.ts +23 -31
- package/src/helpers/posToDOMRect.ts +34 -0
- package/src/index.ts +34 -5
- package/src/inputRules/markInputRule.ts +57 -38
- package/src/inputRules/nodeInputRule.ts +43 -11
- package/src/inputRules/textInputRule.ts +35 -0
- package/src/inputRules/textblockTypeInputRule.ts +37 -0
- package/src/inputRules/wrappingInputRule.ts +59 -0
- package/src/pasteRules/markPasteRule.ts +61 -53
- package/src/pasteRules/textPasteRule.ts +35 -0
- package/src/style.ts +14 -0
- package/src/types.ts +118 -36
- package/src/utilities/callOrReturn.ts +6 -3
- package/src/utilities/createStyleTag.ts +7 -0
- package/src/utilities/deleteProps.ts +2 -4
- package/src/utilities/elementFromString.ts +3 -4
- package/src/utilities/findDuplicates.ts +5 -0
- package/src/utilities/fromString.ts +1 -1
- package/src/utilities/isClass.ts +2 -2
- package/src/utilities/isEmptyObject.ts +2 -2
- package/src/utilities/isFunction.ts +3 -0
- package/src/utilities/isNumber.ts +3 -0
- package/src/utilities/isObject.ts +5 -5
- package/src/utilities/isPlainObject.ts +5 -5
- package/src/utilities/isRegExp.ts +3 -0
- package/src/utilities/isString.ts +3 -0
- package/src/utilities/isiOS.ts +12 -0
- package/src/utilities/mergeAttributes.ts +2 -3
- package/src/utilities/mergeDeep.ts +1 -2
- package/src/utilities/objectIncludes.ts +17 -5
- package/CHANGELOG.md +0 -294
- package/dist/packages/core/src/commands/insertHTML.d.ts +0 -12
- package/dist/packages/core/src/commands/insertNode.d.ts +0 -13
- package/dist/packages/core/src/commands/insertText.d.ts +0 -12
- package/dist/packages/core/src/commands/replace.d.ts +0 -13
- package/dist/packages/core/src/commands/replaceRange.d.ts +0 -13
- package/dist/packages/core/src/commands/resetNodeAttributes.d.ts +0 -13
- package/dist/packages/core/src/commands/updateNodeAttributes.d.ts +0 -13
- package/dist/packages/core/src/utilities/removeElement.d.ts +0 -1
- package/dist/tiptap-core.bundle.umd.min.js +0 -17
- package/dist/tiptap-core.bundle.umd.min.js.map +0 -1
- package/src/commands/insertHTML.ts +0 -28
- package/src/commands/insertNode.ts +0 -31
- package/src/commands/insertText.ts +0 -20
- package/src/commands/replace.ts +0 -20
- package/src/commands/replaceRange.ts +0 -36
- package/src/commands/resetNodeAttributes.ts +0 -31
- package/src/commands/updateNodeAttributes.ts +0 -33
- package/src/utilities/removeElement.ts +0 -5
package/LICENSE.md
CHANGED
package/README.md
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
## Introduction
|
|
8
8
|
tiptap is a headless wrapper around [ProseMirror](https://ProseMirror.net) – a toolkit for building rich text WYSIWYG editors, which is already in use at many well-known companies such as *New York Times*, *The Guardian* or *Atlassian*.
|
|
9
9
|
|
|
10
|
-
##
|
|
10
|
+
## Official Documentation
|
|
11
11
|
Documentation can be found on the [tiptap website](https://tiptap.dev).
|
|
12
12
|
|
|
13
13
|
## License
|
|
14
|
-
tiptap is open
|
|
14
|
+
tiptap is open sourced software licensed under the [MIT license](https://github.com/ueberdosis/tiptap/blob/main/LICENSE.md).
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { EditorState, Transaction } from 'prosemirror-state';
|
|
2
2
|
import { Editor } from './Editor';
|
|
3
|
-
import { SingleCommands, ChainedCommands, CanCommands,
|
|
3
|
+
import { SingleCommands, ChainedCommands, CanCommands, AnyCommands, CommandProps } from './types';
|
|
4
4
|
export default class CommandManager {
|
|
5
5
|
editor: Editor;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
rawCommands: AnyCommands;
|
|
7
|
+
customState?: EditorState;
|
|
8
|
+
constructor(props: {
|
|
9
|
+
editor: Editor;
|
|
10
|
+
state?: EditorState;
|
|
11
|
+
});
|
|
12
|
+
get hasCustomState(): boolean;
|
|
13
|
+
get state(): EditorState;
|
|
14
|
+
get commands(): SingleCommands;
|
|
15
|
+
get chain(): () => ChainedCommands;
|
|
16
|
+
get can(): () => CanCommands;
|
|
9
17
|
createChain(startTr?: Transaction, shouldDispatch?: boolean): ChainedCommands;
|
|
10
18
|
createCan(startTr?: Transaction): CanCommands;
|
|
11
19
|
buildProps(tr: Transaction, shouldDispatch?: boolean): CommandProps;
|
|
12
|
-
chainableState(tr: Transaction, state: EditorState): EditorState;
|
|
13
20
|
}
|
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
import { EditorState, Plugin, PluginKey, Transaction } from 'prosemirror-state';
|
|
2
2
|
import { EditorView } from 'prosemirror-view';
|
|
3
|
-
import { Schema,
|
|
3
|
+
import { Schema, MarkType, NodeType } from 'prosemirror-model';
|
|
4
4
|
import ExtensionManager from './ExtensionManager';
|
|
5
5
|
import EventEmitter from './EventEmitter';
|
|
6
|
-
import { EditorOptions,
|
|
6
|
+
import { EditorOptions, CanCommands, ChainedCommands, JSONContent, SingleCommands, TextSerializer, EditorEvents } from './types';
|
|
7
7
|
import * as extensions from './extensions';
|
|
8
8
|
export { extensions };
|
|
9
9
|
export interface HTMLElement {
|
|
10
10
|
editor?: Editor;
|
|
11
11
|
}
|
|
12
|
-
export declare class Editor extends EventEmitter {
|
|
12
|
+
export declare class Editor extends EventEmitter<EditorEvents> {
|
|
13
13
|
private commandManager;
|
|
14
14
|
extensionManager: ExtensionManager;
|
|
15
15
|
private css;
|
|
16
16
|
schema: Schema;
|
|
17
17
|
view: EditorView;
|
|
18
18
|
isFocused: boolean;
|
|
19
|
-
|
|
19
|
+
extensionStorage: Record<string, any>;
|
|
20
20
|
options: EditorOptions;
|
|
21
21
|
constructor(options?: Partial<EditorOptions>);
|
|
22
|
+
/**
|
|
23
|
+
* Returns the editor storage.
|
|
24
|
+
*/
|
|
25
|
+
get storage(): Record<string, any>;
|
|
22
26
|
/**
|
|
23
27
|
* An object of all registered commands.
|
|
24
28
|
*/
|
|
@@ -63,7 +67,7 @@ export declare class Editor extends EventEmitter {
|
|
|
63
67
|
/**
|
|
64
68
|
* Unregister a ProseMirror plugin.
|
|
65
69
|
*
|
|
66
|
-
* @param
|
|
70
|
+
* @param nameOrPluginKey The plugins name
|
|
67
71
|
*/
|
|
68
72
|
unregisterPlugin(nameOrPluginKey: string | PluginKey): void;
|
|
69
73
|
/**
|
|
@@ -86,10 +90,6 @@ export declare class Editor extends EventEmitter {
|
|
|
86
90
|
* Creates all node views.
|
|
87
91
|
*/
|
|
88
92
|
createNodeViews(): void;
|
|
89
|
-
/**
|
|
90
|
-
* Creates a ProseMirror document.
|
|
91
|
-
*/
|
|
92
|
-
createDocument: (content: Content, parseOptions?: import("prosemirror-model").ParseOptions<any>) => Node;
|
|
93
93
|
isCapturingTransaction: boolean;
|
|
94
94
|
private capturedTransaction;
|
|
95
95
|
captureTransaction(fn: Function): Transaction<any> | null;
|
|
@@ -100,17 +100,9 @@ export declare class Editor extends EventEmitter {
|
|
|
100
100
|
*/
|
|
101
101
|
private dispatchTransaction;
|
|
102
102
|
/**
|
|
103
|
-
* Get attributes of the currently selected node.
|
|
104
|
-
*
|
|
105
|
-
* @param name Name of the node
|
|
106
|
-
*/
|
|
107
|
-
getNodeAttributes(name: string): AnyObject;
|
|
108
|
-
/**
|
|
109
|
-
* Get attributes of the currently selected mark.
|
|
110
|
-
*
|
|
111
|
-
* @param name Name of the mark
|
|
103
|
+
* Get attributes of the currently selected node or mark.
|
|
112
104
|
*/
|
|
113
|
-
|
|
105
|
+
getAttributes(nameOrType: string | NodeType | MarkType): Record<string, any>;
|
|
114
106
|
/**
|
|
115
107
|
* Returns if the currently selected node or mark is active.
|
|
116
108
|
*
|
|
@@ -122,11 +114,18 @@ export declare class Editor extends EventEmitter {
|
|
|
122
114
|
/**
|
|
123
115
|
* Get the document as JSON.
|
|
124
116
|
*/
|
|
125
|
-
getJSON():
|
|
117
|
+
getJSON(): JSONContent;
|
|
126
118
|
/**
|
|
127
119
|
* Get the document as HTML.
|
|
128
120
|
*/
|
|
129
121
|
getHTML(): string;
|
|
122
|
+
/**
|
|
123
|
+
* Get the document as text.
|
|
124
|
+
*/
|
|
125
|
+
getText(options?: {
|
|
126
|
+
blockSeparator?: string;
|
|
127
|
+
textSerializers?: Record<string, TextSerializer>;
|
|
128
|
+
}): string;
|
|
130
129
|
/**
|
|
131
130
|
* Check if there is no content.
|
|
132
131
|
*/
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
declare type StringKeyOf<T> = Extract<keyof T, string>;
|
|
2
|
+
declare type CallbackType<T extends Record<string, any>, EventName extends StringKeyOf<T>> = T[EventName] extends any[] ? T[EventName] : [T[EventName]];
|
|
3
|
+
declare type CallbackFunction<T extends Record<string, any>, EventName extends StringKeyOf<T>> = (...props: CallbackType<T, EventName>) => any;
|
|
4
|
+
export default class EventEmitter<T extends Record<string, any>> {
|
|
2
5
|
private callbacks;
|
|
3
|
-
on(event:
|
|
4
|
-
protected emit(event:
|
|
5
|
-
off(event:
|
|
6
|
+
on<EventName extends StringKeyOf<T>>(event: EventName, fn: CallbackFunction<T, EventName>): this;
|
|
7
|
+
protected emit<EventName extends StringKeyOf<T>>(event: EventName, ...args: CallbackType<T, EventName>): this;
|
|
8
|
+
off<EventName extends StringKeyOf<T>>(event: EventName, fn?: CallbackFunction<T, EventName>): this;
|
|
6
9
|
protected removeAllListeners(): void;
|
|
7
10
|
}
|
|
11
|
+
export {};
|
|
@@ -1,114 +1,178 @@
|
|
|
1
1
|
import { Plugin, Transaction } from 'prosemirror-state';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { InputRule } from './InputRule';
|
|
3
|
+
import { PasteRule } from './PasteRule';
|
|
4
4
|
import { Editor } from './Editor';
|
|
5
5
|
import { Node } from './Node';
|
|
6
|
-
import {
|
|
6
|
+
import { Mark } from './Mark';
|
|
7
|
+
import { Extensions, GlobalAttributes, RawCommands, ParentConfig, KeyboardShortcutCommand } from './types';
|
|
7
8
|
import { ExtensionConfig } from '.';
|
|
8
9
|
declare module '@tiptap/core' {
|
|
9
|
-
interface ExtensionConfig<Options = any> {
|
|
10
|
+
interface ExtensionConfig<Options = any, Storage = any> {
|
|
10
11
|
[key: string]: any;
|
|
11
12
|
/**
|
|
12
13
|
* Name
|
|
13
14
|
*/
|
|
14
15
|
name: string;
|
|
16
|
+
/**
|
|
17
|
+
* Priority
|
|
18
|
+
*/
|
|
19
|
+
priority?: number;
|
|
15
20
|
/**
|
|
16
21
|
* Default options
|
|
17
22
|
*/
|
|
18
23
|
defaultOptions?: Options;
|
|
24
|
+
/**
|
|
25
|
+
* Default Options
|
|
26
|
+
*/
|
|
27
|
+
addOptions?: (this: {
|
|
28
|
+
name: string;
|
|
29
|
+
parent: Exclude<ParentConfig<ExtensionConfig<Options, Storage>>['addOptions'], undefined>;
|
|
30
|
+
}) => Options;
|
|
31
|
+
/**
|
|
32
|
+
* Default Storage
|
|
33
|
+
*/
|
|
34
|
+
addStorage?: (this: {
|
|
35
|
+
name: string;
|
|
36
|
+
options: Options;
|
|
37
|
+
parent: Exclude<ParentConfig<ExtensionConfig<Options, Storage>>['addStorage'], undefined>;
|
|
38
|
+
}) => Storage;
|
|
19
39
|
/**
|
|
20
40
|
* Global attributes
|
|
21
41
|
*/
|
|
22
42
|
addGlobalAttributes?: (this: {
|
|
43
|
+
name: string;
|
|
23
44
|
options: Options;
|
|
45
|
+
storage: Storage;
|
|
46
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['addGlobalAttributes'];
|
|
24
47
|
}) => GlobalAttributes | {};
|
|
25
48
|
/**
|
|
26
49
|
* Raw
|
|
27
50
|
*/
|
|
28
51
|
addCommands?: (this: {
|
|
52
|
+
name: string;
|
|
29
53
|
options: Options;
|
|
54
|
+
storage: Storage;
|
|
30
55
|
editor: Editor;
|
|
56
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['addCommands'];
|
|
31
57
|
}) => Partial<RawCommands>;
|
|
32
58
|
/**
|
|
33
59
|
* Keyboard shortcuts
|
|
34
60
|
*/
|
|
35
61
|
addKeyboardShortcuts?: (this: {
|
|
62
|
+
name: string;
|
|
36
63
|
options: Options;
|
|
64
|
+
storage: Storage;
|
|
37
65
|
editor: Editor;
|
|
66
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['addKeyboardShortcuts'];
|
|
38
67
|
}) => {
|
|
39
|
-
[key: string]:
|
|
68
|
+
[key: string]: KeyboardShortcutCommand;
|
|
40
69
|
};
|
|
41
70
|
/**
|
|
42
71
|
* Input rules
|
|
43
72
|
*/
|
|
44
73
|
addInputRules?: (this: {
|
|
74
|
+
name: string;
|
|
45
75
|
options: Options;
|
|
76
|
+
storage: Storage;
|
|
46
77
|
editor: Editor;
|
|
78
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['addInputRules'];
|
|
47
79
|
}) => InputRule[];
|
|
48
80
|
/**
|
|
49
81
|
* Paste rules
|
|
50
82
|
*/
|
|
51
83
|
addPasteRules?: (this: {
|
|
84
|
+
name: string;
|
|
52
85
|
options: Options;
|
|
86
|
+
storage: Storage;
|
|
53
87
|
editor: Editor;
|
|
54
|
-
|
|
88
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['addPasteRules'];
|
|
89
|
+
}) => PasteRule[];
|
|
55
90
|
/**
|
|
56
91
|
* ProseMirror plugins
|
|
57
92
|
*/
|
|
58
93
|
addProseMirrorPlugins?: (this: {
|
|
94
|
+
name: string;
|
|
59
95
|
options: Options;
|
|
96
|
+
storage: Storage;
|
|
60
97
|
editor: Editor;
|
|
98
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['addProseMirrorPlugins'];
|
|
61
99
|
}) => Plugin[];
|
|
100
|
+
/**
|
|
101
|
+
* Extensions
|
|
102
|
+
*/
|
|
103
|
+
addExtensions?: (this: {
|
|
104
|
+
name: string;
|
|
105
|
+
options: Options;
|
|
106
|
+
storage: Storage;
|
|
107
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['addExtensions'];
|
|
108
|
+
}) => Extensions;
|
|
62
109
|
/**
|
|
63
110
|
* Extend Node Schema
|
|
64
111
|
*/
|
|
65
112
|
extendNodeSchema?: ((this: {
|
|
113
|
+
name: string;
|
|
66
114
|
options: Options;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}) | null;
|
|
115
|
+
storage: Storage;
|
|
116
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['extendNodeSchema'];
|
|
117
|
+
}, extension: Node) => Record<string, any>) | null;
|
|
70
118
|
/**
|
|
71
119
|
* Extend Mark Schema
|
|
72
120
|
*/
|
|
73
121
|
extendMarkSchema?: ((this: {
|
|
122
|
+
name: string;
|
|
74
123
|
options: Options;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}) | null;
|
|
124
|
+
storage: Storage;
|
|
125
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['extendMarkSchema'];
|
|
126
|
+
}, extension: Mark) => Record<string, any>) | null;
|
|
127
|
+
/**
|
|
128
|
+
* The editor is not ready yet.
|
|
129
|
+
*/
|
|
130
|
+
onBeforeCreate?: ((this: {
|
|
131
|
+
name: string;
|
|
132
|
+
options: Options;
|
|
133
|
+
storage: Storage;
|
|
134
|
+
editor: Editor;
|
|
135
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onBeforeCreate'];
|
|
136
|
+
}) => void) | null;
|
|
78
137
|
/**
|
|
79
138
|
* The editor is ready.
|
|
80
139
|
*/
|
|
81
140
|
onCreate?: ((this: {
|
|
141
|
+
name: string;
|
|
82
142
|
options: Options;
|
|
143
|
+
storage: Storage;
|
|
83
144
|
editor: Editor;
|
|
145
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onCreate'];
|
|
84
146
|
}) => void) | null;
|
|
85
147
|
/**
|
|
86
148
|
* The content has changed.
|
|
87
149
|
*/
|
|
88
150
|
onUpdate?: ((this: {
|
|
151
|
+
name: string;
|
|
89
152
|
options: Options;
|
|
153
|
+
storage: Storage;
|
|
90
154
|
editor: Editor;
|
|
155
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onUpdate'];
|
|
91
156
|
}) => void) | null;
|
|
92
157
|
/**
|
|
93
158
|
* The selection has changed.
|
|
94
159
|
*/
|
|
95
160
|
onSelectionUpdate?: ((this: {
|
|
161
|
+
name: string;
|
|
96
162
|
options: Options;
|
|
163
|
+
storage: Storage;
|
|
97
164
|
editor: Editor;
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* The view has changed.
|
|
101
|
-
*/
|
|
102
|
-
onViewUpdate?: ((this: {
|
|
103
|
-
options: Options;
|
|
104
|
-
editor: Editor;
|
|
165
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onSelectionUpdate'];
|
|
105
166
|
}) => void) | null;
|
|
106
167
|
/**
|
|
107
168
|
* The editor state has changed.
|
|
108
169
|
*/
|
|
109
170
|
onTransaction?: ((this: {
|
|
171
|
+
name: string;
|
|
110
172
|
options: Options;
|
|
173
|
+
storage: Storage;
|
|
111
174
|
editor: Editor;
|
|
175
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onTransaction'];
|
|
112
176
|
}, props: {
|
|
113
177
|
transaction: Transaction;
|
|
114
178
|
}) => void) | null;
|
|
@@ -116,8 +180,11 @@ declare module '@tiptap/core' {
|
|
|
116
180
|
* The editor is focused.
|
|
117
181
|
*/
|
|
118
182
|
onFocus?: ((this: {
|
|
183
|
+
name: string;
|
|
119
184
|
options: Options;
|
|
185
|
+
storage: Storage;
|
|
120
186
|
editor: Editor;
|
|
187
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onFocus'];
|
|
121
188
|
}, props: {
|
|
122
189
|
event: FocusEvent;
|
|
123
190
|
}) => void) | null;
|
|
@@ -125,8 +192,11 @@ declare module '@tiptap/core' {
|
|
|
125
192
|
* The editor isn’t focused anymore.
|
|
126
193
|
*/
|
|
127
194
|
onBlur?: ((this: {
|
|
195
|
+
name: string;
|
|
128
196
|
options: Options;
|
|
197
|
+
storage: Storage;
|
|
129
198
|
editor: Editor;
|
|
199
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onBlur'];
|
|
130
200
|
}, props: {
|
|
131
201
|
event: FocusEvent;
|
|
132
202
|
}) => void) | null;
|
|
@@ -134,18 +204,24 @@ declare module '@tiptap/core' {
|
|
|
134
204
|
* The editor is destroyed.
|
|
135
205
|
*/
|
|
136
206
|
onDestroy?: ((this: {
|
|
207
|
+
name: string;
|
|
137
208
|
options: Options;
|
|
209
|
+
storage: Storage;
|
|
138
210
|
editor: Editor;
|
|
211
|
+
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onDestroy'];
|
|
139
212
|
}) => void) | null;
|
|
140
213
|
}
|
|
141
214
|
}
|
|
142
|
-
export declare class Extension<Options = any> {
|
|
143
|
-
#private;
|
|
215
|
+
export declare class Extension<Options = any, Storage = any> {
|
|
144
216
|
type: string;
|
|
145
|
-
|
|
217
|
+
name: string;
|
|
218
|
+
parent: Extension | null;
|
|
219
|
+
child: Extension | null;
|
|
146
220
|
options: Options;
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
221
|
+
storage: Storage;
|
|
222
|
+
config: ExtensionConfig;
|
|
223
|
+
constructor(config?: Partial<ExtensionConfig<Options, Storage>>);
|
|
224
|
+
static create<O = any, S = any>(config?: Partial<ExtensionConfig<O, S>>): Extension<O, S>;
|
|
225
|
+
configure(options?: Partial<Options>): Extension<Options, Storage>;
|
|
226
|
+
extend<ExtendedOptions = Options, ExtendedStorage = Storage>(extendedConfig?: Partial<ExtensionConfig<ExtendedOptions, ExtendedStorage>>): Extension<ExtendedOptions, ExtendedStorage>;
|
|
151
227
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Schema
|
|
2
|
-
import { EditorView, Decoration } from 'prosemirror-view';
|
|
1
|
+
import { Schema } from 'prosemirror-model';
|
|
3
2
|
import { Plugin } from 'prosemirror-state';
|
|
4
3
|
import { Editor } from './Editor';
|
|
5
4
|
import { Extensions, RawCommands } from './types';
|
|
@@ -9,15 +8,11 @@ export default class ExtensionManager {
|
|
|
9
8
|
extensions: Extensions;
|
|
10
9
|
splittableMarks: string[];
|
|
11
10
|
constructor(extensions: Extensions, editor: Editor);
|
|
11
|
+
static resolve(extensions: Extensions): Extensions;
|
|
12
|
+
static flatten(extensions: Extensions): Extensions;
|
|
13
|
+
static sort(extensions: Extensions): Extensions;
|
|
12
14
|
get commands(): RawCommands;
|
|
13
15
|
get plugins(): Plugin[];
|
|
14
|
-
get attributes(): import("
|
|
15
|
-
get nodeViews():
|
|
16
|
-
[k: string]: (node: ProsemirrorNode, view: EditorView, getPos: (() => number) | boolean, decorations: Decoration[]) => {} | import("prosemirror-view").NodeView<any>;
|
|
17
|
-
};
|
|
18
|
-
get textSerializers(): {
|
|
19
|
-
[k: string]: (props: {
|
|
20
|
-
node: ProsemirrorNode;
|
|
21
|
-
}) => string | undefined;
|
|
22
|
-
};
|
|
16
|
+
get attributes(): import("@tiptap/core").ExtensionAttribute[];
|
|
17
|
+
get nodeViews(): any;
|
|
23
18
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { EditorState, Plugin } from 'prosemirror-state';
|
|
2
|
+
import { Editor } from './Editor';
|
|
3
|
+
import { Range, ExtendedRegExpMatchArray, SingleCommands, ChainedCommands, CanCommands } from './types';
|
|
4
|
+
export declare type InputRuleMatch = {
|
|
5
|
+
index: number;
|
|
6
|
+
text: string;
|
|
7
|
+
replaceWith?: string;
|
|
8
|
+
match?: RegExpMatchArray;
|
|
9
|
+
data?: Record<string, any>;
|
|
10
|
+
};
|
|
11
|
+
export declare type InputRuleFinder = RegExp | ((text: string) => InputRuleMatch | null);
|
|
12
|
+
export declare class InputRule {
|
|
13
|
+
find: InputRuleFinder;
|
|
14
|
+
handler: (props: {
|
|
15
|
+
state: EditorState;
|
|
16
|
+
range: Range;
|
|
17
|
+
match: ExtendedRegExpMatchArray;
|
|
18
|
+
commands: SingleCommands;
|
|
19
|
+
chain: () => ChainedCommands;
|
|
20
|
+
can: () => CanCommands;
|
|
21
|
+
}) => void;
|
|
22
|
+
constructor(config: {
|
|
23
|
+
find: InputRuleFinder;
|
|
24
|
+
handler: (props: {
|
|
25
|
+
state: EditorState;
|
|
26
|
+
range: Range;
|
|
27
|
+
match: ExtendedRegExpMatchArray;
|
|
28
|
+
commands: SingleCommands;
|
|
29
|
+
chain: () => ChainedCommands;
|
|
30
|
+
can: () => CanCommands;
|
|
31
|
+
}) => void;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create an input rules plugin. When enabled, it will cause text
|
|
36
|
+
* input that matches any of the given rules to trigger the rule’s
|
|
37
|
+
* action.
|
|
38
|
+
*/
|
|
39
|
+
export declare function inputRulesPlugin(props: {
|
|
40
|
+
editor: Editor;
|
|
41
|
+
rules: InputRule[];
|
|
42
|
+
}): Plugin;
|