UNPKG

@alexkuz/react-json-tree

Version:

React JSON Viewer Component, Extracted from redux-devtools

107 lines (86 loc) 3.97 kB
'use strict'; exports.__esModule = true; var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); exports.default = function (_ref) { var getItemString = _ref.getItemString; var _ref$initialExpanded = _ref.initialExpanded; var initialExpanded = _ref$initialExpanded === undefined ? false : _ref$initialExpanded; var allExpanded = _ref.allExpanded; var keyPath = _ref.keyPath; var labelRenderer = _ref.labelRenderer; var previousData = _ref.previousData; var styles = _ref.styles; var theme = _ref.theme; var value = _ref.value; var valueRenderer = _ref.valueRenderer; var nodeType = (0, _objType2.default)(value); var simpleNodeProps = { getItemString: getItemString, initialExpanded: initialExpanded, key: keyPath[0], keyPath: keyPath, labelRenderer: labelRenderer, nodeType: nodeType, previousData: previousData, styles: styles, theme: theme, value: value, valueRenderer: valueRenderer }; var nestedNodeProps = (0, _extends3.default)({}, simpleNodeProps, { data: value, initialExpanded: initialExpanded, allExpanded: allExpanded, keyPath: keyPath }); switch (nodeType) { case 'Object': return _react2.default.createElement(_JSONObjectNode2.default, nestedNodeProps); case 'Array': return _react2.default.createElement(_JSONArrayNode2.default, nestedNodeProps); case 'Iterable': return _react2.default.createElement(_JSONIterableNode2.default, nestedNodeProps); case 'String': return _react2.default.createElement(_JSONValueNode2.default, (0, _extends3.default)({}, simpleNodeProps, { valueColor: theme.base0B, valueGetter: function valueGetter(raw) { return '"' + raw + '"'; } })); case 'Number': return _react2.default.createElement(_JSONValueNode2.default, (0, _extends3.default)({}, simpleNodeProps, { valueColor: theme.base09 })); case 'Boolean': return _react2.default.createElement(_JSONValueNode2.default, (0, _extends3.default)({}, simpleNodeProps, { valueColor: theme.base09, valueGetter: function valueGetter(raw) { return raw ? 'true' : 'false'; } })); case 'Date': return _react2.default.createElement(_JSONValueNode2.default, (0, _extends3.default)({}, simpleNodeProps, { valueColor: theme.base0B, valueGetter: function valueGetter(raw) { return raw.toISOString(); } })); case 'Null': return _react2.default.createElement(_JSONValueNode2.default, (0, _extends3.default)({}, simpleNodeProps, { valueColor: theme.base08, valueGetter: function valueGetter() { return 'null'; } })); case 'Undefined': return _react2.default.createElement(_JSONValueNode2.default, (0, _extends3.default)({}, simpleNodeProps, { valueColor: theme.base08, valueGetter: function valueGetter() { return 'undefined'; } })); case 'Function': return _react2.default.createElement(_JSONValueNode2.default, (0, _extends3.default)({}, simpleNodeProps, { valueColor: theme.base08, valueGetter: function valueGetter(raw) { return raw.toString(); } })); default: return false; } }; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _objType = require('./obj-type'); var _objType2 = _interopRequireDefault(_objType); var _JSONObjectNode = require('./JSONObjectNode'); var _JSONObjectNode2 = _interopRequireDefault(_JSONObjectNode); var _JSONArrayNode = require('./JSONArrayNode'); var _JSONArrayNode2 = _interopRequireDefault(_JSONArrayNode); var _JSONIterableNode = require('./JSONIterableNode'); var _JSONIterableNode2 = _interopRequireDefault(_JSONIterableNode); var _JSONValueNode = require('./JSONValueNode'); var _JSONValueNode2 = _interopRequireDefault(_JSONValueNode); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }