ngx-editor
Version:
The Rich Text Editor for Angular, Built on ProseMirror
30 lines • 3.63 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmxvY2txdW90ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1lZGl0b3Ivc3JjL2xpYi9jb21tYW5kcy9CbG9ja3F1b3RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSWxELE1BQU0sU0FBUztJQUNiLE1BQU07UUFDSixPQUFPLENBQUMsS0FBa0IsRUFBRSxRQUFvQyxFQUFXLEVBQUU7WUFDM0UsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztZQUV6QixNQUFNLElBQUksR0FBYSxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1QsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUVELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQzlCO1lBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBa0I7UUFDekIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUV6QixNQUFNLElBQUksR0FBYSxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBRUQsZUFBZSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE5vZGVUeXBlIH0gZnJvbSAncHJvc2VtaXJyb3ItbW9kZWwnO1xuaW1wb3J0IHR5cGUgeyBFZGl0b3JTdGF0ZSwgVHJhbnNhY3Rpb24sIENvbW1hbmQgfSBmcm9tICdwcm9zZW1pcnJvci1zdGF0ZSc7XG5pbXBvcnQgeyBsaWZ0LCB3cmFwSW4gfSBmcm9tICdwcm9zZW1pcnJvci1jb21tYW5kcyc7XG5cbmltcG9ydCB7IGlzTm9kZUFjdGl2ZSB9IGZyb20gJ25neC1lZGl0b3IvaGVscGVycyc7XG5cbmltcG9ydCB7IFRvZ2dsZUNvbW1hbmQgfSBmcm9tICcuL3R5cGVzJztcblxuY2xhc3MgQmxvY2txb3RlIGltcGxlbWVudHMgVG9nZ2xlQ29tbWFuZCB7XG4gIHRvZ2dsZSgpOiBDb21tYW5kIHtcbiAgICByZXR1cm4gKHN0YXRlOiBFZGl0b3JTdGF0ZSwgZGlzcGF0Y2g/OiAodHI6IFRyYW5zYWN0aW9uKSA9PiB2b2lkKTogYm9vbGVhbiA9PiB7XG4gICAgICBjb25zdCB7IHNjaGVtYSB9ID0gc3RhdGU7XG5cbiAgICAgIGNvbnN0IHR5cGU6IE5vZGVUeXBlID0gc2NoZW1hLm5vZGVzWydibG9ja3F1b3RlJ107XG4gICAgICBpZiAoIXR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5pc0FjdGl2ZShzdGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIGxpZnQoc3RhdGUsIGRpc3BhdGNoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHdyYXBJbih0eXBlKShzdGF0ZSwgZGlzcGF0Y2gpO1xuICAgIH07XG4gIH1cblxuICBpc0FjdGl2ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBib29sZWFuIHtcbiAgICBjb25zdCB7IHNjaGVtYSB9ID0gc3RhdGU7XG5cbiAgICBjb25zdCB0eXBlOiBOb2RlVHlwZSA9IHNjaGVtYS5ub2Rlc1snYmxvY2txdW90ZSddO1xuICAgIGlmICghdHlwZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBpc05vZGVBY3RpdmUoc3RhdGUsIHR5cGUpO1xuICB9XG5cbiAgY2FuRXhlY3V0ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGUoKShzdGF0ZSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQmxvY2txb3RlO1xuIl19