{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./packages/rax/lib/vdom/host.js","webpack:///./packages/rax/lib/vdom/instance.js","webpack:///./packages/rax/lib/component.js","webpack:///./packages/runtime-shared/lib/symbol.js","webpack:///./packages/rax/lib/vdom/instantiateComponent.js","webpack:///./packages/rax/lib/element.js","webpack:///./packages/rax/lib/unmountComponentAtNode.js","webpack:///./packages/rax/lib/vdom/shouldUpdateComponent.js","webpack:///./packages/rax/lib/render.js","webpack:///./packages/runtime-shared/lib/url-search-params.js","webpack:///./packages/rax/lib/debug/hook.js","webpack:///./packages/rax/lib/flattenChildren.js","webpack:///./packages/universal-env/lib/index.js","webpack:///./packages/rax/lib/proptypes.js","webpack:///./packages/rax/lib/vdom/native.js","webpack:///./packages/rax/lib/vdom/ref.js","webpack:///./packages/rax/lib/vdom/getElementKeyName.js","webpack:///./packages/style-unit/lib/index.js","webpack:///./packages/driver-weex/lib/parseProps.js","webpack:///./packages/rax/lib/findDOMNode.js","webpack:///./packages/web-rax-framework/src/index.js","webpack:///./packages/runtime-shared/lib/index.js","webpack:///./packages/runtime-shared/lib/promise.js","webpack:///./packages/runtime-shared/lib/map.js","webpack:///./packages/runtime-shared/lib/set.js","webpack:///./packages/runtime-shared/lib/weakmap.js","webpack:///./packages/runtime-shared/lib/weakset.js","webpack:///./packages/runtime-shared/lib/fontface.js","webpack:///./packages/runtime-shared/lib/url.js","webpack:///./packages/runtime-shared/lib/matchMedia.js","webpack:///./packages/web-rax-framework/src/number.js","webpack:///./packages/web-rax-framework/src/object.js","webpack:///./packages/web-rax-framework/src/array.js","webpack:///./packages/web-rax-framework/node_modules/whatwg-fetch/fetch.js","webpack:///./packages/web-rax-framework/node_modules/raf/polyfill.js","webpack:///./packages/web-rax-framework/node_modules/raf/index.js","webpack:///./packages/web-rax-framework/node_modules/performance-now/lib/performance-now.js","webpack:///./packages/web-rax-framework/src/require.js","webpack:///./packages/web-rax-framework/src/appear.js","webpack:///./packages/web-rax-framework/src/appearRegistry.js","webpack:///./packages/web-rax-framework/src/intersectionObserver.js","webpack:///./packages/rax/lib/index.js","webpack:///./packages/rax/lib/debug/devtools.js","webpack:///./packages/rax/lib/vdom/root.js","webpack:///./packages/rax/lib/purecomponent.js","webpack:///./packages/rax/lib/inject.js","webpack:///./packages/rax/lib/vdom/empty.js","webpack:///./packages/rax/lib/vdom/text.js","webpack:///./packages/rax/lib/vdom/composite.js","webpack:///./packages/rax/lib/vdom/stateless.js","webpack:///./packages/rax/lib/vdom/updater.js","webpack:///./packages/rax/lib/vdom/shallowEqual.js","webpack:///./packages/rax/lib/vdom/fragment.js","webpack:///./packages/driver-weex/lib/index.js","webpack:///./packages/driver-weex/lib/elements/index.js","webpack:///./packages/driver-weex/lib/elements/img.js","webpack:///./packages/driver-weex/lib/elements/video.js","webpack:///./packages/driver-weex/lib/elements/textarea.js","webpack:///./packages/driver-weex/lib/elements/span.js","webpack:///./packages/driver-weex/lib/elements/p.js","webpack:///./packages/driver-weex/lib/elements/button.js","webpack:///./packages/driver-weex/lib/elements/heading.js","webpack:///./packages/driver-weex/lib/elements/block.js","webpack:///./packages/driver-browser/lib/index.js","webpack:///./packages/driver-browser/lib/flexbox.js","webpack:///./packages/rax/lib/hydrate.js","webpack:///./packages/rax/lib/createPortal.js","webpack:///./packages/rax/lib/findComponentInstance.js","webpack:///./packages/rax/lib/setNativeProps.js","webpack:///./packages/rax/lib/version.js","webpack:///./packages/rax/lib/children.js","webpack:///./packages/rax/lib/createContext.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","default","component","mountID","sandbox","rootComponents","rootInstances","hook","driver","monitor","_host","_interopRequireDefault","_element","_unmountComponentAtNode","_instantiateComponent","_shouldUpdateComponent","_root","obj","KEY","_default","set","node","instance","rootID","_internal","remove","this","mount","element","container","parentInstance","parentContext","beforeRender","createBody","parentInternal","_processChildContext","_context","prevRootInstance","isRootComponent","prevRenderedComponent","getRenderedComponent","prevElement","_currentElement","prevUnmaskedContext","updateComponent","Reconciler","unmountComponent","wrappedElement","createElement","renderedComponent","defaultContext","rootInstance","mountComponent","afterRender","Mount","_renderNewRootComponent","_defineProperties","target","props","length","descriptor","configurable","writable","Component","context","updater","Constructor","TypeError","_classCallCheck","refs","protoProps","staticProps","_createClass","partialState","callback","setState","forceUpdate","_typeof","_typeof2","iterator","constructor","SymbolPolyfill","HiddenSymbol","defineProperties","globalSymbols","validateSymbol","x","isSymbol","generateName","created","desc","postfix","description","_Symbol2","symbol","undefined","String","__description__","__name__","for","keyFor","hasInstance","isConcatSpreadable","match","replace","search","species","split","toPrimitive","unscopables","toString","valueOf","EmptyComponent","Array","isArray","FragmentComponent","type","NativeComponent","CompositeComponent","Error","concat","keys","TextComponent","_mountIndex","createFactory","factory","cloneElement","config","isValidElement","getRenderErrorInfo","assign","ref","owner","_owner","defaultProps","propName","RESERVED_PROPS","_len","arguments","children","_key","_flattenChildren","Element","_universalEnv","getName","isWeex","map","val","join","filterProps","childrenLength","childArray","style","flattenStyle","result","computedStyle","_instance","nextElement","prevEmpty","nextEmpty","prevType","nextType","_inject","options","componentInstance","parent","getPublicInstance","_Symbol","find","plus","!","'","(",")","~","%20","%00","replacer","secret","encode","str","encodeURIComponent","decode","decodeURIComponent","URLSearchParams","query","charAt","slice","index","pairs","indexOf","append","dict","push","thisArg","getOwnPropertyNames","forEach","items","next","shift","done","entries","ComponentTree","getClosestInstanceFromNode","getNodeFromInstance","inst","_renderedComponent","_nativeNode","_instancesByReactRootID","receiveComponent","traverseChildren","isReactNative","isNode","isWeb","navigator","appCodeName","product","process","versions","callNative","WXEnvironment","platform","__fbBatchedBridgeConfig","typeChecker","validate","checkType","isRequired","componentName","location","propFullName","chainedCheckType","createChainableTypeChecker","array","bool","func","number","string","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","_ref","_getElementKeyName","EVENT_PREFIX_REGEXP","childMounter","_parent","_parentInstance","_mountID","appendType","_prevStyleCopy","nativeNode","getNativeNode","appendChild","attach","mountChildren","_this","renderedChildren","_renderedChildren","renderedChild","notRemoveChild","detach","removeChild","removeAllEventListeners","unmountChildren","prevContext","nextContext","update","prevProps","nextProps","updateProperties","updateChildren","propKey","styleName","styleUpdates","lastStyle","test","removeEventListener","toLowerCase","removeAttribute","nextProp","prevProp","eventName","addEventListener","setAttribute","setStyles","nextChildrenElements","_this2","prevChildren","firstPrevChild","delayRemoveFirstPrevChild","nextChildren","oldNodes","prevChild","oldNativeNode","_name","_prevChild","shouldRemove","lastIndex","nextIndex","lastPlacedNode","nextNativeNode","_loop","_name2","nextChild","prevChildNativeNode","_i","insertAfter","Math","max","newChild","oldChild","lastNewChild","_i2","child","replaceChild","_i3","prevFirstNativeNode","_i4","_child","insertBefore","splice","prevRef","nextRef","ownerComponent","elementKey","hasKey","defaultName","keyName","keyUnique","console","warn","isRem","calcRem","getRem","setRem","isUnitNumber","convertUnit","prop","remUnit","UNITLESS_NUMBER_PROPS","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridColumn","fontWeight","lineClamp","opacity","order","orphans","tabSize","widows","zIndex","zoom","lines","IS_REM_REG","REM_REG","GLOBAL_REM_UNIT","global","window","rem","parseFloat","transformPropsAttrsToStyle","attrs","attr","renamePropsAttr","originalAttrName","newAttrName","ownerDocument","nodeType","getElementById","render","internal","shared","Promise","Map","Set","WeakMap","WeakSet","FontFace","matchMedia","URL","document","fonts","add","fontFace","fontFaceRule","family","source","styleElement","innerHTML","head","define","req","noop","asap","setImmediate","fn","setTimeout","onUnhandledRejection","err","log","_state","_handled","_value","_deferreds","doResolve","handle","self","deferred","cb","onFulfilled","onRejected","ret","e","reject","promise","resolve","newValue","then","finale","apply","len","reason","ex","catch","prom","all","arr","args","remaining","res","race","values","_setImmediateFn","_setUnhandledRejectionFn","undefMarker","NaNMarker","ACCESSOR_SUPPORT","encodeKey","decodeKey","encodedKey","NaN","makeIterator","mapInst","nextIdx","_keys","calcSize","size","hasProtoMethod","method","data","_values","item","idx","has","delete","clear","callbackFn","encodeVal","decodeVal","encodedData","setInst","counter","Date","now","random","entry","relative","ftp","file","gopher","http","https","ws","wss","relativePathDotMapping","isRelativeScheme","scheme","invalid","_isInvalid","IDNAToASCII","h","percentEscape","unicode","charCodeAt","percentEscapeQuery","EOF","ALPHA","ALPHANUMERIC","parse","input","stateOverride","base","message","errors","state","cursor","buffer","seenAt","seenBracket","loop","_scheme","_isRelative","_fragment","_schemeData","_port","_path","_query","_username","_password","nextC","nextNextC","pop","cp","tempC","temp","parseInt","tmp","url","_url","href","authority","protocol","host","pathname","hostname","port","searchParams","hash","origin","RE_MEDIA_QUERY","RE_MQ_EXPRESSION","RE_MQ_FEATURE","_matches","media","captures","trim","SyntaxError","modifier","expressions","parsed","inverse","expression","feature","_parseQuery","some","typeMatch","expressionsMatch","every","expValue","mql","matches","width","screen","height","Number","isNaN","sources","nextSource","descriptors","setPrototypeOf","magic","O","proto","getOwnPropertyDescriptor","polyfill","is","y","from","toStr","isCallable","maxSafeInteger","pow","toLength","isFinite","floor","abs","toInteger","min","arrayLike","T","mapFn","kValue","A","k","fetch","support","iterable","blob","Blob","formData","arrayBuffer","viewClasses","isDataView","DataView","isPrototypeOf","isArrayBufferView","ArrayBuffer","isView","Headers","normalizeName","normalizeValue","oldValue","iteratorFor","methods","Request","clone","body","_bodyInit","Body","Response","status","statusText","headers","error","response","redirectStatuses","redirect","RangeError","init","request","xhr","XMLHttpRequest","onload","rawHeaders","line","parts","parseHeaders","getAllResponseHeaders","responseURL","responseText","onerror","ontimeout","open","credentials","withCredentials","responseType","setRequestHeader","send","header","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","FileReader","readAsArrayBuffer","bufferClone","buf","view","Uint8Array","byteLength","_initBody","_bodyText","_bodyBlob","FormData","_bodyFormData","_bodyArrayBuffer","rejected","text","readAsText","readBlobAsText","chars","fromCharCode","readArrayBufferAsText","json","JSON","upcased","toUpperCase","normalizeMethod","referrer","form","bytes","bodyInit","ok","root","vendors","suffix","raf","caf","last","id","queue","_now","cancelled","round","cancel","requestAnimationFrame","cancelAnimationFrame","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","hr","uptime","getTime","inGuard","deps","Function","isInitialized","hasError","require","originId","mod","requireImpl","ErrorUtils","returnValue","reportFatalError","_appearRegistry","_interopRequireWildcard","_intersectionObserver","existIntersection","isExistIntersection","injectEventListenerHook","instances","nativeAddEventListener","Node","nativeRemoveEventListener","eventHandler","useCapture","doNotWatch","lowerCaseEventName","isAppearEvent","observerElement","pushElement","check","Registry","__handle","appearWatchElements","createEvent","appear","opts","offsetTop","_appearDoms","appended","isOnce","Boolean","getAttribute","_eleOffset","getOffset","appearEvt","disappearEvt","AppearRegistry","elements","current","wait","cls","once","onReset","onAppear","onDisappear","initConfig","initEvent","extend","getElements","bindEvent","el","offset","_element$getBoundingC","getBoundingClientRect","top","right","bottom","left","nodes","calculate","containerOffset","ele","_hasAppear","checkEveryDom","cacheAppearEvt","cacheDisappearEvt","pos","eleOffset","direction","getDirection","isInView","inViewport","_appear","_hasDisAppear","dispatchEvent","_this3","timeout","previous","later","clearTimeout","throttle","beforeOffset","nowOffset","horizental","vertical","webkitRequestAnimationFrame","param","b","innerWidth","innerHeight","parentNode","_el$getBoundingClient","intersectionObserver","observe","IntersectionObserver","handleIntersect","rootMargin","threshold","boundingClientRect","intersectionRatio","dataset","appeared","_component","_purecomponent","_proptypes","_render2","_hydrate2","_createPortal2","_findDOMNode2","_unmountComponentAtNode2","_findComponentInstance2","_setNativeProps2","_version2","_children","_createContext2","_hook","__REACT_DEVTOOLS_GLOBAL_HOOK__","inject","_getPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","_assertThisInitialized","ReferenceError","rootCounter","_Component","Root","_getPrototypeOf2","_defineProperty","_possibleConstructorReturn","subClass","superClass","_inherits","PureComponent","measurer","deviceWidth","viewportWidth","eventRegistry","bodyType","bodyProps","_empty","_native","_text","_composite","_driverWeex","_driverBrowser","setDeviceWidth","setViewportWidth","createEmpty","_stringText","updateText","createText","_stateless","_updater","_shallowEqual","performInSandbox","handleError","boundary","componentDidCatch","displayName","_updateCount","renderedElement","publicProps","isClass","isComponentClass","isStatelessClass","publicContext","_processContext","initialState","errorCallback","componentWillMount","_processPendingState","componentDidMount","componentWillUnmount","_pendingStateQueue","_pendingForceUpdate","contextTypes","maskedContext","contextName","currentContext","childContext","getChildContext","nextState","partial","nextUnmaskedContext","willReceive","hasReceived","componentWillReceiveProps","_pendingState","shouldUpdate","prevState","shouldComponentUpdate","isPureComponentClass","componentWillUpdate","_updateRenderedComponent","componentDidUpdate","callbacks","_pendingCallbacks","runCallbacks","nextRenderedElement","prevRenderedElement","StatelessComponent","pureRender","enqueueCallback","enqueueState","runUpdate","objA","objB","keysA","keysB","_NativeComponent","fragment","isFragmentParent","_styleUnit","_elements","ARIA_PREFIX_REGEXP","nodeMaps","__weex_document__","Driver","getDeviceWidth","getViewportWidth","documentElement","createComment","content","htmlElement","originStyle","setNativeProps","previousSibling","nextSibling","after","before","params","addEvent","removeEvent","propValue","setAttr","p1","styles","setStyle","listener","createFinish","close","skipSetStyles","_img","_video","_textarea","_span","_p","_button","_heading","_block","span","img","button","video","textarea","h1","h2","h3","h4","h5","h6","nav","article","section","footer","aside","main","_parseProps","_objectSpread","ownKeys","getOwnPropertySymbols","filter","sym","defaultParagraphStyle","fontSize","marginTop","marginBottom","TypographyElements","u","textDecoration","fontStyle","del","em","strong","big","BASE_FONT_SIZE","small","transformString","transformChild","nestedChildren","transformChildren","disabled","textStyle","textAlign","paddingTop","paddingRight","paddingBottom","paddingLeft","borderWidth","borderStyle","borderColor","backgroudColor","onClick","color","generateHeadingStyle","baseFontSize","fontMultiplier","marginMultiplier","HeadingElements","_flexbox","SVG_NS","TEXT_CONTENT_ATTR","tagPrefix","DEVICE_WIDTH","VIEWPORT_WIDTH","setTagPrefix","prefix","clientWidth","createTextNode","isSVGMode","namespaceURI","createElementNS","__html","tranformedStyles","isFlexProp","_prop","transformValue","BOX_ALIGN","stretch","flex-start","flex-end","center","BOX_ORIENT","row","column","BOX_PACK","space-between","space-around","FLEX_PROPS","display","alignItems","alignSelf","flexDirection","justifyContent","flexWrap","webkitBoxFlex","webkitFlex","webkitFlexWrap","webkitBoxAlign","webkitAlignItems","webkitAlignSelf","webkitBoxOrient","webkitFlexDirection","webkitBoxPack","webkitJustifyContent","_render","_toConsumableArray","arr2","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","childNodes","rootChildNode","Portal","renderPortal","_findDOMNode","convertChildrenToArray","Children","ctx","count","only","toArray","defaultValue","contextProp","uniqueId","Provider","ValueEmitter","emitter","emit","Consumer","_Component2","_getPrototypeOf3","_len2","_key2","on","onUpdate","off","consumer","handlers","handler"],"mappings":"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","file":"framework.web.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 20);\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\n/*\n * Stateful things in runtime\n */\nvar _default = {\n  component: null,\n  mountID: 1,\n  sandbox: true,\n  // Roots\n  rootComponents: {},\n  rootInstances: {},\n  // Inject\n  hook: null,\n  driver: null,\n  monitor: null\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nvar _element = require(\"../element\");\n\nvar _unmountComponentAtNode = _interopRequireDefault(require(\"../unmountComponentAtNode\"));\n\nvar _instantiateComponent = _interopRequireDefault(require(\"./instantiateComponent\"));\n\nvar _shouldUpdateComponent = _interopRequireDefault(require(\"./shouldUpdateComponent\"));\n\nvar _root = _interopRequireDefault(require(\"./root\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Instance manager\n */\nvar KEY = '$$instance';\nvar _default = {\n  set: function set(node, instance) {\n    if (!node[KEY]) {\n      node[KEY] = instance; // Record root instance to roots map\n\n      if (instance.rootID) {\n        _host.default.rootInstances[instance.rootID] = instance;\n        _host.default.rootComponents[instance.rootID] = instance._internal;\n      }\n    }\n  },\n  get: function get(node) {\n    return node[KEY];\n  },\n  remove: function remove(node) {\n    var instance = this.get(node);\n\n    if (instance) {\n      node[KEY] = null;\n\n      if (instance.rootID) {\n        delete _host.default.rootComponents[instance.rootID];\n        delete _host.default.rootInstances[instance.rootID];\n      }\n    }\n  },\n  mount: function mount(element, container, parentInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      _host.default.measurer && _host.default.measurer.beforeRender();\n    } // Before render callback\n\n\n    _host.default.driver.beforeRender && _host.default.driver.beforeRender(); // Real native root node is body\n\n    if (container == null) {\n      container = _host.default.driver.createBody();\n    } // Get the context from the conceptual parent component.\n\n\n    var parentContext;\n\n    if (parentInstance) {\n      var parentInternal = parentInstance._internal;\n      parentContext = parentInternal._processChildContext(parentInternal._context);\n    }\n\n    var prevRootInstance = this.get(container);\n    var hasPrevRootInstance = prevRootInstance && prevRootInstance.isRootComponent;\n\n    if (hasPrevRootInstance) {\n      var prevRenderedComponent = prevRootInstance.getRenderedComponent();\n      var prevElement = prevRenderedComponent._currentElement;\n\n      if ((0, _shouldUpdateComponent.default)(prevElement, element)) {\n        var prevUnmaskedContext = prevRenderedComponent._context;\n        prevRenderedComponent.updateComponent(prevElement, element, prevUnmaskedContext, parentContext || prevUnmaskedContext);\n        return prevRootInstance;\n      } else {\n        _host.default.hook.Reconciler.unmountComponent(prevRootInstance);\n\n        (0, _unmountComponentAtNode.default)(container);\n      }\n    }\n\n    var wrappedElement = (0, _element.createElement)(_root.default, null, element);\n    var renderedComponent = (0, _instantiateComponent.default)(wrappedElement);\n    var defaultContext = parentContext || {};\n    var rootInstance = renderedComponent.mountComponent(container, null, defaultContext);\n    this.set(container, rootInstance); // After render callback\n\n    _host.default.driver.afterRender && _host.default.driver.afterRender(rootInstance); // Devtool render new root hook\n\n    _host.default.hook.Mount._renderNewRootComponent(rootInstance._internal);\n\n    if (process.env.NODE_ENV !== 'production') {\n      _host.default.measurer && _host.default.measurer.afterRender();\n    }\n\n    return rootInstance;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Base component class.\n */\nvar Component =\n/*#__PURE__*/\nfunction () {\n  function Component(props, context, updater) {\n    _classCallCheck(this, Component);\n\n    this.props = props;\n    this.context = context;\n    this.refs = {};\n    this.updater = updater;\n  }\n\n  _createClass(Component, [{\n    key: \"isComponentClass\",\n    value: function isComponentClass() {}\n  }, {\n    key: \"setState\",\n    value: function setState(partialState, callback) {\n      this.updater.setState(this, partialState, callback);\n    }\n  }, {\n    key: \"forceUpdate\",\n    value: function forceUpdate(callback) {\n      this.updater.forceUpdate(this, callback);\n    }\n  }]);\n\n  return Component;\n}();\n\nvar _default = Component;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint no-extend-native: \"off\", new-cap: \"off\" */\nvar defineProperties = Object.defineProperties,\n    defineProperty = Object.defineProperty,\n    SymbolPolyfill,\n    HiddenSymbol,\n    globalSymbols = Object.create(null);\n\nfunction isSymbol(x) {\n  if (!x) return false;\n  if (_typeof(x) === 'symbol') return true;\n  if (!x.constructor) return false;\n  if (x.constructor.name !== 'Symbol') return false;\n  return x[x.constructor.toStringTag] === 'Symbol';\n}\n\nfunction validateSymbol(value) {\n  if (!isSymbol(value)) throw new TypeError(value + ' is not a symbol');\n  return value;\n}\n\nvar generateName = function () {\n  var created = Object.create(null);\n  return function (desc) {\n    var postfix = 0,\n        name;\n\n    while (created[desc + (postfix || '')]) {\n      ++postfix;\n    }\n\n    desc += postfix || '';\n    created[desc] = true;\n    name = '@@' + desc;\n    return name;\n  };\n}(); // Internal constructor (not one exposed) for creating Symbol instances.\n// This one is used to ensure that `someSymbol instanceof Symbol` always return false\n\n\nHiddenSymbol = function _Symbol(description) {\n  if (this instanceof HiddenSymbol) throw new TypeError('Symbol is not a constructor');\n  return SymbolPolyfill(description);\n}; // Exposed `Symbol` constructor\n// (returns instances of HiddenSymbol)\n\n\nmodule.exports = SymbolPolyfill = function _Symbol2(description) {\n  var symbol;\n  if (this instanceof _Symbol2) throw new TypeError('Symbol is not a constructor');\n  symbol = Object.create(HiddenSymbol.prototype);\n  description = description === undefined ? '' : String(description);\n  return defineProperties(symbol, {\n    __description__: {\n      value: description\n    },\n    __name__: {\n      value: generateName(description)\n    }\n  });\n};\n\ndefineProperties(SymbolPolyfill, {\n  for: {\n    value: function value(key) {\n      if (globalSymbols[key]) return globalSymbols[key];\n      return globalSymbols[key] = SymbolPolyfill(String(key));\n    }\n  },\n  keyFor: {\n    value: function value(s) {\n      var key;\n      validateSymbol(s);\n\n      for (key in globalSymbols) {\n        if (globalSymbols[key] === s) return key;\n      }\n    }\n  },\n  // To ensure proper interoperability with other native functions (e.g. Array.from)\n  // fallback to eventual native implementation of given symbol\n  hasInstance: {\n    value: SymbolPolyfill('hasInstance')\n  },\n  isConcatSpreadable: {\n    value: SymbolPolyfill('isConcatSpreadable')\n  },\n  iterator: {\n    value: SymbolPolyfill('iterator')\n  },\n  match: {\n    value: SymbolPolyfill('match')\n  },\n  replace: {\n    value: SymbolPolyfill('replace')\n  },\n  search: {\n    value: SymbolPolyfill('search')\n  },\n  species: {\n    value: SymbolPolyfill('species')\n  },\n  split: {\n    value: SymbolPolyfill('split')\n  },\n  toPrimitive: {\n    value: SymbolPolyfill('toPrimitive')\n  },\n  toStringTag: {\n    value: SymbolPolyfill('toStringTag')\n  },\n  unscopables: {\n    value: SymbolPolyfill('unscopables')\n  }\n}); // Internal tweaks for real symbol producer\n\ndefineProperties(HiddenSymbol.prototype, {\n  constructor: {\n    value: SymbolPolyfill\n  },\n  toString: {\n    value: function value() {\n      return this.__name__;\n    }\n  }\n}); // Proper implementation of methods exposed on Symbol.prototype\n// They won't be accessible on produced symbol instances as they derive from HiddenSymbol.prototype\n\ndefineProperties(SymbolPolyfill.prototype, {\n  toString: {\n    value: function value() {\n      return 'Symbol (' + validateSymbol(this).__description__ + ')';\n    }\n  },\n  valueOf: {\n    value: function value() {\n      return validateSymbol(this);\n    }\n  }\n});\ndefineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toPrimitive, {\n  value: function value() {\n    var symbol = validateSymbol(this);\n    if (_typeof(symbol) === 'symbol') return symbol;\n    return symbol.toString();\n  }\n});\ndefineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toStringTag, {\n  value: 'Symbol'\n}); // Proper implementaton of toPrimitive and toStringTag for returned symbol instances\n\ndefineProperty(HiddenSymbol.prototype, SymbolPolyfill.toStringTag, {\n  value: SymbolPolyfill.prototype[SymbolPolyfill.toStringTag]\n}); // Note: It's important to define `toPrimitive` as last one, as some implementations\n// implement `toPrimitive` natively without implementing `toStringTag` (or other specified symbols)\n// And that may invoke error in definition flow:\n// See: https://github.com/medikoo/es6-symbol/issues/13#issuecomment-164146149\n\ndefineProperty(HiddenSymbol.prototype, SymbolPolyfill.toPrimitive, {\n  value: SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive]\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction instantiateComponent(element) {\n  var instance;\n\n  if (element === undefined || element === null || element === false || element === true) {\n    instance = new _host.default.EmptyComponent();\n  } else if (Array.isArray(element)) {\n    instance = new _host.default.FragmentComponent(element);\n  } else if (_typeof(element) === 'object' && element.type) {\n    // Special case string values\n    if (typeof element.type === 'string') {\n      instance = new _host.default.NativeComponent(element);\n    } else {\n      instance = new _host.default.CompositeComponent(element);\n    }\n  } else if (typeof element === 'string' || typeof element === 'number') {\n    instance = new _host.default.TextComponent(element);\n  } else {\n    throw new Error(\"Invalid element type: \".concat(element, \". (keys: \").concat(Object.keys(element), \")\"));\n  }\n\n  instance._mountIndex = 0;\n  return instance;\n}\n\nvar _default = instantiateComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.createElement = createElement;\nexports.createFactory = createFactory;\nexports.cloneElement = cloneElement;\nexports.isValidElement = isValidElement;\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./vdom/host\"));\n\nvar _flattenChildren = _interopRequireDefault(require(\"./flattenChildren\"));\n\nvar _universalEnv = require(\"universal-env\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true\n};\n\nfunction getRenderErrorInfo() {\n  if (_host.default.component) {\n    var name = _host.default.component.getName();\n\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n\n  return '';\n}\n\nfunction Element(type, key, ref, props, owner) {\n  if (_universalEnv.isWeex) {\n    props = filterProps(type, props);\n  }\n\n  return {\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n}\n\n;\nvar _default = Element;\nexports.default = _default;\n\nfunction flattenStyle(style) {\n  if (!style) {\n    return undefined;\n  }\n\n  if (!Array.isArray(style)) {\n    return style;\n  } else {\n    var result = {};\n\n    for (var i = 0; i < style.length; ++i) {\n      var computedStyle = flattenStyle(style[i]);\n\n      if (computedStyle) {\n        for (var key in computedStyle) {\n          result[key] = computedStyle[key];\n        }\n      }\n    }\n\n    return result;\n  }\n} // TODO: move to weex-drvier\n\n\nfunction filterProps(type, props) {\n  // Only for weex text\n  if (type === 'text') {\n    var children = props.children;\n    var value = props.value; // Value is first\n\n    if (value == null && children != null) {\n      if (Array.isArray(children)) {\n        children = children.map(function (val) {\n          if (typeof val === 'number' || typeof val === 'string') {\n            return val;\n          } else {\n            return '';\n          }\n        }).join('');\n      } else if (typeof children !== 'number' && typeof children !== 'string') {\n        children = '';\n      }\n\n      props.value = String(children);\n    }\n\n    props.children = null;\n  }\n\n  return props;\n}\n\nfunction createElement(type, config, children) {\n  if (type == null) {\n    throw Error('createElement: type should not be null or undefined.' + getRenderErrorInfo());\n  } // Reserved names are extracted\n\n\n  var props = {};\n  var propName;\n  var key = null;\n  var ref = null;\n\n  if (config != null) {\n    ref = config.ref === undefined ? null : config.ref;\n    key = config.key === undefined ? null : String(config.key); // Remaining properties are added to a new props object\n\n    for (propName in config) {\n      if (!RESERVED_PROPS[propName]) {\n        props[propName] = config[propName];\n      }\n    }\n  }\n\n  var childrenLength = arguments.length - 2;\n\n  if (childrenLength > 0) {\n    if (childrenLength === 1 && !Array.isArray(children)) {\n      props.children = children;\n    } else {\n      var childArray = children;\n\n      if (childrenLength > 1) {\n        childArray = new Array(childrenLength);\n\n        for (var i = 0; i < childrenLength; i++) {\n          childArray[i] = arguments[i + 2];\n        }\n      }\n\n      props.children = (0, _flattenChildren.default)(childArray);\n    }\n  } // Resolve default props\n\n\n  if (type && type.defaultProps) {\n    var defaultProps = type.defaultProps;\n\n    for (propName in defaultProps) {\n      if (props[propName] === undefined) {\n        props[propName] = defaultProps[propName];\n      }\n    }\n  }\n\n  if (props.style && (Array.isArray(props.style) || _typeof(props.style) === 'object')) {\n    props.style = flattenStyle(props.style);\n  }\n\n  return new Element(type, key, ref, props, _host.default.component);\n}\n\nfunction createFactory(type) {\n  var factory = createElement.bind(null, type); // Expose the type on the factory and the prototype so that it can be\n  // easily accessed on elements. E.g. `<Foo />.type === Foo`.\n  // This should not be named `constructor` since this may not be the function\n  // that created the element, and it may not even be a constructor.\n\n  factory.type = type;\n  return factory;\n}\n\nfunction cloneElement(element, config) {\n  if (!isValidElement(element)) {\n    throw Error('cloneElement: not a valid element.' + getRenderErrorInfo());\n  } // Original props are copied\n\n\n  var props = Object.assign({}, element.props); // Reserved names are extracted\n\n  var key = element.key;\n  var ref = element.ref; // Owner will be preserved, unless ref is overridden\n\n  var owner = element._owner;\n\n  if (config) {\n    // Should reset ref and owner if has a new ref\n    if (config.ref !== undefined) {\n      ref = config.ref;\n      owner = _host.default.component;\n    }\n\n    if (config.key !== undefined) {\n      key = String(config.key);\n    } // Resolve default props\n\n\n    var defaultProps;\n\n    if (element.type && element.type.defaultProps) {\n      defaultProps = element.type.defaultProps;\n    } // Remaining properties override existing props\n\n\n    var propName;\n\n    for (propName in config) {\n      if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        if (config[propName] === undefined && defaultProps !== undefined) {\n          // Resolve default props\n          props[propName] = defaultProps[propName];\n        } else {\n          props[propName] = config[propName];\n        }\n      }\n    }\n  }\n\n  for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    children[_key - 2] = arguments[_key];\n  }\n\n  if (children.length) {\n    props.children = (0, _flattenChildren.default)(children);\n  }\n\n  return new Element(element.type, key, ref, props, owner);\n}\n\n;\n\nfunction isValidElement(object) {\n  return _typeof(object) === 'object' && object !== null && object.type && object.props;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = unmountComponentAtNode;\n\nvar _instance = _interopRequireDefault(require(\"./vdom/instance\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction unmountComponentAtNode(node) {\n  var component = _instance.default.get(node);\n\n  if (!component) {\n    return false;\n  }\n\n  _instance.default.remove(node);\n\n  component._internal.unmountComponent();\n\n  return true;\n}\n\n;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction shouldUpdateComponent(prevElement, nextElement) {\n  // TODO: prevElement and nextElement could be array\n  var prevEmpty = prevElement === null;\n  var nextEmpty = nextElement === null;\n\n  if (prevEmpty || nextEmpty) {\n    return prevEmpty === nextEmpty;\n  }\n\n  var prevType = _typeof(prevElement);\n\n  var nextType = _typeof(nextElement);\n\n  if (prevType === 'string' || prevType === 'number') {\n    return nextType === 'string' || nextType === 'number';\n  } else {\n    return prevType === 'object' && nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key;\n  }\n}\n\nvar _default = shouldUpdateComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _inject = _interopRequireDefault(require(\"./inject\"));\n\nvar _instance = _interopRequireDefault(require(\"./vdom/instance\"));\n\nvar _host = _interopRequireDefault(require(\"./vdom/host\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction render(element, container, options, callback) {\n  // Compatible with `render(element, container, callback)`\n  if (typeof options === 'function') {\n    callback = options;\n    options = null;\n  }\n\n  options = options || {}; // Init inject\n\n  (0, _inject.default)(options);\n\n  var rootComponent = _instance.default.mount(element, container, options.parent);\n\n  var componentInstance = rootComponent.getPublicInstance();\n\n  if (callback) {\n    callback.call(componentInstance);\n  }\n\n  return componentInstance;\n}\n\nvar _default = render;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// https://github.com/WebReflection/url-search-params\nvar _Symbol = require('./symbol');\n\nvar find = /[!'\\(\\)~]|%20|%00/g;\nvar plus = /\\+/g;\nvar replace = {\n  '!': '%21',\n  \"'\": '%27',\n  '(': '%28',\n  ')': '%29',\n  '~': '%7E',\n  '%20': '+',\n  '%00': '\\x00'\n};\n\nvar replacer = function replacer(match) {\n  return replace[match];\n};\n\nvar secret = '__URLSearchParams__';\n\nfunction encode(str) {\n  return encodeURIComponent(str).replace(find, replacer);\n}\n\nfunction decode(str) {\n  return decodeURIComponent(str.replace(plus, ' '));\n}\n\nvar URLSearchParams =\n/*#__PURE__*/\nfunction () {\n  function URLSearchParams(query) {\n    _classCallCheck(this, URLSearchParams);\n\n    this[secret] = Object.create(null);\n    if (!query) return;\n\n    if (query.charAt(0) === '?') {\n      query = query.slice(1);\n    }\n\n    for (var index, value, pairs = (query || '').split('&'), i = 0, length = pairs.length; i < length; i++) {\n      value = pairs[i];\n      index = value.indexOf('=');\n\n      if (-1 < index) {\n        this.append(decode(value.slice(0, index)), decode(value.slice(index + 1)));\n      } else if (value.length) {\n        this.append(decode(value), '');\n      }\n    }\n  }\n\n  _createClass(URLSearchParams, [{\n    key: \"append\",\n    value: function append(name, value) {\n      var dict = this[secret];\n\n      if (name in dict) {\n        dict[name].push('' + value);\n      } else {\n        dict[name] = ['' + value];\n      }\n    }\n  }, {\n    key: \"delete\",\n    value: function _delete(name) {\n      delete this[secret][name];\n    }\n  }, {\n    key: \"get\",\n    value: function get(name) {\n      var dict = this[secret];\n      return name in dict ? dict[name][0] : null;\n    }\n  }, {\n    key: \"getAll\",\n    value: function getAll(name) {\n      var dict = this[secret];\n      return name in dict ? dict[name].slice(0) : [];\n    }\n  }, {\n    key: \"has\",\n    value: function has(name) {\n      return name in this[secret];\n    }\n  }, {\n    key: \"set\",\n    value: function set(name, value) {\n      this[secret][name] = ['' + value];\n    }\n  }, {\n    key: \"forEach\",\n    value: function forEach(callback, thisArg) {\n      var dict = this[secret];\n      Object.getOwnPropertyNames(dict).forEach(function (name) {\n        dict[name].forEach(function (value) {\n          callback.call(thisArg, value, name, this);\n        }, this);\n      }, this);\n    }\n  }, {\n    key: \"keys\",\n    value: function keys() {\n      var items = [];\n      this.forEach(function (value, name) {\n        items.push(name);\n      });\n      var iterator = {\n        next: function next() {\n          var value = items.shift();\n          return {\n            done: value === undefined,\n            value: value\n          };\n        }\n      };\n\n      iterator[_Symbol.iterator] = function () {\n        return iterator;\n      };\n\n      return iterator;\n    }\n  }, {\n    key: \"values\",\n    value: function values() {\n      var items = [];\n      this.forEach(function (value) {\n        items.push(value);\n      });\n      var iterator = {\n        next: function next() {\n          var value = items.shift();\n          return {\n            done: value === undefined,\n            value: value\n          };\n        }\n      };\n\n      iterator[_Symbol.iterator] = function () {\n        return iterator;\n      };\n\n      return iterator;\n    }\n  }, {\n    key: \"entries\",\n    value: function entries() {\n      var items = [];\n      this.forEach(function (value, name) {\n        items.push([name, value]);\n      });\n      var iterator = {\n        next: function next() {\n          var value = items.shift();\n          return {\n            done: value === undefined,\n            value: value\n          };\n        }\n      };\n\n      iterator[_Symbol.iterator] = function () {\n        return iterator;\n      };\n\n      return iterator;\n    }\n  }, {\n    key: \"toString\",\n    value: function toString() {\n      var dict = this[secret],\n          query = [],\n          i,\n          key,\n          name,\n          value;\n\n      for (key in dict) {\n        name = encode(key);\n\n        for (i = 0, value = dict[key]; i < value.length; i++) {\n          query.push(name + '=' + encode(value[i]));\n        }\n      }\n\n      return query.join('&');\n    }\n  }]);\n\n  return URLSearchParams;\n}();\n\nURLSearchParams.prototype[_Symbol.iterator] = URLSearchParams.prototype.entries;\nmodule.exports = URLSearchParams;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _instance = _interopRequireDefault(require(\"../vdom/instance\"));\n\nvar _host = _interopRequireDefault(require(\"../vdom/host\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n  ComponentTree: {\n    getClosestInstanceFromNode: function getClosestInstanceFromNode(node) {\n      return _instance.default.get(node);\n    },\n    getNodeFromInstance: function getNodeFromInstance(inst) {\n      // inst is an internal instance (but could be a composite)\n      while (inst._renderedComponent) {\n        inst = inst._renderedComponent;\n      }\n\n      if (inst) {\n        return inst._nativeNode;\n      } else {\n        return null;\n      }\n    }\n  },\n  Mount: {\n    _instancesByReactRootID: _host.default.rootComponents,\n    // Stub - React DevTools expects to find this method and replace it\n    // with a wrapper in order to observe new root components being added\n    _renderNewRootComponent: function _renderNewRootComponent() {}\n  },\n  Reconciler: {\n    // Stubs - React DevTools expects to find these methods and replace them\n    // with wrappers in order to observe components being mounted, updated and\n    // unmounted\n    mountComponent: function mountComponent() {},\n    receiveComponent: function receiveComponent() {},\n    unmountComponent: function unmountComponent() {}\n  },\n  // monitor the info of all components\n  monitor: null\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = flattenChildren;\n\nfunction traverseChildren(children, result) {\n  if (Array.isArray(children)) {\n    for (var i = 0, l = children.length; i < l; i++) {\n      traverseChildren(children[i], result);\n    }\n  } else {\n    result.push(children);\n  }\n}\n\nfunction flattenChildren(children) {\n  if (children == null) {\n    return children;\n  }\n\n  var result = [];\n  traverseChildren(children, result);\n\n  if (result.length === 1) {\n    result = result[0];\n  }\n\n  return result;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.isReactNative = exports.isWeex = exports.isNode = exports.isWeb = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// https://www.w3.org/TR/html5/webappapis.html#dom-navigator-appcodename\nvar isWeb = (typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && (navigator.appCodeName === 'Mozilla' || navigator.product === 'Gecko');\nexports.isWeb = isWeb;\nvar isNode = typeof process !== 'undefined' && !!(process.versions && process.versions.node);\nexports.isNode = isNode;\nvar isWeex = typeof callNative === 'function' || (typeof WXEnvironment === \"undefined\" ? \"undefined\" : _typeof(WXEnvironment)) === 'object' && WXEnvironment.platform !== 'Web';\nexports.isWeex = isWeex;\nvar isReactNative = typeof __fbBatchedBridgeConfig !== 'undefined';\nexports.isReactNative = isReactNative;\nexports[\"default\"] = module.exports;\nvar _default = module.exports;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\n/*\n * Current PropTypes only export some api with react, not validate in runtime.\n */\nfunction createChainableTypeChecker(validate) {\n  function checkType(isRequired, props, propName, componentName, location, propFullName) {\n    return typeChecker;\n  }\n\n  var chainedCheckType = checkType.bind(null, false);\n  chainedCheckType.isRequired = checkType.bind(null, true);\n  return chainedCheckType;\n}\n\nfunction createTypeChecker(expectedType) {\n  function validate(props, propName, componentName, location, propFullName) {// Noop\n  }\n\n  return createChainableTypeChecker(validate);\n}\n\nvar typeChecker = createTypeChecker();\nvar _default = {\n  array: typeChecker,\n  bool: typeChecker,\n  func: typeChecker,\n  number: typeChecker,\n  object: typeChecker,\n  string: typeChecker,\n  symbol: typeChecker,\n  element: typeChecker,\n  node: typeChecker,\n  any: typeChecker,\n  arrayOf: typeChecker,\n  instanceOf: typeChecker,\n  objectOf: typeChecker,\n  oneOf: typeChecker,\n  oneOfType: typeChecker,\n  shape: typeChecker\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nvar _ref = _interopRequireDefault(require(\"./ref\"));\n\nvar _instantiateComponent = _interopRequireDefault(require(\"./instantiateComponent\"));\n\nvar _shouldUpdateComponent = _interopRequireDefault(require(\"./shouldUpdateComponent\"));\n\nvar _getElementKeyName = _interopRequireDefault(require(\"./getElementKeyName\"));\n\nvar _instance = _interopRequireDefault(require(\"./instance\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar STYLE = 'style';\nvar CHILDREN = 'children';\nvar TREE = 'tree';\nvar EVENT_PREFIX_REGEXP = /^on[A-Z]/;\n/**\n * Native Component\n */\n\nvar NativeComponent =\n/*#__PURE__*/\nfunction () {\n  function NativeComponent(element) {\n    _classCallCheck(this, NativeComponent);\n\n    this._currentElement = element;\n  }\n\n  _createClass(NativeComponent, [{\n    key: \"mountComponent\",\n    value: function mountComponent(parent, parentInstance, context, childMounter) {\n      // Parent native element\n      this._parent = parent;\n      this._parentInstance = parentInstance;\n      this._context = context;\n      this._mountID = _host.default.mountID++;\n      var props = this._currentElement.props;\n      var type = this._currentElement.type;\n      var instance = {\n        _internal: this,\n        type: type,\n        props: props\n      };\n      var appendType = props.append; // Default is node\n\n      this._instance = instance; // Clone a copy for style diff\n\n      this._prevStyleCopy = Object.assign({}, props.style);\n      var nativeNode = this.getNativeNode();\n\n      if (appendType !== TREE) {\n        if (childMounter) {\n          childMounter(nativeNode, parent);\n        } else {\n          _host.default.driver.appendChild(nativeNode, parent);\n        }\n      }\n\n      if (this._currentElement && this._currentElement.ref) {\n        _ref.default.attach(this._currentElement._owner, this._currentElement.ref, this);\n      } // Process children\n\n\n      var children = props.children;\n\n      if (children != null) {\n        this.mountChildren(children, context);\n      }\n\n      if (appendType === TREE) {\n        if (childMounter) {\n          childMounter(nativeNode, parent);\n        } else {\n          _host.default.driver.appendChild(nativeNode, parent);\n        }\n      }\n\n      _host.default.hook.Reconciler.mountComponent(this);\n\n      return instance;\n    }\n  }, {\n    key: \"mountChildren\",\n    value: function mountChildren(children, context) {\n      var _this = this;\n\n      if (!Array.isArray(children)) {\n        children = [children];\n      }\n\n      var renderedChildren = this._renderedChildren = {};\n      var renderedChildrenImage = children.map(function (element, index) {\n        var renderedChild = (0, _instantiateComponent.default)(element);\n        var name = (0, _getElementKeyName.default)(renderedChildren, element, index);\n        renderedChildren[name] = renderedChild;\n        renderedChild._mountIndex = index; // Mount\n\n        var mountImage = renderedChild.mountComponent(_this.getNativeNode(), _this._instance, context, null);\n        return mountImage;\n      });\n      return renderedChildrenImage;\n    }\n  }, {\n    key: \"unmountChildren\",\n    value: function unmountChildren(notRemoveChild) {\n      var renderedChildren = this._renderedChildren;\n\n      if (renderedChildren) {\n        for (var name in renderedChildren) {\n          var renderedChild = renderedChildren[name];\n          renderedChild.unmountComponent(notRemoveChild);\n        }\n\n        this._renderedChildren = null;\n      }\n    }\n  }, {\n    key: \"unmountComponent\",\n    value: function unmountComponent(notRemoveChild) {\n      if (this._nativeNode) {\n        var ref = this._currentElement.ref;\n\n        if (ref) {\n          _ref.default.detach(this._currentElement._owner, ref, this);\n        }\n\n        _instance.default.remove(this._nativeNode);\n\n        if (!notRemoveChild) {\n          _host.default.driver.removeChild(this._nativeNode, this._parent);\n        }\n\n        _host.default.driver.removeAllEventListeners(this._nativeNode);\n      }\n\n      this.unmountChildren(notRemoveChild);\n\n      _host.default.hook.Reconciler.unmountComponent(this);\n\n      this._currentElement = null;\n      this._nativeNode = null;\n      this._parent = null;\n      this._parentInstance = null;\n      this._context = null;\n      this._instance = null;\n      this._prevStyleCopy = null;\n    }\n  }, {\n    key: \"updateComponent\",\n    value: function updateComponent(prevElement, nextElement, prevContext, nextContext) {\n      // Replace current element\n      this._currentElement = nextElement;\n\n      _ref.default.update(prevElement, nextElement, this);\n\n      var prevProps = prevElement.props;\n      var nextProps = nextElement.props;\n      this.updateProperties(prevProps, nextProps);\n      this.updateChildren(nextProps.children, nextContext);\n\n      _host.default.hook.Reconciler.receiveComponent(this);\n    }\n  }, {\n    key: \"updateProperties\",\n    value: function updateProperties(prevProps, nextProps) {\n      var propKey;\n      var styleName;\n      var styleUpdates;\n\n      for (propKey in prevProps) {\n        if (propKey === CHILDREN || nextProps.hasOwnProperty(propKey) || !prevProps.hasOwnProperty(propKey) || prevProps[propKey] == null) {\n          continue;\n        }\n\n        if (propKey === STYLE) {\n          var lastStyle = this._prevStyleCopy;\n\n          for (styleName in lastStyle) {\n            if (lastStyle.hasOwnProperty(styleName)) {\n              styleUpdates = styleUpdates || {};\n              styleUpdates[styleName] = '';\n            }\n          }\n\n          this._prevStyleCopy = null;\n        } else if (EVENT_PREFIX_REGEXP.test(propKey)) {\n          if (typeof prevProps[propKey] === 'function') {\n            _host.default.driver.removeEventListener(this.getNativeNode(), propKey.slice(2).toLowerCase(), prevProps[propKey]);\n          }\n        } else {\n          _host.default.driver.removeAttribute(this.getNativeNode(), propKey, prevProps[propKey]);\n        }\n      }\n\n      for (propKey in nextProps) {\n        var nextProp = nextProps[propKey];\n        var prevProp = propKey === STYLE ? this._prevStyleCopy : prevProps != null ? prevProps[propKey] : undefined;\n\n        if (propKey === CHILDREN || !nextProps.hasOwnProperty(propKey) || nextProp === prevProp || nextProp == null && prevProp == null) {\n          continue;\n        } // Update style\n\n\n        if (propKey === STYLE) {\n          if (nextProp) {\n            // Clone property\n            nextProp = this._prevStyleCopy = Object.assign({}, nextProp);\n          } else {\n            this._prevStyleCopy = null;\n          }\n\n          if (prevProp != null) {\n            // Unset styles on `prevProp` but not on `nextProp`.\n            for (styleName in prevProp) {\n              if (prevProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n                styleUpdates = styleUpdates || {};\n                styleUpdates[styleName] = '';\n              }\n            } // Update styles that changed since `prevProp`.\n\n\n            for (styleName in nextProp) {\n              if (nextProp.hasOwnProperty(styleName) && prevProp[styleName] !== nextProp[styleName]) {\n                styleUpdates = styleUpdates || {};\n                styleUpdates[styleName] = nextProp[styleName];\n              }\n            }\n          } else {\n            // Assign next prop when prev style is null\n            styleUpdates = nextProp;\n          }\n        } else if (EVENT_PREFIX_REGEXP.test(propKey)) {\n          // Update event binding\n          var eventName = propKey.slice(2).toLowerCase();\n\n          if (typeof prevProp === 'function') {\n            _host.default.driver.removeEventListener(this.getNativeNode(), eventName, prevProp, nextProps);\n          }\n\n          if (typeof nextProp === 'function') {\n            _host.default.driver.addEventListener(this.getNativeNode(), eventName, nextProp, nextProps);\n          }\n        } else {\n          // Update other property\n          var payload = {};\n          payload[propKey] = nextProp;\n\n          if (nextProp != null) {\n            _host.default.driver.setAttribute(this.getNativeNode(), propKey, nextProp);\n          } else {\n            _host.default.driver.removeAttribute(this.getNativeNode(), propKey, prevProps[propKey]);\n          }\n\n          if (process.env.NODE_ENV !== 'production') {\n            _host.default.measurer && _host.default.measurer.recordOperation({\n              instanceID: this._mountID,\n              type: 'update attribute',\n              payload: payload\n            });\n          }\n        }\n      }\n\n      if (styleUpdates) {\n        if (process.env.NODE_ENV !== 'production') {\n          _host.default.measurer && _host.default.measurer.recordOperation({\n            instanceID: this._mountID,\n            type: 'update style',\n            payload: styleUpdates\n          });\n        }\n\n        _host.default.driver.setStyles(this.getNativeNode(), styleUpdates);\n      }\n    }\n  }, {\n    key: \"updateChildren\",\n    value: function updateChildren(nextChildrenElements, context) {\n      var _this2 = this;\n\n      // prev rendered children\n      var prevChildren = this._renderedChildren;\n\n      if (nextChildrenElements == null && prevChildren == null) {\n        return;\n      }\n\n      var nextChildren = {};\n      var oldNodes = {};\n\n      if (nextChildrenElements != null) {\n        if (!Array.isArray(nextChildrenElements)) {\n          nextChildrenElements = [nextChildrenElements];\n        } // Update next children elements\n\n\n        for (var index = 0, length = nextChildrenElements.length; index < length; index++) {\n          var nextElement = nextChildrenElements[index];\n          var name = (0, _getElementKeyName.default)(nextChildren, nextElement, index);\n          var prevChild = prevChildren && prevChildren[name];\n          var prevElement = prevChild && prevChild._currentElement;\n\n          if (prevChild != null && (0, _shouldUpdateComponent.default)(prevElement, nextElement)) {\n            // Pass the same context when updating chidren\n            prevChild.updateComponent(prevElement, nextElement, context, context);\n            nextChildren[name] = prevChild;\n          } else {\n            // Unmount the prevChild when nextChild is different element type.\n            if (prevChild) {\n              var oldNativeNode = prevChild.getNativeNode(); // Delay remove child\n\n              prevChild.unmountComponent(true);\n              oldNodes[name] = oldNativeNode;\n            } // The child must be instantiated before it's mounted.\n\n\n            nextChildren[name] = (0, _instantiateComponent.default)(nextElement);\n          }\n        }\n      }\n\n      var firstPrevChild;\n      var delayRemoveFirstPrevChild; // Unmount children that are no longer present.\n\n      if (prevChildren != null) {\n        for (var _name in prevChildren) {\n          if (!prevChildren.hasOwnProperty(_name)) {\n            continue;\n          }\n\n          var _prevChild = prevChildren[_name];\n          var shouldRemove = !nextChildren[_name]; // Store old first child ref for append node ahead and maybe delay remove it\n\n          if (!firstPrevChild) {\n            firstPrevChild = _prevChild;\n            delayRemoveFirstPrevChild = shouldRemove;\n          } else if (shouldRemove) {\n            _prevChild.unmountComponent();\n          }\n        }\n      }\n\n      if (nextChildren != null) {\n        (function () {\n          // `nextIndex` will increment for each child in `nextChildren`, but\n          // `lastIndex` will be the last index visited in `prevChildren`.\n          var lastIndex = 0;\n          var nextIndex = 0;\n          var lastPlacedNode = null;\n          var nextNativeNode = [];\n\n          var _loop = function _loop(_name2) {\n            if (!nextChildren.hasOwnProperty(_name2)) {\n              return \"continue\";\n            }\n\n            var nextChild = nextChildren[_name2];\n            var prevChild = prevChildren && prevChildren[_name2];\n\n            if (prevChild === nextChild) {\n              var prevChildNativeNode = prevChild.getNativeNode(); // Convert to array type\n\n              if (!Array.isArray(prevChildNativeNode)) {\n                prevChildNativeNode = [prevChildNativeNode];\n              } // If the index of `child` is less than `lastIndex`, then it needs to\n              // be moved. Otherwise, we do not need to move it because a child will be\n              // inserted or moved before `child`.\n\n\n              if (prevChild._mountIndex < lastIndex) {\n                // Get the last child\n                if (Array.isArray(lastPlacedNode)) {\n                  lastPlacedNode = lastPlacedNode[lastPlacedNode.length - 1];\n                }\n\n                for (var _i = prevChildNativeNode.length - 1; _i >= 0; _i--) {\n                  _host.default.driver.insertAfter(prevChildNativeNode[_i], lastPlacedNode);\n                }\n              }\n\n              nextNativeNode = nextNativeNode.concat(prevChildNativeNode);\n              lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n              prevChild._mountIndex = nextIndex;\n            } else {\n              if (prevChild != null) {\n                // Update `lastIndex` before `_mountIndex` gets unset by unmounting.\n                lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n              }\n\n              var parent = _this2.getNativeNode(); // Fragment extended native component, so if parent is fragment should get this._parent\n\n\n              if (Array.isArray(parent)) {\n                parent = _this2._parent;\n              }\n\n              nextChild.mountComponent(parent, _this2._instance, context, function (newChild, parent) {\n                // TODO: Rework the duplicate code\n                var oldChild = oldNodes[_name2];\n\n                if (!Array.isArray(newChild)) {\n                  newChild = [newChild];\n                }\n\n                if (oldChild) {\n                  // The oldChild or newChild all maybe fragment\n                  if (!Array.isArray(oldChild)) {\n                    oldChild = [oldChild];\n                  } // If newChild count large then oldChild\n\n\n                  var lastNewChild;\n\n                  for (var _i2 = 0; _i2 < newChild.length; _i2++) {\n                    var child = newChild[_i2];\n\n                    if (oldChild[_i2]) {\n                      _host.default.driver.replaceChild(child, oldChild[_i2]);\n                    } else {\n                      _host.default.driver.insertAfter(child, lastNewChild);\n                    }\n\n                    lastNewChild = child;\n                  } // If newChild count less then oldChild\n\n\n                  if (newChild.length < oldChild.length) {\n                    for (var _i3 = newChild.length; _i3 < oldChild.length; _i3++) {\n                      _host.default.driver.removeChild(oldChild[_i3]);\n                    }\n                  }\n                } else {\n                  // Insert child at a specific index\n                  // Get the last child\n                  if (Array.isArray(lastPlacedNode)) {\n                    lastPlacedNode = lastPlacedNode[lastPlacedNode.length - 1];\n                  }\n\n                  var prevFirstNativeNode;\n\n                  if (firstPrevChild && !lastPlacedNode) {\n                    prevFirstNativeNode = firstPrevChild.getNativeNode();\n\n                    if (Array.isArray(prevFirstNativeNode)) {\n                      prevFirstNativeNode = prevFirstNativeNode[0];\n                    }\n                  }\n\n                  for (var _i4 = newChild.length - 1; _i4 >= 0; _i4--) {\n                    var _child = newChild[_i4];\n\n                    if (lastPlacedNode) {\n                      _host.default.driver.insertAfter(_child, lastPlacedNode);\n                    } else if (prevFirstNativeNode) {\n                      _host.default.driver.insertBefore(_child, prevFirstNativeNode);\n                    } else {\n                      _host.default.driver.appendChild(_child, parent);\n                    }\n                  }\n                }\n\n                nextNativeNode = nextNativeNode.concat(newChild);\n              });\n              nextChild._mountIndex = nextIndex;\n            }\n\n            nextIndex++;\n            lastPlacedNode = nextChild.getNativeNode();\n          };\n\n          for (var _name2 in nextChildren) {\n            var _ret = _loop(_name2);\n\n            if (_ret === \"continue\") continue;\n          } // Sync update native refs\n\n\n          if (Array.isArray(_this2._nativeNode)) {\n            // Clear all and push the new array\n            _this2._nativeNode.splice(0, _this2._nativeNode.length);\n\n            for (var i = 0; i < nextNativeNode.length; i++) {\n              _this2._nativeNode.push(nextNativeNode[i]);\n            }\n          }\n        })();\n      }\n\n      if (delayRemoveFirstPrevChild) {\n        firstPrevChild.unmountComponent();\n      }\n\n      this._renderedChildren = nextChildren;\n    }\n  }, {\n    key: \"getNativeNode\",\n    value: function getNativeNode() {\n      if (this._nativeNode == null) {\n        this._nativeNode = _host.default.driver.createElement(this._instance);\n\n        _instance.default.set(this._nativeNode, this._instance);\n      }\n\n      return this._nativeNode;\n    }\n  }, {\n    key: \"getPublicInstance\",\n    value: function getPublicInstance() {\n      return this.getNativeNode();\n    }\n  }, {\n    key: \"getName\",\n    value: function getName() {\n      return this._currentElement.type;\n    }\n  }]);\n\n  return NativeComponent;\n}();\n\nvar _default = NativeComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\n/*\n * Ref manager\n */\nvar _default = {\n  update: function update(prevElement, nextElement, component) {\n    var prevRef = prevElement != null && prevElement.ref;\n    var nextRef = nextElement != null && nextElement.ref; // Update refs in owner component\n\n    if (prevRef !== nextRef) {\n      // Detach prev RenderedElement's ref\n      prevRef != null && this.detach(prevElement._owner, prevRef, component); // Attach next RenderedElement's ref\n\n      nextRef != null && this.attach(nextElement._owner, nextRef, component);\n    }\n  },\n  attach: function attach(ownerComponent, ref, component) {\n    if (!ownerComponent) {\n      throw new Error('You might be adding a ref to a component that was not created inside a component\\'s ' + '`render` method, or you have multiple copies of Rax loaded.');\n    }\n\n    var instance = component.getPublicInstance();\n\n    if (typeof ref === 'function') {\n      ref(instance);\n    } else {\n      ownerComponent._instance.refs[ref] = instance;\n    }\n  },\n  detach: function detach(ownerComponent, ref, component) {\n    if (typeof ref === 'function') {\n      // When the referenced component is unmounted and whenever the ref changes, the old ref will be called with null as an argument.\n      ref(null);\n    } else {\n      // Must match component and ref could detach the ref on owner when A's before ref is B's current ref\n      var instance = component.getPublicInstance();\n\n      if (ownerComponent._instance.refs[ref] === instance) {\n        delete ownerComponent._instance.refs[ref];\n      }\n    }\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _default = function _default(children, element, index) {\n  var elementKey = element && element.key;\n  var hasKey = typeof elementKey === 'string';\n  var defaultName = '.' + index.toString(36);\n\n  if (hasKey) {\n    var keyName = '$' + elementKey; // Child keys must be unique.\n\n    var keyUnique = children[keyName] === undefined; // Only the first child will be used when encountered two children with the same key\n\n    if (!keyUnique) console.warn(\"Encountered two children with the same key \\\"\".concat(elementKey, \"\\\".\"));\n    return keyUnique ? keyName : defaultName;\n  } else {\n    return defaultName;\n  }\n};\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.isRem = isRem;\nexports.calcRem = calcRem;\nexports.getRem = getRem;\nexports.setRem = setRem;\nexports.isUnitNumber = isUnitNumber;\nexports.convertUnit = convertUnit;\nexports.default = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar UNITLESS_NUMBER_PROPS = {\n  animationIterationCount: true,\n  borderImageOutset: true,\n  borderImageSlice: true,\n  borderImageWidth: true,\n  boxFlex: true,\n  boxFlexGroup: true,\n  boxOrdinalGroup: true,\n  columnCount: true,\n  flex: true,\n  flexGrow: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  flexOrder: true,\n  gridRow: true,\n  gridColumn: true,\n  fontWeight: true,\n  lineClamp: true,\n  // We make lineHeight default is px that is diff with w3c spec\n  // lineHeight: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n  // Weex only\n  lines: true\n};\nvar IS_REM_REG = /\\d+(rem|rpx)/;\nvar REM_REG = /[-+]?\\d*\\.?\\d+(rem|rpx)/g;\nvar GLOBAL_REM_UNIT = '__global_rem_unit__';\nvar global = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' ? window : _typeof(global) === 'object' ? global : {}; // Default 1 rem to 1 px\n\nif (getRem() === undefined) {\n  setRem(1);\n}\n/**\n * Is string contains rem\n * note: rpx is an alias to rem\n * @param {String} str\n * @returns {Boolean}\n */\n\n\nfunction isRem(str) {\n  return IS_REM_REG.test(str);\n}\n/**\n * Calculate rem to pixels: '1.2rem' => 1.2 * rem\n * @param {String} str\n * @param {Number} rem\n * @returns {number}\n */\n\n\nfunction calcRem(str) {\n  var remUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getRem();\n  return str.replace(REM_REG, function (rem) {\n    return parseFloat(rem) * remUnit + 'px';\n  });\n}\n\nfunction getRem() {\n  return global[GLOBAL_REM_UNIT];\n}\n\nfunction setRem(rem) {\n  global[GLOBAL_REM_UNIT] = rem;\n}\n\nfunction isUnitNumber(val, prop) {\n  return typeof val === 'number' && !UNITLESS_NUMBER_PROPS[prop];\n}\n\nfunction convertUnit(val, prop) {\n  var remUnit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getRem();\n\n  if (prop && isUnitNumber(val, prop)) {\n    return val * remUnit + 'px';\n  } else if (isRem(val)) {\n    return calcRem(val, remUnit);\n  }\n\n  return val;\n}\n\nexports[\"default\"] = module.exports;\nvar _default = module.exports;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.transformPropsAttrsToStyle = transformPropsAttrsToStyle;\nexports.renamePropsAttr = renamePropsAttr;\nexports.default = void 0;\n\n/**\n * transformPropAttrsToStyle\n *\n * @param {Object} props\n * @param {Array} attrs\n */\nfunction transformPropsAttrsToStyle(props, attrs) {\n  props.style = props.style || {};\n  attrs.forEach(function (attr) {\n    if (props[attr] && !props.style[attr]) {\n      props.style[attr] = props[attr];\n      delete props[attr];\n    }\n  });\n  return props;\n}\n\n;\n/**\n * renamePropsAttr\n *\n * @param {Object} props\n * @param {String} originalAttrName\n * @param {String} newAttrName\n */\n\nfunction renamePropsAttr(props, originalAttrName, newAttrName) {\n  if (props[originalAttrName] && !props[newAttrName]) {\n    props[newAttrName] = props[originalAttrName];\n    delete props[originalAttrName];\n  }\n\n  return props;\n}\n\nexports[\"default\"] = module.exports;\nvar _default = module.exports;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./vdom/host\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction findDOMNode(instance) {\n  if (instance == null) {\n    return null;\n  } // If a native node, weex may not export ownerDocument property\n\n\n  if (instance.ownerDocument || instance.nodeType) {\n    return instance;\n  } // Native component\n\n\n  if (instance._nativeNode) {\n    return instance._nativeNode;\n  }\n\n  if (typeof instance == 'string') {\n    return _host.default.driver.getElementById(instance);\n  }\n\n  if (typeof instance.render !== 'function') {\n    throw new Error('findDOMNode: find by neither component nor DOM node.');\n  } // Composite component\n\n\n  var internal = instance._internal;\n\n  if (internal) {\n    while (!internal._nativeNode) {\n      internal = internal._renderedComponent; // If not mounted\n\n      if (internal == null) {\n        return null;\n      }\n    }\n\n    return internal._nativeNode;\n  } else {\n    throw new Error('findDOMNode: find on an unmounted component.');\n  }\n}\n\nvar _default = findDOMNode;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","const global = window;\n\nconst shared = require('runtime-shared');\n\n// ES\nrequire('./number');\nrequire('./object');\nrequire('./array');\n\nif (!global.Promise) {\n  global.Promise = shared.Promise;\n}\n\nif (!global.Symbol) {\n  global.Symbol = shared.Symbol;\n}\n\nif (!global.Map) {\n  global.Map = shared.Map;\n}\n\nif (!global.Set) {\n  global.Set = shared.Set;\n}\n\nif (!global.WeakMap) {\n  global.WeakMap = shared.WeakMap;\n}\n\nif (!global.WeakSet) {\n  global.WeakSet = shared.WeakSet;\n}\n\n// W3C\nrequire('whatwg-fetch');\nrequire('raf/polyfill');\n\nif (!global.FontFace) {\n  global.FontFace = shared.FontFace;\n}\n\nif (!global.matchMedia) {\n  global.matchMedia = shared.matchMedia;\n}\n\nif (!global.URL) {\n  global.URL = shared.URL;\n}\n\nif (!global.URLSearchParams) {\n  global.URLSearchParams = shared.URLSearchParams;\n}\n\nif (!document.fonts) {\n  document.fonts = {\n    add: function(fontFace) {\n      let fontFaceRule = `@font-face {\n        font-family: ${fontFace.family};\n        src: ${fontFace.source}\n      }`;\n\n      let styleElement = document.createElement('style');\n      styleElement.innerHTML = fontFaceRule;\n      document.head.appendChild(styleElement);\n    }\n  };\n}\n\n// ModuleJS\nrequire('./require');\n\n// Polyfills for weex\nrequire('./appear');\n\n// Default Builtin modules\nglobal.define('rax', function(req, exports, module) {\n  module.exports = require('rax');\n});\n","\"use strict\";\n\nmodule.exports = {\n  get Promise() {\n    return require('./promise');\n  },\n\n  get Symbol() {\n    return require('./symbol');\n  },\n\n  get Map() {\n    return require('./map');\n  },\n\n  get Set() {\n    return require('./set');\n  },\n\n  get WeakMap() {\n    return require('./weakmap');\n  },\n\n  get WeakSet() {\n    return require('./weakset');\n  },\n\n  get FontFace() {\n    return require('./fontface');\n  },\n\n  get URL() {\n    return require('./url');\n  },\n\n  get URLSearchParams() {\n    return require('./url-search-params');\n  },\n\n  get matchMedia() {\n    return require('./matchMedia');\n  }\n\n};","\"use strict\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint no-extend-native: \"off\" */\nfunction noop() {} // Use polyfill for setImmediate for performance gains\n\n\nvar asap = typeof setImmediate === 'function' && setImmediate || function (fn) {\n  if (typeof setTimeout === 'function') {\n    setTimeout(fn, 0);\n  } else {\n    fn();\n  }\n};\n\nvar onUnhandledRejection = function onUnhandledRejection(err) {\n  if (typeof console !== 'undefined' && console) {\n    console.log('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n  }\n}; // Polyfill for Function.prototype.bind\n\n\nfunction bind(fn, thisArg) {\n  return function () {\n    fn.apply(thisArg, arguments);\n  };\n}\n\nfunction Promise(fn) {\n  if (_typeof(this) !== 'object') throw new TypeError('Promises must be constructed via new');\n  if (typeof fn !== 'function') throw new TypeError('Promise resolver is not a function');\n  this._state = 0;\n  this._handled = false;\n  this._value = undefined;\n  this._deferreds = [];\n  doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n  while (self._state === 3) {\n    self = self._value;\n  }\n\n  if (self._state === 0) {\n    self._deferreds.push(deferred);\n\n    return;\n  }\n\n  self._handled = true;\n  asap(function () {\n    var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n\n    if (cb === null) {\n      (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n      return;\n    }\n\n    var ret;\n\n    try {\n      ret = cb(self._value);\n    } catch (e) {\n      reject(deferred.promise, e);\n      return;\n    }\n\n    resolve(deferred.promise, ret);\n  });\n}\n\nfunction resolve(self, newValue) {\n  try {\n    // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n    if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.');\n\n    if (newValue && (_typeof(newValue) === 'object' || typeof newValue === 'function')) {\n      var then = newValue.then;\n\n      if (newValue instanceof Promise) {\n        self._state = 3;\n        self._value = newValue;\n        finale(self);\n        return;\n      } else if (typeof then === 'function') {\n        doResolve(bind(then, newValue), self);\n        return;\n      }\n    }\n\n    self._state = 1;\n    self._value = newValue;\n    finale(self);\n  } catch (e) {\n    reject(self, e);\n  }\n}\n\nfunction reject(self, newValue) {\n  self._state = 2;\n  self._value = newValue;\n  finale(self);\n}\n\nfunction finale(self) {\n  if (self._state === 2 && self._deferreds.length === 0) {\n    asap(function () {\n      if (!self._handled) {\n        onUnhandledRejection(self._value);\n      }\n    });\n  }\n\n  for (var i = 0, len = self._deferreds.length; i < len; i++) {\n    handle(self, self._deferreds[i]);\n  }\n\n  self._deferreds = null;\n}\n\nfunction Handler(onFulfilled, onRejected, promise) {\n  this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n  this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n  this.promise = promise;\n}\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\n\n\nfunction doResolve(fn, self) {\n  var done = false;\n\n  try {\n    fn(function (value) {\n      if (done) return;\n      done = true;\n      resolve(self, value);\n    }, function (reason) {\n      if (done) return;\n      done = true;\n      reject(self, reason);\n    });\n  } catch (ex) {\n    if (done) return;\n    done = true;\n    reject(self, ex);\n  }\n}\n\nPromise.prototype.catch = function (onRejected) {\n  return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function (onFulfilled, onRejected) {\n  var prom = new this.constructor(noop);\n  handle(this, new Handler(onFulfilled, onRejected, prom));\n  return prom;\n};\n\nPromise.all = function (arr) {\n  var args = Array.prototype.slice.call(arr);\n  return new Promise(function (resolve, reject) {\n    if (args.length === 0) return resolve([]);\n    var remaining = args.length;\n\n    function res(i, val) {\n      try {\n        if (val && (_typeof(val) === 'object' || typeof val === 'function')) {\n          var then = val.then;\n\n          if (typeof then === 'function') {\n            then.call(val, function (val) {\n              res(i, val);\n            }, reject);\n            return;\n          }\n        }\n\n        args[i] = val;\n\n        if (--remaining === 0) {\n          resolve(args);\n        }\n      } catch (ex) {\n        reject(ex);\n      }\n    }\n\n    for (var i = 0; i < args.length; i++) {\n      res(i, args[i]);\n    }\n  });\n};\n\nPromise.resolve = function (value) {\n  if (value && _typeof(value) === 'object' && value.constructor === Promise) {\n    return value;\n  }\n\n  return new Promise(function (resolve) {\n    resolve(value);\n  });\n};\n\nPromise.reject = function (value) {\n  return new Promise(function (resolve, reject) {\n    reject(value);\n  });\n};\n\nPromise.race = function (values) {\n  return new Promise(function (resolve, reject) {\n    for (var i = 0, len = values.length; i < len; i++) {\n      values[i].then(resolve, reject);\n    }\n  });\n};\n/**\n * Set the immediate function to execute callbacks\n * @param fn {function} Function to execute\n * @private\n */\n\n\nPromise._setImmediateFn = function _setImmediateFn(fn) {\n  asap = fn;\n};\n\nPromise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {\n  onUnhandledRejection = fn;\n};\n\nmodule.exports = Promise;","\"use strict\";\n\n/* eslint no-extend-native: \"off\" */\nvar _Symbol = require('./symbol'); // Deleted map items mess with iterator pointers, so rather than removing them mark them as deleted. Can't use undefined or null since those both valid keys so use a private symbol.\n\n\nvar undefMarker = _Symbol('undef'); // NaN cannot be found in an array using indexOf, so we encode NaNs using a private symbol.\n\n\nvar NaNMarker = _Symbol('NaN');\n\nvar ACCESSOR_SUPPORT = true;\n\nfunction encodeKey(key) {\n  // Number.isNaN not extist in iOS 8.x\n  return key !== key ? NaNMarker : key;\n}\n\nfunction decodeKey(encodedKey) {\n  return encodedKey === NaNMarker ? NaN : encodedKey;\n}\n\nfunction makeIterator(mapInst, getter) {\n  var nextIdx = 0;\n  var done = false;\n  return {\n    next: function next() {\n      if (nextIdx === mapInst._keys.length) done = true;\n\n      if (!done) {\n        while (mapInst._keys[nextIdx] === undefMarker) {\n          nextIdx++;\n        }\n\n        return {\n          value: getter.call(mapInst, nextIdx++),\n          done: false\n        };\n      } else {\n        return {\n          value: void 0,\n          done: true\n        };\n      }\n    }\n  };\n}\n\nfunction calcSize(mapInst) {\n  var size = 0;\n\n  for (var i = 0, s = mapInst._keys.length; i < s; i++) {\n    if (mapInst._keys[i] !== undefMarker) size++;\n  }\n\n  return size;\n}\n\nfunction hasProtoMethod(instance, method) {\n  return typeof instance[method] === 'function';\n}\n\nvar Map = function Map(data) {\n  this._keys = [];\n  this._values = []; // If `data` is iterable (indicated by presence of a forEach method), pre-populate the map\n\n  if (data && hasProtoMethod(data, 'forEach')) {\n    // Fastpath: If `data` is a Map, shortcircuit all following the checks\n    if (data instanceof Map || // If `data` is not an instance of Map, it could be because you have a Map from an iframe or a worker or something.\n    // Check if  `data` has all the `Map` methods and if so, assume data is another Map\n    hasProtoMethod(data, 'clear') && hasProtoMethod(data, 'delete') && hasProtoMethod(data, 'entries') && hasProtoMethod(data, 'forEach') && hasProtoMethod(data, 'get') && hasProtoMethod(data, 'has') && hasProtoMethod(data, 'keys') && hasProtoMethod(data, 'set') && hasProtoMethod(data, 'values')) {\n      data.forEach(function (value, key) {\n        this.set.apply(this, [key, value]);\n      }, this);\n    } else {\n      data.forEach(function (item) {\n        this.set.apply(this, item);\n      }, this);\n    }\n  }\n\n  if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n};\n\nMap.prototype = {}; // Some old engines do not support ES5 getters/setters.  Since Map only requires these for the size property, we can fall back to setting the size property statically each time the size of the map changes.\n\ntry {\n  Object.defineProperty(Map.prototype, 'size', {\n    get: function get() {\n      return calcSize(this);\n    }\n  });\n} catch (e) {\n  ACCESSOR_SUPPORT = false;\n}\n\nMap.prototype.get = function (key) {\n  var idx = this._keys.indexOf(encodeKey(key));\n\n  return idx !== -1 ? this._values[idx] : undefined;\n};\n\nMap.prototype.set = function (key, value) {\n  var idx = this._keys.indexOf(encodeKey(key));\n\n  if (idx !== -1) {\n    this._values[idx] = value;\n  } else {\n    this._keys.push(encodeKey(key));\n\n    this._values.push(value);\n\n    if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n  }\n\n  return this;\n};\n\nMap.prototype.has = function (key) {\n  return this._keys.indexOf(encodeKey(key)) !== -1;\n};\n\nMap.prototype.delete = function (key) {\n  var idx = this._keys.indexOf(encodeKey(key));\n\n  if (idx === -1) return false;\n  this._keys[idx] = undefMarker;\n  this._values[idx] = undefMarker;\n  if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n  return true;\n};\n\nMap.prototype.clear = function () {\n  this._keys = this._values = [];\n  if (!ACCESSOR_SUPPORT) this.size = 0;\n};\n\nMap.prototype.values = function () {\n  return makeIterator(this, function (i) {\n    return this._values[i];\n  });\n};\n\nMap.prototype.keys = function () {\n  return makeIterator(this, function (i) {\n    return decodeKey(this._keys[i]);\n  });\n};\n\nMap.prototype.entries = Map.prototype[_Symbol.iterator] = function () {\n  return makeIterator(this, function (i) {\n    return [decodeKey(this._keys[i]), this._values[i]];\n  });\n};\n\nMap.prototype.forEach = function (callbackFn, thisArg) {\n  thisArg = thisArg || global;\n  var iterator = this.entries();\n  var result = iterator.next();\n\n  while (result.done === false) {\n    callbackFn.call(thisArg, result.value[1], result.value[0], this);\n    result = iterator.next();\n  }\n};\n\nMap.prototype[_Symbol.species] = Map;\nObject.defineProperty(Map, 'constructor', {\n  value: Map\n});\n\ntry {\n  Object.defineProperty(Map, 'length', {\n    value: 0\n  });\n} catch (e) {}\n\nmodule.exports = Map;","\"use strict\";\n\n/* eslint no-extend-native: \"off\" */\nvar _Symbol = require('./symbol'); // Deleted map items mess with iterator pointers, so rather than removing them mark them as deleted. Can't use undefined or null since those both valid keys so use a private symbol.\n\n\nvar undefMarker = _Symbol('undef'); // NaN cannot be found in an array using indexOf, so we encode NaNs using a private symbol.\n\n\nvar NaNMarker = _Symbol('NaN');\n\nvar ACCESSOR_SUPPORT = true;\n\nfunction encodeVal(data) {\n  // Number.isNaN not extist in iOS 8.x\n  return data !== data ? NaNMarker : data;\n}\n\nfunction decodeVal(encodedData) {\n  return encodedData === NaNMarker ? NaN : encodedData;\n}\n\nfunction makeIterator(setInst, getter) {\n  var nextIdx = 0;\n  return {\n    next: function next() {\n      while (setInst._values[nextIdx] === undefMarker) {\n        nextIdx++;\n      }\n\n      if (nextIdx === setInst._values.length) {\n        return {\n          value: void 0,\n          done: true\n        };\n      } else {\n        return {\n          value: getter.call(setInst, nextIdx++),\n          done: false\n        };\n      }\n    }\n  };\n}\n\nfunction calcSize(setInst) {\n  var size = 0;\n\n  for (var i = 0, s = setInst._values.length; i < s; i++) {\n    if (setInst._values[i] !== undefMarker) size++;\n  }\n\n  return size;\n}\n\nvar Set = function Set(data) {\n  this._values = []; // If `data` is iterable (indicated by presence of a forEach method), pre-populate the set\n\n  data && typeof data.forEach === 'function' && data.forEach(function (item) {\n    this.add.call(this, item);\n  }, this);\n  if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n}; // Some old engines do not support ES5 getters/setters.  Since Set only requires these for the size property, we can fall back to setting the size property statically each time the size of the set changes.\n\n\ntry {\n  Object.defineProperty(Set.prototype, 'size', {\n    get: function get() {\n      return calcSize(this);\n    }\n  });\n} catch (e) {\n  ACCESSOR_SUPPORT = false;\n}\n\nSet.prototype.add = function (value) {\n  value = encodeVal(value);\n\n  if (this._values.indexOf(value) === -1) {\n    this._values.push(value);\n\n    if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n  }\n\n  return this;\n};\n\nSet.prototype.has = function (value) {\n  return this._values.indexOf(encodeVal(value)) !== -1;\n};\n\nSet.prototype.delete = function (value) {\n  var idx = this._values.indexOf(encodeVal(value));\n\n  if (idx === -1) return false;\n  this._values[idx] = undefMarker;\n  if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n  return true;\n};\n\nSet.prototype.clear = function () {\n  this._values = [];\n  if (!ACCESSOR_SUPPORT) this.size = 0;\n};\n\nSet.prototype.values = Set.prototype.keys = function () {\n  return makeIterator(this, function (i) {\n    return decodeVal(this._values[i]);\n  });\n};\n\nSet.prototype.entries = Set.prototype[_Symbol.iterator] = function () {\n  return makeIterator(this, function (i) {\n    return [decodeVal(this._values[i]), decodeVal(this._values[i])];\n  });\n};\n\nSet.prototype.forEach = function (callbackFn, thisArg) {\n  thisArg = thisArg || global;\n  var iterator = this.entries();\n  var result = iterator.next();\n\n  while (result.done === false) {\n    callbackFn.call(thisArg, result.value[1], result.value[0], this);\n    result = iterator.next();\n  }\n};\n\nSet.prototype[_Symbol.species] = Set;\nObject.defineProperty(Set, 'constructor', {\n  value: Set\n});\n\ntry {\n  Object.defineProperty(Set, 'length', {\n    value: 0\n  });\n} catch (e) {}\n\nmodule.exports = Set;","\"use strict\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint no-extend-native: \"off\" */\nvar defineProperty = Object.defineProperty;\nvar counter = Date.now() % 1e9;\n\nvar WeakMap = function WeakMap(data) {\n  this.name = '__st' + (Math.random() * 1e9 >>> 0) + (counter++ + '__'); // If data is iterable (indicated by presence of a forEach method), pre-populate the map\n\n  data && data.forEach && data.forEach(function (item) {\n    this.set.apply(this, item);\n  }, this);\n};\n\nWeakMap.prototype.set = function (key, value) {\n  if (_typeof(key) !== 'object' && typeof key !== 'function') throw new TypeError('Invalid value used as weak map key');\n  var entry = key[this.name];\n  if (entry && entry[0] === key) entry[1] = value;else defineProperty(key, this.name, {\n    value: [key, value],\n    writable: true\n  });\n  return this;\n};\n\nWeakMap.prototype.get = function (key) {\n  var entry;\n  return (entry = key[this.name]) && entry[0] === key ? entry[1] : undefined;\n};\n\nWeakMap.prototype.delete = function (key) {\n  var entry = key[this.name];\n  if (!entry || entry[0] !== key) return false;\n  entry[0] = entry[1] = undefined;\n  return true;\n};\n\nWeakMap.prototype.has = function (key) {\n  var entry = key[this.name];\n  if (!entry) return false;\n  return entry[0] === key;\n};\n\nmodule.exports = WeakMap;","\"use strict\";\n\n/* eslint no-extend-native: \"off\" */\nvar counter = Date.now() % 1e9;\n\nvar WeakSet = function WeakSet(data) {\n  this.name = '__st' + (Math.random() * 1e9 >>> 0) + (counter++ + '__');\n  data && data.forEach && data.forEach(this.add, this);\n};\n\nWeakSet.prototype.add = function (obj) {\n  var name = this.name;\n  if (!obj[name]) Object.defineProperty(obj, name, {\n    value: true,\n    writable: true\n  });\n  return this;\n};\n\nWeakSet.prototype.delete = function (obj) {\n  if (!obj[this.name]) return false;\n  obj[this.name] = undefined;\n  return true;\n};\n\nWeakSet.prototype.has = function (obj) {\n  return !!obj[this.name];\n};\n\nmodule.exports = WeakSet;","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar FontFace = function FontFace(family, source) {\n  _classCallCheck(this, FontFace);\n\n  this.family = family;\n  this.source = source;\n};\n\nmodule.exports = FontFace;","\"use strict\";\n\n// https://github.com/Polymer/URL\nvar URLSearchParams = require('./url-search-params');\n\nvar relative = Object.create(null);\nrelative.ftp = 21;\nrelative.file = 0;\nrelative.gopher = 70;\nrelative.http = 80;\nrelative.https = 443;\nrelative.ws = 80;\nrelative.wss = 443;\nvar relativePathDotMapping = Object.create(null);\nrelativePathDotMapping['%2e'] = '.';\nrelativePathDotMapping['.%2e'] = '..';\nrelativePathDotMapping['%2e.'] = '..';\nrelativePathDotMapping['%2e%2e'] = '..';\n\nfunction isRelativeScheme(scheme) {\n  return relative[scheme] !== undefined;\n}\n\nfunction invalid() {\n  clear.call(this);\n  this._isInvalid = true;\n}\n\nfunction IDNAToASCII(h) {\n  if ('' == h) {\n    invalid.call(this);\n  } // XXX\n\n\n  return h.toLowerCase();\n}\n\nfunction percentEscape(c) {\n  var unicode = c.charCodeAt(0);\n\n  if (unicode > 0x20 && unicode < 0x7F && // \" # < > ? `\n  [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) == -1) {\n    return c;\n  }\n\n  return encodeURIComponent(c);\n}\n\nfunction percentEscapeQuery(c) {\n  // XXX This actually needs to encode c using encoding and then\n  // convert the bytes one-by-one.\n  var unicode = c.charCodeAt(0);\n\n  if (unicode > 0x20 && unicode < 0x7F && // \" # < > ` (do not escape '?')\n  [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) == -1) {\n    return c;\n  }\n\n  return encodeURIComponent(c);\n}\n\nvar EOF = undefined,\n    ALPHA = /[a-zA-Z]/,\n    ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n\nfunction parse(input, stateOverride, base) {\n  function err(message) {\n    errors.push(message);\n  }\n\n  var state = stateOverride || 'scheme start',\n      cursor = 0,\n      buffer = '',\n      seenAt = false,\n      seenBracket = false,\n      errors = [];\n\n  loop: while ((input[cursor - 1] != EOF || cursor == 0) && !this._isInvalid) {\n    var c = input[cursor];\n\n    switch (state) {\n      case 'scheme start':\n        if (c && ALPHA.test(c)) {\n          buffer += c.toLowerCase(); // ASCII-safe\n\n          state = 'scheme';\n        } else if (!stateOverride) {\n          buffer = '';\n          state = 'no scheme';\n          continue;\n        } else {\n          err('Invalid scheme.');\n          break loop;\n        }\n\n        break;\n\n      case 'scheme':\n        if (c && ALPHANUMERIC.test(c)) {\n          buffer += c.toLowerCase(); // ASCII-safe\n        } else if (':' == c) {\n          this._scheme = buffer;\n          buffer = '';\n\n          if (stateOverride) {\n            break loop;\n          }\n\n          if (isRelativeScheme(this._scheme)) {\n            this._isRelative = true;\n          }\n\n          if ('file' == this._scheme) {\n            state = 'relative';\n          } else if (this._isRelative && base && base._scheme == this._scheme) {\n            state = 'relative or authority';\n          } else if (this._isRelative) {\n            state = 'authority first slash';\n          } else {\n            state = 'scheme data';\n          }\n        } else if (!stateOverride) {\n          buffer = '';\n          cursor = 0;\n          state = 'no scheme';\n          continue;\n        } else if (EOF == c) {\n          break loop;\n        } else {\n          err('Code point not allowed in scheme: ' + c);\n          break loop;\n        }\n\n        break;\n\n      case 'scheme data':\n        if ('?' == c) {\n          state = 'query';\n        } else if ('#' == c) {\n          this._fragment = '#';\n          state = 'fragment';\n        } else {\n          // XXX error handling\n          if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n            this._schemeData += percentEscape(c);\n          }\n        }\n\n        break;\n\n      case 'no scheme':\n        if (!base || !isRelativeScheme(base._scheme)) {\n          err('Missing scheme.');\n          invalid.call(this);\n        } else {\n          state = 'relative';\n          continue;\n        }\n\n        break;\n\n      case 'relative or authority':\n        if ('/' == c && '/' == input[cursor + 1]) {\n          state = 'authority ignore slashes';\n        } else {\n          err('Expected /, got: ' + c);\n          state = 'relative';\n          continue;\n        }\n\n        break;\n\n      case 'relative':\n        this._isRelative = true;\n        if ('file' != this._scheme) this._scheme = base._scheme;\n\n        if (EOF == c) {\n          this._host = base._host;\n          this._port = base._port;\n          this._path = base._path.slice();\n          this._query = base._query;\n          this._username = base._username;\n          this._password = base._password;\n          break loop;\n        } else if ('/' == c || '\\\\' == c) {\n          if ('\\\\' == c) err('\\\\ is an invalid code point.');\n          state = 'relative slash';\n        } else if ('?' == c) {\n          this._host = base._host;\n          this._port = base._port;\n          this._path = base._path.slice();\n          this._query = '?';\n          this._username = base._username;\n          this._password = base._password;\n          state = 'query';\n        } else if ('#' == c) {\n          this._host = base._host;\n          this._port = base._port;\n          this._path = base._path.slice();\n          this._query = base._query;\n          this._fragment = '#';\n          this._username = base._username;\n          this._password = base._password;\n          state = 'fragment';\n        } else {\n          var nextC = input[cursor + 1];\n          var nextNextC = input[cursor + 2];\n\n          if ('file' != this._scheme || !ALPHA.test(c) || nextC != ':' && nextC != '|' || EOF != nextNextC && '/' != nextNextC && '\\\\' != nextNextC && '?' != nextNextC && '#' != nextNextC) {\n            this._host = base._host;\n            this._port = base._port;\n            this._username = base._username;\n            this._password = base._password;\n            this._path = base._path.slice();\n\n            this._path.pop();\n          }\n\n          state = 'relative path';\n          continue;\n        }\n\n        break;\n\n      case 'relative slash':\n        if ('/' == c || '\\\\' == c) {\n          if ('\\\\' == c) {\n            err('\\\\ is an invalid code point.');\n          }\n\n          if ('file' == this._scheme) {\n            state = 'file host';\n          } else {\n            state = 'authority ignore slashes';\n          }\n        } else {\n          if ('file' != this._scheme) {\n            this._host = base._host;\n            this._port = base._port;\n            this._username = base._username;\n            this._password = base._password;\n          }\n\n          state = 'relative path';\n          continue;\n        }\n\n        break;\n\n      case 'authority first slash':\n        if ('/' == c) {\n          state = 'authority second slash';\n        } else {\n          err(\"Expected '/', got: \" + c);\n          state = 'authority ignore slashes';\n          continue;\n        }\n\n        break;\n\n      case 'authority second slash':\n        state = 'authority ignore slashes';\n\n        if ('/' != c) {\n          err(\"Expected '/', got: \" + c);\n          continue;\n        }\n\n        break;\n\n      case 'authority ignore slashes':\n        if ('/' != c && '\\\\' != c) {\n          state = 'authority';\n          continue;\n        } else {\n          err('Expected authority, got: ' + c);\n        }\n\n        break;\n\n      case 'authority':\n        if ('@' == c) {\n          if (seenAt) {\n            err('@ already seen.');\n            buffer += '%40';\n          }\n\n          seenAt = true;\n\n          for (var i = 0; i < buffer.length; i++) {\n            var cp = buffer[i];\n\n            if ('\\t' == cp || '\\n' == cp || '\\r' == cp) {\n              err('Invalid whitespace in authority.');\n              continue;\n            } // XXX check URL code points\n\n\n            if (':' == cp && null === this._password) {\n              this._password = '';\n              continue;\n            }\n\n            var tempC = percentEscape(cp);\n            null !== this._password ? this._password += tempC : this._username += tempC;\n          }\n\n          buffer = '';\n        } else if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c) {\n          cursor -= buffer.length;\n          buffer = '';\n          state = 'host';\n          continue;\n        } else {\n          buffer += c;\n        }\n\n        break;\n\n      case 'file host':\n        if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c) {\n          if (buffer.length == 2 && ALPHA.test(buffer[0]) && (buffer[1] == ':' || buffer[1] == '|')) {\n            state = 'relative path';\n          } else if (buffer.length == 0) {\n            state = 'relative path start';\n          } else {\n            this._host = IDNAToASCII.call(this, buffer);\n            buffer = '';\n            state = 'relative path start';\n          }\n\n          continue;\n        } else if ('\\t' == c || '\\n' == c || '\\r' == c) {\n          err('Invalid whitespace in file host.');\n        } else {\n          buffer += c;\n        }\n\n        break;\n\n      case 'host':\n      case 'hostname':\n        if (':' == c && !seenBracket) {\n          // XXX host parsing\n          this._host = IDNAToASCII.call(this, buffer);\n          buffer = '';\n          state = 'port';\n\n          if ('hostname' == stateOverride) {\n            break loop;\n          }\n        } else if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c) {\n          this._host = IDNAToASCII.call(this, buffer);\n          buffer = '';\n          state = 'relative path start';\n\n          if (stateOverride) {\n            break loop;\n          }\n\n          continue;\n        } else if ('\\t' != c && '\\n' != c && '\\r' != c) {\n          if ('[' == c) {\n            seenBracket = true;\n          } else if (']' == c) {\n            seenBracket = false;\n          }\n\n          buffer += c;\n        } else {\n          err('Invalid code point in host/hostname: ' + c);\n        }\n\n        break;\n\n      case 'port':\n        if (/[0-9]/.test(c)) {\n          buffer += c;\n        } else if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c || stateOverride) {\n          if ('' != buffer) {\n            var temp = parseInt(buffer, 10);\n\n            if (temp != relative[this._scheme]) {\n              this._port = temp + '';\n            }\n\n            buffer = '';\n          }\n\n          if (stateOverride) {\n            break loop;\n          }\n\n          state = 'relative path start';\n          continue;\n        } else if ('\\t' == c || '\\n' == c || '\\r' == c) {\n          err('Invalid code point in port: ' + c);\n        } else {\n          invalid.call(this);\n        }\n\n        break;\n\n      case 'relative path start':\n        if ('\\\\' == c) err(\"'\\\\' not allowed in path.\");\n        state = 'relative path';\n\n        if ('/' != c && '\\\\' != c) {\n          continue;\n        }\n\n        break;\n\n      case 'relative path':\n        if (EOF == c || '/' == c || '\\\\' == c || !stateOverride && ('?' == c || '#' == c)) {\n          if ('\\\\' == c) {\n            err('\\\\ not allowed in relative path.');\n          }\n\n          var tmp;\n\n          if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {\n            buffer = tmp;\n          }\n\n          if ('..' == buffer) {\n            this._path.pop();\n\n            if ('/' != c && '\\\\' != c) {\n              this._path.push('');\n            }\n          } else if ('.' == buffer && '/' != c && '\\\\' != c) {\n            this._path.push('');\n          } else if ('.' != buffer) {\n            if ('file' == this._scheme && this._path.length == 0 && buffer.length == 2 && ALPHA.test(buffer[0]) && buffer[1] == '|') {\n              buffer = buffer[0] + ':';\n            }\n\n            this._path.push(buffer);\n          }\n\n          buffer = '';\n\n          if ('?' == c) {\n            this._query = '?';\n            state = 'query';\n          } else if ('#' == c) {\n            this._fragment = '#';\n            state = 'fragment';\n          }\n        } else if ('\\t' != c && '\\n' != c && '\\r' != c) {\n          buffer += percentEscape(c);\n        }\n\n        break;\n\n      case 'query':\n        if (!stateOverride && '#' == c) {\n          this._fragment = '#';\n          state = 'fragment';\n        } else if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n          this._query += percentEscapeQuery(c);\n        }\n\n        break;\n\n      case 'fragment':\n        if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n          this._fragment += c;\n        }\n\n        break;\n    }\n\n    cursor++;\n  }\n}\n\nfunction clear() {\n  this._scheme = '';\n  this._schemeData = '';\n  this._username = '';\n  this._password = null;\n  this._host = '';\n  this._port = '';\n  this._path = [];\n  this._query = '';\n  this._fragment = '';\n  this._isInvalid = false;\n  this._isRelative = false;\n} // Does not process domain names or IP addresses.\n// Does not handle encoding for the query parameter.\n\n\nfunction URL(url, base\n/* , encoding */\n) {\n  if (base !== undefined && !(base instanceof URL)) base = new URL(String(base));\n  this._url = url;\n  clear.call(this);\n  var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, ''); // encoding = encoding || 'utf-8'\n\n  parse.call(this, input, null, base);\n}\n\nURL.prototype = {\n  toString: function toString() {\n    return this.href;\n  },\n\n  get href() {\n    if (this._isInvalid) return this._url;\n    var authority = '';\n\n    if ('' != this._username || null != this._password) {\n      authority = this._username + (null != this._password ? ':' + this._password : '') + '@';\n    }\n\n    return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;\n  },\n\n  set href(href) {\n    clear.call(this);\n    parse.call(this, href);\n  },\n\n  get protocol() {\n    return this._scheme + ':';\n  },\n\n  set protocol(protocol) {\n    if (this._isInvalid) return;\n    parse.call(this, protocol + ':', 'scheme start');\n  },\n\n  get host() {\n    return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;\n  },\n\n  set host(host) {\n    if (this._isInvalid || !this._isRelative) return;\n    parse.call(this, host, 'host');\n  },\n\n  get hostname() {\n    return this._host;\n  },\n\n  set hostname(hostname) {\n    if (this._isInvalid || !this._isRelative) return;\n    parse.call(this, hostname, 'hostname');\n  },\n\n  get port() {\n    return this._port;\n  },\n\n  set port(port) {\n    if (this._isInvalid || !this._isRelative) return;\n    parse.call(this, port, 'port');\n  },\n\n  get pathname() {\n    return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;\n  },\n\n  set pathname(pathname) {\n    if (this._isInvalid || !this._isRelative) return;\n    this._path = [];\n    parse.call(this, pathname, 'relative path start');\n  },\n\n  get search() {\n    return this._isInvalid || !this._query || '?' == this._query ? '' : this._query;\n  },\n\n  set search(search) {\n    if (this._isInvalid || !this._isRelative) return;\n    this._query = '?';\n    if ('?' == search[0]) search = search.slice(1);\n    parse.call(this, search, 'query');\n  },\n\n  get searchParams() {\n    return new URLSearchParams(this.search);\n  },\n\n  get hash() {\n    return this._isInvalid || !this._fragment || '#' == this._fragment ? '' : this._fragment;\n  },\n\n  set hash(hash) {\n    if (this._isInvalid) return;\n    this._fragment = '#';\n    if ('#' == hash[0]) hash = hash.slice(1);\n    parse.call(this, hash, 'fragment');\n  },\n\n  get origin() {\n    var host;\n\n    if (this._isInvalid || !this._scheme) {\n      return '';\n    } // javascript: Gecko returns String(\"\"), WebKit/Blink String(\"null\")\n    // Gecko throws error for \"data://\"\n    // data: Gecko returns \"\", Blink returns \"data://\", WebKit returns \"null\"\n    // Gecko returns String(\"\") for file: mailto:\n    // WebKit/Blink returns String(\"SCHEME://\") for file: mailto:\n\n\n    switch (this._scheme) {\n      case 'data':\n      case 'file':\n      case 'javascript':\n      case 'mailto':\n        return 'null';\n    }\n\n    host = this.host;\n\n    if (!host) {\n      return '';\n    }\n\n    return this._scheme + '://' + host;\n  }\n\n};\nmodule.exports = URL;","\"use strict\";\n\n// https://github.com/ericf/css-mediaquery\nvar RE_MEDIA_QUERY = /^(?:(only|not)?\\s*([_a-z][_a-z0-9-]*)|(\\([^\\)]+\\)))(?:\\s*and\\s*(.*))?$/i,\n    RE_MQ_EXPRESSION = /^\\(\\s*([_a-z-][_a-z0-9-]*)\\s*(?:\\:\\s*([^\\)]+))?\\s*\\)$/,\n    RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/;\n\nfunction _matches(media, values) {\n  return _parseQuery(media).some(function (query) {\n    var inverse = query.inverse;\n    var typeMatch = query.type === 'all' || values.type === query.type;\n\n    if (typeMatch && inverse || !(typeMatch || inverse)) {\n      return false;\n    }\n\n    var expressionsMatch = query.expressions.every(function (expression) {\n      var feature = expression.feature,\n          modifier = expression.modifier,\n          expValue = expression.value,\n          value = values[feature];\n\n      if (!value) {\n        return false;\n      }\n\n      switch (feature) {\n        case 'width':\n        case 'height':\n          expValue = parseFloat(expValue);\n          value = parseFloat(value);\n          break;\n      }\n\n      switch (modifier) {\n        case 'min':\n          return value >= expValue;\n\n        case 'max':\n          return value <= expValue;\n\n        default:\n          return value === expValue;\n      }\n    });\n    return expressionsMatch && !inverse || !expressionsMatch && inverse;\n  });\n}\n\n;\n\nfunction _parseQuery(media) {\n  return media.split(',').map(function (query) {\n    query = query.trim();\n    var captures = query.match(RE_MEDIA_QUERY);\n\n    if (!captures) {\n      throw new SyntaxError(\"Invalid CSS media query: \\\"\".concat(query, \"\\\"\"));\n    }\n\n    var modifier = captures[1],\n        type = captures[2],\n        expressions = ((captures[3] || '') + (captures[4] || '')).trim(),\n        parsed = {};\n    parsed.inverse = !!modifier && modifier.toLowerCase() === 'not';\n    parsed.type = type ? type.toLowerCase() : 'all';\n\n    if (!expressions) {\n      parsed.expressions = [];\n      return parsed;\n    }\n\n    expressions = expressions.match(/\\([^\\)]+\\)/g);\n\n    if (!expressions) {\n      throw new SyntaxError(\"Invalid CSS media query: \\\"\".concat(query, \"\\\"\"));\n    }\n\n    parsed.expressions = expressions.map(function (expression) {\n      var captures = expression.match(RE_MQ_EXPRESSION);\n\n      if (!captures) {\n        throw new SyntaxError(\"Invalid CSS media query: \\\"\".concat(query, \"\\\"\"));\n      }\n\n      var feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n      return {\n        modifier: feature[1],\n        feature: feature[2],\n        value: captures[2]\n      };\n    });\n    return parsed;\n  });\n}\n\n;\n\nfunction matchMedia(media) {\n  var mql = {\n    matches: false,\n    media: media\n  };\n\n  if (media === '') {\n    mql.matches = true;\n    return mql;\n  }\n\n  mql.matches = _matches(media, {\n    type: 'screen',\n    width: window.screen.width,\n    height: window.screen.height\n  });\n  return mql;\n}\n\nmodule.exports = matchMedia;","if (!Number.isNaN) {\n  // http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan\n  Number.isNaN = function isNaN(value) {\n    return value !== value;\n  };\n}\n","// WARNING: This is an optimized version that fails on hasOwnProperty checks\n// and non objects. It's not spec-compliant. It's a perf optimization.\n/* eslint strict:0 */\nif (!Object.assign) {\n  Object.assign = function(target, sources) {\n    for (let nextIndex = 1; nextIndex < arguments.length; nextIndex++) {\n      let nextSource = arguments[nextIndex];\n      if (nextSource == null) {\n        continue;\n      }\n\n      // We don't currently support accessors nor proxies. Therefore this\n      // copy cannot throw. If we ever supported this then we must handle\n      // exceptions and side-effects.\n      for (let key in nextSource) {\n        target[key] = nextSource[key];\n      }\n    }\n\n    return target;\n  };\n}\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Returns an array of the given object's own enumerable entries.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\n *\n */\nif (!Object.entries) {\n  Object.entries = function(object) {\n    // `null` and `undefined` values are not allowed.\n    if (object == null) {\n      throw new TypeError('Object.entries called on non-object');\n    }\n\n    let entries = [];\n    for (let key in object) {\n      if (hasOwnProperty.call(object, key)) {\n        entries.push([key, object[key]]);\n      }\n    }\n    return entries;\n  };\n}\n\n\n/**\n * Returns an array of the given object's own enumerable entries.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values\n *\n */\nif (!Object.values) {\n  Object.values = function(object) {\n    // `null` and `undefined` values are not allowed.\n    if (object == null) {\n      throw new TypeError('Object.values called on non-object');\n    }\n\n    let values = [];\n    for (let key in object) {\n      if (hasOwnProperty.call(object, key)) {\n        values.push(object[key]);\n      }\n    }\n    return values;\n  };\n}\n\nif (!Object.defineProperties) {\n  Object.defineProperties = function(object, descriptors) {\n    for (var property in descriptors) {\n      Object.defineProperty(object, property, descriptors[property]);\n    }\n    return object;\n  };\n}\n\n// https://gist.github.com/WebReflection/5593554\nif (!Object.setPrototypeOf) {\n  Object.setPrototypeOf = (function(Object, magic) {\n    var set;\n    function setPrototypeOf(O, proto) {\n      set.call(O, proto);\n      return O;\n    }\n    try {\n      // this works already in Firefox and Safari\n      set = Object.getOwnPropertyDescriptor(Object.prototype, magic).set;\n      set.call({}, null);\n    } catch (e) {\n      if (\n        // IE < 11 cannot be shimmed\n        Object.prototype !== {}[magic] ||\n        // neither can any browser that actually\n        // implemented __proto__ correctly\n        // (all but old V8 will return here)\n        {__proto__: null}.__proto__ === void 0\n        // this case means null objects cannot be passed\n        // through setPrototypeOf in a reliable way\n        // which means here a **Sham** is needed instead\n      ) {\n        return;\n      }\n      // nodejs 0.8 and 0.10 are (buggy and..) fine here\n      // probably Chrome or some old Mobile stock browser\n      set = function(proto) {\n        this[magic] = proto;\n      };\n      // please note that this will **not** work\n      // in those browsers that do not inherit\n      // __proto__ by mistake from Object.prototype\n      // in these cases we should probably throw an error\n      // or at least be informed about the issue\n      setPrototypeOf.polyfill = setPrototypeOf(\n        setPrototypeOf({}, null),\n        Object.prototype\n      ) instanceof Object;\n      // setPrototypeOf.polyfill === true means it works as meant\n      // setPrototypeOf.polyfill === false means it's not 100% reliable\n      // setPrototypeOf.polyfill === undefined\n      // or\n      // setPrototypeOf.polyfill ==  null means it's not a polyfill\n      // which means it works as expected\n      // we can even delete Object.prototype.__proto__;\n    }\n    return setPrototypeOf;\n  }(Object, '__proto__'));\n}\n\nif (!Object.is) {\n  Object.is = function(x, y) {\n    if (x === y) {\n      // 0 === -0, but they are not identical\n      return x !== 0 || 1 / x === 1 / y;\n    }\n\n    // NaN !== NaN, but they are identical.\n    // NaNs are the only non-reflexive value, i.e., if x !== x,\n    // then x is a NaN.\n    // isNaN is broken: it converts its argument to number, so\n    // isNaN(\"foo\") => true\n    return x !== x && y !== y;\n  };\n}\n","// Production steps of ECMA-262, Edition 6, 22.1.2.1\n// Reference: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from\nif (!Array.from) {\n  Array.from = (function() {\n    var toStr = Object.prototype.toString;\n    var isCallable = function(fn) {\n      return typeof fn === 'function' || toStr.call(fn) === '[object Function]';\n    };\n    var toInteger = function(value) {\n      var number = Number(value);\n      if (isNaN(number)) {\n        return 0;\n      }\n      if (number === 0 || !isFinite(number)) {\n        return number;\n      }\n      return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\n    };\n    var maxSafeInteger = Math.pow(2, 53) - 1;\n    var toLength = function(value) {\n      var len = toInteger(value);\n      return Math.min(Math.max(len, 0), maxSafeInteger);\n    };\n\n    // The length property of the from method is 1.\n    return function from(arrayLike/* , mapFn, thisArg */) {\n      // 1. Let C be the this value.\n      var C = this;\n\n      // 2. Let items be ToObject(arrayLike).\n      var items = Object(arrayLike);\n\n      // 3. ReturnIfAbrupt(items).\n      if (arrayLike == null) {\n        throw new TypeError('Array.from requires an array-like object - not null or undefined');\n      }\n\n      // 4. If mapfn is undefined, then let mapping be false.\n      var mapFn = arguments.length > 1 ? arguments[1] : void undefined;\n      var T;\n      if (typeof mapFn !== 'undefined') {\n        // 5. else\n        // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.\n        if (!isCallable(mapFn)) {\n          throw new TypeError('Array.from: when provided, the second argument must be a function');\n        }\n\n        // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.\n        if (arguments.length > 2) {\n          T = arguments[2];\n        }\n      }\n\n      // 10. Let lenValue be Get(items, \"length\").\n      // 11. Let len be ToLength(lenValue).\n      var len = toLength(items.length);\n\n      // 13. If IsConstructor(C) is true, then\n      // 13. a. Let A be the result of calling the [[Construct]] internal method of C with an argument list containing the single item len.\n      // 14. a. Else, Let A be ArrayCreate(len).\n      var A = isCallable(C) ? Object(new C(len)) : new Array(len);\n\n      // 16. Let k be 0.\n      var k = 0;\n      // 17. Repeat, while k < len… (also steps a - h)\n      var kValue;\n      while (k < len) {\n        kValue = items[k];\n        if (mapFn) {\n          A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);\n        } else {\n          A[k] = kValue;\n        }\n        k += 1;\n      }\n      // 18. Let putStatus be Put(A, \"length\", len, true).\n      A.length = len;\n      // 20. Return A.\n      return A;\n    };\n  }());\n}\n","(function(self) {\n  'use strict';\n\n  if (self.fetch) {\n    return\n  }\n\n  var support = {\n    searchParams: 'URLSearchParams' in self,\n    iterable: 'Symbol' in self && 'iterator' in Symbol,\n    blob: 'FileReader' in self && 'Blob' in self && (function() {\n      try {\n        new Blob()\n        return true\n      } catch(e) {\n        return false\n      }\n    })(),\n    formData: 'FormData' in self,\n    arrayBuffer: 'ArrayBuffer' in self\n  }\n\n  if (support.arrayBuffer) {\n    var viewClasses = [\n      '[object Int8Array]',\n      '[object Uint8Array]',\n      '[object Uint8ClampedArray]',\n      '[object Int16Array]',\n      '[object Uint16Array]',\n      '[object Int32Array]',\n      '[object Uint32Array]',\n      '[object Float32Array]',\n      '[object Float64Array]'\n    ]\n\n    var isDataView = function(obj) {\n      return obj && DataView.prototype.isPrototypeOf(obj)\n    }\n\n    var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n    }\n  }\n\n  function normalizeName(name) {\n    if (typeof name !== 'string') {\n      name = String(name)\n    }\n    if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n      throw new TypeError('Invalid character in header field name')\n    }\n    return name.toLowerCase()\n  }\n\n  function normalizeValue(value) {\n    if (typeof value !== 'string') {\n      value = String(value)\n    }\n    return value\n  }\n\n  // Build a destructive iterator for the value list\n  function iteratorFor(items) {\n    var iterator = {\n      next: function() {\n        var value = items.shift()\n        return {done: value === undefined, value: value}\n      }\n    }\n\n    if (support.iterable) {\n      iterator[Symbol.iterator] = function() {\n        return iterator\n      }\n    }\n\n    return iterator\n  }\n\n  function Headers(headers) {\n    this.map = {}\n\n    if (headers instanceof Headers) {\n      headers.forEach(function(value, name) {\n        this.append(name, value)\n      }, this)\n    } else if (Array.isArray(headers)) {\n      headers.forEach(function(header) {\n        this.append(header[0], header[1])\n      }, this)\n    } else if (headers) {\n      Object.getOwnPropertyNames(headers).forEach(function(name) {\n        this.append(name, headers[name])\n      }, this)\n    }\n  }\n\n  Headers.prototype.append = function(name, value) {\n    name = normalizeName(name)\n    value = normalizeValue(value)\n    var oldValue = this.map[name]\n    this.map[name] = oldValue ? oldValue+','+value : value\n  }\n\n  Headers.prototype['delete'] = function(name) {\n    delete this.map[normalizeName(name)]\n  }\n\n  Headers.prototype.get = function(name) {\n    name = normalizeName(name)\n    return this.has(name) ? this.map[name] : null\n  }\n\n  Headers.prototype.has = function(name) {\n    return this.map.hasOwnProperty(normalizeName(name))\n  }\n\n  Headers.prototype.set = function(name, value) {\n    this.map[normalizeName(name)] = normalizeValue(value)\n  }\n\n  Headers.prototype.forEach = function(callback, thisArg) {\n    for (var name in this.map) {\n      if (this.map.hasOwnProperty(name)) {\n        callback.call(thisArg, this.map[name], name, this)\n      }\n    }\n  }\n\n  Headers.prototype.keys = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push(name) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.values = function() {\n    var items = []\n    this.forEach(function(value) { items.push(value) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.entries = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push([name, value]) })\n    return iteratorFor(items)\n  }\n\n  if (support.iterable) {\n    Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n  }\n\n  function consumed(body) {\n    if (body.bodyUsed) {\n      return Promise.reject(new TypeError('Already read'))\n    }\n    body.bodyUsed = true\n  }\n\n  function fileReaderReady(reader) {\n    return new Promise(function(resolve, reject) {\n      reader.onload = function() {\n        resolve(reader.result)\n      }\n      reader.onerror = function() {\n        reject(reader.error)\n      }\n    })\n  }\n\n  function readBlobAsArrayBuffer(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsArrayBuffer(blob)\n    return promise\n  }\n\n  function readBlobAsText(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsText(blob)\n    return promise\n  }\n\n  function readArrayBufferAsText(buf) {\n    var view = new Uint8Array(buf)\n    var chars = new Array(view.length)\n\n    for (var i = 0; i < view.length; i++) {\n      chars[i] = String.fromCharCode(view[i])\n    }\n    return chars.join('')\n  }\n\n  function bufferClone(buf) {\n    if (buf.slice) {\n      return buf.slice(0)\n    } else {\n      var view = new Uint8Array(buf.byteLength)\n      view.set(new Uint8Array(buf))\n      return view.buffer\n    }\n  }\n\n  function Body() {\n    this.bodyUsed = false\n\n    this._initBody = function(body) {\n      this._bodyInit = body\n      if (!body) {\n        this._bodyText = ''\n      } else if (typeof body === 'string') {\n        this._bodyText = body\n      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n        this._bodyBlob = body\n      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n        this._bodyFormData = body\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this._bodyText = body.toString()\n      } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n        this._bodyArrayBuffer = bufferClone(body.buffer)\n        // IE 10-11 can't handle a DataView body.\n        this._bodyInit = new Blob([this._bodyArrayBuffer])\n      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n        this._bodyArrayBuffer = bufferClone(body)\n      } else {\n        throw new Error('unsupported BodyInit type')\n      }\n\n      if (!this.headers.get('content-type')) {\n        if (typeof body === 'string') {\n          this.headers.set('content-type', 'text/plain;charset=UTF-8')\n        } else if (this._bodyBlob && this._bodyBlob.type) {\n          this.headers.set('content-type', this._bodyBlob.type)\n        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n        }\n      }\n    }\n\n    if (support.blob) {\n      this.blob = function() {\n        var rejected = consumed(this)\n        if (rejected) {\n          return rejected\n        }\n\n        if (this._bodyBlob) {\n          return Promise.resolve(this._bodyBlob)\n        } else if (this._bodyArrayBuffer) {\n          return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n        } else if (this._bodyFormData) {\n          throw new Error('could not read FormData body as blob')\n        } else {\n          return Promise.resolve(new Blob([this._bodyText]))\n        }\n      }\n\n      this.arrayBuffer = function() {\n        if (this._bodyArrayBuffer) {\n          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n        } else {\n          return this.blob().then(readBlobAsArrayBuffer)\n        }\n      }\n    }\n\n    this.text = function() {\n      var rejected = consumed(this)\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return readBlobAsText(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as text')\n      } else {\n        return Promise.resolve(this._bodyText)\n      }\n    }\n\n    if (support.formData) {\n      this.formData = function() {\n        return this.text().then(decode)\n      }\n    }\n\n    this.json = function() {\n      return this.text().then(JSON.parse)\n    }\n\n    return this\n  }\n\n  // HTTP methods whose capitalization should be normalized\n  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n  function normalizeMethod(method) {\n    var upcased = method.toUpperCase()\n    return (methods.indexOf(upcased) > -1) ? upcased : method\n  }\n\n  function Request(input, options) {\n    options = options || {}\n    var body = options.body\n\n    if (input instanceof Request) {\n      if (input.bodyUsed) {\n        throw new TypeError('Already read')\n      }\n      this.url = input.url\n      this.credentials = input.credentials\n      if (!options.headers) {\n        this.headers = new Headers(input.headers)\n      }\n      this.method = input.method\n      this.mode = input.mode\n      if (!body && input._bodyInit != null) {\n        body = input._bodyInit\n        input.bodyUsed = true\n      }\n    } else {\n      this.url = String(input)\n    }\n\n    this.credentials = options.credentials || this.credentials || 'omit'\n    if (options.headers || !this.headers) {\n      this.headers = new Headers(options.headers)\n    }\n    this.method = normalizeMethod(options.method || this.method || 'GET')\n    this.mode = options.mode || this.mode || null\n    this.referrer = null\n\n    if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n      throw new TypeError('Body not allowed for GET or HEAD requests')\n    }\n    this._initBody(body)\n  }\n\n  Request.prototype.clone = function() {\n    return new Request(this, { body: this._bodyInit })\n  }\n\n  function decode(body) {\n    var form = new FormData()\n    body.trim().split('&').forEach(function(bytes) {\n      if (bytes) {\n        var split = bytes.split('=')\n        var name = split.shift().replace(/\\+/g, ' ')\n        var value = split.join('=').replace(/\\+/g, ' ')\n        form.append(decodeURIComponent(name), decodeURIComponent(value))\n      }\n    })\n    return form\n  }\n\n  function parseHeaders(rawHeaders) {\n    var headers = new Headers()\n    // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n    // https://tools.ietf.org/html/rfc7230#section-3.2\n    var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n    preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n      var parts = line.split(':')\n      var key = parts.shift().trim()\n      if (key) {\n        var value = parts.join(':').trim()\n        headers.append(key, value)\n      }\n    })\n    return headers\n  }\n\n  Body.call(Request.prototype)\n\n  function Response(bodyInit, options) {\n    if (!options) {\n      options = {}\n    }\n\n    this.type = 'default'\n    this.status = options.status === undefined ? 200 : options.status\n    this.ok = this.status >= 200 && this.status < 300\n    this.statusText = 'statusText' in options ? options.statusText : 'OK'\n    this.headers = new Headers(options.headers)\n    this.url = options.url || ''\n    this._initBody(bodyInit)\n  }\n\n  Body.call(Response.prototype)\n\n  Response.prototype.clone = function() {\n    return new Response(this._bodyInit, {\n      status: this.status,\n      statusText: this.statusText,\n      headers: new Headers(this.headers),\n      url: this.url\n    })\n  }\n\n  Response.error = function() {\n    var response = new Response(null, {status: 0, statusText: ''})\n    response.type = 'error'\n    return response\n  }\n\n  var redirectStatuses = [301, 302, 303, 307, 308]\n\n  Response.redirect = function(url, status) {\n    if (redirectStatuses.indexOf(status) === -1) {\n      throw new RangeError('Invalid status code')\n    }\n\n    return new Response(null, {status: status, headers: {location: url}})\n  }\n\n  self.Headers = Headers\n  self.Request = Request\n  self.Response = Response\n\n  self.fetch = function(input, init) {\n    return new Promise(function(resolve, reject) {\n      var request = new Request(input, init)\n      var xhr = new XMLHttpRequest()\n\n      xhr.onload = function() {\n        var options = {\n          status: xhr.status,\n          statusText: xhr.statusText,\n          headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n        }\n        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n        var body = 'response' in xhr ? xhr.response : xhr.responseText\n        resolve(new Response(body, options))\n      }\n\n      xhr.onerror = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.ontimeout = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.open(request.method, request.url, true)\n\n      if (request.credentials === 'include') {\n        xhr.withCredentials = true\n      } else if (request.credentials === 'omit') {\n        xhr.withCredentials = false\n      }\n\n      if ('responseType' in xhr && support.blob) {\n        xhr.responseType = 'blob'\n      }\n\n      request.headers.forEach(function(value, name) {\n        xhr.setRequestHeader(name, value)\n      })\n\n      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n    })\n  }\n  self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n","require('./').polyfill()\n","var now = require('performance-now')\n  , root = typeof window === 'undefined' ? global : window\n  , vendors = ['moz', 'webkit']\n  , suffix = 'AnimationFrame'\n  , raf = root['request' + suffix]\n  , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n  raf = root[vendors[i] + 'Request' + suffix]\n  caf = root[vendors[i] + 'Cancel' + suffix]\n      || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n  var last = 0\n    , id = 0\n    , queue = []\n    , frameDuration = 1000 / 60\n\n  raf = function(callback) {\n    if(queue.length === 0) {\n      var _now = now()\n        , next = Math.max(0, frameDuration - (_now - last))\n      last = next + _now\n      setTimeout(function() {\n        var cp = queue.slice(0)\n        // Clear queue here to prevent\n        // callbacks from appending listeners\n        // to the current frame's queue\n        queue.length = 0\n        for(var i = 0; i < cp.length; i++) {\n          if(!cp[i].cancelled) {\n            try{\n              cp[i].callback(last)\n            } catch(e) {\n              setTimeout(function() { throw e }, 0)\n            }\n          }\n        }\n      }, Math.round(next))\n    }\n    queue.push({\n      handle: ++id,\n      callback: callback,\n      cancelled: false\n    })\n    return id\n  }\n\n  caf = function(handle) {\n    for(var i = 0; i < queue.length; i++) {\n      if(queue[i].handle === handle) {\n        queue[i].cancelled = true\n      }\n    }\n  }\n}\n\nmodule.exports = function(fn) {\n  // Wrap in a new function to prevent\n  // `cancel` potentially being assigned\n  // to the native rAF function\n  return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n  caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n  if (!object) {\n    object = root;\n  }\n  object.requestAnimationFrame = raf\n  object.cancelAnimationFrame = caf\n}\n","// Generated by CoffeeScript 1.12.2\n(function() {\n  var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n  if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n    module.exports = function() {\n      return performance.now();\n    };\n  } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n    module.exports = function() {\n      return (getNanoSeconds() - nodeLoadTime) / 1e6;\n    };\n    hrtime = process.hrtime;\n    getNanoSeconds = function() {\n      var hr;\n      hr = hrtime();\n      return hr[0] * 1e9 + hr[1];\n    };\n    moduleLoadTime = getNanoSeconds();\n    upTime = process.uptime() * 1e9;\n    nodeLoadTime = moduleLoadTime - upTime;\n  } else if (Date.now) {\n    module.exports = function() {\n      return Date.now() - loadTime;\n    };\n    loadTime = Date.now();\n  } else {\n    module.exports = function() {\n      return new Date().getTime() - loadTime;\n    };\n    loadTime = new Date().getTime();\n  }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","(function(global) {\n  if (global.define) {\n    return;\n  }\n\n  /* eslint strict:0 */\n  var modules = {};\n  var inGuard = false;\n\n  function def(id, deps, factory) {\n    if (deps instanceof Function) {\n      factory = deps;\n      deps = [];\n    }\n\n    modules[id] = {\n      factory: factory,\n      deps: deps,\n      module: {exports: {}},\n      isInitialized: false,\n      hasError: false,\n    };\n  }\n\n  function req(id) {\n    // Weex built-in modules\n    if (id.indexOf('@weex-module') === 0) {\n      return {};\n    }\n\n    var originId = id;\n    var mod = modules[id];\n    // Node like require\n    if (!mod) {\n      id = id + '/index';\n      mod = modules[id];\n    }\n\n    if (mod && mod.isInitialized) {\n      return mod.module.exports;\n    }\n\n    return requireImpl(id, originId);\n  }\n\n  function requireImpl(id, originId) {\n    if (global.ErrorUtils && !inGuard) {\n      inGuard = true;\n      var returnValue;\n      try {\n        returnValue = requireImpl.apply(this, arguments);\n      } catch (e) {\n        global.ErrorUtils.reportFatalError(e);\n      }\n      inGuard = false;\n      return returnValue;\n    }\n\n    var mod = modules[id];\n    if (!mod) {\n      throw new Error(\n        'Requiring unknown module \"' + originId + '\"'\n      );\n    }\n\n    if (mod.hasError) {\n      throw new Error(\n        'Requiring module \"' + originId + '\" which threw an exception'\n      );\n    }\n\n    try {\n      // We must optimistically mark mod as initialized before running the factory to keep any\n      // require cycles inside the factory from causing an infinite require loop.\n      mod.isInitialized = true;\n\n      // keep args in sync with with defineModuleCode in\n      // rax/bundler/src/resolver.js\n      mod.factory(req, mod.module.exports, mod.module);\n    } catch (e) {\n      mod.hasError = true;\n      mod.isInitialized = false;\n      throw e;\n    }\n\n    return mod.module.exports;\n  }\n\n  global.define = def;\n  global.require = req;\n})(this || typeof global === 'object' && global || typeof window === 'object' && window);\n","import Registry, { config, getOffset, pushElement } from './appearRegistry';\nimport createIntersectionObserver, { observerElement, isExistIntersection } from './intersectionObserver';\n\nlet instance = null;\nconst existIntersection = isExistIntersection();\n\nconst appear = () => {\n  if (existIntersection) {\n    createIntersectionObserver();\n    injectEventListenerHook();\n  } else {\n    let instances = [];\n\n    Registry.createEvent();\n    injectEventListenerHook(instances);\n\n    instance = new Registry({\n      container: window\n    });\n    instances.push(instance);\n\n    let control = {\n      config,\n    };\n\n    return control;\n  }\n};\n\n\n// hijack addEventListener、removeEventListener\nconst injectEventListenerHook = (instances = []) => {\n  let nativeAddEventListener = Node.prototype.addEventListener;\n  let nativeRemoveEventListener = Node.prototype.removeEventListener;\n\n  Node.prototype.addEventListener = function(eventName, eventHandler, useCapture, doNotWatch) {\n    const lowerCaseEventName = eventName && String(eventName).toLowerCase();\n    const isAppearEvent = lowerCaseEventName === 'appear' || lowerCaseEventName === 'disappear';\n    if (isAppearEvent) {\n      if (existIntersection) {\n        observerElement(this);\n      } else {\n        pushElement(this);\n      }\n    }\n\n    if (!existIntersection) {\n      if (instance && isAppearEvent) {\n        instance.check([this]);\n      }\n\n      if (lowerCaseEventName === 'scroll' && !doNotWatch) {\n        instance = new Registry({\n          container: this\n        });\n        instances.push(instance);\n      }\n    }\n\n    nativeAddEventListener.call(this, eventName, eventHandler, useCapture);\n  };\n\n  Node.prototype.removeEventListener = function(eventName, eventHandler, useCapture, doNotWatch) {\n    let lowerCaseEventName = eventName && String(eventName).toLowerCase(); ;\n\n    // destroy scroller\n    if (!existIntersection && lowerCaseEventName === 'scroll' && !doNotWatch) {\n      instances.forEach((instance, index) => {\n        if (instance.__handle && instance.container === this) {\n          this.removeEventListener('scroll', instance.__handle, false, true);\n          instance.__handle = null;\n          instance.appearWatchElements = [];\n          instance.container = null;\n          instances.splice(index, 1);\n        }\n      });\n    }\n    nativeRemoveEventListener.call(this, eventName, eventHandler, useCapture);\n  };\n};\n\nexport default appear();\n","let offsetTop = 0;\nlet appearEvt, disappearEvt;\nlet _appearDoms = [];\n\nclass AppearRegistry {\n  static createEvent() {\n    appearEvt = document.createEvent('HTMLEvents');\n    disappearEvt = document.createEvent('HTMLEvents');\n    appearEvt.initEvent('appear', false, true);\n    disappearEvt.initEvent('disappear', false, true);\n  }\n\n  constructor(elements) {\n    this.current = [];\n    this.elements = elements;\n\n    this.options = {\n      container: window,\n      wait: 100,\n      x: 0,\n      y: 0,\n      cls: 'appear',\n      once: false,\n      onReset: function() {},\n      onAppear: function() {},\n      onDisappear: function() {}\n    };\n    this.container = null;\n    this.appearWatchElements = null;\n\n    this.initConfig.apply(this, arguments);\n  }\n\n  initConfig(opts) {\n    this.extend(this.options, opts || (opts = {}));\n    this.appearWatchElements = this.appearWatchElements || this.getElements();\n    this.bindEvent();\n  }\n\n  extend(target, el) {\n    for (let k in el) {\n      if (el.hasOwnProperty(k)) {\n        target[k] = el[k];\n      }\n    }\n    return target;\n  }\n\n  inViewport(element, offset, type) {\n    let { top, right, bottom, left } = element.getBoundingClientRect();\n\n    left = offset.right > left && offset.left < right;\n    top = offset.bottom > top - offsetTop && offset.top < bottom;\n    return left && top;\n  }\n\n  getElements(type) {\n    let container = this.options.container;\n    let appearWatchElements;\n    this.container = container;\n\n    appearWatchElements = _appearDoms || [];\n    appearWatchElements = [].slice.call(appearWatchElements, null);\n\n    return appearWatchElements;\n  }\n\n  // check dom inview\n  check(nodes) {\n    raf(() => {\n      this.calculate(nodes);\n    });\n  }\n\n  // calculate everyone dom inview\n  calculate(nodes) {\n    let container = this.container;\n    let elements = nodes || this.getElements();\n    let containerOffset = getOffset(window, {\n      x: this.options.x,\n      y: this.options.y\n    });\n    let isOnce = this.options.once;\n    let ev = arguments[0] || {};\n\n    if (!container) {\n      return;\n    }\n\n    if (elements && elements.length > 0) {\n      [].forEach.call(elements, (ele, i) => {\n        if (ele) {\n          if (ele.isOnce && ele._hasAppear) {\n            _appearDoms.splice(i, 1);\n            elements.splice(i, 1);\n            return;\n          }\n          this.checkEveryDom(ele, containerOffset, isOnce, appearEvt, disappearEvt, 'normal', i);\n        }\n      });\n    }\n  }\n\n  checkEveryDom(ele, containerOffset, isOnce, cacheAppearEvt, cacheDisappearEvt, type, pos) {\n    let eleOffset = getOffset(ele);\n    let direction = this.getDirection(ele._eleOffset, eleOffset);\n    let isInView = this.inViewport(ele, containerOffset, type);\n    let appear = ele._appear;\n    let _hasAppear = ele._hasAppear;\n    let _hasDisAppear = ele._hasDisAppear;\n    ele._eleOffset = eleOffset;\n\n    cacheAppearEvt.direction = direction;\n    cacheDisappearEvt.direction = direction;\n    if (isInView && !appear) {\n      if (isOnce && !_hasAppear || !isOnce) {\n        ele.dispatchEvent(cacheAppearEvt);\n        ele._hasAppear = true;\n        ele._appear = true;\n      }\n    } else if (!isInView && appear) {\n      if (isOnce && !_hasDisAppear || !isOnce) {\n        ele.dispatchEvent(cacheDisappearEvt);\n        ele._hasDisAppear = true;\n        ele._appear = false;\n      }\n    }\n  }\n\n  // reset\n  reset(opts) {\n    this.initConfig(opts);\n    this.appearWatchElements.forEach((ele) => {\n      delete ele._hasAppear;\n      delete ele._hasDisAppear;\n      delete ele._appear;\n    });\n    return this;\n  }\n  bindEvent() {\n    let handle = throttle(() => {\n      this.check();\n    }, this.options.wait);\n    if (this.__handle) {\n      this.container.removeEventListener('scroll', this.__handle, false, true);\n      this.__handle = null;\n    }\n    this.__handle = handle;\n    this.container.addEventListener('scroll', handle, false, true);\n  }\n\n  getDirection(beforeOffset, nowOffset) {\n    var direction = 'none';\n    var horizental = beforeOffset.left - nowOffset.left;\n    var vertical = beforeOffset.top - nowOffset.top;\n    if (vertical == 0) {\n      if (horizental != 0) {\n        direction = horizental > 0 ? 'left' : 'right';\n      } else {\n        direction = 'none';\n      }\n    }\n    if (horizental == 0) {\n      if (vertical != 0) {\n        direction = vertical > 0 ? 'up' : 'down';\n      } else {\n        direction = 'none';\n      }\n    }\n    return direction;\n  }\n}\n\nlet raf = window.requestAnimationFrame || window.webkitRequestAnimationFrame || function(c) {\n  setTimeout(c, 1 / 60 * 1e3);\n};\n\nfunction throttle(fn, wait) {\n  let context, args, result;\n  let timeout = null;\n  let previous = 0;\n\n  const later = () => {\n    previous = Date.now();\n    timeout = null;\n    result = fn.apply(context, args);\n  };\n  return function() {\n    const now = Date.now();\n    const remaining = wait - (now - previous);\n    context = this;\n    args = arguments;\n\n    if (remaining <= 0) {\n      clearTimeout(timeout);\n      timeout = null;\n      previous = now;\n      result = fn.apply(context, args);\n    } else if (!timeout) {\n      timeout = setTimeout(later, remaining);\n    }\n    return result;\n  };\n}\n\nexport function config(opts) {\n  if (opts.offsetTop && typeof opts.offsetTop === 'number') {\n    offsetTop = opts.offsetTop;\n  }\n}\n\nexport function getOffset(el, param) {\n  let l, r, b, t;\n  if (!el) {\n    return;\n  }\n  if (!param) {\n    param = {x: 0, y: 0};\n  }\n\n  if (el === window) {\n    l = 0;\n    t = 0;\n    r = l + el.innerWidth;\n    b = t + el.innerHeight;\n  } else if (el.parentNode === null) {\n    l = 0;\n    t = 0;\n    r = 0;\n    b = 0;\n  } else {\n    const { top, right, bottom, left } = el.getBoundingClientRect();\n    l = left;\n    t = top;\n    r = right;\n    b = bottom;\n  }\n\n  return {\n    'left': l,\n    'top': t,\n    'right': r + param.x,\n    'bottom': b + param.y\n  };\n}\n\n// add element\nexport function pushElement(node) {\n  if (_appearDoms.indexOf(node) === -1 && !node.appended) {\n    let isOnce = Boolean(node.getAttribute('isonce')) || Boolean(node.getAttribute('data-once'));\n    node.isOnce = isOnce;\n    node.appended = true;\n    _appearDoms.push(node);\n    node._eleOffset = getOffset(node);\n  }\n}\n\nexport default AppearRegistry;\n","const options = {\n  root: null,\n  rootMargin: '0px',\n  threshold: 0.0\n};\nlet appearEvt, disappearEvt;\nlet intersectionObserver;\n\nfunction initIntersection() {\n  appearEvt = document.createEvent('HTMLEvents');\n  disappearEvt = document.createEvent('HTMLEvents');\n  appearEvt.initEvent('appear', false, true);\n  disappearEvt.initEvent('disappear', false, true);\n\n  intersectionObserver = new IntersectionObserver(handleIntersect, options);\n}\n\nfunction handleIntersect(entries) {\n  entries.forEach((entry) => {\n    const { target, boundingClientRect, intersectionRatio } = entry;\n\n    // is inview\n    if (intersectionRatio > 0) {\n      target.dataset.appeared = true;\n      target.dispatchEvent(appearEvt);\n    } else if (target.dataset.appeared) {\n      target.dataset.appeared = false;\n      target.dispatchEvent(disappearEvt);\n    }\n  });\n}\n\nexport function observerElement(element) {\n  intersectionObserver.observe(element);\n}\n\nexport function isExistIntersection() {\n  return typeof IntersectionObserver === 'function';\n}\n\nexport default function createIntersectionObserver() {\n  initIntersection();\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"createElement\", {\n  enumerable: true,\n  get: function get() {\n    return _element.createElement;\n  }\n});\nObject.defineProperty(exports, \"cloneElement\", {\n  enumerable: true,\n  get: function get() {\n    return _element.cloneElement;\n  }\n});\nObject.defineProperty(exports, \"isValidElement\", {\n  enumerable: true,\n  get: function get() {\n    return _element.isValidElement;\n  }\n});\nObject.defineProperty(exports, \"createFactory\", {\n  enumerable: true,\n  get: function get() {\n    return _element.createFactory;\n  }\n});\nObject.defineProperty(exports, \"Component\", {\n  enumerable: true,\n  get: function get() {\n    return _component.default;\n  }\n});\nObject.defineProperty(exports, \"PureComponent\", {\n  enumerable: true,\n  get: function get() {\n    return _purecomponent.default;\n  }\n});\nObject.defineProperty(exports, \"PropTypes\", {\n  enumerable: true,\n  get: function get() {\n    return _proptypes.default;\n  }\n});\nObject.defineProperty(exports, \"render\", {\n  enumerable: true,\n  get: function get() {\n    return _render2.default;\n  }\n});\nObject.defineProperty(exports, \"hydrate\", {\n  enumerable: true,\n  get: function get() {\n    return _hydrate2.default;\n  }\n});\nObject.defineProperty(exports, \"createPortal\", {\n  enumerable: true,\n  get: function get() {\n    return _createPortal2.default;\n  }\n});\nObject.defineProperty(exports, \"findDOMNode\", {\n  enumerable: true,\n  get: function get() {\n    return _findDOMNode2.default;\n  }\n});\nObject.defineProperty(exports, \"unmountComponentAtNode\", {\n  enumerable: true,\n  get: function get() {\n    return _unmountComponentAtNode2.default;\n  }\n});\nObject.defineProperty(exports, \"findComponentInstance\", {\n  enumerable: true,\n  get: function get() {\n    return _findComponentInstance2.default;\n  }\n});\nObject.defineProperty(exports, \"setNativeProps\", {\n  enumerable: true,\n  get: function get() {\n    return _setNativeProps2.default;\n  }\n});\nObject.defineProperty(exports, \"version\", {\n  enumerable: true,\n  get: function get() {\n    return _version2.default;\n  }\n});\nObject.defineProperty(exports, \"Children\", {\n  enumerable: true,\n  get: function get() {\n    return _children.default;\n  }\n});\nObject.defineProperty(exports, \"createContext\", {\n  enumerable: true,\n  get: function get() {\n    return _createContext2.default;\n  }\n});\nexports.default = void 0;\n\nrequire(\"./debug/devtools\");\n\nvar _element = require(\"./element\");\n\nvar _component = _interopRequireDefault(require(\"./component\"));\n\nvar _purecomponent = _interopRequireDefault(require(\"./purecomponent\"));\n\nvar _proptypes = _interopRequireDefault(require(\"./proptypes\"));\n\nvar _render2 = _interopRequireDefault(require(\"./render\"));\n\nvar _hydrate2 = _interopRequireDefault(require(\"./hydrate\"));\n\nvar _createPortal2 = _interopRequireDefault(require(\"./createPortal\"));\n\nvar _findDOMNode2 = _interopRequireDefault(require(\"./findDOMNode\"));\n\nvar _unmountComponentAtNode2 = _interopRequireDefault(require(\"./unmountComponentAtNode\"));\n\nvar _findComponentInstance2 = _interopRequireDefault(require(\"./findComponentInstance\"));\n\nvar _setNativeProps2 = _interopRequireDefault(require(\"./setNativeProps\"));\n\nvar _version2 = _interopRequireDefault(require(\"./version\"));\n\nvar _children = _interopRequireDefault(require(\"./children\"));\n\nvar _createContext2 = _interopRequireDefault(require(\"./createContext\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports[\"default\"] = module.exports;\nvar _default = module.exports;\nexports.default = _default;","\"use strict\";\n\nvar _hook = _interopRequireDefault(require(\"./hook\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n  __REACT_DEVTOOLS_GLOBAL_HOOK__.inject(_hook.default);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _component = _interopRequireDefault(require(\"../component\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar rootCounter = 1;\n\nvar Root =\n/*#__PURE__*/\nfunction (_Component) {\n  _inherits(Root, _Component);\n\n  function Root() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, Root);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Root)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"rootID\", rootCounter++);\n\n    return _this;\n  }\n\n  _createClass(Root, [{\n    key: \"isRootComponent\",\n    value: function isRootComponent() {}\n  }, {\n    key: \"render\",\n    value: function render() {\n      return this.props.children;\n    }\n  }, {\n    key: \"getPublicInstance\",\n    value: function getPublicInstance() {\n      return this.getRenderedComponent().getPublicInstance();\n    }\n  }, {\n    key: \"getRenderedComponent\",\n    value: function getRenderedComponent() {\n      return this._internal._renderedComponent;\n    }\n  }]);\n\n  return Root;\n}(_component.default);\n\nvar _default = Root;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _component = _interopRequireDefault(require(\"./component\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * Pure component class.\n */\nvar PureComponent =\n/*#__PURE__*/\nfunction (_Component) {\n  _inherits(PureComponent, _Component);\n\n  function PureComponent(props, context) {\n    _classCallCheck(this, PureComponent);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(PureComponent).call(this, props, context));\n  }\n\n  _createClass(PureComponent, [{\n    key: \"isPureComponentClass\",\n    value: function isPureComponentClass() {}\n  }]);\n\n  return PureComponent;\n}(_component.default);\n\nvar _default = PureComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = inject;\n\nvar _universalEnv = require(\"universal-env\");\n\nvar _host = _interopRequireDefault(require(\"./vdom/host\"));\n\nvar _empty = _interopRequireDefault(require(\"./vdom/empty\"));\n\nvar _native = _interopRequireDefault(require(\"./vdom/native\"));\n\nvar _text = _interopRequireDefault(require(\"./vdom/text\"));\n\nvar _composite = _interopRequireDefault(require(\"./vdom/composite\"));\n\nvar _fragment = _interopRequireDefault(require(\"./vdom/fragment\"));\n\nvar _driverWeex = _interopRequireDefault(require(\"driver-weex\"));\n\nvar _driverBrowser = _interopRequireDefault(require(\"driver-browser\"));\n\nvar _hook = _interopRequireDefault(require(\"./debug/hook\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction inject(_ref) {\n  var driver = _ref.driver,\n      hook = _ref.hook,\n      measurer = _ref.measurer,\n      deviceWidth = _ref.deviceWidth,\n      viewportWidth = _ref.viewportWidth,\n      eventRegistry = _ref.eventRegistry,\n      bodyType = _ref.bodyType,\n      bodyProps = _ref.bodyProps;\n  // Inject component class\n  _host.default.EmptyComponent = _empty.default;\n  _host.default.NativeComponent = _native.default;\n  _host.default.TextComponent = _text.default;\n  _host.default.FragmentComponent = _fragment.default;\n  _host.default.CompositeComponent = _composite.default; // Inject devtool hook\n\n  _host.default.hook = hook || _hook.default; // Inject performance measurer\n\n  _host.default.measurer = measurer; // Inject render driver\n\n  if (!_host.default.driver) {\n    if (!driver) {\n      if (_universalEnv.isWeex) {\n        driver = _driverWeex.default;\n      } else if (_universalEnv.isWeb) {\n        driver = _driverBrowser.default;\n      } else {\n        throw Error('No builtin driver matched');\n      }\n    }\n\n    _host.default.driver = driver;\n  }\n\n  if (deviceWidth && _host.default.driver.setDeviceWidth) {\n    _host.default.driver.setDeviceWidth(deviceWidth);\n  }\n\n  if (viewportWidth && _host.default.driver.setViewportWidth) {\n    _host.default.driver.setViewportWidth(viewportWidth);\n  }\n\n  if (eventRegistry) {\n    _host.default.driver.eventRegistry = eventRegistry;\n  } // Body custom type only works in weex\n\n\n  if (bodyType) {\n    _host.default.driver.bodyType = bodyType;\n  }\n\n  if (bodyProps) {\n    _host.default.driver.bodyProps = bodyProps;\n  }\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Empty Component\n */\nvar EmptyComponent =\n/*#__PURE__*/\nfunction () {\n  function EmptyComponent() {\n    _classCallCheck(this, EmptyComponent);\n\n    this._currentElement = null;\n  }\n\n  _createClass(EmptyComponent, [{\n    key: \"mountComponent\",\n    value: function mountComponent(parent, parentInstance, context, childMounter) {\n      this._parent = parent;\n      this._parentInstance = parentInstance;\n      this._context = context;\n      var instance = {\n        _internal: this\n      };\n      var nativeNode = this.getNativeNode();\n\n      if (childMounter) {\n        childMounter(nativeNode, parent);\n      } else {\n        _host.default.driver.appendChild(nativeNode, parent);\n      }\n\n      return instance;\n    }\n  }, {\n    key: \"unmountComponent\",\n    value: function unmountComponent(notRemoveChild) {\n      if (this._nativeNode && !notRemoveChild) {\n        _host.default.driver.removeChild(this._nativeNode, this._parent);\n      }\n\n      this._nativeNode = null;\n      this._parent = null;\n      this._parentInstance = null;\n      this._context = null;\n    }\n  }, {\n    key: \"updateComponent\",\n    value: function updateComponent() {// Noop\n    }\n  }, {\n    key: \"getNativeNode\",\n    value: function getNativeNode() {\n      // Weex native node\n      if (this._nativeNode == null) {\n        this._nativeNode = _host.default.driver.createEmpty();\n      }\n\n      return this._nativeNode;\n    }\n  }]);\n\n  return EmptyComponent;\n}();\n\nvar _default = EmptyComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Text Component\n */\nvar TextComponent =\n/*#__PURE__*/\nfunction () {\n  function TextComponent(element) {\n    _classCallCheck(this, TextComponent);\n\n    this._currentElement = element;\n    this._stringText = String(element);\n  }\n\n  _createClass(TextComponent, [{\n    key: \"mountComponent\",\n    value: function mountComponent(parent, parentInstance, context, childMounter) {\n      this._parent = parent;\n      this._parentInstance = parentInstance;\n      this._context = context;\n      this._mountID = _host.default.mountID++; // Weex dom operation\n\n      var nativeNode = this.getNativeNode();\n\n      if (childMounter) {\n        childMounter(nativeNode, parent);\n      } else {\n        _host.default.driver.appendChild(nativeNode, parent);\n      }\n\n      var instance = {\n        _internal: this\n      };\n\n      _host.default.hook.Reconciler.mountComponent(this);\n\n      return instance;\n    }\n  }, {\n    key: \"unmountComponent\",\n    value: function unmountComponent(notRemoveChild) {\n      if (this._nativeNode && !notRemoveChild) {\n        _host.default.driver.removeChild(this._nativeNode, this._parent);\n      }\n\n      _host.default.hook.Reconciler.unmountComponent(this);\n\n      this._currentElement = null;\n      this._nativeNode = null;\n      this._parent = null;\n      this._parentInstance = null;\n      this._context = null;\n      this._stringText = null;\n    }\n  }, {\n    key: \"updateComponent\",\n    value: function updateComponent(prevElement, nextElement, context) {\n      // If some text do noting\n      if (prevElement !== nextElement) {\n        // Replace current element\n        this._currentElement = nextElement; // Devtool read the latest stringText value\n\n        this._stringText = String(nextElement);\n\n        _host.default.driver.updateText(this.getNativeNode(), this._stringText);\n\n        _host.default.hook.Reconciler.receiveComponent(this);\n      }\n    }\n  }, {\n    key: \"getNativeNode\",\n    value: function getNativeNode() {\n      if (this._nativeNode == null) {\n        this._nativeNode = _host.default.driver.createText(this._stringText);\n      }\n\n      return this._nativeNode;\n    }\n  }]);\n\n  return TextComponent;\n}();\n\nvar _default = TextComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _stateless = _interopRequireDefault(require(\"./stateless\"));\n\nvar _updater = _interopRequireDefault(require(\"./updater\"));\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nvar _ref = _interopRequireDefault(require(\"./ref\"));\n\nvar _instantiateComponent = _interopRequireDefault(require(\"./instantiateComponent\"));\n\nvar _shouldUpdateComponent = _interopRequireDefault(require(\"./shouldUpdateComponent\"));\n\nvar _shallowEqual = _interopRequireDefault(require(\"./shallowEqual\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction performInSandbox(fn, instance, callback) {\n  try {\n    return fn();\n  } catch (e) {\n    if (callback) {\n      callback(e);\n    } else {\n      handleError(instance, e);\n    }\n  }\n}\n\nfunction handleError(instance, error) {\n  var boundary;\n\n  while (instance) {\n    if (typeof instance.componentDidCatch === 'function') {\n      boundary = instance;\n      break;\n    } else if (instance._internal && instance._internal._parentInstance) {\n      instance = instance._internal._parentInstance;\n    } else {\n      break;\n    }\n  }\n\n  if (boundary) {\n    boundary.componentDidCatch(error);\n  } else {\n    if (_host.default.sandbox) {\n      setTimeout(function () {\n        throw error;\n      }, 0);\n    } else {\n      throw error;\n    }\n  }\n}\n\nvar measureLifeCycle;\n\nif (process.env.NODE_ENV !== 'production') {\n  measureLifeCycle = function measureLifeCycle(callback, instanceID, type) {\n    _host.default.measurer && _host.default.measurer.beforeLifeCycle(instanceID, type);\n    callback();\n    _host.default.measurer && _host.default.measurer.afterLifeCycle(instanceID, type);\n  };\n}\n/**\n * Composite Component\n */\n\n\nvar CompositeComponent =\n/*#__PURE__*/\nfunction () {\n  function CompositeComponent(element) {\n    _classCallCheck(this, CompositeComponent);\n\n    this._currentElement = element;\n  }\n\n  _createClass(CompositeComponent, [{\n    key: \"getName\",\n    value: function getName() {\n      var type = this._currentElement.type;\n      var constructor = this._instance && this._instance.constructor;\n      return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;\n    }\n  }, {\n    key: \"mountComponent\",\n    value: function mountComponent(parent, parentInstance, context, childMounter) {\n      var _this = this;\n\n      this._parent = parent;\n      this._parentInstance = parentInstance;\n      this._context = context;\n      this._mountID = _host.default.mountID++;\n      this._updateCount = 0;\n\n      if (process.env.NODE_ENV !== 'production') {\n        _host.default.measurer && _host.default.measurer.beforeMountComponent(this._mountID, this);\n      }\n\n      var Component = this._currentElement.type;\n      var publicProps = this._currentElement.props;\n      var isClass = Component.prototype;\n      var isComponentClass = isClass && Component.prototype.isComponentClass; // Class stateless component without state but have lifecycles\n\n      var isStatelessClass = isClass && Component.prototype.render; // Context process\n\n      var publicContext = this._processContext(context); // Initialize the public class\n\n\n      var instance;\n      var renderedElement;\n\n      if (isComponentClass || isStatelessClass) {\n        // Component instance\n        instance = new Component(publicProps, publicContext, _updater.default);\n      } else if (typeof Component === 'function') {\n        // Functional stateless component without state and lifecycles\n        instance = new _stateless.default(Component);\n      } else {\n        throw new Error(\"Invalid component type: \".concat(Component, \". (keys: \").concat(Object.keys(Component), \")\"));\n      } // These should be set up in the constructor, but as a convenience for\n      // simpler class abstractions, we set them up after the fact.\n\n\n      instance.props = publicProps;\n      instance.context = publicContext;\n      instance.refs = {}; // Inject the updater into instance\n\n      instance.updater = _updater.default;\n      instance._internal = this;\n      this._instance = instance; // Init state, must be set to an object or null\n\n      var initialState = instance.state;\n\n      if (initialState === undefined) {\n        // TODO clone the state?\n        instance.state = initialState = null;\n      }\n\n      var error = null;\n\n      var errorCallback = function errorCallback(e) {\n        error = e;\n      };\n\n      if (instance.componentWillMount) {\n        performInSandbox(function () {\n          if (process.env.NODE_ENV !== 'production') {\n            measureLifeCycle(function () {\n              instance.componentWillMount();\n            }, _this._mountID, 'componentWillMount');\n          } else {\n            instance.componentWillMount();\n          }\n        }, instance, errorCallback);\n      }\n\n      if (renderedElement == null) {\n        _host.default.component = this; // Process pending state when call setState in componentWillMount\n\n        instance.state = this._processPendingState(publicProps, publicContext);\n        performInSandbox(function () {\n          if (process.env.NODE_ENV !== 'production') {\n            measureLifeCycle(function () {\n              renderedElement = instance.render();\n            }, _this._mountID, 'render');\n          } else {\n            renderedElement = instance.render();\n          }\n        }, instance, errorCallback);\n        _host.default.component = null;\n      }\n\n      this._renderedComponent = (0, _instantiateComponent.default)(renderedElement);\n\n      this._renderedComponent.mountComponent(this._parent, instance, this._processChildContext(context), childMounter);\n\n      if (error) {\n        handleError(instance, error);\n      }\n\n      if (this._currentElement && this._currentElement.ref) {\n        _ref.default.attach(this._currentElement._owner, this._currentElement.ref, this);\n      }\n\n      if (instance.componentDidMount) {\n        performInSandbox(function () {\n          if (process.env.NODE_ENV !== 'production') {\n            measureLifeCycle(function () {\n              instance.componentDidMount();\n            }, _this._mountID, 'componentDidMount');\n          } else {\n            instance.componentDidMount();\n          }\n        }, instance);\n      }\n\n      _host.default.hook.Reconciler.mountComponent(this);\n\n      if (process.env.NODE_ENV !== 'production') {\n        _host.default.measurer && _host.default.measurer.afterMountComponent(this._mountID);\n      }\n\n      return instance;\n    }\n  }, {\n    key: \"unmountComponent\",\n    value: function unmountComponent(notRemoveChild) {\n      var instance = this._instance;\n\n      if (instance.componentWillUnmount) {\n        performInSandbox(function () {\n          instance.componentWillUnmount();\n        }, instance);\n      }\n\n      _host.default.hook.Reconciler.unmountComponent(this);\n\n      instance._internal = null;\n\n      if (this._renderedComponent != null) {\n        var ref = this._currentElement.ref;\n\n        if (ref) {\n          _ref.default.detach(this._currentElement._owner, ref, this);\n        }\n\n        this._renderedComponent.unmountComponent(notRemoveChild);\n\n        this._renderedComponent = null;\n        this._instance = null;\n      }\n\n      this._currentElement = null;\n      this._parentInstance = null; // Reset pending fields\n      // Even if this component is scheduled for another update in ReactUpdates,\n      // it would still be ignored because these fields are reset.\n\n      this._pendingStateQueue = null;\n      this._pendingForceUpdate = false; // These fields do not really need to be reset since this object is no\n      // longer accessible.\n\n      this._context = null;\n    }\n    /**\n     * Filters the context object to only contain keys specified in\n     * `contextTypes`\n     */\n\n  }, {\n    key: \"_processContext\",\n    value: function _processContext(context) {\n      var Component = this._currentElement.type;\n      var contextTypes = Component.contextTypes;\n\n      if (!contextTypes) {\n        return {};\n      }\n\n      var maskedContext = {};\n\n      for (var contextName in contextTypes) {\n        maskedContext[contextName] = context[contextName];\n      }\n\n      return maskedContext;\n    }\n  }, {\n    key: \"_processChildContext\",\n    value: function _processChildContext(currentContext) {\n      var instance = this._instance;\n      var childContext = instance.getChildContext && instance.getChildContext();\n\n      if (childContext) {\n        return Object.assign({}, currentContext, childContext);\n      }\n\n      return currentContext;\n    }\n  }, {\n    key: \"_processPendingState\",\n    value: function _processPendingState(props, context) {\n      var instance = this._instance;\n      var queue = this._pendingStateQueue;\n\n      if (!queue) {\n        return instance.state;\n      } // Reset pending queue\n\n\n      this._pendingStateQueue = null;\n      var nextState = Object.assign({}, instance.state);\n\n      for (var i = 0; i < queue.length; i++) {\n        var partial = queue[i];\n        Object.assign(nextState, typeof partial === 'function' ? partial.call(instance, nextState, props, context) : partial);\n      }\n\n      return nextState;\n    }\n  }, {\n    key: \"updateComponent\",\n    value: function updateComponent(prevElement, nextElement, prevUnmaskedContext, nextUnmaskedContext) {\n      var instance = this._instance;\n\n      if (process.env.NODE_ENV !== 'production') {\n        _host.default.measurer && _host.default.measurer.beforeUpdateComponent(this._mountID, this);\n      }\n\n      if (!instance) {\n        console.error(\"Update component '\".concat(this.getName(), \"' that has already been unmounted (or failed to mount).\"));\n      }\n\n      var willReceive = false;\n      var nextContext;\n      var nextProps; // Determine if the context has changed or not\n\n      if (this._context === nextUnmaskedContext) {\n        nextContext = instance.context;\n      } else {\n        nextContext = this._processContext(nextUnmaskedContext);\n        willReceive = true;\n      } // Distinguish between a props update versus a simple state update\n\n\n      if (prevElement === nextElement) {\n        // Skip checking prop types again -- we don't read component.props to avoid\n        // warning for DOM component props in this upgrade\n        nextProps = nextElement.props;\n      } else {\n        nextProps = nextElement.props;\n        willReceive = true;\n      }\n\n      var hasReceived = willReceive && instance.componentWillReceiveProps;\n\n      if (hasReceived) {\n        // Calling this.setState() within componentWillReceiveProps will not trigger an additional render.\n        this._pendingState = true;\n        performInSandbox(function () {\n          instance.componentWillReceiveProps(nextProps, nextContext);\n        }, instance);\n        this._pendingState = false;\n      } // Update refs\n\n\n      _ref.default.update(prevElement, nextElement, this); // Shoud update always default\n\n\n      var shouldUpdate = true;\n      var prevProps = instance.props;\n      var prevState = instance.state; // TODO: could delay execution processPendingState\n\n      var nextState = this._processPendingState(nextProps, nextContext); // ShouldComponentUpdate is not called when forceUpdate is used\n\n\n      if (!this._pendingForceUpdate) {\n        if (instance.shouldComponentUpdate) {\n          shouldUpdate = performInSandbox(function () {\n            return instance.shouldComponentUpdate(nextProps, nextState, nextContext);\n          }, instance);\n        } else if (instance.isPureComponentClass) {\n          shouldUpdate = !(0, _shallowEqual.default)(prevProps, nextProps) || !(0, _shallowEqual.default)(prevState, nextState);\n        }\n      }\n\n      if (shouldUpdate) {\n        this._pendingForceUpdate = false; // Will set `this.props`, `this.state` and `this.context`.\n\n        var prevContext = instance.context; // Cannot use this.setState() in componentWillUpdate.\n        // If need to update state in response to a prop change, use componentWillReceiveProps instead.\n\n        performInSandbox(function () {\n          if (instance.componentWillUpdate) {\n            instance.componentWillUpdate(nextProps, nextState, nextContext);\n          }\n        }, instance); // Replace with next\n\n        this._currentElement = nextElement;\n        this._context = nextUnmaskedContext;\n        instance.props = nextProps;\n        instance.state = nextState;\n        instance.context = nextContext;\n\n        this._updateRenderedComponent(nextUnmaskedContext);\n\n        performInSandbox(function () {\n          if (instance.componentDidUpdate) {\n            instance.componentDidUpdate(prevProps, prevState, prevContext);\n          }\n        }, instance);\n        this._updateCount++;\n      } else {\n        // If it's determined that a component should not update, we still want\n        // to set props and state but we shortcut the rest of the update.\n        this._currentElement = nextElement;\n        this._context = nextUnmaskedContext;\n        instance.props = nextProps;\n        instance.state = nextState;\n        instance.context = nextContext;\n      } // Flush setState callbacks set in componentWillReceiveProps\n\n\n      if (hasReceived) {\n        var callbacks = this._pendingCallbacks;\n        this._pendingCallbacks = null;\n\n        _updater.default.runCallbacks(callbacks, instance);\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        _host.default.measurer && _host.default.measurer.afterUpdateComponent(this._mountID);\n      }\n\n      _host.default.hook.Reconciler.receiveComponent(this);\n    }\n    /**\n     * Call the component's `render` method and update the DOM accordingly.\n     */\n\n  }, {\n    key: \"_updateRenderedComponent\",\n    value: function _updateRenderedComponent(context) {\n      var _this2 = this;\n\n      var prevRenderedComponent = this._renderedComponent;\n      var prevRenderedElement = prevRenderedComponent._currentElement;\n      var instance = this._instance;\n      var nextRenderedElement;\n      _host.default.component = this;\n      performInSandbox(function () {\n        if (process.env.NODE_ENV !== 'production') {\n          measureLifeCycle(function () {\n            nextRenderedElement = instance.render();\n          }, _this2._mountID, 'render');\n        } else {\n          nextRenderedElement = instance.render();\n        }\n      }, instance);\n      _host.default.component = null;\n\n      if ((0, _shouldUpdateComponent.default)(prevRenderedElement, nextRenderedElement)) {\n        prevRenderedComponent.updateComponent(prevRenderedElement, nextRenderedElement, prevRenderedComponent._context, this._processChildContext(context));\n\n        if (process.env.NODE_ENV !== 'production') {\n          _host.default.measurer && _host.default.measurer.recordOperation({\n            instanceID: this._mountID,\n            type: 'update component',\n            payload: {}\n          });\n        }\n      } else {\n        var oldChild = prevRenderedComponent.getNativeNode();\n        prevRenderedComponent.unmountComponent(true);\n        this._renderedComponent = (0, _instantiateComponent.default)(nextRenderedElement);\n\n        this._renderedComponent.mountComponent(this._parent, instance, this._processChildContext(context), function (newChild, parent) {\n          // TODO: Duplicate code in native component file\n          if (!Array.isArray(newChild)) {\n            newChild = [newChild];\n          } // oldChild or newChild all maybe fragment\n\n\n          if (!Array.isArray(oldChild)) {\n            oldChild = [oldChild];\n          } // If newChild count large then oldChild\n\n\n          var lastNewChild;\n\n          for (var i = 0; i < newChild.length; i++) {\n            var child = newChild[i];\n\n            if (oldChild[i]) {\n              _host.default.driver.replaceChild(child, oldChild[i]);\n            } else {\n              _host.default.driver.insertAfter(child, lastNewChild);\n            }\n\n            lastNewChild = child;\n          } // If newChild count less then oldChild\n\n\n          if (newChild.length < oldChild.length) {\n            for (var _i = newChild.length; _i < oldChild.length; _i++) {\n              _host.default.driver.removeChild(oldChild[_i]);\n            }\n          }\n        });\n      }\n    }\n  }, {\n    key: \"getNativeNode\",\n    value: function getNativeNode() {\n      var renderedComponent = this._renderedComponent;\n\n      if (renderedComponent) {\n        return renderedComponent.getNativeNode();\n      }\n    }\n  }, {\n    key: \"getPublicInstance\",\n    value: function getPublicInstance() {\n      var instance = this._instance; // The Stateless components cannot be given refs\n\n      if (instance instanceof _stateless.default) {\n        return null;\n      }\n\n      return instance;\n    }\n  }]);\n\n  return CompositeComponent;\n}();\n\nvar _default = CompositeComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Stateless Component Class Wrapper\n */\nvar StatelessComponent =\n/*#__PURE__*/\nfunction () {\n  function StatelessComponent(pureRender) {\n    _classCallCheck(this, StatelessComponent);\n\n    // A stateless function\n    this.pureRender = pureRender;\n  }\n\n  _createClass(StatelessComponent, [{\n    key: \"render\",\n    value: function render() {\n      if (process.env.NODE_ENV !== 'production') {\n        _host.default.measurer && _host.default.measurer.beforeRender();\n      }\n\n      return this.pureRender(this.props, this.context);\n    }\n  }]);\n\n  return StatelessComponent;\n}();\n\nvar _default = StatelessComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction enqueueCallback(internal, callback) {\n  if (callback) {\n    var callbackQueue = internal._pendingCallbacks || (internal._pendingCallbacks = []);\n    callbackQueue.push(callback);\n  }\n}\n\nfunction enqueueState(internal, partialState) {\n  if (partialState) {\n    var stateQueue = internal._pendingStateQueue || (internal._pendingStateQueue = []);\n    stateQueue.push(partialState);\n  }\n}\n\nvar Updater = {\n  setState: function setState(component, partialState, callback) {\n    var internal = component._internal;\n\n    if (!internal) {\n      return;\n    }\n\n    enqueueState(internal, partialState);\n    enqueueCallback(internal, callback); // pending in componentWillReceiveProps and componentWillMount\n\n    if (!internal._pendingState && internal._renderedComponent) {\n      this.runUpdate(component);\n    }\n  },\n  forceUpdate: function forceUpdate(component, callback) {\n    var internal = component._internal;\n\n    if (!internal) {\n      return;\n    }\n\n    internal._pendingForceUpdate = true;\n    enqueueCallback(internal, callback); // pending in componentWillMount\n\n    if (internal._renderedComponent) {\n      this.runUpdate(component);\n    }\n  },\n  runUpdate: function runUpdate(component) {\n    var internal = component._internal; // If updateComponent happens to enqueue any new updates, we\n    // shouldn't execute the callbacks until the next render happens, so\n    // stash the callbacks first\n\n    var callbacks = internal._pendingCallbacks;\n    internal._pendingCallbacks = null;\n    var prevElement = internal._currentElement;\n    var prevUnmaskedContext = internal._context;\n\n    if (internal._pendingStateQueue || internal._pendingForceUpdate) {\n      internal.updateComponent(prevElement, prevElement, prevUnmaskedContext, prevUnmaskedContext);\n    }\n\n    this.runCallbacks(callbacks, component);\n  },\n  runCallbacks: function runCallbacks(callbacks, context) {\n    if (callbacks) {\n      for (var i = 0; i < callbacks.length; i++) {\n        callbacks[i].call(context);\n      }\n    }\n  }\n};\nvar _default = Updater;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n\nfunction is(x, y) {\n  // SameValue algorithm\n  if (x === y) {\n    // Steps 1-5, 7-10\n    // Steps 6.b-6.e: +0 != -0\n    return x !== 0 || 1 / x === 1 / y;\n  } else {\n    // Step 6.a: NaN == NaN\n    return x !== x && y !== y;\n  }\n}\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\n\n\nfunction shallowEqual(objA, objB) {\n  if (is(objA, objB)) {\n    return true;\n  }\n\n  if (_typeof(objA) !== 'object' || objA === null || _typeof(objB) !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  } // Test for A's keys different from B.\n\n\n  for (var i = 0; i < keysA.length; i++) {\n    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nvar _default = shallowEqual;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nvar _native = _interopRequireDefault(require(\"./native\"));\n\nvar _instance = _interopRequireDefault(require(\"./instance\"));\n\nvar _instantiateComponent = _interopRequireDefault(require(\"./instantiateComponent\"));\n\nvar _getElementKeyName = _interopRequireDefault(require(\"./getElementKeyName\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * Fragment Component\n */\nvar FragmentComponent =\n/*#__PURE__*/\nfunction (_NativeComponent) {\n  _inherits(FragmentComponent, _NativeComponent);\n\n  function FragmentComponent(element) {\n    _classCallCheck(this, FragmentComponent);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(FragmentComponent).call(this, element));\n  }\n\n  _createClass(FragmentComponent, [{\n    key: \"mountComponent\",\n    value: function mountComponent(parent, parentInstance, context, childMounter) {\n      // Parent native element\n      this._parent = parent;\n      this._parentInstance = parentInstance;\n      this._context = context;\n      this._mountID = _host.default.mountID++;\n      var instance = {\n        _internal: this\n      };\n      this._instance = instance;\n      var fragment = this.getNativeNode();\n      var children = this._currentElement; // Process children\n\n      this.mountChildren(children, context);\n\n      if (childMounter) {\n        childMounter(fragment, parent);\n      } else {\n        var isFragmentParent = Array.isArray(parent);\n\n        for (var i = 0; i < fragment.length; i++) {\n          var child = fragment[i]; // When the parent is also a fragment\n\n          if (isFragmentParent) {\n            parent.push(child);\n          } else {\n            _host.default.driver.appendChild(child, parent);\n          }\n        }\n      }\n\n      return instance;\n    }\n  }, {\n    key: \"mountChildren\",\n    value: function mountChildren(children, context) {\n      var _this = this;\n\n      var renderedChildren = this._renderedChildren = {};\n      var fragment = this.getNativeNode();\n      var renderedChildrenImage = children.map(function (element, index) {\n        var renderedChild = (0, _instantiateComponent.default)(element);\n        var name = (0, _getElementKeyName.default)(renderedChildren, element, index);\n        renderedChildren[name] = renderedChild;\n        renderedChild._mountIndex = index; // Mount\n\n        var mountImage = renderedChild.mountComponent(_this._parent, _this._instance, context, function (nativeNode) {\n          if (Array.isArray(nativeNode)) {\n            for (var i = 0; i < nativeNode.length; i++) {\n              fragment.push(nativeNode[i]);\n            }\n          } else {\n            fragment.push(nativeNode);\n          }\n        });\n        return mountImage;\n      });\n      return renderedChildrenImage;\n    }\n  }, {\n    key: \"unmountComponent\",\n    value: function unmountComponent(notRemoveChild) {\n      if (this._nativeNode) {\n        _instance.default.remove(this._nativeNode);\n\n        if (!notRemoveChild) {\n          for (var i = 0; i < this._nativeNode.length; i++) {\n            _host.default.driver.removeChild(this._nativeNode[i]);\n          }\n        }\n      } // Do not need remove child when their parent is removed\n\n\n      this.unmountChildren(true);\n      this._currentElement = null;\n      this._nativeNode = null;\n      this._parent = null;\n      this._parentInstance = null;\n      this._context = null;\n      this._instance = null;\n    }\n  }, {\n    key: \"updateComponent\",\n    value: function updateComponent(prevElement, nextElement, prevContext, nextContext) {\n      // Replace current element\n      this._currentElement = nextElement;\n      this.updateChildren(this._currentElement, nextContext);\n    }\n  }, {\n    key: \"getNativeNode\",\n    value: function getNativeNode() {\n      if (this._nativeNode == null) {\n        this._nativeNode = [];\n      }\n\n      return this._nativeNode;\n    }\n  }, {\n    key: \"getPublicInstance\",\n    value: function getPublicInstance() {\n      return this.getNativeNode();\n    }\n  }, {\n    key: \"getName\",\n    value: function getName() {\n      return 'fragment';\n    }\n  }]);\n\n  return FragmentComponent;\n}(_native.default);\n\nvar _default = FragmentComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _styleUnit = require(\"style-unit\");\n\nvar _elements = _interopRequireDefault(require(\"./elements\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar STYLE = 'style';\nvar ID = 'id';\nvar TEXT = 'text';\nvar CHILDREN = 'children';\nvar EVENT_PREFIX_REGEXP = /^on[A-Z]/;\nvar ARIA_PREFIX_REGEXP = /^aria-/;\nvar nodeMaps = {};\n/* global __weex_document__ */\n\nvar document = (typeof __weex_document__ === \"undefined\" ? \"undefined\" : _typeof(__weex_document__)) === 'object' ? __weex_document__ : _typeof(document) === 'object' ? document : null;\nvar Driver = {\n  deviceWidth: 750,\n  viewportWidth: 750,\n  getDeviceWidth: function getDeviceWidth() {\n    return this.deviceWidth;\n  },\n  setDeviceWidth: function setDeviceWidth(width) {\n    this.deviceWidth = width;\n  },\n  getViewportWidth: function getViewportWidth() {\n    return this.viewportWidth;\n  },\n  setViewportWidth: function setViewportWidth(width) {\n    this.viewportWidth = width;\n  },\n  getElementById: function getElementById(id) {\n    return nodeMaps[id];\n  },\n  createBody: function createBody() {\n    if (document.body) {\n      return document.body;\n    }\n\n    var documentElement = document.documentElement;\n    var body = document.createBody(Driver.bodyType, Driver.bodyProps);\n    documentElement.appendChild(body);\n    return body;\n  },\n  createComment: function createComment(content) {\n    return document.createComment(content);\n  },\n  createEmpty: function createEmpty() {\n    return this.createComment(' empty ');\n  },\n  createText: function createText(text) {\n    return Driver.createElement({\n      type: TEXT,\n      props: {\n        value: text\n      }\n    });\n  },\n  updateText: function updateText(node, content) {\n    this.setAttribute(node, 'value', content);\n  },\n  createElement: function createElement(component) {\n    var htmlElement = _elements.default[component.type];\n\n    if (htmlElement) {\n      component = htmlElement.parse(component);\n    }\n\n    var props = component.props;\n    var events = [];\n    var style = {};\n    var originStyle = props[STYLE];\n\n    for (var prop in originStyle) {\n      style[prop] = (0, _styleUnit.convertUnit)(originStyle[prop], prop);\n    }\n\n    var node = document.createElement(component.type, {\n      style: style\n    });\n    this.setNativeProps(node, props, true);\n    return node;\n  },\n  appendChild: function appendChild(node, parent) {\n    return parent.appendChild(node);\n  },\n  removeChild: function removeChild(node, parent) {\n    parent = parent || node.parentNode;\n    var id = node.attr && node.attr[ID];\n\n    if (id != null) {\n      nodeMaps[id] = null;\n    }\n\n    return parent.removeChild(node);\n  },\n  replaceChild: function replaceChild(newChild, oldChild, parent) {\n    parent = parent || oldChild.parentNode;\n    var previousSibling = oldChild.previousSibling;\n    var nextSibling = oldChild.nextSibling;\n    this.removeChild(oldChild, parent);\n\n    if (previousSibling) {\n      this.insertAfter(newChild, previousSibling, parent);\n    } else if (nextSibling) {\n      this.insertBefore(newChild, nextSibling, parent);\n    } else {\n      this.appendChild(newChild, parent);\n    }\n  },\n  insertAfter: function insertAfter(node, after, parent) {\n    parent = parent || after.parentNode;\n    return parent.insertAfter(node, after);\n  },\n  insertBefore: function insertBefore(node, before, parent) {\n    parent = parent || before.parentNode;\n    return parent.insertBefore(node, before);\n  },\n  addEventListener: function addEventListener(node, eventName, eventHandler, props) {\n    var params = props[eventName + 'EventParams'];\n    return node.addEvent(eventName, eventHandler, params);\n  },\n  removeEventListener: function removeEventListener(node, eventName, eventHandler) {\n    return node.removeEvent(eventName, eventHandler);\n  },\n  removeAllEventListeners: function removeAllEventListeners(node) {// Noop\n  },\n  removeAttribute: function removeAttribute(node, propKey, propValue) {\n    if (propKey == ID) {\n      nodeMaps[propValue] = null;\n    } // Weex native will crash when pass null value\n\n\n    return node.setAttr(propKey, undefined, false);\n  },\n  setAttribute: function setAttribute(node, propKey, propValue) {\n    if (propKey == ID) {\n      nodeMaps[propValue] = node;\n    } // Weex only support `ariaLabel` format, convert `aria-label` format to camelcase\n\n\n    if (ARIA_PREFIX_REGEXP.test(propKey)) {\n      propKey = propKey.replace(/\\-(\\w)/, function (m, p1) {\n        return p1.toUpperCase();\n      });\n    }\n\n    return node.setAttr(propKey, propValue, false);\n  },\n  setStyles: function setStyles(node, styles) {\n    // TODO if more then one style update, call setStyles will be better performance\n    for (var key in styles) {\n      var val = styles[key];\n      val = (0, _styleUnit.convertUnit)(val, key);\n      node.setStyle(key, val);\n    }\n  },\n  beforeRender: function beforeRender() {\n    // Turn off batched updates\n    document.open(); // Init rem unit\n\n    (0, _styleUnit.setRem)(this.getDeviceWidth() / this.getViewportWidth());\n  },\n  afterRender: function afterRender() {\n    if (document.listener && document.listener.createFinish) {\n      document.listener.createFinish();\n    } // Turn on batched updates\n\n\n    document.close();\n  },\n  setNativeProps: function setNativeProps(node, props, skipSetStyles) {\n    for (var prop in props) {\n      var value = props[prop];\n\n      if (prop === CHILDREN) {\n        continue;\n      }\n\n      if (value != null) {\n        if (prop === STYLE) {\n          if (skipSetStyles) {\n            continue;\n          }\n\n          this.setStyles(node, value);\n        } else if (EVENT_PREFIX_REGEXP.test(prop)) {\n          var eventName = prop.slice(2).toLowerCase();\n          this.addEventListener(node, eventName, value, props);\n        } else {\n          this.setAttribute(node, prop, value);\n        }\n      }\n    }\n  }\n};\nvar _default = Driver;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _img = _interopRequireDefault(require(\"./img\"));\n\nvar _video = _interopRequireDefault(require(\"./video\"));\n\nvar _textarea = _interopRequireDefault(require(\"./textarea\"));\n\nvar _span = _interopRequireDefault(require(\"./span\"));\n\nvar _p = _interopRequireDefault(require(\"./p\"));\n\nvar _button = _interopRequireDefault(require(\"./button\"));\n\nvar _heading = _interopRequireDefault(require(\"./heading\"));\n\nvar _block = _interopRequireDefault(require(\"./block\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n  span: _span.default,\n  p: _p.default,\n  img: _img.default,\n  button: _button.default,\n  video: _video.default,\n  textarea: _textarea.default,\n  h1: _heading.default,\n  h2: _heading.default,\n  h3: _heading.default,\n  h4: _heading.default,\n  h5: _heading.default,\n  h6: _heading.default,\n  nav: _block.default,\n  article: _block.default,\n  section: _block.default,\n  // Conflict with weex header tag\n  // header: block,\n  footer: _block.default,\n  aside: _block.default,\n  main: _block.default\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _parseProps = require(\"../parseProps\");\n\nvar _default = {\n  /**\n   * parse w3c attrs to weex module attrs\n   *\n   * @param {Object} w3c component data\n   * @return {Object} weex component data\n   */\n  parse: function parse(component) {\n    var props = component.props;\n    component.type = 'image'; // modify props\n\n    component.props = (0, _parseProps.transformPropsAttrsToStyle)(props, ['width', 'height']);\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _parseProps = require(\"../parseProps\");\n\nvar _default = {\n  /**\n   * parse w3c attrs to weex module attrs\n   *\n   * @param {Object} w3c component data\n   * @return {Object} weex component data\n   */\n  parse: function parse(component) {\n    var props = component.props; // modify props\n\n    component.props = (0, _parseProps.transformPropsAttrsToStyle)(props, ['width', 'height']);\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _default = {\n  /**\n   * parse w3c attrs to weex module attrs\n   *\n   * @param {Object} w3c component data\n   * @return {Object} weex component data\n   */\n  parse: function parse(component) {\n    var props = component.props;\n\n    if (typeof props.children === 'string' && !props.value) {\n      props.value = props.children;\n      props.children = null;\n    }\n\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _default = {\n  parse: function parse(component) {\n    var props = component.props;\n    component.type = 'text';\n\n    if (typeof props.children === 'string' && !props.value) {\n      props.value = props.children;\n      props.children = null;\n    }\n\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar BASE_FONT_SIZE = 28;\nvar defaultParagraphStyle = {\n  fontSize: BASE_FONT_SIZE,\n  marginTop: BASE_FONT_SIZE,\n  marginBottom: BASE_FONT_SIZE\n};\nvar TypographyElements = {\n  u: {\n    textDecoration: 'underline'\n  },\n  s: {\n    textDecoration: 'line-through'\n  },\n  i: {\n    fontStyle: 'italic'\n  },\n  b: {\n    fontWeight: 'bold'\n  },\n  del: {\n    textDecoration: 'line-through'\n  },\n  em: {\n    fontStyle: 'italic'\n  },\n  strong: {\n    fontWeight: 'bold'\n  },\n  big: {\n    fontSize: BASE_FONT_SIZE * 1.2\n  },\n  small: {\n    fontSize: BASE_FONT_SIZE * 0.8\n  }\n};\n\nfunction transformString(string) {\n  return {\n    type: 'span',\n    attr: {\n      value: string\n    }\n  };\n}\n\nfunction transformChild(child) {\n  var type = child.type;\n  var props = child.props;\n  var style = props.style;\n  var nestedChildren = props.children; // Alias img tag\n\n  if (type === 'img') {\n    type = 'image';\n  } // Transfrom to span\n\n\n  if (TypographyElements[type]) {\n    style = _objectSpread({}, TypographyElements[type], style);\n    type = 'span';\n  }\n\n  props.style = null;\n  props.children = null;\n  var element = {\n    type: type,\n    style: style,\n    attr: props || {}\n  };\n\n  if (nestedChildren) {\n    if (type === 'span' && typeof nestedChildren === 'string') {\n      element.attr.value = nestedChildren;\n    } else {\n      element.children = transformChildren(nestedChildren);\n    }\n  }\n\n  return element;\n}\n\nfunction transformChildren(children) {\n  var elements = [];\n\n  if (!Array.isArray(children)) {\n    children = [children];\n  }\n\n  for (var i = 0; i < children.length; i++) {\n    var child = children[i];\n\n    if (typeof child === 'string') {\n      elements.push(transformString(child));\n    } else if (_typeof(child) === 'object') {\n      elements.push(transformChild(child));\n    }\n  }\n\n  return elements;\n}\n\nvar _default = {\n  parse: function parse(component) {\n    var props = component.props;\n    var children = props.children;\n    component.type = 'richtext';\n    props.style = _objectSpread({}, defaultParagraphStyle, props.style);\n    props.value = transformChildren(children);\n    ;\n    props.children = null;\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * weex button\n *\n * props: disabled, style\n */\nvar _default = {\n  parse: function parse(component) {\n    var props = component.props;\n    component.type = 'text';\n    var style = props.style,\n        disabled = props.disabled,\n        children = props.children;\n\n    var textStyle = _objectSpread({\n      textAlign: 'center',\n      fontSize: 22,\n      paddingTop: 4,\n      paddingRight: 12,\n      paddingBottom: 6,\n      paddingLeft: 12,\n      borderWidth: 4,\n      borderStyle: 'solid',\n      borderColor: '#000000',\n      backgroudColor: '#c0c0c0'\n    }, style);\n\n    if (disabled) {\n      props.onClick = null;\n      textStyle = _objectSpread({}, textStyle, {\n        color: '#7f7f7f',\n        borderColor: '#7f7f7f'\n      });\n    }\n\n    if (typeof children === 'string') {\n      props.value = children;\n      props.children = null;\n    }\n\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar BASE_FONT_SIZE = 28;\n\nfunction generateHeadingStyle(baseFontSize, fontMultiplier, marginMultiplier) {\n  return {\n    fontSize: baseFontSize * fontMultiplier,\n    marginTop: baseFontSize * fontMultiplier * marginMultiplier,\n    marginBottom: baseFontSize * fontMultiplier * marginMultiplier,\n    fontWeight: 'bold'\n  };\n}\n\nvar HeadingElements = {\n  h1: generateHeadingStyle(BASE_FONT_SIZE, 2, 0.67),\n  h2: generateHeadingStyle(BASE_FONT_SIZE, 1.5, 0.83),\n  h3: generateHeadingStyle(BASE_FONT_SIZE, 1.17, 1),\n  h4: generateHeadingStyle(BASE_FONT_SIZE, 1, 1.33),\n  h5: generateHeadingStyle(BASE_FONT_SIZE, 0.83, 1.67),\n  h6: generateHeadingStyle(BASE_FONT_SIZE, 0.67, 2.33)\n};\nvar _default = {\n  parse: function parse(component) {\n    var type = component.type,\n        props = component.props;\n    component.type = 'text';\n    props.style = _objectSpread({}, HeadingElements[type] || HeadingElements.h6, props.style);\n\n    if (typeof props.children === 'string' && !props.value) {\n      props.value = props.children;\n      props.children = null;\n    }\n\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _default = {\n  /**\n   * parse w3c attrs to weex module attrs\n   *\n   * @param {Object} w3c component data\n   * @return {Object} weex component data\n   */\n  parse: function parse(component) {\n    component.type = 'div';\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _styleUnit = require(\"style-unit\");\n\nvar _flexbox = _interopRequireDefault(require(\"./flexbox\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';\nvar CLASS_NAME = 'className';\nvar CLASS = 'class';\nvar STYLE = 'style';\nvar CHILDREN = 'children';\nvar EVENT_PREFIX_REGEXP = /^on[A-Z]/;\nvar SVG_NS = 'http://www.w3.org/2000/svg';\nvar ADD_EVENT = 'addEvent';\nvar REMOVE_EVENT = 'removeEvent';\nvar TEXT_CONTENT_ATTR = (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && 'textContent' in document ? 'textContent' : 'nodeValue';\nvar Driver = {\n  tagPrefix: '',\n  deviceWidth: typeof DEVICE_WIDTH !== 'undefined' && DEVICE_WIDTH || null,\n  viewportWidth: typeof VIEWPORT_WIDTH !== 'undefined' && VIEWPORT_WIDTH || 750,\n  eventRegistry: {},\n  setTagPrefix: function setTagPrefix(prefix) {\n    this.tagPrefix = prefix;\n  },\n  getDeviceWidth: function getDeviceWidth() {\n    return this.deviceWidth || document.documentElement.clientWidth;\n  },\n  setDeviceWidth: function setDeviceWidth(width) {\n    this.deviceWidth = width;\n  },\n  getViewportWidth: function getViewportWidth() {\n    return this.viewportWidth;\n  },\n  setViewportWidth: function setViewportWidth(width) {\n    this.viewportWidth = width;\n  },\n  getElementById: function getElementById(id) {\n    return document.getElementById(id);\n  },\n  createBody: function createBody() {\n    return document.body;\n  },\n  createComment: function createComment(content) {\n    return document.createComment(content);\n  },\n  createEmpty: function createEmpty() {\n    return this.createComment(' empty ');\n  },\n  createText: function createText(text) {\n    return document.createTextNode(text);\n  },\n  updateText: function updateText(node, text) {\n    node[TEXT_CONTENT_ATTR] = text;\n  },\n  // driver's flag indicating if the diff is currently within an SVG\n  isSVGMode: false,\n  createElement: function createElement(component) {\n    var parent = component._internal._parent;\n    this.isSVGMode = component.type === 'svg' || parent && parent.namespaceURI === SVG_NS;\n    var node;\n\n    if (this.isSVGMode) {\n      node = document.createElementNS(SVG_NS, component.type);\n    } else {\n      node = document.createElement(this.tagPrefix + component.type);\n    }\n\n    var props = component.props;\n    this.setNativeProps(node, props);\n    return node;\n  },\n  appendChild: function appendChild(node, parent) {\n    return parent.appendChild(node);\n  },\n  removeChild: function removeChild(node, parent) {\n    parent = parent || node.parentNode; // Maybe has been removed when remove child\n\n    if (parent) {\n      parent.removeChild(node);\n    }\n  },\n  replaceChild: function replaceChild(newChild, oldChild, parent) {\n    parent = parent || oldChild.parentNode;\n    parent.replaceChild(newChild, oldChild);\n  },\n  insertAfter: function insertAfter(node, after, parent) {\n    parent = parent || after.parentNode;\n    var nextSibling = after.nextSibling;\n\n    if (nextSibling) {\n      parent.insertBefore(node, nextSibling);\n    } else {\n      parent.appendChild(node);\n    }\n  },\n  insertBefore: function insertBefore(node, before, parent) {\n    parent = parent || before.parentNode;\n    parent.insertBefore(node, before);\n  },\n  addEventListener: function addEventListener(node, eventName, eventHandler, props) {\n    if (this.eventRegistry[eventName]) {\n      return this.eventRegistry[eventName](ADD_EVENT, node, eventName, eventHandler, props);\n    } else {\n      return node.addEventListener(eventName, eventHandler);\n    }\n  },\n  removeEventListener: function removeEventListener(node, eventName, eventHandler, props) {\n    if (this.eventRegistry[eventName]) {\n      return this.eventRegistry[eventName](REMOVE_EVENT, node, eventName, eventHandler, props);\n    } else {\n      return node.removeEventListener(eventName, eventHandler);\n    }\n  },\n  removeAllEventListeners: function removeAllEventListeners(node) {// noop\n  },\n  removeAttribute: function removeAttribute(node, propKey) {\n    if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      return node.innerHTML = null;\n    }\n\n    if (propKey === CLASS_NAME) {\n      propKey = CLASS;\n    }\n\n    if (propKey in node) {\n      try {\n        // Some node property is readonly when in strict mode\n        node[propKey] = null;\n      } catch (e) {}\n    }\n\n    node.removeAttribute(propKey);\n  },\n  setAttribute: function setAttribute(node, propKey, propValue) {\n    if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      return node.innerHTML = propValue.__html;\n    }\n\n    if (propKey === CLASS_NAME) {\n      propKey = CLASS;\n    }\n\n    if (propKey in node) {\n      try {\n        // Some node property is readonly when in strict mode\n        node[propKey] = propValue;\n      } catch (e) {\n        node.setAttribute(propKey, propValue);\n      }\n    } else {\n      node.setAttribute(propKey, propValue);\n    }\n  },\n  setStyles: function setStyles(node, styles) {\n    var tranformedStyles = {};\n\n    for (var prop in styles) {\n      var val = styles[prop];\n\n      if (_flexbox.default.isFlexProp(prop)) {\n        _flexbox.default[prop](val, tranformedStyles);\n      } else {\n        tranformedStyles[prop] = (0, _styleUnit.convertUnit)(val, prop);\n      }\n    }\n\n    for (var _prop in tranformedStyles) {\n      var transformValue = tranformedStyles[_prop]; // hack handle compatibility issue\n\n      if (Array.isArray(transformValue)) {\n        for (var i = 0; i < transformValue.length; i++) {\n          node.style[_prop] = transformValue[i];\n        }\n      } else {\n        node.style[_prop] = transformValue;\n      }\n    }\n  },\n  beforeRender: function beforeRender() {\n    // Init rem unit\n    (0, _styleUnit.setRem)(this.getDeviceWidth() / this.getViewportWidth());\n  },\n  setNativeProps: function setNativeProps(node, props) {\n    for (var prop in props) {\n      var value = props[prop];\n\n      if (prop === CHILDREN) {\n        continue;\n      }\n\n      if (value != null) {\n        if (prop === STYLE) {\n          this.setStyles(node, value);\n        } else if (EVENT_PREFIX_REGEXP.test(prop)) {\n          var eventName = prop.slice(2).toLowerCase();\n          this.addEventListener(node, eventName, value);\n        } else {\n          this.setAttribute(node, prop, value);\n        }\n      }\n    }\n  }\n};\nvar _default = Driver;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar BOX_ALIGN = {\n  stretch: 'stretch',\n  'flex-start': 'start',\n  'flex-end': 'end',\n  center: 'center'\n};\nvar BOX_ORIENT = {\n  row: 'horizontal',\n  column: 'vertical'\n};\nvar BOX_PACK = {\n  'flex-start': 'start',\n  'flex-end': 'end',\n  center: 'center',\n  'space-between': 'justify',\n  'space-around': 'justify' // Just same as `space-between`\n\n};\nvar FLEX_PROPS = {\n  display: true,\n  flex: true,\n  alignItems: true,\n  alignSelf: true,\n  flexDirection: true,\n  justifyContent: true,\n  flexWrap: true\n};\nvar Flexbox = {\n  isFlexProp: function isFlexProp(prop) {\n    return FLEX_PROPS[prop];\n  },\n  display: function display(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    if (value === 'flex') {\n      style.display = ['-webkit-box', '-webkit-flex', 'flex'];\n    } else {\n      style.display = value;\n    }\n\n    return style;\n  },\n  flex: function flex(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    style.webkitBoxFlex = value;\n    style.webkitFlex = value;\n    style.flex = value;\n    return style;\n  },\n  flexWrap: function flexWrap(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    style.webkitFlexWrap = value;\n    style.flexWrap = value;\n    return style;\n  },\n  alignItems: function alignItems(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    style.webkitBoxAlign = BOX_ALIGN[value];\n    style.webkitAlignItems = value;\n    style.alignItems = value;\n    return style;\n  },\n  alignSelf: function alignSelf(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    style.webkitAlignSelf = value;\n    style.alignSelf = value;\n    return style;\n  },\n  flexDirection: function flexDirection(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    style.webkitBoxOrient = BOX_ORIENT[value];\n    style.webkitFlexDirection = value;\n    style.flexDirection = value;\n    return style;\n  },\n  justifyContent: function justifyContent(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    style.webkitBoxPack = BOX_PACK[value];\n    style.webkitJustifyContent = value;\n    style.justifyContent = value;\n    return style;\n  }\n};\nvar _default = Flexbox;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _render = _interopRequireDefault(require(\"./render\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction hydrate(element, container, options, callback) {\n  // Handle server rendered element\n  if (container.childNodes) {\n    // Clone childNodes, Because removeChild will causing change in childNodes length\n    var childNodes = _toConsumableArray(container.childNodes);\n\n    for (var i = 0; i < childNodes.length; i++) {\n      var rootChildNode = childNodes[i];\n      container.removeChild(rootChildNode);\n    }\n  }\n\n  return (0, _render.default)(element, container, options, callback);\n  ;\n}\n\nvar _default = hydrate;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = createPortal;\n\nvar _component = _interopRequireDefault(require(\"./component\"));\n\nvar _render = _interopRequireDefault(require(\"./render\"));\n\nvar _unmountComponentAtNode = _interopRequireDefault(require(\"./unmountComponentAtNode\"));\n\nvar _element = require(\"./element\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Portal =\n/*#__PURE__*/\nfunction (_Component) {\n  _inherits(Portal, _Component);\n\n  function Portal(props, context) {\n    _classCallCheck(this, Portal);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Portal).call(this, props, context));\n  }\n\n  _createClass(Portal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.renderPortal();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (prevProps.container !== this.props.container) {\n        (0, _unmountComponentAtNode.default)(prevProps.container);\n      }\n\n      this.renderPortal();\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      (0, _unmountComponentAtNode.default)(this.props.container);\n    }\n  }, {\n    key: \"renderPortal\",\n    value: function renderPortal() {\n      (0, _render.default)(this.props.element, this.props.container, {\n        parent: this\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return null;\n    }\n  }]);\n\n  return Portal;\n}(_component.default);\n\nfunction createPortal(element, container) {\n  return (0, _element.createElement)(Portal, {\n    element: element,\n    container: container\n  });\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _instance = _interopRequireDefault(require(\"./vdom/instance\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction findComponentInstance(node) {\n  if (node == null) {\n    return null;\n  }\n\n  return _instance.default.get(node);\n}\n\nvar _default = findComponentInstance;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = setNativeProps;\n\nvar _host = _interopRequireDefault(require(\"./vdom/host\"));\n\nvar _findDOMNode = _interopRequireDefault(require(\"./findDOMNode\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction setNativeProps(node, props) {\n  node = (0, _findDOMNode.default)(node);\n\n  _host.default.driver.setNativeProps(node, props);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _default = '0.6.5';\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _flattenChildren = _interopRequireDefault(require(\"./flattenChildren\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction convertChildrenToArray(children) {\n  // flatten children\n  children = (0, _flattenChildren.default)(children, []);\n  return Array.isArray(children) ? children : [].concat(children);\n}\n\nvar Children = {\n  map: function map(children, fn, ctx) {\n    if (children == null) return null;\n    children = convertChildrenToArray(children);\n    return children.map(function (child, index) {\n      return fn.call(ctx, child, index);\n    });\n  },\n  forEach: function forEach(children, fn, ctx) {\n    if (children == null) return null;\n    children = convertChildrenToArray(children);\n    children.forEach(function (child, index) {\n      return fn.call(ctx, child, index);\n    });\n  },\n  count: function count(children) {\n    if (children == null) return 0;\n    return convertChildrenToArray(children).length;\n  },\n  only: function only(children) {\n    // `only` receive rax element child\n    // null value is not acceptable\n    children = Children.toArray(children);\n    if (children.length !== 1) throw new Error('Children.only: expected to receive a single element child.');\n    return children[0];\n  },\n  toArray: function toArray(children) {\n    if (children == null) return []; // `toArray` filter null value\n\n    return convertChildrenToArray(children).filter(function (child) {\n      return child !== null;\n    });\n  }\n};\nvar _default = Children;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = createContext;\n\nvar _component = _interopRequireDefault(require(\"./component\"));\n\nvar _proptypes = _interopRequireDefault(require(\"./proptypes\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar ValueEmitter =\n/*#__PURE__*/\nfunction () {\n  function ValueEmitter(defaultValue) {\n    _classCallCheck(this, ValueEmitter);\n\n    this.handlers = [];\n    this.value = defaultValue;\n  }\n\n  _createClass(ValueEmitter, [{\n    key: \"on\",\n    value: function on(handler) {\n      this.handlers.push(handler);\n    }\n  }, {\n    key: \"off\",\n    value: function off(handler) {\n      this.handlers = this.handlers.filter(function (h) {\n        return h !== handler;\n      });\n    }\n  }, {\n    key: \"emit\",\n    value: function emit(value) {\n      this.value = value;\n      this.handlers.forEach(function (handler) {\n        return handler(value);\n      });\n    }\n  }]);\n\n  return ValueEmitter;\n}();\n\nvar uniqueId = 0;\n\nfunction createContext(defaultValue) {\n  var contextProp = '__context_' + uniqueId++ + '__';\n\n  var Provider =\n  /*#__PURE__*/\n  function (_Component) {\n    _inherits(Provider, _Component);\n\n    function Provider() {\n      var _getPrototypeOf2;\n\n      var _this;\n\n      _classCallCheck(this, Provider);\n\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Provider)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"emitter\", new ValueEmitter(defaultValue));\n\n      return _this;\n    }\n\n    _createClass(Provider, [{\n      key: \"getChildContext\",\n      value: function getChildContext() {\n        return _defineProperty({}, contextProp, this.emitter);\n      }\n    }, {\n      key: \"componentWillMount\",\n      value: function componentWillMount() {\n        if (this.props.value !== undefined) {\n          this.emitter.value = this.props.value;\n        }\n      }\n    }, {\n      key: \"componentWillReceiveProps\",\n      value: function componentWillReceiveProps(nextProps) {\n        if (this.props.value !== nextProps.value) {\n          this.emitter.emit(nextProps.value);\n        }\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        return this.props.children;\n      }\n    }]);\n\n    return Provider;\n  }(_component.default);\n\n  _defineProperty(Provider, \"childContextTypes\", _defineProperty({}, contextProp, _proptypes.default.object));\n\n  var Consumer =\n  /*#__PURE__*/\n  function (_Component2) {\n    _inherits(Consumer, _Component2);\n\n    function Consumer() {\n      var _getPrototypeOf3;\n\n      var _this2;\n\n      _classCallCheck(this, Consumer);\n\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      _this2 = _possibleConstructorReturn(this, (_getPrototypeOf3 = _getPrototypeOf(Consumer)).call.apply(_getPrototypeOf3, [this].concat(args)));\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), \"state\", {\n        value: _this2.context[contextProp] ? _this2.context[contextProp].value : defaultValue\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), \"onUpdate\", function (value) {\n        return _this2.setState({\n          value: value\n        });\n      });\n\n      return _this2;\n    }\n\n    _createClass(Consumer, [{\n      key: \"componentDidMount\",\n      value: function componentDidMount() {\n        if (this.context[contextProp]) {\n          this.context[contextProp].on(this.onUpdate);\n        }\n      }\n    }, {\n      key: \"componentWillUnmount\",\n      value: function componentWillUnmount() {\n        if (this.context[contextProp]) {\n          this.context[contextProp].off(this.onUpdate);\n        }\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        var children = this.props.children;\n        var consumer = Array.isArray(children) ? children[0] : children;\n\n        if (typeof consumer === 'function') {\n          return consumer(this.state.value);\n        }\n      }\n    }]);\n\n    return Consumer;\n  }(_component.default);\n\n  _defineProperty(Consumer, \"contextTypes\", _defineProperty({}, contextProp, _proptypes.default.object));\n\n  return {\n    Provider: Provider,\n    Consumer: Consumer\n  };\n}\n\nmodule.exports = exports[\"default\"];"],"sourceRoot":""}