UNPKG

5.74 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
4var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = void 0;
9var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12var _classnames = _interopRequireDefault(require("classnames"));
13var _rcDialog = _interopRequireDefault(require("rc-dialog"));
14var React = _interopRequireWildcard(require("react"));
15var _configProvider = require("../config-provider");
16var _context = require("../form/context");
17var _Compact = require("../space/Compact");
18var _motion = require("../_util/motion");
19var _styleChecker = require("../_util/styleChecker");
20var _warning = _interopRequireDefault(require("../_util/warning"));
21var _PurePanel = require("./PurePanel");
22var _style = _interopRequireDefault(require("./style"));
23var __rest = void 0 && (void 0).__rest || function (s, e) {
24 var t = {};
25 for (var p in s) {
26 if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
27 }
28 if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
29 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
30 }
31 return t;
32};
33var mousePosition;
34// ref: https://github.com/ant-design/ant-design/issues/15795
35var getClickPosition = function getClickPosition(e) {
36 mousePosition = {
37 x: e.pageX,
38 y: e.pageY
39 };
40 // 100ms 内发生过点击事件,则从点击位置动画展示
41 // 否则直接 zoom 展示
42 // 这样可以兼容非点击方式展开
43 setTimeout(function () {
44 mousePosition = null;
45 }, 100);
46};
47// 只有点击事件支持从鼠标位置动画展开
48if ((0, _styleChecker.canUseDocElement)()) {
49 document.documentElement.addEventListener('click', getClickPosition, true);
50}
51var Modal = function Modal(props) {
52 var _classNames;
53 var _a;
54 var _React$useContext = React.useContext(_configProvider.ConfigContext),
55 getContextPopupContainer = _React$useContext.getPopupContainer,
56 getPrefixCls = _React$useContext.getPrefixCls,
57 direction = _React$useContext.direction;
58 var handleCancel = function handleCancel(e) {
59 var onCancel = props.onCancel;
60 onCancel === null || onCancel === void 0 ? void 0 : onCancel(e);
61 };
62 var handleOk = function handleOk(e) {
63 var onOk = props.onOk;
64 onOk === null || onOk === void 0 ? void 0 : onOk(e);
65 };
66 process.env.NODE_ENV !== "production" ? (0, _warning["default"])(!('visible' in props), 'Modal', "`visible` will be removed in next major version, please use `open` instead.") : void 0;
67 var customizePrefixCls = props.prefixCls,
68 className = props.className,
69 open = props.open,
70 wrapClassName = props.wrapClassName,
71 centered = props.centered,
72 getContainer = props.getContainer,
73 closeIcon = props.closeIcon,
74 _props$focusTriggerAf = props.focusTriggerAfterClose,
75 focusTriggerAfterClose = _props$focusTriggerAf === void 0 ? true : _props$focusTriggerAf,
76 visible = props.visible,
77 _props$width = props.width,
78 width = _props$width === void 0 ? 520 : _props$width,
79 restProps = __rest(props, ["prefixCls", "className", "open", "wrapClassName", "centered", "getContainer", "closeIcon", "focusTriggerAfterClose", "visible", "width"]);
80 var prefixCls = getPrefixCls('modal', customizePrefixCls);
81 var rootPrefixCls = getPrefixCls();
82 // Style
83 var _useStyle = (0, _style["default"])(prefixCls),
84 _useStyle2 = (0, _slicedToArray2["default"])(_useStyle, 2),
85 wrapSSR = _useStyle2[0],
86 hashId = _useStyle2[1];
87 var wrapClassNameExtended = (0, _classnames["default"])(wrapClassName, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, prefixCls + "-centered", !!centered), (0, _defineProperty2["default"])(_classNames, prefixCls + "-wrap-rtl", direction === 'rtl'), _classNames));
88 if (process.env.NODE_ENV !== 'production') {
89 process.env.NODE_ENV !== "production" ? (0, _warning["default"])(!('visible' in props), 'Modal', '`visible` is deprecated, please use `open` instead.') : void 0;
90 }
91 return wrapSSR( /*#__PURE__*/React.createElement(_Compact.NoCompactStyle, null, /*#__PURE__*/React.createElement(_context.NoFormStyle, {
92 status: true,
93 override: true
94 }, /*#__PURE__*/React.createElement(_rcDialog["default"], (0, _extends2["default"])({
95 width: width
96 }, restProps, {
97 getContainer: getContainer === undefined ? getContextPopupContainer : getContainer,
98 prefixCls: prefixCls,
99 rootClassName: hashId,
100 wrapClassName: wrapClassNameExtended,
101 footer: (0, _PurePanel.renderFooter)((0, _extends2["default"])((0, _extends2["default"])({}, props), {
102 onOk: handleOk,
103 onCancel: handleCancel
104 })),
105 visible: open !== null && open !== void 0 ? open : visible,
106 mousePosition: (_a = restProps.mousePosition) !== null && _a !== void 0 ? _a : mousePosition,
107 onClose: handleCancel,
108 closeIcon: (0, _PurePanel.renderCloseIcon)(prefixCls, closeIcon),
109 focusTriggerAfterClose: focusTriggerAfterClose,
110 transitionName: (0, _motion.getTransitionName)(rootPrefixCls, 'zoom', props.transitionName),
111 maskTransitionName: (0, _motion.getTransitionName)(rootPrefixCls, 'fade', props.maskTransitionName),
112 className: (0, _classnames["default"])(hashId, className)
113 })))));
114};
115var _default = Modal;
116exports["default"] = _default;
\No newline at end of file