ngx-editor
Version:
The Rich Text Editor for Angular, Built on ProseMirror
30 lines • 3.14 kB
JavaScript
import { Plugin, PluginKey } from 'prosemirror-state';
const editablePlugin = (editable = true) => {
return new Plugin({
key: new PluginKey('editable'),
state: {
init() {
return editable;
},
apply(tr, previousVal) {
return tr.getMeta('UPDATE_EDITABLE') ?? previousVal;
},
},
props: {
editable(state) {
return this.getState(state);
},
attributes(state) {
const isEnabled = this.getState(state);
if (isEnabled) {
return null;
}
return {
class: 'NgxEditor__Content--Disabled',
};
},
},
});
};
export default editablePlugin;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZWRpdG9yL3NyYy9saWIvcGx1Z2lucy9lZGl0YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsTUFBTSxFQUFFLFNBQVMsRUFBZSxNQUFNLG1CQUFtQixDQUFDO0FBRWhGLE1BQU0sY0FBYyxHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksRUFBVSxFQUFFO0lBQ2pELE9BQU8sSUFBSSxNQUFNLENBQUM7UUFDaEIsR0FBRyxFQUFFLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQztRQUM5QixLQUFLLEVBQUU7WUFDTCxJQUFJO2dCQUNGLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLENBQUM7WUFDRCxLQUFLLENBQUMsRUFBZSxFQUFFLFdBQW9CO2dCQUN6QyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxXQUFXLENBQUM7WUFDdEQsQ0FBQztTQUNGO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsUUFBUSxDQUFDLEtBQWtCO2dCQUN6QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsQ0FBQztZQUNELFVBQVUsQ0FBQyxLQUFrQjtnQkFDM0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFdkMsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsT0FBTyxJQUFJLENBQUM7aUJBQ2I7Z0JBRUQsT0FBTztvQkFDTCxLQUFLLEVBQUUsOEJBQThCO2lCQUN0QyxDQUFDO1lBQ0osQ0FBQztTQUNGO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsZUFBZSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3JTdGF0ZSwgUGx1Z2luLCBQbHVnaW5LZXksIFRyYW5zYWN0aW9uIH0gZnJvbSAncHJvc2VtaXJyb3Itc3RhdGUnO1xuXG5jb25zdCBlZGl0YWJsZVBsdWdpbiA9IChlZGl0YWJsZSA9IHRydWUpOiBQbHVnaW4gPT4ge1xuICByZXR1cm4gbmV3IFBsdWdpbih7XG4gICAga2V5OiBuZXcgUGx1Z2luS2V5KCdlZGl0YWJsZScpLFxuICAgIHN0YXRlOiB7XG4gICAgICBpbml0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZWRpdGFibGU7XG4gICAgICB9LFxuICAgICAgYXBwbHkodHI6IFRyYW5zYWN0aW9uLCBwcmV2aW91c1ZhbDogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHIuZ2V0TWV0YSgnVVBEQVRFX0VESVRBQkxFJykgPz8gcHJldmlvdXNWYWw7XG4gICAgICB9LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgIGVkaXRhYmxlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGF0ZShzdGF0ZSk7XG4gICAgICB9LFxuICAgICAgYXR0cmlidXRlcyhzdGF0ZTogRWRpdG9yU3RhdGUpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGlzRW5hYmxlZCA9IHRoaXMuZ2V0U3RhdGUoc3RhdGUpO1xuXG4gICAgICAgIGlmIChpc0VuYWJsZWQpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY2xhc3M6ICdOZ3hFZGl0b3JfX0NvbnRlbnQtLURpc2FibGVkJyxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBlZGl0YWJsZVBsdWdpbjtcbiJdfQ==