"use strict"; exports.__esModule = true; exports.default = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _componentOrElement = _interopRequireDefault(require("prop-types-extra/lib/componentOrElement")); var _react = _interopRequireDefault(require("react")); var _reactDom = _interopRequireDefault(require("react-dom")); var _WaitForContainer = _interopRequireDefault(require("./WaitForContainer")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } /** * The `` component renders its children into a new "subtree" outside of current component hierarchy. * You can think of it as a declarative `appendChild()`, or jQuery's `$.fn.appendTo()`. * The children of `` component will be appended to the `container` specified. */ var Portal = /*#__PURE__*/ function (_React$Component) { _inheritsLoose(Portal, _React$Component); function Portal() { return _React$Component.apply(this, arguments) || this; } var _proto = Portal.prototype; _proto.render = function render() { var _this = this; return this.props.children ? _react.default.createElement(_WaitForContainer.default, { container: this.props.container, onContainerResolved: this.props.onRendered }, function (container) { return _reactDom.default.createPortal(_this.props.children, container); }) : null; }; return Portal; }(_react.default.Component); Portal.displayName = 'Portal'; Portal.propTypes = { /** * A Node, Component instance, or function that returns either. The `container` will have the Portal children * appended to it. */ container: _propTypes.default.oneOfType([_componentOrElement.default, _propTypes.default.func]), onRendered: _propTypes.default.func }; var _default = Portal; exports.default = _default; module.exports = exports.default;