UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

215 lines (174 loc) 6.89 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _button = _interopRequireDefault(require("../button")); var _LocaleReceiver = _interopRequireDefault(require("../locale-provider/LocaleReceiver")); var _locale = require("./locale"); var _dialog = _interopRequireDefault(require("../rc-components/dialog")); var _addEventListener = _interopRequireDefault(require("../_util/addEventListener")); var _configure = require("../configure"); function _createSuper(Derived) { function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } return function () { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (isNativeReflectConstruct()) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } var mousePosition; var mousePositionEventBinded; var Modal = /*#__PURE__*/ function (_Component) { (0, _inherits2["default"])(Modal, _Component); var _super = _createSuper(Modal); function Modal() { var _this; (0, _classCallCheck2["default"])(this, Modal); _this = _super.apply(this, arguments); _this.handleCancel = function (e) { var onCancel = _this.props.onCancel; if (onCancel) { onCancel(e); } }; _this.handleOk = function (e) { var onOk = _this.props.onOk; if (onOk) { onOk(e); } }; _this.renderFooter = function (locale) { var _this$props = _this.props, okText = _this$props.okText, okType = _this$props.okType, cancelText = _this$props.cancelText, confirmLoading = _this$props.confirmLoading, funcType = _this$props.funcType, disableOk = _this$props.disableOk, disableCancel = _this$props.disableCancel, cancelButtonProps = _this$props.cancelButtonProps, okButtonProps = _this$props.okButtonProps; return _react["default"].createElement("div", null, _react["default"].createElement(_button["default"], (0, _extends2["default"])({ disabled: disableCancel || confirmLoading, onClick: _this.handleCancel, funcType: funcType }, cancelButtonProps), cancelText || locale.cancelText), _react["default"].createElement(_button["default"], (0, _extends2["default"])({ type: okType, funcType: funcType, disabled: disableOk, loading: confirmLoading, onClick: _this.handleOk }, okButtonProps), okText || locale.okText)); }; return _this; } (0, _createClass2["default"])(Modal, [{ key: "componentDidMount", value: function componentDidMount() { if (mousePositionEventBinded) { return; } // 只有点击事件支持从鼠标位置动画展开 (0, _addEventListener["default"])(document.documentElement, 'click', function (e) { mousePosition = { x: e.pageX, y: e.pageY }; // 100ms 内发生过点击事件,则从点击位置动画展示 // 否则直接 zoom 展示 // 这样可以兼容非点击方式展开 setTimeout(function () { return mousePosition = null; }, 100); }); mousePositionEventBinded = true; } }, { key: "render", value: function render() { var _this$props2 = this.props, footer = _this$props2.footer, visible = _this$props2.visible, customizePrefixCls = _this$props2.prefixCls; var prefixCls = (0, _configure.getPrefixCls)('modal', customizePrefixCls); var defaultFooter = _react["default"].createElement(_LocaleReceiver["default"], { componentName: "Modal", defaultLocale: (0, _locale.getConfirmLocale)() }, this.renderFooter); return _react["default"].createElement(_dialog["default"], (0, _extends2["default"])({}, this.props, { prefixCls: prefixCls, footer: footer === undefined ? defaultFooter : footer, visible: visible, mousePosition: mousePosition, onClose: this.handleCancel })); } }]); return Modal; }(_react.Component); exports["default"] = Modal; Modal.displayName = 'Modal'; Modal.defaultProps = { width: 520, transitionName: 'zoom', maskTransitionName: 'fade', confirmLoading: false, disableOk: false, disableCancel: false, visible: false, okType: 'primary', center: false, keyboard: (0, _configure.getConfig)('modalKeyboard') }; Modal.propTypes = { prefixCls: _propTypes["default"].string, onOk: _propTypes["default"].func, onCancel: _propTypes["default"].func, okText: _propTypes["default"].node, cancelText: _propTypes["default"].node, width: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]), confirmLoading: _propTypes["default"].bool, visible: _propTypes["default"].bool, align: _propTypes["default"].object, footer: _propTypes["default"].node, title: _propTypes["default"].node, closable: _propTypes["default"].bool, transitionName: _propTypes["default"].string, funcType: _propTypes["default"].string, center: _propTypes["default"].bool, disableOk: _propTypes["default"].bool, disableCancel: _propTypes["default"].bool, keyboard: _propTypes["default"].bool, okType: _propTypes["default"].string, maskTransitionName: _propTypes["default"].string, okButtonProps: _propTypes["default"].object, cancelButtonProps: _propTypes["default"].object }; //# sourceMappingURL=Modal.js.map