UNPKG

7.01 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5var _typeof = require("@babel/runtime/helpers/typeof");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports["default"] = exports.destroyFns = void 0;
11
12var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
14var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
16var React = _interopRequireWildcard(require("react"));
17
18var _rcDialog = _interopRequireDefault(require("rc-dialog"));
19
20var _classnames = _interopRequireDefault(require("classnames"));
21
22var _CloseOutlined = _interopRequireDefault(require("@ant-design/icons/CloseOutlined"));
23
24var _useModal = _interopRequireDefault(require("./useModal"));
25
26var _locale = require("./locale");
27
28var _button = _interopRequireDefault(require("../button"));
29
30var _button2 = require("../button/button");
31
32var _LocaleReceiver = _interopRequireDefault(require("../locale-provider/LocaleReceiver"));
33
34var _configProvider = require("../config-provider");
35
36var _styleChecker = require("../_util/styleChecker");
37
38var _motion = require("../_util/motion");
39
40function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
41
42function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
44var __rest = void 0 && (void 0).__rest || function (s, e) {
45 var t = {};
46
47 for (var p in s) {
48 if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
49 }
50
51 if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
52 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
53 }
54 return t;
55};
56
57var mousePosition;
58var destroyFns = []; // ref: https://github.com/ant-design/ant-design/issues/15795
59
60exports.destroyFns = destroyFns;
61
62var getClickPosition = function getClickPosition(e) {
63 mousePosition = {
64 x: e.pageX,
65 y: e.pageY
66 }; // 100ms 内发生过点击事件,则从点击位置动画展示
67 // 否则直接 zoom 展示
68 // 这样可以兼容非点击方式展开
69
70 setTimeout(function () {
71 mousePosition = null;
72 }, 100);
73}; // 只有点击事件支持从鼠标位置动画展开
74
75
76if ((0, _styleChecker.canUseDocElement)()) {
77 document.documentElement.addEventListener('click', getClickPosition, true);
78}
79
80var Modal = function Modal(props) {
81 var _classNames;
82
83 var _React$useContext = React.useContext(_configProvider.ConfigContext),
84 getContextPopupContainer = _React$useContext.getPopupContainer,
85 getPrefixCls = _React$useContext.getPrefixCls,
86 direction = _React$useContext.direction;
87
88 var handleCancel = function handleCancel(e) {
89 var onCancel = props.onCancel;
90 onCancel === null || onCancel === void 0 ? void 0 : onCancel(e);
91 };
92
93 var handleOk = function handleOk(e) {
94 var onOk = props.onOk;
95 onOk === null || onOk === void 0 ? void 0 : onOk(e);
96 };
97
98 var renderFooter = function renderFooter(locale) {
99 var okText = props.okText,
100 okType = props.okType,
101 cancelText = props.cancelText,
102 confirmLoading = props.confirmLoading;
103 return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_button["default"], (0, _extends2["default"])({
104 onClick: handleCancel
105 }, props.cancelButtonProps), cancelText || locale.cancelText), /*#__PURE__*/React.createElement(_button["default"], (0, _extends2["default"])({}, (0, _button2.convertLegacyProps)(okType), {
106 loading: confirmLoading,
107 onClick: handleOk
108 }, props.okButtonProps), okText || locale.okText));
109 };
110
111 var customizePrefixCls = props.prefixCls,
112 footer = props.footer,
113 visible = props.visible,
114 wrapClassName = props.wrapClassName,
115 centered = props.centered,
116 getContainer = props.getContainer,
117 closeIcon = props.closeIcon,
118 _props$focusTriggerAf = props.focusTriggerAfterClose,
119 focusTriggerAfterClose = _props$focusTriggerAf === void 0 ? true : _props$focusTriggerAf,
120 restProps = __rest(props, ["prefixCls", "footer", "visible", "wrapClassName", "centered", "getContainer", "closeIcon", "focusTriggerAfterClose"]);
121
122 var prefixCls = getPrefixCls('modal', customizePrefixCls);
123 var rootPrefixCls = getPrefixCls();
124 var defaultFooter = /*#__PURE__*/React.createElement(_LocaleReceiver["default"], {
125 componentName: "Modal",
126 defaultLocale: (0, _locale.getConfirmLocale)()
127 }, renderFooter);
128 var closeIconToRender = /*#__PURE__*/React.createElement("span", {
129 className: "".concat(prefixCls, "-close-x")
130 }, closeIcon || /*#__PURE__*/React.createElement(_CloseOutlined["default"], {
131 className: "".concat(prefixCls, "-close-icon")
132 }));
133 var wrapClassNameExtended = (0, _classnames["default"])(wrapClassName, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-centered"), !!centered), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-wrap-rtl"), direction === 'rtl'), _classNames));
134 return /*#__PURE__*/React.createElement(_rcDialog["default"], (0, _extends2["default"])({}, restProps, {
135 getContainer: getContainer === undefined ? getContextPopupContainer : getContainer,
136 prefixCls: prefixCls,
137 wrapClassName: wrapClassNameExtended,
138 footer: footer === undefined ? defaultFooter : footer,
139 visible: visible,
140 mousePosition: mousePosition,
141 onClose: handleCancel,
142 closeIcon: closeIconToRender,
143 focusTriggerAfterClose: focusTriggerAfterClose,
144 transitionName: (0, _motion.getTransitionName)(rootPrefixCls, 'zoom', props.transitionName),
145 maskTransitionName: (0, _motion.getTransitionName)(rootPrefixCls, 'fade', props.maskTransitionName)
146 }));
147};
148
149Modal.useModal = _useModal["default"];
150Modal.defaultProps = {
151 width: 520,
152 confirmLoading: false,
153 visible: false,
154 okType: 'primary'
155};
156var _default = Modal;
157exports["default"] = _default;
\No newline at end of file