UNPKG

ngx-editor

Version:

The Rich Text Editor for Angular, Built on ProseMirror

37 lines 4.67 kB
import { liftListItem, wrapInList } from 'prosemirror-schema-list'; import { isNodeActive } from 'ngx-editor/helpers'; class ListItem { constructor(isBulletList = false) { this.isBulletList = false; this.isBulletList = isBulletList; } getType(schema) { return this.isBulletList ? schema.nodes['bullet_list'] : schema.nodes['ordered_list']; } toggle() { return (state, dispatch) => { const { schema } = state; const type = this.getType(schema); if (!type) { return false; } if (this.isActive(state)) { return liftListItem(schema.nodes['list_item'])(state, dispatch); } return wrapInList(type)(state, dispatch); }; } isActive(state) { const { schema } = state; const type = this.getType(schema); if (!type) { return false; } return isNodeActive(state, type); } canExecute(state) { return this.toggle()(state); } } export default ListItem; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlzdEl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZWRpdG9yL3NyYy9saWIvY29tbWFuZHMvTGlzdEl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFJbEQsTUFBTSxRQUFRO0lBR1osWUFBWSxZQUFZLEdBQUcsS0FBSztRQUZoQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUduQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQWM7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxDQUFDLEtBQWtCLEVBQUUsUUFBb0MsRUFBVyxFQUFFO1lBQzNFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7WUFFekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNULE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3hCLE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDakU7WUFFRCxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFrQjtRQUN6QixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRXpCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ0Y7QUFFRCxlQUFlLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTm9kZVR5cGUsIFNjaGVtYSB9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcbmltcG9ydCB0eXBlIHsgRWRpdG9yU3RhdGUsIFRyYW5zYWN0aW9uLCBDb21tYW5kIH0gZnJvbSAncHJvc2VtaXJyb3Itc3RhdGUnO1xuaW1wb3J0IHsgbGlmdExpc3RJdGVtLCB3cmFwSW5MaXN0IH0gZnJvbSAncHJvc2VtaXJyb3Itc2NoZW1hLWxpc3QnO1xuXG5pbXBvcnQgeyBpc05vZGVBY3RpdmUgfSBmcm9tICduZ3gtZWRpdG9yL2hlbHBlcnMnO1xuXG5pbXBvcnQgeyBUb2dnbGVDb21tYW5kIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNsYXNzIExpc3RJdGVtIGltcGxlbWVudHMgVG9nZ2xlQ29tbWFuZCB7XG4gIGlzQnVsbGV0TGlzdCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGlzQnVsbGV0TGlzdCA9IGZhbHNlKSB7XG4gICAgdGhpcy5pc0J1bGxldExpc3QgPSBpc0J1bGxldExpc3Q7XG4gIH1cblxuICBnZXRUeXBlKHNjaGVtYTogU2NoZW1hKTogTm9kZVR5cGUge1xuICAgIHJldHVybiB0aGlzLmlzQnVsbGV0TGlzdCA/IHNjaGVtYS5ub2Rlc1snYnVsbGV0X2xpc3QnXSA6IHNjaGVtYS5ub2Rlc1snb3JkZXJlZF9saXN0J107XG4gIH1cblxuICB0b2dnbGUoKTogQ29tbWFuZCB7XG4gICAgcmV0dXJuIChzdGF0ZTogRWRpdG9yU3RhdGUsIGRpc3BhdGNoPzogKHRyOiBUcmFuc2FjdGlvbikgPT4gdm9pZCk6IGJvb2xlYW4gPT4ge1xuICAgICAgY29uc3QgeyBzY2hlbWEgfSA9IHN0YXRlO1xuXG4gICAgICBjb25zdCB0eXBlID0gdGhpcy5nZXRUeXBlKHNjaGVtYSk7XG4gICAgICBpZiAoIXR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5pc0FjdGl2ZShzdGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIGxpZnRMaXN0SXRlbShzY2hlbWEubm9kZXNbJ2xpc3RfaXRlbSddKShzdGF0ZSwgZGlzcGF0Y2gpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gd3JhcEluTGlzdCh0eXBlKShzdGF0ZSwgZGlzcGF0Y2gpO1xuICAgIH07XG4gIH1cblxuICBpc0FjdGl2ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBib29sZWFuIHtcbiAgICBjb25zdCB7IHNjaGVtYSB9ID0gc3RhdGU7XG5cbiAgICBjb25zdCB0eXBlID0gdGhpcy5nZXRUeXBlKHNjaGVtYSk7XG4gICAgaWYgKCF0eXBlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzTm9kZUFjdGl2ZShzdGF0ZSwgdHlwZSk7XG4gIH1cblxuICBjYW5FeGVjdXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZSgpKHN0YXRlKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBMaXN0SXRlbTtcbiJdfQ==