@tiptap/core 2.1.0-rc.0 → 2.1.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +94 -31
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +92 -32
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +94 -31
- package/dist/index.umd.js.map +1 -1
- package/dist/packages/core/src/CommandManager.d.ts +2 -2
- package/dist/packages/core/src/Editor.d.ts +8 -4
- package/dist/packages/core/src/Extension.d.ts +7 -7
- package/dist/packages/core/src/ExtensionManager.d.ts +2 -2
- package/dist/packages/core/src/InputRule.d.ts +2 -2
- package/dist/packages/core/src/Mark.d.ts +6 -6
- package/dist/packages/core/src/Node.d.ts +5 -5
- package/dist/packages/core/src/NodeView.d.ts +3 -3
- package/dist/packages/core/src/PasteRule.d.ts +2 -2
- package/dist/packages/core/src/commands/blur.d.ts +1 -1
- package/dist/packages/core/src/commands/clearContent.d.ts +1 -1
- package/dist/packages/core/src/commands/clearNodes.d.ts +1 -1
- package/dist/packages/core/src/commands/command.d.ts +1 -1
- package/dist/packages/core/src/commands/createParagraphNear.d.ts +1 -1
- package/dist/packages/core/src/commands/cut.d.ts +15 -0
- package/dist/packages/core/src/commands/deleteCurrentNode.d.ts +1 -1
- package/dist/packages/core/src/commands/deleteNode.d.ts +1 -1
- package/dist/packages/core/src/commands/deleteRange.d.ts +1 -1
- package/dist/packages/core/src/commands/deleteSelection.d.ts +1 -1
- package/dist/packages/core/src/commands/enter.d.ts +1 -1
- package/dist/packages/core/src/commands/exitCode.d.ts +1 -1
- package/dist/packages/core/src/commands/extendMarkRange.d.ts +1 -1
- package/dist/packages/core/src/commands/first.d.ts +1 -1
- package/dist/packages/core/src/commands/focus.d.ts +1 -1
- package/dist/packages/core/src/commands/forEach.d.ts +1 -1
- package/dist/packages/core/src/commands/index.d.ts +51 -50
- package/dist/packages/core/src/commands/insertContent.d.ts +1 -1
- package/dist/packages/core/src/commands/insertContentAt.d.ts +1 -1
- package/dist/packages/core/src/commands/join.d.ts +1 -1
- package/dist/packages/core/src/commands/keyboardShortcut.d.ts +1 -1
- package/dist/packages/core/src/commands/lift.d.ts +1 -1
- package/dist/packages/core/src/commands/liftEmptyBlock.d.ts +1 -1
- package/dist/packages/core/src/commands/liftListItem.d.ts +1 -1
- package/dist/packages/core/src/commands/newlineInCode.d.ts +1 -1
- package/dist/packages/core/src/commands/resetAttributes.d.ts +1 -1
- package/dist/packages/core/src/commands/scrollIntoView.d.ts +1 -1
- package/dist/packages/core/src/commands/selectAll.d.ts +1 -1
- package/dist/packages/core/src/commands/selectNodeBackward.d.ts +1 -1
- package/dist/packages/core/src/commands/selectNodeForward.d.ts +1 -1
- package/dist/packages/core/src/commands/selectParentNode.d.ts +1 -1
- package/dist/packages/core/src/commands/selectTextblockEnd.d.ts +1 -1
- package/dist/packages/core/src/commands/selectTextblockStart.d.ts +1 -1
- package/dist/packages/core/src/commands/setContent.d.ts +1 -1
- package/dist/packages/core/src/commands/setMark.d.ts +1 -1
- package/dist/packages/core/src/commands/setMeta.d.ts +1 -1
- package/dist/packages/core/src/commands/setNode.d.ts +1 -1
- package/dist/packages/core/src/commands/setNodeSelection.d.ts +1 -1
- package/dist/packages/core/src/commands/setTextSelection.d.ts +1 -1
- package/dist/packages/core/src/commands/sinkListItem.d.ts +1 -1
- package/dist/packages/core/src/commands/splitBlock.d.ts +1 -1
- package/dist/packages/core/src/commands/splitListItem.d.ts +1 -1
- package/dist/packages/core/src/commands/toggleList.d.ts +1 -1
- package/dist/packages/core/src/commands/toggleMark.d.ts +1 -1
- package/dist/packages/core/src/commands/toggleNode.d.ts +1 -1
- package/dist/packages/core/src/commands/toggleWrap.d.ts +1 -1
- package/dist/packages/core/src/commands/undoInputRule.d.ts +1 -1
- package/dist/packages/core/src/commands/unsetAllMarks.d.ts +1 -1
- package/dist/packages/core/src/commands/unsetMark.d.ts +1 -1
- package/dist/packages/core/src/commands/updateAttributes.d.ts +1 -1
- package/dist/packages/core/src/commands/wrapIn.d.ts +1 -1
- package/dist/packages/core/src/commands/wrapInList.d.ts +1 -1
- package/dist/packages/core/src/extensions/clipboardTextSerializer.d.ts +1 -1
- package/dist/packages/core/src/extensions/commands.d.ts +2 -2
- 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 +6 -6
- package/dist/packages/core/src/extensions/keymap.d.ts +1 -1
- package/dist/packages/core/src/extensions/tabindex.d.ts +1 -1
- package/dist/packages/core/src/helpers/createDocument.d.ts +1 -1
- package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +1 -1
- package/dist/packages/core/src/helpers/findChildren.d.ts +1 -1
- package/dist/packages/core/src/helpers/findChildrenInRange.d.ts +1 -1
- 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 +1 -1
- package/dist/packages/core/src/helpers/generateJSON.d.ts +1 -1
- package/dist/packages/core/src/helpers/generateText.d.ts +1 -1
- package/dist/packages/core/src/helpers/getAttributesFromExtensions.d.ts +1 -1
- package/dist/packages/core/src/helpers/getChangedRanges.d.ts +1 -1
- package/dist/packages/core/src/helpers/getDebugJSON.d.ts +1 -1
- package/dist/packages/core/src/helpers/getExtensionField.d.ts +1 -1
- package/dist/packages/core/src/helpers/getMarkRange.d.ts +1 -1
- package/dist/packages/core/src/helpers/getMarksBetween.d.ts +1 -1
- package/dist/packages/core/src/helpers/getNodeAtPosition.d.ts +11 -0
- package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +1 -1
- package/dist/packages/core/src/helpers/getSchema.d.ts +2 -2
- package/dist/packages/core/src/helpers/getSchemaByResolvedExtensions.d.ts +2 -2
- package/dist/packages/core/src/helpers/getSplittedAttributes.d.ts +1 -1
- package/dist/packages/core/src/helpers/getText.d.ts +1 -1
- package/dist/packages/core/src/helpers/getTextBetween.d.ts +1 -1
- package/dist/packages/core/src/helpers/getTextSerializersFromSchema.d.ts +1 -1
- package/dist/packages/core/src/helpers/index.d.ts +50 -47
- package/dist/packages/core/src/helpers/injectExtensionAttributesToParseRule.d.ts +1 -1
- package/dist/packages/core/src/helpers/isAtEndOfNode.d.ts +2 -0
- package/dist/packages/core/src/helpers/isAtStartOfNode.d.ts +2 -0
- package/dist/packages/core/src/helpers/isExtensionRulesEnabled.d.ts +1 -1
- package/dist/packages/core/src/helpers/isList.d.ts +1 -1
- package/dist/packages/core/src/helpers/resolveFocusPosition.d.ts +1 -1
- package/dist/packages/core/src/helpers/splitExtensions.d.ts +4 -4
- package/dist/packages/core/src/index.d.ts +15 -15
- package/dist/packages/core/src/inputRules/index.d.ts +5 -5
- package/dist/packages/core/src/inputRules/markInputRule.d.ts +2 -2
- package/dist/packages/core/src/inputRules/nodeInputRule.d.ts +2 -2
- package/dist/packages/core/src/inputRules/textInputRule.d.ts +1 -1
- package/dist/packages/core/src/inputRules/textblockTypeInputRule.d.ts +2 -2
- package/dist/packages/core/src/inputRules/wrappingInputRule.d.ts +3 -3
- package/dist/packages/core/src/pasteRules/index.d.ts +3 -3
- package/dist/packages/core/src/pasteRules/markPasteRule.d.ts +2 -2
- package/dist/packages/core/src/pasteRules/nodePasteRule.d.ts +2 -2
- package/dist/packages/core/src/pasteRules/textPasteRule.d.ts +1 -1
- package/dist/packages/core/src/types.d.ts +5 -5
- package/dist/packages/core/src/utilities/callOrReturn.d.ts +1 -1
- package/dist/packages/core/src/utilities/index.d.ts +20 -20
- package/dist/packages/core/src/utilities/isAndroid.d.ts +1 -0
- package/package.json +2 -2
- package/src/CommandManager.ts +4 -8
- package/src/Editor.ts +24 -16
- package/src/Extension.ts +10 -10
- package/src/ExtensionManager.ts +15 -15
- package/src/InputRule.ts +6 -6
- package/src/Mark.ts +9 -9
- package/src/Node.ts +8 -8
- package/src/NodeView.ts +8 -6
- package/src/PasteRule.ts +6 -6
- package/src/commands/blur.ts +1 -1
- package/src/commands/clearContent.ts +1 -1
- package/src/commands/clearNodes.ts +1 -1
- package/src/commands/command.ts +1 -1
- package/src/commands/createParagraphNear.ts +1 -1
- package/src/commands/cut.ts +25 -0
- package/src/commands/deleteCurrentNode.ts +1 -1
- package/src/commands/deleteNode.ts +2 -2
- package/src/commands/deleteRange.ts +1 -1
- package/src/commands/deleteSelection.ts +1 -1
- package/src/commands/enter.ts +1 -1
- package/src/commands/exitCode.ts +1 -1
- package/src/commands/extendMarkRange.ts +3 -3
- package/src/commands/first.ts +1 -1
- package/src/commands/focus.ts +4 -4
- package/src/commands/forEach.ts +1 -1
- package/src/commands/index.ts +51 -50
- package/src/commands/insertContent.ts +1 -1
- package/src/commands/insertContentAt.ts +4 -4
- package/src/commands/join.ts +1 -1
- package/src/commands/keyboardShortcut.ts +3 -3
- package/src/commands/lift.ts +3 -3
- package/src/commands/liftEmptyBlock.ts +1 -1
- package/src/commands/liftListItem.ts +2 -2
- package/src/commands/newlineInCode.ts +1 -1
- package/src/commands/resetAttributes.ts +5 -5
- package/src/commands/scrollIntoView.ts +1 -1
- package/src/commands/selectAll.ts +1 -1
- package/src/commands/selectNodeBackward.ts +1 -1
- package/src/commands/selectNodeForward.ts +1 -1
- package/src/commands/selectParentNode.ts +1 -1
- package/src/commands/selectTextblockEnd.ts +1 -1
- package/src/commands/selectTextblockStart.ts +1 -1
- package/src/commands/setContent.ts +2 -2
- package/src/commands/setMark.ts +4 -4
- package/src/commands/setMeta.ts +1 -1
- package/src/commands/setNode.ts +2 -2
- package/src/commands/setNodeSelection.ts +2 -2
- package/src/commands/setTextSelection.ts +2 -2
- package/src/commands/sinkListItem.ts +2 -2
- package/src/commands/splitBlock.ts +3 -3
- package/src/commands/splitListItem.ts +3 -3
- package/src/commands/toggleList.ts +4 -4
- package/src/commands/toggleMark.ts +3 -3
- package/src/commands/toggleNode.ts +3 -3
- package/src/commands/toggleWrap.ts +3 -3
- package/src/commands/undoInputRule.ts +1 -1
- package/src/commands/unsetAllMarks.ts +1 -1
- package/src/commands/unsetMark.ts +3 -3
- package/src/commands/updateAttributes.ts +4 -4
- package/src/commands/wrapIn.ts +2 -2
- package/src/commands/wrapInList.ts +2 -2
- package/src/extensions/clipboardTextSerializer.ts +3 -3
- package/src/extensions/commands.ts +3 -3
- package/src/extensions/editable.ts +1 -1
- package/src/extensions/focusEvents.ts +1 -1
- package/src/extensions/index.ts +6 -6
- package/src/extensions/keymap.ts +5 -5
- package/src/extensions/tabindex.ts +1 -1
- package/src/helpers/createDocument.ts +2 -2
- package/src/helpers/createNodeFromContent.ts +2 -2
- package/src/helpers/findChildren.ts +1 -1
- package/src/helpers/findChildrenInRange.ts +1 -1
- package/src/helpers/findParentNode.ts +2 -2
- package/src/helpers/findParentNodeClosestToPos.ts +1 -1
- package/src/helpers/generateHTML.ts +3 -3
- package/src/helpers/generateJSON.ts +3 -3
- package/src/helpers/generateText.ts +4 -4
- package/src/helpers/getAttributes.ts +3 -3
- package/src/helpers/getAttributesFromExtensions.ts +4 -4
- package/src/helpers/getChangedRanges.ts +2 -2
- package/src/helpers/getDebugJSON.ts +1 -1
- package/src/helpers/getExtensionField.ts +1 -1
- package/src/helpers/getMarkAttributes.ts +1 -1
- package/src/helpers/getMarkRange.ts +2 -2
- package/src/helpers/getMarksBetween.ts +2 -2
- package/src/helpers/getNodeAtPosition.ts +29 -0
- package/src/helpers/getNodeAttributes.ts +1 -1
- package/src/helpers/getRenderedAttributes.ts +2 -2
- package/src/helpers/getSchema.ts +4 -4
- package/src/helpers/getSchemaByResolvedExtensions.ts +9 -9
- package/src/helpers/getSplittedAttributes.ts +1 -1
- package/src/helpers/getText.ts +2 -2
- package/src/helpers/getTextBetween.ts +1 -1
- package/src/helpers/getTextSerializersFromSchema.ts +1 -1
- package/src/helpers/index.ts +50 -47
- package/src/helpers/injectExtensionAttributesToParseRule.ts +2 -2
- package/src/helpers/isActive.ts +3 -3
- package/src/helpers/isAtEndOfNode.ts +11 -0
- package/src/helpers/isAtStartOfNode.ts +11 -0
- package/src/helpers/isExtensionRulesEnabled.ts +1 -1
- package/src/helpers/isList.ts +5 -5
- package/src/helpers/isMarkActive.ts +3 -3
- package/src/helpers/isNodeActive.ts +3 -3
- package/src/helpers/posToDOMRect.ts +1 -1
- package/src/helpers/resolveFocusPosition.ts +2 -2
- package/src/helpers/splitExtensions.ts +4 -4
- package/src/index.ts +15 -15
- package/src/inputRules/index.ts +5 -5
- package/src/inputRules/markInputRule.ts +5 -6
- package/src/inputRules/nodeInputRule.ts +3 -3
- package/src/inputRules/textInputRule.ts +1 -1
- package/src/inputRules/textblockTypeInputRule.ts +3 -3
- package/src/inputRules/wrappingInputRule.ts +4 -4
- package/src/pasteRules/index.ts +3 -3
- package/src/pasteRules/markPasteRule.ts +4 -4
- package/src/pasteRules/nodePasteRule.ts +3 -3
- package/src/pasteRules/textPasteRule.ts +1 -1
- package/src/types.ts +5 -5
- package/src/utilities/callOrReturn.ts +2 -2
- package/src/utilities/index.ts +20 -20
- package/src/utilities/isAndroid.ts +3 -0
- package/src/utilities/mergeDeep.ts +1 -1
- package/src/utilities/objectIncludes.ts +1 -1
package/dist/index.umd.js
CHANGED
|
@@ -115,9 +115,6 @@
|
|
|
115
115
|
buildProps(tr, shouldDispatch = true) {
|
|
116
116
|
const { rawCommands, editor, state } = this;
|
|
117
117
|
const { view } = editor;
|
|
118
|
-
if (state.storedMarks) {
|
|
119
|
-
tr.setStoredMarks(state.storedMarks);
|
|
120
|
-
}
|
|
121
118
|
const props = {
|
|
122
119
|
tr,
|
|
123
120
|
editor,
|
|
@@ -127,7 +124,7 @@
|
|
|
127
124
|
transaction: tr,
|
|
128
125
|
}),
|
|
129
126
|
dispatch: shouldDispatch ? () => undefined : undefined,
|
|
130
|
-
chain: () => this.createChain(tr),
|
|
127
|
+
chain: () => this.createChain(tr, shouldDispatch),
|
|
131
128
|
can: () => this.createCan(tr),
|
|
132
129
|
get commands() {
|
|
133
130
|
return Object.fromEntries(Object.entries(rawCommands).map(([name, command]) => {
|
|
@@ -1306,6 +1303,17 @@
|
|
|
1306
1303
|
return commands$1.createParagraphNear(state, dispatch);
|
|
1307
1304
|
};
|
|
1308
1305
|
|
|
1306
|
+
const cut = (originRange, targetPos) => ({ editor }) => {
|
|
1307
|
+
const { state } = editor;
|
|
1308
|
+
const contentSlice = state.doc.slice(originRange.from, originRange.to);
|
|
1309
|
+
return editor
|
|
1310
|
+
.chain()
|
|
1311
|
+
.deleteRange(originRange)
|
|
1312
|
+
.insertContentAt(targetPos, contentSlice.content.toJSON())
|
|
1313
|
+
.focus()
|
|
1314
|
+
.run();
|
|
1315
|
+
};
|
|
1316
|
+
|
|
1309
1317
|
const deleteCurrentNode = () => ({ tr, dispatch }) => {
|
|
1310
1318
|
const { selection } = tr;
|
|
1311
1319
|
const currentNode = selection.$anchor.node();
|
|
@@ -1635,7 +1643,7 @@
|
|
|
1635
1643
|
if (content.toString() === '<>') {
|
|
1636
1644
|
return true;
|
|
1637
1645
|
}
|
|
1638
|
-
let { from, to } = typeof position === 'number' ? { from: position, to: position } : position;
|
|
1646
|
+
let { from, to } = typeof position === 'number' ? { from: tr.mapping.map(position), to: tr.mapping.map(position) } : { from: tr.mapping.map(position.from), to: tr.mapping.map(position.to) };
|
|
1639
1647
|
let isOnlyTextContent = true;
|
|
1640
1648
|
let isOnlyBlockContent = true;
|
|
1641
1649
|
const nodes = isFragment(content) ? content : [content];
|
|
@@ -1943,6 +1951,28 @@
|
|
|
1943
1951
|
return true;
|
|
1944
1952
|
};
|
|
1945
1953
|
|
|
1954
|
+
function getMarkAttributes(state, typeOrName) {
|
|
1955
|
+
const type = getMarkType(typeOrName, state.schema);
|
|
1956
|
+
const { from, to, empty } = state.selection;
|
|
1957
|
+
const marks = [];
|
|
1958
|
+
if (empty) {
|
|
1959
|
+
if (state.storedMarks) {
|
|
1960
|
+
marks.push(...state.storedMarks);
|
|
1961
|
+
}
|
|
1962
|
+
marks.push(...state.selection.$head.marks());
|
|
1963
|
+
}
|
|
1964
|
+
else {
|
|
1965
|
+
state.doc.nodesBetween(from, to, node => {
|
|
1966
|
+
marks.push(...node.marks);
|
|
1967
|
+
});
|
|
1968
|
+
}
|
|
1969
|
+
const mark = marks.find(markItem => markItem.type.name === type.name);
|
|
1970
|
+
if (!mark) {
|
|
1971
|
+
return {};
|
|
1972
|
+
}
|
|
1973
|
+
return { ...mark.attrs };
|
|
1974
|
+
}
|
|
1975
|
+
|
|
1946
1976
|
/**
|
|
1947
1977
|
* Returns a new `Transform` based on all steps of the passed transactions.
|
|
1948
1978
|
*/
|
|
@@ -2068,28 +2098,6 @@
|
|
|
2068
2098
|
});
|
|
2069
2099
|
}
|
|
2070
2100
|
|
|
2071
|
-
function getMarkAttributes(state, typeOrName) {
|
|
2072
|
-
const type = getMarkType(typeOrName, state.schema);
|
|
2073
|
-
const { from, to, empty } = state.selection;
|
|
2074
|
-
const marks = [];
|
|
2075
|
-
if (empty) {
|
|
2076
|
-
if (state.storedMarks) {
|
|
2077
|
-
marks.push(...state.storedMarks);
|
|
2078
|
-
}
|
|
2079
|
-
marks.push(...state.selection.$head.marks());
|
|
2080
|
-
}
|
|
2081
|
-
else {
|
|
2082
|
-
state.doc.nodesBetween(from, to, node => {
|
|
2083
|
-
marks.push(...node.marks);
|
|
2084
|
-
});
|
|
2085
|
-
}
|
|
2086
|
-
const mark = marks.find(markItem => markItem.type.name === type.name);
|
|
2087
|
-
if (!mark) {
|
|
2088
|
-
return {};
|
|
2089
|
-
}
|
|
2090
|
-
return { ...mark.attrs };
|
|
2091
|
-
}
|
|
2092
|
-
|
|
2093
2101
|
function getNodeAttributes(state, typeOrName) {
|
|
2094
2102
|
const type = getNodeType(typeOrName, state.schema);
|
|
2095
2103
|
const { from, to } = state.selection;
|
|
@@ -2261,6 +2269,30 @@
|
|
|
2261
2269
|
return marks;
|
|
2262
2270
|
}
|
|
2263
2271
|
|
|
2272
|
+
/**
|
|
2273
|
+
* Finds the first node of a given type or name in the current selection.
|
|
2274
|
+
* @param state The editor state.
|
|
2275
|
+
* @param typeOrName The node type or name.
|
|
2276
|
+
* @param pos The position to start searching from.
|
|
2277
|
+
* @param maxDepth The maximum depth to search.
|
|
2278
|
+
* @returns The node and the depth as an array.
|
|
2279
|
+
*/
|
|
2280
|
+
const getNodeAtPosition = (state, typeOrName, pos, maxDepth = 20) => {
|
|
2281
|
+
const $pos = state.doc.resolve(pos);
|
|
2282
|
+
let currentDepth = maxDepth;
|
|
2283
|
+
let node = null;
|
|
2284
|
+
while (currentDepth > 0 && node === null) {
|
|
2285
|
+
const currentNode = $pos.node(currentDepth);
|
|
2286
|
+
if ((currentNode === null || currentNode === void 0 ? void 0 : currentNode.type.name) === typeOrName) {
|
|
2287
|
+
node = currentNode;
|
|
2288
|
+
}
|
|
2289
|
+
else {
|
|
2290
|
+
currentDepth -= 1;
|
|
2291
|
+
}
|
|
2292
|
+
}
|
|
2293
|
+
return [node, currentDepth];
|
|
2294
|
+
};
|
|
2295
|
+
|
|
2264
2296
|
function getSplittedAttributes(extensionAttributes, typeName, attributes) {
|
|
2265
2297
|
return Object.fromEntries(Object
|
|
2266
2298
|
.entries(attributes)
|
|
@@ -2351,6 +2383,22 @@
|
|
|
2351
2383
|
return false;
|
|
2352
2384
|
}
|
|
2353
2385
|
|
|
2386
|
+
const istAtEndOfNode = (state) => {
|
|
2387
|
+
const { $from, $to } = state.selection;
|
|
2388
|
+
if ($to.parentOffset < $to.parent.nodeSize - 2 || $from.pos !== $to.pos) {
|
|
2389
|
+
return false;
|
|
2390
|
+
}
|
|
2391
|
+
return true;
|
|
2392
|
+
};
|
|
2393
|
+
|
|
2394
|
+
const isAtStartOfNode = (state) => {
|
|
2395
|
+
const { $from, $to } = state.selection;
|
|
2396
|
+
if ($from.parentOffset > 0 || $from.pos !== $to.pos) {
|
|
2397
|
+
return false;
|
|
2398
|
+
}
|
|
2399
|
+
return true;
|
|
2400
|
+
};
|
|
2401
|
+
|
|
2354
2402
|
function isList(name, extensions) {
|
|
2355
2403
|
const { nodeExtensions } = splitExtensions(extensions);
|
|
2356
2404
|
const extension = nodeExtensions.find(item => item.name === name);
|
|
@@ -2958,6 +3006,7 @@
|
|
|
2958
3006
|
clearNodes: clearNodes,
|
|
2959
3007
|
command: command,
|
|
2960
3008
|
createParagraphNear: createParagraphNear,
|
|
3009
|
+
cut: cut,
|
|
2961
3010
|
deleteCurrentNode: deleteCurrentNode,
|
|
2962
3011
|
deleteNode: deleteNode,
|
|
2963
3012
|
deleteRange: deleteRange,
|
|
@@ -3491,6 +3540,7 @@ img.ProseMirror-separator {
|
|
|
3491
3540
|
});
|
|
3492
3541
|
this.view.updateState(newState);
|
|
3493
3542
|
this.createNodeViews();
|
|
3543
|
+
this.prependClass();
|
|
3494
3544
|
// Let’s store the editor instance in the DOM element.
|
|
3495
3545
|
// So we’ll have access to it for tests.
|
|
3496
3546
|
const dom = this.view.dom;
|
|
@@ -3504,6 +3554,12 @@ img.ProseMirror-separator {
|
|
|
3504
3554
|
nodeViews: this.extensionManager.nodeViews,
|
|
3505
3555
|
});
|
|
3506
3556
|
}
|
|
3557
|
+
/**
|
|
3558
|
+
* Prepend class name to element.
|
|
3559
|
+
*/
|
|
3560
|
+
prependClass() {
|
|
3561
|
+
this.view.dom.className = `tiptap ${this.view.dom.className}`;
|
|
3562
|
+
}
|
|
3507
3563
|
captureTransaction(fn) {
|
|
3508
3564
|
this.isCapturingTransaction = true;
|
|
3509
3565
|
fn();
|
|
@@ -3654,7 +3710,6 @@ img.ProseMirror-separator {
|
|
|
3654
3710
|
const { tr } = state;
|
|
3655
3711
|
const captureGroup = match[match.length - 1];
|
|
3656
3712
|
const fullMatch = match[0];
|
|
3657
|
-
let markEnd = range.to;
|
|
3658
3713
|
if (captureGroup) {
|
|
3659
3714
|
const startSpaces = fullMatch.search(/\S/);
|
|
3660
3715
|
const textStart = range.from + fullMatch.indexOf(captureGroup);
|
|
@@ -3675,7 +3730,7 @@ img.ProseMirror-separator {
|
|
|
3675
3730
|
if (textStart > range.from) {
|
|
3676
3731
|
tr.delete(range.from + startSpaces, textStart);
|
|
3677
3732
|
}
|
|
3678
|
-
markEnd = range.from + startSpaces + captureGroup.length;
|
|
3733
|
+
const markEnd = range.from + startSpaces + captureGroup.length;
|
|
3679
3734
|
tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}));
|
|
3680
3735
|
tr.removeStoredMark(config.type);
|
|
3681
3736
|
}
|
|
@@ -3963,6 +4018,10 @@ img.ProseMirror-separator {
|
|
|
3963
4018
|
}
|
|
3964
4019
|
}
|
|
3965
4020
|
|
|
4021
|
+
function isAndroid() {
|
|
4022
|
+
return navigator.platform === 'Android' || /android/i.test(navigator.userAgent);
|
|
4023
|
+
}
|
|
4024
|
+
|
|
3966
4025
|
class NodeView {
|
|
3967
4026
|
constructor(component, props, options) {
|
|
3968
4027
|
this.isDragging = false;
|
|
@@ -4103,13 +4162,14 @@ img.ProseMirror-separator {
|
|
|
4103
4162
|
if (mutation.type === 'selection') {
|
|
4104
4163
|
return false;
|
|
4105
4164
|
}
|
|
4106
|
-
// try to prevent a bug on iOS that will break node views on enter
|
|
4165
|
+
// try to prevent a bug on iOS and Android that will break node views on enter
|
|
4107
4166
|
// this is because ProseMirror can’t preventDispatch on enter
|
|
4108
4167
|
// this will lead to a re-render of the node view on enter
|
|
4109
4168
|
// see: https://github.com/ueberdosis/tiptap/issues/1214
|
|
4169
|
+
// see: https://github.com/ueberdosis/tiptap/issues/2534
|
|
4110
4170
|
if (this.dom.contains(mutation.target)
|
|
4111
4171
|
&& mutation.type === 'childList'
|
|
4112
|
-
&& isiOS()
|
|
4172
|
+
&& (isiOS() || isAndroid())
|
|
4113
4173
|
&& this.editor.isFocused) {
|
|
4114
4174
|
const changedNodes = [
|
|
4115
4175
|
...Array.from(mutation.addedNodes),
|
|
@@ -4312,6 +4372,7 @@ img.ProseMirror-separator {
|
|
|
4312
4372
|
exports.getMarkRange = getMarkRange;
|
|
4313
4373
|
exports.getMarkType = getMarkType;
|
|
4314
4374
|
exports.getMarksBetween = getMarksBetween;
|
|
4375
|
+
exports.getNodeAtPosition = getNodeAtPosition;
|
|
4315
4376
|
exports.getNodeAttributes = getNodeAttributes;
|
|
4316
4377
|
exports.getNodeType = getNodeType;
|
|
4317
4378
|
exports.getRenderedAttributes = getRenderedAttributes;
|
|
@@ -4327,6 +4388,7 @@ img.ProseMirror-separator {
|
|
|
4327
4388
|
exports.injectExtensionAttributesToParseRule = injectExtensionAttributesToParseRule;
|
|
4328
4389
|
exports.inputRulesPlugin = inputRulesPlugin;
|
|
4329
4390
|
exports.isActive = isActive;
|
|
4391
|
+
exports.isAtStartOfNode = isAtStartOfNode;
|
|
4330
4392
|
exports.isEmptyObject = isEmptyObject;
|
|
4331
4393
|
exports.isExtensionRulesEnabled = isExtensionRulesEnabled;
|
|
4332
4394
|
exports.isFunction = isFunction;
|
|
@@ -4342,6 +4404,7 @@ img.ProseMirror-separator {
|
|
|
4342
4404
|
exports.isString = isString;
|
|
4343
4405
|
exports.isTextSelection = isTextSelection;
|
|
4344
4406
|
exports.isiOS = isiOS;
|
|
4407
|
+
exports.istAtEndOfNode = istAtEndOfNode;
|
|
4345
4408
|
exports.markInputRule = markInputRule;
|
|
4346
4409
|
exports.markPasteRule = markPasteRule;
|
|
4347
4410
|
exports.mergeAttributes = mergeAttributes;
|