ngx-editor
Version:
Rich Text Editor for angular using ProseMirror
20 lines • 2.9 kB
JavaScript
// Ref: https://github.com/ProseMirror/prosemirror-commands/blob/master/src/commands.js
export const markApplies = (doc, ranges, type) => {
for (const range of ranges) {
const { $from, $to } = range;
let canApply = $from.depth === 0 ? doc.type.allowsMarkType(type) : false;
doc.nodesBetween($from.pos, $to.pos, (node) => {
if (canApply) {
return false;
}
canApply = node.inlineContent && node.type.allowsMarkType(type);
return true;
});
if (canApply) {
return true;
}
}
return false;
};
export default markApplies;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya0FwcGxpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZWRpdG9yL2hlbHBlcnMvbWFya0FwcGxpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsdUZBQXVGO0FBQ3ZGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQW9CLEVBQUUsTUFBd0IsRUFBRSxJQUFjLEVBQVcsRUFBRTtJQUNyRyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTtRQUMxQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUU3QixJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUV6RSxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQXFCLEVBQVcsRUFBRTtZQUN0RSxJQUFJLFFBQVEsRUFBRTtnQkFDWixPQUFPLEtBQUssQ0FBQzthQUNkO1lBRUQsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEUsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTyxJQUFJLENBQUM7U0FDYjtLQUNGO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixlQUFlLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hcmtUeXBlLCBOb2RlIGFzIFBybW9zZW1pcnJvTm9kZSB9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcbmltcG9ydCB7IFNlbGVjdGlvblJhbmdlIH0gZnJvbSAncHJvc2VtaXJyb3Itc3RhdGUnO1xuXG4vLyBSZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9Qcm9zZU1pcnJvci9wcm9zZW1pcnJvci1jb21tYW5kcy9ibG9iL21hc3Rlci9zcmMvY29tbWFuZHMuanNcbmV4cG9ydCBjb25zdCBtYXJrQXBwbGllcyA9IChkb2M6IFBybW9zZW1pcnJvTm9kZSwgcmFuZ2VzOiBTZWxlY3Rpb25SYW5nZVtdLCB0eXBlOiBNYXJrVHlwZSk6IGJvb2xlYW4gPT4ge1xuICBmb3IgKGNvbnN0IHJhbmdlIG9mIHJhbmdlcykge1xuICAgIGNvbnN0IHsgJGZyb20sICR0byB9ID0gcmFuZ2U7XG5cbiAgICBsZXQgY2FuQXBwbHkgPSAkZnJvbS5kZXB0aCA9PT0gMCA/IGRvYy50eXBlLmFsbG93c01hcmtUeXBlKHR5cGUpIDogZmFsc2U7XG5cbiAgICBkb2Mubm9kZXNCZXR3ZWVuKCRmcm9tLnBvcywgJHRvLnBvcywgKG5vZGU6IFBybW9zZW1pcnJvTm9kZSk6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKGNhbkFwcGx5KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY2FuQXBwbHkgPSBub2RlLmlubGluZUNvbnRlbnQgJiYgbm9kZS50eXBlLmFsbG93c01hcmtUeXBlKHR5cGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG5cbiAgICBpZiAoY2FuQXBwbHkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBtYXJrQXBwbGllcztcbiJdfQ==