'use strict';

Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.isValidElement = undefined;
exports.replaceElement = replaceElement;
exports.cloneElement = cloneElement;

var _react = require('react');

var React = _interopRequireWildcard(_react);

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }

var isValidElement = React.isValidElement;
exports.isValidElement = isValidElement;
function replaceElement(element, replacement, props) {
    if (!isValidElement(element)) return replacement;
    return React.cloneElement(element, typeof props === 'function' ? props() : props);
}
function cloneElement(element, props) {
    return replaceElement(element, element, props);
}