1 | import _extends from "@babel/runtime/helpers/esm/extends";
|
2 | import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
3 | import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
4 | var __rest = this && this.__rest || function (s, e) {
|
5 | var t = {};
|
6 | for (var p in s) {
|
7 | if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
8 | }
|
9 | if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
10 | if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
11 | }
|
12 | return t;
|
13 | };
|
14 | import classNames from 'classnames';
|
15 | import RcDrawer from 'rc-drawer';
|
16 | import * as React from 'react';
|
17 | import { ConfigContext } from '../config-provider';
|
18 | import { NoFormStyle } from '../form/context';
|
19 | import { getTransitionName } from '../_util/motion';
|
20 | import { tuple } from '../_util/type';
|
21 | import warning from '../_util/warning';
|
22 | import DrawerPanel from './DrawerPanel';
|
23 |
|
24 | import useStyle from './style';
|
25 | import { NoCompactStyle } from '../space/Compact';
|
26 | var SizeTypes = tuple('default', 'large');
|
27 | var defaultPushState = {
|
28 | distance: 180
|
29 | };
|
30 | function Drawer(props) {
|
31 | var rootClassName = props.rootClassName,
|
32 | width = props.width,
|
33 | height = props.height,
|
34 | _props$size = props.size,
|
35 | size = _props$size === void 0 ? 'default' : _props$size,
|
36 | _props$mask = props.mask,
|
37 | mask = _props$mask === void 0 ? true : _props$mask,
|
38 | _props$push = props.push,
|
39 | push = _props$push === void 0 ? defaultPushState : _props$push,
|
40 | open = props.open,
|
41 | afterOpenChange = props.afterOpenChange,
|
42 | onClose = props.onClose,
|
43 | customizePrefixCls = props.prefixCls,
|
44 | customizeGetContainer = props.getContainer,
|
45 | visible = props.visible,
|
46 | afterVisibleChange = props.afterVisibleChange,
|
47 | rest = __rest(props, ["rootClassName", "width", "height", "size", "mask", "push", "open", "afterOpenChange", "onClose", "prefixCls", "getContainer", "visible", "afterVisibleChange"]);
|
48 | var _React$useContext = React.useContext(ConfigContext),
|
49 | getPopupContainer = _React$useContext.getPopupContainer,
|
50 | getPrefixCls = _React$useContext.getPrefixCls,
|
51 | direction = _React$useContext.direction;
|
52 | var prefixCls = getPrefixCls('drawer', customizePrefixCls);
|
53 |
|
54 | var _useStyle = useStyle(prefixCls),
|
55 | _useStyle2 = _slicedToArray(_useStyle, 2),
|
56 | wrapSSR = _useStyle2[0],
|
57 | hashId = _useStyle2[1];
|
58 | var getContainer =
|
59 |
|
60 | customizeGetContainer === undefined && getPopupContainer ? function () {
|
61 | return getPopupContainer(document.body);
|
62 | } : customizeGetContainer;
|
63 | var drawerClassName = classNames(_defineProperty({
|
64 | 'no-mask': !mask
|
65 | }, prefixCls + "-rtl", direction === 'rtl'), rootClassName, hashId);
|
66 |
|
67 | if (process.env.NODE_ENV !== 'production') {
|
68 | [['visible', 'open'], ['afterVisibleChange', 'afterOpenChange']].forEach(function (_ref) {
|
69 | var _ref2 = _slicedToArray(_ref, 2),
|
70 | deprecatedName = _ref2[0],
|
71 | newName = _ref2[1];
|
72 | process.env.NODE_ENV !== "production" ? warning(!(deprecatedName in props), 'Drawer', "`" + deprecatedName + "` is deprecated, please use `" + newName + "` instead.") : void 0;
|
73 | });
|
74 | }
|
75 |
|
76 | var mergedWidth = React.useMemo(function () {
|
77 | return width !== null && width !== void 0 ? width : size === 'large' ? 736 : 378;
|
78 | }, [width, size]);
|
79 | var mergedHeight = React.useMemo(function () {
|
80 | return height !== null && height !== void 0 ? height : size === 'large' ? 736 : 378;
|
81 | }, [height, size]);
|
82 |
|
83 | var maskMotion = {
|
84 | motionName: getTransitionName(prefixCls, 'mask-motion'),
|
85 | motionAppear: true,
|
86 | motionEnter: true,
|
87 | motionLeave: true,
|
88 | motionDeadline: 500
|
89 | };
|
90 | var panelMotion = function panelMotion(motionPlacement) {
|
91 | return {
|
92 | motionName: getTransitionName(prefixCls, "panel-motion-" + motionPlacement),
|
93 | motionAppear: true,
|
94 | motionEnter: true,
|
95 | motionLeave: true,
|
96 | motionDeadline: 500
|
97 | };
|
98 | };
|
99 |
|
100 | return wrapSSR( React.createElement(NoCompactStyle, null, React.createElement(NoFormStyle, {
|
101 | status: true,
|
102 | override: true
|
103 | }, React.createElement(RcDrawer, _extends({
|
104 | prefixCls: prefixCls,
|
105 | onClose: onClose,
|
106 | maskMotion: maskMotion,
|
107 | motion: panelMotion
|
108 | }, rest, {
|
109 | open: open !== null && open !== void 0 ? open : visible,
|
110 | mask: mask,
|
111 | push: push,
|
112 | width: mergedWidth,
|
113 | height: mergedHeight,
|
114 | rootClassName: drawerClassName,
|
115 | getContainer: getContainer,
|
116 | afterOpenChange: afterOpenChange !== null && afterOpenChange !== void 0 ? afterOpenChange : afterVisibleChange
|
117 | }), React.createElement(DrawerPanel, _extends({
|
118 | prefixCls: prefixCls
|
119 | }, rest, {
|
120 | onClose: onClose
|
121 | }))))));
|
122 | }
|
123 | if (process.env.NODE_ENV !== 'production') {
|
124 | Drawer.displayName = 'Drawer';
|
125 | }
|
126 | function PurePanel(_a) {
|
127 | var customizePrefixCls = _a.prefixCls,
|
128 | style = _a.style,
|
129 | className = _a.className,
|
130 | _a$placement = _a.placement,
|
131 | placement = _a$placement === void 0 ? 'right' : _a$placement,
|
132 | restProps = __rest(_a, ["prefixCls", "style", "className", "placement"]);
|
133 | var _React$useContext2 = React.useContext(ConfigContext),
|
134 | getPrefixCls = _React$useContext2.getPrefixCls;
|
135 | var prefixCls = getPrefixCls('drawer', customizePrefixCls);
|
136 |
|
137 | var _useStyle3 = useStyle(prefixCls),
|
138 | _useStyle4 = _slicedToArray(_useStyle3, 2),
|
139 | wrapSSR = _useStyle4[0],
|
140 | hashId = _useStyle4[1];
|
141 | return wrapSSR( React.createElement("div", {
|
142 | className: classNames(prefixCls, prefixCls + "-pure", prefixCls + "-" + placement, hashId, className),
|
143 | style: style
|
144 | }, React.createElement(DrawerPanel, _extends({
|
145 | prefixCls: prefixCls
|
146 | }, restProps))));
|
147 | }
|
148 | Drawer._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;
|
149 | export default Drawer; |
\ | No newline at end of file |