ngx-editor
Version:
Rich Text Editor for angular using ProseMirror
19 lines • 2.87 kB
JavaScript
const findNodeType = (type, $from) => {
for (let i = $from.depth; i > 0; i--) {
if ($from.node(i).type === type) {
return $from.node(i).type;
}
}
return null;
};
export const isNodeActive = (state, type, attrs = {}) => {
const { selection } = state;
const { $from, to } = selection;
const node = findNodeType(type, $from);
if (!Object.entries(attrs).length || !node) {
return !!node;
}
return to <= $from.end() && $from.parent.hasMarkup(type, attrs);
};
export default isNodeActive;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNOb2RlQWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVkaXRvci9oZWxwZXJzL2lzTm9kZUFjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFlBQVksR0FBRyxDQUFDLElBQWMsRUFBRSxLQUFrQixFQUFtQixFQUFFO0lBQzNFLEtBQUssSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3BDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQy9CLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDM0I7S0FDRjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBa0IsRUFBRSxJQUFjLEVBQUUsUUFBYSxFQUFFLEVBQVcsRUFBRTtJQUMzRixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQzVCLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsU0FBUyxDQUFDO0lBRWhDLE1BQU0sSUFBSSxHQUFvQixZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRXhELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRTtRQUMxQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7S0FDZjtJQUVELE9BQU8sRUFBRSxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbEUsQ0FBQyxDQUFDO0FBRUYsZUFBZSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3JTdGF0ZSB9IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcbmltcG9ydCB7IE5vZGVUeXBlLCBSZXNvbHZlZFBvcyB9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcblxuY29uc3QgZmluZE5vZGVUeXBlID0gKHR5cGU6IE5vZGVUeXBlLCAkZnJvbTogUmVzb2x2ZWRQb3MpOiBOb2RlVHlwZSB8IG51bGwgPT4ge1xuICBmb3IgKGxldCBpID0gJGZyb20uZGVwdGg7IGkgPiAwOyBpLS0pIHtcbiAgICBpZiAoJGZyb20ubm9kZShpKS50eXBlID09PSB0eXBlKSB7XG4gICAgICByZXR1cm4gJGZyb20ubm9kZShpKS50eXBlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzTm9kZUFjdGl2ZSA9IChzdGF0ZTogRWRpdG9yU3RhdGUsIHR5cGU6IE5vZGVUeXBlLCBhdHRyczogYW55ID0ge30pOiBib29sZWFuID0+IHtcbiAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IHN0YXRlO1xuICBjb25zdCB7ICRmcm9tLCB0byB9ID0gc2VsZWN0aW9uO1xuXG4gIGNvbnN0IG5vZGU6IE5vZGVUeXBlIHwgbnVsbCA9IGZpbmROb2RlVHlwZSh0eXBlLCAkZnJvbSk7XG5cbiAgaWYgKCFPYmplY3QuZW50cmllcyhhdHRycykubGVuZ3RoIHx8ICFub2RlKSB7XG4gICAgcmV0dXJuICEhbm9kZTtcbiAgfVxuXG4gIHJldHVybiB0byA8PSAkZnJvbS5lbmQoKSAmJiAkZnJvbS5wYXJlbnQuaGFzTWFya3VwKHR5cGUsIGF0dHJzKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGlzTm9kZUFjdGl2ZTtcbiJdfQ==