text: "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  var tslib_1 = require("tslib");
  var React = require("react");
  /**
   * Utility component for delaying the render of a child component after a given delay. This component
   * requires a single child component; don't pass in many components. Wrap multiple components in a DIV
   * if necessary.
   *
   * @public
   */
  var DelayedRender = (function (_super) {
      tslib_1.__extends(DelayedRender, _super);
      function DelayedRender(props) {
          var _this = _super.call(this, props) || this;
          _this.state = {
              isRendered: false
          };
          return _this;
      }
      DelayedRender.prototype.componentDidMount = function () {
          var _this = this;
          var delay = this.props.delay;
          this._timeoutId = setTimeout(function () {
              _this.setState({
                  isRendered: true
              });
          }, delay);
      };
      DelayedRender.prototype.componentWillUnmount = function () {
          if (this._timeoutId) {
              clearTimeout(this._timeoutId);
          }
      };
      DelayedRender.prototype.render = function () {
          return this.state.isRendered ? React.Children.only(this.props.children) : null;
      };
      // tslint:disable-next-line:typedef
      DelayedRender.defaultProps = {
          delay: 0
      };
      return DelayedRender;
  }(React.Component));
  exports.DelayedRender = DelayedRender;
  //# sourceMappingURL=DelayedRender.js.map