ngx-editor
Version:
Rich Text Editor for angular using 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZWRpdG9yL3NyYy9saWIvcGx1Z2lucy9lZGl0YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsTUFBTSxFQUFFLFNBQVMsRUFBZSxNQUFNLG1CQUFtQixDQUFDO0FBRWhGLE1BQU0sY0FBYyxHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksRUFBVSxFQUFFO0lBQ2pELE9BQU8sSUFBSSxNQUFNLENBQUM7UUFDaEIsR0FBRyxFQUFFLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQztRQUM5QixLQUFLLEVBQUU7WUFDTCxJQUFJO2dCQUNGLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLENBQUM7WUFDRCxLQUFLLENBQUMsRUFBZSxFQUFFLFdBQW9CO2dCQUN6QyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxXQUFXLENBQUM7WUFDdEQsQ0FBQztTQUNGO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsUUFBUSxDQUFDLEtBQWtCO2dCQUN6QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsQ0FBQztZQUNELFVBQVUsQ0FBQyxLQUFrQjtnQkFDM0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFdkMsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsT0FBTyxJQUFJLENBQUM7aUJBQ2I7Z0JBRUQsT0FBTztvQkFDTCxLQUFLLEVBQUUsOEJBQThCO2lCQUN0QyxDQUFDO1lBQ0osQ0FBQztTQUNGO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsZUFBZSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3JTdGF0ZSwgUGx1Z2luLCBQbHVnaW5LZXksIFRyYW5zYWN0aW9uIH0gZnJvbSAncHJvc2VtaXJyb3Itc3RhdGUnO1xuXG5jb25zdCBlZGl0YWJsZVBsdWdpbiA9IChlZGl0YWJsZSA9IHRydWUpOiBQbHVnaW4gPT4ge1xuICByZXR1cm4gbmV3IFBsdWdpbih7XG4gICAga2V5OiBuZXcgUGx1Z2luS2V5KCdlZGl0YWJsZScpLFxuICAgIHN0YXRlOiB7XG4gICAgICBpbml0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZWRpdGFibGU7XG4gICAgICB9LFxuICAgICAgYXBwbHkodHI6IFRyYW5zYWN0aW9uLCBwcmV2aW91c1ZhbDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0ci5nZXRNZXRhKCdVUERBVEVfRURJVEFCTEUnKSA/PyBwcmV2aW91c1ZhbDtcbiAgICAgIH0sXG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgZWRpdGFibGUoc3RhdGU6IEVkaXRvclN0YXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFN0YXRlKHN0YXRlKTtcbiAgICAgIH0sXG4gICAgICBhdHRyaWJ1dGVzKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBudWxsIHtcbiAgICAgICAgY29uc3QgaXNFbmFibGVkID0gdGhpcy5nZXRTdGF0ZShzdGF0ZSk7XG5cbiAgICAgICAgaWYgKGlzRW5hYmxlZCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjbGFzczogJ05neEVkaXRvcl9fQ29udGVudC0tRGlzYWJsZWQnLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGVkaXRhYmxlUGx1Z2luO1xuIl19