UNPKG

@xrenders/xflow

Version:

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

145 lines (144 loc) 6.26 kB
"use strict"; 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 = void 0; require("antd/es/popover/style"); var _popover = _interopRequireDefault(require("antd/es/popover")); require("antd/es/button/style"); var _button = _interopRequireDefault(require("antd/es/button")); require("antd/es/tooltip/style"); var _tooltip = _interopRequireDefault(require("antd/es/tooltip")); var _react = require("@xyflow/react"); var _react2 = _interopRequireWildcard(require("react")); var _IconView = _interopRequireDefault(require("../../components/IconView")); var _utils = require("../../utils"); require("./index.css"); var _shortcutsName = _interopRequireDefault(require("./shortcuts-name")); 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 }; } var ZoomType; (function (ZoomType) { ZoomType["zoomIn"] = "zoomIn"; ZoomType["zoomOut"] = "zoomOut"; ZoomType["zoomToFit"] = "zoomToFit"; ZoomType["zoomTo25"] = "zoomTo25"; ZoomType["zoomTo50"] = "zoomTo50"; ZoomType["zoomTo75"] = "zoomTo75"; ZoomType["zoomTo100"] = "zoomTo100"; ZoomType["zoomTo200"] = "zoomTo200"; })(ZoomType || (ZoomType = {})); var ZOOM_IN_OUT_OPTIONS = [[{ key: ZoomType.zoomTo200, text: '200%' }, { key: ZoomType.zoomTo100, text: '100%' }, { key: ZoomType.zoomTo75, text: '75%' }, { key: ZoomType.zoomTo50, text: '50%' }, { key: ZoomType.zoomTo25, text: '25%' }], [{ key: ZoomType.zoomToFit, text: '自适应视图' }]]; var ZoomSelect = function ZoomSelect(_ref) { var handleZoom = _ref.handleZoom; return /*#__PURE__*/_react2.default.createElement("div", { className: 'fai-reactflow-zoom-select' }, ZOOM_IN_OUT_OPTIONS.map(function (options, i) { return /*#__PURE__*/_react2.default.createElement(_react2.Fragment, { key: i }, i !== 0 && /*#__PURE__*/_react2.default.createElement("div", { className: 'parting-line' }), /*#__PURE__*/_react2.default.createElement("div", { className: 'p-1' }, options.map(function (option) { return /*#__PURE__*/_react2.default.createElement("div", { className: 'zoom-item', key: option.key, onClick: function onClick() { return handleZoom(option.key); } }, option.text, option.key === ZoomType.zoomToFit && (/*#__PURE__*/_react2.default.createElement(_shortcutsName.default, { keys: ["".concat((0, _utils.getKeyboardKeyNameBySystem)('ctrl')), '1'] })), option.key === ZoomType.zoomTo50 && (/*#__PURE__*/_react2.default.createElement(_shortcutsName.default, { keys: ['shift', '5'] })), option.key === ZoomType.zoomTo100 && (/*#__PURE__*/_react2.default.createElement(_shortcutsName.default, { keys: ['shift', '1'] }))); }))); })); }; var ZoomInOut = function ZoomInOut() { var _useReactFlow = (0, _react.useReactFlow)(), zoomIn = _useReactFlow.zoomIn, zoomOut = _useReactFlow.zoomOut, zoomTo = _useReactFlow.zoomTo, fitView = _useReactFlow.fitView; var _useViewport = (0, _react.useViewport)(), zoom = _useViewport.zoom; var handleZoom = function handleZoom(type) { if (type === ZoomType.zoomToFit) fitView(); if (type === ZoomType.zoomTo25) zoomTo(0.25); if (type === ZoomType.zoomTo50) zoomTo(0.5); if (type === ZoomType.zoomTo75) zoomTo(0.75); if (type === ZoomType.zoomTo100) zoomTo(1); if (type === ZoomType.zoomTo200) zoomTo(2); }; return /*#__PURE__*/_react2.default.createElement("div", { className: 'fai-reactflow-zoominout' }, /*#__PURE__*/_react2.default.createElement(_tooltip.default, { title: "\u653E\u5927", getPopupContainer: function getPopupContainer() { return document.getElementById('xflow-container'); } }, /*#__PURE__*/_react2.default.createElement(_button.default, { type: 'text', icon: /*#__PURE__*/_react2.default.createElement(_IconView.default, { type: 'icon-zoom-out-line', className: 'icon' }), onClick: function onClick(e) { e.stopPropagation(); zoomOut(); } })), /*#__PURE__*/_react2.default.createElement("div", { style: { fontSize: '13px', fontWeight: 500, padding: '0 2px', textAlign: 'center', width: '32px' } }, /*#__PURE__*/_react2.default.createElement(_popover.default, { content: /*#__PURE__*/_react2.default.createElement(ZoomSelect, { handleZoom: handleZoom }), zIndex: 1000, trigger: 'click' }, parseFloat("".concat(zoom * 100)).toFixed(0), "%")), /*#__PURE__*/_react2.default.createElement(_tooltip.default, { title: "\u7F29\u5C0F", getPopupContainer: function getPopupContainer() { return document.getElementById('xflow-container'); } }, /*#__PURE__*/_react2.default.createElement(_button.default, { type: 'text', icon: /*#__PURE__*/_react2.default.createElement(_IconView.default, { type: 'icon-zoom-in-line', className: 'icon' }), onClick: function onClick(e) { e.stopPropagation(); zoomIn(); } }))); }; var _default = exports.default = /*#__PURE__*/(0, _react2.memo)(ZoomInOut);