UNPKG

wangeditor

Version:

wangEditor - 轻量级 web 富文本编辑器,配置方便,使用简单,开源免费

57 lines (49 loc) 1.19 kB
/** * @description 整合差异备份和内容备份,进行统一管理 * @author fangzhicong */ import NodeCache from './node' import HtmlCache from './html' import Editor from '../../index' export default class ContentCache { /** * 内容备份的管理器 */ public cache?: HtmlCache | NodeCache constructor(public editor: Editor) {} /** * 初始化绑定 */ observe() { if (this.editor.isCompatibleMode) { // 兼容模式(内容备份) this.cache = new HtmlCache(this.editor) } else { // 标准模式(差异备份/节点备份) this.cache = new NodeCache(this.editor) } this.cache.observe() } /** * 保存 */ public save(mutations: MutationRecord[]) { if (this.editor.isCompatibleMode) { ;(this.cache as HtmlCache).save() } else { ;(this.cache as NodeCache).compile(mutations) } } /** * 撤销 */ public revoke() { return this.cache?.revoke() } /** * 恢复 */ public restore() { return this.cache?.restore() } }