prosemirror-utils
Advanced tools
Comparing version 0.1.1 to 0.2.0
@@ -42,5 +42,5 @@ 'use strict'; | ||
// (position: number, node: ProseMirrorNode) → (tr: Transaction) → Transaction | ||
// (position: number) → (tr: Transaction) → Transaction | ||
// Returns a `delete` transaction that removes a node at a given position with the given `node`. | ||
var removeNodeAtPos = function removeNodeAtPos(position, node) { | ||
var removeNodeAtPos = function removeNodeAtPos(position) { | ||
return function (tr) { | ||
@@ -167,2 +167,16 @@ var $pos = tr.doc.resolve(position); | ||
// :: (selection: Selection) → ?number | ||
// Returns position of the previous node | ||
var findPositionOfNodeBefore = function findPositionOfNodeBefore(selection) { | ||
var nodeBefore = selection.$from.nodeBefore; | ||
var maybeSelection = prosemirrorState.Selection.findFrom(selection.$from, -1); | ||
if (maybeSelection && nodeBefore) { | ||
var parent = findParentNodeOfType(nodeBefore.type)(maybeSelection); | ||
if (parent) { | ||
return parent.pos; | ||
} | ||
} | ||
}; | ||
// :: (node: ProseMirrorNode, descend: ?boolean) → [{ node: ProseMirrorNode, pos: number }] | ||
@@ -684,2 +698,12 @@ // Flattens descendants of a given `node`. Doesn't descend into a `node` when `descend` argument is `false`. Defaults to `true`. | ||
// :: (tr: Transaction) → Transaction | ||
// Returns a transaction that deletes previous node from the current selection | ||
var removeNodeBefore = function removeNodeBefore(tr) { | ||
var position = findPositionOfNodeBefore(tr.selection); | ||
if (typeof position === 'number') { | ||
return removeNodeAtPos(position)(tr); | ||
} | ||
return tr; | ||
}; | ||
exports.isNodeSelection = isNodeSelection; | ||
@@ -694,2 +718,3 @@ exports.canInsert = canInsert; | ||
exports.findSelectedNodeOfType = findSelectedNodeOfType; | ||
exports.findPositionOfNodeBefore = findPositionOfNodeBefore; | ||
exports.flatten = flatten; | ||
@@ -730,2 +755,3 @@ exports.findChildren = findChildren; | ||
exports.selectParentNodeOfType = selectParentNodeOfType; | ||
exports.removeNodeBefore = removeNodeBefore; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "prosemirror-utils", | ||
"version": "0.1.1", | ||
"version": "0.2.0", | ||
"description": "Utils library for ProseMirror", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -55,2 +55,6 @@ # Utils library for ProseMirror | ||
* **`findPositionOfNodeBefore`**`(selection: Selection) → ?number`\ | ||
Returns position of the previous node | ||
### Node | ||
@@ -212,2 +216,6 @@ | ||
* **`removeNodeBefore`**`(tr: Transaction) → Transaction`\ | ||
Returns a transaction that deletes previous node from the current selection | ||
## License | ||
@@ -214,0 +222,0 @@ |
@@ -25,2 +25,4 @@ import { Node as ProsemirrorNode, Schema, NodeType, Mark, MarkType, ResolvedPos, Fragment } from 'prosemirror-model'; | ||
export function findPositionOfNodeBefore(selection: Selection): number | undefined; | ||
// Node | ||
@@ -97,2 +99,4 @@ export function flatten(node: ProsemirrorNode, descend?: boolean): {pos: number, node: ProsemirrorNode}[]; | ||
export function selectParentNodeOfType(nodeType: NodeType | NodeType[]): (tr: Transaction) => Transaction; | ||
export function selectParentNodeOfType(nodeType: NodeType | NodeType[]): (tr: Transaction) => Transaction; | ||
export function removeNodeBefore(tr: Transaction): Transaction; |
Sorry, the diff of this file is not supported yet
87942
734
223