mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-03-01 05:30:40 +00:00
60 lines
2.3 KiB
TypeScript
60 lines
2.3 KiB
TypeScript
import { editor, designer, designerCabin } from '@ali/lowcode-engine';
|
|
import bus from './bus';
|
|
import { VE_EVENTS } from './base/const';
|
|
|
|
import { deepValueParser } from './props-reducers/deep-value-reducer';
|
|
import { liveEditingRule, liveEditingSaveHander } from './vc-live-editing';
|
|
import {
|
|
compatibleReducer,
|
|
upgradePageLifeCyclesReducer,
|
|
stylePropsReducer,
|
|
upgradePropsReducer,
|
|
filterReducer,
|
|
removeEmptyPropsReducer,
|
|
initNodeReducer,
|
|
liveLifecycleReducer,
|
|
nodeTopFixedReducer,
|
|
} from './props-reducers';
|
|
|
|
const { LiveEditing, TransformStage } = designerCabin;
|
|
|
|
// 清理引擎自带的规则和保存函数,会影响 vc i18n 的保存
|
|
LiveEditing.clearLiveEditingSpecificRule();
|
|
LiveEditing.clearLiveEditingSaveHandler();
|
|
LiveEditing.addLiveEditingSpecificRule(liveEditingRule);
|
|
LiveEditing.addLiveEditingSaveHandler(liveEditingSaveHander);
|
|
|
|
designer.project.onCurrentDocumentChange((doc) => {
|
|
bus.emit(VE_EVENTS.VE_PAGE_PAGE_READY);
|
|
editor.set('currentDocument', doc);
|
|
});
|
|
|
|
// 升级 Props
|
|
designer.addPropsReducer(upgradePropsReducer, TransformStage.Upgrade);
|
|
|
|
// 节点 props 初始化
|
|
designer.addPropsReducer(initNodeReducer, TransformStage.Init);
|
|
|
|
designer.addPropsReducer(liveLifecycleReducer, TransformStage.Render);
|
|
|
|
designer.addPropsReducer(filterReducer, TransformStage.Save);
|
|
designer.addPropsReducer(filterReducer, TransformStage.Render);
|
|
|
|
// FIXME: Dirty fix, will remove this reducer
|
|
designer.addPropsReducer(compatibleReducer, TransformStage.Save);
|
|
// 兼容历史版本的 Page 组件
|
|
designer.addPropsReducer(upgradePageLifeCyclesReducer, TransformStage.Save);
|
|
|
|
// 设计器组件样式处理
|
|
designer.addPropsReducer(stylePropsReducer, TransformStage.Render);
|
|
// 国际化 & Expression 渲染时处理
|
|
designer.addPropsReducer(deepValueParser, TransformStage.Render);
|
|
|
|
// Init 的时候没有拿到 dataSource, 只能在 Render 和 Save 的时候都调用一次,理论上执行时机在 Init
|
|
// Render 和 Save 都要各调用一次,感觉也是有问题的,是不是应该在 Render 执行一次就行了?见上 filterReducer 也是一样的处理方式。
|
|
designer.addPropsReducer(removeEmptyPropsReducer, TransformStage.Render);
|
|
designer.addPropsReducer(removeEmptyPropsReducer, TransformStage.Save);
|
|
|
|
designer.addPropsReducer(nodeTopFixedReducer, TransformStage.Render);
|
|
designer.addPropsReducer(nodeTopFixedReducer, TransformStage.Save);
|