ype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n","var anObject = require('./_an-object');\nvar get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _createStyles = require('../styles/createStyles');\n\nvar _createStyles2 = _interopRequireDefault(_createStyles);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Arrow = function Arrow(_ref) {\n var expanded = _ref.expanded,\n styles = _ref.styles;\n return _react2.default.createElement(\n 'span',\n { style: (0, _extends3.default)({}, styles.base, expanded ? styles.expanded : styles.collapsed) },\n '\\u25B6'\n );\n};\n\nvar TreeNode = function (_Component) {\n (0, _inherits3.default)(TreeNode, _Component);\n\n function TreeNode() {\n (0, _classCallCheck3.default)(this, TreeNode);\n return (0, _possibleConstructorReturn3.default)(this, (TreeNode.__proto__ || Object.getPrototypeOf(TreeNode)).apply(this, arguments));\n }\n\n (0, _createClass3.default)(TreeNode, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n expanded = _props.expanded,\n onClick = _props.onClick,\n children = _props.children,\n nodeRenderer = _props.nodeRenderer,\n title = _props.title,\n shouldShowArrow = _props.shouldShowArrow,\n shouldShowPlaceholder = _props.shouldShowPlaceholder;\n var theme = this.context.theme;\n\n var styles = (0, _createStyles2.default)('TreeNode', theme);\n\n var renderedNode = (0, _react.createElement)(nodeRenderer, this.props);\n var childNodes = expanded ? children : undefined;\n\n return _react2.default.createElement(\n 'li',\n { 'aria-expanded': expanded, role: 'treeitem', style: styles.treeNodeBase, title: title },\n _react2.default.createElement(\n 'div',\n { style: styles.treeNodePreviewContainer, onClick: onClick },\n shouldShowArrow || _react.Children.count(children) > 0 ? _react2.default.createElement(Arrow, { expanded: expanded, styles: styles.treeNodeArrow }) : shouldShowPlaceholder && _react2.default.createElement(\n 'span',\n { style: styles.treeNodePlaceholder },\n '\\xA0'\n ),\n renderedNode\n ),\n _react2.default.createElement(\n 'ol',\n { role: 'group', style: styles.treeNodeChildNodesContainer },\n childNodes\n )\n );\n }\n }]);\n return TreeNode;\n}(_react.Component);\n\nTreeNode.propTypes = {\n name: _propTypes2.default.string,\n data: _propTypes2.default.any,\n\n expanded: _propTypes2.default.bool,\n shouldShowArrow: _propTypes2.default.bool,\n shouldShowPlaceholder: _propTypes2.default.bool,\n\n nodeRenderer: _propTypes2.default.func,\n\n onClick: _propTypes2.default.func\n};\n\nTreeNode.defaultProps = {\n name: undefined,\n data: undefined,\n expanded: true,\n\n nodeRenderer: function nodeRenderer(_ref2) {\n var name = _ref2.name;\n return _react2.default.createElement(\n 'span',\n null,\n name\n );\n },\n\n onClick: function onClick() {},\n\n shouldShowArrow: false,\n shouldShowPlaceholder: true\n};\n\nTreeNode.contextTypes = {\n theme: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]).isRequired\n};\n\nexports.default = TreeNode;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _unselectable = require('./unselectable');\n\nvar _unselectable2 = _interopRequireDefault(_unselectable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (theme) {\n return {\n DOMNodePreview: {\n htmlOpenTag: {\n base: {\n color: theme.HTML_TAG_COLOR\n },\n tagName: {\n color: theme.HTML_TAGNAME_COLOR,\n textTransform: theme.HTML_TAGNAME_TEXT_TRANSFORM\n },\n htmlAttributeName: {\n color: theme.HTML_ATTRIBUTE_NAME_COLOR\n },\n htmlAttributeValue: {\n color: theme.HTML_ATTRIBUTE_VALUE_COLOR\n }\n },\n htmlCloseTag: {\n base: {\n color: theme.HTML_TAG_COLOR\n },\n offsetLeft: {\n /* hack: offset placeholder */\n marginLeft: -theme.TREENODE_PADDING_LEFT\n },\n tagName: {\n color: theme.HTML_TAGNAME_COLOR,\n textTransform: theme.HTML_TAGNAME_TEXT_TRANSFORM\n }\n },\n htmlComment: {\n color: theme.HTML_COMMENT_COLOR\n },\n htmlDoctype: {\n color: theme.HTML_DOCTYPE_COLOR\n }\n },\n\n ObjectName: {\n base: {\n color: theme.OBJECT_NAME_COLOR\n },\n dimmed: {\n opacity: 0.6\n }\n },\n\n ObjectValue: {\n objectValueNull: {\n color: theme.OBJECT_VALUE_NULL_COLOR\n },\n objectValueUndefined: {\n color: theme.OBJECT_VALUE_UNDEFINED_COLOR\n },\n objectValueRegExp: {\n color: theme.OBJECT_VALUE_REGEXP_COLOR\n },\n objectValueString: {\n color: theme.OBJECT_VALUE_STRING_COLOR\n },\n objectValueSymbol: {\n color: theme.OBJECT_VALUE_SYMBOL_COLOR\n },\n objectValueNumber: {\n color: theme.OBJECT_VALUE_NUMBER_COLOR\n },\n objectValueBoolean: {\n color: theme.OBJECT_VALUE_BOOLEAN_COLOR\n },\n objectValueFunctionKeyword: {\n color: theme.OBJECT_VALUE_FUNCTION_KEYWORD_COLOR,\n fontStyle: 'italic'\n },\n objectValueFunctionName: {\n fontStyle: 'italic'\n }\n },\n\n TreeNode: {\n treeNodeBase: {\n color: theme.BASE_COLOR,\n backgroundColor: theme.BASE_BACKGROUND_COLOR,\n\n lineHeight: theme.TREENODE_LINE_HEIGHT,\n cursor: 'default',\n\n boxSizing: 'border-box',\n listStyle: 'none',\n\n fontFamily: theme.TREENODE_FONT_FAMILY,\n fontSize: theme.TREENODE_FONT_SIZE\n },\n treeNodePreviewContainer: {},\n treeNodePlaceholder: (0, _extends3.default)({\n whiteSpace: 'pre',\n\n fontSize: theme.ARROW_FONT_SIZE,\n marginRight: theme.ARROW_MARGIN_RIGHT\n }, _unselectable2.default),\n treeNodeArrow: {\n base: (0, _extends3.default)({\n color: theme.ARROW_COLOR,\n display: 'inline-block',\n // lineHeight: '14px',\n fontSize: theme.ARROW_FONT_SIZE,\n marginRight: theme.ARROW_MARGIN_RIGHT\n }, _unselectable2.default),\n expanded: {\n WebkitTransform: 'rotateZ(90deg)',\n MozTransform: 'rotateZ(90deg)',\n transform: 'rotateZ(90deg)'\n },\n collapsed: {\n WebkitTransform: 'rotateZ(0deg)',\n MozTransform: 'rotateZ(0deg)',\n transform: 'rotateZ(0deg)'\n }\n },\n treeNodeChildNodesContainer: {\n margin: 0, // reset user-agent style\n paddingLeft: theme.TREENODE_PADDING_LEFT\n }\n },\n\n TableInspector: {\n base: {\n color: theme.BASE_COLOR,\n\n position: 'relative',\n border: '1px solid ' + theme.TABLE_BORDER_COLOR,\n fontFamily: theme.BASE_FONT_FAMILY,\n fontSize: theme.BASE_FONT_SIZE,\n lineHeight: '120%',\n boxSizing: 'border-box',\n cursor: 'default'\n }\n },\n\n TableInspectorHeaderContainer: {\n base: {\n top: 0,\n height: '17px',\n left: 0,\n right: 0,\n overflowX: 'hidden'\n },\n table: {\n tableLayout: 'fixed',\n borderSpacing: 0,\n borderCollapse: 'separate',\n height: '100%',\n width: '100%',\n margin: 0\n }\n },\n\n TableInspectorDataContainer: {\n tr: {\n display: 'table-row'\n },\n td: {\n boxSizing: 'border-box',\n border: 'none', // prevent overrides\n height: '16px', // /* 0.5 * table.background-size height */\n verticalAlign: 'top',\n padding: '1px 4px',\n WebkitUserSelect: 'text',\n\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n lineHeight: '14px'\n },\n div: {\n position: 'static',\n top: '17px',\n bottom: 0,\n overflowY: 'overlay',\n transform: 'translateZ(0)',\n\n left: 0,\n right: 0,\n overflowX: 'hidden'\n },\n table: {\n positon: 'static',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n borderTop: '0 none transparent',\n margin: 0, // prevent user agent stylesheet overrides\n\n backgroundImage: theme.TABLE_DATA_BACKGROUND_IMAGE,\n backgroundSize: theme.TABLE_DATA_BACKGROUND_SIZE,\n tableLayout: 'fixed',\n\n // table\n borderSpacing: 0,\n borderCollapse: 'separate',\n // height: '100%',\n width: '100%',\n\n fontSize: theme.BASE_FONT_SIZE,\n lineHeight: '120%'\n }\n },\n\n TableInspectorTH: {\n base: {\n position: 'relative', // anchor for sort icon container\n height: 'auto',\n textAlign: 'left',\n backgroundColor: theme.TABLE_TH_BACKGROUND_COLOR,\n borderBottom: '1px solid ' + theme.TABLE_BORDER_COLOR,\n fontWeight: 'normal',\n verticalAlign: 'middle',\n padding: '0 4px',\n\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n lineHeight: '14px',\n\n ':hover': {\n backgroundColor: theme.TABLE_TH_HOVER_COLOR\n }\n },\n div: {\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n\n // prevent user agent stylesheet overrides\n fontSize: theme.BASE_FONT_SIZE,\n lineHeight: '120%'\n }\n },\n\n TableInspectorLeftBorder: {\n none: {\n borderLeft: 'none'\n },\n solid: {\n borderLeft: '1px solid ' + theme.TABLE_BORDER_COLOR\n }\n },\n\n TableInspectorSortIcon: (0, _extends3.default)({\n display: 'block',\n marginRight: 3, // 4,\n width: 8,\n height: 7,\n\n marginTop: -7,\n color: theme.TABLE_SORT_ICON_COLOR,\n fontSize: 12\n }, _unselectable2.default)\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n WebkitTouchCallout: 'none',\n WebkitUserSelect: 'none',\n KhtmlUserSelect: 'none',\n MozUserSelect: 'none',\n msUserSelect: 'none',\n OUserSelect: 'none',\n userSelect: 'none'\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hasChildNodes = hasChildNodes;\nvar DEFAULT_ROOT_PATH = exports.DEFAULT_ROOT_PATH = '$';\n\nvar WILDCARD = '*';\n\nfunction hasChildNodes(data, dataIterator) {\n return !dataIterator(data).next().done;\n}\n\nvar wildcardPathsFromLevel = exports.wildcardPathsFromLevel = function wildcardPathsFromLevel(level) {\n // i is depth\n return Array.from({ length: level }, function (_, i) {\n return [DEFAULT_ROOT_PATH].concat(Array.from({ length: i }, function () {\n return '*';\n })).join('.');\n });\n};\n\nvar getExpandedPaths = exports.getExpandedPaths = function getExpandedPaths(data, dataIterator, expandPaths, expandLevel) {\n var initialState = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n\n var wildcardPaths = [].concat(wildcardPathsFromLevel(expandLevel)).concat(expandPaths).filter(function (path) {\n return typeof path === 'string';\n }); // could be undefined\n\n var expandedPaths = [];\n wildcardPaths.forEach(function (wildcardPath) {\n var keyPaths = wildcardPath.split('.');\n var populatePaths = function populatePaths(curData, curPath, depth) {\n if (depth === keyPaths.length) {\n expandedPaths.push(curPath);\n return;\n }\n var key = keyPaths[depth];\n if (depth === 0) {\n if (hasChildNodes(curData, dataIterator) && (key === DEFAULT_ROOT_PATH || key === WILDCARD)) {\n populatePaths(curData, DEFAULT_ROOT_PATH, depth + 1);\n }\n } else {\n if (key === WILDCARD) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = dataIterator(curData)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _ref2 = _step.value;\n var name = _ref2.name,\n _data = _ref2.data;\n\n if (hasChildNodes(_data, dataIterator)) {\n populatePaths(_data, curPath + '.' + name, depth + 1);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n } else {\n var value = curData[key];\n if (hasChildNodes(value, dataIterator)) {\n populatePaths(value, curPath + '.' + key, depth + 1);\n }\n }\n }\n };\n\n populatePaths(data, '', 0);\n });\n\n return expandedPaths.reduce(function (obj, path) {\n obj[path] = true;\n return obj;\n }, initialState);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = require('babel-runtime/helpers/typeof');\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ObjectValue = require('../object/ObjectValue');\n\nvar _ObjectValue2 = _interopRequireDefault(_ObjectValue);\n\nvar _ObjectName = require('../object/ObjectName');\n\nvar _ObjectName2 = _interopRequireDefault(_ObjectName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* NOTE: Chrome console.log is italic */\nvar styles = {\n preview: {\n fontStyle: 'italic'\n }\n};\n\n/* intersperse arr with separator */\nfunction intersperse(arr, sep) {\n if (arr.length === 0) {\n return [];\n }\n\n return arr.slice(1).reduce(function (xs, x) {\n return xs.concat([sep, x]);\n }, [arr[0]]);\n}\n\n/**\n * A preview of the object\n */\nvar ObjectPreview = function ObjectPreview(_ref) {\n var data = _ref.data,\n maxProperties = _ref.maxProperties;\n\n var object = data;\n\n if ((typeof object === 'undefined' ? 'undefined' : (0, _typeof3.default)(object)) !== 'object' || object === null || object instanceof Date || object instanceof RegExp) {\n return _react2.default.createElement(_ObjectValue2.default, { object: object });\n }\n\n if (Array.isArray(object)) {\n return _react2.default.createElement(\n 'span',\n { style: styles.preview },\n '[',\n intersperse(object.map(function (element, index) {\n return _react2.default.createElement(_ObjectValue2.default, { key: index, object: element });\n }), ', '),\n ']'\n );\n } else {\n var propertyNodes = [];\n for (var propertyName in object) {\n var propertyValue = object[propertyName];\n if (object.hasOwnProperty(propertyName)) {\n var ellipsis = void 0;\n if (propertyNodes.length === maxProperties - 1 && Object.keys(object).length > maxProperties) {\n ellipsis = _react2.default.createElement(\n 'span',\n { key: 'ellipsis' },\n '\\u2026'\n );\n }\n propertyNodes.push(_react2.default.createElement(\n 'span',\n { key: propertyName },\n _react2.default.createElement(_ObjectName2.default, { name: propertyName || '\"\"' }),\n ':\\xA0',\n _react2.default.createElement(_ObjectValue2.default, { object: propertyValue }),\n ellipsis\n ));\n if (ellipsis) break;\n }\n }\n\n return _react2.default.createElement(\n 'span',\n { style: styles.preview },\n object.constructor.name + ' {',\n intersperse(propertyNodes, ', '),\n '}'\n );\n }\n};\n\nObjectPreview.propTypes = {\n /**\n * max number of properties shown in the property view\n */\n maxProperties: _propTypes2.default.number\n};\nObjectPreview.defaultProps = {\n maxProperties: 5\n};\n\nexports.default = ObjectPreview;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = require('babel-runtime/helpers/typeof');\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ThemeProvider = require('../styles/ThemeProvider');\n\nvar _ThemeProvider2 = _interopRequireDefault(_ThemeProvider);\n\nvar _createStyles = require('../styles/createStyles');\n\nvar _createStyles2 = _interopRequireDefault(_createStyles);\n\nvar _getHeaders2 = require('./getHeaders');\n\nvar _getHeaders3 = _interopRequireDefault(_getHeaders2);\n\nvar _DataContainer = require('./DataContainer');\n\nvar _DataContainer2 = _interopRequireDefault(_DataContainer);\n\nvar _HeaderContainer = require('./HeaderContainer');\n\nvar _HeaderContainer2 = _interopRequireDefault(_HeaderContainer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar TableInspector = function (_Component) {\n (0, _inherits3.default)(TableInspector, _Component);\n\n function TableInspector(props) {\n (0, _classCallCheck3.default)(this, TableInspector);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, (TableInspector.__proto__ || Object.getPrototypeOf(TableInspector)).call(this, props));\n\n _this.state = {\n sorted: false, // has user ever clicked the tag to sort?\n sortIndexColumn: false, // is index column sorted?\n sortColumn: undefined, // which column is sorted?\n sortAscending: false // is sorting ascending or descending?\n };\n return _this;\n }\n\n (0, _createClass3.default)(TableInspector, [{\n key: 'handleIndexTHClick',\n value: function handleIndexTHClick() {\n this.setState(function (_ref) {\n var sortIndexColumn = _ref.sortIndexColumn,\n sortAscending = _ref.sortAscending;\n return {\n sorted: true,\n sortIndexColumn: true,\n sortColumn: undefined,\n // when changed to a new column, default to asending\n sortAscending: sortIndexColumn ? !sortAscending : true\n };\n });\n }\n }, {\n key: 'handleTHClick',\n value: function handleTHClick(col) {\n this.setState(function (_ref2) {\n var sortColumn = _ref2.sortColumn,\n sortAscending = _ref2.sortAscending;\n return {\n sorted: true,\n sortIndexColumn: false,\n // update sort column\n sortColumn: col,\n // when changed to a new column, default to asending\n sortAscending: col === sortColumn ? !sortAscending : true\n };\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var data = this.props.data;\n var columns = this.props.columns;\n\n var theme = this.props.theme;\n\n var styles = (0, _createStyles2.default)('TableInspector', theme);\n\n if ((typeof data === 'undefined' ? 'undefined' : (0, _typeof3.default)(data)) !== 'object' || data === null) {\n return _react2.default.createElement('div', null);\n }\n\n var _getHeaders = (0, _getHeaders3.default)(data),\n rowHeaders = _getHeaders.rowHeaders,\n colHeaders = _getHeaders.colHeaders;\n\n // columns to be displayed are specified\n // NOTE: there's some space for optimization here\n\n\n if (columns !== undefined) {\n colHeaders = columns;\n }\n\n var rowsData = rowHeaders.map(function (rowHeader) {\n return data[rowHeader];\n });\n\n var sortIndexColumn = this.state.sortIndexColumn,\n sortColumn = this.state.sortColumn,\n sortAscending = this.state.sortAscending;\n\n var columnDataWithRowIndexes = void 0; /* row indexes are [0..nRows-1] */\n // TODO: refactor\n if (sortColumn !== undefined) {\n // the column to be sorted (rowsData, column) => [[columnData, rowIndex]]\n columnDataWithRowIndexes = rowsData.map(function (rowData, index) {\n // normalize rowData\n if ((typeof rowData === 'undefined' ? 'undefined' : (0, _typeof3.default)(rowData)) === 'object' && rowData !== null /*&& rowData.hasOwnProperty(sortColumn)*/\n ) {\n var columnData = rowData[sortColumn];\n return [columnData, index];\n }\n return [undefined, index];\n });\n } else {\n if (sortIndexColumn) {\n columnDataWithRowIndexes = rowHeaders.map(function (rowData, index) {\n var columnData = rowHeaders[index];\n return [columnData, index];\n });\n }\n }\n if (columnDataWithRowIndexes !== undefined) {\n // apply a mapper before sorting (because we need to access inside a container)\n var comparator = function comparator(mapper, ascending) {\n return function (a, b) {\n var v1 = mapper(a); // the datum\n var v2 = mapper(b);\n var type1 = typeof v1 === 'undefined' ? 'undefined' : (0, _typeof3.default)(v1);\n var type2 = typeof v2 === 'undefined' ? 'undefined' : (0, _typeof3.default)(v2);\n // use '<' operator to compare same type of values or compare type precedence order #\n var lt = function lt(v1, v2) {\n if (v1 < v2) {\n return -1;\n } else if (v1 > v2) {\n return 1;\n } else {\n return 0;\n }\n };\n var result = void 0;\n if (type1 === type2) {\n result = lt(v1, v2);\n } else {\n // order of different types\n var order = {\n string: 0,\n number: 1,\n object: 2,\n symbol: 3,\n boolean: 4,\n undefined: 5,\n function: 6\n };\n result = lt(order[type1], order[type2]);\n }\n // reverse result if descending\n if (!ascending) result = -result;\n return result;\n };\n };\n var sortedRowIndexes = columnDataWithRowIndexes.sort(comparator(function (item) {\n return item[0];\n }, sortAscending)).map(function (item) {\n return item[1];\n }); // sorted row indexes\n rowHeaders = sortedRowIndexes.map(function (i) {\n return rowHeaders[i];\n });\n rowsData = sortedRowIndexes.map(function (i) {\n return rowsData[i];\n });\n }\n\n return _react2.default.createElement(\n _ThemeProvider2.default,\n { theme: this.props.theme },\n _react2.default.createElement(\n 'div',\n { style: styles.base },\n _react2.default.createElement(_HeaderContainer2.default, {\n columns: colHeaders\n /* for sorting */\n , sorted: this.state.sorted,\n sortIndexColumn: this.state.sortIndexColumn,\n sortColumn: this.state.sortColumn,\n sortAscending: this.state.sortAscending,\n onTHClick: this.handleTHClick.bind(this),\n onIndexTHClick: this.handleIndexTHClick.bind(this)\n }),\n _react2.default.createElement(_DataContainer2.default, { rows: rowHeaders, columns: colHeaders, rowsData: rowsData })\n )\n );\n }\n }]);\n return TableInspector;\n}(_react.Component); /**\n * Specs:\n * https://developer.chrome.com/devtools/docs/commandline-api#tabledata-columns\n * https://developer.mozilla.org/en-US/docs/Web/API/Console/table\n */\n\nexports.default = TableInspector;\n\n\nTableInspector.propTypes = {\n /**\n * the Javascript object you would like to inspect, either an array or an object\n */\n data: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object]),\n /**\n * An array of the names of the columns you'd like to display in the table\n */\n columns: _propTypes2.default.array\n};\n\nTableInspector.defaultProps = {\n data: undefined,\n columns: undefined,\n theme: 'chromeLight'\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _typeof2 = require('babel-runtime/helpers/typeof');\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nexports.default = getHeaders;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n * Polyfill for running tests\n * `includes` is an ES2016 feature\n */\nif (!Array.prototype.includes) {\n Array.prototype.includes = function (searchElement /*, fromIndex*/) {\n var O = Object(this);\n var len = parseInt(O.length) || 0;\n if (len === 0) {\n return false;\n }\n var n = parseInt(arguments[1]) || 0;\n var k;\n if (n >= 0) {\n k = n;\n } else {\n k = len + n;\n if (k < 0) {\n k = 0;\n }\n }\n var currentElement;\n while (k < len) {\n currentElement = O[k];\n if (searchElement === currentElement || searchElement !== searchElement && currentElement !== currentElement) {\n // NaN !== NaN\n return true;\n }\n k++;\n }\n return false;\n };\n}\n\nfunction getHeaders(data) {\n if ((typeof data === 'undefined' ? 'undefined' : (0, _typeof3.default)(data)) === 'object') {\n var rowHeaders = void 0;\n // is an array\n if (Array.isArray(data)) {\n var nRows = data.length;\n rowHeaders = [].concat((0, _toConsumableArray3.default)(Array(nRows).keys()));\n } else if (data !== null) {\n // is an object\n // keys are row indexes\n rowHeaders = Object.keys(data);\n }\n\n // Time: O(nRows * nCols)\n var colHeaders = rowHeaders.reduce(function (colHeaders, rowHeader) {\n var row = data[rowHeader];\n if ((typeof row === 'undefined' ? 'undefined' : (0, _typeof3.default)(row)) === 'object' && row !== null) {\n /* O(nCols) Could optimize `includes` here */\n var cols = Object.keys(row);\n cols.reduce(function (xs, x) {\n if (!xs.includes(x)) {\n /* xs is the colHeaders to be filled by searching the row's indexes */\n xs.push(x);\n }\n return xs;\n }, colHeaders);\n }\n return colHeaders;\n }, []);\n return {\n rowHeaders: rowHeaders,\n colHeaders: colHeaders\n };\n }\n return undefined;\n}","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = require('babel-runtime/helpers/typeof');\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _createStyles = require('../styles/createStyles');\n\nvar _createStyles2 = _interopRequireDefault(_createStyles);\n\nvar _ObjectValue = require('../object/ObjectValue');\n\nvar _ObjectValue2 = _interopRequireDefault(_ObjectValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DataContainer = function DataContainer(_ref, _ref2) {\n var rows = _ref.rows,\n columns = _ref.columns,\n rowsData = _ref.rowsData;\n var theme = _ref2.theme;\n\n var styles = (0, _createStyles2.default)('TableInspectorDataContainer', theme);\n var borderStyles = (0, _createStyles2.default)('TableInspectorLeftBorder', theme);\n\n return _react2.default.createElement(\n 'div',\n { style: styles.div },\n _react2.default.createElement(\n 'table',\n { style: styles.table },\n _react2.default.createElement('colgroup', null),\n _react2.default.createElement(\n 'tbody',\n null,\n rows.map(function (row, i) {\n return _react2.default.createElement(\n 'tr',\n { key: row, style: styles.tr },\n _react2.default.createElement(\n 'td',\n { style: (0, _extends3.default)({}, styles.td, borderStyles.none) },\n row\n ),\n columns.map(function (column) {\n var rowData = rowsData[i];\n // rowData could be\n // object -> index by key\n // array -> index by array index\n // null -> pass\n // boolean -> pass\n // string -> pass (hasOwnProperty returns true for [0..len-1])\n // number -> pass\n // function -> pass\n // symbol\n // undefined -> pass\n if ((typeof rowData === 'undefined' ? 'undefined' : (0, _typeof3.default)(rowData)) === 'object' && rowData !== null && rowData.hasOwnProperty(column)) {\n return _react2.default.createElement(\n 'td',\n { key: column, style: (0, _extends3.default)({}, styles.td, borderStyles.solid) },\n _react2.default.createElement(_ObjectValue2.default, { object: rowData[column] })\n );\n } else {\n return _react2.default.createElement('td', { key: column, style: (0, _extends3.default)({}, styles.td, borderStyles.solid) });\n }\n })\n );\n })\n )\n )\n );\n};\n\nDataContainer.contextTypes = {\n theme: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]).isRequired\n};\n\nexports.default = DataContainer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _createStyles = require('../styles/createStyles');\n\nvar _createStyles2 = _interopRequireDefault(_createStyles);\n\nvar _TH = require('./TH');\n\nvar _TH2 = _interopRequireDefault(_TH);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HeaderContainer = function HeaderContainer(_ref, _ref2) {\n var indexColumnText = _ref.indexColumnText,\n columns = _ref.columns,\n sorted = _ref.sorted,\n sortIndexColumn = _ref.sortIndexColumn,\n sortColumn = _ref.sortColumn,\n sortAscending = _ref.sortAscending,\n onTHClick = _ref.onTHClick,\n onIndexTHClick = _ref.onIndexTHClick;\n var theme = _ref2.theme;\n\n var styles = (0, _createStyles2.default)('TableInspectorHeaderContainer', theme);\n var borderStyles = (0, _createStyles2.default)('TableInspectorLeftBorder', theme);\n return _react2.default.createElement(\n 'div',\n { style: styles.base },\n _react2.default.createElement(\n 'table',\n { style: styles.table },\n _react2.default.createElement(\n 'tbody',\n null,\n _react2.default.createElement(\n 'tr',\n null,\n _react2.default.createElement(\n _TH2.default,\n {\n borderStyle: borderStyles.none,\n sorted: sorted && sortIndexColumn,\n sortAscending: sortAscending,\n onClick: onIndexTHClick\n },\n indexColumnText\n ),\n columns.map(function (column) {\n return _react2.default.createElement(\n _TH2.default,\n {\n borderStyle: borderStyles.solid,\n key: column,\n sorted: sorted && sortColumn === column,\n sortAscending: sortAscending,\n onClick: onTHClick.bind(undefined, column)\n },\n column\n );\n })\n )\n )\n )\n );\n};\n\nHeaderContainer.defaultProps = {\n indexColumnText: '(index)',\n columns: []\n};\n\nHeaderContainer.contextTypes = {\n theme: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]).isRequired\n};\n\nexports.default = HeaderContainer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');\n\nvar _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _createStyles = require('../styles/createStyles');\n\nvar _createStyles2 = _interopRequireDefault(_createStyles);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SortIconContainer = function SortIconContainer(props) {\n return _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'absolute',\n top: 1,\n right: 0,\n bottom: 1,\n display: 'flex',\n alignItems: 'center'\n }\n },\n props.children\n );\n};\n\nvar SortIcon = function SortIcon(_ref, _ref2) {\n var sortAscending = _ref.sortAscending;\n var theme = _ref2.theme;\n\n var glyph = sortAscending ? '▲' : '▼';\n var styles = (0, _createStyles2.default)('TableInspectorSortIcon', theme);\n return _react2.default.createElement(\n 'div',\n { style: styles },\n glyph\n );\n};\n\nSortIcon.contextTypes = {\n theme: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]).isRequired\n};\n\nvar TH = function (_Component) {\n (0, _inherits3.default)(TH, _Component);\n\n function TH() {\n var _ref3;\n\n var _temp, _this, _ret;\n\n (0, _classCallCheck3.default)(this, TH);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref3 = TH.__proto__ || Object.getPrototypeOf(TH)).call.apply(_ref3, [this].concat(args))), _this), _this.state = { hovered: false }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);\n }\n\n (0, _createClass3.default)(TH, [{\n key: 'toggleHovered',\n value: function toggleHovered(hovered) {\n this.setState({ hovered: hovered });\n }\n }, {\n key: 'render',\n value: function render() {\n // either not sorted, sort ascending or sort descending\n var _props = this.props,\n borderStyle = _props.borderStyle,\n children = _props.children,\n onClick = _props.onClick,\n sortAscending = _props.sortAscending,\n sorted = _props.sorted,\n props = (0, _objectWithoutProperties3.default)(_props, ['borderStyle', 'children', 'onClick', 'sortAscending', 'sorted']);\n var theme = this.context.theme;\n\n var styles = (0, _createStyles2.default)('TableInspectorTH', theme);\n\n return _react2.default.createElement(\n 'th',\n (0, _extends3.default)({}, props, {\n style: (0, _extends3.default)({}, styles.base, borderStyle, this.state.hovered ? styles.base[':hover'] : {}),\n onMouseEnter: this.toggleHovered.bind(this, true),\n onMouseLeave: this.toggleHovered.bind(this, false),\n onClick: onClick\n }),\n _react2.default.createElement(\n 'div',\n { style: styles.div },\n children\n ),\n sorted && _react2.default.createElement(\n SortIconContainer,\n null,\n _react2.default.createElement(SortIcon, { sortAscending: sortAscending })\n )\n );\n }\n }]);\n return TH;\n}(_react.Component);\n\nTH.contextTypes = {\n theme: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]).isRequired\n};\n\nTH.defaultProps = {\n sortAscending: false,\n sorted: false,\n onClick: undefined\n};\n\nexports.default = TH;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _regenerator = require('babel-runtime/regenerator');\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _DOMNodePreview = require('./DOMNodePreview');\n\nvar _DOMNodePreview2 = _interopRequireDefault(_DOMNodePreview);\n\nvar _TreeView = require('../tree-view/TreeView');\n\nvar _TreeView2 = _interopRequireDefault(_TreeView);\n\nvar _shouldInline = require('./shouldInline');\n\nvar _shouldInline2 = _interopRequireDefault(_shouldInline);\n\nvar _ThemeProvider = require('../styles/ThemeProvider');\n\nvar _ThemeProvider2 = _interopRequireDefault(_ThemeProvider);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar domIterator = /*#__PURE__*/_regenerator2.default.mark(function domIterator(data) {\n var textInlined, i, node;\n return _regenerator2.default.wrap(function domIterator$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(data && data.childNodes)) {\n _context.next = 17;\n break;\n }\n\n textInlined = (0, _shouldInline2.default)(data);\n\n if (!textInlined) {\n _context.next = 4;\n break;\n }\n\n return _context.abrupt('return');\n\n case 4:\n i = 0;\n\n case 5:\n if (!(i < data.childNodes.length)) {\n _context.next = 14;\n break;\n }\n\n node = data.childNodes[i];\n\n if (!(node.nodeType === Node.TEXT_NODE && node.textContent.trim().length === 0)) {\n _context.next = 9;\n break;\n }\n\n return _context.abrupt('continue', 11);\n\n case 9:\n _context.next = 11;\n return {\n name: node.tagName + '[' + i + ']',\n data: node\n };\n\n case 11:\n i++;\n _context.next = 5;\n break;\n\n case 14:\n if (!data.tagName) {\n _context.next = 17;\n break;\n }\n\n _context.next = 17;\n return {\n name: 'CLOSE_TAG',\n data: {\n tagName: data.tagName\n },\n isCloseTag: true\n };\n\n case 17:\n case 'end':\n return _context.stop();\n }\n }\n }, domIterator, this);\n});\n\nvar DOMInspector = function (_Component) {\n (0, _inherits3.default)(DOMInspector, _Component);\n\n function DOMInspector() {\n (0, _classCallCheck3.default)(this, DOMInspector);\n return (0, _possibleConstructorReturn3.default)(this, (DOMInspector.__proto__ || Object.getPrototypeOf(DOMInspector)).apply(this, arguments));\n }\n\n (0, _createClass3.default)(DOMInspector, [{\n key: 'render',\n value: function render() {\n var nodeRenderer = _DOMNodePreview2.default;\n\n return _react2.default.createElement(\n _ThemeProvider2.default,\n { theme: this.props.theme },\n _react2.default.createElement(_TreeView2.default, (0, _extends3.default)({ nodeRenderer: nodeRenderer, dataIterator: domIterator }, this.props))\n );\n }\n }]);\n return DOMInspector;\n}(_react.Component);\n\nDOMInspector.propTypes = {\n /** The DOM Node to inspect */\n data: _propTypes2.default.object.isRequired\n};\nDOMInspector.defaultProps = {\n theme: 'chromeLight'\n};\nexports.default = DOMInspector;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _createStyles = require('../styles/createStyles');\n\nvar _createStyles2 = _interopRequireDefault(_createStyles);\n\nvar _shouldInline = require('./shouldInline');\n\nvar _shouldInline2 = _interopRequireDefault(_shouldInline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar OpenTag = function OpenTag(_ref) {\n var tagName = _ref.tagName,\n attributes = _ref.attributes,\n styles = _ref.styles;\n\n return _react2.default.createElement(\n 'span',\n { style: styles.base },\n '<',\n _react2.default.createElement(\n 'span',\n { style: styles.tagName },\n tagName\n ),\n function () {\n if (attributes) {\n var attributeNodes = [];\n for (var i = 0; i < attributes.length; i++) {\n var attribute = attributes[i];\n attributeNodes.push(_react2.default.createElement(\n 'span',\n { key: i },\n ' ',\n _react2.default.createElement(\n 'span',\n { style: styles.htmlAttributeName },\n attribute.name\n ),\n '=\"',\n _react2.default.createElement(\n 'span',\n { style: styles.htmlAttributeValue },\n attribute.value\n ),\n '\"'\n ));\n }\n return attributeNodes;\n }\n }(),\n '>'\n );\n};\n\n// isChildNode style={{ marginLeft: -12 /* hack: offset placeholder */ }}\nvar CloseTag = function CloseTag(_ref2) {\n var tagName = _ref2.tagName,\n _ref2$isChildNode = _ref2.isChildNode,\n isChildNode = _ref2$isChildNode === undefined ? false : _ref2$isChildNode,\n styles = _ref2.styles;\n return _react2.default.createElement(\n 'span',\n { style: Object.assign({}, styles.base, isChildNode && styles.offsetLeft) },\n ''\n );\n};\n\nvar nameByNodeType = {\n 1: 'ELEMENT_NODE',\n 3: 'TEXT_NODE',\n 7: 'PROCESSING_INSTRUCTION_NODE',\n 8: 'COMMENT_NODE',\n 9: 'DOCUMENT_NODE',\n 10: 'DOCUMENT_TYPE_NODE', // http://stackoverflow.com/questions/6088972/get-doctype-of-an-html-as-string-with-javascript\n 11: 'DOCUMENT_FRAGMENT_NODE'\n};\n\nvar DOMNodePreview = function DOMNodePreview(_ref3, _ref4) {\n var isCloseTag = _ref3.isCloseTag,\n data = _ref3.data,\n expanded = _ref3.expanded;\n var theme = _ref4.theme;\n\n var styles = (0, _createStyles2.default)('DOMNodePreview', theme);\n\n if (isCloseTag) {\n return _react2.default.createElement(CloseTag, { styles: styles.htmlCloseTag, isChildNode: true, tagName: data.tagName });\n }\n\n switch (data.nodeType) {\n case Node.ELEMENT_NODE:\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(OpenTag, {\n tagName: data.tagName,\n attributes: data.attributes,\n styles: styles.htmlOpenTag\n }),\n (0, _shouldInline2.default)(data) ? data.textContent : !expanded && '…',\n !expanded && _react2.default.createElement(CloseTag, { tagName: data.tagName, styles: styles.htmlCloseTag })\n );\n case Node.TEXT_NODE:\n return _react2.default.createElement(\n 'span',\n null,\n data.textContent\n );\n case Node.CDATA_SECTION_NODE:\n return _react2.default.createElement(\n 'span',\n null,\n ''\n );\n case Node.COMMENT_NODE:\n return _react2.default.createElement(\n 'span',\n { style: styles.htmlComment },\n ''\n );\n case Node.PROCESSING_INSTRUCTION_NODE:\n return _react2.default.createElement(\n 'span',\n null,\n data.nodeName\n );\n case Node.DOCUMENT_TYPE_NODE:\n return _react2.default.createElement(\n 'span',\n { style: styles.htmlDoctype },\n ''\n );\n case Node.DOCUMENT_NODE:\n return _react2.default.createElement(\n 'span',\n null,\n data.nodeName\n );\n case Node.DOCUMENT_FRAGMENT_NODE:\n return _react2.default.createElement(\n 'span',\n null,\n data.nodeName\n );\n default:\n return _react2.default.createElement(\n 'span',\n null,\n nameByNodeType[data.nodeType]\n );\n }\n};\n\nDOMNodePreview.propTypes = {\n /** If true, just render a close tag */\n isCloseTag: _propTypes2.default.bool,\n /** */\n name: _propTypes2.default.string,\n /** The DOM Node */\n data: _propTypes2.default.object.isRequired,\n /** Whether the DOM node has been expanded. */\n expanded: _propTypes2.default.bool.isRequired\n};\n\nDOMNodePreview.contextTypes = {\n theme: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]).isRequired\n};\n\nexports.default = DOMNodePreview;","var isObject = require('is-object')\nvar isWindow = require('is-window')\n\nfunction isNode (val) {\n if (!isObject(val) || !isWindow(window) || typeof window.Node !== 'function') {\n return false\n }\n\n return typeof val.nodeType === 'number' &&\n typeof val.nodeName === 'string'\n}\n\nmodule.exports = isNode\n","'use strict';\n\nmodule.exports = function isObject(x) {\n\treturn typeof x === 'object' && x !== null;\n};\n","'use strict';\n\nmodule.exports = function (obj) {\n\n if (obj == null) {\n return false;\n }\n\n var o = Object(obj);\n\n return o === o.window;\n};\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","/*jshint -W030 */\nvar tagRE = /(?:|<(?:\"[^\"]*\"['\"]*|'[^']*'['\"]*|[^'\">])+>)/g;\nvar parseTag = require('./parse-tag');\n// re-used obj for quick lookups of components\nvar empty = Object.create ? Object.create(null) : {};\n// common logic for pushing a child node onto a list\nfunction pushTextNode(list, html, level, start, ignoreWhitespace) {\n // calculate correct end of the content slice in case there's\n // no tag after the text node.\n var end = html.indexOf('<', start);\n var content = html.slice(start, end === -1 ? undefined : end);\n // if a node is nothing but whitespace, collapse it as the spec states:\n // https://www.w3.org/TR/html4/struct/text.html#h-9.1\n if (/^\\s*$/.test(content)) {\n content = ' ';\n }\n // don't add whitespace-only text nodes if they would be trailing text nodes\n // or if they would be leading whitespace-only text nodes:\n // * end > -1 indicates this is not a trailing text node\n // * leading node is when level is -1 and list has length 0\n if ((!ignoreWhitespace && end > -1 && level + list.length >= 0) || content !== ' ') {\n list.push({\n type: 'text',\n content: content\n });\n }\n}\n\nmodule.exports = function parse(html, options) {\n options || (options = {});\n options.components || (options.components = empty);\n var result = [];\n var current;\n var level = -1;\n var arr = [];\n var byTag = {};\n var inComponent = false;\n\n html.replace(tagRE, function (tag, index) {\n if (inComponent) {\n if (tag !== ('')) {\n return;\n } else {\n inComponent = false;\n }\n }\n\n var isOpen = tag.charAt(1) !== '/';\n var isComment = tag.indexOf('