UNPKG

ngx-editor

Version:

Rich Text Editor for angular using ProseMirror

37 lines 4.6 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlzdEl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZWRpdG9yL3NyYy9saWIvY29tbWFuZHMvTGlzdEl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUduRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsTUFBTSxRQUFRO0lBR1osWUFBWSxZQUFZLEdBQUcsS0FBSztRQUZoQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUduQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQWM7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxDQUFDLEtBQWtCLEVBQUUsUUFBb0MsRUFBVyxFQUFFO1lBQzNFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7WUFFekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNULE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3hCLE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQzlEO1lBRUQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBa0I7UUFDekIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUV6QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBRUQsZUFBZSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlVHlwZSwgU2NoZW1hIH0gZnJvbSAncHJvc2VtaXJyb3ItbW9kZWwnO1xuaW1wb3J0IHsgRWRpdG9yU3RhdGUsIFRyYW5zYWN0aW9uIH0gZnJvbSAncHJvc2VtaXJyb3Itc3RhdGUnO1xuaW1wb3J0IHsgbGlmdExpc3RJdGVtLCB3cmFwSW5MaXN0IH0gZnJvbSAncHJvc2VtaXJyb3Itc2NoZW1hLWxpc3QnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ3Byb3NlbWlycm9yLWNvbW1hbmRzJztcblxuaW1wb3J0IHsgaXNOb2RlQWN0aXZlIH0gZnJvbSAnbmd4LWVkaXRvci9oZWxwZXJzJztcblxuY2xhc3MgTGlzdEl0ZW0ge1xuICBpc0J1bGxldExpc3QgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihpc0J1bGxldExpc3QgPSBmYWxzZSkge1xuICAgIHRoaXMuaXNCdWxsZXRMaXN0ID0gaXNCdWxsZXRMaXN0O1xuICB9XG5cbiAgZ2V0VHlwZShzY2hlbWE6IFNjaGVtYSk6IE5vZGVUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5pc0J1bGxldExpc3QgPyBzY2hlbWEubm9kZXNbJ2J1bGxldF9saXN0J10gOiBzY2hlbWEubm9kZXNbJ29yZGVyZWRfbGlzdCddO1xuICB9XG5cbiAgdG9nZ2xlKCk6IENvbW1hbmQge1xuICAgIHJldHVybiAoc3RhdGU6IEVkaXRvclN0YXRlLCBkaXNwYXRjaD86ICh0cjogVHJhbnNhY3Rpb24pID0+IHZvaWQpOiBib29sZWFuID0+IHtcbiAgICAgIGNvbnN0IHsgc2NoZW1hIH0gPSBzdGF0ZTtcblxuICAgICAgY29uc3QgdHlwZSA9IHRoaXMuZ2V0VHlwZShzY2hlbWEpO1xuICAgICAgaWYgKCF0eXBlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaXNBY3RpdmUoc3RhdGUpKSB7XG4gICAgICAgIHJldHVybiBsaWZ0TGlzdEl0ZW0oc2NoZW1hLm5vZGVzLmxpc3RfaXRlbSkoc3RhdGUsIGRpc3BhdGNoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHdyYXBJbkxpc3QodHlwZSkoc3RhdGUsIGRpc3BhdGNoKTtcbiAgICB9O1xuICB9XG5cbiAgaXNBY3RpdmUoc3RhdGU6IEVkaXRvclN0YXRlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgeyBzY2hlbWEgfSA9IHN0YXRlO1xuXG4gICAgY29uc3QgdHlwZSA9IHRoaXMuZ2V0VHlwZShzY2hlbWEpO1xuICAgIGlmICghdHlwZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBpc05vZGVBY3RpdmUoc3RhdGUsIHR5cGUpO1xuICB9XG5cbiAgY2FuRXhlY3V0ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGUoKShzdGF0ZSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTGlzdEl0ZW07XG4iXX0=