"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"), _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
    value: !0
}), exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")), _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")), _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")), _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")), _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")), _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")), _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")), _react = _interopRequireWildcard(require("react")), _propTypes = _interopRequireDefault(require("prop-types")), _amosIcon = _interopRequireDefault(require("amos-icon")), _Pre = _interopRequireDefault(require("./Pre"));

function _createSuper(e) {
    var r = _isNativeReflectConstruct();
    return function() {
        var t, a = (0, _getPrototypeOf2.default)(e);
        if (r) {
            var l = (0, _getPrototypeOf2.default)(this).constructor;
            t = Reflect.construct(a, arguments, l);
        } else t = a.apply(this, arguments);
        return (0, _possibleConstructorReturn2.default)(this, t);
    };
}

function _isNativeReflectConstruct() {
    if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
    if (Reflect.construct.sham) return !1;
    if ("function" == typeof Proxy) return !0;
    try {
        return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), 
        !0;
    } catch (e) {
        return !1;
    }
}

var DocWrapper = function(e) {
    (0, _inherits2.default)(t, e);
    var r = _createSuper(t);
    function t(e) {
        var a;
        return (0, _classCallCheck2.default)(this, t), a = r.call(this, e), (0, _defineProperty2.default)((0, 
        _assertThisInitialized2.default)(a), "toggleSource", (function() {
            a.setState({
                codeShow: !a.state.codeShow
            });
        })), a.state = {
            codeShow: !1
        }, a;
    }
    return (0, _createClass2.default)(t, [ {
        key: "render",
        value: function() {
            var e = this.state.codeShow, r = this.props, t = r.children, a = r.title, l = r.extra, i = r.code, u = r.descr, c = l ? _react.default.createElement("span", {
                className: "doc-descr-extra"
            }, l) : null, o = e ? "code-show" : "code-hide";
            return _react.default.createElement("div", {
                className: "doc-wrapper"
            }, _react.default.createElement("div", {
                className: "doc-descr"
            }, a, c), _react.default.createElement("div", {
                className: "doc-example"
            }, t), _react.default.createElement("div", {
                className: "doc-source"
            }, _react.default.createElement("div", {
                className: "doc-source-triger"
            }, _react.default.createElement("div", {
                className: "doc-source-descr"
            }, u), _react.default.createElement("div", {
                className: "source-triger-btn",
                onClick: this.toggleSource
            }, _react.default.createElement(_amosIcon.default, {
                icon: o
            }), "源码")), _react.default.createElement("div", {
                className: "doc-source-code"
            }, e && _react.default.createElement(_Pre.default, null, i))));
        }
    } ]), t;
}(_react.Component);

DocWrapper.displayName = "DocWrapper", DocWrapper.propTypes = {
    children: _propTypes.default.node,
    title: _propTypes.default.string,
    extra: _propTypes.default.node,
    code: _propTypes.default.any,
    descr: _propTypes.default.string
};

var _default = DocWrapper;

exports.default = _default;