Files
icehrm/web/node_modules/rc-drawer/lib/DrawerWrapper.js
2020-05-20 18:47:29 +02:00

203 lines
8.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _PortalWrapper = _interopRequireDefault(require("rc-util/lib/PortalWrapper"));
var React = _interopRequireWildcard(require("react"));
var _reactLifecyclesCompat = require("react-lifecycles-compat");
var _DrawerChild = _interopRequireDefault(require("./DrawerChild"));
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
var DrawerWrapper =
/*#__PURE__*/
function (_React$Component) {
_inherits(DrawerWrapper, _React$Component);
function DrawerWrapper(props) {
var _this;
_classCallCheck(this, DrawerWrapper);
_this = _possibleConstructorReturn(this, _getPrototypeOf(DrawerWrapper).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;
}
_createClass(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 = _objectWithoutProperties(_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 = _objectWithoutProperties(_ref, ["visible", "afterClose"]);
return (// react 15componentWillUnmount 时 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 = (0, _reactLifecyclesCompat.polyfill)(DrawerWrapper);
exports.default = _default;