UNPKG

@alexkuz/react-json-tree

Version:

React JSON Viewer Component, Extracted from redux-devtools

105 lines (78 loc) 3.17 kB
'use strict'; exports.__esModule = true; var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _keys = require('babel-runtime/core-js/object/keys'); var _keys2 = _interopRequireDefault(_keys); exports.getChildNodes = getChildNodes; exports.default = function (_ref3) { var props = (0, _objectWithoutProperties3.default)(_ref3, []); return _react2.default.createElement(_JSONNestedNode2.default, (0, _extends3.default)({}, props, { getChildNodes: getChildNodes, nodeType: 'Object', nodeTypeIndicator: '{}', renderItemString: renderItemString })); }; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _JSONNestedNode = require('./JSONNestedNode'); var _JSONNestedNode2 = _interopRequireDefault(_JSONNestedNode); var _grabNode = require('./grab-node'); var _grabNode2 = _interopRequireDefault(_grabNode); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // Returns the "n Items" string for this node, generating and caching it if it hasn't been created yet. function renderItemString(_ref) { var data = _ref.data; var getItemString = _ref.getItemString; var itemString = _ref.itemString; var itemType = _ref.itemType; if (!itemString) { var len = (0, _keys2.default)(data).length; itemString = len + ' key' + (len !== 1 ? 's' : ''); } return getItemString('Object', data, itemType, itemString); } // Returns the child nodes for each entry in iterable. // If we have generated them previously we return from cache; otherwise we create them. function getChildNodes(_ref2) { var data = _ref2.data; var getItemString = _ref2.getItemString; var labelRenderer = _ref2.labelRenderer; var previousData = _ref2.previousData; var styles = _ref2.styles; var theme = _ref2.theme; var valueRenderer = _ref2.valueRenderer; var allExpanded = _ref2.allExpanded; var keyPath = _ref2.keyPath; var childNodes = []; for (var key in data) { if ((0, _getPrototypeOf2.default)(data) === null || data.hasOwnProperty(key)) { var previousDataValue = undefined; if (typeof previousData !== 'undefined' && previousData !== null) { previousDataValue = previousData[key]; } var node = (0, _grabNode2.default)({ getItemString: getItemString, keyPath: [key].concat(keyPath), labelRenderer: labelRenderer, previousData: previousDataValue, renderItemString: renderItemString, styles: styles, theme: theme, value: data[key], valueRenderer: valueRenderer, allExpanded: allExpanded }); if (node !== false) { childNodes.push(node); } } } return childNodes; } // Configures <JSONNestedNode> to render an Object