diff --git a/docs/api/editor/codeBlockServiceMethods.md b/docs/api/editor/codeBlockServiceMethods.md index 87f89670..18a5f672 100644 --- a/docs/api/editor/codeBlockServiceMethods.md +++ b/docs/api/editor/codeBlockServiceMethods.md @@ -355,3 +355,22 @@ - `{Promise}` - **详情:** + +## use + +使用中间件的方式扩展方法,上述方法中标记有`扩展支持: 是`的方法都支持使用use扩展 + +## usePlugin + +- **详情:** + +相对于[use](#use), usePlugin支持更加灵活更加细致的扩展, 上述方法中标记有`扩展支持: 是`的方法都支持使用usePlugin扩展 + +每个支持扩展的方法都支持定制before、after两个hook来干预原有方法的行为,before可以用于修改传入参数,after可以用于修改返回的值 + +## removeAllPlugins + +- **详情:** + +删掉当前设置的所有扩展 + diff --git a/docs/api/editor/editorServiceEvents.md b/docs/api/editor/editorServiceEvents.md index 706f7a01..2288f6ee 100644 --- a/docs/api/editor/editorServiceEvents.md +++ b/docs/api/editor/editorServiceEvents.md @@ -5,7 +5,7 @@ - **详情:** dsl跟节点发生变化,[editorService.set('root', {})](./editorServiceMethods.md#set)后触发 -- **回调函数:** (value: [MApp](https://github.com/Tencent/tmagic-editor/blob/239b5d3efeae916a8cf3e3566d88063ecccc0553/packages/schema/src/index.ts?plain=1#L66-L73) => void +- **回调函数:** (value: [MApp](https://github.com/Tencent/tmagic-editor/blob/239b5d3efeae916a8cf3e3566d88063ecccc0553/packages/schema/src/index.ts?plain=1#L66-L73), preValue: [MApp](https://github.com/Tencent/tmagic-editor/blob/239b5d3efeae916a8cf3e3566d88063ecccc0553/packages/schema/src/index.ts?plain=1#L66-L73)) => void ## select diff --git a/docs/api/editor/editorServiceMethods.md b/docs/api/editor/editorServiceMethods.md index 44ef6ab2..880cd7b7 100644 --- a/docs/api/editor/editorServiceMethods.md +++ b/docs/api/editor/editorServiceMethods.md @@ -581,12 +581,6 @@ alignCenter可以支持一次水平居中多个组件,alignCenter是通过调 更新当前选中组件位置,通常用于键盘上下左右快捷键操作 -## destroy - -- **详情:** - - 销毁editorService - ## resetModifiedNodeId - **详情:** @@ -629,4 +623,81 @@ alignCenter可以支持一次水平居中多个组件,alignCenter是通过调 - **详情:** - 设置代码块到dsl的codeBlocks字段 \ No newline at end of file + 设置代码块到dsl的codeBlocks字段 + +## resetState + +- **详情:** + +清空state + +## destroy + +- **详情:** + + 销毁editorService + + 移除所有事件监听,清空state,移除所有插件 + +## use + +使用中间件的方式扩展方法,上述方法中标记有`扩展支持: 是`的方法都支持使用use扩展 + +- **示例:** + +```js +import { editorService, getAddParent } from '@tmagic/editor'; +import { ElMessageBox } from 'element-plus'; + +editorService.use({ + // 添加是否删除节点确认提示 + async remove(node, next) { + await ElMessageBox.confirm('是否删除', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }); + + next(); + }, + + add(node, next) { + // text组件只能添加到container中 + const parentNode = getAddParent(node); + if (node.type === 'text' && parentNode?.type !== 'container') { + return; + } + + next(); + }, +}); +``` + +## usePlugin + +- **详情:** + +相对于[use](#use), usePlugin支持更加灵活更加细致的扩展, 上述方法中标记有`扩展支持: 是`的方法都支持使用usePlugin扩展 + +每个支持扩展的方法都支持定制before、after两个hook来干预原有方法的行为,before可以用于修改传入参数,after可以用于修改返回的值 + +- **示例:** + +```js +import { editorService } from '@tmagic/editor'; + +editorService.usePlugin({ + // 添加组件的时候设置一个添加时间 + beforeDoAdd: (config, parent) => { + config.addTime = new Date().getTime(); + + return [config, parent]; + }, +}); +``` + +## removeAllPlugins + +- **详情:** + +删掉当前设置的所有扩展 diff --git a/docs/api/editor/propsServiceMethods.md b/docs/api/editor/propsServiceMethods.md index 7a876112..d496a6f8 100644 --- a/docs/api/editor/propsServiceMethods.md +++ b/docs/api/editor/propsServiceMethods.md @@ -159,8 +159,32 @@ 获取默认属性配置 +## resetState + +- **详情:** + +情况所有组件的属性配置与初始值 + ## destroy - **详情:** 销毁propsService + +## use + +使用中间件的方式扩展方法,上述方法中标记有`扩展支持: 是`的方法都支持使用use扩展 + +## usePlugin + +- **详情:** + +相对于[use](#use), usePlugin支持更加灵活更加细致的扩展, 上述方法中标记有`扩展支持: 是`的方法都支持使用usePlugin扩展 + +每个支持扩展的方法都支持定制before、after两个hook来干预原有方法的行为,before可以用于修改传入参数,after可以用于修改返回的值 + +## removeAllPlugins + +- **详情:** + +删掉当前设置的所有扩展 diff --git a/docs/api/editor/storageServiceMethods.md b/docs/api/editor/storageServiceMethods.md index fda9c4ac..3ba84d50 100644 --- a/docs/api/editor/storageServiceMethods.md +++ b/docs/api/editor/storageServiceMethods.md @@ -107,3 +107,22 @@ - `{Promise}` - **详情:** + +## use + +使用中间件的方式扩展方法,上述方法中标记有`扩展支持: 是`的方法都支持使用use扩展 + +## usePlugin + +- **详情:** + +相对于[use](#use), usePlugin支持更加灵活更加细致的扩展, 上述方法中标记有`扩展支持: 是`的方法都支持使用usePlugin扩展 + +每个支持扩展的方法都支持定制before、after两个hook来干预原有方法的行为,before可以用于修改传入参数,after可以用于修改返回的值 + +## removeAllPlugins + +- **详情:** + +删掉当前设置的所有扩展 + diff --git a/docs/api/editor/uiServiceMethods.md b/docs/api/editor/uiServiceMethods.md index 863456b1..b95b0836 100644 --- a/docs/api/editor/uiServiceMethods.md +++ b/docs/api/editor/uiServiceMethods.md @@ -27,3 +27,22 @@ - **详情:** 计算出缩放以适应的倍数 + +## use + +使用中间件的方式扩展方法,上述方法中标记有`扩展支持: 是`的方法都支持使用use扩展 + +## usePlugin + +- **详情:** + +相对于[use](#use), usePlugin支持更加灵活更加细致的扩展, 上述方法中标记有`扩展支持: 是`的方法都支持使用usePlugin扩展 + +每个支持扩展的方法都支持定制before、after两个hook来干预原有方法的行为,before可以用于修改传入参数,after可以用于修改返回的值 + +## removeAllPlugins + +- **详情:** + +删掉当前设置的所有扩展 +