@lyra/form-builder
Version:
Lyra form builder
66 lines (51 loc) • 2.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
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.PreviewAny = PreviewAny;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _PreviewPrimitive = require('./PreviewPrimitive');
var _PreviewObject = require('./PreviewObject');
var _PreviewArray = require('./PreviewArray');
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; }
const NO_VALUE = _react2.default.createElement(_PreviewPrimitive.PreviewPrimitive, { value: '<no value>' });
/*:: type Props = {
value: Array<*> | Object | number | boolean | string
}*/
function PreviewAny(props /*: Props*/) {
const value = props.value,
rest = _objectWithoutProperties(props, ['value']);
switch (typeof value) {
case 'number':
case 'boolean':
case 'string':
{
return _react2.default.createElement(_PreviewPrimitive.PreviewPrimitive, _extends({}, rest, { value: value }));
}
case 'undefined':
{
return NO_VALUE;
}
case 'object':
{
if (value === null) {
return NO_VALUE;
}
if (Array.isArray(value)) {
return _react2.default.createElement(_PreviewArray.PreviewArray, _extends({}, rest, { value: value }));
}
return _react2.default.createElement(_PreviewObject.PreviewObject, _extends({}, rest, { value: value }));
}
default:
{
return _react2.default.createElement(
'span',
null,
'<unknown>'
);
}
}
}