react-inspector
Advanced tools
Comparing version 1.0.1 to 1.1.0
@@ -47,13 +47,8 @@ 'use strict'; | ||
var _ThemeProvider = require('../styles/ThemeProvider'); | ||
var _ThemeProvider2 = _interopRequireDefault(_ThemeProvider); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
// Customize styles | ||
var styles = { | ||
treeNode: { | ||
childNodesContainer: { | ||
paddingLeft: 14 | ||
} | ||
} | ||
}; | ||
var domIterator = _regenerator2.default.mark(function domIterator(data) { | ||
@@ -143,6 +138,12 @@ var textInlined, i, node; | ||
value: function render() { | ||
return _react2.default.createElement(_TreeView2.default, (0, _extends3.default)({ | ||
nodeRenderer: _DOMNodePreview2.default, | ||
dataIterator: domIterator | ||
}, this.props)); | ||
var nodeRenderer = _DOMNodePreview2.default; | ||
return _react2.default.createElement( | ||
_ThemeProvider2.default, | ||
{ theme: this.props.theme }, | ||
_react2.default.createElement(_TreeView2.default, (0, _extends3.default)({ | ||
nodeRenderer: nodeRenderer, | ||
dataIterator: domIterator | ||
}, this.props)) | ||
); | ||
} | ||
@@ -157,2 +158,5 @@ }]); | ||
}; | ||
DOMInspector.defaultProps = { | ||
theme: 'chromeLight' | ||
}; | ||
exports.default = DOMInspector; |
@@ -7,6 +7,2 @@ 'use strict'; | ||
var _extends2 = require('babel-runtime/helpers/extends'); | ||
var _extends3 = _interopRequireDefault(_extends2); | ||
var _react = require('react'); | ||
@@ -16,2 +12,6 @@ | ||
var _createStyles = require('../styles/createStyles'); | ||
var _createStyles2 = _interopRequireDefault(_createStyles); | ||
var _shouldInline = require('./shouldInline'); | ||
@@ -21,6 +21,2 @@ | ||
var _domNodeStyles = require('../styles/domNodeStyles'); | ||
var _domNodeStyles2 = _interopRequireDefault(_domNodeStyles); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -31,10 +27,11 @@ | ||
var attributes = _ref.attributes; | ||
var styles = _ref.styles; | ||
return _react2.default.createElement( | ||
'span', | ||
{ style: _domNodeStyles2.default.htmlTag }, | ||
{ style: styles.base }, | ||
'<', | ||
_react2.default.createElement( | ||
'span', | ||
{ style: _domNodeStyles2.default.htmlTagName }, | ||
{ style: styles.tagName }, | ||
tagName | ||
@@ -53,3 +50,3 @@ ), | ||
'span', | ||
{ style: _domNodeStyles2.default.htmlAttributeName }, | ||
{ style: styles.htmlAttributeName }, | ||
attribute.name | ||
@@ -60,3 +57,3 @@ ), | ||
'span', | ||
{ style: _domNodeStyles2.default.htmlAttributeValue }, | ||
{ style: styles.htmlAttributeValue }, | ||
attribute.value | ||
@@ -74,12 +71,15 @@ ), | ||
// isChildNode style={{ marginLeft: -12 /* hack: offset placeholder */ }} | ||
var CloseTag = function CloseTag(_ref2) { | ||
var tagName = _ref2.tagName; | ||
var style = _ref2.style; | ||
var _ref2$isChildNode = _ref2.isChildNode; | ||
var isChildNode = _ref2$isChildNode === undefined ? false : _ref2$isChildNode; | ||
var styles = _ref2.styles; | ||
return _react2.default.createElement( | ||
'span', | ||
{ style: (0, _extends3.default)({}, _domNodeStyles2.default.htmlCloseTag, style) }, | ||
{ style: Object.assign({}, styles.base, isChildNode && styles.offsetLeft) }, | ||
'</', | ||
_react2.default.createElement( | ||
'span', | ||
{ style: _domNodeStyles2.default.htmlCloseTagName }, | ||
{ style: styles.tagName }, | ||
tagName | ||
@@ -101,3 +101,3 @@ ), | ||
var DOMNodePreview = function DOMNodePreview(_ref3) { | ||
var DOMNodePreview = function DOMNodePreview(_ref3, _ref4) { | ||
var isCloseTag = _ref3.isCloseTag; | ||
@@ -107,5 +107,8 @@ var name = _ref3.name; | ||
var expanded = _ref3.expanded; | ||
var theme = _ref4.theme; | ||
var styles = (0, _createStyles2.default)('DOMNodePreview', theme); | ||
if (isCloseTag) { | ||
return _react2.default.createElement(CloseTag, { style: { marginLeft: -12 /* hack: offset placeholder */ }, tagName: data.tagName }); | ||
return _react2.default.createElement(CloseTag, { styles: styles.htmlCloseTag, isChildNode: true, tagName: data.tagName }); | ||
} | ||
@@ -118,5 +121,5 @@ | ||
null, | ||
_react2.default.createElement(OpenTag, { tagName: data.tagName, attributes: data.attributes }), | ||
_react2.default.createElement(OpenTag, { tagName: data.tagName, attributes: data.attributes, styles: styles.htmlOpenTag }), | ||
(0, _shouldInline2.default)(data) ? data.textContent : !expanded && "…", | ||
!expanded && _react2.default.createElement(CloseTag, { tagName: data.tagName }) | ||
!expanded && _react2.default.createElement(CloseTag, { tagName: data.tagName, styles: styles.htmlCloseTag }) | ||
); | ||
@@ -132,3 +135,3 @@ case Node.TEXT_NODE: | ||
'span', | ||
{ style: _domNodeStyles2.default.htmlComment }, | ||
{ style: styles.htmlComment }, | ||
'<!--', | ||
@@ -147,3 +150,3 @@ data.textContent, | ||
'span', | ||
{ style: _domNodeStyles2.default.htmlDoctype }, | ||
{ style: styles.htmlDoctype }, | ||
'<!DOCTYPE ', | ||
@@ -188,2 +191,6 @@ data.name, | ||
DOMNodePreview.contextTypes = { | ||
theme: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.object]).isRequired | ||
}; | ||
exports.default = DOMNodePreview; |
@@ -6,3 +6,3 @@ 'use strict'; | ||
}); | ||
exports.Inspector = exports.DOMInspector = exports.TableInspector = exports.ObjectInspector = undefined; | ||
exports.Inspector = exports.DOMInspector = exports.TableInspector = exports.ObjectInspector = exports.chromeDark = exports.chromeLight = undefined; | ||
@@ -17,5 +17,16 @@ var _extends2 = require('babel-runtime/helpers/extends'); | ||
var _react = require('react'); | ||
var _themes = require('./styles/themes'); | ||
var _react2 = _interopRequireDefault(_react); | ||
Object.defineProperty(exports, 'chromeLight', { | ||
enumerable: true, | ||
get: function get() { | ||
return _themes.chromeLight; | ||
} | ||
}); | ||
Object.defineProperty(exports, 'chromeDark', { | ||
enumerable: true, | ||
get: function get() { | ||
return _themes.chromeDark; | ||
} | ||
}); | ||
@@ -34,2 +45,6 @@ var _ObjectInspector2 = require('./object-inspector/ObjectInspector'); | ||
var _react = require('react'); | ||
var _react2 = _interopRequireDefault(_react); | ||
var _isDom = require('is-dom'); | ||
@@ -45,4 +60,4 @@ | ||
// NOTE: ObjectDecription and ObjectPreview can be used as building blocks, but currently their styles are not complete | ||
// export ObjectDecription from './object/ObjectDescription' | ||
// NOTE: ObjectValue and ObjectPreview can be used as building blocks, but currently their styles are not complete | ||
// export ObjectValue from './object/ObjectValue' | ||
// export ObjectPreview from './object/ObjectPreview' | ||
@@ -68,5 +83,4 @@ | ||
Inspector.propTypes = { | ||
data: _react2.default.PropTypes.any.isRequired, | ||
data: _react2.default.PropTypes.any, | ||
name: _react2.default.PropTypes.string, | ||
path: _react2.default.PropTypes.oneOfType([_react2.default.PropTypes.string, _react2.default.PropTypes.array]), | ||
table: _react2.default.PropTypes.bool | ||
@@ -73,0 +87,0 @@ }; |
@@ -11,2 +11,6 @@ 'use strict'; | ||
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); | ||
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); | ||
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); | ||
@@ -48,5 +52,5 @@ | ||
var _ObjectPreview = require('./ObjectPreview'); | ||
var _ObjectRootLabel = require('./ObjectRootLabel'); | ||
var _ObjectPreview2 = _interopRequireDefault(_ObjectPreview); | ||
var _ObjectRootLabel2 = _interopRequireDefault(_ObjectRootLabel); | ||
@@ -57,7 +61,11 @@ var _ObjectLabel = require('./ObjectLabel'); | ||
var _ThemeProvider = require('../styles/ThemeProvider'); | ||
var _ThemeProvider2 = _interopRequireDefault(_ThemeProvider); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var createIterator = function createIterator(showNonenumerable) { | ||
var createIterator = function createIterator(showNonenumerable, sortObjectKeys) { | ||
var objectIterator = _regenerator2.default.mark(function objectIterator(data) { | ||
var shouldIterate, i, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, entry, _entry, k, v, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, propertyName, propertyValue, _propertyValue; | ||
var shouldIterate, i, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, entry, _entry, k, v, keys, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, propertyName, propertyValue, _propertyValue; | ||
@@ -166,15 +174,21 @@ return _regenerator2.default.wrap(function objectIterator$(_context) { | ||
case 40: | ||
_context.next = 81; | ||
_context.next = 83; | ||
break; | ||
case 42: | ||
keys = Object.getOwnPropertyNames(data); | ||
if (typeof sortObjectKeys !== 'undefined') { | ||
keys.sort(sortObjectKeys); | ||
} | ||
_iteratorNormalCompletion2 = true; | ||
_didIteratorError2 = false; | ||
_iteratorError2 = undefined; | ||
_context.prev = 45; | ||
_iterator2 = Object.getOwnPropertyNames(data)[Symbol.iterator](); | ||
_context.prev = 47; | ||
_iterator2 = keys[Symbol.iterator](); | ||
case 47: | ||
case 49: | ||
if (_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done) { | ||
_context.next = 64; | ||
_context.next = 66; | ||
break; | ||
@@ -186,3 +200,3 @@ } | ||
if (!data.propertyIsEnumerable(propertyName)) { | ||
_context.next = 55; | ||
_context.next = 57; | ||
break; | ||
@@ -192,3 +206,3 @@ } | ||
propertyValue = data[propertyName]; | ||
_context.next = 53; | ||
_context.next = 55; | ||
return { | ||
@@ -199,9 +213,9 @@ name: propertyName, | ||
case 53: | ||
_context.next = 61; | ||
case 55: | ||
_context.next = 63; | ||
break; | ||
case 55: | ||
case 57: | ||
if (!showNonenumerable) { | ||
_context.next = 61; | ||
_context.next = 63; | ||
break; | ||
@@ -217,10 +231,12 @@ } | ||
_propertyValue = data[propertyName]; | ||
} catch (e) {} | ||
} catch (e) { | ||
// console.warn(e) | ||
} | ||
if (!(_propertyValue !== undefined)) { | ||
_context.next = 61; | ||
_context.next = 63; | ||
break; | ||
} | ||
_context.next = 61; | ||
_context.next = 63; | ||
return { | ||
@@ -232,20 +248,20 @@ name: propertyName, | ||
case 61: | ||
case 63: | ||
_iteratorNormalCompletion2 = true; | ||
_context.next = 47; | ||
_context.next = 49; | ||
break; | ||
case 64: | ||
_context.next = 70; | ||
case 66: | ||
_context.next = 72; | ||
break; | ||
case 66: | ||
_context.prev = 66; | ||
_context.t1 = _context['catch'](45); | ||
case 68: | ||
_context.prev = 68; | ||
_context.t1 = _context['catch'](47); | ||
_didIteratorError2 = true; | ||
_iteratorError2 = _context.t1; | ||
case 70: | ||
_context.prev = 70; | ||
_context.prev = 71; | ||
case 72: | ||
_context.prev = 72; | ||
_context.prev = 73; | ||
@@ -256,7 +272,7 @@ if (!_iteratorNormalCompletion2 && _iterator2.return) { | ||
case 73: | ||
_context.prev = 73; | ||
case 75: | ||
_context.prev = 75; | ||
if (!_didIteratorError2) { | ||
_context.next = 76; | ||
_context.next = 78; | ||
break; | ||
@@ -267,15 +283,15 @@ } | ||
case 76: | ||
return _context.finish(73); | ||
case 78: | ||
return _context.finish(75); | ||
case 77: | ||
return _context.finish(70); | ||
case 79: | ||
return _context.finish(72); | ||
case 78: | ||
case 80: | ||
if (!(showNonenumerable && data !== Object.prototype /* already added */)) { | ||
_context.next = 81; | ||
_context.next = 83; | ||
break; | ||
} | ||
_context.next = 81; | ||
_context.next = 83; | ||
return { | ||
@@ -287,3 +303,3 @@ name: '__proto__', | ||
case 81: | ||
case 83: | ||
case 'end': | ||
@@ -293,3 +309,3 @@ return _context.stop(); | ||
} | ||
}, objectIterator, this, [[8, 28, 32, 40], [33,, 35, 39], [45, 66, 70, 78], [71,, 73, 77]]); | ||
}, objectIterator, this, [[8, 28, 32, 40], [33,, 35, 39], [47, 68, 72, 80], [73,, 75, 79]]); | ||
}); | ||
@@ -305,3 +321,3 @@ | ||
var isNonenumerable = _ref.isNonenumerable; | ||
return depth === 0 ? _react2.default.createElement(_ObjectPreview2.default, { name: name, data: data }) : _react2.default.createElement(_ObjectLabel2.default, { name: name, data: data, isNonenumerable: isNonenumerable }); | ||
return depth === 0 ? _react2.default.createElement(_ObjectRootLabel2.default, { name: name, data: data }) : _react2.default.createElement(_ObjectLabel2.default, { name: name, data: data, isNonenumerable: isNonenumerable }); | ||
}; | ||
@@ -324,10 +340,17 @@ | ||
value: function render() { | ||
var showNonenumerable = this.props.showNonenumerable; | ||
var _props = this.props; | ||
var showNonenumerable = _props.showNonenumerable; | ||
var sortObjectKeys = _props.sortObjectKeys; | ||
var rest = (0, _objectWithoutProperties3.default)(_props, ['showNonenumerable', 'sortObjectKeys']); | ||
var dataIterator = createIterator(showNonenumerable, sortObjectKeys); | ||
var dataIterator = createIterator(showNonenumerable); | ||
return _react2.default.createElement(_TreeView2.default, (0, _extends3.default)({ | ||
nodeRenderer: nodeRenderer, | ||
dataIterator: dataIterator | ||
}, this.props)); | ||
return _react2.default.createElement( | ||
_ThemeProvider2.default, | ||
{ theme: this.props.theme }, | ||
_react2.default.createElement(_TreeView2.default, (0, _extends3.default)({ | ||
nodeRenderer: nodeRenderer, | ||
dataIterator: dataIterator | ||
}, rest)) | ||
); | ||
} | ||
@@ -339,3 +362,5 @@ }]); | ||
ObjectInspector.defaultProps = { | ||
showNonenumerable: false | ||
showNonenumerable: false, | ||
theme: 'chromeLight' | ||
}; | ||
@@ -349,8 +374,13 @@ ObjectInspector.propTypes = { | ||
name: _react.PropTypes.string, | ||
/** Not isRequired because we also allow undefined value */ | ||
/** Not required prop because we also allow undefined value */ | ||
data: _react.PropTypes.any, | ||
/** A known theme or theme object */ | ||
theme: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.object]), | ||
/** Show non-enumerable properties */ | ||
showNonenumerable: _react.PropTypes.bool | ||
showNonenumerable: _react.PropTypes.bool, | ||
/** Sort object keys with optional compare function. */ | ||
sortObjectKeys: _react.PropTypes.oneOfType([_react.PropTypes.bool, _react.PropTypes.func]) | ||
}; | ||
exports.default = ObjectInspector; |
@@ -15,16 +15,8 @@ 'use strict'; | ||
var _ObjectDescription = require('../object/ObjectDescription'); | ||
var _ObjectValue = require('../object/ObjectValue'); | ||
var _ObjectDescription2 = _interopRequireDefault(_ObjectDescription); | ||
var _ObjectValue2 = _interopRequireDefault(_ObjectValue); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var Colon = function Colon() { | ||
return _react2.default.createElement( | ||
'span', | ||
null, | ||
': ' | ||
); | ||
}; | ||
/** | ||
@@ -44,4 +36,8 @@ * if isNonenumerable is specified, render the name dimmed | ||
_react2.default.createElement(_ObjectName2.default, { name: name, dimmed: isNonenumerable }), | ||
_react2.default.createElement(Colon, null), | ||
_react2.default.createElement(_ObjectDescription2.default, { object: object }) | ||
_react2.default.createElement( | ||
'span', | ||
null, | ||
': ' | ||
), | ||
_react2.default.createElement(_ObjectValue2.default, { object: object }) | ||
); | ||
@@ -51,5 +47,6 @@ }; | ||
ObjectLabel.propTypes = { | ||
isNonenumerable: _react.PropTypes.bool }; | ||
/** Non enumerable object property will be dimmed */ | ||
isNonenumerable: _react.PropTypes.bool | ||
}; | ||
// non enumerable object will be dimmed | ||
ObjectLabel.defaultProps = { | ||
@@ -56,0 +53,0 @@ isNonenumerable: false |
@@ -15,5 +15,5 @@ 'use strict'; | ||
var _ObjectDescription = require('../object/ObjectDescription'); | ||
var _ObjectValue = require('../object/ObjectValue'); | ||
var _ObjectDescription2 = _interopRequireDefault(_ObjectDescription); | ||
var _ObjectValue2 = _interopRequireDefault(_ObjectValue); | ||
@@ -48,3 +48,2 @@ var _ObjectName = require('../object/ObjectName'); | ||
var ObjectPreview = function ObjectPreview(_ref) { | ||
var name = _ref.name; | ||
var data = _ref.data; | ||
@@ -56,3 +55,3 @@ var maxProperties = _ref.maxProperties; | ||
if ((typeof object === 'undefined' ? 'undefined' : (0, _typeof3.default)(object)) !== 'object' || object === null || object instanceof Date || object instanceof RegExp) { | ||
return _react2.default.createElement(_ObjectDescription2.default, { object: object }); | ||
return _react2.default.createElement(_ObjectValue2.default, { object: object }); | ||
} | ||
@@ -66,3 +65,3 @@ | ||
intersperse(object.map(function (element, index) { | ||
return _react2.default.createElement(_ObjectDescription2.default, { key: index, object: element }); | ||
return _react2.default.createElement(_ObjectValue2.default, { key: index, object: element }); | ||
}), ", "), | ||
@@ -89,3 +88,3 @@ ']' | ||
': ', | ||
_react2.default.createElement(_ObjectDescription2.default, { object: propertyValue }), | ||
_react2.default.createElement(_ObjectValue2.default, { object: propertyValue }), | ||
ellipsis | ||
@@ -92,0 +91,0 @@ )); |
@@ -7,2 +7,6 @@ 'use strict'; | ||
var _extends2 = require('babel-runtime/helpers/extends'); | ||
var _extends3 = _interopRequireDefault(_extends2); | ||
var _react = require('react'); | ||
@@ -12,5 +16,5 @@ | ||
var _objectStyles = require('../styles/objectStyles'); | ||
var _createStyles = require('../styles/createStyles'); | ||
var _objectStyles2 = _interopRequireDefault(_objectStyles); | ||
var _createStyles2 = _interopRequireDefault(_createStyles); | ||
@@ -28,8 +32,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
*/ | ||
var ObjectName = function ObjectName(_ref) { | ||
var ObjectName = function ObjectName(_ref, _ref2) { | ||
var name = _ref.name; | ||
var dimmed = _ref.dimmed; | ||
var theme = _ref2.theme; | ||
var styles = (0, _createStyles2.default)('ObjectName', theme); | ||
return _react2.default.createElement( | ||
'span', | ||
{ style: dimmed ? _objectStyles2.default.nameDimmed : _objectStyles2.default.name }, | ||
{ style: (0, _extends3.default)({}, styles.base, dimmed && styles.dimmed) }, | ||
name | ||
@@ -46,2 +53,10 @@ ); | ||
ObjectName.defaultProps = { | ||
dimmed: false | ||
}; | ||
ObjectName.contextTypes = { | ||
theme: _react2.default.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.object]) | ||
}; | ||
exports.default = ObjectName; |
@@ -11,6 +11,2 @@ 'use strict'; | ||
var _extends2 = require('babel-runtime/helpers/extends'); | ||
var _extends3 = _interopRequireDefault(_extends2); | ||
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); | ||
@@ -36,6 +32,10 @@ | ||
var _ObjectDescription = require('../object/ObjectDescription'); | ||
var _ThemeProvider = require('../styles/ThemeProvider'); | ||
var _ObjectDescription2 = _interopRequireDefault(_ObjectDescription); | ||
var _ThemeProvider2 = _interopRequireDefault(_ThemeProvider); | ||
var _createStyles = require('../styles/createStyles'); | ||
var _createStyles2 = _interopRequireDefault(_createStyles); | ||
var _getHeaders2 = require('./getHeaders'); | ||
@@ -45,327 +45,27 @@ | ||
var _unselectable = require('../styles/unselectable'); | ||
var _DataContainer = require('./DataContainer'); | ||
var _unselectable2 = _interopRequireDefault(_unselectable); | ||
var _DataContainer2 = _interopRequireDefault(_DataContainer); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var _HeaderContainer = require('./HeaderContainer'); | ||
var styles = { | ||
base: { | ||
position: 'relative', | ||
border: '1px solid #aaa', | ||
fontFamily: 'Menlo, monospace', | ||
fontSize: '11px', | ||
lineHeight: '120%', | ||
boxSizing: 'border-box', | ||
cursor: 'default' | ||
}, | ||
// table: { | ||
// }, | ||
th: { | ||
position: 'relative', // anchor for sort icon container | ||
height: 'auto', | ||
textAlign: 'left', | ||
backgroundColor: '#eee', | ||
borderBottom: '1px solid #aaa', | ||
fontWeight: 'normal', | ||
verticalAlign: 'middle', | ||
padding: '0 4px', | ||
var _HeaderContainer2 = _interopRequireDefault(_HeaderContainer); | ||
whiteSpace: 'nowrap', | ||
textOverflow: 'ellipsis', | ||
overflow: 'hidden', | ||
lineHeight: '14px' | ||
}, | ||
'th:hover': { | ||
backgroundColor: 'hsla(0, 0%, 90%, 1)' | ||
}, | ||
// th > div | ||
th_div: { | ||
whiteSpace: 'nowrap', | ||
textOverflow: 'ellipsis', | ||
overflow: 'hidden', | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
// otherwise it's overriden by user agent stylesheet | ||
fontSize: '11px', | ||
lineHeight: '120%' | ||
}, | ||
tr: { | ||
display: 'table-row' | ||
}, | ||
td: { | ||
boxSizing: 'border-box', // | ||
border: 'none', // prevent overrides | ||
height: '16px', // /* 0.5 * background-size height */ | ||
verticalAlign: 'top', | ||
padding: '1px 4px', | ||
WebkitUserSelect: 'text', | ||
/** | ||
* Specs: | ||
* https://developer.chrome.com/devtools/docs/commandline-api#tabledata-columns | ||
* https://developer.mozilla.org/en-US/docs/Web/API/Console/table | ||
*/ | ||
whiteSpace: 'nowrap', | ||
textOverflow: 'ellipsis', | ||
overflow: 'hidden', | ||
lineHeight: '14px' | ||
}, | ||
leftBorder: { | ||
none: { | ||
borderLeft: 'none' | ||
}, | ||
solid: { | ||
borderLeft: '1px solid #aaa' | ||
} | ||
} | ||
}; /** | ||
* Specs: | ||
* https://developer.chrome.com/devtools/docs/commandline-api#tabledata-columns | ||
* https://developer.mozilla.org/en-US/docs/Web/API/Console/table | ||
*/ | ||
var TableInspector = function (_Component) { | ||
(0, _inherits3.default)(TableInspector, _Component); | ||
var SortIconContainer = function SortIconContainer(props) { | ||
return _react2.default.createElement( | ||
'div', | ||
{ style: { | ||
position: 'absolute', | ||
top: 1, | ||
right: 0, | ||
bottom: 1, | ||
display: 'flex', | ||
alignItems: 'center' | ||
} }, | ||
props.children | ||
); | ||
}; | ||
var SortIcon = function SortIcon(_ref) { | ||
var sortAscending = _ref.sortAscending; | ||
var glyph = sortAscending ? '▲' : '▼'; | ||
return _react2.default.createElement( | ||
'div', | ||
{ style: Object.assign({ | ||
display: 'block', | ||
marginRight: 3, // 4, | ||
width: 8, | ||
height: 7, | ||
marginTop: -7, | ||
color: '#6e6e6e', //'rgb(48, 57, 66)' | ||
fontSize: 12 | ||
}, // lineHeight: 14 | ||
_unselectable2.default) }, | ||
glyph | ||
); | ||
}; | ||
var TH = function (_Component) { | ||
(0, _inherits3.default)(TH, _Component); | ||
function TH(props) { | ||
(0, _classCallCheck3.default)(this, TH); | ||
var _this = (0, _possibleConstructorReturn3.default)(this, Object.getPrototypeOf(TH).call(this, props)); | ||
_this.state = { hovered: false }; | ||
return _this; | ||
} | ||
(0, _createClass3.default)(TH, [{ | ||
key: 'toggleHovered', | ||
value: function toggleHovered(e) { | ||
this.setState({ hovered: !this.state.hovered }); | ||
} | ||
}, { | ||
key: 'render', | ||
value: function render() { | ||
// either not sorted, sort ascending or sort descending | ||
var sortAscending = this.props.sortAscending; | ||
var sorted = this.props.sorted; | ||
return _react2.default.createElement( | ||
'th', | ||
(0, _extends3.default)({}, this.props, { | ||
style: (0, _extends3.default)({}, styles.th, this.props.borderStyle, this.state.hovered ? this.props.hoveredStyle : {}), | ||
onMouseEnter: this.toggleHovered.bind(this), | ||
onMouseLeave: this.toggleHovered.bind(this), | ||
onClick: this.props.onClick }), | ||
_react2.default.createElement( | ||
'div', | ||
{ style: styles.th_div }, | ||
this.props.children | ||
), | ||
function () { | ||
if (sorted) { | ||
return _react2.default.createElement( | ||
SortIconContainer, | ||
null, | ||
_react2.default.createElement(SortIcon, { sortAscending: sortAscending }) | ||
); | ||
} | ||
}() | ||
); | ||
} | ||
}]); | ||
return TH; | ||
}(_react.Component); | ||
TH.defaultProps = { | ||
sortAscending: false, | ||
sorted: false, | ||
hoveredStyle: styles['th:hover'], | ||
borderStyle: styles.leftBorder.solid, | ||
onClick: undefined | ||
}; | ||
var HeaderContainer = function HeaderContainer(_ref2) { | ||
var indexColumnText = _ref2.indexColumnText; | ||
var columns = _ref2.columns; | ||
var sorted = _ref2.sorted; | ||
var sortIndexColumn = _ref2.sortIndexColumn; | ||
var sortColumn = _ref2.sortColumn; | ||
var sortAscending = _ref2.sortAscending; | ||
var onTHClick = _ref2.onTHClick; | ||
var onIndexTHClick = _ref2.onIndexTHClick; | ||
return _react2.default.createElement( | ||
'div', | ||
{ style: { | ||
top: 0, | ||
height: '17px', | ||
left: 0, | ||
right: 0, | ||
overflowX: 'hidden' | ||
} }, | ||
_react2.default.createElement( | ||
'table', | ||
{ style: { | ||
tableLayout: 'fixed', | ||
borderSpacing: 0, | ||
borderCollapse: 'separate', | ||
height: '100%', | ||
width: '100%', | ||
margin: 0 } }, | ||
_react2.default.createElement( | ||
'tbody', | ||
null, | ||
_react2.default.createElement( | ||
'tr', | ||
null, | ||
_react2.default.createElement( | ||
TH, | ||
{ borderStyle: styles.leftBorder.none, | ||
sorted: sorted && sortIndexColumn, | ||
sortAscending: sortAscending, | ||
onClick: onIndexTHClick }, | ||
indexColumnText | ||
), | ||
columns.map(function (column) { | ||
return _react2.default.createElement( | ||
TH, | ||
{ key: column, | ||
sorted: sorted && sortColumn === column, | ||
sortAscending: sortAscending, | ||
onClick: onTHClick.bind(undefined, column) }, | ||
column | ||
); | ||
}) | ||
) | ||
) | ||
) | ||
); | ||
}; | ||
HeaderContainer.defaultProps = { | ||
indexColumnText: '(index)', | ||
columns: [] | ||
}; | ||
var DataContainer = function DataContainer(_ref3) { | ||
var rows = _ref3.rows; | ||
var columns = _ref3.columns; | ||
var rowsData = _ref3.rowsData; | ||
return _react2.default.createElement( | ||
'div', | ||
{ style: { | ||
position: 'static', | ||
top: '17px', | ||
bottom: 0, | ||
overflowY: 'overlay', | ||
transform: 'translateZ(0)', | ||
left: 0, | ||
right: 0, | ||
overflowX: 'hidden' | ||
} }, | ||
_react2.default.createElement( | ||
'table', | ||
{ style: { | ||
positon: 'static', | ||
left: 0, | ||
top: 0, | ||
right: 0, | ||
bottom: 0, | ||
borderTop: '0 none transparent', | ||
margin: 0, // prevent overrides | ||
backgroundImage: 'linear-gradient(to bottom, white, white 50%, rgb(234, 243, 255) 50%, rgb(234, 243, 255))', | ||
backgroundSize: '128px 32px', | ||
tableLayout: 'fixed', | ||
// table | ||
borderSpacing: 0, | ||
borderCollapse: 'separate', | ||
// height: '100%', | ||
width: '100%', | ||
fontSize: '11px', | ||
lineHeight: '120%' | ||
} }, | ||
_react2.default.createElement('colgroup', null), | ||
_react2.default.createElement( | ||
'tbody', | ||
null, | ||
rows.map(function (row, i) { | ||
return _react2.default.createElement( | ||
'tr', | ||
{ key: row, style: styles.tr }, | ||
_react2.default.createElement( | ||
'td', | ||
{ style: (0, _extends3.default)({}, styles.td, styles.leftBorder.none) }, | ||
row | ||
), | ||
columns.map(function (column) { | ||
var rowData = rowsData[i]; | ||
// rowData could be | ||
// object -> index by key | ||
// array -> index by array index | ||
// null -> pass | ||
// boolean -> pass | ||
// string -> pass (hasOwnProperty returns true for [0..len-1]) | ||
// number -> pass | ||
// function -> pass | ||
// symbol | ||
// undefined -> pass | ||
if ((typeof rowData === 'undefined' ? 'undefined' : (0, _typeof3.default)(rowData)) === 'object' && rowData !== null && rowData.hasOwnProperty(column)) { | ||
return _react2.default.createElement( | ||
'td', | ||
{ key: column, style: (0, _extends3.default)({}, styles.td, styles.leftBorder.solid) }, | ||
_react2.default.createElement(_ObjectDescription2.default, { object: rowData[column] }) | ||
); | ||
} else { | ||
return _react2.default.createElement('td', { key: column, style: (0, _extends3.default)({}, styles.td, styles.leftBorder.solid) }); | ||
} | ||
}) | ||
); | ||
}) | ||
) | ||
) | ||
); | ||
}; | ||
var TableInspector = function (_Component2) { | ||
(0, _inherits3.default)(TableInspector, _Component2); | ||
function TableInspector(props) { | ||
(0, _classCallCheck3.default)(this, TableInspector); | ||
var _this2 = (0, _possibleConstructorReturn3.default)(this, Object.getPrototypeOf(TableInspector).call(this, props)); | ||
var _this = (0, _possibleConstructorReturn3.default)(this, Object.getPrototypeOf(TableInspector).call(this, props)); | ||
_this2.state = { | ||
_this.state = { | ||
sorted: false, // has user ever clicked the <th> tag to sort? | ||
@@ -376,3 +76,3 @@ sortIndexColumn: false, // is index column sorted? | ||
}; | ||
return _this2; | ||
return _this; | ||
} | ||
@@ -406,2 +106,7 @@ | ||
var columns = this.props.columns; | ||
var theme = this.props.theme; | ||
var styles = (0, _createStyles2.default)('TableInspector', theme); | ||
if ((typeof data === 'undefined' ? 'undefined' : (0, _typeof3.default)(data)) !== 'object' || data === null) { | ||
@@ -497,15 +202,19 @@ return _react2.default.createElement('div', null); | ||
return _react2.default.createElement( | ||
'div', | ||
{ style: styles.base }, | ||
_react2.default.createElement(HeaderContainer, { columns: colHeaders | ||
/* for sorting */ | ||
, sorted: this.state.sorted, | ||
sortIndexColumn: this.state.sortIndexColumn, | ||
sortColumn: this.state.sortColumn, | ||
sortAscending: this.state.sortAscending, | ||
onTHClick: this.handleTHClick.bind(this), | ||
onIndexTHClick: this.handleIndexTHClick.bind(this) }), | ||
_react2.default.createElement(DataContainer, { rows: rowHeaders, | ||
columns: colHeaders, | ||
rowsData: rowsData }) | ||
_ThemeProvider2.default, | ||
{ theme: this.props.theme }, | ||
_react2.default.createElement( | ||
'div', | ||
{ style: styles.base }, | ||
_react2.default.createElement(_HeaderContainer2.default, { columns: colHeaders | ||
/* for sorting */ | ||
, sorted: this.state.sorted, | ||
sortIndexColumn: this.state.sortIndexColumn, | ||
sortColumn: this.state.sortColumn, | ||
sortAscending: this.state.sortAscending, | ||
onTHClick: this.handleTHClick.bind(this), | ||
onIndexTHClick: this.handleIndexTHClick.bind(this) }), | ||
_react2.default.createElement(_DataContainer2.default, { rows: rowHeaders, | ||
columns: colHeaders, | ||
rowsData: rowsData }) | ||
) | ||
); | ||
@@ -533,3 +242,4 @@ } | ||
data: undefined, | ||
columns: undefined | ||
columns: undefined, | ||
theme: 'chromeLight' | ||
}; |
@@ -31,51 +31,15 @@ 'use strict'; | ||
var _unselectable = require('../styles/unselectable'); | ||
var _createStyles = require('../styles/createStyles'); | ||
var _unselectable2 = _interopRequireDefault(_unselectable); | ||
var _createStyles2 = _interopRequireDefault(_createStyles); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var styles = { | ||
base: { | ||
lineHeight: '14px', | ||
cursor: 'default', | ||
boxSizing: 'border-box', | ||
listStyle: 'none', | ||
fontFamily: 'Menlo, monospace', | ||
fontSize: '11px' | ||
}, | ||
// take up parent container width | ||
// width: '100%', | ||
previewContainer: {}, | ||
placeholder: (0, _extends3.default)({ | ||
whiteSpace: 'pre', | ||
fontSize: 12, | ||
marginRight: 3 | ||
}, _unselectable2.default), | ||
arrow: (0, _extends3.default)({ | ||
color: '#6e6e6e', | ||
display: 'inline-block', | ||
// lineHeight: '14px', | ||
fontSize: 12, | ||
marginRight: 3 | ||
}, _unselectable2.default), | ||
childNodesContainer: { | ||
margin: 0, // reset user-agent style | ||
paddingLeft: 12 | ||
} | ||
}; | ||
var Arrow = function Arrow(_ref) { | ||
var expanded = _ref.expanded; | ||
var style = _ref.style; | ||
var styles = _ref.styles; | ||
return _react2.default.createElement( | ||
'span', | ||
{ style: styles.arrow }, | ||
expanded ? '▼' : '▶' | ||
{ style: (0, _extends3.default)({}, styles.base, expanded ? styles.expanded : styles.collapsed) }, | ||
'▶' | ||
); | ||
@@ -101,22 +65,22 @@ }; | ||
var children = _props.children; | ||
var style = _props.style; | ||
var nodeRenderer = _props.nodeRenderer; | ||
var title = _props.title; | ||
var _props2 = this.props; | ||
var shouldShowArrow = _props2.shouldShowArrow; | ||
var shouldShowPlaceholder = _props2.shouldShowPlaceholder; | ||
var shouldShowArrow = _props.shouldShowArrow; | ||
var shouldShowPlaceholder = _props.shouldShowPlaceholder; | ||
var theme = this.context.theme; | ||
var styles = (0, _createStyles2.default)('TreeNode', theme); | ||
var renderedNode = (0, _react.createElement)(nodeRenderer, this.props); | ||
var childNodes = expanded ? children : undefined; | ||
var childNodes = expanded ? children : undefined; | ||
return _react2.default.createElement( | ||
'li', | ||
{ 'aria-expanded': expanded, role: 'treeitem', style: styles.base, title: title }, | ||
{ 'aria-expanded': expanded, role: 'treeitem', style: styles.treeNodeBase, title: title }, | ||
_react2.default.createElement( | ||
'div', | ||
{ style: styles.previewContainer, onClick: onClick }, | ||
shouldShowArrow || _react.Children.count(children) > 0 ? _react2.default.createElement(Arrow, { expanded: expanded }) : shouldShowPlaceholder && _react2.default.createElement( | ||
{ style: styles.treeNodePreviewContainer, onClick: onClick }, | ||
shouldShowArrow || _react.Children.count(children) > 0 ? _react2.default.createElement(Arrow, { expanded: expanded, styles: styles.treeNodeArrow }) : shouldShowPlaceholder && _react2.default.createElement( | ||
'span', | ||
{ style: styles.placeholder }, | ||
{ style: styles.treeNodePlaceholder }, | ||
' ' | ||
@@ -128,3 +92,3 @@ ), | ||
'ol', | ||
{ role: 'group', style: styles.childNodesContainer }, | ||
{ role: 'group', style: styles.treeNodeChildNodesContainer }, | ||
childNodes | ||
@@ -152,3 +116,3 @@ ) | ||
TreeNode.defaultProps = { | ||
name: '', | ||
name: undefined, | ||
data: undefined, | ||
@@ -174,2 +138,6 @@ expanded: true, | ||
TreeNode.contextTypes = { | ||
theme: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.object]).isRequired | ||
}; | ||
exports.default = TreeNode; |
@@ -118,2 +118,3 @@ 'use strict'; | ||
nodeRenderer: nodeRenderer | ||
}, props))); | ||
@@ -238,2 +239,3 @@ } | ||
var rootPath = _pathUtils.DEFAULT_ROOT_PATH; | ||
return _react2.default.createElement(ConnectedTreeNode, { name: name, | ||
@@ -240,0 +242,0 @@ data: data, |
{ | ||
"name": "react-inspector", | ||
"version": "1.0.1", | ||
"version": "1.1.0", | ||
"description": "Power of Browser DevTools inspectors right inside your React app", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
98773
37
2540