UNPKG

acud

Version:

acg react 组件库

145 lines (144 loc) • 6.19 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var React = _interopRequireWildcard(require("react")); var _rcDialog = _interopRequireDefault(require("rc-dialog")); var _FilledError = _interopRequireDefault(require("acud-icon/lib/icons/FilledError")); var _OutlinedClose = _interopRequireDefault(require("acud-icon/lib/icons/OutlinedClose")); var _FilledSuccess = _interopRequireDefault(require("acud-icon/lib/icons/FilledSuccess")); var _FilledWarn = _interopRequireDefault(require("acud-icon/lib/icons/FilledWarn")); var _FilledInfo = _interopRequireDefault(require("acud-icon/lib/icons/FilledInfo")); var _classnames = _interopRequireDefault(require("classnames")); var _configProvider = require("../config-provider"); var _button = _interopRequireDefault(require("../button")); var _styleChecker = require("../_util/styleChecker"); var _motion = require("../_util/motion"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } var mousePosition; // 100ms 内发生过点击事件,则从点击位置动画展示 var getClickPosition = function getClickPosition(e) { mousePosition = { x: e.pageX, y: e.pageY }; setTimeout(function () { mousePosition = null; }, 100); }; // 只有点击事件支持从鼠标位置动画展开 if ((0, _styleChecker.canUseDocElement)()) { document.documentElement.addEventListener('click', getClickPosition, true); } // type SizeType = 'small' | 'normal' | 'large' | 'extraLarge'; var SizeType; (function (SizeType) { SizeType["small"] = "sm"; SizeType["normal"] = "md"; SizeType["large"] = "lg"; SizeType["extraLarge"] = "xl"; })(SizeType || (SizeType = {})); ; var DialogType = { sucess: { className: 'sucess', icon: /*#__PURE__*/React.createElement(_FilledSuccess["default"], { color: "@S6" }) }, warning: { className: 'warning', icon: /*#__PURE__*/React.createElement(_FilledWarn["default"], { color: "@W6" }) }, info: { className: 'info', icon: /*#__PURE__*/React.createElement(_FilledInfo["default"], { color: "@B6" }) }, error: { className: 'error', icon: /*#__PURE__*/React.createElement(_FilledError["default"], { color: "@E6" }) } }; var DialogBox = function DialogBox(props) { var _React$useContext = React.useContext(_configProvider.ConfigContext), getPopupContainer = _React$useContext.getPopupContainer, getPrefixCls = _React$useContext.getPrefixCls; var prefixCls = getPrefixCls('dialogbox'); var rootPrefixCls = getPrefixCls(); var handleCancel = function handleCancel(e) { var _a; var onCancel = props.onCancel; if (((_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.className) === "".concat(prefixCls, "-wrap")) { return; } onCancel === null || onCancel === void 0 ? void 0 : onCancel(e); }; var handleOk = function handleOk(e) { var onOk = props.onOk; onOk === null || onOk === void 0 ? void 0 : onOk(e); }; var defaultRenderFooter = function defaultRenderFooter() { var okText = props.okText, cancelText = props.cancelText, confirmLoading = props.confirmLoading; return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_button["default"], { onClick: handleCancel, type: "default" }, cancelText || '取消'), /*#__PURE__*/React.createElement(_button["default"], { onClick: handleOk, loading: confirmLoading, type: "primary" }, okText || '确定')); }; var closeIconToRender = /*#__PURE__*/React.createElement("span", { className: "".concat(prefixCls, "-close-x") }, /*#__PURE__*/React.createElement(_OutlinedClose["default"], { className: "".concat(prefixCls, "-close-icon") })); var visible = props.visible, size = props.size, className = props.className, title = props.title, content = props.content, type = props.type, footer = props.footer; return /*#__PURE__*/React.createElement(_rcDialog["default"], (0, _extends2["default"])({}, props, { footer: footer || defaultRenderFooter(), title: "", width: 400, className: (0, _classnames["default"])(className, "".concat(prefixCls, "-").concat(SizeType[size])), getContainer: getPopupContainer, prefixCls: prefixCls, visible: visible, mousePosition: mousePosition, onClose: handleCancel, transitionName: (0, _motion.getTransitionName)(rootPrefixCls, 'zoom'), maskTransitionName: (0, _motion.getTransitionName)(rootPrefixCls, 'fade'), closeIcon: closeIconToRender }), /*#__PURE__*/React.createElement("div", { className: "".concat(prefixCls, "-content-con") }, /*#__PURE__*/React.createElement("div", { className: (0, _classnames["default"])((DialogType[type] || 'warning').className, "".concat(prefixCls, "-content-icon")) }, DialogType[type].icon), /*#__PURE__*/React.createElement("div", null, title && /*#__PURE__*/React.createElement("div", { className: "".concat(prefixCls, "-content-title") }, title), /*#__PURE__*/React.createElement("div", { className: "".concat(prefixCls, "-content-text") }, content)))); }; DialogBox.defaultProps = { size: 'small', visible: false, confirmLoading: false, type: 'warning' }; var _default = exports["default"] = DialogBox;