@xrenders/xflow
Version:
一款功能强大、易用灵活的流程编辑器框架,帮助你轻松构建复杂的工作流和流程产品
78 lines (77 loc) • 4.45 kB
JavaScript
;
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = withProvider;
require("antd/es/config-provider/style");
var _configProvider = _interopRequireDefault(require("antd/es/config-provider"));
var _tslib = require("tslib");
var _eventEmitter = require("./models/event-emitter");
var _react = _interopRequireWildcard(require("react"));
var _FlowProvider = require("./components/FlowProvider");
var _context = require("./models/context");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
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 = (0, _tslib.__rest)(props, ["configProvider", "widgets", "methods", "nodeSelector", "settings", "initialValues", "layout", "iconFontUrl", "globalConfig", "logPanel", "onMenuItemClick", "antdVersion", "readOnly", "clickAddNode", "onTesting", "openColorfulMode"]);
var settingMap = (0, _react.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.default.createElement(_configProvider.default, Object.assign({}, configProvider), /*#__PURE__*/_react.default.createElement(_context.ConfigContext.Provider, {
value: configContext
}, /*#__PURE__*/_react.default.createElement(_eventEmitter.EventEmitterContextProvider, null, /*#__PURE__*/_react.default.createElement(_FlowProvider.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.default.createElement(Element, Object.assign({}, restProps, {
initialValues: initialValues,
settings: settings
}))))));
};
}