@lyra/form-builder
Version:
Lyra form builder
87 lines (73 loc) • 2.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _capitalize2 = require('lodash/capitalize');
var _capitalize3 = _interopRequireDefault(_capitalize2);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
exports.PreviewObject = PreviewObject;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _PreviewAny = require('./PreviewAny');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
/*:: type Props = {
value: Object,
maxDepth?: number,
_depth?: number
}*/
function PreviewObject(props /*: Props*/) {
const value = props.value;
var _props$maxDepth = props.maxDepth;
const maxDepth = _props$maxDepth === undefined ? 4 : _props$maxDepth;
var _props$_depth = props._depth;
const _depth = _props$_depth === undefined ? 0 : _props$_depth,
rest = _objectWithoutProperties(props, ['value', 'maxDepth', '_depth']);
const _type = value._type,
_key = value._key,
restValue = _objectWithoutProperties(value, ['_type', '_key']);
const keys = Object.keys(restValue);
if (_depth >= maxDepth) {
return _react2.default.createElement(
'span',
null,
(0, _capitalize3.default)(_type || 'object'),
' ',
`{${keys.join(', ')}}`
);
}
return _react2.default.createElement(
'div',
null,
_type && _react2.default.createElement(
'h3',
null,
_react2.default.createElement(
'em',
null,
(0, _capitalize3.default)(_type)
),
':'
),
_react2.default.createElement(
'ul',
null,
keys.map(key => _react2.default.createElement(
'li',
{ key: key },
_react2.default.createElement(
'b',
null,
key
),
':',
' ',
_react2.default.createElement(_PreviewAny.PreviewAny, _extends({}, rest, {
value: restValue[key],
_depth: _depth + 1,
maxDepth: maxDepth
}))
))
)
);
}