mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-03-06 18:37:07 +00:00
Merge branch 'polyfill/vision' of gitlab.alibaba-inc.com:ali-lowcode/ali-lowcode-engine into polyfill/vision
# Conflicts: # packages/demo/src/vision/index.ts
This commit is contained in:
commit
8222f12d47
@ -327,37 +327,58 @@ function initActionPane() {
|
|||||||
|
|
||||||
// 操作历史与页面历史面板
|
// 操作历史与页面历史面板
|
||||||
function initHistoryPane() {
|
function initHistoryPane() {
|
||||||
|
// let historyConfigs = {getDesignerModuleConfigs(
|
||||||
|
// this.designerConfigs,
|
||||||
|
// 'history',
|
||||||
|
// )};
|
||||||
|
let historyConfigs = {
|
||||||
|
enableRedoAndUndo: true,
|
||||||
|
enablePageHistory: true,
|
||||||
|
};;
|
||||||
|
|
||||||
|
const isDemoMode = false;
|
||||||
|
const isEnvSupportsHistoryPane = true;
|
||||||
|
const historyManager = PageHistoryManager.getManager();
|
||||||
|
|
||||||
|
console.log('PageHistoryManager', historyManager);
|
||||||
|
console.log('PageHistoryManager.onOpenPane', historyManager.onOpenPane);
|
||||||
|
// 历史撤销、重做以及唤起页面历史按钮
|
||||||
if (typeof HistoryPane === 'function') {
|
if (typeof HistoryPane === 'function') {
|
||||||
Panes.add({
|
Panes.add(HistoryPane, {
|
||||||
...HistoryPane({
|
props : {
|
||||||
showPageHistory: true,
|
showPageHistory:
|
||||||
historyManager: PageHistoryManager.getManager(),
|
isEnvSupportsHistoryPane
|
||||||
historyConfigs: {
|
// && this.app.isForm()
|
||||||
enableRedoAndUndo: true,
|
&& !isDemoMode,
|
||||||
enablePageHistory: true,
|
historyManager,
|
||||||
},
|
historyConfigs,
|
||||||
}),
|
index: -940,
|
||||||
index: -940,
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
Panes.add({
|
Panes.add(HistoryPane, {
|
||||||
...HistoryPane,
|
|
||||||
index: -940,
|
index: -940,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 页面历史 UI 面板
|
// 页面历史 UI 面板
|
||||||
Panes.add(PageHistoryPane, {
|
if (
|
||||||
props : {
|
PageHistoryPane
|
||||||
historyManager: {
|
&& !isDemoMode
|
||||||
historyManager: PageHistoryManager.getManager(),
|
&& isEnvSupportsHistoryPane
|
||||||
app: {
|
) {
|
||||||
|
Panes.add(PageHistoryPane, {
|
||||||
}
|
props : {
|
||||||
|
historyManager: {
|
||||||
|
historyManager,
|
||||||
|
app: {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
index: -940,
|
||||||
},
|
},
|
||||||
index: -940,
|
});
|
||||||
},
|
}
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,12 +1,16 @@
|
|||||||
|
// all this file for polyfill vision logic
|
||||||
|
|
||||||
|
import { isValidElement } from 'react';
|
||||||
|
|
||||||
function getHotterFromSetter(setter) {
|
function getHotterFromSetter(setter) {
|
||||||
return setter && (setter.Hotter || (setter.type && setter.type.Hotter)) || []; // eslint-disable-line
|
return setter && (setter.Hotter || (setter.type && setter.type.Hotter)) || []; // eslint-disable-line
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTransducerFromSetter(setter) {
|
function getTransducerFromSetter(setter) {
|
||||||
return setter && (
|
return setter && (
|
||||||
setter.transducer || setter.Transducer
|
setter.transducer || setter.Transducer
|
||||||
|| (setter.type && (setter.type.transducer || setter.type.Transducer))
|
|| (setter.type && (setter.type.transducer || setter.type.Transducer))
|
||||||
) || null; // eslint-disable-line
|
) || null; // eslint-disable-line
|
||||||
}
|
}
|
||||||
|
|
||||||
function combineTransducer(transducer, arr, context) {
|
function combineTransducer(transducer, arr, context) {
|
||||||
@ -23,9 +27,22 @@ function combineTransducer(transducer, arr, context) {
|
|||||||
|
|
||||||
export class Transducer {
|
export class Transducer {
|
||||||
constructor(context, config) {
|
constructor(context, config) {
|
||||||
|
let { setter } = config;
|
||||||
|
|
||||||
|
// 1. validElement
|
||||||
|
// 2. SetterConfig
|
||||||
|
// 3. SetterConfig[]
|
||||||
|
if (Array.isArray(setter)) {
|
||||||
|
setter = setter[0];
|
||||||
|
} else if (isValidElement(setter) && setter.type.displayName === 'MixedSetter') {
|
||||||
|
setter = setter.props.setters[0];
|
||||||
|
} else if (typeof setter === 'object' && setter.componentName === 'MixedSetter') {
|
||||||
|
setter = setter.props.setters[0];
|
||||||
|
}
|
||||||
|
|
||||||
this.setterTransducer = combineTransducer(
|
this.setterTransducer = combineTransducer(
|
||||||
getTransducerFromSetter(config.setter),
|
getTransducerFromSetter(setter),
|
||||||
getHotterFromSetter(config.setter),
|
getHotterFromSetter(setter),
|
||||||
context,
|
context,
|
||||||
);
|
);
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
|||||||
@ -115,6 +115,8 @@ export default class MixedSetter extends Component<{
|
|||||||
className?: string;
|
className?: string;
|
||||||
}> {
|
}> {
|
||||||
private setters = nomalizeSetters(this.props.setters);
|
private setters = nomalizeSetters(this.props.setters);
|
||||||
|
// set name ,used in setting Transducer
|
||||||
|
static displayName = 'MixedSetter';
|
||||||
@obx.ref private used?: string;
|
@obx.ref private used?: string;
|
||||||
@computed private getCurrentSetter() {
|
@computed private getCurrentSetter() {
|
||||||
const { field } = this.props;
|
const { field } = this.props;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user