UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

52 lines (51 loc) 3.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var react_1 = tslib_1.__importStar(require("react")); var index_1 = (0, tslib_1.__importDefault)(require("antd/lib/popover/index")); var index_2 = (0, tslib_1.__importDefault)(require("antd/lib/menu/index")); require("./index.scss"); var clipboard_1 = (0, tslib_1.__importDefault)(require("clipboard")); var msgsub_1 = (0, tslib_1.__importDefault)(require("../../utils/msgsub")); exports.default = (function (props) { var _a = (0, react_1.useState)(false), visible = _a[0], setVisible = _a[1]; (0, react_1.useEffect)(function () { if (document.querySelector(".lion-copybtn")) return; var lionBtn = document.createElement('button'); lionBtn.setAttribute("class", "lion-copybtn"); lionBtn.setAttribute("data-clipboard-action", "cut"); lionBtn.setAttribute("data-clipboard-text", ""); lionBtn.style.cssText = "display:none"; document.body.appendChild(lionBtn); }, []); (0, react_1.useEffect)(function () { if (window.clipboard) return; window.clipboard = new clipboard_1.default('.lion-copybtn'); window.clipboard.on('success', function (e) { var _a; msgsub_1.default._success('复制成功', (_a = props.env) === null || _a === void 0 ? void 0 : _a.getModalContainer); }); window.clipboard.on('error', function (e) { var _a; msgsub_1.default._error('复制失败', (_a = props.env) === null || _a === void 0 ? void 0 : _a.getModalContainer); }); }, []); var handleClick = function (e, value) { e === null || e === void 0 ? void 0 : e.domEvent.preventDefault(); var copyBtn = document.querySelector('.lion-copybtn'); copyBtn === null || copyBtn === void 0 ? void 0 : copyBtn.setAttribute('data-clipboard-text', value ? value : ''); copyBtn.click(); setVisible(false); }; var showItems = props.showItems, env = props.env, children = props.children; return (react_1.default.createElement(index_1.default, { visible: visible, overlayClassName: "lion-copy-item", destroyTooltipOnHide: true, placement: "bottom", arrowPointAtCenter: true, getPopupContainer: env === null || env === void 0 ? void 0 : env.getModalContainer, trigger: ["contextMenu"], onVisibleChange: function (visible) { setVisible(visible); }, content: react_1.default.createElement(index_2.default, null, showItems.map(function (item, index) { return react_1.default.createElement(index_2.default.Item, { onClick: function (e) { handleClick(e, item.value); }, key: index }, react_1.default.createElement("span", { className: item.icon, style: { marginRight: '10px' } }), item.label); })) }, children)); }); //# sourceMappingURL=./renderers/Lion/components/LionCopyItem/index.js.map