"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 _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); 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 _PortalWrapper = _interopRequireDefault(require("rc-util/lib/PortalWrapper")); var React = _interopRequireWildcard(require("react")); var _DrawerChild = _interopRequireDefault(require("./DrawerChild")); function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { 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); }; } 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; } } var DrawerWrapper = /*#__PURE__*/function (_React$Component) { (0, _inherits2.default)(DrawerWrapper, _React$Component); var _super = _createSuper(DrawerWrapper); function DrawerWrapper(props) { var _this; (0, _classCallCheck2.default)(this, DrawerWrapper); _this = _super.call(this, props); _this.onHandleClick = function (e) { var _this$props = _this.props, onHandleClick = _this$props.onHandleClick, $open = _this$props.open; if (onHandleClick) { onHandleClick(e); } if (typeof $open === 'undefined') { var _open = _this.state.open; _this.setState({ open: !_open }); } }; _this.onClose = function (e) { var _this$props2 = _this.props, onClose = _this$props2.onClose, open = _this$props2.open; if (onClose) { onClose(e); } if (typeof open === 'undefined') { _this.setState({ open: false }); } }; var open = typeof props.open !== 'undefined' ? props.open : !!props.defaultOpen; _this.state = { open: open }; if ('onMaskClick' in props) { console.warn('`onMaskClick` are removed, please use `onClose` instead.'); } return _this; } (0, _createClass2.default)(DrawerWrapper, [{ key: "render", // tslint:disable-next-line:member-ordering value: function render() { var _this2 = this; var _this$props3 = this.props, defaultOpen = _this$props3.defaultOpen, getContainer = _this$props3.getContainer, wrapperClassName = _this$props3.wrapperClassName, forceRender = _this$props3.forceRender, handler = _this$props3.handler, props = (0, _objectWithoutProperties2.default)(_this$props3, ["defaultOpen", "getContainer", "wrapperClassName", "forceRender", "handler"]); var open = this.state.open; // 渲染在当前 dom 里; if (!getContainer) { return React.createElement("div", { className: wrapperClassName, ref: function ref(c) { _this2.dom = c; } }, React.createElement(_DrawerChild.default, Object.assign({}, props, { open: open, handler: handler, getContainer: function getContainer() { return _this2.dom; }, onClose: this.onClose, onHandleClick: this.onHandleClick }))); } // 如果有 handler 为内置强制渲染; var $forceRender = !!handler || forceRender; return React.createElement(_PortalWrapper.default, { visible: open, forceRender: $forceRender, getContainer: getContainer, wrapperClassName: wrapperClassName }, function (_ref) { var visible = _ref.visible, afterClose = _ref.afterClose, rest = (0, _objectWithoutProperties2.default)(_ref, ["visible", "afterClose"]); return (// react 15,componentWillUnmount 时 Portal 返回 afterClose, visible. React.createElement(_DrawerChild.default, Object.assign({}, props, rest, { open: visible !== undefined ? visible : open, afterVisibleChange: afterClose !== undefined ? afterClose : props.afterVisibleChange, handler: handler, onClose: _this2.onClose, onHandleClick: _this2.onHandleClick })) ); }); } }], [{ key: "getDerivedStateFromProps", value: function getDerivedStateFromProps(props, _ref2) { var prevProps = _ref2.prevProps; var newState = { prevProps: props }; if (typeof prevProps !== 'undefined' && props.open !== prevProps.open) { newState.open = props.open; } return newState; } }]); return DrawerWrapper; }(React.Component); DrawerWrapper.defaultProps = { prefixCls: 'drawer', placement: 'left', getContainer: 'body', defaultOpen: false, level: 'all', duration: '.3s', ease: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)', onChange: function onChange() {}, afterVisibleChange: function afterVisibleChange() {}, handler: React.createElement("div", { className: "drawer-handle" }, React.createElement("i", { className: "drawer-handle-icon" })), showMask: true, maskClosable: true, maskStyle: {}, wrapperClassName: '', className: '', keyboard: true, forceRender: false }; var _default = DrawerWrapper; exports.default = _default;