UNPKG

ngx-editor

Version:

Rich Text Editor for angular using ProseMirror

41 lines 4.66 kB
import { toggleMark } from 'prosemirror-commands'; import { applyMark } from 'ngx-editor/commands'; import { isMarkActive } from 'ngx-editor/helpers'; class Mark { constructor(name) { this.name = name; } apply() { return (state, dispatch) => { const { schema } = state; const type = schema.marks[this.name]; if (!type) { return false; } return applyMark(type)(state, dispatch); }; } toggle() { return (state, dispatch) => { const { schema } = state; const type = schema.marks[this.name]; if (!type) { return false; } return toggleMark(type)(state, dispatch); }; } isActive(state) { const { schema } = state; const type = schema.marks[this.name]; if (!type) { return false; } return isMarkActive(state, type); } canExecute(state) { return this.toggle()(state); } } export default Mark; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFyay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1lZGl0b3Ivc3JjL2xpYi9jb21tYW5kcy9NYXJrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBVyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxELE1BQU0sSUFBSTtJQUdSLFlBQVksSUFBWTtRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sQ0FBQyxLQUFrQixFQUFFLFFBQW9DLEVBQVcsRUFBRTtZQUMzRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBRXpCLE1BQU0sSUFBSSxHQUFhLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1QsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUVELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sQ0FBQyxLQUFrQixFQUFFLFFBQW9DLEVBQVcsRUFBRTtZQUMzRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBRXpCLE1BQU0sSUFBSSxHQUFhLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1QsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUVELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWtCO1FBQ3pCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFekIsTUFBTSxJQUFJLEdBQWEsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ0Y7QUFFRCxlQUFlLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hcmtUeXBlIH0gZnJvbSAncHJvc2VtaXJyb3ItbW9kZWwnO1xuaW1wb3J0IHsgRWRpdG9yU3RhdGUsIFRyYW5zYWN0aW9uIH0gZnJvbSAncHJvc2VtaXJyb3Itc3RhdGUnO1xuaW1wb3J0IHsgQ29tbWFuZCwgdG9nZ2xlTWFyayB9IGZyb20gJ3Byb3NlbWlycm9yLWNvbW1hbmRzJztcblxuaW1wb3J0IHsgYXBwbHlNYXJrIH0gZnJvbSAnbmd4LWVkaXRvci9jb21tYW5kcyc7XG5pbXBvcnQgeyBpc01hcmtBY3RpdmUgfSBmcm9tICduZ3gtZWRpdG9yL2hlbHBlcnMnO1xuXG5jbGFzcyBNYXJrIHtcbiAgbmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBhcHBseSgpOiBDb21tYW5kIHtcbiAgICByZXR1cm4gKHN0YXRlOiBFZGl0b3JTdGF0ZSwgZGlzcGF0Y2g/OiAodHI6IFRyYW5zYWN0aW9uKSA9PiB2b2lkKTogYm9vbGVhbiA9PiB7XG4gICAgICBjb25zdCB7IHNjaGVtYSB9ID0gc3RhdGU7XG5cbiAgICAgIGNvbnN0IHR5cGU6IE1hcmtUeXBlID0gc2NoZW1hLm1hcmtzW3RoaXMubmFtZV07XG4gICAgICBpZiAoIXR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYXBwbHlNYXJrKHR5cGUpKHN0YXRlLCBkaXNwYXRjaCk7XG4gICAgfTtcbiAgfVxuXG4gIHRvZ2dsZSgpOiBDb21tYW5kIHtcbiAgICByZXR1cm4gKHN0YXRlOiBFZGl0b3JTdGF0ZSwgZGlzcGF0Y2g/OiAodHI6IFRyYW5zYWN0aW9uKSA9PiB2b2lkKTogYm9vbGVhbiA9PiB7XG4gICAgICBjb25zdCB7IHNjaGVtYSB9ID0gc3RhdGU7XG5cbiAgICAgIGNvbnN0IHR5cGU6IE1hcmtUeXBlID0gc2NoZW1hLm1hcmtzW3RoaXMubmFtZV07XG4gICAgICBpZiAoIXR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdG9nZ2xlTWFyayh0eXBlKShzdGF0ZSwgZGlzcGF0Y2gpO1xuICAgIH07XG4gIH1cblxuICBpc0FjdGl2ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBib29sZWFuIHtcbiAgICBjb25zdCB7IHNjaGVtYSB9ID0gc3RhdGU7XG5cbiAgICBjb25zdCB0eXBlOiBNYXJrVHlwZSA9IHNjaGVtYS5tYXJrc1t0aGlzLm5hbWVdO1xuXG4gICAgaWYgKCF0eXBlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzTWFya0FjdGl2ZShzdGF0ZSwgdHlwZSk7XG4gIH1cblxuICBjYW5FeGVjdXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZSgpKHN0YXRlKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNYXJrO1xuIl19