UNPKG

react-native-web-headroom

Version:
160 lines (115 loc) 4.23 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _DOMNodePreview = require('./DOMNodePreview'); var _DOMNodePreview2 = _interopRequireDefault(_DOMNodePreview); var _TreeView = require('../tree-view/TreeView'); var _TreeView2 = _interopRequireDefault(_TreeView); var _shouldInline = require('./shouldInline'); var _shouldInline2 = _interopRequireDefault(_shouldInline); var _ThemeProvider = require('../styles/ThemeProvider'); var _ThemeProvider2 = _interopRequireDefault(_ThemeProvider); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var domIterator = /*#__PURE__*/_regenerator2.default.mark(function domIterator(data) { var textInlined, i, node; return _regenerator2.default.wrap(function domIterator$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!(data && data.childNodes)) { _context.next = 17; break; } textInlined = (0, _shouldInline2.default)(data); if (!textInlined) { _context.next = 4; break; } return _context.abrupt('return'); case 4: i = 0; case 5: if (!(i < data.childNodes.length)) { _context.next = 14; break; } node = data.childNodes[i]; if (!(node.nodeType === Node.TEXT_NODE && node.textContent.trim().length === 0)) { _context.next = 9; break; } return _context.abrupt('continue', 11); case 9: _context.next = 11; return { name: node.tagName + '[' + i + ']', data: node }; case 11: i++; _context.next = 5; break; case 14: if (!data.tagName) { _context.next = 17; break; } _context.next = 17; return { name: 'CLOSE_TAG', data: { tagName: data.tagName }, isCloseTag: true }; case 17: case 'end': return _context.stop(); } } }, domIterator, this); }); var DOMInspector = function (_Component) { (0, _inherits3.default)(DOMInspector, _Component); function DOMInspector() { (0, _classCallCheck3.default)(this, DOMInspector); return (0, _possibleConstructorReturn3.default)(this, (DOMInspector.__proto__ || Object.getPrototypeOf(DOMInspector)).apply(this, arguments)); } (0, _createClass3.default)(DOMInspector, [{ key: 'render', value: function render() { 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)) ); } }]); return DOMInspector; }(_react.Component); DOMInspector.propTypes = { /** The DOM Node to inspect */ data: _propTypes2.default.object.isRequired }; DOMInspector.defaultProps = { theme: 'chromeLight' }; exports.default = DOMInspector;