@tiptap/core 2.0.0-beta.17 → 2.0.0-beta.170
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 +13 -6
- package/dist/packages/core/src/Editor.d.ts +23 -18
- 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 +7 -12
- 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 +160 -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 +5 -3
- package/dist/packages/core/src/commands/forEach.d.ts +14 -0
- package/dist/packages/core/src/commands/insertContent.d.ts +7 -3
- 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/selectTextblockEnd.d.ts +12 -0
- package/dist/packages/core/src/commands/selectTextblockStart.d.ts +12 -0
- 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 +21 -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/combineTransactionSteps.d.ts +7 -0
- package/dist/packages/core/src/helpers/createChainableState.d.ts +5 -0
- package/dist/packages/core/src/helpers/createDocument.d.ts +3 -4
- package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +4 -5
- package/dist/packages/core/src/helpers/defaultBlockAt.d.ts +2 -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/findParentNode.d.ts +1 -1
- package/dist/packages/core/src/helpers/findParentNodeClosestToPos.d.ts +1 -1
- 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/getAttributesFromExtensions.d.ts +1 -1
- package/dist/packages/core/src/helpers/getChangedRanges.d.ts +11 -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/getMarkType.d.ts +1 -1
- package/dist/packages/core/src/helpers/getMarksBetween.d.ts +2 -2
- package/dist/packages/core/src/helpers/getNodeAttributes.d.ts +1 -2
- package/dist/packages/core/src/helpers/getNodeType.d.ts +1 -1
- package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +2 -2
- package/dist/packages/core/src/helpers/getSchema.d.ts +1 -1
- package/dist/packages/core/src/helpers/getSchemaByResolvedExtensions.d.ts +3 -0
- package/dist/packages/core/src/helpers/getSchemaTypeByName.d.ts +1 -1
- package/dist/packages/core/src/helpers/getSchemaTypeNameByName.d.ts +1 -1
- 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/injectExtensionAttributesToParseRule.d.ts +1 -1
- 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/isList.d.ts +1 -1
- 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/isNodeEmpty.d.ts +1 -1
- package/dist/packages/core/src/helpers/isNodeSelection.d.ts +1 -1
- package/dist/packages/core/src/helpers/isTextSelection.d.ts +1 -1
- package/dist/packages/core/src/helpers/posToDOMRect.d.ts +2 -0
- package/dist/packages/core/src/helpers/resolveFocusPosition.d.ts +4 -0
- package/dist/packages/core/src/helpers/selectionToInsertionEnd.d.ts +1 -1
- package/dist/packages/core/src/helpers/splitExtensions.d.ts +4 -4
- package/dist/packages/core/src/index.d.ts +51 -20
- 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 -2
- package/dist/packages/core/src/types.d.ts +105 -52
- package/dist/packages/core/src/utilities/callOrReturn.d.ts +2 -1
- package/dist/packages/core/src/utilities/createStyleTag.d.ts +1 -1
- package/dist/packages/core/src/utilities/deleteProps.d.ts +1 -2
- package/dist/packages/core/src/utilities/elementFromString.d.ts +1 -1
- package/dist/packages/core/src/utilities/escapeForRegEx.d.ts +1 -0
- package/dist/packages/core/src/utilities/findDuplicates.d.ts +1 -0
- package/dist/packages/core/src/utilities/fromString.d.ts +1 -1
- 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/isMacOS.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/minMax.d.ts +1 -1
- package/dist/packages/core/src/utilities/objectIncludes.d.ts +3 -2
- package/dist/packages/core/src/utilities/removeDuplicates.d.ts +8 -0
- package/dist/tiptap-core.cjs.js +3572 -2041
- package/dist/tiptap-core.cjs.js.map +1 -1
- package/dist/tiptap-core.esm.js +3544 -2044
- package/dist/tiptap-core.esm.js.map +1 -1
- package/dist/tiptap-core.umd.js +3430 -1898
- package/dist/tiptap-core.umd.js.map +1 -1
- package/package.json +20 -16
- package/src/CommandManager.ts +60 -62
- package/src/Editor.ts +109 -74
- package/src/EventEmitter.ts +14 -4
- package/src/Extension.ts +196 -41
- package/src/ExtensionManager.ts +242 -78
- package/src/InputRule.ts +268 -0
- package/src/Mark.ts +242 -47
- package/src/Node.ts +279 -52
- package/src/NodeView.ts +105 -42
- package/src/PasteRule.ts +246 -0
- package/src/Tracker.ts +42 -0
- package/src/commands/blur.ts +12 -6
- package/src/commands/clearContent.ts +3 -3
- package/src/commands/clearNodes.ts +29 -18
- 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 +10 -10
- package/src/commands/first.ts +3 -3
- package/src/commands/focus.ts +45 -44
- package/src/commands/forEach.ts +24 -0
- package/src/commands/insertContent.ts +12 -24
- package/src/commands/insertContentAt.ts +107 -0
- package/src/commands/joinBackward.ts +3 -3
- package/src/commands/joinForward.ts +3 -3
- package/src/commands/keyboardShortcut.ts +6 -6
- package/src/commands/lift.ts +5 -5
- package/src/commands/liftEmptyBlock.ts +3 -3
- package/src/commands/liftListItem.ts +4 -4
- 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/selectTextblockEnd.ts +19 -0
- package/src/commands/selectTextblockStart.ts +19 -0
- package/src/commands/setContent.ts +7 -11
- package/src/commands/setMark.ts +35 -12
- package/src/commands/setMeta.ts +18 -0
- package/src/commands/setNode.ts +27 -6
- package/src/commands/setNodeSelection.ts +28 -0
- package/src/commands/setTextSelection.ts +32 -0
- package/src/commands/sinkListItem.ts +4 -4
- package/src/commands/splitBlock.ts +14 -9
- package/src/commands/splitListItem.ts +41 -15
- package/src/commands/toggleList.ts +82 -18
- package/src/commands/toggleMark.ts +17 -7
- package/src/commands/toggleNode.ts +5 -5
- package/src/commands/toggleWrap.ts +8 -9
- package/src/commands/undoInputRule.ts +34 -5
- package/src/commands/unsetAllMarks.ts +7 -11
- package/src/commands/unsetMark.ts +34 -22
- package/src/commands/updateAttributes.ts +72 -0
- package/src/commands/wrapIn.ts +4 -10
- package/src/commands/wrapInList.ts +4 -4
- package/src/extensions/clipboardTextSerializer.ts +13 -35
- package/src/extensions/commands.ts +30 -21
- package/src/extensions/focusEvents.ts +0 -3
- package/src/extensions/index.ts +1 -0
- package/src/extensions/keymap.ts +111 -13
- package/src/extensions/tabindex.ts +19 -0
- package/src/helpers/combineTransactionSteps.ts +18 -0
- package/src/helpers/createChainableState.ts +37 -0
- package/src/helpers/createDocument.ts +5 -7
- package/src/helpers/createNodeFromContent.ts +15 -18
- package/src/helpers/defaultBlockAt.ts +13 -0
- package/src/helpers/findChildren.ts +17 -0
- package/src/helpers/findChildrenInRange.ts +31 -0
- package/src/helpers/findParentNode.ts +2 -2
- package/src/helpers/findParentNodeClosestToPos.ts +1 -1
- package/src/helpers/generateHTML.ts +5 -5
- 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 +28 -7
- package/src/helpers/getChangedRanges.ts +82 -0
- package/src/helpers/getDebugJSON.ts +53 -0
- package/src/helpers/getExtensionField.ts +25 -0
- package/src/helpers/getHTMLFromFragment.ts +6 -5
- package/src/helpers/getMarkAttributes.ts +12 -9
- package/src/helpers/getMarkRange.ts +34 -6
- package/src/helpers/getMarkType.ts +5 -1
- package/src/helpers/getMarksBetween.ts +31 -10
- package/src/helpers/getNodeAttributes.ts +7 -8
- package/src/helpers/getNodeType.ts +5 -1
- package/src/helpers/getRenderedAttributes.ts +4 -6
- package/src/helpers/getSchema.ts +6 -133
- package/src/helpers/getSchemaByResolvedExtensions.ts +147 -0
- package/src/helpers/getSchemaTypeByName.ts +2 -10
- package/src/helpers/getSchemaTypeNameByName.ts +1 -1
- package/src/helpers/getSplittedAttributes.ts +4 -4
- 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 +15 -17
- package/src/helpers/isActive.ts +4 -5
- package/src/helpers/isExtensionRulesEnabled.ts +15 -0
- package/src/helpers/isList.ts +14 -7
- package/src/helpers/isMarkActive.ts +43 -19
- package/src/helpers/isNodeActive.ts +26 -34
- package/src/helpers/isNodeEmpty.ts +1 -1
- package/src/helpers/isNodeSelection.ts +2 -2
- package/src/helpers/isTextSelection.ts +2 -2
- package/src/helpers/posToDOMRect.ts +34 -0
- package/src/helpers/resolveFocusPosition.ts +34 -0
- package/src/helpers/selectionToInsertionEnd.ts +1 -1
- package/src/helpers/splitExtensions.ts +1 -1
- package/src/index.ts +53 -20
- package/src/inputRules/markInputRule.ts +58 -39
- package/src/inputRules/nodeInputRule.ts +44 -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 +16 -3
- package/src/types.ts +119 -37
- package/src/utilities/callOrReturn.ts +6 -3
- package/src/utilities/createStyleTag.ts +8 -1
- package/src/utilities/deleteProps.ts +2 -4
- package/src/utilities/elementFromString.ts +4 -5
- package/src/utilities/escapeForRegEx.ts +4 -0
- package/src/utilities/findDuplicates.ts +5 -0
- package/src/utilities/fromString.ts +2 -2
- package/src/utilities/isClass.ts +2 -2
- package/src/utilities/isEmptyObject.ts +2 -2
- package/src/utilities/isFunction.ts +3 -0
- package/src/utilities/isMacOS.ts +5 -0
- package/src/utilities/isNumber.ts +3 -0
- package/src/utilities/isObject.ts +6 -6
- package/src/utilities/isPlainObject.ts +8 -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 +2 -3
- package/src/utilities/minMax.ts +1 -1
- package/src/utilities/objectIncludes.ts +17 -5
- package/src/utilities/removeDuplicates.ts +15 -0
- package/CHANGELOG.md +0 -324
- 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 -30
- package/src/commands/insertNode.ts +0 -33
- package/src/commands/insertText.ts +0 -22
- 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/src/types.ts
CHANGED
|
@@ -14,9 +14,56 @@ import { Extension } from './Extension'
|
|
|
14
14
|
import { Node } from './Node'
|
|
15
15
|
import { Mark } from './Mark'
|
|
16
16
|
import { Editor } from './Editor'
|
|
17
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
Commands,
|
|
19
|
+
ExtensionConfig,
|
|
20
|
+
NodeConfig,
|
|
21
|
+
MarkConfig,
|
|
22
|
+
} from '.'
|
|
23
|
+
|
|
24
|
+
export type AnyConfig = ExtensionConfig | NodeConfig | MarkConfig
|
|
25
|
+
export type AnyExtension = Extension | Node | Mark
|
|
26
|
+
export type Extensions = AnyExtension[]
|
|
27
|
+
|
|
28
|
+
export type ParentConfig<T> = Partial<{
|
|
29
|
+
[P in keyof T]: Required<T>[P] extends (...args: any) => any
|
|
30
|
+
? (...args: Parameters<Required<T>[P]>) => ReturnType<Required<T>[P]>
|
|
31
|
+
: T[P]
|
|
32
|
+
}>
|
|
33
|
+
|
|
34
|
+
export type Primitive =
|
|
35
|
+
| null
|
|
36
|
+
| undefined
|
|
37
|
+
| string
|
|
38
|
+
| number
|
|
39
|
+
| boolean
|
|
40
|
+
| symbol
|
|
41
|
+
| bigint
|
|
42
|
+
|
|
43
|
+
export type RemoveThis<T> = T extends (...args: any) => any
|
|
44
|
+
? (...args: Parameters<T>) => ReturnType<T>
|
|
45
|
+
: T
|
|
46
|
+
|
|
47
|
+
export type MaybeReturnType<T> = T extends (...args: any) => any
|
|
48
|
+
? ReturnType<T>
|
|
49
|
+
: T
|
|
50
|
+
|
|
51
|
+
export type MaybeThisParameterType<T> = Exclude<T, Primitive> extends (...args: any) => any
|
|
52
|
+
? ThisParameterType<Exclude<T, Primitive>>
|
|
53
|
+
: any
|
|
54
|
+
|
|
55
|
+
export interface EditorEvents {
|
|
56
|
+
beforeCreate: { editor: Editor },
|
|
57
|
+
create: { editor: Editor },
|
|
58
|
+
update: { editor: Editor, transaction: Transaction },
|
|
59
|
+
selectionUpdate: { editor: Editor, transaction: Transaction },
|
|
60
|
+
transaction: { editor: Editor, transaction: Transaction },
|
|
61
|
+
focus: { editor: Editor, event: FocusEvent, transaction: Transaction },
|
|
62
|
+
blur: { editor: Editor, event: FocusEvent, transaction: Transaction },
|
|
63
|
+
destroy: void,
|
|
64
|
+
}
|
|
18
65
|
|
|
19
|
-
export type
|
|
66
|
+
export type EnableRules = (AnyExtension | string)[] | boolean
|
|
20
67
|
|
|
21
68
|
export interface EditorOptions {
|
|
22
69
|
element: Element,
|
|
@@ -27,20 +74,35 @@ export interface EditorOptions {
|
|
|
27
74
|
editable: boolean,
|
|
28
75
|
editorProps: EditorProps,
|
|
29
76
|
parseOptions: ParseOptions,
|
|
30
|
-
enableInputRules:
|
|
31
|
-
enablePasteRules:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
onDestroy: () => void,
|
|
77
|
+
enableInputRules: EnableRules,
|
|
78
|
+
enablePasteRules: EnableRules,
|
|
79
|
+
enableCoreExtensions: boolean,
|
|
80
|
+
onBeforeCreate: (props: EditorEvents['beforeCreate']) => void,
|
|
81
|
+
onCreate: (props: EditorEvents['create']) => void,
|
|
82
|
+
onUpdate: (props: EditorEvents['update']) => void,
|
|
83
|
+
onSelectionUpdate: (props: EditorEvents['selectionUpdate']) => void,
|
|
84
|
+
onTransaction: (props: EditorEvents['transaction']) => void,
|
|
85
|
+
onFocus: (props: EditorEvents['focus']) => void,
|
|
86
|
+
onBlur: (props: EditorEvents['blur']) => void,
|
|
87
|
+
onDestroy: (props: EditorEvents['destroy']) => void,
|
|
41
88
|
}
|
|
42
89
|
|
|
43
|
-
export type
|
|
90
|
+
export type HTMLContent = string
|
|
91
|
+
|
|
92
|
+
export type JSONContent = {
|
|
93
|
+
type?: string,
|
|
94
|
+
attrs?: Record<string, any>,
|
|
95
|
+
content?: JSONContent[],
|
|
96
|
+
marks?: {
|
|
97
|
+
type: string,
|
|
98
|
+
attrs?: Record<string, any>,
|
|
99
|
+
[key: string]: any,
|
|
100
|
+
}[],
|
|
101
|
+
text?: string,
|
|
102
|
+
[key: string]: any,
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export type Content = HTMLContent | JSONContent | JSONContent[] | null
|
|
44
106
|
|
|
45
107
|
export type CommandProps = {
|
|
46
108
|
editor: Editor,
|
|
@@ -57,11 +119,13 @@ export type Command = (props: CommandProps) => boolean
|
|
|
57
119
|
|
|
58
120
|
export type CommandSpec = (...args: any[]) => Command
|
|
59
121
|
|
|
122
|
+
export type KeyboardShortcutCommand = (props: { editor: Editor }) => boolean
|
|
123
|
+
|
|
60
124
|
export type Attribute = {
|
|
61
125
|
default: any,
|
|
62
126
|
rendered?: boolean,
|
|
63
|
-
renderHTML?: ((attributes:
|
|
64
|
-
parseHTML?: ((element: HTMLElement) =>
|
|
127
|
+
renderHTML?: ((attributes: Record<string, any>) => Record<string, any> | null) | null,
|
|
128
|
+
parseHTML?: ((element: HTMLElement) => any | null) | null,
|
|
65
129
|
keepOnSplit: boolean,
|
|
66
130
|
}
|
|
67
131
|
|
|
@@ -84,22 +148,18 @@ export type GlobalAttributes = {
|
|
|
84
148
|
|
|
85
149
|
export type PickValue<T, K extends keyof T> = T[K]
|
|
86
150
|
|
|
87
|
-
export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I)=>void)
|
|
151
|
+
export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void)
|
|
88
152
|
? I
|
|
89
153
|
: never
|
|
90
154
|
|
|
91
155
|
export type Diff<T extends keyof any, U extends keyof any> =
|
|
92
156
|
({ [P in T]: P } & { [P in U]: never } & { [x: string]: never })[T]
|
|
93
157
|
|
|
94
|
-
export type Overwrite<T, U> = Pick<T, Diff<keyof T, keyof U>> & U
|
|
158
|
+
export type Overwrite<T, U> = Pick<T, Diff<keyof T, keyof U>> & U
|
|
95
159
|
|
|
96
|
-
export type
|
|
97
|
-
[key: string]: any
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export type ValuesOf<T> = T[keyof T];
|
|
160
|
+
export type ValuesOf<T> = T[keyof T]
|
|
101
161
|
|
|
102
|
-
export type KeysWithTypeOf<T, Type> = ({[P in keyof T]: T[P] extends Type ? P : never })[keyof T]
|
|
162
|
+
export type KeysWithTypeOf<T, Type> = ({ [P in keyof T]: T[P] extends Type ? P : never })[keyof T]
|
|
103
163
|
|
|
104
164
|
export type NodeViewProps = {
|
|
105
165
|
editor: Editor,
|
|
@@ -108,45 +168,51 @@ export type NodeViewProps = {
|
|
|
108
168
|
selected: boolean,
|
|
109
169
|
extension: Node,
|
|
110
170
|
getPos: () => number,
|
|
111
|
-
updateAttributes: (attributes:
|
|
171
|
+
updateAttributes: (attributes: Record<string, any>) => void,
|
|
172
|
+
deleteNode: () => void,
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export interface NodeViewRendererOptions {
|
|
176
|
+
stopEvent: ((props: {
|
|
177
|
+
event: Event
|
|
178
|
+
}) => boolean) | null,
|
|
179
|
+
ignoreMutation: ((props: {
|
|
180
|
+
mutation: MutationRecord | { type: 'selection', target: Element }
|
|
181
|
+
}) => boolean) | null,
|
|
112
182
|
}
|
|
113
183
|
|
|
114
184
|
export type NodeViewRendererProps = {
|
|
115
185
|
editor: Editor,
|
|
116
186
|
node: ProseMirrorNode,
|
|
117
187
|
getPos: (() => number) | boolean,
|
|
118
|
-
HTMLAttributes:
|
|
188
|
+
HTMLAttributes: Record<string, any>,
|
|
119
189
|
decorations: Decoration[],
|
|
120
190
|
extension: Node,
|
|
121
191
|
}
|
|
122
192
|
|
|
123
193
|
export type NodeViewRenderer = (props: NodeViewRendererProps) => (NodeView | {})
|
|
124
194
|
|
|
125
|
-
export type
|
|
195
|
+
export type AnyCommands = Record<string, (...args: any[]) => Command>
|
|
196
|
+
|
|
197
|
+
export type UnionCommands<T = Command> = UnionToIntersection<ValuesOf<Pick<Commands<T>, KeysWithTypeOf<Commands<T>, {}>>>>
|
|
126
198
|
|
|
127
199
|
export type RawCommands = {
|
|
128
|
-
[Item in keyof UnionCommands]: UnionCommands[Item]
|
|
129
|
-
? (...args: Parameters<UnionCommands[Item]>) => Command
|
|
130
|
-
: never
|
|
200
|
+
[Item in keyof UnionCommands]: UnionCommands<Command>[Item]
|
|
131
201
|
}
|
|
132
202
|
|
|
133
203
|
export type SingleCommands = {
|
|
134
|
-
[Item in keyof
|
|
135
|
-
? (...args: Parameters<RawCommands[Item]>) => boolean
|
|
136
|
-
: never
|
|
204
|
+
[Item in keyof UnionCommands]: UnionCommands<boolean>[Item]
|
|
137
205
|
}
|
|
138
206
|
|
|
139
207
|
export type ChainedCommands = {
|
|
140
|
-
[Item in keyof
|
|
141
|
-
? (...args: Parameters<RawCommands[Item]>) => ChainedCommands
|
|
142
|
-
: never
|
|
208
|
+
[Item in keyof UnionCommands]: UnionCommands<ChainedCommands>[Item]
|
|
143
209
|
} & {
|
|
144
210
|
run: () => boolean
|
|
145
211
|
}
|
|
146
212
|
|
|
147
213
|
export type CanCommands = SingleCommands & { chain: () => ChainedCommands }
|
|
148
214
|
|
|
149
|
-
export type FocusPosition = 'start' | 'end' | number | boolean | null
|
|
215
|
+
export type FocusPosition = 'start' | 'end' | 'all' | number | boolean | null
|
|
150
216
|
|
|
151
217
|
export type Range = {
|
|
152
218
|
from: number,
|
|
@@ -166,3 +232,19 @@ export type MarkRange = {
|
|
|
166
232
|
}
|
|
167
233
|
|
|
168
234
|
export type Predicate = (node: ProseMirrorNode) => boolean
|
|
235
|
+
|
|
236
|
+
export type NodeWithPos = {
|
|
237
|
+
node: ProseMirrorNode,
|
|
238
|
+
pos: number,
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export type TextSerializer = (props: {
|
|
242
|
+
node: ProseMirrorNode,
|
|
243
|
+
pos: number,
|
|
244
|
+
parent: ProseMirrorNode,
|
|
245
|
+
index: number,
|
|
246
|
+
}) => string
|
|
247
|
+
|
|
248
|
+
export type ExtendedRegExpMatchArray = RegExpMatchArray & {
|
|
249
|
+
data?: Record<string, any>,
|
|
250
|
+
}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { MaybeReturnType } from '../types'
|
|
2
|
+
import { isFunction } from './isFunction'
|
|
3
|
+
|
|
1
4
|
/**
|
|
2
5
|
* Optionally calls `value` as a function.
|
|
3
6
|
* Otherwise it is returned directly.
|
|
@@ -5,8 +8,8 @@
|
|
|
5
8
|
* @param context Optional context to bind to function.
|
|
6
9
|
* @param props Optional props to pass to function.
|
|
7
10
|
*/
|
|
8
|
-
export
|
|
9
|
-
if (
|
|
11
|
+
export function callOrReturn<T>(value: T, context: any = undefined, ...props: any[]): MaybeReturnType<T> {
|
|
12
|
+
if (isFunction(value)) {
|
|
10
13
|
if (context) {
|
|
11
14
|
return value.bind(context)(...props)
|
|
12
15
|
}
|
|
@@ -14,5 +17,5 @@ export default function callOrReturn(value: any, context: any = undefined, ...pr
|
|
|
14
17
|
return value(...props)
|
|
15
18
|
}
|
|
16
19
|
|
|
17
|
-
return value
|
|
20
|
+
return value as MaybeReturnType<T>
|
|
18
21
|
}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
export
|
|
1
|
+
export function createStyleTag(style: string): HTMLStyleElement {
|
|
2
|
+
const tipTapStyleTag = (<HTMLStyleElement>document.querySelector('style[data-tiptap-style]'))
|
|
3
|
+
|
|
4
|
+
if (tipTapStyleTag !== null) {
|
|
5
|
+
return tipTapStyleTag
|
|
6
|
+
}
|
|
7
|
+
|
|
2
8
|
const styleNode = document.createElement('style')
|
|
3
9
|
|
|
10
|
+
styleNode.setAttribute('data-tiptap-style', '')
|
|
4
11
|
styleNode.innerHTML = style
|
|
5
12
|
document.getElementsByTagName('head')[0].appendChild(styleNode)
|
|
6
13
|
|
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
import { AnyObject } from '../types'
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Remove a property or an array of properties from an object
|
|
5
3
|
* @param obj Object
|
|
6
4
|
* @param key Key to remove
|
|
7
5
|
*/
|
|
8
|
-
export
|
|
6
|
+
export function deleteProps(obj: Record<string, any>, propOrProps: string | string[]): Record<string, any> {
|
|
9
7
|
const props = typeof propOrProps === 'string'
|
|
10
8
|
? [propOrProps]
|
|
11
9
|
: propOrProps
|
|
12
10
|
|
|
13
11
|
return Object
|
|
14
12
|
.keys(obj)
|
|
15
|
-
.reduce((newObj:
|
|
13
|
+
.reduce((newObj: Record<string, any>, prop) => {
|
|
16
14
|
if (!props.includes(prop)) {
|
|
17
15
|
newObj[prop] = obj[prop]
|
|
18
16
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
const element = parser.parseFromString(htmlString, 'text/html').body
|
|
1
|
+
export function elementFromString(value: string): HTMLElement {
|
|
2
|
+
// add a wrapper to preserve leading and trailing whitespace
|
|
3
|
+
const wrappedValue = `<body>${value}</body>`
|
|
5
4
|
|
|
6
|
-
return
|
|
5
|
+
return new window.DOMParser().parseFromString(wrappedValue, 'text/html').body
|
|
7
6
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export
|
|
1
|
+
export function fromString(value: any): any {
|
|
2
2
|
if (typeof value !== 'string') {
|
|
3
3
|
return value
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
-
if (value.match(
|
|
6
|
+
if (value.match(/^[+-]?(?:\d*\.)?\d+$/)) {
|
|
7
7
|
return Number(value)
|
|
8
8
|
}
|
|
9
9
|
|
package/src/utilities/isClass.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export
|
|
2
|
-
return Object.keys(
|
|
1
|
+
export function isEmptyObject(value = {}): boolean {
|
|
2
|
+
return Object.keys(value).length === 0 && value.constructor === Object
|
|
3
3
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import isClass from './isClass'
|
|
1
|
+
import { isClass } from './isClass'
|
|
2
2
|
|
|
3
|
-
export
|
|
3
|
+
export function isObject(value: any): boolean {
|
|
4
4
|
return (
|
|
5
|
-
|
|
6
|
-
&& typeof
|
|
7
|
-
&& !Array.isArray(
|
|
8
|
-
&& !isClass(
|
|
5
|
+
value
|
|
6
|
+
&& typeof value === 'object'
|
|
7
|
+
&& !Array.isArray(value)
|
|
8
|
+
&& !isClass(value)
|
|
9
9
|
)
|
|
10
10
|
}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
// see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts
|
|
2
2
|
|
|
3
|
-
function getType(
|
|
4
|
-
return Object.prototype.toString.call(
|
|
3
|
+
function getType(value: any): string {
|
|
4
|
+
return Object.prototype.toString.call(value).slice(8, -1)
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
export
|
|
8
|
-
if (getType(
|
|
9
|
-
|
|
7
|
+
export function isPlainObject(value: any): value is Record<string, any> {
|
|
8
|
+
if (getType(value) !== 'Object') {
|
|
9
|
+
return false
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype
|
|
10
13
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function isiOS(): boolean {
|
|
2
|
+
return [
|
|
3
|
+
'iPad Simulator',
|
|
4
|
+
'iPhone Simulator',
|
|
5
|
+
'iPod Simulator',
|
|
6
|
+
'iPad',
|
|
7
|
+
'iPhone',
|
|
8
|
+
'iPod',
|
|
9
|
+
].includes(navigator.platform)
|
|
10
|
+
// iPad on iOS 13 detection
|
|
11
|
+
|| (navigator.userAgent.includes('Mac') && 'ontouchend' in document)
|
|
12
|
+
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export default function mergeAttributes(...objects: AnyObject[]): AnyObject {
|
|
1
|
+
export function mergeAttributes(...objects: Record<string, any>[]): Record<string, any> {
|
|
4
2
|
return objects
|
|
5
3
|
.filter(item => !!item)
|
|
6
4
|
.reduce((items, item) => {
|
|
@@ -11,6 +9,7 @@ export default function mergeAttributes(...objects: AnyObject[]): AnyObject {
|
|
|
11
9
|
|
|
12
10
|
if (!exists) {
|
|
13
11
|
mergedAttributes[key] = value
|
|
12
|
+
|
|
14
13
|
return
|
|
15
14
|
}
|
|
16
15
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import isPlainObject from './isPlainObject'
|
|
1
|
+
import { isPlainObject } from './isPlainObject'
|
|
3
2
|
|
|
4
|
-
export
|
|
3
|
+
export function mergeDeep(target: Record<string, any>, source: Record<string, any>): Record<string, any> {
|
|
5
4
|
const output = { ...target }
|
|
6
5
|
|
|
7
6
|
if (isPlainObject(target) && isPlainObject(source)) {
|
package/src/utilities/minMax.ts
CHANGED
|
@@ -1,18 +1,30 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isRegExp } from './isRegExp'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Check if object1 includes object2
|
|
5
5
|
* @param object1 Object
|
|
6
6
|
* @param object2 Object
|
|
7
7
|
*/
|
|
8
|
-
export
|
|
8
|
+
export function objectIncludes(
|
|
9
|
+
object1: Record<string, any>,
|
|
10
|
+
object2: Record<string, any>,
|
|
11
|
+
options: { strict: boolean } = { strict: true },
|
|
12
|
+
): boolean {
|
|
9
13
|
const keys = Object.keys(object2)
|
|
10
14
|
|
|
11
15
|
if (!keys.length) {
|
|
12
16
|
return true
|
|
13
17
|
}
|
|
14
18
|
|
|
15
|
-
return
|
|
16
|
-
.
|
|
17
|
-
|
|
19
|
+
return keys.every(key => {
|
|
20
|
+
if (options.strict) {
|
|
21
|
+
return object2[key] === object1[key]
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (isRegExp(object2[key])) {
|
|
25
|
+
return object2[key].test(object1[key])
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return object2[key] === object1[key]
|
|
29
|
+
})
|
|
18
30
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Removes duplicated values within an array.
|
|
3
|
+
* Supports numbers, strings and objects.
|
|
4
|
+
*/
|
|
5
|
+
export function removeDuplicates<T>(array: T[], by = JSON.stringify): T[] {
|
|
6
|
+
const seen: Record<any, any> = {}
|
|
7
|
+
|
|
8
|
+
return array.filter(item => {
|
|
9
|
+
const key = by(item)
|
|
10
|
+
|
|
11
|
+
return Object.prototype.hasOwnProperty.call(seen, key)
|
|
12
|
+
? false
|
|
13
|
+
: (seen[key] = true)
|
|
14
|
+
})
|
|
15
|
+
}
|