@xrenders/xflow
Version:
一款功能强大、易用灵活的流程编辑器框架,帮助你轻松构建复杂的工作流和流程产品
68 lines • 3.01 kB
JavaScript
import "antd/es/config-provider/style";
import _ConfigProvider from "antd/es/config-provider";
import { __rest } from "tslib";
import { EventEmitterContextProvider } from './models/event-emitter';
import React, { useMemo } from 'react';
import { FlowProviderWrapper } from './components/FlowProvider';
import { ConfigContext } from './models/context';
export default function withProvider(Element, defaultWidgets) {
return function (props) {
var configProvider = props.configProvider,
widgets = props.widgets,
methods = props.methods,
nodeSelector = props.nodeSelector,
settings = props.settings,
initialValues = props.initialValues,
layout = props.layout,
iconFontUrl = props.iconFontUrl,
globalConfig = props.globalConfig,
logPanel = props.logPanel,
onMenuItemClick = props.onMenuItemClick,
_props$antdVersion = props.antdVersion,
antdVersion = _props$antdVersion === void 0 ? 'V5' : _props$antdVersion,
readOnly = props.readOnly,
clickAddNode = props.clickAddNode,
onTesting = props.onTesting,
openColorfulMode = props.openColorfulMode,
restProps = __rest(props, ["configProvider", "widgets", "methods", "nodeSelector", "settings", "initialValues", "layout", "iconFontUrl", "globalConfig", "logPanel", "onMenuItemClick", "antdVersion", "readOnly", "clickAddNode", "onTesting", "openColorfulMode"]);
var settingMap = useMemo(function () {
var obj = {};
settings === null || settings === void 0 ? void 0 : settings.forEach(function (node) {
if (node.type !== '_group') {
obj[node.type] = node;
} else {
node.items.forEach(function (item) {
obj[item.type] = item;
});
}
});
return obj;
}, [settings]);
var configContext = {
methods: methods,
nodeSelector: nodeSelector,
settings: settings,
settingMap: settingMap,
iconFontUrl: iconFontUrl,
globalConfig: globalConfig,
logPanel: logPanel,
antdVersion: antdVersion,
onMenuItemClick: onMenuItemClick,
readOnly: readOnly,
clickAddNode: clickAddNode,
onTesting: onTesting,
openColorfulMode: openColorfulMode,
widgets: Object.assign(Object.assign({}, defaultWidgets), widgets)
};
return /*#__PURE__*/React.createElement(_ConfigProvider, Object.assign({}, configProvider), /*#__PURE__*/React.createElement(ConfigContext.Provider, {
value: configContext
}, /*#__PURE__*/React.createElement(EventEmitterContextProvider, null, /*#__PURE__*/React.createElement(FlowProviderWrapper, {
nodes: initialValues === null || initialValues === void 0 ? void 0 : initialValues.nodes,
edges: initialValues === null || initialValues === void 0 ? void 0 : initialValues.edges,
layout: layout
}, /*#__PURE__*/React.createElement(Element, Object.assign({}, restProps, {
initialValues: initialValues,
settings: settings
}))))));
};
}