UNPKG

@xrenders/xflow

Version:

一款功能强大、易用灵活的流程编辑器框架,帮助你轻松构建复杂的工作流和流程产品

98 lines 4.65 kB
import "antd/es/space/style"; import _Space from "antd/es/space"; import classNames from 'classnames'; import React, { memo } from 'react'; import { shallow } from 'zustand/shallow'; import SourceHandle from '../../components/CustomNode/sourceHandle'; import TextEllipsis from '../../components/TextEllipsis'; import { useStore } from '../../hooks/useStore'; import { uuid } from '../../utils'; import "./index.css"; export default /*#__PURE__*/memo(function (props) { var _a; var data = props.data, position = props.position, isConnectable = props.isConnectable, selected = props.selected, isHovered = props.isHovered, _handleAddNode = props.handleAddNode, CustomNodeWidget = props.CustomNodeWidget, isSwitchBottom = props.isSwitchBottom, nodeSetting = props.nodeSetting; var parallelExtra = nodeSetting.parallelExtra; var _useStore = useStore(function (state) { return { nodes: state.nodes, edges: state.edges, mousePosition: state.mousePosition, addNodes: state.addNodes, addEdges: state.addEdges, onEdgesChange: state.onEdgesChange }; }, shallow), nodes = _useStore.nodes, edges = _useStore.edges; var renderTitle = function renderTitle(item, index) { var _a, _b, _c, _d; var defTitle = (item === null || item === void 0 ? void 0 : item.title) || "\u4E8B\u4EF6".concat(index); var title = (parallelExtra === null || parallelExtra === void 0 ? void 0 : parallelExtra.titleKey) ? item[parallelExtra === null || parallelExtra === void 0 ? void 0 : parallelExtra.titleKey] : defTitle; return /*#__PURE__*/React.createElement("div", { className: "item-header" }, /*#__PURE__*/React.createElement("div", { className: "item-title" }, title && (/*#__PURE__*/React.createElement(TextEllipsis, { text: title, // rows={1} // type="paragraph" className: "item-content-in" }))), /*#__PURE__*/React.createElement(SourceHandle, { position: position, isConnectable: ((_b = (_a = edges || []) === null || _a === void 0 ? void 0 : _a.filter(function (flow) { return (flow === null || flow === void 0 ? void 0 : flow.sourceHandle) === (item === null || item === void 0 ? void 0 : item._id); })) === null || _b === void 0 ? void 0 : _b.length) === 0, selected: selected, isHovered: isHovered, handleAddNode: function handleAddNode(data) { _handleAddNode(data, item === null || item === void 0 ? void 0 : item._id); }, id: item === null || item === void 0 ? void 0 : item._id, className: "item-handle", isConnected: ((_d = (_c = edges || []) === null || _c === void 0 ? void 0 : _c.filter(function (flow) { return (flow === null || flow === void 0 ? void 0 : flow.sourceHandle) === (item === null || item === void 0 ? void 0 : item._id); })) === null || _d === void 0 ? void 0 : _d.length) > 0 })); }; var renderContent = function renderContent(item, index) { var value = (parallelExtra === null || parallelExtra === void 0 ? void 0 : parallelExtra.valueKey) ? item[parallelExtra === null || parallelExtra === void 0 ? void 0 : parallelExtra.valueKey] : item === null || item === void 0 ? void 0 : item.value; return /*#__PURE__*/React.createElement("div", { className: "item-content" }, CustomNodeWidget ? (/*#__PURE__*/React.createElement(CustomNodeWidget, { data: item, index: index })) : (/*#__PURE__*/React.createElement("div", null, value && (/*#__PURE__*/React.createElement("div", { className: "item-content-in" }, /*#__PURE__*/React.createElement(TextEllipsis, { text: value, rows: 5, type: "paragraph" })))))); }; return /*#__PURE__*/React.createElement(_Space, { direction: isSwitchBottom ? 'horizontal' : 'vertical', className: classNames('node-parallel-widget', { 'node-parallel-widget-bottom': isSwitchBottom }), size: 5 }, (_a = (data === null || data === void 0 ? void 0 : data.list) || [{ _id: "id_".concat(uuid()) }, { _id: "id_".concat(uuid()) }]) === null || _a === void 0 ? void 0 : _a.map(function (item, index) { return /*#__PURE__*/React.createElement("div", { className: classNames('node-parallel-widget-item', { 'node-parallel-bottom-item': isSwitchBottom }), key: index }, isSwitchBottom ? (/*#__PURE__*/React.createElement(React.Fragment, null, renderContent(item, index), renderTitle(item, index))) : (/*#__PURE__*/React.createElement(React.Fragment, null, renderTitle(item, index), renderContent(item, index)))); })); });