{"version":3,"sources":["webpack:///webpack/bootstrap 39e7c35eabf7a60f436c","webpack:///./packages/web-rax-framework/src/index.js","webpack:///./packages/runtime-shared/dist/promise.module.js","webpack:///./packages/web-rax-framework/src/object.js","webpack:///./packages/web-rax-framework/src/array.js","webpack:///./packages/web-rax-framework/~/whatwg-fetch/fetch.js","webpack:///./packages/web-rax-framework/~/raf/polyfill.js","webpack:///./packages/web-rax-framework/~/raf/index.js","webpack:///./packages/web-rax-framework/~/performance-now/lib/performance-now.js","webpack:///./packages/runtime-shared/dist/fontface.module.js","webpack:///./packages/runtime-shared/dist/url.module.js","webpack:///./packages/runtime-shared/dist/url-search-params.module.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/rax/lib/index.js","webpack:///./packages/rax/lib/element.js","webpack:///./packages/rax/lib/vdom/host.js","webpack:///./packages/universal-env/lib/index.js","webpack:///./packages/rax/lib/driver.js","webpack:///./packages/rax/lib/drivers/weex.js","webpack:///./packages/rax/lib/setNativeProps.js","webpack:///./packages/rax/lib/findDOMNode.js","webpack:///./packages/rax/lib/style/unit.js","webpack:///./packages/rax/lib/drivers/browser.js","webpack:///./packages/rax/lib/style/flexbox.js","webpack:///./packages/rax/lib/debug/devtools.js","webpack:///./packages/rax/lib/debug/hook.js","webpack:///./packages/rax/lib/vdom/instance.js","webpack:///./packages/rax/lib/unmountComponentAtNode.js","webpack:///./packages/rax/lib/vdom/instantiateComponent.js","webpack:///./packages/rax/lib/vdom/shouldUpdateComponent.js","webpack:///./packages/rax/lib/vdom/root.js","webpack:///./packages/rax/lib/component.js","webpack:///./packages/rax/lib/purecomponent.js","webpack:///./packages/rax/lib/proptypes.js","webpack:///./packages/rax/lib/render.js","webpack:///./packages/rax/lib/vdom/injectComponent.js","webpack:///./packages/rax/lib/vdom/empty.js","webpack:///./packages/rax/lib/vdom/native.js","webpack:///./packages/rax/lib/vdom/ref.js","webpack:///./packages/rax/lib/vdom/getElementKeyName.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/rax/lib/findComponentInstance.js","webpack:///./packages/rax/lib/version.js"],"names":["global","window","Promise","require","FontFace","document","fonts","add","family","source","fontFaceRule","styleElement","createElement","innerHTML","head","appendChild","URL","URLSearchParams","define","req","exports","module","Object","assign","target","sources","nextIndex","arguments","length","nextSource","key","hasOwnProperty","prototype","entries","object","TypeError","call","push","values","defineProperties","descriptors","property","defineProperty","setPrototypeOf","magic","set","O","proto","getOwnPropertyDescriptor","e","__proto__","polyfill","is","x","y","Array","from","toStr","toString","isCallable","fn","toInteger","value","number","Number","isNaN","isFinite","Math","floor","abs","maxSafeInteger","pow","toLength","len","min","max","arrayLike","C","items","mapFn","undefined","T","A","k","kValue","modules","inGuard","def","id","deps","factory","Function","isInitialized","hasError","indexOf","originId","mod","requireImpl","ErrorUtils","returnValue","apply","reportFatalError","Error","instance","appear","instances","createEvent","injectEventListenerHook","container","control","config","nativeAddEventListener","Node","addEventListener","nativeRemoveEventListener","removeEventListener","eventName","eventHandler","useCapture","isNotWatch","lowerCaseEventName","toLowerCase","check","forEach","index","__handle","appearWatchElements","splice","getOffset","pushElement","offsetTop","appearEvt","disappearEvt","_appearDoms","AppearRegistry","initEvent","elements","current","options","wait","cls","once","onReset","onAppear","onDisappear","initConfig","opts","extend","getElements","bindEvent","el","element","offset","type","getBoundingClientRect","top","right","bottom","left","slice","raf","calculate","containerOffset","isOnce","ev","ele","i","_hasAppear","checkEveryDom","cacheAppearEvt","cacheDisappearEvt","pos","eleOffset","direction","getDirection","_eleOffset","isInView","inViewport","_appear","_hasDisAppear","dispatchEvent","handle","throttle","beforeOffset","nowOffset","horizental","vertical","requestAnimationFrame","webkitRequestAnimationFrame","c","setTimeout","context","args","result","timeout","previous","later","Date","now","remaining","clearTimeout","param","l","r","b","t","innerWidth","innerHeight","node","appended","getAttribute","getDriver","setDriver","version","setNativeProps","findComponentInstance","unmountComponentAtNode","findDOMNode","render","PropTypes","PureComponent","Component","createFactory","isValidElement","cloneElement","_element","enumerable","get","_driver","_component","_component2","_interopRequireDefault","_purecomponent","_purecomponent2","_proptypes","_proptypes2","_render2","_render3","_findDOMNode2","_findDOMNode3","_unmountComponentAtNode2","_unmountComponentAtNode3","_findComponentInstance2","_findComponentInstance3","_setNativeProps2","_setNativeProps3","_version2","_version3","obj","__esModule","default","_typeof","Symbol","iterator","constructor","_host","_host2","_universalEnv","RESERVED_PROPS","ref","getRenderErrorInfo","component","name","getName","Element","props","owner","filterProps","_owner","traverseChildren","children","isArray","flattenChildren","flattenStyle","style","computedStyle","isWeex","join","propName","String","_len","_key","defaultProps","bind","_len2","_key2","driver","mountID","sandbox","rootComponents","rootInstances","isWeb","navigator","appCodeName","product","isNode","process","versions","callNative","isReactNative","__fbBatchedBridgeConfig","injectDriver","_weex","_weex2","_browser","_browser2","_setNativeProps","_unit","STYLE","ID","TEXT","FULL_WIDTH_REM","DOCUMENT_FRAGMENT_NODE","nodeMaps","__weex_document__","Driver","getElementById","getChildNodes","createBody","open","body","documentElement","createFragment","nodeType","childNodes","createComment","content","createEmpty","createText","text","updateText","setAttribute","events","originStyle","prop","convertUnit","parent","_this","map","child","removeChild","attr","replaceChild","newChild","oldChild","previousSibling","nextSibling","insertAfter","insertBefore","after","_this2","before","_this3","addEvent","removeEvent","removeAllEventListeners","removeAttribute","propKey","propValue","setAttr","setStyles","styles","val","setStyle","beforeRender","setRem","getWindowWidth","afterRender","listener","createFinish","close","_findDOMNode","CHILDREN","disableSetStyles","substring","ownerDocument","_nativeNode","internal","_internal","_renderedComponent","isRem","calcRem","getRem","isUnitNumber","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","SUFFIX","REM_REG","defaultRem","str","rem","replace","remValue","parseFloat","_flexbox","_flexbox2","DANGEROUSLY_SET_INNER_HTML","createDocumentFragment","createTextNode","textContentAttr","parentNode","nodeName","__html","isFlexProp","clientWidth","BOX_ALIGN","stretch","center","BOX_ORIENT","row","column","BOX_PACK","FLEX_PROPS","display","alignItems","alignSelf","flexDirection","justifyContent","flexWrap","Flexbox","webkitBoxFlex","webkitFlex","webkitBoxAlign","webkitAlignItems","webkitAlignSelf","webkitBoxOrient","webkitFlexDirection","webkitBoxPack","webkitJustifyContent","_hook","_hook2","__REACT_DEVTOOLS_GLOBAL_HOOK__","inject","_instance","_instance2","ComponentTree","getClosestInstanceFromNode","getNodeFromInstance","inst","Mount","_instancesByReactRootID","_renderNewRootComponent","Reconciler","mountComponent","receiveComponent","unmountComponent","_unmountComponentAtNode","_instantiateComponent","_instantiateComponent2","_shouldUpdateComponent","_shouldUpdateComponent2","_root","_root2","KEY","rootID","remove","prevRootInstance","hasPrevRootInstance","isRootComponent","prevRenderedComponent","getRenderedComponent","prevElement","_currentElement","prevUnmaskedContext","_context","updateComponent","wrappedElement","renderedComponent","defaultContext","rootInstance","instantiateComponent","EmptyComponent","FragmentComponent","NativeComponent","CompositeComponent","TextComponent","JSON","stringify","_mountIndex","shouldUpdateComponent","nextElement","prevEmpty","nextEmpty","prevType","nextType","_createClass","descriptor","configurable","writable","Constructor","protoProps","staticProps","_classCallCheck","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","rootCounter","Root","_Component","_ref","_temp","_ret","getPrototypeOf","concat","getPublicInstance","updater","refs","isComponentClass","setState","partialState","callback","forceUpdate","isPureComponentClass","createChainableTypeChecker","validate","checkType","isRequired","componentName","location","propFullName","chainedCheckType","createTypeChecker","expectedType","typeChecker","array","bool","func","string","symbol","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","_injectComponent","_injectComponent2","rootComponent","injectComponent","_empty","_empty2","_native","_native2","_text","_text2","_composite","_composite2","_fragment","_fragment2","childMounter","_parent","nativeNode","getNativeNode","shouldNotRemoveChild","_ref2","_getElementKeyName","_getElementKeyName2","TREE","_mountID","appendType","append","_prevStyleCopy","attach","mountChildren","renderedChildren","renderedChildrenImage","renderedChild","mountImage","_renderedChildren","unmountChildren","detach","prevContext","nextContext","update","prevProps","nextProps","updateProperties","updateChildren","styleName","styleUpdates","lastStyle","nextProp","prevProp","nextChildrenElements","prevChildren","nextChildren","oldNodes","prevChild","_name","_prevChild","lastIndex","lastPlacedNode","_loop","_name2","nextChild","currentNode","_ret2","prevRef","nextRef","ownerComponent","elementKey","hasKey","defaultName","keyName","keyUnique","console","warn","_stringText","_stateless","_stateless2","_updater","_updater2","_shallowEqual","_shallowEqual2","performInSandbox","handleError","displayName","_updateCount","publicProps","isStatelessClasss","publicContext","_processContext","renderedElement","initialState","state","componentWillMount","_processPendingState","_processChildContext","componentDidMount","componentWillUnmount","_pendingStateQueue","_pendingForceUpdate","contextTypes","maskedContext","contextName","currentContext","childContext","getChildContext","queue","nextState","partial","nextUnmaskedContext","error","willReceive","componentWillReceiveProps","_pendingState","shouldUpdate","prevState","shouldComponentUpdate","componentWillUpdate","_updateRenderedComponent","componentDidUpdate","prevRenderedElement","nextRenderedElement","StatelessComponent","pureRender","enqueueCallback","callbackQueue","_pendingCallbacks","enqueueState","stateQueue","Updater","runUpdate","callbacks","shallowEqual","objA","objB","keysA","keys","keysB","_NativeComponent","fragment"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;ACtCA,KAAMA,SAASC,MAAf;;AAEA;AACA,KAAI,CAACD,OAAOE,OAAZ,EAAqB;AACnBF,UAAOE,OAAP,GAAiB,mBAAAC,CAAQ,CAAR,CAAjB;AACD;AACD,oBAAAA,CAAQ,CAAR;AACA,oBAAAA,CAAQ,CAAR;;AAEA;AACA,oBAAAA,CAAQ,CAAR;AACA,oBAAAA,CAAQ,CAAR;;AAEA,KAAI,CAACH,OAAOI,QAAZ,EAAsB;AACpBJ,UAAOI,QAAP,GAAkB,mBAAAD,CAAQ,CAAR,CAAlB;AACD;;AAED,KAAI,CAACE,SAASC,KAAd,EAAqB;AACnBD,YAASC,KAAT,GAAiB;AACfC,UAAK,aAASC,MAAT,EAAiBC,MAAjB,EAAyB;AAC5B,WAAIC,uDACaF,MADb,wBAEKC,MAFL,cAAJ;;AAKA,WAAIE,eAAeN,SAASO,aAAT,CAAuB,OAAvB,CAAnB;AACAD,oBAAaE,SAAb,GAAyBH,YAAzB;AACAL,gBAASS,IAAT,CAAcC,WAAd,CAA0BJ,YAA1B;AACD;AAVc,IAAjB;AAYD;;AAGD,KAAI,CAACX,OAAOgB,GAAZ,EAAiB;AACfhB,UAAOgB,GAAP,GAAa,mBAAAb,CAAQ,CAAR,CAAb;AACD;;AAED,KAAI,CAACH,OAAOiB,eAAZ,EAA6B;AAC3BjB,UAAOiB,eAAP,GAAyB,mBAAAd,CAAQ,EAAR,CAAzB;AACD;;AAED;AACA,oBAAAA,CAAQ,EAAR;;AAEA;AACA,oBAAAA,CAAQ,EAAR;;AAEA;AACAH,QAAOkB,MAAP,CAAc,KAAd,EAAqB,UAASC,GAAT,EAAcC,OAAd,EAAuBC,MAAvB,EAA+B;AAClDA,UAAOD,OAAP,GAAiB,mBAAAjB,CAAQ,EAAR,CAAjB;AACD,EAFD,E;;;;;;AChDA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;;AAEA;;AAEA,sGAAqG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE3Q;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,gEAA+D;AAC/D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;;AAEA,iDAAgD,SAAS;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA,OAAM;AACN,KAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ;AACR;AACA;AACA;;AAEA,qBAAoB,iBAAiB;AACrC;AACA;AACA,KAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;AAC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A;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;;AAEP,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAwC,mBAAmB;AAC3D;AACA;;AAEA;AACA;AACA,mCAAkC,oBAAoB;AACtD;AACA;;AAEA;AACA;AACA,yCAAwC,4BAA4B;AACpE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA,wDAAuD;AACvD,UAAS;AACT;AACA,UAAS;AACT,+EAA8E;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA8B,uBAAuB;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA,wCAAuC,0BAA0B;AACjE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,gCAA+B,0BAA0B,eAAe;AACxE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAO;;AAEP;AACA,MAAK;AACL;AACA;AACA,EAAC;;;;;;;ACzcD;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAc,4BAA4B;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAsB,eAAe;AACrC;AACA;AACA;AACA,cAAa;AACb,sCAAqC,UAAU;AAC/C;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA,mBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,EAAC;;;;;;;AC/BD,+CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;;AAEA;;AAEA,mDAAkD,0CAA0C,0DAA0D,EAAE;;AAExJ;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,yC;;;;;;AC7DA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA,WAAU;AACV;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAqC;AACrC,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA,aAAY;AACZ;AACA,aAAY;AACZ;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA,WAAU;AACV;AACA,WAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA,WAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA,aAAY;AACZ;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA,WAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oC;;;;;;AC9lBA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;;AAEA;;AAEA,kCAAiC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEljB,mDAAkD,0CAA0C,0DAA0D,EAAE;;AAExJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4FAA2F,YAAY;AACvG;AACA;AACA;AACA;AACA,SAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ;AACR;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA,KAAI;AACJ;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","file":"framework.web.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\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 39e7c35eabf7a60f436c","const global = window;\n\n// ES\nif (!global.Promise) {\n  global.Promise = require('runtime-shared/dist/promise.module');\n}\nrequire('./object');\nrequire('./array');\n\n// W3C\nrequire('whatwg-fetch');\nrequire('raf/polyfill');\n\nif (!global.FontFace) {\n  global.FontFace = require('runtime-shared/dist/fontface.module');\n}\n\nif (!document.fonts) {\n  document.fonts = {\n    add: function(family, source) {\n      let fontFaceRule = `@font-face {\n        font-family: ${family};\n        src: ${source}\n      }`;\n\n      let styleElement = document.createElement('style');\n      styleElement.innerHTML = fontFaceRule;\n      document.head.appendChild(styleElement);\n    }\n  };\n}\n\n\nif (!global.URL) {\n  global.URL = require('runtime-shared/dist/url.module');\n}\n\nif (!global.URLSearchParams) {\n  global.URLSearchParams = require('runtime-shared/dist/url-search-params.module');\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\n\n\n// WEBPACK FOOTER //\n// ./packages/web-rax-framework/src/index.js","module.exports = /******/ (function(modules) { // webpackBootstrap\n/******/ \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/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\t/* eslint no-extend-native: \"off\" */\n\t\n\tfunction noop() {}\n\t\n\t// Use polyfill for setImmediate for performance gains\n\tvar asap = typeof setImmediate === 'function' && setImmediate || function (fn) {\n\t  if (typeof setTimeout === 'function') {\n\t    setTimeout(fn, 0);\n\t  } else {\n\t    fn();\n\t  }\n\t};\n\t\n\tvar onUnhandledRejection = function onUnhandledRejection(err) {\n\t  if (typeof console !== 'undefined' && console) {\n\t    console.log('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n\t  }\n\t};\n\t\n\t// Polyfill for Function.prototype.bind\n\tfunction bind(fn, thisArg) {\n\t  return function () {\n\t    fn.apply(thisArg, arguments);\n\t  };\n\t}\n\t\n\tfunction Promise(fn) {\n\t  if (_typeof(this) !== 'object') throw new TypeError('Promises must be constructed via new');\n\t  if (typeof fn !== 'function') throw new TypeError('Promise resolver is not a function');\n\t  this._state = 0;\n\t  this._handled = false;\n\t  this._value = undefined;\n\t  this._deferreds = [];\n\t\n\t  doResolve(fn, this);\n\t}\n\t\n\tfunction handle(self, deferred) {\n\t  while (self._state === 3) {\n\t    self = self._value;\n\t  }\n\t  if (self._state === 0) {\n\t    self._deferreds.push(deferred);\n\t    return;\n\t  }\n\t  self._handled = true;\n\t  asap(function () {\n\t    var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n\t    if (cb === null) {\n\t      (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n\t      return;\n\t    }\n\t    var ret;\n\t    try {\n\t      ret = cb(self._value);\n\t    } catch (e) {\n\t      reject(deferred.promise, e);\n\t      return;\n\t    }\n\t    resolve(deferred.promise, ret);\n\t  });\n\t}\n\t\n\tfunction resolve(self, newValue) {\n\t  try {\n\t    // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n\t    if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.');\n\t    if (newValue && ((typeof newValue === 'undefined' ? 'undefined' : _typeof(newValue)) === 'object' || typeof newValue === 'function')) {\n\t      var then = newValue.then;\n\t      if (newValue instanceof Promise) {\n\t        self._state = 3;\n\t        self._value = newValue;\n\t        finale(self);\n\t        return;\n\t      } else if (typeof then === 'function') {\n\t        doResolve(bind(then, newValue), self);\n\t        return;\n\t      }\n\t    }\n\t    self._state = 1;\n\t    self._value = newValue;\n\t    finale(self);\n\t  } catch (e) {\n\t    reject(self, e);\n\t  }\n\t}\n\t\n\tfunction reject(self, newValue) {\n\t  self._state = 2;\n\t  self._value = newValue;\n\t  finale(self);\n\t}\n\t\n\tfunction finale(self) {\n\t  if (self._state === 2 && self._deferreds.length === 0) {\n\t    asap(function () {\n\t      if (!self._handled) {\n\t        onUnhandledRejection(self._value);\n\t      }\n\t    });\n\t  }\n\t\n\t  for (var i = 0, len = self._deferreds.length; i < len; i++) {\n\t    handle(self, self._deferreds[i]);\n\t  }\n\t  self._deferreds = null;\n\t}\n\t\n\tfunction Handler(onFulfilled, onRejected, promise) {\n\t  this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n\t  this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n\t  this.promise = promise;\n\t}\n\t\n\t/**\n\t * Take a potentially misbehaving resolver function and make sure\n\t * onFulfilled and onRejected are only called once.\n\t *\n\t * Makes no guarantees about asynchrony.\n\t */\n\tfunction doResolve(fn, self) {\n\t  var done = false;\n\t  try {\n\t    fn(function (value) {\n\t      if (done) return;\n\t      done = true;\n\t      resolve(self, value);\n\t    }, function (reason) {\n\t      if (done) return;\n\t      done = true;\n\t      reject(self, reason);\n\t    });\n\t  } catch (ex) {\n\t    if (done) return;\n\t    done = true;\n\t    reject(self, ex);\n\t  }\n\t}\n\t\n\tPromise.prototype.catch = function (onRejected) {\n\t  return this.then(null, onRejected);\n\t};\n\t\n\tPromise.prototype.then = function (onFulfilled, onRejected) {\n\t  var prom = new this.constructor(noop);\n\t\n\t  handle(this, new Handler(onFulfilled, onRejected, prom));\n\t  return prom;\n\t};\n\t\n\tPromise.all = function (arr) {\n\t  var args = Array.prototype.slice.call(arr);\n\t\n\t  return new Promise(function (resolve, reject) {\n\t    if (args.length === 0) return resolve([]);\n\t    var remaining = args.length;\n\t\n\t    function res(i, val) {\n\t      try {\n\t        if (val && ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' || typeof val === 'function')) {\n\t          var then = val.then;\n\t          if (typeof then === 'function') {\n\t            then.call(val, function (val) {\n\t              res(i, val);\n\t            }, reject);\n\t            return;\n\t          }\n\t        }\n\t        args[i] = val;\n\t        if (--remaining === 0) {\n\t          resolve(args);\n\t        }\n\t      } catch (ex) {\n\t        reject(ex);\n\t      }\n\t    }\n\t\n\t    for (var i = 0; i < args.length; i++) {\n\t      res(i, args[i]);\n\t    }\n\t  });\n\t};\n\t\n\tPromise.resolve = function (value) {\n\t  if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.constructor === Promise) {\n\t    return value;\n\t  }\n\t\n\t  return new Promise(function (resolve) {\n\t    resolve(value);\n\t  });\n\t};\n\t\n\tPromise.reject = function (value) {\n\t  return new Promise(function (resolve, reject) {\n\t    reject(value);\n\t  });\n\t};\n\t\n\tPromise.race = function (values) {\n\t  return new Promise(function (resolve, reject) {\n\t    for (var i = 0, len = values.length; i < len; i++) {\n\t      values[i].then(resolve, reject);\n\t    }\n\t  });\n\t};\n\t\n\t/**\n\t * Set the immediate function to execute callbacks\n\t * @param fn {function} Function to execute\n\t * @private\n\t */\n\tPromise._setImmediateFn = function _setImmediateFn(fn) {\n\t  asap = fn;\n\t};\n\t\n\tPromise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {\n\t  onUnhandledRejection = fn;\n\t};\n\t\n\tmodule.exports = Promise;\n\n/***/ }\n/******/ ]);\n//# sourceMappingURL=promise.module.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/runtime-shared/dist/promise.module.js\n// module id = 1\n// module chunks = 0 1","// 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\n\n\n// WEBPACK FOOTER //\n// ./packages/web-rax-framework/src/object.js","// 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\n\n\n// WEBPACK FOOTER //\n// ./packages/web-rax-framework/src/array.js","(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\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 (typeof input === 'string') {\n      this.url = input\n    } else {\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    }\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    rawHeaders.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 = 'status' in options ? options.status : 200\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      }\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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/web-rax-framework/~/whatwg-fetch/fetch.js\n// module id = 4\n// module chunks = 0 1","require('./').polyfill()\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/web-rax-framework/~/raf/polyfill.js\n// module id = 5\n// module chunks = 0 1","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() {\n  root.requestAnimationFrame = raf\n  root.cancelAnimationFrame = caf\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/web-rax-framework/~/raf/index.js\n// module id = 6\n// module chunks = 0 1","// Generated by CoffeeScript 1.7.1\n(function() {\n  var getNanoSeconds, hrtime, loadTime;\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() - loadTime) / 1e6;\n    };\n    hrtime = process.hrtime;\n    getNanoSeconds = function() {\n      var hr;\n      hr = hrtime();\n      return hr[0] * 1e9 + hr[1];\n    };\n    loadTime = getNanoSeconds();\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\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/web-rax-framework/~/performance-now/lib/performance-now.js\n// module id = 7\n// module chunks = 0 1","module.exports = /******/ (function(modules) { // webpackBootstrap\n/******/ \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/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar FontFace = function FontFace(family, source) {\n\t  _classCallCheck(this, FontFace);\n\t\n\t  this.family = family;\n\t  this.source = source;\n\t};\n\t\n\tmodule.exports = FontFace;\n\n/***/ }\n/******/ ]);\n//# sourceMappingURL=fontface.module.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/runtime-shared/dist/fontface.module.js\n// module id = 8\n// module chunks = 0 1","module.exports = /******/ (function(modules) { // webpackBootstrap\n/******/ \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/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t// https://github.com/Polymer/URL\n\t\n\tvar relative = Object.create(null);\n\trelative.ftp = 21;\n\trelative.file = 0;\n\trelative.gopher = 70;\n\trelative.http = 80;\n\trelative.https = 443;\n\trelative.ws = 80;\n\trelative.wss = 443;\n\t\n\tvar relativePathDotMapping = Object.create(null);\n\trelativePathDotMapping['%2e'] = '.';\n\trelativePathDotMapping['.%2e'] = '..';\n\trelativePathDotMapping['%2e.'] = '..';\n\trelativePathDotMapping['%2e%2e'] = '..';\n\t\n\tfunction isRelativeScheme(scheme) {\n\t  return relative[scheme] !== undefined;\n\t}\n\t\n\tfunction invalid() {\n\t  clear.call(this);\n\t  this._isInvalid = true;\n\t}\n\t\n\tfunction IDNAToASCII(h) {\n\t  if ('' == h) {\n\t    invalid.call(this);\n\t  }\n\t  // XXX\n\t  return h.toLowerCase();\n\t}\n\t\n\tfunction percentEscape(c) {\n\t  var unicode = c.charCodeAt(0);\n\t  if (unicode > 0x20 && unicode < 0x7F &&\n\t  // \" # < > ? `\n\t  [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) == -1) {\n\t    return c;\n\t  }\n\t  return encodeURIComponent(c);\n\t}\n\t\n\tfunction percentEscapeQuery(c) {\n\t  // XXX This actually needs to encode c using encoding and then\n\t  // convert the bytes one-by-one.\n\t\n\t  var unicode = c.charCodeAt(0);\n\t  if (unicode > 0x20 && unicode < 0x7F &&\n\t  // \" # < > ` (do not escape '?')\n\t  [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) == -1) {\n\t    return c;\n\t  }\n\t  return encodeURIComponent(c);\n\t}\n\t\n\tvar EOF = undefined,\n\t    ALPHA = /[a-zA-Z]/,\n\t    ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n\t\n\tfunction parse(input, stateOverride, base) {\n\t  function err(message) {\n\t    errors.push(message);\n\t  }\n\t\n\t  var state = stateOverride || 'scheme start',\n\t      cursor = 0,\n\t      buffer = '',\n\t      seenAt = false,\n\t      seenBracket = false,\n\t      errors = [];\n\t\n\t  loop: while ((input[cursor - 1] != EOF || cursor == 0) && !this._isInvalid) {\n\t    var c = input[cursor];\n\t    switch (state) {\n\t      case 'scheme start':\n\t        if (c && ALPHA.test(c)) {\n\t          buffer += c.toLowerCase(); // ASCII-safe\n\t          state = 'scheme';\n\t        } else if (!stateOverride) {\n\t          buffer = '';\n\t          state = 'no scheme';\n\t          continue;\n\t        } else {\n\t          err('Invalid scheme.');\n\t          break loop;\n\t        }\n\t        break;\n\t\n\t      case 'scheme':\n\t        if (c && ALPHANUMERIC.test(c)) {\n\t          buffer += c.toLowerCase(); // ASCII-safe\n\t        } else if (':' == c) {\n\t          this._scheme = buffer;\n\t          buffer = '';\n\t          if (stateOverride) {\n\t            break loop;\n\t          }\n\t          if (isRelativeScheme(this._scheme)) {\n\t            this._isRelative = true;\n\t          }\n\t          if ('file' == this._scheme) {\n\t            state = 'relative';\n\t          } else if (this._isRelative && base && base._scheme == this._scheme) {\n\t            state = 'relative or authority';\n\t          } else if (this._isRelative) {\n\t            state = 'authority first slash';\n\t          } else {\n\t            state = 'scheme data';\n\t          }\n\t        } else if (!stateOverride) {\n\t          buffer = '';\n\t          cursor = 0;\n\t          state = 'no scheme';\n\t          continue;\n\t        } else if (EOF == c) {\n\t          break loop;\n\t        } else {\n\t          err('Code point not allowed in scheme: ' + c);\n\t          break loop;\n\t        }\n\t        break;\n\t\n\t      case 'scheme data':\n\t        if ('?' == c) {\n\t          state = 'query';\n\t        } else if ('#' == c) {\n\t          this._fragment = '#';\n\t          state = 'fragment';\n\t        } else {\n\t          // XXX error handling\n\t          if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n\t            this._schemeData += percentEscape(c);\n\t          }\n\t        }\n\t        break;\n\t\n\t      case 'no scheme':\n\t        if (!base || !isRelativeScheme(base._scheme)) {\n\t          err('Missing scheme.');\n\t          invalid.call(this);\n\t        } else {\n\t          state = 'relative';\n\t          continue;\n\t        }\n\t        break;\n\t\n\t      case 'relative or authority':\n\t        if ('/' == c && '/' == input[cursor + 1]) {\n\t          state = 'authority ignore slashes';\n\t        } else {\n\t          err('Expected /, got: ' + c);\n\t          state = 'relative';\n\t          continue;\n\t        }\n\t        break;\n\t\n\t      case 'relative':\n\t        this._isRelative = true;\n\t        if ('file' != this._scheme) this._scheme = base._scheme;\n\t        if (EOF == c) {\n\t          this._host = base._host;\n\t          this._port = base._port;\n\t          this._path = base._path.slice();\n\t          this._query = base._query;\n\t          this._username = base._username;\n\t          this._password = base._password;\n\t          break loop;\n\t        } else if ('/' == c || '\\\\' == c) {\n\t          if ('\\\\' == c) err('\\\\ is an invalid code point.');\n\t          state = 'relative slash';\n\t        } else if ('?' == c) {\n\t          this._host = base._host;\n\t          this._port = base._port;\n\t          this._path = base._path.slice();\n\t          this._query = '?';\n\t          this._username = base._username;\n\t          this._password = base._password;\n\t          state = 'query';\n\t        } else if ('#' == c) {\n\t          this._host = base._host;\n\t          this._port = base._port;\n\t          this._path = base._path.slice();\n\t          this._query = base._query;\n\t          this._fragment = '#';\n\t          this._username = base._username;\n\t          this._password = base._password;\n\t          state = 'fragment';\n\t        } else {\n\t          var nextC = input[cursor + 1];\n\t          var nextNextC = input[cursor + 2];\n\t          if ('file' != this._scheme || !ALPHA.test(c) || nextC != ':' && nextC != '|' || EOF != nextNextC && '/' != nextNextC && '\\\\' != nextNextC && '?' != nextNextC && '#' != nextNextC) {\n\t            this._host = base._host;\n\t            this._port = base._port;\n\t            this._username = base._username;\n\t            this._password = base._password;\n\t            this._path = base._path.slice();\n\t            this._path.pop();\n\t          }\n\t          state = 'relative path';\n\t          continue;\n\t        }\n\t        break;\n\t\n\t      case 'relative slash':\n\t        if ('/' == c || '\\\\' == c) {\n\t          if ('\\\\' == c) {\n\t            err('\\\\ is an invalid code point.');\n\t          }\n\t          if ('file' == this._scheme) {\n\t            state = 'file host';\n\t          } else {\n\t            state = 'authority ignore slashes';\n\t          }\n\t        } else {\n\t          if ('file' != this._scheme) {\n\t            this._host = base._host;\n\t            this._port = base._port;\n\t            this._username = base._username;\n\t            this._password = base._password;\n\t          }\n\t          state = 'relative path';\n\t          continue;\n\t        }\n\t        break;\n\t\n\t      case 'authority first slash':\n\t        if ('/' == c) {\n\t          state = 'authority second slash';\n\t        } else {\n\t          err(\"Expected '/', got: \" + c);\n\t          state = 'authority ignore slashes';\n\t          continue;\n\t        }\n\t        break;\n\t\n\t      case 'authority second slash':\n\t        state = 'authority ignore slashes';\n\t        if ('/' != c) {\n\t          err(\"Expected '/', got: \" + c);\n\t          continue;\n\t        }\n\t        break;\n\t\n\t      case 'authority ignore slashes':\n\t        if ('/' != c && '\\\\' != c) {\n\t          state = 'authority';\n\t          continue;\n\t        } else {\n\t          err('Expected authority, got: ' + c);\n\t        }\n\t        break;\n\t\n\t      case 'authority':\n\t        if ('@' == c) {\n\t          if (seenAt) {\n\t            err('@ already seen.');\n\t            buffer += '%40';\n\t          }\n\t          seenAt = true;\n\t          for (var i = 0; i < buffer.length; i++) {\n\t            var cp = buffer[i];\n\t            if ('\\t' == cp || '\\n' == cp || '\\r' == cp) {\n\t              err('Invalid whitespace in authority.');\n\t              continue;\n\t            }\n\t            // XXX check URL code points\n\t            if (':' == cp && null === this._password) {\n\t              this._password = '';\n\t              continue;\n\t            }\n\t            var tempC = percentEscape(cp);\n\t            null !== this._password ? this._password += tempC : this._username += tempC;\n\t          }\n\t          buffer = '';\n\t        } else if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c) {\n\t          cursor -= buffer.length;\n\t          buffer = '';\n\t          state = 'host';\n\t          continue;\n\t        } else {\n\t          buffer += c;\n\t        }\n\t        break;\n\t\n\t      case 'file host':\n\t        if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c) {\n\t          if (buffer.length == 2 && ALPHA.test(buffer[0]) && (buffer[1] == ':' || buffer[1] == '|')) {\n\t            state = 'relative path';\n\t          } else if (buffer.length == 0) {\n\t            state = 'relative path start';\n\t          } else {\n\t            this._host = IDNAToASCII.call(this, buffer);\n\t            buffer = '';\n\t            state = 'relative path start';\n\t          }\n\t          continue;\n\t        } else if ('\\t' == c || '\\n' == c || '\\r' == c) {\n\t          err('Invalid whitespace in file host.');\n\t        } else {\n\t          buffer += c;\n\t        }\n\t        break;\n\t\n\t      case 'host':\n\t      case 'hostname':\n\t        if (':' == c && !seenBracket) {\n\t          // XXX host parsing\n\t          this._host = IDNAToASCII.call(this, buffer);\n\t          buffer = '';\n\t          state = 'port';\n\t          if ('hostname' == stateOverride) {\n\t            break loop;\n\t          }\n\t        } else if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c) {\n\t          this._host = IDNAToASCII.call(this, buffer);\n\t          buffer = '';\n\t          state = 'relative path start';\n\t          if (stateOverride) {\n\t            break loop;\n\t          }\n\t          continue;\n\t        } else if ('\\t' != c && '\\n' != c && '\\r' != c) {\n\t          if ('[' == c) {\n\t            seenBracket = true;\n\t          } else if (']' == c) {\n\t            seenBracket = false;\n\t          }\n\t          buffer += c;\n\t        } else {\n\t          err('Invalid code point in host/hostname: ' + c);\n\t        }\n\t        break;\n\t\n\t      case 'port':\n\t        if (/[0-9]/.test(c)) {\n\t          buffer += c;\n\t        } else if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c || stateOverride) {\n\t          if ('' != buffer) {\n\t            var temp = parseInt(buffer, 10);\n\t            if (temp != relative[this._scheme]) {\n\t              this._port = temp + '';\n\t            }\n\t            buffer = '';\n\t          }\n\t          if (stateOverride) {\n\t            break loop;\n\t          }\n\t          state = 'relative path start';\n\t          continue;\n\t        } else if ('\\t' == c || '\\n' == c || '\\r' == c) {\n\t          err('Invalid code point in port: ' + c);\n\t        } else {\n\t          invalid.call(this);\n\t        }\n\t        break;\n\t\n\t      case 'relative path start':\n\t        if ('\\\\' == c) err(\"'\\\\' not allowed in path.\");\n\t        state = 'relative path';\n\t        if ('/' != c && '\\\\' != c) {\n\t          continue;\n\t        }\n\t        break;\n\t\n\t      case 'relative path':\n\t        if (EOF == c || '/' == c || '\\\\' == c || !stateOverride && ('?' == c || '#' == c)) {\n\t          if ('\\\\' == c) {\n\t            err('\\\\ not allowed in relative path.');\n\t          }\n\t          var tmp;\n\t          if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {\n\t            buffer = tmp;\n\t          }\n\t          if ('..' == buffer) {\n\t            this._path.pop();\n\t            if ('/' != c && '\\\\' != c) {\n\t              this._path.push('');\n\t            }\n\t          } else if ('.' == buffer && '/' != c && '\\\\' != c) {\n\t            this._path.push('');\n\t          } else if ('.' != buffer) {\n\t            if ('file' == this._scheme && this._path.length == 0 && buffer.length == 2 && ALPHA.test(buffer[0]) && buffer[1] == '|') {\n\t              buffer = buffer[0] + ':';\n\t            }\n\t            this._path.push(buffer);\n\t          }\n\t          buffer = '';\n\t          if ('?' == c) {\n\t            this._query = '?';\n\t            state = 'query';\n\t          } else if ('#' == c) {\n\t            this._fragment = '#';\n\t            state = 'fragment';\n\t          }\n\t        } else if ('\\t' != c && '\\n' != c && '\\r' != c) {\n\t          buffer += percentEscape(c);\n\t        }\n\t        break;\n\t\n\t      case 'query':\n\t        if (!stateOverride && '#' == c) {\n\t          this._fragment = '#';\n\t          state = 'fragment';\n\t        } else if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n\t          this._query += percentEscapeQuery(c);\n\t        }\n\t        break;\n\t\n\t      case 'fragment':\n\t        if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n\t          this._fragment += c;\n\t        }\n\t        break;\n\t    }\n\t\n\t    cursor++;\n\t  }\n\t}\n\t\n\tfunction clear() {\n\t  this._scheme = '';\n\t  this._schemeData = '';\n\t  this._username = '';\n\t  this._password = null;\n\t  this._host = '';\n\t  this._port = '';\n\t  this._path = [];\n\t  this._query = '';\n\t  this._fragment = '';\n\t  this._isInvalid = false;\n\t  this._isRelative = false;\n\t}\n\t\n\t// Does not process domain names or IP addresses.\n\t// Does not handle encoding for the query parameter.\n\tfunction URL(url, base /* , encoding */) {\n\t  if (base !== undefined && !(base instanceof URL)) base = new URL(String(base));\n\t\n\t  this._url = url;\n\t  clear.call(this);\n\t\n\t  var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, '');\n\t  // encoding = encoding || 'utf-8'\n\t\n\t  parse.call(this, input, null, base);\n\t}\n\t\n\tURL.prototype = {\n\t  toString: function toString() {\n\t    return this.href;\n\t  },\n\t  get href() {\n\t    if (this._isInvalid) return this._url;\n\t\n\t    var authority = '';\n\t    if ('' != this._username || null != this._password) {\n\t      authority = this._username + (null != this._password ? ':' + this._password : '') + '@';\n\t    }\n\t\n\t    return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;\n\t  },\n\t  set href(href) {\n\t    clear.call(this);\n\t    parse.call(this, href);\n\t  },\n\t\n\t  get protocol() {\n\t    return this._scheme + ':';\n\t  },\n\t  set protocol(protocol) {\n\t    if (this._isInvalid) return;\n\t    parse.call(this, protocol + ':', 'scheme start');\n\t  },\n\t\n\t  get host() {\n\t    return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;\n\t  },\n\t  set host(host) {\n\t    if (this._isInvalid || !this._isRelative) return;\n\t    parse.call(this, host, 'host');\n\t  },\n\t\n\t  get hostname() {\n\t    return this._host;\n\t  },\n\t  set hostname(hostname) {\n\t    if (this._isInvalid || !this._isRelative) return;\n\t    parse.call(this, hostname, 'hostname');\n\t  },\n\t\n\t  get port() {\n\t    return this._port;\n\t  },\n\t  set port(port) {\n\t    if (this._isInvalid || !this._isRelative) return;\n\t    parse.call(this, port, 'port');\n\t  },\n\t\n\t  get pathname() {\n\t    return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;\n\t  },\n\t  set pathname(pathname) {\n\t    if (this._isInvalid || !this._isRelative) return;\n\t    this._path = [];\n\t    parse.call(this, pathname, 'relative path start');\n\t  },\n\t\n\t  get search() {\n\t    return this._isInvalid || !this._query || '?' == this._query ? '' : this._query;\n\t  },\n\t  set search(search) {\n\t    if (this._isInvalid || !this._isRelative) return;\n\t    this._query = '?';\n\t    if ('?' == search[0]) search = search.slice(1);\n\t    parse.call(this, search, 'query');\n\t  },\n\t\n\t  get hash() {\n\t    return this._isInvalid || !this._fragment || '#' == this._fragment ? '' : this._fragment;\n\t  },\n\t  set hash(hash) {\n\t    if (this._isInvalid) return;\n\t    this._fragment = '#';\n\t    if ('#' == hash[0]) hash = hash.slice(1);\n\t    parse.call(this, hash, 'fragment');\n\t  },\n\t\n\t  get origin() {\n\t    var host;\n\t    if (this._isInvalid || !this._scheme) {\n\t      return '';\n\t    }\n\t    // javascript: Gecko returns String(\"\"), WebKit/Blink String(\"null\")\n\t    // Gecko throws error for \"data://\"\n\t    // data: Gecko returns \"\", Blink returns \"data://\", WebKit returns \"null\"\n\t    // Gecko returns String(\"\") for file: mailto:\n\t    // WebKit/Blink returns String(\"SCHEME://\") for file: mailto:\n\t    switch (this._scheme) {\n\t      case 'data':\n\t      case 'file':\n\t      case 'javascript':\n\t      case 'mailto':\n\t        return 'null';\n\t    }\n\t    host = this.host;\n\t    if (!host) {\n\t      return '';\n\t    }\n\t    return this._scheme + '://' + host;\n\t  }\n\t};\n\t\n\tmodule.exports = URL;\n\n/***/ }\n/******/ ]);\n//# sourceMappingURL=url.module.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/runtime-shared/dist/url.module.js\n// module id = 9\n// module chunks = 0 1","module.exports = /******/ (function(modules) { // webpackBootstrap\n/******/ \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/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t// https://github.com/WebReflection/url-search-params\n\t\n\tvar find = /[!'\\(\\)~]|%20|%00/g,\n\t    plus = /\\+/g,\n\t    replace = {\n\t  '!': '%21',\n\t  \"'\": '%27',\n\t  '(': '%28',\n\t  ')': '%29',\n\t  '~': '%7E',\n\t  '%20': '+',\n\t  '%00': '\\x00'\n\t},\n\t    replacer = function replacer(match) {\n\t  return replace[match];\n\t},\n\t    iterable = isIterable(),\n\t    secret = '__URLSearchParams__';\n\t\n\tfunction encode(str) {\n\t  return encodeURIComponent(str).replace(find, replacer);\n\t}\n\t\n\tfunction decode(str) {\n\t  return decodeURIComponent(str.replace(plus, ' '));\n\t}\n\t\n\tfunction isIterable() {\n\t  try {\n\t    return !!Symbol.iterator;\n\t  } catch (error) {\n\t    return false;\n\t  }\n\t}\n\t\n\tvar URLSearchParams = function () {\n\t  function URLSearchParams(query) {\n\t    _classCallCheck(this, URLSearchParams);\n\t\n\t    this[secret] = Object.create(null);\n\t    if (!query) return;\n\t    if (query.charAt(0) === '?') {\n\t      query = query.slice(1);\n\t    }\n\t    for (var index, value, pairs = (query || '').split('&'), i = 0, length = pairs.length; i < length; i++) {\n\t      value = pairs[i];\n\t      index = value.indexOf('=');\n\t      if (-1 < index) {\n\t        this.append(decode(value.slice(0, index)), decode(value.slice(index + 1)));\n\t      } else if (value.length) {\n\t        this.append(decode(value), '');\n\t      }\n\t    }\n\t  }\n\t\n\t  _createClass(URLSearchParams, [{\n\t    key: 'append',\n\t    value: function append(name, value) {\n\t      var dict = this[secret];\n\t      if (name in dict) {\n\t        dict[name].push('' + value);\n\t      } else {\n\t        dict[name] = ['' + value];\n\t      }\n\t    }\n\t  }, {\n\t    key: 'delete',\n\t    value: function _delete(name) {\n\t      delete this[secret][name];\n\t    }\n\t  }, {\n\t    key: 'get',\n\t    value: function get(name) {\n\t      var dict = this[secret];\n\t      return name in dict ? dict[name][0] : null;\n\t    }\n\t  }, {\n\t    key: 'getAll',\n\t    value: function getAll(name) {\n\t      var dict = this[secret];\n\t      return name in dict ? dict[name].slice(0) : [];\n\t    }\n\t  }, {\n\t    key: 'has',\n\t    value: function has(name) {\n\t      return name in this[secret];\n\t    }\n\t  }, {\n\t    key: 'set',\n\t    value: function set(name, value) {\n\t      this[secret][name] = ['' + value];\n\t    }\n\t  }, {\n\t    key: 'forEach',\n\t    value: function forEach(callback, thisArg) {\n\t      var dict = this[secret];\n\t      Object.getOwnPropertyNames(dict).forEach(function (name) {\n\t        dict[name].forEach(function (value) {\n\t          callback.call(thisArg, value, name, this);\n\t        }, this);\n\t      }, this);\n\t    }\n\t  }, {\n\t    key: 'keys',\n\t    value: function keys() {\n\t      var items = [];\n\t      this.forEach(function (value, name) {\n\t        items.push(name);\n\t      });\n\t      var iterator = {\n\t        next: function next() {\n\t          var value = items.shift();\n\t          return { done: value === undefined, value: value };\n\t        }\n\t      };\n\t\n\t      if (iterable) {\n\t        iterator[Symbol.iterator] = function () {\n\t          return iterator;\n\t        };\n\t      }\n\t\n\t      return iterator;\n\t    }\n\t  }, {\n\t    key: 'values',\n\t    value: function values() {\n\t      var items = [];\n\t      this.forEach(function (value) {\n\t        items.push(value);\n\t      });\n\t      var iterator = {\n\t        next: function next() {\n\t          var value = items.shift();\n\t          return { done: value === undefined, value: value };\n\t        }\n\t      };\n\t\n\t      if (iterable) {\n\t        iterator[Symbol.iterator] = function () {\n\t          return iterator;\n\t        };\n\t      }\n\t\n\t      return iterator;\n\t    }\n\t  }, {\n\t    key: 'entries',\n\t    value: function entries() {\n\t      var items = [];\n\t      this.forEach(function (value, name) {\n\t        items.push([name, value]);\n\t      });\n\t      var iterator = {\n\t        next: function next() {\n\t          var value = items.shift();\n\t          return { done: value === undefined, value: value };\n\t        }\n\t      };\n\t\n\t      if (iterable) {\n\t        iterator[Symbol.iterator] = function () {\n\t          return iterator;\n\t        };\n\t      }\n\t\n\t      return iterator;\n\t    }\n\t  }, {\n\t    key: 'toString',\n\t    value: function toString() {\n\t      var dict = this[secret],\n\t          query = [],\n\t          i,\n\t          key,\n\t          name,\n\t          value;\n\t      for (key in dict) {\n\t        name = encode(key);\n\t        for (i = 0, value = dict[key]; i < value.length; i++) {\n\t          query.push(name + '=' + encode(value[i]));\n\t        }\n\t      }\n\t      return query.join('&');\n\t    }\n\t  }]);\n\t\n\t  return URLSearchParams;\n\t}();\n\t\n\tif (iterable) {\n\t  URLSearchParams.prototype[Symbol.iterator] = URLSearchParams.prototype.entries;\n\t}\n\t\n\tmodule.exports = URLSearchParams;\n\n/***/ }\n/******/ ]);\n//# sourceMappingURL=url-search-params.module.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/runtime-shared/dist/url-search-params.module.js\n// module id = 10\n// module chunks = 0 1","(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\n\n\n// WEBPACK FOOTER //\n// ./packages/web-rax-framework/src/require.js","import Registry, { config, getOffset, pushElement } from './appearRegistry';\n\nlet instance = null;\n\nconst appear = () => {\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// 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, isNotWatch) {\n    let lowerCaseEventName = eventName.toLowerCase();\n    if (lowerCaseEventName === 'appear' || lowerCaseEventName === 'disappear') {\n      pushElement(this);\n    }\n\n    if (instance) {\n      instance.check();\n    }\n\n    if (lowerCaseEventName === 'scroll' && !isNotWatch) {\n      instance = new Registry({\n        container: this\n      });\n      instances.push(instance);\n    }\n    nativeAddEventListener.call(this, eventName, eventHandler, useCapture);\n  };\n\n  Node.prototype.removeEventListener = function(eventName, eventHandler, useCapture, isNotWatch) {\n    let lowerCaseEventName = eventName.toLowerCase();\n\n    // destroy scroller\n    if (lowerCaseEventName === 'scroll' && !isNotWatch) {\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\n\n\n// WEBPACK FOOTER //\n// ./packages/web-rax-framework/src/appear.js","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(offset) {\n    raf(() => {\n      this.calculate();\n    });\n  }\n\n  // calculate everyone dom inview\n  calculate() {\n    let container = this.container,\n      elements = this.getElements(),\n      containerOffset = getOffset(window, {\n        x: this.options.x,\n        y: this.options.y\n      }),\n      isOnce = this.options.once,\n      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(arguments);\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    el = el.getBoundingClientRect();\n    l = el.left;\n    t = el.top;\n    r = el.right;\n    b = el.bottom;\n  } else {\n    l = 0;\n    t = 0;\n    r = l + el.innerWidth;\n    b = t + el.innerHeight;\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 = node.getAttribute('isonce') == 1;\n    node.isOnce = isOnce;\n    node.appended = true;\n    _appearDoms.push(node);\n    node._eleOffset = getOffset(node);\n  }\n}\n\nexport default AppearRegistry;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/web-rax-framework/src/appearRegistry.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getDriver = exports.setDriver = exports.version = exports.setNativeProps = exports.findComponentInstance = exports.unmountComponentAtNode = exports.findDOMNode = exports.render = exports.PropTypes = exports.PureComponent = exports.Component = exports.createFactory = exports.isValidElement = exports.cloneElement = exports.createElement = undefined;\n\nvar _element = require('./element');\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});\n\nvar _driver = require('./driver');\n\nObject.defineProperty(exports, 'setDriver', {\n  enumerable: true,\n  get: function get() {\n    return _driver.setDriver;\n  }\n});\nObject.defineProperty(exports, 'getDriver', {\n  enumerable: true,\n  get: function get() {\n    return _driver.getDriver;\n  }\n});\n\nrequire('./debug/devtools');\n\nvar _component = require('./component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _purecomponent = require('./purecomponent');\n\nvar _purecomponent2 = _interopRequireDefault(_purecomponent);\n\nvar _proptypes = require('./proptypes');\n\nvar _proptypes2 = _interopRequireDefault(_proptypes);\n\nvar _render2 = require('./render');\n\nvar _render3 = _interopRequireDefault(_render2);\n\nvar _findDOMNode2 = require('./findDOMNode');\n\nvar _findDOMNode3 = _interopRequireDefault(_findDOMNode2);\n\nvar _unmountComponentAtNode2 = require('./unmountComponentAtNode');\n\nvar _unmountComponentAtNode3 = _interopRequireDefault(_unmountComponentAtNode2);\n\nvar _findComponentInstance2 = require('./findComponentInstance');\n\nvar _findComponentInstance3 = _interopRequireDefault(_findComponentInstance2);\n\nvar _setNativeProps2 = require('./setNativeProps');\n\nvar _setNativeProps3 = _interopRequireDefault(_setNativeProps2);\n\nvar _version2 = require('./version');\n\nvar _version3 = _interopRequireDefault(_version2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Component = _component2.default;\nexports.PureComponent = _purecomponent2.default;\nexports.PropTypes = _proptypes2.default;\nexports.render = _render3.default;\nexports.findDOMNode = _findDOMNode3.default;\nexports.unmountComponentAtNode = _unmountComponentAtNode3.default;\nexports.findComponentInstance = _findComponentInstance3.default;\nexports.setNativeProps = _setNativeProps3.default;\nexports.version = _version3.default;\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/index.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.createElement = createElement;\nexports.createFactory = createFactory;\nexports.cloneElement = cloneElement;\nexports.isValidElement = isValidElement;\n\nvar _host = require('./vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _universalEnv = require('universal-env');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true\n};\n\nfunction getRenderErrorInfo() {\n  if (_host2.default.component) {\n    var name = _host2.default.component.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\nvar Element = function Element(type, key, ref, props, owner) {\n  props = filterProps(type, props);\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\nexports.default = Element;\n\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  var result = [];\n  traverseChildren(children, result);\n\n  if (result.length === 1) {\n    result = result[0];\n  }\n\n  return result;\n}\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    for (var i = 0; i < style.length; ++i) {\n      var computedStyle = flattenStyle(style[i]);\n      if (computedStyle) {\n        for (var key in computedStyle) {\n          result[key] = computedStyle[key];\n        }\n      }\n    }\n    return result;\n  }\n}\n\n// TODO: so hack\nfunction filterProps(type, props) {\n  // Only for weex text\n  if (_universalEnv.isWeex && type === 'text') {\n    var value = props.children;\n    if (value) {\n      if (Array.isArray(value)) {\n        value = value.join('');\n      }\n      props.children = null;\n      props.value = value;\n    }\n  }\n  return props;\n}\n\nfunction createElement(type, config) {\n  if (type == null) {\n    throw Error('createElement: type should not be null or undefined.' + getRenderErrorInfo());\n  }\n  // Reserved names are extracted\n  var props = {};\n  var propName = void 0;\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);\n    // Remaining properties are added to a new props object\n    for (propName in config) {\n      if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    }\n  }\n\n  for (var _len = arguments.length, children = 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 = flattenChildren(children);\n  }\n\n  // Resolve default props\n  if (type && type.defaultProps) {\n    var defaultProps = type.defaultProps;\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, _host2.default.component);\n}\n\nfunction createFactory(type) {\n  var factory = createElement.bind(null, type);\n  // 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  factory.type = type;\n  return factory;\n}\n\nfunction cloneElement(element, config) {\n  // Original props are copied\n  var props = Object.assign({}, element.props);\n\n  // Reserved names are extracted\n  var key = element.key;\n  var ref = element.ref;\n\n  // Owner will be preserved, unless ref is overridden\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 = _host2.default.component;\n    }\n\n    if (config.key !== undefined) {\n      key = String(config.key);\n    }\n\n    // Resolve default props\n    var defaultProps = void 0;\n    if (element.type && element.type.defaultProps) {\n      defaultProps = element.type.defaultProps;\n    }\n    // Remaining properties override existing props\n    var propName = void 0;\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 _len2 = arguments.length, children = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n    children[_key2 - 2] = arguments[_key2];\n  }\n\n  if (children.length) {\n    props.children = flattenChildren(children);\n  }\n\n  return new Element(element.type, key, ref, props, owner);\n};\n\nfunction isValidElement(object) {\n  return (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && object !== null && object.type && object.props;\n}\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/element.js","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n/*\n * Stateful things in runtime\n */\nexports.default = {\n  component: null,\n  driver: null,\n  mountID: 1,\n  sandbox: true,\n  // Roots\n  rootComponents: {},\n  rootInstances: {}\n};\nmodule.exports = exports[\"default\"];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/host.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n// https://www.w3.org/TR/html5/webappapis.html#dom-navigator-appcodename\nvar isWeb = exports.isWeb = (typeof navigator === 'undefined' ? 'undefined' : _typeof(navigator)) === 'object' && (navigator.appCodeName === 'Mozilla' || navigator.product === 'Gecko');\nvar isNode = exports.isNode = typeof process !== 'undefined' && !!(process.versions && process.versions.node);\nvar isWeex = exports.isWeex = typeof callNative === 'function';\nvar isReactNative = exports.isReactNative = typeof __fbBatchedBridgeConfig !== 'undefined';\n\n\n// WEBPACK FOOTER //\n// ./packages/universal-env/lib/index.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.injectDriver = exports.getDriver = exports.setDriver = undefined;\n\nvar _host = require('./vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _weex = require('./drivers/weex');\n\nvar _weex2 = _interopRequireDefault(_weex);\n\nvar _browser = require('./drivers/browser');\n\nvar _browser2 = _interopRequireDefault(_browser);\n\nvar _universalEnv = require('universal-env');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar setDriver = exports.setDriver = function setDriver(driver) {\n  _host2.default.driver = driver;\n};\n\nvar getDriver = exports.getDriver = function getDriver() {\n  return _host2.default.driver;\n};\n\nvar injectDriver = exports.injectDriver = function injectDriver() {\n  var driver = getDriver();\n\n  // Inject driver\n  if (!driver) {\n    if (_universalEnv.isWeex) {\n      driver = _weex2.default;\n    } else if (_universalEnv.isWeb) {\n      driver = _browser2.default;\n    } else {\n      throw Error('No builtin driver matched');\n    }\n\n    setDriver(driver);\n  }\n};\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/driver.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /**\n                                                                                                                                                                                                                                                                               * Weex driver\n                                                                                                                                                                                                                                                                               **/\n\n\nvar _host = require('../vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _setNativeProps = require('../setNativeProps');\n\nvar _setNativeProps2 = _interopRequireDefault(_setNativeProps);\n\nvar _unit = require('../style/unit');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar STYLE = 'style';\nvar ID = 'id';\nvar TEXT = 'text';\nvar FULL_WIDTH_REM = 750;\nvar DOCUMENT_FRAGMENT_NODE = 11;\nvar nodeMaps = {};\n/* global __weex_document__ */\nvar document = (typeof __weex_document__ === 'undefined' ? 'undefined' : _typeof(__weex_document__)) === 'object' ? __weex_document__ : (typeof document === 'undefined' ? 'undefined' : _typeof(document)) === 'object' ? document : null;\n\nvar Driver = {\n  getElementById: function getElementById(id) {\n    return nodeMaps[id];\n  },\n  getChildNodes: function getChildNodes(node) {\n    return node.children;\n  },\n  createBody: function createBody() {\n    // Close batched updates\n    document.open();\n\n    if (document.body) {\n      return document.body;\n    }\n\n    var documentElement = document.documentElement;\n    var body = document.createBody();\n    documentElement.appendChild(body);\n\n    return body;\n  },\n  createFragment: function createFragment() {\n    return {\n      nodeType: DOCUMENT_FRAGMENT_NODE,\n      childNodes: []\n    };\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 props = component.props;\n    var events = [];\n    var style = {};\n    var originStyle = props[STYLE];\n    for (var prop in originStyle) {\n      style[prop] = (0, _unit.convertUnit)(originStyle[prop], prop);\n    }\n\n    var node = document.createElement(component.type, {\n      style: style\n    });\n\n    (0, _setNativeProps2.default)(node, props, true);\n\n    return node;\n  },\n  appendChild: function appendChild(node, parent) {\n    var _this = this;\n\n    if (parent.nodeType === DOCUMENT_FRAGMENT_NODE) {\n      return parent.childNodes.push(node);\n    } else if (node.nodeType === DOCUMENT_FRAGMENT_NODE) {\n      return node.childNodes.map(function (child) {\n        return _this.appendChild(child, parent);\n      });\n    } else {\n      return parent.appendChild(node);\n    }\n  },\n  removeChild: function removeChild(node, parent) {\n    var id = node.attr && node.attr[ID];\n    if (id != null) {\n      nodeMaps[id] = null;\n    }\n    return parent.removeChild(node);\n  },\n  replaceChild: function replaceChild(newChild, oldChild, parent) {\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    var _this2 = this;\n\n    if (node.nodeType === DOCUMENT_FRAGMENT_NODE) {\n      return node.childNodes.map(function (child, index) {\n        return _this2.insertAfter(child, node.childNodes[index - 1] || after, parent);\n      });\n    } else {\n      return parent.insertAfter(node, after);\n    }\n  },\n  insertBefore: function insertBefore(node, before, parent) {\n    var _this3 = this;\n\n    if (node.nodeType === DOCUMENT_FRAGMENT_NODE) {\n      return node.childNodes.map(function (child, index) {\n        return _this3.insertBefore(child, before, parent);\n      });\n    } else {\n      return parent.insertBefore(node, before);\n    }\n  },\n  addEventListener: function addEventListener(node, eventName, eventHandler) {\n    return node.addEvent(eventName, eventHandler);\n  },\n  removeEventListener: function removeEventListener(node, eventName, eventHandler) {\n    return node.removeEvent(eventName, eventHandler);\n  },\n  removeAllEventListeners: function removeAllEventListeners(node) {\n    // noop\n  },\n  removeAttribute: function removeAttribute(node, propKey, propValue) {\n    if (propKey == ID) {\n      nodeMaps[propValue] = null;\n    }\n    // Weex native will crash when pass null value\n    return node.setAttr(propKey, undefined, false);\n  },\n  setAttribute: function setAttribute(node, propKey, propValue) {\n    if (propKey == ID) {\n      nodeMaps[propValue] = node;\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, _unit.convertUnit)(val, key);\n      node.setStyle(key, val);\n    }\n  },\n  beforeRender: function beforeRender() {\n    // Init rem unit\n    (0, _unit.setRem)(this.getWindowWidth() / FULL_WIDTH_REM);\n  },\n  afterRender: function afterRender() {\n    if (document && document.listener && document.listener.createFinish) {\n      document.listener.createFinish(function () {\n        // Make updates batched\n        document.close();\n      });\n    }\n  },\n  getWindowWidth: function getWindowWidth() {\n    return FULL_WIDTH_REM;\n  }\n};\n\nexports.default = Driver;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/drivers/weex.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = setNativeProps;\n\nvar _host = require('./vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _findDOMNode = require('./findDOMNode');\n\nvar _findDOMNode2 = _interopRequireDefault(_findDOMNode);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar STYLE = 'style';\nvar CHILDREN = 'children';\n\nfunction setNativeProps(node, props, disableSetStyles) {\n  node = (0, _findDOMNode2.default)(node);\n\n  for (var prop in props) {\n    var value = props[prop];\n    if (prop === CHILDREN) {\n      continue;\n    }\n\n    if (value != null) {\n      if (prop === STYLE) {\n        if (disableSetStyles) {\n          continue;\n        }\n        _host2.default.driver.setStyles(node, value);\n      } else if (prop.substring(0, 2) === 'on') {\n        var eventName = prop.slice(2).toLowerCase();\n        _host2.default.driver.addEventListener(node, eventName, value);\n      } else {\n        _host2.default.driver.setAttribute(node, prop, value);\n      }\n    }\n  }\n}\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/setNativeProps.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _host = require('./vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction findDOMNode(instance) {\n  if (instance == null) {\n    return null;\n  }\n\n  // If a native node, weex may not export ownerDocument property\n  if (instance.ownerDocument || instance.nodeType) {\n    return instance;\n  }\n\n  // Native component\n  if (instance._nativeNode) {\n    return instance._nativeNode;\n  }\n\n  if (typeof instance == 'string') {\n    return _host2.default.driver.getElementById(instance);\n  }\n\n  if (typeof instance.render !== 'function') {\n    throw new Error('Appears to be neither Component nor DOMNode.');\n  }\n\n  // Composite component\n  var internal = instance._internal;\n\n  if (internal) {\n    while (!internal._nativeNode) {\n      internal = internal._renderedComponent;\n      // If not mounted\n      if (internal == null) {\n        return null;\n      }\n    }\n    return internal._nativeNode;\n  } else {\n    throw new Error('findDOMNode was called on an unmounted component.');\n  }\n}\n\nexports.default = findDOMNode;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/findDOMNode.js","'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;\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 SUFFIX = 'rem';\nvar REM_REG = /[-+]?\\d*\\.?\\d+rem/g;\n\nvar defaultRem = void 0;\n\n/**\n * Is string contains rem\n * @param {String} str\n * @returns {Boolean}\n */\nfunction isRem(str) {\n  return typeof str === 'string' && str.indexOf(SUFFIX) !== -1;\n}\n\n/**\n * Calculate rem to pixels: '1.2rem' => 1.2 * rem\n * @param {String} str\n * @param {Number} rem\n * @returns {number}\n */\nfunction calcRem(str) {\n  var rem = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultRem;\n\n  return str.replace(REM_REG, function (remValue) {\n    return parseFloat(remValue) * rem + 'px';\n  });\n}\n\nfunction getRem() {\n  return defaultRem;\n}\n\nfunction setRem(rem) {\n  defaultRem = rem;\n}\n\nfunction isUnitNumber(val, prop) {\n  return typeof val === 'number' && !UNITLESS_NUMBER_PROPS[prop];\n}\n\nfunction convertUnit(val, prop) {\n  if (prop && isUnitNumber(val, prop)) {\n    return val * defaultRem + 'px';\n  } else if (isRem(val)) {\n    return calcRem(val);\n  }\n\n  return val;\n}\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/style/unit.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _setNativeProps = require('../setNativeProps');\n\nvar _setNativeProps2 = _interopRequireDefault(_setNativeProps);\n\nvar _unit = require('../style/unit');\n\nvar _flexbox = require('../style/flexbox');\n\nvar _flexbox2 = _interopRequireDefault(_flexbox);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar FULL_WIDTH_REM = 750; /**\n                           * Web Browser driver\n                           **/\n\nvar STYLE = 'style';\nvar DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';\n\nvar Driver = {\n  getElementById: function getElementById(id) {\n    return document.getElementById(id);\n  },\n  getChildNodes: function getChildNodes(node) {\n    return node.childNodes;\n  },\n  createBody: function createBody() {\n    return document.body;\n  },\n  createFragment: function createFragment() {\n    return document.createDocumentFragment();\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    var textContentAttr = 'textContent' in document ? 'textContent' : 'nodeValue';\n    node[textContentAttr] = text;\n  },\n  createElement: function createElement(component) {\n    var node = document.createElement(component.type);\n    var props = component.props;\n\n    (0, _setNativeProps2.default)(node, props);\n\n    return node;\n  },\n  appendChild: function appendChild(node, parent) {\n    return parent.appendChild(node);\n  },\n  removeChild: function removeChild(node, parent) {\n    // TODO, maybe has been removed when remove child\n    if (node.parentNode === parent) {\n      parent.removeChild(node);\n    }\n  },\n  replaceChild: function replaceChild(newChild, oldChild, parent) {\n    parent.replaceChild(newChild, oldChild);\n  },\n  insertAfter: function insertAfter(node, after, parent) {\n    var nextSibling = after.nextSibling;\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.insertBefore(node, before);\n  },\n  addEventListener: function addEventListener(node, eventName, eventHandler) {\n    return node.addEventListener(eventName, eventHandler);\n  },\n  removeEventListener: function removeEventListener(node, eventName, eventHandler) {\n    return node.removeEventListener(eventName, eventHandler);\n  },\n  removeAllEventListeners: function removeAllEventListeners(node) {\n    // TODO\n  },\n  removeAttribute: function removeAttribute(node, propKey) {\n    if (propKey === 'className') {\n      propKey = 'class';\n    }\n\n    if (node.nodeName.toLowerCase() == 'input' && (propKey == 'checked' && (node.type === 'checkbox' || node.type === 'radio') || propKey == 'value')) {\n      node[propKey] = null;\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      node.innerHTML = null;\n    } else {\n      node.removeAttribute(propKey);\n    }\n  },\n  setAttribute: function setAttribute(node, propKey, propValue) {\n    if (propKey === 'className') {\n      propKey = 'class';\n    }\n\n    if (node.nodeName.toLowerCase() == 'input' && (propKey == 'checked' && (node.type === 'checkbox' || node.type === 'radio') || propKey == 'value')) {\n      node[propKey] = propValue;\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      node.innerHTML = propValue.__html;\n    } else if (propValue != null) {\n      node.setAttribute(propKey, propValue);\n    }\n  },\n  setStyles: function setStyles(node, styles) {\n    for (var prop in styles) {\n      if (styles.hasOwnProperty(prop)) {\n        var val = styles[prop];\n        if (_flexbox2.default.isFlexProp(prop)) {\n          _flexbox2.default[prop](val, node.style);\n        } else {\n          node.style[prop] = (0, _unit.convertUnit)(val, prop);\n        }\n      }\n    }\n  },\n  beforeRender: function beforeRender() {\n    // Init rem unit\n    (0, _unit.setRem)(this.getWindowWidth() / FULL_WIDTH_REM);\n  },\n  getWindowWidth: function getWindowWidth() {\n    return document.documentElement.clientWidth;\n  }\n};\n\nexports.default = Driver;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/drivers/browser.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar BOX_ALIGN = {\n  stretch: 'stretch',\n  'flex-start': 'start',\n  'flex-end': 'end',\n  center: 'center'\n};\n\nvar BOX_ORIENT = {\n  row: 'horizontal',\n  column: 'vertical'\n};\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};\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';\n      style.display = '-webkit-flex';\n      style.display = '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\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\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\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\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\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\n    style.webkitBoxPack = BOX_PACK[value];\n    style.webkitJustifyContent = value;\n    style.justifyContent = value;\n    return style;\n  }\n};\n\nexports.default = Flexbox;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/style/flexbox.js","'use strict';\n\nvar _hook = require('./hook');\n\nvar _hook2 = _interopRequireDefault(_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(_hook2.default);\n}\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/debug/devtools.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _instance = require('../vdom/instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nvar _host = require('../vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  ComponentTree: {\n    getClosestInstanceFromNode: function getClosestInstanceFromNode(node) {\n      return _instance2.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: _host2.default.rootComponents,\n\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};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/debug/hook.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _element = require('../element');\n\nvar _unmountComponentAtNode = require('../unmountComponentAtNode');\n\nvar _unmountComponentAtNode2 = _interopRequireDefault(_unmountComponentAtNode);\n\nvar _instantiateComponent = require('./instantiateComponent');\n\nvar _instantiateComponent2 = _interopRequireDefault(_instantiateComponent);\n\nvar _shouldUpdateComponent = require('./shouldUpdateComponent');\n\nvar _shouldUpdateComponent2 = _interopRequireDefault(_shouldUpdateComponent);\n\nvar _root = require('./root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _hook = require('../debug/hook');\n\nvar _hook2 = _interopRequireDefault(_hook);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Instance manager\n */\nvar KEY = '$$instance';\n\nexports.default = {\n  set: function set(node, instance) {\n    if (!node[KEY]) {\n      node[KEY] = instance;\n      // Record root instance to roots map\n      if (instance.rootID) {\n        _host2.default.rootInstances[instance.rootID] = instance;\n        _host2.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    if (instance) {\n      node[KEY] = null;\n      if (instance.rootID) {\n        delete _host2.default.rootComponents[instance.rootID];\n        delete _host2.default.rootInstances[instance.rootID];\n      }\n    }\n  },\n  render: function render(element, container) {\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      if ((0, _shouldUpdateComponent2.default)(prevElement, element)) {\n        var prevUnmaskedContext = prevRenderedComponent._context;\n        prevRenderedComponent.updateComponent(prevElement, element, prevUnmaskedContext, prevUnmaskedContext);\n\n        return prevRootInstance;\n      } else {\n        _hook2.default.Reconciler.unmountComponent(prevRootInstance);\n        (0, _unmountComponentAtNode2.default)(container);\n      }\n    }\n\n    var wrappedElement = (0, _element.createElement)(_root2.default, null, element);\n    var renderedComponent = (0, _instantiateComponent2.default)(wrappedElement);\n    var defaultContext = {};\n    var rootInstance = renderedComponent.mountComponent(container, defaultContext);\n    this.set(container, rootInstance);\n    _hook2.default.Mount._renderNewRootComponent(rootInstance._internal);\n\n    return rootInstance;\n  }\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/instance.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = unmountComponentAtNode;\n\nvar _instance = require('./vdom/instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction unmountComponentAtNode(node) {\n  var component = _instance2.default.get(node);\n\n  if (!component) {\n    return false;\n  }\n\n  _instance2.default.remove(node);\n  component._internal.unmountComponent();\n\n  return true;\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/unmountComponentAtNode.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction instantiateComponent(element) {\n  var instance = void 0;\n\n  if (element === undefined || element === null || element === false || element === true) {\n    instance = new _host2.default.EmptyComponent();\n  } else if (Array.isArray(element)) {\n    instance = new _host2.default.FragmentComponent(element);\n  } else if ((typeof element === 'undefined' ? 'undefined' : _typeof(element)) === 'object' && element.type) {\n    // Special case string values\n    if (typeof element.type === 'string') {\n      instance = new _host2.default.NativeComponent(element);\n    } else {\n      instance = new _host2.default.CompositeComponent(element);\n    }\n  } else if (typeof element === 'string' || typeof element === 'number') {\n    instance = new _host2.default.TextComponent(element);\n  } else {\n    throw Error('Invalid element type ' + JSON.stringify(element));\n  }\n\n  instance._mountIndex = 0;\n\n  return instance;\n}\n\nexports.default = instantiateComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/instantiateComponent.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : 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  if (prevEmpty || nextEmpty) {\n    return prevEmpty === nextEmpty;\n  }\n\n  var prevType = typeof prevElement === 'undefined' ? 'undefined' : _typeof(prevElement);\n  var nextType = typeof nextElement === 'undefined' ? 'undefined' : _typeof(nextElement);\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\nexports.default = shouldUpdateComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/shouldUpdateComponent.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _component = require('../component');\n\nvar _component2 = _interopRequireDefault(_component);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar rootCounter = 1;\n\nvar Root = function (_Component) {\n  _inherits(Root, _Component);\n\n  function Root() {\n    var _ref;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Root);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Root.__proto__ || Object.getPrototypeOf(Root)).call.apply(_ref, [this].concat(args))), _this), _this.rootID = rootCounter++, _temp), _possibleConstructorReturn(_this, _ret);\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}(_component2.default);\n\nexports.default = Root;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/root.js","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base component class.\n */\nvar Component = function () {\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\nexports.default = Component;\nmodule.exports = exports[\"default\"];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/component.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _component = require('./component');\n\nvar _component2 = _interopRequireDefault(_component);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Pure component class.\n */\nvar PureComponent = function (_Component) {\n  _inherits(PureComponent, _Component);\n\n  function PureComponent(props, context) {\n    _classCallCheck(this, PureComponent);\n\n    return _possibleConstructorReturn(this, (PureComponent.__proto__ || Object.getPrototypeOf(PureComponent)).call(this, props, context));\n  }\n\n  _createClass(PureComponent, [{\n    key: 'isPureComponentClass',\n    value: function isPureComponentClass() {}\n  }]);\n\n  return PureComponent;\n}(_component2.default);\n\nexports.default = PureComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/purecomponent.js","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n/*\n * Current PropTypes only export some api with react, not validate in runtime.\n */\n\nfunction createChainableTypeChecker(validate) {\n  function checkType(isRequired, props, propName, componentName, location, propFullName) {\n    // Noop\n  }\n\n  var chainedCheckType = checkType.bind(null, false);\n  chainedCheckType.isRequired = checkType.bind(null, true);\n\n  return chainedCheckType;\n}\n\nfunction createTypeChecker(expectedType) {\n  function validate(props, propName, componentName, location, propFullName) {\n    // Noop\n  }\n  return createChainableTypeChecker(validate);\n}\n\nvar typeChecker = createTypeChecker();\n\nexports.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};\nmodule.exports = exports[\"default\"];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/proptypes.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _injectComponent = require('./vdom/injectComponent');\n\nvar _injectComponent2 = _interopRequireDefault(_injectComponent);\n\nvar _instance = require('./vdom/instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nvar _unit = require('./style/unit');\n\nvar _driver = require('./driver');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction render(element, container, callback) {\n  // Inject component\n  (0, _injectComponent2.default)();\n  // Inject driver\n  (0, _driver.injectDriver)();\n\n  var driver = (0, _driver.getDriver)();\n\n  // Before render callback\n  driver.beforeRender && driver.beforeRender(element, container);\n\n  // Real native root node is body\n  if (container == null) {\n    container = driver.createBody();\n  }\n\n  var rootComponent = _instance2.default.render(element, container);\n  var component = rootComponent.getPublicInstance();\n\n  if (callback) {\n    callback.call(component);\n  }\n  // After render callback\n  driver.afterRender && driver.afterRender(component);\n\n  return component;\n}\n\nexports.default = render;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/render.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = injectComponent;\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _empty = require('./empty');\n\nvar _empty2 = _interopRequireDefault(_empty);\n\nvar _native = require('./native');\n\nvar _native2 = _interopRequireDefault(_native);\n\nvar _text = require('./text');\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _composite = require('./composite');\n\nvar _composite2 = _interopRequireDefault(_composite);\n\nvar _fragment = require('./fragment');\n\nvar _fragment2 = _interopRequireDefault(_fragment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction injectComponent() {\n  // Inject component class\n  _host2.default.EmptyComponent = _empty2.default;\n  _host2.default.NativeComponent = _native2.default;\n  _host2.default.TextComponent = _text2.default;\n  _host2.default.FragmentComponent = _fragment2.default;\n  _host2.default.CompositeComponent = _composite2.default;\n}\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/injectComponent.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_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\n/**\n * Empty Component\n */\nvar EmptyComponent = function () {\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, context, childMounter) {\n      this._parent = parent;\n      this._context = context;\n\n      var instance = {\n        _internal: this\n      };\n\n      var nativeNode = this.getNativeNode();\n      if (childMounter) {\n        childMounter(nativeNode, parent);\n      } else {\n        _host2.default.driver.appendChild(nativeNode, parent);\n      }\n\n      return instance;\n    }\n  }, {\n    key: 'unmountComponent',\n    value: function unmountComponent(shouldNotRemoveChild) {\n      if (this._nativeNode && !shouldNotRemoveChild) {\n        _host2.default.driver.removeChild(this._nativeNode, this._parent);\n      }\n\n      this._nativeNode = null;\n      this._parent = null;\n      this._context = null;\n    }\n  }, {\n    key: 'updateComponent',\n    value: function updateComponent() {\n      // noop\n    }\n  }, {\n    key: 'getNativeNode',\n    value: function getNativeNode() {\n      // Weex native node\n      if (this._nativeNode == null) {\n        this._nativeNode = _host2.default.driver.createEmpty();\n      }\n\n      return this._nativeNode;\n    }\n  }]);\n\n  return EmptyComponent;\n}();\n\nexports.default = EmptyComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/empty.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _ref = require('./ref');\n\nvar _ref2 = _interopRequireDefault(_ref);\n\nvar _instantiateComponent = require('./instantiateComponent');\n\nvar _instantiateComponent2 = _interopRequireDefault(_instantiateComponent);\n\nvar _shouldUpdateComponent = require('./shouldUpdateComponent');\n\nvar _shouldUpdateComponent2 = _interopRequireDefault(_shouldUpdateComponent);\n\nvar _getElementKeyName = require('./getElementKeyName');\n\nvar _getElementKeyName2 = _interopRequireDefault(_getElementKeyName);\n\nvar _instance = require('./instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nvar _hook = require('../debug/hook');\n\nvar _hook2 = _interopRequireDefault(_hook);\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\nvar STYLE = 'style';\nvar CHILDREN = 'children';\nvar TREE = 'tree';\n\n/**\n * Native Component\n */\n\nvar NativeComponent = function () {\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, context, childMounter) {\n      // Parent native element\n      this._parent = parent;\n      this._context = context;\n      this._mountID = _host2.default.mountID++;\n\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;\n\n      // Clone a copy for style diff\n      this._prevStyleCopy = Object.assign({}, props.style);\n\n      var nativeNode = this.getNativeNode();\n\n      if (appendType !== TREE) {\n        if (childMounter) {\n          childMounter(nativeNode, parent);\n        } else {\n          _host2.default.driver.appendChild(nativeNode, parent);\n        }\n      }\n\n      if (this._currentElement && this._currentElement.ref) {\n        _ref2.default.attach(this._currentElement._owner, this._currentElement.ref, this);\n      }\n\n      // Process children\n      var children = props.children;\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          _host2.default.driver.appendChild(nativeNode, parent);\n        }\n      }\n\n      _hook2.default.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 = {};\n\n      var renderedChildrenImage = children.map(function (element, index) {\n        var renderedChild = (0, _instantiateComponent2.default)(element);\n        var name = (0, _getElementKeyName2.default)(renderedChildren, element, index);\n        renderedChildren[name] = renderedChild;\n        renderedChild._mountIndex = index;\n        // Mount\n        var mountImage = renderedChild.mountComponent(_this.getNativeNode(), context);\n        return mountImage;\n      });\n\n      this._renderedChildren = renderedChildren;\n\n      return renderedChildrenImage;\n    }\n  }, {\n    key: 'unmountChildren',\n    value: function unmountChildren() {\n      var renderedChildren = this._renderedChildren;\n\n      if (renderedChildren) {\n        for (var name in renderedChildren) {\n          var renderedChild = renderedChildren[name];\n          renderedChild.unmountComponent();\n        }\n        this._renderedChildren = null;\n      }\n    }\n  }, {\n    key: 'unmountComponent',\n    value: function unmountComponent(shouldNotRemoveChild) {\n      if (this._nativeNode) {\n        var ref = this._currentElement.ref;\n        if (ref) {\n          _ref2.default.detach(this._currentElement._owner, ref, this);\n        }\n\n        _instance2.default.remove(this._nativeNode);\n        if (!shouldNotRemoveChild) {\n          _host2.default.driver.removeChild(this._nativeNode, this._parent);\n        }\n        _host2.default.driver.removeAllEventListeners(this._nativeNode);\n      }\n\n      this.unmountChildren();\n\n      _hook2.default.Reconciler.unmountComponent(this);\n\n      this._currentElement = null;\n      this._nativeNode = null;\n      this._parent = 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      _ref2.default.update(prevElement, nextElement, this);\n\n      var prevProps = prevElement.props;\n      var nextProps = nextElement.props;\n\n      this.updateProperties(prevProps, nextProps);\n      this.updateChildren(nextProps.children, nextContext);\n\n      _hook2.default.Reconciler.receiveComponent(this);\n    }\n  }, {\n    key: 'updateProperties',\n    value: function updateProperties(prevProps, nextProps) {\n      var propKey = void 0;\n      var styleName = void 0;\n      var styleUpdates = void 0;\n      for (propKey in prevProps) {\n        if (propKey === CHILDREN || nextProps.hasOwnProperty(propKey) || !prevProps.hasOwnProperty(propKey) || prevProps[propKey] == null) {\n          continue;\n        }\n        if (propKey === STYLE) {\n          var lastStyle = this._prevStyleCopy;\n          for (styleName in lastStyle) {\n            if (lastStyle.hasOwnProperty(styleName)) {\n              styleUpdates = styleUpdates || {};\n              styleUpdates[styleName] = '';\n            }\n          }\n          this._prevStyleCopy = null;\n        } else if (propKey.substring(0, 2) === 'on') {\n          if (prevProps[propKey]) {\n            _host2.default.driver.removeEventListener(this.getNativeNode(), propKey.slice(2).toLowerCase(), prevProps[propKey]);\n          }\n        } else {\n          _host2.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        if (propKey === CHILDREN || !nextProps.hasOwnProperty(propKey) || nextProp === prevProp || nextProp == null && prevProp == null) {\n          continue;\n        }\n        // Update style\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            }\n            // Update styles that changed since `prevProp`.\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\n          // Update event binding\n        } else if (propKey.substring(0, 2) === 'on') {\n          if (prevProp != null) {\n            _host2.default.driver.removeEventListener(this.getNativeNode(), propKey.slice(2).toLowerCase(), prevProp);\n          }\n\n          if (nextProp != null) {\n            _host2.default.driver.addEventListener(this.getNativeNode(), propKey.slice(2).toLowerCase(), nextProp);\n          }\n          // Update other property\n        } else {\n          if (nextProp != null) {\n            _host2.default.driver.setAttribute(this.getNativeNode(), propKey, nextProp);\n          } else {\n            _host2.default.driver.removeAttribute(this.getNativeNode(), propKey, prevProps[propKey]);\n          }\n        }\n      }\n\n      if (styleUpdates) {\n        _host2.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        }\n\n        // Update next children elements\n        for (var index = 0, length = nextChildrenElements.length; index < length; index++) {\n          var nextElement = nextChildrenElements[index];\n          var name = (0, _getElementKeyName2.default)(nextChildren, nextElement, index);\n          var prevChild = prevChildren && prevChildren[name];\n          var prevElement = prevChild && prevChild._currentElement;\n\n          if (prevChild != null && (0, _shouldUpdateComponent2.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 oldChild = prevChild.getNativeNode();\n              // Delay remove child\n              prevChild.unmountComponent(true);\n              oldNodes[name] = oldChild;\n            }\n            // The child must be instantiated before it's mounted.\n            nextChildren[name] = (0, _instantiateComponent2.default)(nextElement);\n          }\n        }\n      }\n\n      // Unmount children that are no longer present.\n      if (prevChildren != null) {\n        for (var _name in prevChildren) {\n          if (!prevChildren.hasOwnProperty(_name)) {\n            continue;\n          }\n          var _prevChild = prevChildren[_name];\n          if (!nextChildren[_name]) {\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\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              // 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              if (prevChild._mountIndex < lastIndex) {\n                _host2.default.driver.insertAfter(prevChild.getNativeNode(), lastPlacedNode, _this2.getNativeNode());\n              }\n\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              nextChild.mountComponent(_this2.getNativeNode(), context, function (newChild, parent) {\n                var oldChild = oldNodes[_name2];\n                if (oldChild) {\n                  _host2.default.driver.replaceChild(newChild, oldChild, parent);\n                } else {\n                  // insert child at a specific index\n                  var childNodes = _host2.default.driver.getChildNodes(parent);\n                  var currentNode = childNodes[nextIndex];\n                  if (currentNode) {\n                    _host2.default.driver.insertBefore(newChild, currentNode, parent);\n                  } else {\n                    _host2.default.driver.appendChild(newChild, parent);\n                  }\n                }\n              });\n              nextChild._mountIndex = nextIndex;\n            }\n\n            nextIndex++;\n            lastPlacedNode = nextChild.getNativeNode();\n          };\n\n          for (var _name2 in nextChildren) {\n            var _ret2 = _loop(_name2);\n\n            if (_ret2 === 'continue') continue;\n          }\n        })();\n      }\n\n      this._renderedChildren = nextChildren;\n    }\n  }, {\n    key: 'getNativeNode',\n    value: function getNativeNode() {\n      if (this._nativeNode == null) {\n        this._nativeNode = _host2.default.driver.createElement(this._instance);\n        _instance2.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\nexports.default = NativeComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/native.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n/*\n * Ref manager\n */\n\nexports.default = {\n  update: function update(prevElement, nextElement, component) {\n    var prevRef = prevElement != null && prevElement.ref;\n    var nextRef = nextElement != null && nextElement.ref;\n\n    // Update refs in owner component\n    if (prevRef !== nextRef) {\n      // Detach prev RenderedElement's ref\n      prevRef != null && this.detach(prevElement._owner, prevRef, component);\n      // Attach next RenderedElement's ref\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    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      if (ownerComponent._instance.refs[ref] === instance) {\n        delete ownerComponent._instance.refs[ref];\n      }\n    }\n  }\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/ref.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (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;\n    // Child keys must be unique.\n    var keyUnique = children[keyName] === undefined;\n    // Only the first child will be used when encountered two children with the same key\n    if (!keyUnique) console.warn('Encountered two children with the same key \"' + elementKey + '\".');\n\n    return keyUnique ? keyName : defaultName;\n  } else {\n    return defaultName;\n  }\n};\n\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/getElementKeyName.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _hook = require('../debug/hook');\n\nvar _hook2 = _interopRequireDefault(_hook);\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\n/**\n * Text Component\n */\nvar TextComponent = function () {\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, context, childMounter) {\n      this._parent = parent;\n      this._context = context;\n      this._mountID = _host2.default.mountID++;\n\n      // Weex dom operation\n      var nativeNode = this.getNativeNode();\n\n      if (childMounter) {\n        childMounter(nativeNode, parent);\n      } else {\n        _host2.default.driver.appendChild(nativeNode, parent);\n      }\n\n      var instance = {\n        _internal: this\n      };\n\n      _hook2.default.Reconciler.mountComponent(this);\n\n      return instance;\n    }\n  }, {\n    key: 'unmountComponent',\n    value: function unmountComponent(shouldNotRemoveChild) {\n      if (this._nativeNode && !shouldNotRemoveChild) {\n        _host2.default.driver.removeChild(this._nativeNode, this._parent);\n      }\n\n      _hook2.default.Reconciler.unmountComponent(this);\n\n      this._currentElement = null;\n      this._nativeNode = null;\n      this._parent = 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;\n        // Devtool read the latest stringText value\n        this._stringText = String(nextElement);\n        _host2.default.driver.updateText(this.getNativeNode(), nextElement);\n        _hook2.default.Reconciler.receiveComponent(this);\n      }\n    }\n  }, {\n    key: 'getNativeNode',\n    value: function getNativeNode() {\n      if (this._nativeNode == null) {\n        this._nativeNode = _host2.default.driver.createText(this._stringText);\n      }\n      return this._nativeNode;\n    }\n  }]);\n\n  return TextComponent;\n}();\n\nexports.default = TextComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/text.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _stateless = require('./stateless');\n\nvar _stateless2 = _interopRequireDefault(_stateless);\n\nvar _updater = require('./updater');\n\nvar _updater2 = _interopRequireDefault(_updater);\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _ref = require('./ref');\n\nvar _ref2 = _interopRequireDefault(_ref);\n\nvar _instantiateComponent = require('./instantiateComponent');\n\nvar _instantiateComponent2 = _interopRequireDefault(_instantiateComponent);\n\nvar _shouldUpdateComponent = require('./shouldUpdateComponent');\n\nvar _shouldUpdateComponent2 = _interopRequireDefault(_shouldUpdateComponent);\n\nvar _shallowEqual = require('./shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _hook = require('../debug/hook');\n\nvar _hook2 = _interopRequireDefault(_hook);\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 performInSandbox(fn, handleError) {\n  try {\n    return fn();\n  } catch (e) {\n    if (handleError) {\n      handleError(e);\n    } else {\n      if (_host2.default.sandbox) {\n        setTimeout(function () {\n          throw e;\n        }, 0);\n      } else {\n        throw e;\n      }\n    }\n  }\n}\n\n/**\n * Composite Component\n */\n\nvar CompositeComponent = function () {\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, context, childMounter) {\n      this._parent = parent;\n      this._context = context;\n      this._mountID = _host2.default.mountID++;\n      this._updateCount = 0;\n\n      var Component = this._currentElement.type;\n      var publicProps = this._currentElement.props;\n      var isComponentClass = Component.prototype && Component.prototype.isComponentClass;\n      // Class stateless component without state but have lifecycles\n      var isStatelessClasss = Component.prototype.render;\n\n      // Context process\n      var publicContext = this._processContext(context);\n\n      // Initialize the public class\n      var instance = void 0;\n      var renderedElement = void 0;\n\n      if (isComponentClass || isStatelessClasss) {\n        // Component instance\n        instance = new Component(publicProps, publicContext, _updater2.default);\n      } else if (typeof Component === 'function') {\n        // Functional stateless component without state and lifecycles\n        instance = new _stateless2.default(Component);\n      } else {\n        throw Error('Invalid component type ' + JSON.stringify(Component));\n      }\n\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      instance.props = publicProps;\n      instance.context = publicContext;\n      instance.refs = {};\n\n      // Inject the updater into instance\n      instance.updater = _updater2.default;\n      instance._internal = this;\n      this._instance = instance;\n\n      // Init state, must be set to an object or null\n      var initialState = instance.state;\n      if (initialState === undefined) {\n        // TODO clone the state?\n        instance.state = initialState = null;\n      }\n\n      performInSandbox(function () {\n        if (instance.componentWillMount) {\n          instance.componentWillMount();\n        }\n      });\n\n      if (renderedElement == null) {\n        _host2.default.component = this;\n        // Process pending state when call setState in componentWillMount\n        instance.state = this._processPendingState(publicProps, publicContext);\n\n        // FIXME: handleError should named as lifecycles\n        var handleError = void 0;\n        if (typeof instance.handleError === 'function') {\n          handleError = function handleError(e) {\n            instance.handleError(e);\n          };\n        }\n\n        performInSandbox(function () {\n          renderedElement = instance.render();\n        }, handleError);\n\n        _host2.default.component = null;\n      }\n\n      this._renderedComponent = (0, _instantiateComponent2.default)(renderedElement);\n      this._renderedComponent.mountComponent(this._parent, this._processChildContext(context), childMounter);\n\n      if (this._currentElement && this._currentElement.ref) {\n        _ref2.default.attach(this._currentElement._owner, this._currentElement.ref, this);\n      }\n\n      performInSandbox(function () {\n        if (instance.componentDidMount) {\n          instance.componentDidMount();\n        }\n      });\n\n      _hook2.default.Reconciler.mountComponent(this);\n\n      return instance;\n    }\n  }, {\n    key: 'unmountComponent',\n    value: function unmountComponent(shouldNotRemoveChild) {\n      var instance = this._instance;\n\n      performInSandbox(function () {\n        if (instance.componentWillUnmount) {\n          instance.componentWillUnmount();\n        }\n      });\n\n      _hook2.default.Reconciler.unmountComponent(this);\n\n      instance._internal = null;\n\n      if (this._renderedComponent != null) {\n        var ref = this._currentElement.ref;\n        if (ref) {\n          _ref2.default.detach(this._currentElement._owner, ref, this);\n        }\n\n        this._renderedComponent.unmountComponent(shouldNotRemoveChild);\n        this._renderedComponent = null;\n        this._instance = null;\n      }\n\n      this._currentElement = null;\n\n      // 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      this._pendingStateQueue = null;\n      this._pendingForceUpdate = false;\n\n      // These fields do not really need to be reset since this object is no\n      // longer accessible.\n      this._context = null;\n    }\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      if (!contextTypes) {\n        return {};\n      }\n      var maskedContext = {};\n      for (var contextName in contextTypes) {\n        maskedContext[contextName] = context[contextName];\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      if (childContext) {\n        return Object.assign({}, currentContext, childContext);\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      if (!queue) {\n        return instance.state;\n      }\n      // Reset pending queue\n      this._pendingStateQueue = null;\n      var nextState = Object.assign({}, instance.state);\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 _this = this;\n\n      var instance = this._instance;\n\n      if (!instance) {\n        console.error('Update component \\'' + this.getName() + '\\' that has already been unmounted (or failed to mount).');\n      }\n\n      var willReceive = false;\n      var nextContext = void 0;\n      var nextProps = void 0;\n\n      // Determine if the context has changed or not\n      if (this._context === nextUnmaskedContext) {\n        nextContext = instance.context;\n      } else {\n        nextContext = this._processContext(nextUnmaskedContext);\n        willReceive = true;\n      }\n\n      // Distinguish between a props update versus a simple state update\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      if (willReceive && instance.componentWillReceiveProps) {\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        });\n        this._pendingState = false;\n      }\n\n      // Update refs\n      _ref2.default.update(prevElement, nextElement, this);\n\n      // Shoud update always default\n      var shouldUpdate = true;\n      var prevProps = instance.props;\n      var prevState = instance.state;\n      // TODO: could delay execution processPendingState\n      var nextState = this._processPendingState(nextProps, nextContext);\n\n      // ShouldComponentUpdate is not called when forceUpdate is used\n      if (!this._pendingForceUpdate) {\n        if (instance.shouldComponentUpdate) {\n          shouldUpdate = performInSandbox(function () {\n            return instance.shouldComponentUpdate(nextProps, nextState, nextContext);\n          });\n        } else if (instance.isPureComponentClass) {\n          shouldUpdate = !(0, _shallowEqual2.default)(prevProps, nextProps) || !(0, _shallowEqual2.default)(prevState, nextState);\n        }\n      }\n\n      if (shouldUpdate) {\n        (function () {\n          _this._pendingForceUpdate = false;\n          // Will set `this.props`, `this.state` and `this.context`.\n          var prevContext = instance.context;\n\n          // Cannot use this.setState() in componentWillUpdate.\n          // If need to update state in response to a prop change, use componentWillReceiveProps instead.\n          performInSandbox(function () {\n            if (instance.componentWillUpdate) {\n              instance.componentWillUpdate(nextProps, nextState, nextContext);\n            }\n          });\n\n          // Replace with next\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          });\n\n          _this._updateCount++;\n        })();\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      }\n\n      _hook2.default.Reconciler.receiveComponent(this);\n    }\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\n      var instance = this._instance;\n      var nextRenderedElement = void 0;\n\n      _host2.default.component = this;\n\n      performInSandbox(function () {\n        nextRenderedElement = instance.render();\n      });\n\n      _host2.default.component = null;\n\n      if ((0, _shouldUpdateComponent2.default)(prevRenderedElement, nextRenderedElement)) {\n        prevRenderedComponent.updateComponent(prevRenderedElement, nextRenderedElement, prevRenderedComponent._context, this._processChildContext(context));\n      } else {\n        (function () {\n          var oldChild = prevRenderedComponent.getNativeNode();\n          prevRenderedComponent.unmountComponent(true);\n\n          _this2._renderedComponent = (0, _instantiateComponent2.default)(nextRenderedElement);\n          _this2._renderedComponent.mountComponent(_this2._parent, _this2._processChildContext(context), function (newChild, parent) {\n            _host2.default.driver.replaceChild(newChild, oldChild, parent);\n          });\n        })();\n      }\n    }\n  }, {\n    key: 'getNativeNode',\n    value: function getNativeNode() {\n      var renderedComponent = this._renderedComponent;\n      if (renderedComponent) {\n        return renderedComponent.getNativeNode();\n      }\n    }\n  }, {\n    key: 'getPublicInstance',\n    value: function getPublicInstance() {\n      var instance = this._instance;\n      // The Stateless components cannot be given refs\n      if (instance instanceof _stateless2.default) {\n        return null;\n      }\n      return instance;\n    }\n  }]);\n\n  return CompositeComponent;\n}();\n\nexports.default = CompositeComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/composite.js","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Stateless Component Class Wrapper\n */\nvar StatelessComponent = function () {\n  function StatelessComponent(pureRender) {\n    _classCallCheck(this, StatelessComponent);\n\n    // A stateless class\n\n    // A stateless function\n    this.pureRender = pureRender;\n  }\n\n  _createClass(StatelessComponent, [{\n    key: \"render\",\n    value: function render() {\n      return this.pureRender(this.props, this.context);\n    }\n  }]);\n\n  return StatelessComponent;\n}();\n\nexports.default = StatelessComponent;\nmodule.exports = exports[\"default\"];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/stateless.js","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\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);\n\n    if (!internal._pendingState) {\n      this.runUpdate(component);\n    }\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\n    enqueueCallback(internal, callback);\n    this.runUpdate(component);\n  },\n\n  runUpdate: function runUpdate(component) {\n    var internal = component._internal;\n\n    if (!internal || !internal._renderedComponent) {\n      return;\n    }\n\n    // 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    var callbacks = internal._pendingCallbacks;\n    internal._pendingCallbacks = null;\n\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    if (callbacks) {\n      callbacks.forEach(function (callback) {\n        return callback();\n      });\n    }\n  }\n\n};\n\nexports.default = Updater;\nmodule.exports = exports[\"default\"];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/updater.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\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 */\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/**\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 */\nfunction shallowEqual(objA, objB) {\n  if (is(objA, objB)) {\n    return true;\n  }\n\n  if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _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  }\n\n  // Test for A's keys different from B.\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\nexports.default = shallowEqual;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/shallowEqual.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _native = require('./native');\n\nvar _native2 = _interopRequireDefault(_native);\n\nvar _instance = require('./instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nvar _instantiateComponent = require('./instantiateComponent');\n\nvar _instantiateComponent2 = _interopRequireDefault(_instantiateComponent);\n\nvar _getElementKeyName = require('./getElementKeyName');\n\nvar _getElementKeyName2 = _interopRequireDefault(_getElementKeyName);\n\nvar _hook = require('../debug/hook');\n\nvar _hook2 = _interopRequireDefault(_hook);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Fragment Component\n */\nvar FragmentComponent = function (_NativeComponent) {\n  _inherits(FragmentComponent, _NativeComponent);\n\n  function FragmentComponent(element) {\n    _classCallCheck(this, FragmentComponent);\n\n    return _possibleConstructorReturn(this, (FragmentComponent.__proto__ || Object.getPrototypeOf(FragmentComponent)).call(this, element));\n  }\n\n  _createClass(FragmentComponent, [{\n    key: 'mountComponent',\n    value: function mountComponent(parent, context, childMounter) {\n      // Parent native element\n      this._parent = parent;\n      this._context = context;\n      this._mountID = _host2.default.mountID++;\n\n      var instance = {\n        _internal: this\n      };\n      this._instance = instance;\n\n      var nativeNode = this.getNativeNode();\n      var children = this._currentElement;\n\n      // Process children\n      this.mountChildren(children, context);\n\n      // Fragment child nodes append by tree mode\n      if (childMounter) {\n        childMounter(nativeNode, parent);\n      } else {\n        _host2.default.driver.appendChild(nativeNode, parent);\n      }\n\n      // set to right node when append to parent\n      this._nativeNode = parent;\n\n      _hook2.default.Reconciler.mountComponent(this);\n\n      return instance;\n    }\n  }, {\n    key: 'mountChildren',\n    value: function mountChildren(children, context) {\n      var _this2 = this;\n\n      var renderedChildren = {};\n      var fragment = this.getNativeNode();\n\n      var renderedChildrenImage = children.map(function (element, index) {\n        var renderedChild = (0, _instantiateComponent2.default)(element);\n        var name = (0, _getElementKeyName2.default)(renderedChildren, element, index);\n        renderedChildren[name] = renderedChild;\n        renderedChild._mountIndex = index;\n        // Mount\n        var mountImage = renderedChild.mountComponent(_this2._parent, context, function (nativeNode) {\n          _host2.default.driver.appendChild(nativeNode, fragment);\n        });\n        return mountImage;\n      });\n\n      this._renderedChildren = renderedChildren;\n\n      return renderedChildrenImage;\n    }\n  }, {\n    key: 'unmountComponent',\n    value: function unmountComponent(shouldNotRemoveChild) {\n      if (this._nativeNode) {\n        _instance2.default.remove(this._nativeNode);\n        if (!shouldNotRemoveChild) {\n          _host2.default.driver.removeChild(this._nativeNode, this._parent);\n        }\n      }\n\n      this.unmountChildren();\n\n      _hook2.default.Reconciler.unmountComponent(this);\n\n      this._currentElement = null;\n      this._nativeNode = null;\n      this._parent = 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      _hook2.default.Reconciler.receiveComponent(this);\n    }\n  }, {\n    key: 'getNativeNode',\n    value: function getNativeNode() {\n      if (this._nativeNode == null) {\n        this._nativeNode = _host2.default.driver.createFragment(this._instance);\n        // TODO instance cache\n      }\n\n      return this._nativeNode;\n    }\n  }, {\n    key: 'getPublicInstance',\n    value: function getPublicInstance() {\n      // TODO\n      return null;\n    }\n  }, {\n    key: 'getName',\n    value: function getName() {\n      return 'fragment';\n    }\n  }]);\n\n  return FragmentComponent;\n}(_native2.default);\n\nexports.default = FragmentComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/fragment.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _instance = require('./vdom/instance');\n\nvar _instance2 = _interopRequireDefault(_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  return _instance2.default.get(node);\n}\n\nexports.default = findComponentInstance;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/findComponentInstance.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = '0.1.5';\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/version.js"],"sourceRoot":""}