ngx-editor
Version:
Rich Text Editor for angular using ProseMirror
30 lines • 3.52 kB
JavaScript
import { lift, wrapIn } from 'prosemirror-commands';
import { isNodeActive } from 'ngx-editor/helpers';
class Blockqote {
toggle() {
return (state, dispatch) => {
const { schema } = state;
const type = schema.nodes.blockquote;
if (!type) {
return false;
}
if (this.isActive(state)) {
return lift(state, dispatch);
}
return wrapIn(type)(state, dispatch);
};
}
isActive(state) {
const { schema } = state;
const type = schema.nodes.blockquote;
if (!type) {
return false;
}
return isNodeActive(state, type);
}
canExecute(state) {
return this.toggle()(state);
}
}
export default Blockqote;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmxvY2txdW90ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1lZGl0b3Ivc3JjL2xpYi9jb21tYW5kcy9CbG9ja3F1b3RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBZ0IsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxNQUFNLFNBQVM7SUFDYixNQUFNO1FBQ0osT0FBTyxDQUFDLEtBQWtCLEVBQUUsUUFBb0MsRUFBVyxFQUFFO1lBQzNFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7WUFFekIsTUFBTSxJQUFJLEdBQWEsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVCxPQUFPLEtBQUssQ0FBQzthQUNkO1lBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDOUI7WUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFrQjtRQUN6QixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRXpCLE1BQU0sSUFBSSxHQUFhLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBRUQsZUFBZSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE5vZGVUeXBlIH0gZnJvbSAncHJvc2VtaXJyb3ItbW9kZWwnO1xuaW1wb3J0IHR5cGUgeyBFZGl0b3JTdGF0ZSwgVHJhbnNhY3Rpb24gfSBmcm9tICdwcm9zZW1pcnJvci1zdGF0ZSc7XG5pbXBvcnQgeyB0eXBlIENvbW1hbmQsIGxpZnQsIHdyYXBJbiB9IGZyb20gJ3Byb3NlbWlycm9yLWNvbW1hbmRzJztcblxuaW1wb3J0IHsgaXNOb2RlQWN0aXZlIH0gZnJvbSAnbmd4LWVkaXRvci9oZWxwZXJzJztcblxuY2xhc3MgQmxvY2txb3RlIHtcbiAgdG9nZ2xlKCk6IENvbW1hbmQge1xuICAgIHJldHVybiAoc3RhdGU6IEVkaXRvclN0YXRlLCBkaXNwYXRjaD86ICh0cjogVHJhbnNhY3Rpb24pID0+IHZvaWQpOiBib29sZWFuID0+IHtcbiAgICAgIGNvbnN0IHsgc2NoZW1hIH0gPSBzdGF0ZTtcblxuICAgICAgY29uc3QgdHlwZTogTm9kZVR5cGUgPSBzY2hlbWEubm9kZXMuYmxvY2txdW90ZTtcbiAgICAgIGlmICghdHlwZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlzQWN0aXZlKHN0YXRlKSkge1xuICAgICAgICByZXR1cm4gbGlmdChzdGF0ZSwgZGlzcGF0Y2gpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gd3JhcEluKHR5cGUpKHN0YXRlLCBkaXNwYXRjaCk7XG4gICAgfTtcbiAgfVxuXG4gIGlzQWN0aXZlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgc2NoZW1hIH0gPSBzdGF0ZTtcblxuICAgIGNvbnN0IHR5cGU6IE5vZGVUeXBlID0gc2NoZW1hLm5vZGVzLmJsb2NrcXVvdGU7XG4gICAgaWYgKCF0eXBlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzTm9kZUFjdGl2ZShzdGF0ZSwgdHlwZSk7XG4gIH1cblxuICBjYW5FeGVjdXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZSgpKHN0YXRlKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCbG9ja3FvdGU7XG4iXX0=