prosemirror-paste-rules
Advanced tools
Comparing version 0.0.0-pr1629.1 to 0.0.0-pr1654.1
@@ -79,4 +79,6 @@ import { Fragment, MarkType, Node as ProsemirrorNode, NodeType } from 'prosemirror-model'; | ||
* Return an empty string to delete all content. | ||
* | ||
* Return `false` to invalidate the match. | ||
*/ | ||
transformMatch?: (match: RegExpExecArray) => string | null | undefined; | ||
transformMatch?: (match: RegExpExecArray) => string | null | undefined | false; | ||
} | ||
@@ -115,4 +117,6 @@ export interface NodePasteRule extends BaseContentPasteRule { | ||
* Return an empty string to delete all content. | ||
* | ||
* Return `false` to invalidate the match. | ||
*/ | ||
transformMatch?: (match: RegExpExecArray) => string | null | undefined; | ||
transformMatch?: (match: RegExpExecArray) => string | null | undefined | false; | ||
} | ||
@@ -119,0 +123,0 @@ export declare type FileHandlerProps = FilePasteHandlerProps | FileDropHandlerProps; |
@@ -110,4 +110,10 @@ 'use strict'; | ||
slice = new prosemirrorModel.Slice(prosemirrorModel.Fragment.fromArray(regexPasteRuleHandler(slice.content, rule, _view.state.schema)), // If we are using node rules, we don't need to keep the slice's open side for both side. | ||
rule.type === 'node' ? 0 : slice.openStart, rule.type === 'node' ? 0 : slice.openEnd); | ||
var _regexPasteRuleHandle = regexPasteRuleHandler(slice.content, rule, _view.state.schema), | ||
transformedNodes = _regexPasteRuleHandle.nodes, | ||
transformed = _regexPasteRuleHandle.transformed; | ||
if (transformed) { | ||
// If we have created a block node, we don't want to keep the slice's open depth for both side. | ||
slice = rule.type === 'node' && rule.nodeType.isBlock ? new prosemirrorModel.Slice(prosemirrorModel.Fragment.fromArray(transformedNodes), 0, 0) : new prosemirrorModel.Slice(prosemirrorModel.Fragment.fromArray(transformedNodes), slice.openStart, slice.openEnd); | ||
} | ||
} | ||
@@ -277,2 +283,3 @@ } catch (err) { | ||
ignoredNodes = rule.ignoredNodes; | ||
var transformed = false; | ||
fragment.forEach(child => { | ||
@@ -289,3 +296,3 @@ var _child$text; | ||
if (!child.isText) { | ||
var contentNodes = handler({ | ||
var childResult = handler({ | ||
fragment: child.content, | ||
@@ -295,3 +302,4 @@ rule, | ||
}); | ||
var content = prosemirrorModel.Fragment.fromArray(contentNodes); | ||
transformed || (transformed = childResult.transformed); | ||
var content = prosemirrorModel.Fragment.fromArray(childResult.nodes); | ||
@@ -301,3 +309,3 @@ if (child.type.validContent(content)) { | ||
} else { | ||
nodes.push(...contentNodes); | ||
nodes.push(...childResult.nodes); | ||
} | ||
@@ -363,2 +371,3 @@ | ||
}); | ||
transformed = true; | ||
pos = end; | ||
@@ -378,3 +387,6 @@ } // Add the rest of the node to the gathered nodes if any characters are | ||
}); | ||
return nodes; | ||
return { | ||
nodes, | ||
transformed | ||
}; | ||
}; | ||
@@ -389,3 +401,3 @@ } | ||
function markRuleTransformer(props) { | ||
var _ref; | ||
var _textNode$text; | ||
@@ -401,12 +413,18 @@ var nodes = props.nodes, | ||
var attributes = coreHelpers.isFunction(getAttributes) ? getAttributes(match, false) : getAttributes; | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch return | ||
var text = (_textNode$text = textNode.text) !== null && _textNode$text !== void 0 ? _textNode$text : ''; | ||
var mark = markType.create(attributes); | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch returns empty text | ||
if (transformedCapturedValue === '') { | ||
return; | ||
} // remove the mark if transformMatch returns false | ||
if (transformedCapturedValue === false) { | ||
nodes.push(schema.text(text, textNode.marks)); | ||
return; | ||
} | ||
var text = (_ref = transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : textNode.text) !== null && _ref !== void 0 ? _ref : ''; | ||
var mark = markType.create(attributes); | ||
var marks = mark.addToSet(textNode.marks); | ||
nodes.push(schema.text(text, marks)); | ||
nodes.push(schema.text(transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : text, marks)); | ||
} | ||
@@ -419,3 +437,3 @@ /** | ||
function textRuleTransformer(props) { | ||
var _ref2; | ||
var _ref; | ||
@@ -428,9 +446,9 @@ var nodes = props.nodes, | ||
var transformMatch = rule.transformMatch; | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch return | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch returns empty string or false | ||
if (transformedCapturedValue === '') { | ||
if (transformedCapturedValue === '' || transformedCapturedValue === false) { | ||
return; | ||
} | ||
var text = (_ref2 = transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : textNode.text) !== null && _ref2 !== void 0 ? _ref2 : ''; | ||
var text = (_ref = transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : textNode.text) !== null && _ref !== void 0 ? _ref : ''; | ||
nodes.push(schema.text(text, textNode.marks)); | ||
@@ -500,5 +518,5 @@ } | ||
function isInCode(selection) { | ||
var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref3$contained = _ref3.contained, | ||
contained = _ref3$contained === void 0 ? true : _ref3$contained; | ||
var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref2$contained = _ref2.contained, | ||
contained = _ref2$contained === void 0 ? true : _ref2$contained; | ||
@@ -505,0 +523,0 @@ if (selection.empty) { |
@@ -106,4 +106,10 @@ import _createForOfIteratorHelper from '@babel/runtime/helpers/esm/createForOfIteratorHelper'; | ||
slice = new Slice(Fragment.fromArray(regexPasteRuleHandler(slice.content, rule, _view.state.schema)), // If we are using node rules, we don't need to keep the slice's open side for both side. | ||
rule.type === 'node' ? 0 : slice.openStart, rule.type === 'node' ? 0 : slice.openEnd); | ||
var _regexPasteRuleHandle = regexPasteRuleHandler(slice.content, rule, _view.state.schema), | ||
transformedNodes = _regexPasteRuleHandle.nodes, | ||
transformed = _regexPasteRuleHandle.transformed; | ||
if (transformed) { | ||
// If we have created a block node, we don't want to keep the slice's open depth for both side. | ||
slice = rule.type === 'node' && rule.nodeType.isBlock ? new Slice(Fragment.fromArray(transformedNodes), 0, 0) : new Slice(Fragment.fromArray(transformedNodes), slice.openStart, slice.openEnd); | ||
} | ||
} | ||
@@ -273,2 +279,3 @@ } catch (err) { | ||
ignoredNodes = rule.ignoredNodes; | ||
var transformed = false; | ||
fragment.forEach(child => { | ||
@@ -285,3 +292,3 @@ var _child$text; | ||
if (!child.isText) { | ||
var contentNodes = handler({ | ||
var childResult = handler({ | ||
fragment: child.content, | ||
@@ -291,3 +298,4 @@ rule, | ||
}); | ||
var content = Fragment.fromArray(contentNodes); | ||
transformed || (transformed = childResult.transformed); | ||
var content = Fragment.fromArray(childResult.nodes); | ||
@@ -297,3 +305,3 @@ if (child.type.validContent(content)) { | ||
} else { | ||
nodes.push(...contentNodes); | ||
nodes.push(...childResult.nodes); | ||
} | ||
@@ -359,2 +367,3 @@ | ||
}); | ||
transformed = true; | ||
pos = end; | ||
@@ -374,3 +383,6 @@ } // Add the rest of the node to the gathered nodes if any characters are | ||
}); | ||
return nodes; | ||
return { | ||
nodes, | ||
transformed | ||
}; | ||
}; | ||
@@ -385,3 +397,3 @@ } | ||
function markRuleTransformer(props) { | ||
var _ref; | ||
var _textNode$text; | ||
@@ -397,12 +409,18 @@ var nodes = props.nodes, | ||
var attributes = isFunction(getAttributes) ? getAttributes(match, false) : getAttributes; | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch return | ||
var text = (_textNode$text = textNode.text) !== null && _textNode$text !== void 0 ? _textNode$text : ''; | ||
var mark = markType.create(attributes); | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch returns empty text | ||
if (transformedCapturedValue === '') { | ||
return; | ||
} // remove the mark if transformMatch returns false | ||
if (transformedCapturedValue === false) { | ||
nodes.push(schema.text(text, textNode.marks)); | ||
return; | ||
} | ||
var text = (_ref = transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : textNode.text) !== null && _ref !== void 0 ? _ref : ''; | ||
var mark = markType.create(attributes); | ||
var marks = mark.addToSet(textNode.marks); | ||
nodes.push(schema.text(text, marks)); | ||
nodes.push(schema.text(transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : text, marks)); | ||
} | ||
@@ -415,3 +433,3 @@ /** | ||
function textRuleTransformer(props) { | ||
var _ref2; | ||
var _ref; | ||
@@ -424,9 +442,9 @@ var nodes = props.nodes, | ||
var transformMatch = rule.transformMatch; | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch return | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch returns empty string or false | ||
if (transformedCapturedValue === '') { | ||
if (transformedCapturedValue === '' || transformedCapturedValue === false) { | ||
return; | ||
} | ||
var text = (_ref2 = transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : textNode.text) !== null && _ref2 !== void 0 ? _ref2 : ''; | ||
var text = (_ref = transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : textNode.text) !== null && _ref !== void 0 ? _ref : ''; | ||
nodes.push(schema.text(text, textNode.marks)); | ||
@@ -496,5 +514,5 @@ } | ||
function isInCode(selection) { | ||
var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref3$contained = _ref3.contained, | ||
contained = _ref3$contained === void 0 ? true : _ref3$contained; | ||
var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref2$contained = _ref2.contained, | ||
contained = _ref2$contained === void 0 ? true : _ref2$contained; | ||
@@ -501,0 +519,0 @@ if (selection.empty) { |
@@ -110,4 +110,10 @@ 'use strict'; | ||
slice = new prosemirrorModel.Slice(prosemirrorModel.Fragment.fromArray(regexPasteRuleHandler(slice.content, rule, _view.state.schema)), // If we are using node rules, we don't need to keep the slice's open side for both side. | ||
rule.type === 'node' ? 0 : slice.openStart, rule.type === 'node' ? 0 : slice.openEnd); | ||
var _regexPasteRuleHandle = regexPasteRuleHandler(slice.content, rule, _view.state.schema), | ||
transformedNodes = _regexPasteRuleHandle.nodes, | ||
transformed = _regexPasteRuleHandle.transformed; | ||
if (transformed) { | ||
// If we have created a block node, we don't want to keep the slice's open depth for both side. | ||
slice = rule.type === 'node' && rule.nodeType.isBlock ? new prosemirrorModel.Slice(prosemirrorModel.Fragment.fromArray(transformedNodes), 0, 0) : new prosemirrorModel.Slice(prosemirrorModel.Fragment.fromArray(transformedNodes), slice.openStart, slice.openEnd); | ||
} | ||
} | ||
@@ -277,2 +283,3 @@ } catch (err) { | ||
ignoredNodes = rule.ignoredNodes; | ||
var transformed = false; | ||
fragment.forEach(child => { | ||
@@ -289,3 +296,3 @@ var _child$text; | ||
if (!child.isText) { | ||
var contentNodes = handler({ | ||
var childResult = handler({ | ||
fragment: child.content, | ||
@@ -295,3 +302,4 @@ rule, | ||
}); | ||
var content = prosemirrorModel.Fragment.fromArray(contentNodes); | ||
transformed || (transformed = childResult.transformed); | ||
var content = prosemirrorModel.Fragment.fromArray(childResult.nodes); | ||
@@ -301,3 +309,3 @@ if (child.type.validContent(content)) { | ||
} else { | ||
nodes.push(...contentNodes); | ||
nodes.push(...childResult.nodes); | ||
} | ||
@@ -363,2 +371,3 @@ | ||
}); | ||
transformed = true; | ||
pos = end; | ||
@@ -378,3 +387,6 @@ } // Add the rest of the node to the gathered nodes if any characters are | ||
}); | ||
return nodes; | ||
return { | ||
nodes, | ||
transformed | ||
}; | ||
}; | ||
@@ -389,3 +401,3 @@ } | ||
function markRuleTransformer(props) { | ||
var _ref; | ||
var _textNode$text; | ||
@@ -401,12 +413,18 @@ var nodes = props.nodes, | ||
var attributes = coreHelpers.isFunction(getAttributes) ? getAttributes(match, false) : getAttributes; | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch return | ||
var text = (_textNode$text = textNode.text) !== null && _textNode$text !== void 0 ? _textNode$text : ''; | ||
var mark = markType.create(attributes); | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch returns empty text | ||
if (transformedCapturedValue === '') { | ||
return; | ||
} // remove the mark if transformMatch returns false | ||
if (transformedCapturedValue === false) { | ||
nodes.push(schema.text(text, textNode.marks)); | ||
return; | ||
} | ||
var text = (_ref = transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : textNode.text) !== null && _ref !== void 0 ? _ref : ''; | ||
var mark = markType.create(attributes); | ||
var marks = mark.addToSet(textNode.marks); | ||
nodes.push(schema.text(text, marks)); | ||
nodes.push(schema.text(transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : text, marks)); | ||
} | ||
@@ -419,3 +437,3 @@ /** | ||
function textRuleTransformer(props) { | ||
var _ref2; | ||
var _ref; | ||
@@ -428,9 +446,9 @@ var nodes = props.nodes, | ||
var transformMatch = rule.transformMatch; | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch return | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch returns empty string or false | ||
if (transformedCapturedValue === '') { | ||
if (transformedCapturedValue === '' || transformedCapturedValue === false) { | ||
return; | ||
} | ||
var text = (_ref2 = transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : textNode.text) !== null && _ref2 !== void 0 ? _ref2 : ''; | ||
var text = (_ref = transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : textNode.text) !== null && _ref !== void 0 ? _ref : ''; | ||
nodes.push(schema.text(text, textNode.marks)); | ||
@@ -500,5 +518,5 @@ } | ||
function isInCode(selection) { | ||
var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref3$contained = _ref3.contained, | ||
contained = _ref3$contained === void 0 ? true : _ref3$contained; | ||
var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref2$contained = _ref2.contained, | ||
contained = _ref2$contained === void 0 ? true : _ref2$contained; | ||
@@ -505,0 +523,0 @@ if (selection.empty) { |
@@ -110,4 +110,10 @@ 'use strict'; | ||
slice = new prosemirrorModel.Slice(prosemirrorModel.Fragment.fromArray(regexPasteRuleHandler(slice.content, rule, _view.state.schema)), // If we are using node rules, we don't need to keep the slice's open side for both side. | ||
rule.type === 'node' ? 0 : slice.openStart, rule.type === 'node' ? 0 : slice.openEnd); | ||
var _regexPasteRuleHandle = regexPasteRuleHandler(slice.content, rule, _view.state.schema), | ||
transformedNodes = _regexPasteRuleHandle.nodes, | ||
transformed = _regexPasteRuleHandle.transformed; | ||
if (transformed) { | ||
// If we have created a block node, we don't want to keep the slice's open depth for both side. | ||
slice = rule.type === 'node' && rule.nodeType.isBlock ? new prosemirrorModel.Slice(prosemirrorModel.Fragment.fromArray(transformedNodes), 0, 0) : new prosemirrorModel.Slice(prosemirrorModel.Fragment.fromArray(transformedNodes), slice.openStart, slice.openEnd); | ||
} | ||
} | ||
@@ -277,2 +283,3 @@ } catch (err) { | ||
ignoredNodes = rule.ignoredNodes; | ||
var transformed = false; | ||
fragment.forEach(child => { | ||
@@ -289,3 +296,3 @@ var _child$text; | ||
if (!child.isText) { | ||
var contentNodes = handler({ | ||
var childResult = handler({ | ||
fragment: child.content, | ||
@@ -295,3 +302,4 @@ rule, | ||
}); | ||
var content = prosemirrorModel.Fragment.fromArray(contentNodes); | ||
transformed || (transformed = childResult.transformed); | ||
var content = prosemirrorModel.Fragment.fromArray(childResult.nodes); | ||
@@ -301,3 +309,3 @@ if (child.type.validContent(content)) { | ||
} else { | ||
nodes.push(...contentNodes); | ||
nodes.push(...childResult.nodes); | ||
} | ||
@@ -363,2 +371,3 @@ | ||
}); | ||
transformed = true; | ||
pos = end; | ||
@@ -378,3 +387,6 @@ } // Add the rest of the node to the gathered nodes if any characters are | ||
}); | ||
return nodes; | ||
return { | ||
nodes, | ||
transformed | ||
}; | ||
}; | ||
@@ -389,3 +401,3 @@ } | ||
function markRuleTransformer(props) { | ||
var _ref; | ||
var _textNode$text; | ||
@@ -401,12 +413,18 @@ var nodes = props.nodes, | ||
var attributes = coreHelpers.isFunction(getAttributes) ? getAttributes(match, false) : getAttributes; | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch return | ||
var text = (_textNode$text = textNode.text) !== null && _textNode$text !== void 0 ? _textNode$text : ''; | ||
var mark = markType.create(attributes); | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch returns empty text | ||
if (transformedCapturedValue === '') { | ||
return; | ||
} // remove the mark if transformMatch returns false | ||
if (transformedCapturedValue === false) { | ||
nodes.push(schema.text(text, textNode.marks)); | ||
return; | ||
} | ||
var text = (_ref = transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : textNode.text) !== null && _ref !== void 0 ? _ref : ''; | ||
var mark = markType.create(attributes); | ||
var marks = mark.addToSet(textNode.marks); | ||
nodes.push(schema.text(text, marks)); | ||
nodes.push(schema.text(transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : text, marks)); | ||
} | ||
@@ -419,3 +437,3 @@ /** | ||
function textRuleTransformer(props) { | ||
var _ref2; | ||
var _ref; | ||
@@ -428,9 +446,9 @@ var nodes = props.nodes, | ||
var transformMatch = rule.transformMatch; | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch return | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch returns empty string or false | ||
if (transformedCapturedValue === '') { | ||
if (transformedCapturedValue === '' || transformedCapturedValue === false) { | ||
return; | ||
} | ||
var text = (_ref2 = transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : textNode.text) !== null && _ref2 !== void 0 ? _ref2 : ''; | ||
var text = (_ref = transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : textNode.text) !== null && _ref !== void 0 ? _ref : ''; | ||
nodes.push(schema.text(text, textNode.marks)); | ||
@@ -500,5 +518,5 @@ } | ||
function isInCode(selection) { | ||
var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref3$contained = _ref3.contained, | ||
contained = _ref3$contained === void 0 ? true : _ref3$contained; | ||
var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref2$contained = _ref2.contained, | ||
contained = _ref2$contained === void 0 ? true : _ref2$contained; | ||
@@ -505,0 +523,0 @@ if (selection.empty) { |
@@ -106,4 +106,10 @@ import _createForOfIteratorHelper from '@babel/runtime/helpers/esm/createForOfIteratorHelper'; | ||
slice = new Slice(Fragment.fromArray(regexPasteRuleHandler(slice.content, rule, _view.state.schema)), // If we are using node rules, we don't need to keep the slice's open side for both side. | ||
rule.type === 'node' ? 0 : slice.openStart, rule.type === 'node' ? 0 : slice.openEnd); | ||
var _regexPasteRuleHandle = regexPasteRuleHandler(slice.content, rule, _view.state.schema), | ||
transformedNodes = _regexPasteRuleHandle.nodes, | ||
transformed = _regexPasteRuleHandle.transformed; | ||
if (transformed) { | ||
// If we have created a block node, we don't want to keep the slice's open depth for both side. | ||
slice = rule.type === 'node' && rule.nodeType.isBlock ? new Slice(Fragment.fromArray(transformedNodes), 0, 0) : new Slice(Fragment.fromArray(transformedNodes), slice.openStart, slice.openEnd); | ||
} | ||
} | ||
@@ -273,2 +279,3 @@ } catch (err) { | ||
ignoredNodes = rule.ignoredNodes; | ||
var transformed = false; | ||
fragment.forEach(child => { | ||
@@ -285,3 +292,3 @@ var _child$text; | ||
if (!child.isText) { | ||
var contentNodes = handler({ | ||
var childResult = handler({ | ||
fragment: child.content, | ||
@@ -291,3 +298,4 @@ rule, | ||
}); | ||
var content = Fragment.fromArray(contentNodes); | ||
transformed || (transformed = childResult.transformed); | ||
var content = Fragment.fromArray(childResult.nodes); | ||
@@ -297,3 +305,3 @@ if (child.type.validContent(content)) { | ||
} else { | ||
nodes.push(...contentNodes); | ||
nodes.push(...childResult.nodes); | ||
} | ||
@@ -359,2 +367,3 @@ | ||
}); | ||
transformed = true; | ||
pos = end; | ||
@@ -374,3 +383,6 @@ } // Add the rest of the node to the gathered nodes if any characters are | ||
}); | ||
return nodes; | ||
return { | ||
nodes, | ||
transformed | ||
}; | ||
}; | ||
@@ -385,3 +397,3 @@ } | ||
function markRuleTransformer(props) { | ||
var _ref; | ||
var _textNode$text; | ||
@@ -397,12 +409,18 @@ var nodes = props.nodes, | ||
var attributes = isFunction(getAttributes) ? getAttributes(match, false) : getAttributes; | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch return | ||
var text = (_textNode$text = textNode.text) !== null && _textNode$text !== void 0 ? _textNode$text : ''; | ||
var mark = markType.create(attributes); | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch returns empty text | ||
if (transformedCapturedValue === '') { | ||
return; | ||
} // remove the mark if transformMatch returns false | ||
if (transformedCapturedValue === false) { | ||
nodes.push(schema.text(text, textNode.marks)); | ||
return; | ||
} | ||
var text = (_ref = transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : textNode.text) !== null && _ref !== void 0 ? _ref : ''; | ||
var mark = markType.create(attributes); | ||
var marks = mark.addToSet(textNode.marks); | ||
nodes.push(schema.text(text, marks)); | ||
nodes.push(schema.text(transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : text, marks)); | ||
} | ||
@@ -415,3 +433,3 @@ /** | ||
function textRuleTransformer(props) { | ||
var _ref2; | ||
var _ref; | ||
@@ -424,9 +442,9 @@ var nodes = props.nodes, | ||
var transformMatch = rule.transformMatch; | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch return | ||
var transformedCapturedValue = transformMatch === null || transformMatch === void 0 ? void 0 : transformMatch(match); // remove the text if transformMatch returns empty string or false | ||
if (transformedCapturedValue === '') { | ||
if (transformedCapturedValue === '' || transformedCapturedValue === false) { | ||
return; | ||
} | ||
var text = (_ref2 = transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : textNode.text) !== null && _ref2 !== void 0 ? _ref2 : ''; | ||
var text = (_ref = transformedCapturedValue !== null && transformedCapturedValue !== void 0 ? transformedCapturedValue : textNode.text) !== null && _ref !== void 0 ? _ref : ''; | ||
nodes.push(schema.text(text, textNode.marks)); | ||
@@ -496,5 +514,5 @@ } | ||
function isInCode(selection) { | ||
var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref3$contained = _ref3.contained, | ||
contained = _ref3$contained === void 0 ? true : _ref3$contained; | ||
var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref2$contained = _ref2.contained, | ||
contained = _ref2$contained === void 0 ? true : _ref2$contained; | ||
@@ -501,0 +519,0 @@ if (selection.empty) { |
{ | ||
"name": "prosemirror-paste-rules", | ||
"version": "0.0.0-pr1629.1", | ||
"version": "0.0.0-pr1654.1", | ||
"description": "Better handling of pasted content in your prosemirror editor.", | ||
@@ -27,4 +27,4 @@ "homepage": "https://github.com/remirror/remirror/tree/HEAD/packages/prosemirror-paste-rules", | ||
}, | ||
"main": "./dist/prosemirror-paste-rules.cjs.js", | ||
"module": "./dist/prosemirror-paste-rules.esm.js", | ||
"main": "dist/prosemirror-paste-rules.cjs.js", | ||
"module": "dist/prosemirror-paste-rules.esm.js", | ||
"browser": { | ||
@@ -40,4 +40,4 @@ "./dist/prosemirror-paste-rules.cjs.js": "./dist/prosemirror-paste-rules.browser.cjs.js", | ||
"@babel/runtime": "^7.13.10", | ||
"@remirror/core-constants": "0.0.0-pr1629.1", | ||
"@remirror/core-helpers": "0.0.0-pr1629.1", | ||
"@remirror/core-constants": "0.0.0-pr1654.1", | ||
"@remirror/core-helpers": "0.0.0-pr1654.1", | ||
"escape-string-regexp": "^4.0.0" | ||
@@ -47,8 +47,8 @@ }, | ||
"@types/prosemirror-keymap": "^1.0.4", | ||
"@types/prosemirror-model": "^1.16.0", | ||
"@types/prosemirror-state": "^1.2.8", | ||
"@types/prosemirror-view": "^1.23.1", | ||
"@types/prosemirror-model": "^1.16.2", | ||
"@types/prosemirror-state": "^1.3.0", | ||
"@types/prosemirror-view": "^1.23.2", | ||
"prosemirror-model": "^1.16.1", | ||
"prosemirror-state": "^1.3.4", | ||
"prosemirror-view": "^1.23.11" | ||
"prosemirror-view": "^1.23.13" | ||
}, | ||
@@ -55,0 +55,0 @@ "peerDependencies": { |
108816
2621
+ Added@remirror/core-constants@0.0.0-pr1654.1(transitive)
+ Added@remirror/core-helpers@0.0.0-pr1654.1(transitive)
+ Added@remirror/types@0.0.0-pr1654.1(transitive)
- Removed@remirror/core-constants@0.0.0-pr1629.1(transitive)
- Removed@remirror/core-helpers@0.0.0-pr1629.1(transitive)
- Removed@remirror/types@0.0.0-pr1629.1(transitive)