@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.cjs
CHANGED
|
@@ -121,9 +121,6 @@ class CommandManager {
|
|
|
121
121
|
buildProps(tr, shouldDispatch = true) {
|
|
122
122
|
const { rawCommands, editor, state } = this;
|
|
123
123
|
const { view } = editor;
|
|
124
|
-
if (state.storedMarks) {
|
|
125
|
-
tr.setStoredMarks(state.storedMarks);
|
|
126
|
-
}
|
|
127
124
|
const props = {
|
|
128
125
|
tr,
|
|
129
126
|
editor,
|
|
@@ -133,7 +130,7 @@ class CommandManager {
|
|
|
133
130
|
transaction: tr,
|
|
134
131
|
}),
|
|
135
132
|
dispatch: shouldDispatch ? () => undefined : undefined,
|
|
136
|
-
chain: () => this.createChain(tr),
|
|
133
|
+
chain: () => this.createChain(tr, shouldDispatch),
|
|
137
134
|
can: () => this.createCan(tr),
|
|
138
135
|
get commands() {
|
|
139
136
|
return Object.fromEntries(Object.entries(rawCommands).map(([name, command]) => {
|
|
@@ -1312,6 +1309,17 @@ const createParagraphNear = () => ({ state, dispatch }) => {
|
|
|
1312
1309
|
return commands$1.createParagraphNear(state, dispatch);
|
|
1313
1310
|
};
|
|
1314
1311
|
|
|
1312
|
+
const cut = (originRange, targetPos) => ({ editor }) => {
|
|
1313
|
+
const { state } = editor;
|
|
1314
|
+
const contentSlice = state.doc.slice(originRange.from, originRange.to);
|
|
1315
|
+
return editor
|
|
1316
|
+
.chain()
|
|
1317
|
+
.deleteRange(originRange)
|
|
1318
|
+
.insertContentAt(targetPos, contentSlice.content.toJSON())
|
|
1319
|
+
.focus()
|
|
1320
|
+
.run();
|
|
1321
|
+
};
|
|
1322
|
+
|
|
1315
1323
|
const deleteCurrentNode = () => ({ tr, dispatch }) => {
|
|
1316
1324
|
const { selection } = tr;
|
|
1317
1325
|
const currentNode = selection.$anchor.node();
|
|
@@ -1641,7 +1649,7 @@ const insertContentAt = (position, value, options) => ({ tr, dispatch, editor })
|
|
|
1641
1649
|
if (content.toString() === '<>') {
|
|
1642
1650
|
return true;
|
|
1643
1651
|
}
|
|
1644
|
-
let { from, to } = typeof position === 'number' ? { from: position, to: position } : position;
|
|
1652
|
+
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) };
|
|
1645
1653
|
let isOnlyTextContent = true;
|
|
1646
1654
|
let isOnlyBlockContent = true;
|
|
1647
1655
|
const nodes = isFragment(content) ? content : [content];
|
|
@@ -1949,6 +1957,28 @@ const setContent = (content, emitUpdate = false, parseOptions = {}) => ({ tr, ed
|
|
|
1949
1957
|
return true;
|
|
1950
1958
|
};
|
|
1951
1959
|
|
|
1960
|
+
function getMarkAttributes(state, typeOrName) {
|
|
1961
|
+
const type = getMarkType(typeOrName, state.schema);
|
|
1962
|
+
const { from, to, empty } = state.selection;
|
|
1963
|
+
const marks = [];
|
|
1964
|
+
if (empty) {
|
|
1965
|
+
if (state.storedMarks) {
|
|
1966
|
+
marks.push(...state.storedMarks);
|
|
1967
|
+
}
|
|
1968
|
+
marks.push(...state.selection.$head.marks());
|
|
1969
|
+
}
|
|
1970
|
+
else {
|
|
1971
|
+
state.doc.nodesBetween(from, to, node => {
|
|
1972
|
+
marks.push(...node.marks);
|
|
1973
|
+
});
|
|
1974
|
+
}
|
|
1975
|
+
const mark = marks.find(markItem => markItem.type.name === type.name);
|
|
1976
|
+
if (!mark) {
|
|
1977
|
+
return {};
|
|
1978
|
+
}
|
|
1979
|
+
return { ...mark.attrs };
|
|
1980
|
+
}
|
|
1981
|
+
|
|
1952
1982
|
/**
|
|
1953
1983
|
* Returns a new `Transform` based on all steps of the passed transactions.
|
|
1954
1984
|
*/
|
|
@@ -2074,28 +2104,6 @@ function generateText(doc, extensions, options) {
|
|
|
2074
2104
|
});
|
|
2075
2105
|
}
|
|
2076
2106
|
|
|
2077
|
-
function getMarkAttributes(state, typeOrName) {
|
|
2078
|
-
const type = getMarkType(typeOrName, state.schema);
|
|
2079
|
-
const { from, to, empty } = state.selection;
|
|
2080
|
-
const marks = [];
|
|
2081
|
-
if (empty) {
|
|
2082
|
-
if (state.storedMarks) {
|
|
2083
|
-
marks.push(...state.storedMarks);
|
|
2084
|
-
}
|
|
2085
|
-
marks.push(...state.selection.$head.marks());
|
|
2086
|
-
}
|
|
2087
|
-
else {
|
|
2088
|
-
state.doc.nodesBetween(from, to, node => {
|
|
2089
|
-
marks.push(...node.marks);
|
|
2090
|
-
});
|
|
2091
|
-
}
|
|
2092
|
-
const mark = marks.find(markItem => markItem.type.name === type.name);
|
|
2093
|
-
if (!mark) {
|
|
2094
|
-
return {};
|
|
2095
|
-
}
|
|
2096
|
-
return { ...mark.attrs };
|
|
2097
|
-
}
|
|
2098
|
-
|
|
2099
2107
|
function getNodeAttributes(state, typeOrName) {
|
|
2100
2108
|
const type = getNodeType(typeOrName, state.schema);
|
|
2101
2109
|
const { from, to } = state.selection;
|
|
@@ -2267,6 +2275,30 @@ function getMarksBetween(from, to, doc) {
|
|
|
2267
2275
|
return marks;
|
|
2268
2276
|
}
|
|
2269
2277
|
|
|
2278
|
+
/**
|
|
2279
|
+
* Finds the first node of a given type or name in the current selection.
|
|
2280
|
+
* @param state The editor state.
|
|
2281
|
+
* @param typeOrName The node type or name.
|
|
2282
|
+
* @param pos The position to start searching from.
|
|
2283
|
+
* @param maxDepth The maximum depth to search.
|
|
2284
|
+
* @returns The node and the depth as an array.
|
|
2285
|
+
*/
|
|
2286
|
+
const getNodeAtPosition = (state, typeOrName, pos, maxDepth = 20) => {
|
|
2287
|
+
const $pos = state.doc.resolve(pos);
|
|
2288
|
+
let currentDepth = maxDepth;
|
|
2289
|
+
let node = null;
|
|
2290
|
+
while (currentDepth > 0 && node === null) {
|
|
2291
|
+
const currentNode = $pos.node(currentDepth);
|
|
2292
|
+
if ((currentNode === null || currentNode === void 0 ? void 0 : currentNode.type.name) === typeOrName) {
|
|
2293
|
+
node = currentNode;
|
|
2294
|
+
}
|
|
2295
|
+
else {
|
|
2296
|
+
currentDepth -= 1;
|
|
2297
|
+
}
|
|
2298
|
+
}
|
|
2299
|
+
return [node, currentDepth];
|
|
2300
|
+
};
|
|
2301
|
+
|
|
2270
2302
|
function getSplittedAttributes(extensionAttributes, typeName, attributes) {
|
|
2271
2303
|
return Object.fromEntries(Object
|
|
2272
2304
|
.entries(attributes)
|
|
@@ -2357,6 +2389,22 @@ function isActive(state, name, attributes = {}) {
|
|
|
2357
2389
|
return false;
|
|
2358
2390
|
}
|
|
2359
2391
|
|
|
2392
|
+
const istAtEndOfNode = (state) => {
|
|
2393
|
+
const { $from, $to } = state.selection;
|
|
2394
|
+
if ($to.parentOffset < $to.parent.nodeSize - 2 || $from.pos !== $to.pos) {
|
|
2395
|
+
return false;
|
|
2396
|
+
}
|
|
2397
|
+
return true;
|
|
2398
|
+
};
|
|
2399
|
+
|
|
2400
|
+
const isAtStartOfNode = (state) => {
|
|
2401
|
+
const { $from, $to } = state.selection;
|
|
2402
|
+
if ($from.parentOffset > 0 || $from.pos !== $to.pos) {
|
|
2403
|
+
return false;
|
|
2404
|
+
}
|
|
2405
|
+
return true;
|
|
2406
|
+
};
|
|
2407
|
+
|
|
2360
2408
|
function isList(name, extensions) {
|
|
2361
2409
|
const { nodeExtensions } = splitExtensions(extensions);
|
|
2362
2410
|
const extension = nodeExtensions.find(item => item.name === name);
|
|
@@ -2964,6 +3012,7 @@ var commands = /*#__PURE__*/Object.freeze({
|
|
|
2964
3012
|
clearNodes: clearNodes,
|
|
2965
3013
|
command: command,
|
|
2966
3014
|
createParagraphNear: createParagraphNear,
|
|
3015
|
+
cut: cut,
|
|
2967
3016
|
deleteCurrentNode: deleteCurrentNode,
|
|
2968
3017
|
deleteNode: deleteNode,
|
|
2969
3018
|
deleteRange: deleteRange,
|
|
@@ -3497,6 +3546,7 @@ class Editor extends EventEmitter {
|
|
|
3497
3546
|
});
|
|
3498
3547
|
this.view.updateState(newState);
|
|
3499
3548
|
this.createNodeViews();
|
|
3549
|
+
this.prependClass();
|
|
3500
3550
|
// Let’s store the editor instance in the DOM element.
|
|
3501
3551
|
// So we’ll have access to it for tests.
|
|
3502
3552
|
const dom = this.view.dom;
|
|
@@ -3510,6 +3560,12 @@ class Editor extends EventEmitter {
|
|
|
3510
3560
|
nodeViews: this.extensionManager.nodeViews,
|
|
3511
3561
|
});
|
|
3512
3562
|
}
|
|
3563
|
+
/**
|
|
3564
|
+
* Prepend class name to element.
|
|
3565
|
+
*/
|
|
3566
|
+
prependClass() {
|
|
3567
|
+
this.view.dom.className = `tiptap ${this.view.dom.className}`;
|
|
3568
|
+
}
|
|
3513
3569
|
captureTransaction(fn) {
|
|
3514
3570
|
this.isCapturingTransaction = true;
|
|
3515
3571
|
fn();
|
|
@@ -3660,7 +3716,6 @@ function markInputRule(config) {
|
|
|
3660
3716
|
const { tr } = state;
|
|
3661
3717
|
const captureGroup = match[match.length - 1];
|
|
3662
3718
|
const fullMatch = match[0];
|
|
3663
|
-
let markEnd = range.to;
|
|
3664
3719
|
if (captureGroup) {
|
|
3665
3720
|
const startSpaces = fullMatch.search(/\S/);
|
|
3666
3721
|
const textStart = range.from + fullMatch.indexOf(captureGroup);
|
|
@@ -3681,7 +3736,7 @@ function markInputRule(config) {
|
|
|
3681
3736
|
if (textStart > range.from) {
|
|
3682
3737
|
tr.delete(range.from + startSpaces, textStart);
|
|
3683
3738
|
}
|
|
3684
|
-
markEnd = range.from + startSpaces + captureGroup.length;
|
|
3739
|
+
const markEnd = range.from + startSpaces + captureGroup.length;
|
|
3685
3740
|
tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}));
|
|
3686
3741
|
tr.removeStoredMark(config.type);
|
|
3687
3742
|
}
|
|
@@ -3969,6 +4024,10 @@ class Node {
|
|
|
3969
4024
|
}
|
|
3970
4025
|
}
|
|
3971
4026
|
|
|
4027
|
+
function isAndroid() {
|
|
4028
|
+
return navigator.platform === 'Android' || /android/i.test(navigator.userAgent);
|
|
4029
|
+
}
|
|
4030
|
+
|
|
3972
4031
|
class NodeView {
|
|
3973
4032
|
constructor(component, props, options) {
|
|
3974
4033
|
this.isDragging = false;
|
|
@@ -4109,13 +4168,14 @@ class NodeView {
|
|
|
4109
4168
|
if (mutation.type === 'selection') {
|
|
4110
4169
|
return false;
|
|
4111
4170
|
}
|
|
4112
|
-
// try to prevent a bug on iOS that will break node views on enter
|
|
4171
|
+
// try to prevent a bug on iOS and Android that will break node views on enter
|
|
4113
4172
|
// this is because ProseMirror can’t preventDispatch on enter
|
|
4114
4173
|
// this will lead to a re-render of the node view on enter
|
|
4115
4174
|
// see: https://github.com/ueberdosis/tiptap/issues/1214
|
|
4175
|
+
// see: https://github.com/ueberdosis/tiptap/issues/2534
|
|
4116
4176
|
if (this.dom.contains(mutation.target)
|
|
4117
4177
|
&& mutation.type === 'childList'
|
|
4118
|
-
&& isiOS()
|
|
4178
|
+
&& (isiOS() || isAndroid())
|
|
4119
4179
|
&& this.editor.isFocused) {
|
|
4120
4180
|
const changedNodes = [
|
|
4121
4181
|
...Array.from(mutation.addedNodes),
|
|
@@ -4318,6 +4378,7 @@ exports.getMarkAttributes = getMarkAttributes;
|
|
|
4318
4378
|
exports.getMarkRange = getMarkRange;
|
|
4319
4379
|
exports.getMarkType = getMarkType;
|
|
4320
4380
|
exports.getMarksBetween = getMarksBetween;
|
|
4381
|
+
exports.getNodeAtPosition = getNodeAtPosition;
|
|
4321
4382
|
exports.getNodeAttributes = getNodeAttributes;
|
|
4322
4383
|
exports.getNodeType = getNodeType;
|
|
4323
4384
|
exports.getRenderedAttributes = getRenderedAttributes;
|
|
@@ -4333,6 +4394,7 @@ exports.getTextSerializersFromSchema = getTextSerializersFromSchema;
|
|
|
4333
4394
|
exports.injectExtensionAttributesToParseRule = injectExtensionAttributesToParseRule;
|
|
4334
4395
|
exports.inputRulesPlugin = inputRulesPlugin;
|
|
4335
4396
|
exports.isActive = isActive;
|
|
4397
|
+
exports.isAtStartOfNode = isAtStartOfNode;
|
|
4336
4398
|
exports.isEmptyObject = isEmptyObject;
|
|
4337
4399
|
exports.isExtensionRulesEnabled = isExtensionRulesEnabled;
|
|
4338
4400
|
exports.isFunction = isFunction;
|
|
@@ -4348,6 +4410,7 @@ exports.isRegExp = isRegExp;
|
|
|
4348
4410
|
exports.isString = isString;
|
|
4349
4411
|
exports.isTextSelection = isTextSelection;
|
|
4350
4412
|
exports.isiOS = isiOS;
|
|
4413
|
+
exports.istAtEndOfNode = istAtEndOfNode;
|
|
4351
4414
|
exports.markInputRule = markInputRule;
|
|
4352
4415
|
exports.markPasteRule = markPasteRule;
|
|
4353
4416
|
exports.mergeAttributes = mergeAttributes;
|