{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///mod) { try { mod = require(\\\"rax\\\") } catch(e) {} }return mod;})()\"","webpack:///./node_modules/_rax-view@0.6.5@rax-view/lib/index.js","webpack:///./node_modules/_simple-lodash@0.0.6@simple-lodash/lib/index.js","webpack:///./node_modules/_universal-env@0.6.6@universal-env/lib/index.js","webpack:///./node_modules/_object-assign@4.1.1@object-assign/index.js","webpack:///./node_modules/_rax-text@0.6.5@rax-text/lib/index.js","webpack:///./node_modules/_weex-bindingx@0.0.49@weex-bindingx/lib/index.js","webpack:///./node_modules/_rax-tab-panel@0.7.1@rax-tab-panel/lib/index.js","webpack:///./node_modules/_rax-tab-panel@0.7.1@rax-tab-panel/lib/Utils.js","webpack:///./node_modules/_rax-tab-panel@0.7.1@rax-tab-panel/lib/Detection.js","webpack:///./node_modules/_universal-transition@0.6.5@universal-transition/lib/index.js","webpack:///./node_modules/_rax-tab-panel@0.7.1@rax-tab-panel/lib/TabPanel.js","webpack:///./src/third-party/query-string.js","webpack:///./node_modules/_path-to-regexp@2.4.0@path-to-regexp/index.js","webpack:///./src/third-party/url-util.js","webpack:///./node_modules/_deep-assign@2.0.0@deep-assign/index.js","webpack:///external \"@weex-module/swipeBack\"","webpack:///./node_modules/_charenc@0.0.2@charenc/charenc.js","webpack:///./node_modules/_rax-tab-panel@0.7.1@rax-tab-panel/lib/BaseView.js","webpack:///./node_modules/_universal-animation@0.6.6@universal-animation/lib/index.js","webpack:///./node_modules/_md5@2.2.1@md5/md5.js","webpack:///./node_modules/_rax-button@0.6.5@rax-button/lib/index.js","webpack:///./node_modules/_rax-image@0.6.8@rax-image/lib/index.js","webpack:///./src/third-party/punycode.js","webpack:///./node_modules/_style-unit@0.6.5@style-unit/lib/index.js","webpack:///./node_modules/_crypt@0.0.2@crypt/crypt.js","webpack:///./node_modules/_is-buffer@1.1.6@is-buffer/index.js","webpack:///./node_modules/_is-obj@1.0.1@is-obj/index.js","webpack:///./node_modules/_rax-touchable@0.6.5@rax-touchable/lib/index.js","webpack:///./node_modules/_rax-tab-panel@0.7.1@rax-tab-panel/lib/TabController.js","webpack:///./node_modules/_rax-tab-panel@0.7.1@rax-tab-panel/lib/DefaultView.js","webpack:///./node_modules/_rax-tab-panel@0.7.1@rax-tab-panel/lib/PanView.js","webpack:///./node_modules/_rax-tab-panel@0.7.1@rax-tab-panel/lib/SliderView.js","webpack:///./node_modules/_rax-tab-panel@0.7.1@rax-tab-panel/lib/TabPanelView.js","webpack:///./node_modules/_rax-tab-panel@0.7.1@rax-tab-panel/lib/TabPanelLink.js","webpack:///./node_modules/_rax-link@0.6.5@rax-link/lib/index.js","webpack:///./src/IPhoneXHelper.js","webpack:///./src/Detection.js","webpack:///./src/Constant.js","webpack:///./src/Util.js","webpack:///./src/NavigationActions.js","webpack:///./src/Router.js","webpack:///./src/BaseViewContainer.js","webpack:///./src/views/HeaderRight.js","webpack:///./src/views/HeaderBackTitle.js","webpack:///./src/views/HeaderLeft.js","webpack:///./src/views/StackHeader.js","webpack:///./src/StackHeaderContainer.js","webpack:///./src/views/EdgePanView.js","webpack:///./src/TransitionConfig.js","webpack:///./src/StackViewContainer.js","webpack:///./node_modules/_@babel_runtime@7.4.2@@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/_resolve-pathname@2.2.0@resolve-pathname/index.js","webpack:///./node_modules/_value-equal@0.4.0@value-equal/index.js","webpack:///./node_modules/_tiny-invariant@1.0.4@tiny-invariant/dist/tiny-invariant.esm.js","webpack:///./node_modules/_history@4.9.0@history/esm/history.js","webpack:///./src/History.js","webpack:///./src/Navigation.js","webpack:///./src/BaseNavigator.js","webpack:///./src/views/Loading.js","webpack:///./src/StackNavigator.js","webpack:///./src/views/TabBar.js","webpack:///./src/TabViewContainer.js","webpack:///./src/TabNavigator.js","webpack:///./src/PanView.js","webpack:///./src/Link.js","webpack:///./src/index.js"],"names":["hasOwnProperty","obj","prop","Object","prototype","call","decode","qs","sep","eq","options","length","regexp","split","maxKeys","len","i","x","replace","idx","indexOf","kstr","vstr","k","v","substr","decodeURIComponent","Array","isArray","push","stringifyPrimitive","isFinite","encode","name","undefined","keys","map","ks","encodeURIComponent","join","exports","parse","stringify","punycode","require","util","isString","arg","isObject","isNull","isNullOrUndefined","urlParse","resolve","urlResolve","resolveObject","urlResolveObject","format","urlFormat","Url","protocol","slashes","auth","host","port","hostname","hash","search","query","pathname","path","href","protocolPattern","portPattern","simplePathPattern","delims","unwise","concat","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","url","parseQueryString","slashesDenoteHost","u","TypeError","queryIndex","splitter","uSplit","slashRegex","rest","trim","simplePath","exec","proto","lowerProto","toLowerCase","match","hostEnd","hec","atSign","lastIndexOf","slice","parseHost","ipv6Hostname","hostparts","l","part","newpart","j","charCodeAt","validParts","notHost","bit","unshift","toASCII","p","h","ae","esc","escape","qm","s","charAt","source","relative","rel","result","tkeys","tk","tkey","rkeys","rk","rkey","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","pop","authInHost","last","hasTrailingSlash","up","splice","isAbsolute","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","key","error","type","RangeError","array","fn","mapDomain","string","parts","labels","encoded","ucs2decode","output","counter","value","extra","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","input","inputLength","out","n","bias","basic","index","oldi","w","t","baseMinusT","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","test","iphonexhelper","isIphoneXSeries","isIphoneX","statusBarHeight","navBarHeight","bottomBarHeight","env","WXEnvironment","weexConfig","window","__weex_config__","weex","config","isIOS","platform","deviceHeight","isWeb","screen","width","height","parseInt","isWeex","statusbarHeight","deviceWidth","scale","e","console","warn","Detection","deviceInfo","assign","Android","iOS","appVersion","weexVersion","osVersion","ua","navigator","userAgent","EVENT_CELL_PAN_START","EVENT_WILL_FOCUS","EVENT_WILL_BLUR","EVENT_DID_FOCUS","EVENT_DID_BLUR","TYPE_NAVIGATOR_TAB","TYPE_NAVIGATOR_STACK","HEIGHT_TAB_BAR_DEFAULT","HEIGHT_STACK_HEADER_DEFAULT","ROUTE_STORE","ROUTE_TREE","PATH_NAME","ROUTE_NAME","QUERY_STRING","HASH_TOKEN_KEY","iphonexHelper","DEFAULT_DURATION","DEFAULT_EASING","isSupportNewBinding","bindingx","__i","uuid","id","param","QueryString","pathToRegexp","compile","err","urlMatch","reg","matchRouteByName","routerConfig","route","matchRestfulPath","restfulPath","realPath","params","execResult","matchRouteByPath","_","routeName","res","noop","forbidSwipeBack","isForbid","swipeBack","resolveFn","fnOrObj","args","isFunction","animate","ref","property","callback","el","findDOMNode","timingFunction","duration","transition","multipleAnimate","props","o","element","animation","getLast","isNavigator","component","navigatorType","pick","forEach","setItem","state","sessionStorage","JSON","getItem","val","isEventEqual","evt1","evt2","eventName","filterStyle","style","blackList","getEl","Event","on","handler","addEventListener","emit","data","event","dispatchEvent","BACK","INIT","NAVIGATE","RESET","SET_PARAMS","URI","createAction","toString","back","payload","action","init","navigate","reset","actions","setParams","uri","globalRouter","createRouterConfig","navigation","level","parentRoute","routes","getScreen","initialRouteName","initialRouteParams","initialRoutePath","queryRoute","routeObj","queryRoutes","fillRoutesWithInitialRoute","_queryRoutes","results","getInitialRoute","find","r","childRoute","Router","history","_onHistoryChange","location","direction","navigationActions","createNavigationActions","dispatch","ignoreHistory","addNavigation","listen","createNavigationAction","NavigationActions","parentAction","childAction","navigateAction","md5","Date","now","subRoute","fullPath","updateScreen","navAction","navigateByPath","goBack","go","createRouter","BaseViewContainer","_resolvedViews","resolveNavigationOptions","view","navigationOptions","guid","getChildContext","parentNavigation","Component","HeaderRight","render","headerRight","headerMode","headerStyle","styles","headerRightWrap","opacity","top","PureComponent","defaultProps","position","justifyContent","right","HeaderBackTitle","handleGoBack","headerBackTitle","headerTintColor","headerBackTitleStyle","showHeaderBackTitle","color","left","bottom","overflow","textAlign","fontSize","HeaderLeft","headerLeft","headerLeftWrap","computeHeight","header","headerHeight","StackHeader","resolveTitle","title","headerTitleStyle","navTitle","headerTransparent","nav","navTransparent","marginTop","headerTitle","backgroundColor","borderBottomWidth","borderColor","transform","fontWeight","FULL_WIDTH","StackHeaderContainer","getBindingProps","bindingProps","refs","current","expression","origin","prev","currentBackTitle","prevBackTitle","currentRight","prevRight","slideIn","animationConfig","slideOut","navigationOptionsArray","isSingle","views","firstNavigationOptions","container","isCurrent","isPrev","prevView","viewStyle","EDGE_PAN_THRESHOLD","EdgePanView","onHorizontalPan","handleEdgePanStart","onTouchStart","onEdgeHorizontalPan","changedTouches","pageX","gesturesEnabled","PREV_VIEW_RATIO","HORIZONTAL_PUSH","mask","maskTransitionSpec","initialStyle","inputRange","outputRange","transitionSpec","prevTransitionSpec","SCREEN_REF_PREFIX","SCREEN_REF_REGEXP","RegExp","negative","abs","transformExpression","in1","in2","out1","out2","inMax","max","inMin","min","outMax","outMin","inverse","y","ix","transformRangeSpec","progress","start","end","_start","StackViewContainer","screens","_transitionConfigs","bindCellPan","bindPan","resolveTransitionConfig","transitionConfig","prevRouteName","prevState","cachedKeyname","records","isEdgePan","curRoute","prevRoute","defaultTransitionConfig","getStackHeaderBindingProps","stackHeader","getScreenBindingProps","extraBindingProps","currentView","getScreenElementsBindingProps","curScreen","prevScreen","getScreenTransitionConfig","transitionElements","currentPanView","transitionScreens","transitionProps","screenTransitionConfig","delay","easing","prepend","setState","resolveNavigationOptionsArray","syncScreens","canPop","canPush","onTransitionStart","onTransitionEnd","setTimeout","refName","componentWillMount","Emitter","componentDidMount","anchor","startTime","screensProps","elementsProps","headerProps","Binding","bind","eventType","touchAction","dist","deltaX","_bindingToken","unbind","token","cardStyle","isPrevView","isNav","screenContainer","findIndex","card","mode","fullScreen","globalHistory","globalKey","getInitialPath","History","goForward","onHistoryChange","prevIndex","currentPath","curIndex","resetRecord","addRecord","initialPath","initialEntries","createMemoryHistory","createHashHistory","createBrowserHistory","weexNavigator","createHistory","handleBack","EVENTS_WHITE_LIST","Navigation","router","_screenEvents","navigatorComponent","currentRoute","getCurrentRoute","_triggerEvent","evt","lastState","addListener","existIndex","queryRoutesDeeply","updateScreenDeeply","BaseNavigator","handleViewAppear","triggerEventDeeply","handleViewDisappear","documentHidden","document","body","addEvent","hidden","getScreenComponent","Promise","then","usePrevState","_navigation","_route","handleDidEvent","handleWillEvent","createNavigator","NavigatorComponent","initialRoute","NavigatorContainer","DefaultLoading","loadingText","loadingIconSource","loadingIconStyle","loadingTextStyle","loadingWrapStyle","inner","pic","txt","Loading","isShow","shouldComponentUpdate","nextProps","nextState","show","hide","loadingComponent","alignItems","borderRadius","quality","StackNavigatorComponent","loading","info","viewContainer","routePath","gestureResponseDistance","horizontal","vertical","prevTransitionProps","isModal","StackNavigator","TabBar","handleClick","navigateMode","switchTo","afterSwitch","beforeSwitch","tabStyle","activeTintColor","activeBackgroundColor","inactiveTintColor","inactiveBackgroundColor","tabBarNavigationOptions","showLabel","labelStyle","tab","isActive","tabBarLabel","tabBarIcon","tintColor","tabItem","tabItemTxt","allowFontScaling","contextTypes","PropTypes","flexDirection","flex","tabItemActive","inheritOptionKeys","tabBarTop","tabBarBottom","borderTopWidth","TabViewContainer","parentNavigationTitle","beforeTabControllerSwitch","afterTabControllerSwitch","componentWillReceiveProps","isFirstInit","tabBar","tabController","context","showStackHeader","animationEnabled","swipeEnabled","tabBarOptions","tabBarPosition","tabBarComponent","parentNavigationOptions","tabBarHeight","stackNavigationOptions","resolvedNavigationOptions","tabBarProps","configureTransition","currentTransitionProps","nextTransitionProps","lazy","TabNavigatorComponent","routeNames","parentNavigator","TabNavigator","PanView","isPanning","onCellClick","onClick","onPress","preventMoveEvent","isInATabPanel","bool","link","Link","children"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;AClFA,6BAA6B,SAAS,WAAW,MAAM,uBAAuB,YAAY,EAAE,YAAY,I;;;;;;;ACA3F;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,WAAW,mBAAO,CAAC,CAAK;;AAExB,oBAAoB,mBAAO,CAAC,CAAe;;AAE3C,uBAAuB,2EAA2E,kCAAkC,mBAAmB,GAAG,EAAE,OAAO,kCAAkC,8HAA8H,GAAG,EAAE,qBAAqB;;AAE7V,qBAAqB,gDAAgD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe,GAAG,wCAAwC;;AAE3T,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,mCAAmC,0DAA0D,sFAAsF,gEAAgE,EAAE,GAAG,EAAE,iCAAiC,2CAA2C,EAAE,EAAE,EAAE,eAAe;;AAE/d,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE;;AAE3T,6DAA6D,sEAAsE,8DAA8D,oBAAoB;;AAErN,iDAAiD,0EAA0E,aAAa,EAAE,qCAAqC;;AAE/K,uCAAuC,uBAAuB,uFAAuF,EAAE,aAAa;;AAEpK,6BAA6B,gGAAgG,gDAAgD,GAAG,2BAA2B;;AAE3M,0CAA0C,+DAA+D,2EAA2E,EAAE,yEAAyE,eAAe,sDAAsD,EAAE,EAAE,uDAAuD;;AAE/X,gCAAgC,4EAA4E,iBAAiB,UAAU,GAAG,8BAA8B;;AAExK,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,yCAAyC;;AAEzC,yDAAyD;AACzD;AACA,SAAS;AACT;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oC;;;;;;AClFA;AACA,IAAI,IAAyD;AAC7D;AACA,MAAM,aAKJ;AACF,CAAC;AACD,oCAAoC;AACpC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B,EAAE;AAC/D,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA,8DAA8D,+DAA+D;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,UAAU,WAAW;AACrB;AACA;AACA,EAAE;AACF,EAAE;;AAEF;AACA;AACA;AACA,EAAE;AACF,EAAE;AACF;;AAEA;A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A,oBAAoB,mBAAO,CAAC,CAAe;;AAE3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,kBAAkB,mBAAO,CAAC,EAAwB;AAClD,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,C;;;;;;;ACvGa;;AAEb;AACA;;AAEA,oBAAoB,mBAAO,CAAC,CAAe;;AAE3C,2CAA2C,mBAAO,CAAC,CAAe;;AAElE,2CAA2C,mBAAO,CAAC,CAAe;;AAElE,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA,6EAA6E;;AAE7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,qBAAqB;AACtC;;AAEA,mBAAmB,SAAS;AAC5B;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2B;;;;;;;ACrGa;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,oBAAoB,mBAAO,CAAC,CAAe;;AAE3C,iBAAiB,mBAAO,CAAC,EAAY;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA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,IAAD,CAAnB,CAAlB,GAA+CxB,EAA/C,GACL6B,kBAAkB,CAACR,kBAAkB,CAAC7B,GAAD,CAAnB,CADpB;AAED,CAvBD;;AA0BAuC,OAAO,CAAClC,MAAR,GAAiBkC,OAAO,CAACC,KAAR,GAAgBnC,MAAjC;AACAkC,OAAO,CAACR,MAAR,GAAiBQ,OAAO,CAACE,SAAR,GAAoBV,MAArC,C;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,uBAAuB,kBAAkB;AACzC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;A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AAwE;;AAEvG,iCAAiC,+HAA+H;;AAEhK,kCAAkC,0BAA0B,8CAA8C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE;;AAEpK,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE;;AAE3T,6DAA6D,sEAAsE,8DAA8D,oBAAoB;;AAErN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;;AAEjE;AACA;AACA,SAAS,SAAS,MAAM;;;AAGxB,yGAAyG;AACzG;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;;AAET;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,SAAS;AACT;AACA,gDAAgD;AAChD;AACA;AACA,WAAW,KAAK;;AAEhB;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2B;;;;;;ACrTA;AACA,cAAc,mBAAO,CAAC,EAAO;AAC7B,aAAa,mBAAO,CAAC,EAAS;AAC9B,iBAAiB,mBAAO,CAAC,EAAW;AACpC,YAAY,mBAAO,CAAC,EAAS;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,cAAc;;AAEjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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AWyF,OApBF;AAqBT,eAAaiG;AArBJ,CAAX;AAwBe/K,uEAAf,E;;;;;;;ACnea;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,2EAA2E,kCAAkC,mBAAmB,GAAG,EAAE,OAAO,kCAAkC,8HAA8H,GAAG,EAAE,qBAAqB;;AAE7V;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gJAAgJ;;AAEhJ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;;;AAGA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;;;AAGA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2B;;;;;;AC7GA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,cAAc;AACnC;AACA;AACA,KAAK;;AAEL;AACA;AACA,0BAA0B,OAAO;AACjC;AACA;AACA,KAAK;;AAEL;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA,KAAK;;AAEL;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA,KAAK;;AAEL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA,KAAK;;AAEL;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAA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EAAE,EAAE,EAAE,eAAe,GAAG,wCAAwC;;AAE3T,+CAA+C,0DAA0D,2CAA2C,iCAAiC;;AAErL;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uEAAuE,aAAa;AACpF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,8BAA8B,wCAAwC,EAAE,sDAAsD,EAAE;AACvJ;;AAEA;AACA;AACA;AACA,oCAAoC,8BAA8B,8BAA8B,wCAAwC,EAAE,wCAAwC,EAAE,EAAE,8BAA8B,8BAA8B,wCAAwC,EAAE,wCAAwC,EAAE,EAAE,sDAAsD,EAAE,EAAE,8BAA8B,wCAAwC,EAAE,sDAAsD,EAAE,EAAE;AACpgB;;AAEA;AACA;AACA;AACA,mCAAmC,8BAA8B,8BAA8B,wCAAwC,EAAE,wCAAwC,EAAE,EAAE,8BAA8B,8BAA8B,wCAAwC,EAAE,wCAAwC,EAAE,EAAE,sDAAsD,EAAE,EAAE,8BAA8B,wCAAwC,EAAE,sDAAsD,EAAE,EAAE;AACngB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,WAAW,aAAa;AACxB;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,gEAAgE;AAChE;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2B;;;;;;;AChYA;AACa;;AAEb;AACA;;AAEA,WAAW,mBAAO,CAAC,CAAK;;AAExB,sCAAsC,mBAAO,CAAC,CAAU;;AAExD,oBAAoB,mBAAO,CAAC,CAAe;;AAE3C,sCAAsC,uCAAuC,gBAAgB;;AAE7F,qBAAqB,gDAAgD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe,GAAG,wCAAwC;;AAE3T,+CAA+C,0DAA0D,2CAA2C,iCAAiC;;AAErL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uEAAuE,aAAa;AACpF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0EAA0E,eAAe;AACzF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,gEAAgE;AAChE;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA,2B;;;;;;;ACpKA;AACa;;AAEb;AACA;;AAEA,WAAW,mBAAO,CAAC,CAAK;;AAExB,wCAAwC,mBAAO,CAAC,EAAY;;AAE5D,aAAa,mBAAO,CAAC,CAAS;;AAE9B,aAAa,mBAAO,CAAC,CAAS;;AAE9B,sCAAsC,uCAAuC,gBAAgB;;AAE7F,qBAAqB,gDAAgD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe,GAAG,wCAAwC;;AAE3T,+CAA+C,0DAA0D,2CAA2C,iCAAiC;;AAErL;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uEAAuE,aAAa;AACpF;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;AACL,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2B;;;;;;;AC7JA;AACa;;AAEb;AACA;;AAEA,WAAW,mBAAO,CAAC,CAAK;;AAExB,sCAAsC,mBAAO,CAAC,CAAU;;AAExD,aAAa,mBAAO,CAAC,CAAS;;AAE9B,wCAAwC,mBAAO,CAAC,CAAa;;AAE7D,sCAAsC,uCAAuC,gBAAgB;;AAE7F,qBAAqB,gDAAgD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe,GAAG,wCAAwC;;AAE3T,uCAAuC,uBAAuB,uFAAuF,EAAE,aAAa;;AAEpK,+CAA+C,0DAA0D,2CAA2C,iCAAiC;;AAErL;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uEAAuE,aAAa;AACpF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,2B;;;;;;;AC9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AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,eAAe,eAAQ,GAAG;AAC1B;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,0BAA0B,wCAAe;AACzC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uGAAuG,8BAAU;AACjH;;AAEA;AACA;;AAEA;AACA,IAAI,MAAqC,GAAG,SAAuE;AACnH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,UAAU,MAAqC,GAAG,SAAiG;AACnJ;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,uEAAuE,aAAa;AACpF;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,eAAe,MAAqC,GAAG,SAA+C,GAAG,kBAAS;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAqC,GAAG,SAAwN;AACpQ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,eAAQ;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,sCAAsC;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;;AAEtC;AACA;AACA;;AAEA;AACA,IAAI,MAAqC,GAAG,SAA6O;AACzR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP,QAAQ,MAAqC,GAAG,SAA+G;AAC/J;AACA;AACA,KAAK;AACL;;AAEA;AACA,IAAI,MAAqC,GAAG,SAAgP;AAC5R;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP,QAAQ,MAAqC,GAAG,SAAkH;AAClK;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,MAAqC,GAAG,SAA4C,GAAG,kBAAS;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,MAAqC,GAAG,SAAwN;AACpQ;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,eAAQ;;AAEZ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,6EAA6E;;AAE7E,sDAAsD,uBAAuB;;AAE7E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,sCAAsC;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA;;AAEA;AACA,IAAI,MAAqC,GAAG,SAA6E;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,QAAQ,MAAqC,GAAG,SAA4G;AAC5J;AACA;AACA,KAAK;AACL;;AAEA;AACA,IAAI,MAAqC,GAAG,SAAgF;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,IAAI,MAAqC,GAAG,SAA2F;AACvI;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,eAAQ;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG,EAAE;;AAEL;;AAEA;AACA,IAAI,MAAqC,GAAG,SAA6O;AACzR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,IAAI,MAAqC,GAAG,SAAgP;AAC5R;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEkI;;;;;;;;;ACv4BlI;AACA;AACA;AACA;AACA;AAGA,IAAIkE,qBAAa,GAAG,IAApB;AACA,IAAIC,SAAJ;;AAEA,SAASC,cAAT,CAAwBplB,OAAxB,EAAsC;AAAA,MAAdA,OAAc;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","file":"navigation.factory.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 36);\n","module.exports = (function(){ var mod;if (!mod) { try { mod = require(\"rax\") } catch(e) {} }return mod;})();","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _rax = require(\"rax\");\n\nvar _universalEnv = require(\"universal-env\");\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar View =\n/*#__PURE__*/\nfunction (_Component) {\n  _inherits(View, _Component);\n\n  function View() {\n    _classCallCheck(this, View);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(View).apply(this, arguments));\n  }\n\n  _createClass(View, [{\n    key: \"render\",\n    value: function render() {\n      var props = this.props;\n\n      if (_universalEnv.isWeex) {\n        // TODO: do not pass object value in props\n        return (0, _rax.createElement)(\"div\", props);\n      } else {\n        var styleProps = _objectSpread({}, styles.initial, props.style);\n\n        return (0, _rax.createElement)(\"div\", _extends({}, props, {\n          style: styleProps\n        }));\n      }\n    }\n  }]);\n\n  return View;\n}(_rax.Component);\n\n_defineProperty(View, \"propTypes\", {});\n\nvar styles = {\n  initial: {\n    border: '0 solid black',\n    position: 'relative',\n    boxSizing: 'border-box',\n    display: 'flex',\n    flexDirection: 'column',\n    alignContent: 'flex-start',\n    flexShrink: 0\n  }\n};\nvar _default = View;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (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/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nfunction findIndex(o, condition) {\n  return o.indexOf(find(o, condition));\n}\n\nfunction dropWhile(o, condition) {\n  var result = [];\n  map(o, function (v, k) {\n    if (!condition(v, k)) {\n      result.push(v);\n    }\n  });\n  return result;\n}\n\nfunction filter(o, condition) {\n  var result = [];\n  forEach(o, function (v, k) {\n    if (condition(v, k)) {\n      result.push(v);\n    }\n  });\n  return result;\n}\n\nfunction map(o, fn) {\n  if (o instanceof Array) {\n    return Array.prototype.map.call(o, fn);\n  } else {\n    var result = [];\n    forEach(o, function (v, k) {\n      result.push(fn(v, k));\n    });\n    return result;\n  }\n}\n\n/*\n forEach({a: 1, b: 2}, (v, k) => {\n console.log({\n v, k\n })\n })\n\n forEach([1,2,3],(v,k)=>{\n console.log({\n v,k\n })\n })\n */\n\nfunction forEach(o, fn) {\n  if (o instanceof Array) {\n    return Array.prototype.forEach.call(o, fn);\n  }\n  Object.keys(o).forEach(function (key) {\n    fn(o[key], key);\n  });\n}\n\n/* console.log(\n find([{name: 1}, {name: 2}], (o) => {\n return o.name === 2;\n }))\n\n console.log(find([{name: 1,age:2}, {name: 2}], {name:1}))\n */\nfunction find(o, condition) {\n  var result = null;\n  forEach(o, function (v, k) {\n    if (typeof condition === 'function') {\n      if (condition(v, k)) {\n        result = v;\n      }\n    } else {\n      var propName = Object.keys(condition)[0];\n      if (propName && v[propName] === condition[propName]) {\n        result = v;\n      }\n    }\n  });\n  return result;\n}\n\nvar _ = {\n  find: find,\n  forEach: forEach,\n  map: map,\n  filter: filter,\n  dropWhile: dropWhile,\n  findIndex: findIndex\n};\n\nexports.default = _;\nmodule.exports = exports['default'];\n\n/***/ })\n/******/ ]);\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.isReactNative = exports.isWeex = exports.isNode = exports.isWeb = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// https://www.w3.org/TR/html5/webappapis.html#dom-navigator-appcodename\nvar isWeb = (typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && (navigator.appCodeName === 'Mozilla' || navigator.product === 'Gecko');\nexports.isWeb = isWeb;\nvar isNode = typeof process !== 'undefined' && !!(process.versions && process.versions.node);\nexports.isNode = isNode;\nvar isWeex = typeof callNative === 'function' || (typeof WXEnvironment === \"undefined\" ? \"undefined\" : _typeof(WXEnvironment)) === 'object' && WXEnvironment.platform !== 'Web';\nexports.isWeex = isWeex;\nvar isReactNative = typeof __fbBatchedBridgeConfig !== 'undefined';\nexports.isReactNative = isReactNative;\nexports[\"default\"] = module.exports;\nvar _default = module.exports;\nexports.default = _default;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _rax = require(\"rax\");\n\nvar _universalEnv = require(\"universal-env\");\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Text =\n/*#__PURE__*/\nfunction (_Component) {\n  _inherits(Text, _Component);\n\n  function Text() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, Text);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Text)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"renderText\", function () {\n      var props = _this.props;\n\n      var nativeProps = _objectSpread({}, props, {\n        style: props.style || {}\n      });\n\n      var textString = '';\n\n      if (props.children != null) {\n        if (!Array.isArray(props.children)) {\n          textString = props.children.toString();\n        } else {\n          textString = props.children.join('');\n        }\n      }\n\n      if (_this.context.isInAParentText) {\n        return (0, _rax.createElement)(\"span\", nativeProps, textString);\n      }\n\n      if (props.onPress) {\n        nativeProps.onClick = props.onPress;\n      }\n\n      if (_universalEnv.isWeex) {\n        if (props.numberOfLines) {\n          nativeProps.style.lines = props.numberOfLines;\n        }\n\n        nativeProps.value = textString;\n        return (0, _rax.createElement)(\"text\", nativeProps);\n      } else {\n        var styleProps = _objectSpread({\n          whiteSpace: 'pre-wrap'\n        }, styles.text, nativeProps.style);\n\n        var numberOfLines = props.numberOfLines;\n\n        if (numberOfLines) {\n          if (parseInt(numberOfLines) === 1) {\n            styleProps.whiteSpace = 'nowrap';\n          } else {\n            styleProps.display = '-webkit-box';\n            styleProps.webkitBoxOrient = 'vertical';\n            styleProps.webkitLineClamp = String(numberOfLines);\n          }\n\n          styleProps.overflow = 'hidden';\n        }\n\n        return (0, _rax.createElement)(\"span\", _extends({}, nativeProps, {\n          style: styleProps\n        }), textString);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"renderRichText\", function () {\n      var props = _this.props;\n      var children = props.children;\n\n      var nativeProps = _objectSpread({}, props, {\n        style: props.style || {}\n      });\n\n      var styleProps = _objectSpread({}, styles.richtext, nativeProps.style);\n\n      if (_universalEnv.isWeex) {\n        children = transformChildren(children, _assertThisInitialized(_assertThisInitialized(_this)));\n      }\n\n      return (0, _rax.createElement)(\"p\", _extends({}, nativeProps, {\n        style: styleProps\n      }), children);\n    });\n\n    return _this;\n  }\n\n  _createClass(Text, [{\n    key: \"getChildContext\",\n    value: function getChildContext() {\n      return {\n        isInAParentText: true\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var props = this.props;\n      var children = props.children;\n\n      if (!Array.isArray(children)) {\n        children = [children];\n      }\n\n      var nested = false;\n\n      for (var i = 0; i < children.length; i++) {\n        var child = children[i];\n\n        if (child && _typeof(child) === 'object') {\n          nested = true;\n          break;\n        }\n      }\n\n      return nested ? this.renderRichText() : this.renderText();\n    }\n  }]);\n\n  return Text;\n}(_rax.Component);\n\n_defineProperty(Text, \"propTypes\", {});\n\n_defineProperty(Text, \"contextTypes\", {\n  isInAParentText: _rax.PropTypes.bool\n});\n\n_defineProperty(Text, \"childContextTypes\", {\n  isInAParentText: _rax.PropTypes.bool\n});\n\nfunction transformChild(child, instance) {\n  var ChildComponent = child.type,\n      props = child.props;\n  var children = props.children;\n\n  if (typeof ChildComponent === 'function') {\n    var childInstance = new ChildComponent();\n    childInstance.props = props;\n\n    if (children) {\n      childInstance.props.children = transformChildren(children, instance);\n    }\n\n    childInstance.context = instance.getChildContext();\n    return childInstance.render();\n  } else {\n    return child;\n  }\n}\n\nfunction transformChildren(children, instance) {\n  var elements = [];\n\n  if (!Array.isArray(children)) {\n    children = [children];\n  }\n\n  for (var i = 0; i < children.length; i++) {\n    var child = children[i];\n\n    if (typeof child === 'string') {\n      elements.push(child);\n    } else if (_typeof(child) === 'object') {\n      elements.push(transformChild(child, instance));\n    }\n  }\n\n  return elements;\n}\n\nvar styles = {\n  text: {\n    border: '0 solid black',\n    position: 'relative',\n    boxSizing: 'border-box',\n    display: 'block',\n    flexDirection: 'column',\n    alignContent: 'flex-start',\n    flexShrink: 0,\n    fontSize: 32\n  },\n  richtext: {\n    marginTop: 0,\n    marginBottom: 0\n  }\n};\nvar _default = Text;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","!function(t){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=t();else if(\"function\"==typeof define)define(\"index\",function(e,n,r){r.exports=t()});else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof self?self:\"undefined\"!=typeof global?global:this).index=t()}}(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=0)}([function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},o=n(1),i=n(3);function a(t){try{if(void 0!==(\"undefined\"==typeof weex?\"undefined\":r(weex))&&weex.requireModule)return weex.requireModule(t)}catch(t){}return window.require(\"@weex-module/\"+t)}var s=!0,u=!0,c=void 0,l={};if(o.isWeb)l=n(4);else{try{c=a(\"bindingx\"),s=!0}catch(t){s=!1}if(!c||!c.bind)try{c=a(\"binding\"),s=!0}catch(t){s=!1}if(!(s=!!(c&&c.bind&&c.unbind&&c.getComputedStyle)))try{c=a(\"expressionBinding\"),u=!0}catch(t){u=!1}u=!(!c||!c.bind&&!c.createBinding)}function f(t){if(void 0!==t){try{t=JSON.parse(t)}catch(t){}var e={};if(\"string\"==typeof t?e.origin=t:t&&(e.origin=t.origin,e.transformed=t.transformed),e.transformed||e.origin)return e.transformed=e.transformed||(0,i.parse)(e.origin),e}}e.default={isSupportNewBinding:s,isSupportBinding:u,_bindingInstances:[],bind:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};if(!t)throw new Error(\"should pass options for binding\");if(function(t){t&&(t.exitExpression=f(t.exitExpression),t.props&&t.props.forEach(function(t){t.expression=f(t.expression)}))}(t),!o.isWeex)return l.bind(t,e);if(c&&u){if(s)return c.bind(t,t&&\"timing\"===t.eventType?function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(\"function\"==typeof t)return t({state:\"end\"===e.state?\"exit\":e.state,t:void 0!==e.t?e.t:e.deltaT})}}(e):e);c.enableBinding(t.anchor,t.eventType),c.createBinding(t.anchor,t.eventType,\"\",function(t){if(t&&t.props)return t.props.map(function(t){return{element:t.element,property:t.property,expression:t.expression.transformed}})}(t),e)}},unbind:function(t){if(!t)throw new Error(\"should pass options for binding\");return o.isWeex?c&&u?s?c.unbind(t):c.disableBinding(t.anchor,t.eventType):void 0:l.unbind(t)},unbindAll:function(){return o.isWeex?c&&u?s?c.unbindAll():c.disableAll():void 0:l.unbindAll()},prepare:function(t){if(o.isWeex&&c&&u)return s?c.prepare(t):c.enableBinding(t.anchor,t.eventType)},getComputedStyle:function(t){return o.isWeex?s?c.getComputedStyle(t):{}:l.getComputedStyle(t)}},t.exports=e.default},function(t,e,n){\"use strict\";(function(n){function r(t){return(r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=e.isReactNative=e.isWeex=e.isNode=e.isWeb=void 0;var o=\"object\"===(\"undefined\"==typeof navigator?\"undefined\":r(navigator))&&(\"Mozilla\"===navigator.appCodeName||\"Gecko\"===navigator.product);e.isWeb=o;var i=void 0!==n&&!(!n.versions||!n.versions.node);e.isNode=i;var a=\"function\"==typeof callNative||\"object\"===(\"undefined\"==typeof WXEnvironment?\"undefined\":r(WXEnvironment))&&\"Web\"!==WXEnvironment.platform;e.isWeex=a;var s=\"undefined\"!=typeof __fbBatchedBridgeConfig;e.isReactNative=s,e.default=t.exports;var u=t.exports;e.default=u}).call(e,n(2))},function(t,e){var n,r,o=t.exports={};function i(){throw new Error(\"setTimeout has not been defined\")}function a(){throw new Error(\"clearTimeout has not been defined\")}function s(t){if(n===setTimeout)return setTimeout(t,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n=\"function\"==typeof setTimeout?setTimeout:i}catch(t){n=i}try{r=\"function\"==typeof clearTimeout?clearTimeout:a}catch(t){r=a}}();var u,c=[],l=!1,f=-1;function p(){l&&u&&(l=!1,u.length?c=u.concat(c):f=-1,c.length&&h())}function h(){if(!l){var t=s(p);l=!0;for(var e=c.length;e;){for(u=c,c=[];++f<e;)u&&u[f].run();f=-1,e=c.length}u=null,l=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function d(t,e){this.fun=t,this.array=e}function v(){}o.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];c.push(new d(t,e)),1!==c.length||l||s(h)},d.prototype.run=function(){this.fun.apply(null,this.array)},o.title=\"browser\",o.browser=!0,o.env={},o.argv=[],o.version=\"\",o.versions={},o.on=v,o.addListener=v,o.once=v,o.off=v,o.removeListener=v,o.removeAllListeners=v,o.emit=v,o.prependListener=v,o.prependOnceListener=v,o.listeners=function(t){return[]},o.binding=function(t){throw new Error(\"process.binding is not supported\")},o.cwd=function(){return\"/\"},o.chdir=function(t){throw new Error(\"process.chdir is not supported\")},o.umask=function(){return 0}},function(module,exports,__webpack_require__){!function(t,e){module.exports=e()}(\"undefined\"!=typeof self&&self,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=0)}([function(module,exports,__webpack_require__){\"use strict\";var _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},lex={InputElementDiv:\"<WhiteSpace>|<LineTerminator>|<ReservedWord>|<Identifier>|<NumericLiteral>|<Punctuator>|<StringLiteral>\",InputElementRegExp:\"<WhiteSpace>|<LineTerminator>|<ReservedWord>|<Identifier>|<NumericLiteral>|<Punctuator>|<StringLiteral>\",ReservedWord:\"<Keyword>|<NullLiteral>|<BooleanLiteral>\",WhiteSpace:/[\\t\\v\\f\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u200A\\u202F\\u205f\\u3000\\uFEFF]/,LineTerminator:/[\\n\\r\\u2028\\u2029]/,Keyword:/new(?![_$a-zA-Z0-9])|void(?![_$a-zA-Z0-9])|delete(?![_$a-zA-Z0-9])|in(?![_$a-zA-Z0-9])|instanceof(?![_$a-zA-Z0-9])|typeof(?![_$a-zA-Z0-9])/,NullLiteral:/null(?![_$a-zA-Z0-9])/,BooleanLiteral:/(?:true|false)(?![_$a-zA-Z0-9])/,Identifier:/[_$a-zA-Z][_$a-zA-Z0-9]*/,Punctuator:/\\/|=>|\\*\\*|>>>=|>>=|<<=|===|!==|>>>|<<|%=|\\*=|-=|\\+=|<=|>=|==|!=|\\^=|\\|=|\\|\\||&&|&=|>>|\\+\\+|--|\\:|}|\\*|&|\\||\\^|!|~|-|\\+|\\?|%|=|>|<|,|;|\\.(?![0-9])|\\]|\\[|\\)|\\(|{/,DivPunctuator:/\\/=|\\//,NumericLiteral:/(?:0[xX][0-9a-fA-F]*|\\.[0-9]+|(?:[1-9]+[0-9]*|0)(?:\\.[0-9]*|\\.)?)(?:[eE][+-]{0,1}[0-9]+)?(?![_$a-zA-Z0-9])/,StringLiteral:/\"(?:[^\"\\n\\\\\\r\\u2028\\u2029]|\\\\(?:['\"\\\\bfnrtv\\n\\r\\u2028\\u2029]|\\r\\n)|\\\\x[0-9a-fA-F]{2}|\\\\u[0-9a-fA-F]{4}|\\\\[^0-9ux'\"\\\\bfnrtv\\n\\\\\\r\\u2028\\u2029])*\"|'(?:[^'\\n\\\\\\r\\u2028\\u2029]|\\\\(?:['\"\\\\bfnrtv\\n\\r\\u2028\\u2029]|\\r\\n)|\\\\x[0-9a-fA-F]{2}|\\\\u[0-9a-fA-F]{4}|\\\\[^0-9ux'\"\\\\bfnrtv\\n\\\\\\r\\u2028\\u2029])*'/,RegularExpressionLiteral:/\\/(?:\\[(?:\\\\[\\s\\S]|[^\\]])*\\]|[^*\\/\\\\\\n\\r\\u2028\\u2029]|\\\\[^\\n\\r\\u2028\\u2029])(?:\\[(?:\\\\[\\s\\S]|[^\\]])*\\]|[^\\/\\\\\\n\\r\\u2028\\u2029]|\\\\[^\\n\\r\\u2028\\u2029])*\\/[0-9a-zA-Z]*/};function XRegExp(t,e,n){var r=[e];var o=function e(o){var i=new RegExp;return i.compile(o.replace(/<([^>]+)>/g,function(n,o){return t[o]?(r.push(o),t[o]instanceof RegExp?\"(\"+t[o].source+\")\":\"(\"+e(t[o]).source+\")\"):\"\"}),n),i}(t[e]);this.exec=function(t){var e=o.exec(t);if(null==e)return null;for(var n=new String(e[0]),i=0;i<r.length;i++)e[i]&&(n[r[i]]=e[i]);return n},Object.defineProperty(this,\"lastIndex\",{get:function(){return o.lastIndex},set:function(t){o.lastIndex=t}})}function LexicalParser(){var t,e=new XRegExp(lex,\"InputElementDiv\",\"g\"),n=new XRegExp(lex,\"InputElementRegExp\",\"g\");Object.defineProperty(this,\"source\",{get:function(){return t},set:function(r){t=r,e.lastIndex=0,n.lastIndex=0}}),this.reset=function(){e.lastIndex=0,n.lastIndex=0},this.getNextToken=function(r){var o,i=e.lastIndex,a=(o=r?e:n).exec(t);if(a&&o.lastIndex-i>a.length)throw new SyntaxError(\"Unexpected token ILLEGAL\");return e.lastIndex=o.lastIndex,n.lastIndex=o.lastIndex,a}}var rules={IdentifierName:[[\"Identifier\"]],Literal:[[\"NullLiteral\"],[\"BooleanLiteral\"],[\"NumericLiteral\"],[\"StringLiteral\"],[\"RegularExpressionLiteral\"]],PrimaryExpression:[[\"Identifier\"],[\"Literal\"],[\"(\",\"Expression\",\")\"]],CallExpression:[[\"PrimaryExpression\",\"Arguments\"],[\"CallExpression\",\"Arguments\"]],Arguments:[[\"(\",\")\"],[\"(\",\"ArgumentList\",\")\"]],ArgumentList:[[\"ConditionalExpression\"],[\"ArgumentList\",\",\",\"ConditionalExpression\"]],LeftHandSideExpression:[[\"PrimaryExpression\"],[\"CallExpression\"]],UnaryExpression:[[\"LeftHandSideExpression\"],[\"void\",\"UnaryExpression\"],[\"+\",\"UnaryExpression\"],[\"-\",\"UnaryExpression\"],[\"~\",\"UnaryExpression\"],[\"!\",\"UnaryExpression\"]],ExponentiationExpression:[[\"UnaryExpression\"],[\"ExponentiationExpression\",\"**\",\"UnaryExpression\"]],MultiplicativeExpression:[[\"MultiplicativeExpression\",\"/\",\"ExponentiationExpression\"],[\"ExponentiationExpression\"],[\"MultiplicativeExpression\",\"*\",\"ExponentiationExpression\"],[\"MultiplicativeExpression\",\"%\",\"ExponentiationExpression\"]],AdditiveExpression:[[\"MultiplicativeExpression\"],[\"AdditiveExpression\",\"+\",\"MultiplicativeExpression\"],[\"AdditiveExpression\",\"-\",\"MultiplicativeExpression\"]],ShiftExpression:[[\"AdditiveExpression\"],[\"ShiftExpression\",\"<<\",\"AdditiveExpression\"],[\"ShiftExpression\",\">>\",\"AdditiveExpression\"],[\"ShiftExpression\",\">>>\",\"AdditiveExpression\"]],RelationalExpression:[[\"ShiftExpression\"],[\"RelationalExpression\",\"<\",\"ShiftExpression\"],[\"RelationalExpression\",\">\",\"ShiftExpression\"],[\"RelationalExpression\",\"<=\",\"ShiftExpression\"],[\"RelationalExpression\",\">=\",\"ShiftExpression\"],[\"RelationalExpression\",\"instanceof\",\"ShiftExpression\"],[\"RelationalExpression\",\"in\",\"ShiftExpression\"]],EqualityExpression:[[\"RelationalExpression\"],[\"EqualityExpression\",\"==\",\"RelationalExpression\"],[\"EqualityExpression\",\"!=\",\"RelationalExpression\"],[\"EqualityExpression\",\"===\",\"RelationalExpression\"],[\"EqualityExpression\",\"!==\",\"RelationalExpression\"]],BitwiseANDExpression:[[\"EqualityExpression\"],[\"BitwiseANDExpression\",\"&\",\"EqualityExpression\"]],BitwiseXORExpression:[[\"BitwiseANDExpression\"],[\"BitwiseXORExpression\",\"^\",\"BitwiseANDExpression\"]],BitwiseORExpression:[[\"BitwiseXORExpression\"],[\"BitwiseORExpression\",\"|\",\"BitwiseXORExpression\"]],LogicalANDExpression:[[\"BitwiseORExpression\"],[\"LogicalANDExpression\",\"&&\",\"BitwiseORExpression\"]],LogicalORExpression:[[\"LogicalANDExpression\"],[\"LogicalORExpression\",\"||\",\"LogicalANDExpression\"]],ConditionalExpression:[[\"LogicalORExpression\"],[\"LogicalORExpression\",\"?\",\"LogicalORExpression\",\":\",\"LogicalORExpression\"]],Expression:[[\"ConditionalExpression\"],[\"Expression\",\",\",\"ConditionalExpression\"]],Program:[[\"Expression\"]]};function _Symbol(t,e){this.name=t,this.token=e,this.childNodes=[],this.toString=function(t){if(t||(t=\"\"),1==this.childNodes.length)return this.childNodes[0].toString(t);for(var e=t+this.name+(void 0!=this.token&&this.name!=this.token?\":\"+this.token:\"\")+\"\\n\",n=0;n<this.childNodes.length;n++)e+=this.childNodes[n].toString(t+\"    \");return e}}function SyntacticalParser(){var t={Program:\"$\"},e={};!function t(n){e[JSON.stringify(n)]=n;for(var r=Object.getOwnPropertyNames(n);r.length;){var o=r.shift();rules[o]&&rules[o].forEach(function(t){n[t[0]]||r.push(t[0]);var e=n;t.forEach(function(t){e[t]||(e[t]={}),e=e[t]}),n[o].$div&&(e.$div=!0),e.$reduce=o,e.$count=t.length})}for(var i in n)\"object\"!=_typeof(n[i])||\"$\"==i.charAt(0)||n[i].$closure||(e[JSON.stringify(n[i])]?n[i]=e[JSON.stringify(n[i])]:t(n[i]));n.$closure=!0}(t);var n=[],r=[t],o=t;this.insertSymbol=function(t,e){for(;!o[t.name]&&o.$reduce;){for(var i=o.$count,a=new _Symbol(o.$reduce);i--;)a.childNodes.push(n.pop()),r.pop();o=r[r.length-1],this.insertSymbol(a)}if(o=o[t.name],n.push(t),r.push(o),!o)throw new Error;return o.$div},this.reset=function(){o=t,n=[],r=[t]},Object.defineProperty(this,\"grammarTree\",{get:function(){try{for(;o.$reduce;){for(var t=o.$count,e=new _Symbol(o.$reduce);t--;)e.childNodes.push(n.pop()),r.pop();o=r[r.length-1],this.insertSymbol(e)}if(n.length>0&&o[\";\"])return this.insertSymbol(new _Symbol(\";\",\";\")),this.grammarTree;if(1!=n.length||\"Program\"!=n[0].name)throw new Error}catch(t){throw new SyntaxError(\"Unexpected end of input\")}return n[0]}})}function Parser(){this.lexicalParser=new LexicalParser,this.syntacticalParser=new SyntacticalParser;var t={};[\"NullLiteral\",\"BooleanLiteral\",\"NumericLiteral\",\"StringLiteral\",\"RegularExpressionLiteral\",\"Identifier\",\"**\",\"=>\",\"{\",\"}\",\"(\",\")\",\"[\",\"]\",\".\",\";\",\",\",\"<\",\">\",\"<=\",\">=\",\"==\",\"!=\",\"===\",\"!==\",\"+\",\"-\",\"*\",\"%\",\"++\",\"--\",\"<<\",\">>\",\">>>\",\"&\",\"|\",\"^\",\"!\",\"~\",\"&&\",\"||\",\"?\",\":\",\"=\",\"+=\",\"-=\",\"*=\",\"%=\",\"<<=\",\">>=\",\">>>=\",\"&=\",\"|=\",\"^=\",\"/\",\"/=\",\"instanceof\",\"typeof\",\"new\",\"void\",\"debugger\",\"this\",\"delete\",\"in\"].forEach(function(e){Object.defineProperty(t,e,{})}),this.reset=function(){this.lexicalParser.reset(),this.syntacticalParser.reset()},this.parse=function(e,n){var r,o=this,i=!1;this.lexicalParser.source=e;for(var a=!1;r=this.lexicalParser.getNextToken(a);){n&&n(r);try{if(Object.getOwnPropertyNames(r).some(function(e){return!!t.hasOwnProperty(e)&&(a=o.syntacticalParser.insertSymbol(new _Symbol(e,r),i),i=!1,!0)}))continue;(r.Keyword||r.Punctuator||r.DivPunctuator)&&t.hasOwnProperty(r.toString())&&(a=this.syntacticalParser.insertSymbol(new _Symbol(r.toString(),r),i))}catch(t){throw new SyntaxError(\"Unexpected token \"+r)}}return this.syntacticalParser.grammarTree}}var parser=new Parser;function JavaScriptExpression(text){parser.reset(),this.tree=parser.parse(text),this.paths=[];var context=Object.create(null),me=this,pathIndex=Object.create(null);function checkSimple(t){for(var e=t;e.childNodes.length<=1&&\"MemberExpression\"!==e.name;)e=e.childNodes[0];\"MemberExpression\"===e.name?me.isSimple=!0:me.isSimple=!1}function walk(t){if(\"CallExpression\"===t.name&&\"CallExpression\"!==t.childNodes[t.childNodes.length-1].name){getPath(t.childNodes[1]);walk(t.childNodes[0])}else if(\"NewExpression\"===t.name&&1===t.childNodes.length)getPath(t.childNodes[0]);else if(\"MemberExpression\"===t.name&&1===t.childNodes.length)getPath(t);else for(var e=0;e<t.childNodes.length;e++)walk(t.childNodes[e])}function getPath(t){var e;if(\"IdentifierName\"===t.childNodes[0].name)return(e=getPath(t.childNodes[2]))&&(e=e.concat(t.childNodes[0].childNodes[0].token.toString())),createPath(e),e;if(\"PrimaryExpression\"===t.childNodes[0].name)return\"Identifier\"===t.childNodes[0].childNodes[0].name?(createPath(e=[t.childNodes[0].childNodes[0].token.toString()]),e):null;if(\"]\"===t.childNodes[0].name)return getPath(t.childNodes[3]),walk(t.childNodes[1]),null;if(\"Arguments\"===t.childNodes[0].name)return walk(t.childNodes[0]),walk(t.childNodes[1]),null;for(var n=0;n<t.childNodes.length;n++)walk(t.childNodes[n])}function createPath(t){for(var e=context,n=0;n<t.length-1;n++)e[t[n]]||(e[t[n]]=Object.create(null)),e=e[t[n]];me.paths.push(t),pathIndex[t.join(\".\")]=!1}this.isSimple,this.isConst,walk(this.tree),checkSimple(this.tree),0===this.paths.length&&(this.isConst=!0),this.setter=function(t){for(var e=context,n=0;n<t.length-1;n++)e[t[n]]||(e[t[n]]=Object.create(null)),e=e[t[n]];return{isCompleted:function(){for(var t in pathIndex)if(!pathIndex[t])return!1;return!0},set:function(r){return pathIndex[t.join(\".\")]||(pathIndex[t.join(\".\")]=!0),e[t[n]]=r,this.isCompleted()?me.exec():void 0}}},this.valueOf=this.exec=function(){try{return function(){return eval(text)}.call(context)}catch(t){}}}function visit(t){var e,n=t.childNodes.slice().reverse(),r=n.filter(function(t){return!t.token||!t.token.Punctuator});if(\"UnaryExpression\"===t.name&&(2===n.length&&\"-\"===n[0].name&&1===r.length))return(e=visit(r[0])).value=-e.value,e;if(\"Arguments\"===t.name){for(var o=[],i=r[0];i;)3===i.childNodes.length&&(o.unshift(i.childNodes[0]),i=i.childNodes[2]),1===i.childNodes.length&&(o.unshift(i.childNodes[0]),i=null);return{type:\"Arguments\",children:o.map(function(t){return visit(t)})}}if(r&&1===r.length)return e=visit(r[0]);if(t.token&&[\"NullLiteral\",\"BooleanLiteral\",\"NumericLiteral\",\"StringLiteral\",\"Identifier\"].some(function(e){return t.token[e]})){var a=Object.keys(t.token).filter(function(t){return t.match(/Literal/)||t.match(/Identifier/)})[0];return{type:a,value:{NullLiteral:null,BooleanLiteral:Boolean(t.token),NumericLiteral:Number(t.token),StringLiteral:t.token,Identifier:t.token}[a]}}return\"CallExpression\"===t.name?{type:\"CallExpression\",children:[visit(n[0]),visit(n[1])]}:{type:n.filter(function(t){return t.token&&t.token.Punctuator})[0].name,children:n.filter(function(t){return!t.token||!t.token.Punctuator}).map(function(t){return visit(t)})}}function parse(t){var e=new JavaScriptExpression(t);return JSON.stringify(visit(e.tree),null)}module.exports={parse:parse}}])})},function(t,e,n){!function(e,n){t.exports=n()}(\"undefined\"!=typeof self&&self,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=9)}([function(t,e,n){\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var t=new String(\"abc\");if(t[5]=\"de\",\"5\"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e[\"_\"+String.fromCharCode(n)]=n;if(\"0123456789\"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(\"\"))return!1;var r={};return\"abcdefghijklmnopqrst\".split(\"\").forEach(function(t){r[t]=t}),\"abcdefghijklmnopqrst\"===Object.keys(Object.assign({},r)).join(\"\")}catch(t){return!1}}()?Object.assign:function(t,e){for(var n,a,s=function(t){if(null===t||void 0===t)throw new TypeError(\"Object.assign cannot be called with null or undefined\");return Object(t)}(t),u=1;u<arguments.length;u++){for(var c in n=Object(arguments[u]))o.call(n,c)&&(s[c]=n[c]);if(r){a=r(n);for(var l=0;l<a.length;l++)i.call(n,a[l])&&(s[a[l]]=n[a[l]])}}return s}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=function(t){return t&&t.__esModule?t:{default:t}}(n(2)),i=n(3);var a=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.binding=null,this.binding=e;var n=e.options.props;o.default.map(n,function(t){var e=t.element,n=t.config;n&&e&&(n.perspective&&e.parentNode&&(e.parentNode.style[(0,i.prefixStyle)(\"transformStyle\")]=\"preserve-3d\",e.parentNode.style[(0,i.prefixStyle)(\"perspective\")]=n.perspective+\"px\",e.parentNode.style[(0,i.prefixStyle)(\"perspectiveOrigin\")]=\"0 0\"),n.transformOrigin&&(e.style[(0,i.prefixStyle)(\"transformOrigin\")]=n.transformOrigin))})}return r(t,[{key:\"destroy\",value:function(){}}]),t}();e.default=a},function(t,e,n){!function(e,n){t.exports=n()}(\"undefined\"!=typeof self&&self,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=0)}([function(t,e,n){\"use strict\";function r(t,e){if(t instanceof Array)return Array.prototype.map.call(t,e);var n=[];return o(t,function(t,r){n.push(e(t,r))}),n}function o(t,e){if(t instanceof Array)return Array.prototype.forEach.call(t,e);Object.keys(t).forEach(function(n){e(t[n],n)})}function i(t,e){var n=null;return o(t,function(t,r){if(\"function\"==typeof e)e(t,r)&&(n=t);else{var o=Object.keys(e)[0];o&&t[o]===e[o]&&(n=t)}}),n}t.exports={find:i,forEach:o,map:r,filter:function(t,e){var n=[];return o(t,function(t,r){e(t,r)&&n.push(t)}),n},dropWhile:function(t,e){var n=[];return r(t,function(t,r){e(t,r)||n.push(t)}),n},findIndex:function(t,e){return t.indexOf(i(t,e))}}}])})},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(){return function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&s.return&&s.return()}finally{if(o)throw i}}return n}(t,e);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}();function o(t){return t/document.body.clientWidth*750}var i=function(){for(var t=document.createElement(\"div\").style,e=[\"t\",\"webkitT\",\"MozT\",\"msT\",\"OT\"],n=0,r=e.length;n<r;n++)if(e[n]+\"ransform\"in t)return e[n].substr(0,e[n].length-1);return!1}();var a={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},s=/([astvzqmhlc])([^astvzqmhlc]*)/gi;e.matrixToTransformObj=function(t){\"none\"===t&&(t=\"matrix(1,0,0,1,0,0)\");Math.atan;var e=Math.atan2,n=Math.round,i=Math.sqrt,a=(Math.PI,{skewY:0,skewX:0,translateX:0,translateY:0,scaleX:1,scaleY:1}),s=t.split(\"(\")[1];if(!(s=(s=s&&s.split(\")\")[0])&&s.split(\",\"))||!s.length)return a;var u=r(s,6),c=u[0],l=u[1],f=u[2],p=u[3],h=u[4],d=u[5];return a.rotate=a.rotateZ=n(e(parseFloat(l),parseFloat(c))*(180/Math.PI))||0,a.translateX=void 0!==h?o(h):0,a.translateY=void 0!==d?o(d):0,a.scaleX=i(c*c+l*l),a.scaleY=i(f*f+p*p),a},e.pxTo750=o,e.px=function(t){return t/750*document.body.clientWidth},e.clamp=function(t,e,n){return t<e?e:t>n?n:t},e.prefixStyle=function(t){return!1!==i&&(\"\"===i?t:i+t.charAt(0).toUpperCase()+t.substr(1))},e.parseSVGPath=function(t,e){var n=[];return t.replace(s,function(t,e,r){var o=e.toLowerCase();for(r=function(t){var e=t.match(/-?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)?/gi);return e?e.map(Number):[]}(r),\"m\"===o&&r.length>2&&(n.push([e].concat(r.splice(0,2))),o=\"l\",e=\"m\"===e?\"l\":\"L\");r.length>=0;){if(r.length===a[o])return r.unshift(e),n.push(r);if(r.length<a[o])throw new Error(\"malformed path data\");n.push([e].concat(r.splice(0,a[o])))}}),\"function\"==typeof e?n.map(function(t){return t.map(function(t,n){return n>0?e(t):t})}):n},e.stringifySVGPath=function(t,e){return\"function\"==typeof e&&(t=t.map(function(t){return t.map(function(t,n){return n>0?e(t):t})})),t.map(function(t){return t.join(\" \")}).join(\" \")},e.interceptSVGPath=function(t,e,n,r){return t&&t[e]&&(n=[r=(r&&r.replace(/'|\"/g,\"\")||t[e][0]).replace(/'|\"/g,\"\")].concat(function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}(n)),t[e]=n),t}},function(t,e,n){!function(e,n){t.exports=n()}(0,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=3)}([function(t,e,n){\"use strict\";var r=Math.PI,o=Math.sin,i=Math.cos,a=Math.sqrt,s=Math.pow,u=1.70158,c=1.525*u,l=2*r/3,f=2*r/4.5;function p(t){var e=7.5625,n=2.75;return t<1/n?e*t*t:t<2/n?e*(t-=1.5/n)*t+.75:t<2.5/n?e*(t-=2.25/n)*t+.9375:e*(t-=2.625/n)*t+.984375}var h={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return 1-(1-t)*(1-t)},easeInOutQuad:function(t){return t<.5?2*t*t:1-s(-2*t+2,2)/2},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return 1-s(1-t,3)},easeInOutCubic:function(t){return t<.5?4*t*t*t:1-s(-2*t+2,3)/2},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1-s(1-t,4)},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-s(-2*t+2,4)/2},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1-s(1-t,5)},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1-s(-2*t+2,5)/2},easeInSine:function(t){return 1-i(t*r/2)},easeOutSine:function(t){return o(t*r/2)},easeInOutSine:function(t){return-(i(r*t)-1)/2},easeInExpo:function(t){return 0===t?0:s(2,10*t-10)},easeOutExpo:function(t){return 1===t?1:1-s(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:t<.5?s(2,20*t-10)/2:(2-s(2,-20*t+10))/2},easeInCirc:function(t){return 1-a(1-s(t,2))},easeOutCirc:function(t){return a(1-s(t-1,2))},easeInOutCirc:function(t){return t<.5?(1-a(1-s(2*t,2)))/2:(a(1-s(-2*t+2,2))+1)/2},easeInElastic:function(t){return 0===t?0:1===t?1:-s(2,10*t-10)*o((10*t-10.75)*l)},easeOutElastic:function(t){return 0===t?0:1===t?1:s(2,-10*t)*o((10*t-.75)*l)+1},easeInOutElastic:function(t){return 0===t?0:1===t?1:t<.5?-s(2,20*t-10)*o((20*t-11.125)*f)/2:s(2,-20*t+10)*o((20*t-11.125)*f)/2+1},easeInBack:function(t){return 2.70158*t*t*t-u*t*t},easeOutBack:function(t){return 1+2.70158*s(t-1,3)+u*s(t-1,2)},easeInOutBack:function(t){return t<.5?s(2*t,2)*(7.189819*t-c)/2:(s(2*t-2,2)*((c+1)*(2*t-2)+c)+2)/2},easeInBounce:function(t){return 1-p(1-t)},easeOutBounce:p,easeInOutBounce:function(t){return t<.5?(1-p(1-2*t))/2:(1+p(2*t-1))/2},cubicBezier:function(){}};t.exports=h},function(t,e,n){\"use strict\";t.exports=function(t,e,n,r,o){var i=function(e){var r=1-e;return 3*r*r*e*t+3*r*e*e*n+e*e*e},a=function(t){var n=1-t;return 3*n*n*t*e+3*n*t*t*r+t*t*t},s=function(e){var r=1-e;return 3*(2*(e-1)*e+r*r)*t+3*(-e*e*e+2*r*e)*n};return function(t){var e,n,r,u,c,l,f=t;for(r=f,l=0;l<8;l++){if(u=i(r)-f,Math.abs(u)<o)return a(r);if(c=s(r),Math.abs(c)<1e-6)break;r-=u/c}if(n=1,(r=f)<(e=0))return a(e);if(r>n)return a(n);for(;e<n;){if(u=i(r),Math.abs(u-f)<o)return a(r);f>u?e=r:n=r,r=.5*(n-e)+e}return a(r)}}},function(t,e,n){\"use strict\";var r=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)},o=window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||window.clearTimeout;t.exports={raf:r,cancelRAF:o}},function(t,e,n){\"use strict\";t.exports=n(4)},function(t,e,n){\"use strict\";var r=n(0),o=n(1),i=n(2),a=i.raf,s=i.cancelRAF,u=n(5),c=\"start\",l=\"end\",f=\"run\",p=\"stop\",h=function(){};function d(t){this.init(t)}d.prototype={init:function(t){this.cfg=u({easing:\"linear\",duration:1/0,onStart:h,onRun:h,onStop:h,onEnd:h},t)},run:function(){var t=this.cfg,e=t.duration,n=t.onStart,i=t.onRun;if(e<=1&&(this.isfinished=!0,\"function\"==typeof i&&i({percent:1}),this.stop()),!this.isfinished){this._hasFinishedPercent=this._stop&&this._stop.percent||0,this._stop=null,this.start=Date.now(),this.percent=0,\"function\"==typeof n&&n({percent:0,type:c});var a=1e3/60/e/4,s=this.cfg.bezierArgs;this.easingFn=s&&4===s.length?o(s[0],s[1],s[2],s[3],a):r[this.cfg.easing],this._run()}},_run:function(){var t=this,e=this.cfg,n=e.onRun,r=e.onStop;s(this._raf),this._raf=a(function(){if(t.now=Date.now(),t.t=t.now-t.start,t.duration=t.now-t.start>=t.cfg.duration?t.cfg.duration:t.now-t.start,t.progress=t.easingFn(t.duration/t.cfg.duration),t.percent=t.duration/t.cfg.duration+t._hasFinishedPercent,t.percent>=1||t._stop)return t.percent=t._stop&&t._stop.percent?t._stop.percent:1,t.duration=t._stop&&t._stop.duration?t._stop.duration:t.duration,\"function\"==typeof n&&n({percent:t.progress,originPercent:t.percent,t:t.t,type:f}),\"function\"==typeof r&&r({percent:t.percent,t:t.t,type:p}),void(t.percent>=1&&(t.isfinished=!0,t.stop()));\"function\"==typeof n&&n({percent:t.progress,originPercent:t.percent,t:t.t,type:f}),t._run()})},stop:function(){var t=this.cfg.onEnd;this._stop={percent:this.percent,now:this.now},\"function\"==typeof t&&t({percent:1,t:this.t,type:l}),s(this._raf)}},d.Easing=r,d.Bezier=o,d.raf=a,d.cancelRAF=s,t.exports=d},function(t,e,n){\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var t=new String(\"abc\");if(t[5]=\"de\",\"5\"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e[\"_\"+String.fromCharCode(n)]=n;if(\"0123456789\"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(\"\"))return!1;var r={};return\"abcdefghijklmnopqrst\".split(\"\").forEach(function(t){r[t]=t}),\"abcdefghijklmnopqrst\"===Object.keys(Object.assign({},r)).join(\"\")}catch(t){return!1}}()?Object.assign:function(t,e){for(var n,a,s=function(t){if(null===t||void 0===t)throw new TypeError(\"Object.assign cannot be called with null or undefined\");return Object(t)}(t),u=1;u<arguments.length;u++){for(var c in n=Object(arguments[u]))o.call(n,c)&&(s[c]=n[c]);if(r){a=r(n);for(var l=0;l<a.length;l++)i.call(n,a[l])&&(s[a[l]]=n[a[l]])}}return s}}])})},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(t){return t&&t.__esModule?t:{default:t}}(n(6));function o(t,e,n){this.x=t||0,this.y=e||0,this.z=n||0}o.prototype={constructor:o,isVector3:!0,set:function(t,e,n){return this.x=t,this.y=e,this.z=n,this},applyEuler:function(){var t;return function(e){return!1===(e&&e.isEuler)&&console.error(\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\"),void 0===t&&(t=new r.default),this.applyQuaternion(t.setFromEuler(e))}}(),applyQuaternion:function(t){var e=this.x,n=this.y,r=this.z,o=t.x,i=t.y,a=t.z,s=t.w,u=s*e+i*r-a*n,c=s*n+a*e-o*r,l=s*r+o*n-i*e,f=-o*e-i*n-a*r;return this.x=u*s+f*-o+c*-a-l*-i,this.y=c*s+f*-i+l*-o-u*-a,this.z=l*s+f*-a+u*-i-c*-o,this}},e.default=o},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(t){return t&&t.__esModule?t:{default:t}}(n(0));function o(t,e,n,r){this._x=t||0,this._y=e||0,this._z=n||0,this._w=void 0!==r?r:1}o.prototype={constructor:o,get x(){return this._x},set x(t){this._x=t,this.onChangeCallback()},get y(){return this._y},set y(t){this._y=t,this.onChangeCallback()},get z(){return this._z},set z(t){this._z=t,this.onChangeCallback()},get w(){return this._w},set w(t){this._w=t,this.onChangeCallback()},set:function(t,e,n,r){return this._x=t,this._y=e,this._z=n,this._w=r,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this.onChangeCallback(),this},setFromEuler:function(t,e){if(!1===(t&&t.isEuler))throw new Error(\"THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.\");var n=Math.cos(t._x/2),r=Math.cos(t._y/2),o=Math.cos(t._z/2),i=Math.sin(t._x/2),a=Math.sin(t._y/2),s=Math.sin(t._z/2),u=t.order;return\"XYZ\"===u?(this._x=i*r*o+n*a*s,this._y=n*a*o-i*r*s,this._z=n*r*s+i*a*o,this._w=n*r*o-i*a*s):\"YXZ\"===u?(this._x=i*r*o+n*a*s,this._y=n*a*o-i*r*s,this._z=n*r*s-i*a*o,this._w=n*r*o+i*a*s):\"ZXY\"===u?(this._x=i*r*o-n*a*s,this._y=n*a*o+i*r*s,this._z=n*r*s+i*a*o,this._w=n*r*o-i*a*s):\"ZYX\"===u?(this._x=i*r*o-n*a*s,this._y=n*a*o+i*r*s,this._z=n*r*s-i*a*o,this._w=n*r*o+i*a*s):\"YZX\"===u?(this._x=i*r*o+n*a*s,this._y=n*a*o+i*r*s,this._z=n*r*s-i*a*o,this._w=n*r*o-i*a*s):\"XZY\"===u&&(this._x=i*r*o-n*a*s,this._y=n*a*o-i*r*s,this._z=n*r*s+i*a*o,this._w=n*r*o+i*a*s),!1!==e&&this.onChangeCallback(),this},setFromAxisAngle:function(t,e){var n=e/2,r=Math.sin(n);return this._x=t.x*r,this._y=t.y*r,this._z=t.z*r,this._w=Math.cos(n),this.onChangeCallback(),this},multiply:function(t,e){return void 0!==e?(console.warn(\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\"),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)},multiplyQuaternions:function(t,e){var n=t._x,r=t._y,o=t._z,i=t._w,a=e._x,s=e._y,u=e._z,c=e._w;return this._x=n*c+i*a+r*u-o*s,this._y=r*c+i*s+o*a-n*u,this._z=o*c+i*u+n*s-r*a,this._w=i*c-n*a-r*s-o*u,this.onChangeCallback(),this},slerp:function(t,e){if(0===e)return this;if(1===e)return this.copy(t);var n=this._x,r=this._y,o=this._z,i=this._w,a=i*t._w+n*t._x+r*t._y+o*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=i,this._x=n,this._y=r,this._z=o,this;var s=Math.sqrt(1-a*a);if(Math.abs(s)<.001)return this._w=.5*(i+this._w),this._x=.5*(n+this._x),this._y=.5*(r+this._y),this._z=.5*(o+this._z),this;var u=Math.atan2(s,a),c=Math.sin((1-e)*u)/s,l=Math.sin(e*u)/s;return this._w=i*c+this._w*l,this._x=n*c+this._x*l,this._y=r*c+this._y*l,this._z=o*c+this._z*l,this.onChangeCallback(),this},onChange:function(t){return this.onChangeCallback=t,this},onChangeCallback:function(){}},(0,r.default)(o,{slerp:function(t,e,n,r){return n.copy(t).slerp(e,r)},slerpFlat:function(t,e,n,r,o,i,a){var s=n[r+0],u=n[r+1],c=n[r+2],l=n[r+3],f=o[i+0],p=o[i+1],h=o[i+2],d=o[i+3];if(l!==d||s!==f||u!==p||c!==h){var v=1-a,y=s*f+u*p+c*h+l*d,g=y>=0?1:-1,b=1-y*y;if(b>Number.EPSILON){var m=Math.sqrt(b),x=Math.atan2(m,y*g);v=Math.sin(v*x)/m,a=Math.sin(a*x)/m}var _=a*g;if(s=s*v+f*_,u=u*v+p*_,c=c*v+h*_,l=l*v+d*_,v===1-a){var w=1/Math.sqrt(s*s+u*u+c*c+l*l);s*=w,u*=w,c*=w,l*=w}}t[e]=s,t[e+1]=u,t[e+2]=c,t[e+3]=l}}),e.default=o},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,degToRad:function(t){return t*r.DEG2RAD},radToDeg:function(t){return t*r.RAD2DEG}};e.default=r},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=s(n(2)),i=s(n(0)),a=n(3);function s(t){return t&&t.__esModule?t:{default:t}}Math.abs;var u={pointers:2,threshold:2},c=function(){function t(e,n){var r=this;!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.lastScale=-1,this.lastRotation=-1,this.rotation=-1,this.lastDistance=0,this.deltaX=0,this.deltaY=0,this.events={pinchstart:[],pinch:[],pinchend:[],pinchcancel:[],rotationstart:[],rotation:[],rotationend:[],rotationcancel:[]},this.onTouchStart=function(t){},this.handleGestureStart=function(t){t.preventDefault();var e=(0,a.pxTo750)(t.touches[0].pageX),n=(0,a.pxTo750)(t.touches[0].pageY),o=(0,a.pxTo750)(t.touches[1].pageX),i=(0,a.pxTo750)(t.touches[1].pageY);r.lastDistance=r.distanceBetweenTwoPoints(e,o,n,i),r.lastScale=1,r.lastRotation=r.getAngle(e,n,o,i),r.events.pinchstart.forEach(function(t){t({scale:r.lastScale})}),r.events.rotationstart.forEach(function(t){t({rotation:0})})},this.getPointerNum=function(t){return t.touches.length},this.distanceBetweenTwoPoints=function(t,e,n,r){return Math.hypot(e-t,r-n)},this.onTouchMove=function(t){var e=r.config,n=e.pointers;e.threshold;if(r.getPointerNum(t)===n)if(r.lastScale<0||r.lastRotation<0)r.handleGestureStart(t);else{var o=(0,a.pxTo750)(t.touches[0].pageX),i=(0,a.pxTo750)(t.touches[0].pageY),s=(0,a.pxTo750)(t.touches[1].pageX),u=(0,a.pxTo750)(t.touches[1].pageY),c=r.distanceBetweenTwoPoints(o,s,i,u);r.lastScale=c/r.lastDistance;var l=r.getAngle(o,i,s,u);r.rotation=l-r.lastRotation,r.events.pinch.forEach(function(t){t({scale:r.lastScale})}),r.events.rotation.forEach(function(t){t({rotation:r.rotation})})}},this.onTouchEnd=function(t){r.events.pinchend.forEach(function(t){t({scale:r.lastScale})}),r.events.rotationend.forEach(function(t){t({scale:r.rotation})})},this.onTouchCancel=function(t){r.events.pinchcancel.forEach(function(t){t({scale:r.lastScale})}),r.events.rotationcancel.forEach(function(t){t({scale:r.rotation})})},this.el=e,this.config=(0,i.default)(u,n),this.el.addEventListener(\"touchstart\",this.onTouchStart),this.el.addEventListener(\"touchmove\",this.onTouchMove),this.el.addEventListener(\"touchend\",this.onTouchEnd),this.el.addEventListener(\"touchcancel\",this.onTouchCancel)}return r(t,[{key:\"getAngle\",value:function(t,e,n,r){return 180*Math.atan2(r-e,n-t)/Math.PI}},{key:\"on\",value:function(t,e){this.events[t]&&this.events[t].push(e)}},{key:\"destroy\",value:function(){this.el.removeEventListener(\"touchstart\",this.onTouchStart),this.el.removeEventListener(\"touchmove\",this.onTouchMove),this.el.removeEventListener(\"touchend\",this.onTouchEnd),this.el.removeEventListener(\"touchcancel\",this.onTouchCancel),this.offAll(),this.lastDistance=0,this.lastScale=-1,this.lastRotation=-1,this.rotation=-1}},{key:\"offAll\",value:function(){var t=this;o.default.map(this.events,function(e,n){o.default.forEach(e,function(e){t.off(n,e)})})}},{key:\"off\",value:function(t,e){if(t&&t&&this.events[t]&&this.events[t].length){if(!e)return;var n=o.default.find(this.events[t],function(t){return t===e}),r=o.default.findIndex(this.events[t],function(t){return t===e});n&&this.events[t].splice(r,1)}}}]),t}();e.default=c},function(t,e,n){\"use strict\";var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=l(n(2)),i=l(n(10)),a=n(11),s=n(3),u=l(n(21)),c=l(n(0));function l(t){return t&&t.__esModule?t:{default:t}}var f=(0,s.prefixStyle)(\"transform\");function p(t,e,n){t.transform[e]=n,t.shouldTransform=!0}function h(t){if(t instanceof HTMLElement||t instanceof SVGElement){var e=window.getComputedStyle(t),n=(0,s.matrixToTransformObj)(e[f]);return n.opacity=Number(e.opacity),n[\"background-color\"]=e[\"background-color\"],n.color=e.color,n.width=(0,s.pxTo750)(e.width.replace(\"px\",\"\")),n.height=(0,s.pxTo750)(e.height.replace(\"px\",\"\")),n[\"border-top-left-radius\"]=(0,s.pxTo750)(e[\"border-top-left-radius\"].replace(\"px\",\"\")),n[\"border-top-right-radius\"]=(0,s.pxTo750)(e[\"border-top-right-radius\"].replace(\"px\",\"\")),n[\"border-bottom-left-radius\"]=(0,s.pxTo750)(e[\"border-bottom-left-radius\"].replace(\"px\",\"\")),n[\"border-bottom-right-radius\"]=(0,s.pxTo750)(e[\"border-bottom-right-radius\"].replace(\"px\",\"\")),n[\"margin-top\"]=(0,s.pxTo750)(e[\"margin-top\"].replace(\"px\",\"\")),n[\"margin-bottom\"]=(0,s.pxTo750)(e[\"margin-bottom\"].replace(\"px\",\"\")),n[\"margin-left\"]=(0,s.pxTo750)(e[\"margin-left\"].replace(\"px\",\"\")),n[\"margin-right\"]=(0,s.pxTo750)(e[\"margin-right\"].replace(\"px\",\"\")),n[\"padding-top\"]=(0,s.pxTo750)(e[\"padding-top\"].replace(\"px\",\"\")),n[\"padding-bottom\"]=(0,s.pxTo750)(e[\"padding-bottom\"].replace(\"px\",\"\")),n[\"padding-left\"]=(0,s.pxTo750)(e[\"padding-left\"].replace(\"px\",\"\")),n[\"padding-right\"]=(0,s.pxTo750)(e[\"padding-right\"].replace(\"px\",\"\")),n}}var d=function(){function t(e,n){switch(function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._eventHandler=null,this.elTransforms=[],this.elPaths=[],this.token=null,this.options=e,this.callback=n,this.token=this.genToken(),this._initElTransforms(),e.eventType){case\"pan\":this._eventHandler=new a.PanHandler(this);break;case\"pinch\":this._eventHandler=new a.PinchHandler(this);break;case\"rotation\":this._eventHandler=new a.RotationHandler(this);break;case\"orientation\":this._eventHandler=new a.OrientationHandler(this);break;case\"timing\":this._eventHandler=new a.TimingHandler(this);break;case\"scroll\":this._eventHandler=new a.ScrollHandler(this)}}return r(t,[{key:\"genToken\",value:function(){return parseInt(1e7*Math.random())}},{key:\"_initElTransforms\",value:function(){var t=this.options.props,e=void 0===t?[]:t,n=this.elTransforms;e.forEach(function(t){var e=t.element;if(!o.default.find(n,function(t){return t.element===e})){var r={translateX:0,translateY:0,translateZ:0,scaleX:1,scaleY:1,scaleZ:1,rotateX:0,rotateY:0,rotateZ:0,skewX:0,skewY:0};if(e instanceof SVGElement){var i=h(e);r.translateX=(0,s.px)(i.translateX),r.translateY=(0,s.px)(i.translateY),r.rotateZ=i.rotateZ,r.scaleX=i.scaleX,r.scaleY=i.scaleY,r.skewX=i.skewX,r.skewY=i.skewY}n.push({element:e,transform:r})}})}},{key:\"getValue\",value:function(t,e){return i.default.execute(e,(0,c.default)(u.default,t))}},{key:\"setProperty\",value:function(t,e,n){if(this.options.debug&&console.log(\"property:\",e,\" value:\",n),t instanceof HTMLElement){var r=o.default.find(this.elTransforms,function(e){return e.element===t});switch(e){case\"scroll.contentOffsetY\":t.scrollTop=(0,s.px)(n);break;case\"scroll.contentOffsetX\":t.scrollLeft=(0,s.px)(n);break;case\"transform.translateX\":p(r,\"translateX\",(0,s.px)(n));break;case\"transform.translateY\":p(r,\"translateY\",(0,s.px)(n));break;case\"transform.translateZ\":p(r,\"translateZ\",(0,s.px)(n));break;case\"transform.rotateX\":p(r,\"rotateX\",n);break;case\"transform.rotateY\":p(r,\"rotateY\",n);break;case\"transform.rotateZ\":case\"transform.rotate\":p(r,\"rotateZ\",n);break;case\"transform.scaleX\":p(r,\"scaleX\",n);break;case\"transform.scaleY\":p(r,\"scaleY\",n);break;case\"transform.scale\":p(r,\"scaleX\",n),p(r,\"scaleY\",n);break;case\"opacity\":t.style.opacity=n;break;case\"background-color\":t.style[\"background-color\"]=n;break;case\"color\":t.style.color=n;break;case\"width\":case\"height\":case\"border-top-left-radius\":case\"border-top-right-radius\":case\"border-bottom-left-radius\":case\"border-bottom-right-radius\":case\"border-radius\":case\"margin-top\":case\"margin-bottom\":case\"margin-left\":case\"margin-right\":case\"padding-top\":case\"padding-bottom\":case\"padding-left\":case\"padding-right\":t.style[e]=(0,s.px)(n)+\"px\"}r&&r.shouldTransform&&(t.style[f]=[\"translateX(\"+r.transform.translateX+\"px)\",\"translateY(\"+r.transform.translateY+\"px)\",\"translateZ(\"+r.transform.translateZ+\"px)\",\"scaleX(\"+r.transform.scaleX+\")\",\"scaleY(\"+r.transform.scaleY+\")\",\"rotateX(\"+r.transform.rotateX+\"deg)\",\"rotateY(\"+r.transform.rotateY+\"deg)\",\"rotateZ(\"+r.transform.rotateZ+\"deg)\"].join(\" \"))}else if(t instanceof SVGElement){var i=o.default.find(this.elTransforms,function(e){return e.element===t});switch(e){case\"svg-dashoffset\":t.setAttribute(\"stroke-dashoffset\",(0,s.px)(n));break;case\"svg-transform.translateX\":p(i,\"translateX\",(0,s.px)(n));break;case\"svg-transform.translateY\":p(i,\"translateY\",(0,s.px)(n));break;case\"svg-transform.translateZ\":p(i,\"translateZ\",(0,s.px)(n));break;case\"svg-transform.rotateX\":p(i,\"rotateX\",n);break;case\"svg-transform.rotateY\":p(i,\"rotateY\",n);break;case\"svg-transform.rotateZ\":case\"svg-transform.rotate\":p(i,\"rotateZ\",n);break;case\"svg-transform.scaleX\":p(i,\"scaleX\",n);break;case\"svg-transform.scaleY\":p(i,\"scaleY\",n);break;case\"svg-transform.scale\":p(i,\"scaleX\",n),p(i,\"scaleY\",n);break;case\"svg-transform.skewX\":p(i,\"skewX\",n);break;case\"svg-transform.skewY\":p(i,\"skewY\",n);break;case\"svg-path\":var a=o.default.find(this.elPaths,function(e){return e.element===t});if(a&&a.path||(a={element:t,path:(0,s.parseSVGPath)(t.getAttribute(\"d\"),s.pxTo750)},this.elPaths.push(a)),a&&a.path)if(n&&n.length)for(var u=0;u<n.length;u++)a.path=(0,s.interceptSVGPath)(a.path,n[u].index,n[u].values,n[u].cmd);else a.path=(0,s.interceptSVGPath)(a.path,n.index,n.values,n.cmd)}var c=o.default.find(this.elPaths,function(e){return e.element===t});c&&c.path&&t.setAttribute(\"d\",(0,s.stringifySVGPath)(c.path,s.px)),i.shouldTransform&&(t.style[f]=[\"translateX(\"+i.transform.translateX+\"px)\",\"translateY(\"+i.transform.translateY+\"px)\",\"translateZ(\"+i.transform.translateZ+\"px)\",\"scaleX(\"+i.transform.scaleX+\")\",\"scaleY(\"+i.transform.scaleY+\")\",\"rotateX(\"+i.transform.rotateX+\"deg)\",\"rotateY(\"+i.transform.rotateY+\"deg)\",\"rotateZ(\"+i.transform.rotateZ+\"deg)\",\"skewX(\"+i.transform.skewX+\"deg)\",\"skewY(\"+i.transform.skewY+\"deg)\"].join(\" \"))}else switch(e){case\"lottie-progress\":\"function\"==typeof t.setProgress&&t.setProgress(n)}}},{key:\"destroy\",value:function(){this._eventHandler.destroy()}}]),t}();t.exports={_bindingInstances:[],bind:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};if(!t)throw new Error(\"should pass options for binding\");var r=o.default.filter(this._bindingInstances,function(e){if(t.anchor)return e.options.anchor===t.anchor&&e.options.eventType===t.eventType});r&&o.default.forEach(r,function(t){t.destroy(),e._bindingInstances=o.default.dropWhile(e._bindingInstances,function(e){return e===t})});var i=new d(t,n);return this._bindingInstances.push(i),{token:i.token}},unbind:function(t){if(!t)throw new Error(\"should pass options for binding\");var e=o.default.find(this._bindingInstances,function(e){return e.options.eventType===t.eventType&&e.token===t.token});e&&e.destroy()},unbindAll:function(){this._bindingInstances.forEach(function(t){t.destroy({eventType:t.options.eventType,token:t.token})})},getComputedStyle:h}},function(t,e,n){\"use strict\";function r(t){return Number(t)}function o(t){return!!t}function i(t,e){return t==e}function a(t,e){return t===e}Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={execute:function t(e,n){var s=e.type,u=e.children;switch(s){case\"StringLiteral\":return String(e.value);case\"NumericLiteral\":return parseFloat(e.value);case\"BooleanLiteral\":return!!e.value;case\"Identifier\":return n[e.value];case\"CallExpression\":for(var c=t(u[0],n),l=[],f=u[1].children,p=0;p<f.length;p++)l.push(t(f[p],n));return c.apply(null,l);case\"?\":return t(u[0],n)?t(u[1],n):t(u[2],n);case\"+\":return r(t(u[0],n))+r(t(u[1],n));case\"-\":return r(t(u[0],n))-r(t(u[1],n));case\"*\":return r(t(u[0],n))*r(t(u[1],n));case\"/\":return r(t(u[0],n))/r(t(u[1],n));case\"%\":return r(t(u[0],n))%r(t(u[1],n));case\"**\":return Math.pow(r(t(u[0],n)),r(t(u[1],n)));case\">\":return r(t(u[0],n))>r(t(u[1],n));case\"<\":return r(t(u[0],n))<r(t(u[1],n));case\">=\":return r(t(u[0],n))>=r(t(u[1],n));case\"<=\":return r(t(u[0],n))<=r(t(u[1],n));case\"==\":return i(t(u[0],n),t(u[1],n));case\"===\":return a(t(u[0],n),t(u[1],n));case\"!=\":return!i(t(u[0],n),t(u[1],n));case\"!==\":return!a(t(u[0],n),t(u[1],n));case\"&&\":var h=void 0;return o(h=t(u[0],n))?t(u[1],n):h;case\"||\":return o(h=t(u[0],n))?h:t(u[1],n);case\"!\":return!o(t(u[0],n))}return null}}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.RotationHandler=e.PinchHandler=e.ScrollHandler=e.TimingHandler=e.OrientationHandler=e.PanHandler=void 0;var r=c(n(12)),o=c(n(14)),i=c(n(17)),a=c(n(18)),s=c(n(19)),u=c(n(20));function c(t){return t&&t.__esModule?t:{default:t}}e.PanHandler=r.default,e.OrientationHandler=o.default,e.TimingHandler=i.default,e.ScrollHandler=a.default,e.PinchHandler=s.default,e.RotationHandler=u.default},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=a(n(13)),i=a(n(1));function a(t){return t&&t.__esModule?t:{default:t}}var s=function(t){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,e);var n=function(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));n._onPan=function(t){var e=t.deltaX,r=t.deltaY,o=n.binding.options.props;(void 0===o?[]:o).forEach(function(t){var o=t.element,i=t.property,a=t.expression,s=JSON.parse(a.transformed),u=n.binding.getValue({x:e,y:r},s);n.binding.setProperty(o,i,u),o.style.transition=\"\",o.style.webkitTransition=\"\"})},n._onPanStart=function(){n.binding.callback({deltaX:0,state:\"start\",deltaY:0})},n._onPanEnd=function(t){n.binding.callback({deltaX:parseInt(t.deltaX),state:\"end\",deltaY:parseInt(t.deltaY)})};var r=t.options.anchor,i=n.panGesture=new o.default(r,t.options.options);return i.on(\"pan\",n._onPan),i.on(\"panstart\",n._onPanStart),i.on(\"panend\",n._onPanEnd),n}return function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,i.default),r(e,[{key:\"destroy\",value:function(){var t=this.panGesture;t.off(\"pan\",this._onPan),t.off(\"panstart\",this._onPanStart),t.off(\"panend\",this._onPanEnd),t.destroy()}}]),e}();e.default=s},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=s(n(2)),i=s(n(0)),a=n(3);function s(t){return t&&t.__esModule?t:{default:t}}var u=Math.abs,c={thresholdX:10,thresholdY:10,touchAction:\"auto\",touchActionRatio:.5},l=function(){function t(e,n){var r=this;!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.startX=null,this.startY=null,this.panStartX=null,this.panStartY=null,this.deltaX=0,this.deltaY=0,this.events={panstart:[],pan:[],panend:[],pancancel:[]},this.onTouchStart=function(t){},this.handlePanStart=function(t){if(t.preventDefault(),null===r.panStartX||null===r.panStartY)return r.panStartX=(0,a.pxTo750)(t.touches[0].pageX),r.panStartY=(0,a.pxTo750)(t.touches[0].pageY),void r.events.panstart.forEach(function(e){e(t)})},this.onTouchMove=function(t){var e=r.config,n=e.thresholdX,o=e.thresholdY,i=e.touchAction,s=e.touchActionRatio;null!==r.startX&&null!==r.startY||(r.startX=t.touches[0].pageX,r.startY=t.touches[0].pageY);var c=t.touches[0].pageX-r.startX,l=t.touches[0].pageY-r.startY;switch(i){case\"auto\":t.preventDefault(),(u(c)>=n||u(l)>=o)&&r.handlePanStart(t);break;case\"pan-x\":u(c)>=n&&u(l/c)<s&&u(l)<o&&r.handlePanStart(t);break;case\"pan-y\":u(l)>=o&&u(c/l)<s&&u(c)<n&&r.handlePanStart(t)}if(null!==r.panStartX&&null!==r.panStartY){switch(i){case\"auto\":r.deltaX=(0,a.pxTo750)(t.touches[0].pageX)-r.panStartX,r.deltaY=(0,a.pxTo750)(t.touches[0].pageY)-r.panStartY;break;case\"pan-x\":r.deltaX=(0,a.pxTo750)(t.touches[0].pageX)-r.panStartX,r.deltaY=0;break;case\"pan-y\":r.deltaX=0,r.deltaY=(0,a.pxTo750)(t.touches[0].pageY)-r.panStartY}t.deltaX=r.deltaX,t.deltaY=r.deltaY,r.events.pan.forEach(function(e){e(t)})}},this.onTouchEnd=function(t){t.deltaX=r.deltaX,t.deltaY=r.deltaY,r.events.panend.forEach(function(e){e(t)})},this.onTouchCancel=function(t){t.deltaX=r.deltaX,t.deltaY=r.deltaY,r.events.pancancel.forEach(function(e){e(t)})},this.el=e,this.config=(0,i.default)(c,n),this.el.addEventListener(\"touchstart\",this.onTouchStart),this.el.addEventListener(\"touchmove\",this.onTouchMove),this.el.addEventListener(\"touchend\",this.onTouchEnd),this.el.addEventListener(\"touchcancel\",this.onTouchCancel)}return r(t,[{key:\"on\",value:function(t,e){this.events[t]&&this.events[t].push(e)}},{key:\"destroy\",value:function(){this.el.removeEventListener(\"touchstart\",this.onTouchStart),this.el.removeEventListener(\"touchmove\",this.onTouchMove),this.el.removeEventListener(\"touchend\",this.onTouchEnd),this.el.removeEventListener(\"touchcancel\",this.onTouchCancel),this.offAll(),this.startX=null,this.startY=null,this.panStartX=null,this.panStartY=null}},{key:\"offAll\",value:function(){var t=this;o.default.map(this.events,function(e,n){o.default.forEach(e,function(e){t.off(n,e)})})}},{key:\"off\",value:function(t,e){if(t&&t&&this.events[t]&&this.events[t].length){if(!e)return;var n=o.default.find(this.events[t],function(t){return t===e}),r=o.default.findIndex(this.events[t],function(t){return t===e});n&&this.events[t].splice(r,1)}}}]),t}();e.default=l},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=l(n(5)),i=l(n(15)),a=l(n(7)),s=n(4),u=l(n(1)),c=l(n(0));function l(t){return t&&t.__esModule?t:{default:t}}var f=function(t){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,e);var n=function(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return n.binding=null,n.control=null,n.start=null,n.timer=null,n._onOrientation=function(t){n.binding.options.props.forEach(function(e){var r=e.element,o=e.property,i=e.expression,a=JSON.parse(i.transformed),s=n.binding.getValue(t,a);n.binding.setProperty(r,o,s)})},n.options=(0,c.default)({sceneType:\"2d\"},t.options.options),n.binding=t,\"2d\"===n.options.sceneType.toLowerCase()?(n.controlX=new i.default({beta:90}),n.controlY=new i.default({gamma:90,alpha:0})):n.control=new i.default,n.run(),n}return function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,u.default),r(e,[{key:\"run\",value:function(){var t=this;if(\"2d\"===this.options.sceneType.toLowerCase()){this.controlX.update(),this.controlY.update();var e=this.controlX.deviceOrientation,n=e.alpha,r=e.beta,i=e.gamma,u=e.dalpha,c=e.dbeta,l=e.dgamma,f=new o.default(0,0,1);f.applyQuaternion(this.controlX.quaternion);var p=new o.default(0,1,1);p.applyQuaternion(this.controlY.quaternion);var h=a.default.radToDeg(Math.acos(f.x))-90,d=a.default.radToDeg(Math.acos(p.y))-90;if(this.start||isNaN(h)||isNaN(d)||(this.start={x:h,y:d}),this.start){var v=h-this.start.x,y=d-this.start.y;this._onOrientation({x:h,y:d,dx:v,dy:y,alpha:n,beta:r,gamma:i,dalpha:u,dbeta:c,dgamma:l})}}else{this.control.update();var g=this.control.deviceOrientation,b=g.alpha,m=g.beta,x=g.gamma,_=g.dalpha,w=g.dbeta,E=g.dgamma,O=this.control.quaternion,k=O.x,S=O.y,P=O.z;this._onOrientation({alpha:b,beta:m,gamma:x,dalpha:_,dbeta:w,dgamma:E,x:k,y:S,z:P})}this.timer=(0,s.raf)(function(){t.run()})}},{key:\"destroy\",value:function(){this.timer&&((0,s.cancelRAF)(this.timer),this.timer=null)}}]),e}();e.default=f},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=u(n(6)),o=u(n(5)),i=u(n(16)),a=u(n(7)),s=u(n(0));function u(t){return t&&t.__esModule?t:{default:t}}function c(t){return void 0===t||isNaN(t)||null===t}e.default=function(t){var e=this;this.object=(0,s.default)({alphaOffsetAngle:0,betaOffsetAngle:0,gammaOffsetAngle:0},t),this.alphaOffsetAngle=this.object.alphaOffsetAngle,this.betaOffsetAngle=this.object.betaOffsetAngle,this.gammaOffsetAngle=this.object.gammaOffsetAngle,this.quaternion=new r.default(0,0,0,1),this.enabled=!0,this.deviceOrientation={},this.screenOrientation=0,this.start=null,this.recordsAlpha=[];var n=function(t){var n=t.alpha,r=t.beta,o=t.gamma,i=e.recordsAlpha;e.start||(e.start={alpha:n,beta:r,gamma:o}),i.push(n),i.length>5&&(i=function(t,e){var n=t.length,r=0;if(n>1)for(var o=0;o<n;o++)void 0!=t[o-1]&&void 0!=t[o]&&(t[o]-t[o-1]<-e/2&&(r=Math.floor(t[o-1]/e)+1,t[o]=t[o]+r*e),t[o]-t[o-1]>e/2&&(t[o]=t[o]-e));return t}(i,360)).shift();var a=(i[i.length-1]-e.start.alpha)%360;c(n)||c(r)||c(o)||(e.enabled=!0),e.deviceOrientation={alpha:n,beta:r,gamma:o,formatAlpha:a,dalpha:n-e.start.alpha,dbeta:r-e.start.beta,dgamma:o-e.start.gamma}},u=function(){e.screenOrientation=window.orientation||0},l=function(){var t=new o.default(0,0,1),e=new i.default,n=new r.default,a=new r.default(-Math.sqrt(.5),0,0,Math.sqrt(.5));return function(r,o,i,s,u){e.set(i,o,-s,\"YXZ\"),r.setFromEuler(e),r.multiply(a),r.multiply(n.setFromAxisAngle(t,-u))}}();this.connect=function(){u(),window.addEventListener(\"orientationchange\",u,!1),window.addEventListener(\"deviceorientation\",n,!1)},this.disconnect=function(){window.removeEventListener(\"orientationchange\",u,!1),window.removeEventListener(\"deviceorientation\",n,!1),e.enabled=!1},this.update=function(){if(!1!==e.enabled){var t=c(e.deviceOrientation.formatAlpha)?0:a.default.degToRad(c(e.object.alpha)?e.deviceOrientation.formatAlpha+e.alphaOffsetAngle:e.object.alpha),n=c(e.deviceOrientation.beta)?0:a.default.degToRad(c(e.object.beta)?e.deviceOrientation.beta+e.betaOffsetAngle:e.object.beta),r=c(e.deviceOrientation.gamma)?0:a.default.degToRad(c(e.object.gamma)?e.deviceOrientation.gamma+e.gammaOffsetAngle:e.object.gamma),o=e.screenOrientation?a.default.degToRad(e.screenOrientation):0;l(e.quaternion,t,n,r,o)}},this.updateAlphaOffsetAngle=function(t){this.alphaOffsetAngle=t,this.update()},this.updateBetaOffsetAngle=function(t){this.betaOffsetAngle=t,this.update()},this.updateGammaOffsetAngle=function(t){this.gammaOffsetAngle=t,this.update()},this.dispose=function(){this.disconnect()},this.connect()}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}();var o=function(){function t(e,n,r,o){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.isEuler=!0,this._x=0,this._y=0,this._z=0,this._x=e||0,this._y=n||0,this._z=r||0,this._order=o||t.DefaultOrder}return r(t,[{key:\"set\",value:function(t,e,n,r){return this._x=t,this._y=e,this._z=n,this._order=r||this._order,this.onChangeCallback(),this}},{key:\"onChange\",value:function(t){return this.onChangeCallback=t,this}},{key:\"onChangeCallback\",value:function(){}},{key:\"order\",get:function(){return this._order},set:function(t){this._order=t,this.onChangeCallback()}}]),t}();o.RotationOrders=[\"XYZ\",\"YZX\",\"ZXY\",\"XZY\",\"YXZ\",\"ZYX\"],o.DefaultOrder=\"XYZ\",e.default=o},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},o=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),i=s(n(4)),a=s(n(1));function s(t){return t&&t.__esModule?t:{default:t}}var u=function(t){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,e);var n=function(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t)),o=n.binding.options,a=o.props,s=void 0===a?[]:a,u=o.exitExpression;s.forEach(function(t){var e=t.expression;e&&e.transformed&&\"string\"==typeof e.transformed&&(e.transformed=JSON.parse(e.transformed))});var c=void 0;return u&&u.transformed&&(c=JSON.parse(u.transformed)),(n.animation=new i.default({duration:1/0,easing:\"linear\",onStart:function(){n.binding.callback({state:\"start\",t:0})},onRun:function(t){c&&n.binding.getValue({t:t.t},c)&&n.animation.stop(),s.forEach(function(e){n.animate(r({exitTransformed:c,t:t.t},e))})},onStop:function(t){n.binding.callback({state:\"exit\",t:t.t-1e3/60})}})).run(),n}return function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,a.default),o(e,[{key:\"animate\",value:function(t){var e=t.element,n=t.property,r=t.expression,o=t.t,i=this.binding.getValue({t:o},r.transformed);this.binding.setProperty(e,n,i)}},{key:\"destroy\",value:function(){this.animation&&this.animation.stop()}}]),e}();e.default=u},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=function(t){return t&&t.__esModule?t:{default:t}}(n(1)),i=n(3);function a(t,e){return t/e<0}var s=function(t){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,e);var n=function(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));n.dx=0,n.dy=0,n.prevX=null,n.prevY=null,n.tx=0,n.ty=0,n.tdx=0,n.tdy=0,n._onScroll=function(t){var e=n.binding.options.props,r=n.binding.callback,o=(0,i.pxTo750)(t.target.scrollLeft),s=(0,i.pxTo750)(t.target.scrollTop);if(e.forEach(function(t){var e=t.element,r=t.property,i=t.expression,a=JSON.parse(i.transformed),u=n.binding.getValue({x:o,y:s,dx:n.dx,dy:n.dy,tdx:n.tdx,tdy:n.tdy},a);n.binding.setProperty(e,r,u)}),null!==n.prevX&&null!==n.prevY){var u=o-n.prevX,c=s-n.prevY,l={x:o,y:s};a(n.dx,u)&&(n.tx=o,l.state=\"turn\"),a(n.dy,c)&&(n.ty=s,l.state=\"turn\"),n.dx=l.dx=o-n.prevX,n.dy=l.dy=s-n.prevY,n.tdx=l.tdx=o-n.tx,n.tdy=l.tdy=s-n.ty,l.state&&r(l)}n.prevX=o,n.prevY=s};var r=t.options.anchor;return n.tx=(0,i.pxTo750)(r.scrollLeft),n.ty=(0,i.pxTo750)(r.scrollTop),r.addEventListener(\"scroll\",n._onScroll),n}return function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,o.default),r(e,[{key:\"destroy\",value:function(){this.binding.options.anchor.removeEventListener(\"scroll\",this._onScroll)}}]),e}();e.default=s},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=a(n(8)),i=a(n(1));function a(t){return t&&t.__esModule?t:{default:t}}var s=function(t){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,e);var n=function(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));n._onPinch=function(t){var e=t.scale,r=n.binding.options.props;(void 0===r?[]:r).forEach(function(t){var r=t.element,o=t.property,i=t.expression,a=JSON.parse(i.transformed),s=n.binding.getValue({s:e},a);n.binding.setProperty(r,o,s),r.style.transition=\"\",r.style.webkitTransition=\"\"})},n._onPinchStart=function(t){n.binding.callback({scale:parseInt(t.scale),state:\"start\"})},n._onPinchEnd=function(t){n.binding.callback({scale:parseInt(t.scale),state:\"end\"})};var r=t.options.anchor,i=n.pinchGesture=new o.default(r,t.options.options);return i.on(\"pinch\",n._onPinch),i.on(\"pinchstart\",n._onPinchStart),i.on(\"pinchend\",n._onPinchEnd),n}return function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,i.default),r(e,[{key:\"destroy\",value:function(){var t=this.pinchGesture;t.off(\"pinchstart\",this._onPinchStart),t.off(\"pinchend\",this._onPinchEnd),t.off(\"pinch\",this._onPinch),t.destroy()}}]),e}();e.default=s},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=a(n(8)),i=a(n(1));function a(t){return t&&t.__esModule?t:{default:t}}var s=function(t){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,e);var n=function(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));n._onRotation=function(t){var e=t.rotation,r=n.binding.options.props;(void 0===r?[]:r).forEach(function(t){var r=t.element,o=t.property,i=t.expression,a=JSON.parse(i.transformed),s=n.binding.getValue({r:e},a);n.binding.setProperty(r,o,s),r.style.transition=\"\",r.style.webkitTransition=\"\"})},n._onRotationStart=function(t){n.binding.callback({rotation:parseInt(t.rotation),state:\"start\"})},n._onRotationEnd=function(t){n.binding.callback({rotation:parseInt(t.rotation),state:\"end\"})};var r=t.options.anchor,i=n.rotationGesture=new o.default(r,t.options.options);return i.on(\"rotation\",n._onRotation),i.on(\"rotationstart\",n._onRotationStart),i.on(\"rotationend\",n._onRotationEnd),n}return function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,i.default),r(e,[{key:\"destroy\",value:function(){var t=this.rotationGesture;t.off(\"rotationstart\",this._onRotationStart),t.off(\"rotationend\",this._onRotationEnd),t.off(\"rotation\",this._onRotation),t.destroy()}}]),e}();e.default=s},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(t){return t&&t.__esModule?t:{default:t}}(n(2)),o=n(4);function i(t){var e=t.replace(/'|\"|#/g,\"\");return parseInt(e,16)}function a(t){var e=t.replace(/'|\"|#/g,\"\"),n=\"\"+(e=3===e.length?[e[0],e[0],e[1],e[1],e[2],e[2]].join(\"\"):e)[0]+e[1],r=\"\"+e[2]+e[3],o=\"\"+e[4]+e[5];return{r:n,g:r,b:o,dr:i(n),dg:i(r),db:i(o)}}var s={max:Math.max,min:Math.min,sin:Math.sin,cos:Math.cos,tan:Math.tan,sqrt:Math.sqrt,cbrt:Math.cbrt,log:Math.log,abs:Math.abs,atan:Math.atan,floor:Math.floor,ceil:Math.ceil,pow:Math.pow,exp:Math.exp,PI:Math.PI,E:Math.E,acos:Math.acos,asin:Math.asin,sign:Math.sign,atan2:Math.atan2,round:Math.round,rgb:function(t,e,n){return\"rgb(\"+parseInt(t)+\",\"+parseInt(e)+\",\"+parseInt(n)+\")\"},rgba:function(t,e,n,r){return\"rgb(\"+parseInt(t)+\",\"+parseInt(e)+\",\"+parseInt(n)+\",\"+r+\")\"},getArgs:function(){return arguments},evaluateColor:function(t,e,n){n=n>1?1:n;var r=a(t),o=a(e);return\"#\"+function(t){for(var e=t.toString(16),n=[],r=0;r<6-e.length;r++)n.push(\"0\");return n.join(\"\")+e}(16*parseInt((o.dr-r.dr)*n+r.dr)*16*16*16+16*parseInt((o.dg-r.dg)*n+r.dg)*16+parseInt((o.db-r.db)*n+r.db))},svgDrawCmd:function(t,e,n){return{index:t,values:e,cmd:n}},svgDrawCmds:function(){return arguments},asArray:function(){return[].concat(Array.prototype.slice.call(arguments))}};r.default.map(o.Easing,function(t,e){\"cubicBezier\"!==e&&(s[e]=function(e,n,r,o){return e=Math.max(Math.min(e/o,1)),t(e)*r+n})}),s.cubicBezier=function(t,e,n,r,i,a,s,u){t=Math.max(Math.min(t/r,1));var c=1e3/60/r/4;return(0,o.Bezier)(i,a,s,u,c)(t)*n+e},e.default=s}])})}])});","'use strict';\n\nexports.__esModule = true;\nexports.Utils = void 0;\n\nvar _TabController = _interopRequireDefault(require(\"./TabController\"));\n\nexports.TabController = _TabController.default;\n\nvar _TabPanel = _interopRequireDefault(require(\"./TabPanel\"));\n\nexports.TabPanel = _TabPanel.default;\n\nvar _TabPanelView = _interopRequireDefault(require(\"./TabPanelView\"));\n\nexports.TabPanelView = _TabPanelView.default;\n\nvar _TabPanelLink = _interopRequireDefault(require(\"./TabPanelLink\"));\n\nexports.TabPanelLink = _TabPanelLink.default;\n\nvar _Detection = _interopRequireDefault(require(\"./Detection\"));\n\nexports.Detection = _Detection.default;\n\nvar Utils = _interopRequireWildcard(require(\"./Utils\"));\n\nexports.Utils = Utils;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","'use strict';\n\nexports.__esModule = true;\nexports.clamp = clamp;\nexports.resolveURL = resolveURL;\nexports.noop = noop;\nexports.forbidSwipeBack = forbidSwipeBack;\nexports.uuid = uuid;\nexports.findIndex = findIndex;\nexports.Event = void 0;\n\nvar _universalEnv = require(\"universal-env\");\n\nvar h = new window.URL(location.href);\nvar protocol = h.protocol === 'http:' ? 'http:' : 'https:';\nvar __i = 0;\n\nfunction uuid() {\n  var id = __i++;\n  return id;\n}\n\nfunction resolveURL(url) {\n  if (!url) return url;\n  var matches = url.match(/^(\\/\\/)?/);\n\n  if (matches && matches[0] === '//') {\n    url = protocol + url;\n  }\n\n  return url;\n}\n\nfunction noop() {}\n\n;\n\nfunction clamp(value, min, max) {\n  return min < max ? value < min ? min : value > max ? max : value : value < max ? max : value > min ? min : value;\n}\n\n; // forbid swipe back on IOS\n\nfunction forbidSwipeBack(isForbid) {\n  if (_universalEnv.isWeex) {\n    var swipeBack = {};\n\n    try {\n      swipeBack = require('@weex-module/swipeBack');\n    } catch (e) {}\n\n    swipeBack.forbidSwipeBack && swipeBack.forbidSwipeBack(isForbid);\n  }\n}\n\nvar Event = {\n  on: function on(eventName, handler) {\n    window.addEventListener(eventName, handler);\n  },\n  emit: function emit(eventName, data) {\n    var event = new window.Event(eventName);\n\n    if (data) {\n      Object.keys(data).forEach(function (k) {\n        event[k] = data[k];\n      });\n    }\n\n    window.dispatchEvent(event);\n  }\n};\nexports.Event = Event;\n\nfunction findIndex(o, condition) {\n  return o.indexOf(find(o, condition));\n}\n\nfunction forEach(o, fn) {\n  if (o instanceof Array) {\n    return Array.prototype.forEach.call(o, fn);\n  }\n\n  Object.keys(o).forEach(function (key) {\n    fn(o[key], key);\n  });\n}\n\nfunction find(o, condition) {\n  var result = null;\n  forEach(o, function (v, k) {\n    if (typeof condition === 'function') {\n      if (condition(v, k)) {\n        result = v;\n      }\n    } else {\n      var propName = Object.keys(condition)[0];\n\n      if (propName && v[propName] === condition[propName]) {\n        result = v;\n      }\n    }\n  });\n  return result;\n}","'use strict';\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _universalEnv = require(\"universal-env\");\n\nvar _objectAssign = _interopRequireDefault(require(\"object-assign\"));\n\nvar _weexBindingx = _interopRequireDefault(require(\"weex-bindingx\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Detection = {};\nDetection.isWeex = _universalEnv.isWeex;\nDetection.isWeb = _universalEnv.isWeb;\nDetection.isEnableSlider = true;\n\nif (_universalEnv.isWeex) {\n  var deviceInfo = typeof WXEnvironment !== 'undefined' ? WXEnvironment : {}; // eslint-disable-line\n\n  Detection = (0, _objectAssign.default)(Detection, {\n    Android: deviceInfo.platform === 'android',\n    iOS: deviceInfo.platform === 'iOS',\n    isAliApp: true,\n    appVersion: deviceInfo.appVersion,\n    weexVersion: deviceInfo.weexVersion,\n    osVersion: deviceInfo.osVersion\n  });\n} else {\n  var ua = window.navigator.userAgent;\n  Detection = (0, _objectAssign.default)(Detection, {\n    Android: /Android/ig.test(ua),\n    iOS: /iPhone|iPad|iPod/ig.test(ua),\n    isAliApp: /AliApp\\([A-Z-_]+\\/[0-9.]+\\)/ig.test(ua)\n  });\n\n  Detection.getVersion = function () {\n    var matched = ua.match(/AliApp\\(([A-Z\\-]+)\\/([\\d\\.]+)\\)/i);\n\n    if (matched) {\n      var appname = matched[1];\n\n      if (appname === 'TB' || appname === 'TM') {\n        return matched[2];\n      }\n    }\n\n    return '';\n  };\n\n  Detection.appVersion = Detection.getVersion();\n}\n\nDetection.checkVersion = function (params) {\n  if (!Detection.appVersion) {\n    return false;\n  }\n\n  var version = Detection.iOS ? params.iosVer : params.andVer;\n  var checkVer = params.isCheckOS ? Detection.osVersion : Detection.appVersion;\n\n  if (checkVer === version) {\n    return true;\n  }\n\n  if (!version) {\n    version = '0.0';\n  }\n\n  checkVer = checkVer.split('.');\n  version = version.split('.');\n\n  for (var i = 0; i < checkVer.length; i++) {\n    var len = i + 1;\n\n    for (var j = 0; j < len; j++) {\n      var ver1 = +checkVer[j];\n      var ver2 = version[j];\n\n      if (ver1 > ver2) {\n        return true;\n      } else if (ver1 < ver2) {\n        return false;\n      } else if (ver1 === ver2 && checkVer.length === version.length && j === 3) {\n        return true;\n      }\n    }\n  }\n\n  return false;\n};\n\nif (_universalEnv.isWeex) {\n  // judge is support bindingx\n  Detection.isEnableSlider = _weexBindingx.default && _weexBindingx.default.isSupportBinding;\n  Detection.isEnableSliderIOS = Detection.isEnableSlider && Detection.iOS;\n  Detection.isEnableSliderAndroid = Detection.isEnableSlider && Detection.Android;\n}\n\nvar _default = Detection;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = transition;\n\nvar _universalEnv = require(\"universal-env\");\n\nvar _styleUnit = require(\"style-unit\");\n\nfunction transition(node, styles, options, callback) {\n  if (!node) return;\n\n  if (typeof options == 'function' || options == null) {\n    callback = options;\n    options = {\n      timingFunction: 'ease',\n      duration: 0,\n      delay: 0\n    };\n  }\n\n  for (var prop in styles) {\n    styles[prop] = (0, _styleUnit.convertUnit)(styles[prop], prop);\n  }\n\n  if (_universalEnv.isWeex) {\n    var animation = __weex_require__('@weex-module/animation');\n\n    animation.transition(node.ref, {\n      styles: styles,\n      timingFunction: options.timingFunction || 'linear',\n      delay: options.delay || 0,\n      duration: options.duration || 0,\n      needLayout: options.needLayout || false\n    }, callback || function () {});\n  } else if (_universalEnv.isWeb) {\n    var duration = options.duration || 0; // ms\n\n    var timingFunction = options.timingFunction || 'linear';\n    var delay = options.delay || 0; // ms\n\n    var transitionValue = 'all ' + duration + 'ms ' + timingFunction + ' ' + delay + 'ms';\n    node.style.transition = transitionValue;\n    node.style.webkitTransition = transitionValue;\n\n    if (callback) {\n      var transitionEndHandler = function transitionEndHandler(e) {\n        e.stopPropagation();\n        node.removeEventListener('webkitTransitionEnd', transitionEndHandler);\n        node.removeEventListener('transitionend', transitionEndHandler);\n        node.style.transition = '';\n        node.style.webkitTransition = '';\n        callback();\n      };\n\n      node.addEventListener('webkitTransitionEnd', transitionEndHandler);\n      node.addEventListener('transitionend', transitionEndHandler);\n    }\n\n    for (var key in styles) {\n      // TODO add vendor prefix\n      var value = styles[key];\n      node.style[key] = value;\n    }\n  }\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _rax = require(\"rax\");\n\nvar _raxView = _interopRequireDefault(require(\"rax-view\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar styles = {\n  pageContainer: {\n    flex: 1,\n    width: 750,\n    backgroundColor: '#EEE'\n  }\n};\n\nvar TabPanel =\n/*#__PURE__*/\nfunction (_Component) {\n  _inheritsLoose(TabPanel, _Component);\n\n  function TabPanel() {\n    var _this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n    _this.state = {\n      isAppear: false\n    };\n\n    _this.show = function () {\n      _this.setState({\n        isAppear: true\n      });\n    };\n\n    _this.hide = function () {\n      _this.setState({\n        isAppear: false\n      });\n    };\n\n    return _this;\n  }\n\n  var _proto = TabPanel.prototype;\n\n  _proto.render = function render() {\n    return (0, _rax.createElement)(_raxView.default, _extends({}, this.props, {\n      style: [styles.pageContainer, this.props.style]\n    }), this.state.isAppear ? this.props.children : null);\n  };\n\n  return TabPanel;\n}(_rax.Component);\n\nvar _default = TabPanel;\nexports.default = _default;","'use strict';\n\nfunction hasOwnProperty(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nconst decode = function(qs, sep, eq, options) {\n  sep = sep || '&';\n  eq = eq || '=';\n  var obj = {};\n\n  if (typeof qs !== 'string' || qs.length === 0) {\n    return obj;\n  }\n\n  var regexp = /\\+/g;\n  qs = qs.split(sep);\n\n  var maxKeys = 1000;\n  if (options && typeof options.maxKeys === 'number') {\n    maxKeys = options.maxKeys;\n  }\n\n  var len = qs.length;\n  // maxKeys <= 0 means that we should not limit keys count\n  if (maxKeys > 0 && len > maxKeys) {\n    len = maxKeys;\n  }\n\n  for (var i = 0; i < len; ++i) {\n    var x = qs[i].replace(regexp, '%20'),\n      idx = x.indexOf(eq),\n      kstr, vstr, k, v;\n\n    if (idx >= 0) {\n      kstr = x.substr(0, idx);\n      vstr = x.substr(idx + 1);\n    } else {\n      kstr = x;\n      vstr = '';\n    }\n\n    k = decodeURIComponent(kstr);\n    v = decodeURIComponent(vstr);\n\n    if (!hasOwnProperty(obj, k)) {\n      obj[k] = v;\n    } else if (Array.isArray(obj[k])) {\n      obj[k].push(v);\n    } else {\n      obj[k] = [obj[k], v];\n    }\n  }\n\n  return obj;\n};\n\nvar stringifyPrimitive = function(v) {\n  switch (typeof v) {\n    case 'string':\n      return v;\n\n    case 'boolean':\n      return v ? 'true' : 'false';\n\n    case 'number':\n      return isFinite(v) ? v : '';\n\n    default:\n      return '';\n  }\n};\n\nconst encode = function(obj, sep, eq, name) {\n  sep = sep || '&';\n  eq = eq || '=';\n  if (obj === null) {\n    obj = undefined;\n  }\n\n  if (typeof obj === 'object') {\n    return Object.keys(obj).map(function(k) {\n      var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n      if (Array.isArray(obj[k])) {\n        return obj[k].map(function(v) {\n          return ks + encodeURIComponent(stringifyPrimitive(v));\n        }).join(sep);\n      } else {\n        return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n      }\n    }).join(sep);\n  }\n\n  if (!name) return '';\n  return encodeURIComponent(stringifyPrimitive(name)) + eq +\n    encodeURIComponent(stringifyPrimitive(obj));\n};\n\n\nexports.decode = exports.parse = decode;\nexports.encode = exports.stringify = encode;\n","/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/'\nvar DEFAULT_DELIMITERS = './'\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n  // Match escaped characters that would otherwise appear in future matches.\n  // This allows the user to escape special characters that won't transform.\n  '(\\\\\\\\.)',\n  // Match Express-style parameters and un-named parameters with a prefix\n  // and optional suffixes. Matches appear as:\n  //\n  // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n  // \"(\\\\d+)\"  => [undefined, undefined, \"\\d+\", undefined]\n  '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param  {string}  str\n * @param  {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n  var tokens = []\n  var key = 0\n  var index = 0\n  var path = ''\n  var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER\n  var delimiters = (options && options.delimiters) || DEFAULT_DELIMITERS\n  var pathEscaped = false\n  var res\n\n  while ((res = PATH_REGEXP.exec(str)) !== null) {\n    var m = res[0]\n    var escaped = res[1]\n    var offset = res.index\n    path += str.slice(index, offset)\n    index = offset + m.length\n\n    // Ignore already escaped sequences.\n    if (escaped) {\n      path += escaped[1]\n      pathEscaped = true\n      continue\n    }\n\n    var prev = ''\n    var next = str[index]\n    var name = res[2]\n    var capture = res[3]\n    var group = res[4]\n    var modifier = res[5]\n\n    if (!pathEscaped && path.length) {\n      var k = path.length - 1\n\n      if (delimiters.indexOf(path[k]) > -1) {\n        prev = path[k]\n        path = path.slice(0, k)\n      }\n    }\n\n    // Push the current path onto the tokens.\n    if (path) {\n      tokens.push(path)\n      path = ''\n      pathEscaped = false\n    }\n\n    var partial = prev !== '' && next !== undefined && next !== prev\n    var repeat = modifier === '+' || modifier === '*'\n    var optional = modifier === '?' || modifier === '*'\n    var delimiter = prev || defaultDelimiter\n    var pattern = capture || group\n\n    tokens.push({\n      name: name || key++,\n      prefix: prev,\n      delimiter: delimiter,\n      optional: optional,\n      repeat: repeat,\n      partial: partial,\n      pattern: pattern ? escapeGroup(pattern) : '[^' + escapeString(delimiter) + ']+?'\n    })\n  }\n\n  // Push any remaining characters.\n  if (path || index < str.length) {\n    tokens.push(path + str.substr(index))\n  }\n\n  return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param  {string}             str\n * @param  {Object=}            options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n  return tokensToFunction(parse(str, options))\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n  // Compile all the tokens into regexps.\n  var matches = new Array(tokens.length)\n\n  // Compile all the patterns before compilation.\n  for (var i = 0; i < tokens.length; i++) {\n    if (typeof tokens[i] === 'object') {\n      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n    }\n  }\n\n  return function (data, options) {\n    var path = ''\n    var encode = (options && options.encode) || encodeURIComponent\n\n    for (var i = 0; i < tokens.length; i++) {\n      var token = tokens[i]\n\n      if (typeof token === 'string') {\n        path += token\n        continue\n      }\n\n      var value = data ? data[token.name] : undefined\n      var segment\n\n      if (Array.isArray(value)) {\n        if (!token.repeat) {\n          throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n        }\n\n        if (value.length === 0) {\n          if (token.optional) continue\n\n          throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n        }\n\n        for (var j = 0; j < value.length; j++) {\n          segment = encode(value[j], token)\n\n          if (!matches[i].test(segment)) {\n            throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n          }\n\n          path += (j === 0 ? token.prefix : token.delimiter) + segment\n        }\n\n        continue\n      }\n\n      if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n        segment = encode(String(value), token)\n\n        if (!matches[i].test(segment)) {\n          throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n        }\n\n        path += token.prefix + segment\n        continue\n      }\n\n      if (token.optional) {\n        // Prepend partial segment prefixes.\n        if (token.partial) path += token.prefix\n\n        continue\n      }\n\n      throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n    }\n\n    return path\n  }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param  {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n  return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param  {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n  return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param  {Object} options\n * @return {string}\n */\nfunction flags (options) {\n  return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param  {!RegExp} path\n * @param  {Array=}  keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n  if (!keys) return path\n\n  // Use a negative lookahead to match only capturing groups.\n  var groups = path.source.match(/\\((?!\\?)/g)\n\n  if (groups) {\n    for (var i = 0; i < groups.length; i++) {\n      keys.push({\n        name: i,\n        prefix: null,\n        delimiter: null,\n        optional: false,\n        repeat: false,\n        partial: false,\n        pattern: null\n      })\n    }\n  }\n\n  return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param  {!Array}  path\n * @param  {Array=}  keys\n * @param  {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n  var parts = []\n\n  for (var i = 0; i < path.length; i++) {\n    parts.push(pathToRegexp(path[i], keys, options).source)\n  }\n\n  return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param  {string}  path\n * @param  {Array=}  keys\n * @param  {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n  return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param  {!Array}  tokens\n * @param  {Array=}  keys\n * @param  {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n  options = options || {}\n\n  var strict = options.strict\n  var start = options.start !== false\n  var end = options.end !== false\n  var delimiter = escapeString(options.delimiter || DEFAULT_DELIMITER)\n  var delimiters = options.delimiters || DEFAULT_DELIMITERS\n  var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|')\n  var route = start ? '^' : ''\n  var isEndDelimited = tokens.length === 0\n\n  // Iterate over the tokens and create our regexp string.\n  for (var i = 0; i < tokens.length; i++) {\n    var token = tokens[i]\n\n    if (typeof token === 'string') {\n      route += escapeString(token)\n      isEndDelimited = i === tokens.length - 1 && delimiters.indexOf(token[token.length - 1]) > -1\n    } else {\n      var capture = token.repeat\n        ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n        : token.pattern\n\n      if (keys) keys.push(token)\n\n      if (token.optional) {\n        if (token.partial) {\n          route += escapeString(token.prefix) + '(' + capture + ')?'\n        } else {\n          route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?'\n        }\n      } else {\n        route += escapeString(token.prefix) + '(' + capture + ')'\n      }\n    }\n  }\n\n  if (end) {\n    if (!strict) route += '(?:' + delimiter + ')?'\n\n    route += endsWith === '$' ? '$' : '(?=' + endsWith + ')'\n  } else {\n    if (!strict) route += '(?:' + delimiter + '(?=' + endsWith + '))?'\n    if (!isEndDelimited) route += '(?=' + delimiter + '|' + endsWith + ')'\n  }\n\n  return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param  {(string|RegExp|Array)} path\n * @param  {Array=}                keys\n * @param  {Object=}               options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n  if (path instanceof RegExp) {\n    return regexpToRegexp(path, keys)\n  }\n\n  if (Array.isArray(path)) {\n    return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n  }\n\n  return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n","'use strict';\n\nvar punycode = require('./punycode');\n\nvar util = {\n  isString: function(arg) {\n    return typeof arg === 'string';\n  },\n  isObject: function(arg) {\n    return typeof arg === 'object' && arg !== null;\n  },\n  isNull: function(arg) {\n    return arg === null;\n  },\n  isNullOrUndefined: function(arg) {\n    return arg == null;\n  }\n};\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n  this.protocol = null;\n  this.slashes = null;\n  this.auth = null;\n  this.host = null;\n  this.port = null;\n  this.hostname = null;\n  this.hash = null;\n  this.search = null;\n  this.query = null;\n  this.pathname = null;\n  this.path = null;\n  this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n  portPattern = /:[0-9]*$/,\n\n  // Special case for a simple path URL\n  simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n  // RFC 2396: characters reserved for delimiting URLs.\n  // We actually just auto-escape these.\n  delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n  // RFC 2396: characters not allowed for various reasons.\n  unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n  // Allowed by RFCs, but cause of XSS attacks.  Always escape these.\n  autoEscape = ['\\''].concat(unwise),\n  // Characters that are never ever allowed in a hostname.\n  // Note that any invalid chars are also handled, but these\n  // are the ones that are *expected* to be seen, so we fast-path\n  // them.\n  nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n  hostEndingChars = ['/', '?', '#'],\n  hostnameMaxLen = 255,\n  hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n  hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n  // protocols that can allow \"unsafe\" and \"unwise\" chars.\n  unsafeProtocol = {\n    'javascript': true,\n    'javascript:': true\n  },\n  // protocols that never have a hostname.\n  hostlessProtocol = {\n    'javascript': true,\n    'javascript:': true\n  },\n  // protocols that always contain a // bit.\n  slashedProtocol = {\n    'http': true,\n    'https': true,\n    'ftp': true,\n    'gopher': true,\n    'file': true,\n    'http:': true,\n    'https:': true,\n    'ftp:': true,\n    'gopher:': true,\n    'file:': true\n  },\n  querystring = require('./query-string');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n  if (url && util.isObject(url) && url instanceof Url) return url;\n\n  var u = new Url;\n  u.parse(url, parseQueryString, slashesDenoteHost);\n  return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n  if (!util.isString(url)) {\n    throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n  }\n\n  // Copy chrome, IE, opera backslash-handling behavior.\n  // Back slashes before the query string get converted to forward slashes\n  // See: https://code.google.com/p/chromium/issues/detail?id=25916\n  var queryIndex = url.indexOf('?'),\n    splitter =\n      queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n    uSplit = url.split(splitter),\n    slashRegex = /\\\\/g;\n  uSplit[0] = uSplit[0].replace(slashRegex, '/');\n  url = uSplit.join(splitter);\n\n  var rest = url;\n\n  // trim before proceeding.\n  // This is to support parse stuff like \"  http://foo.com  \\n\"\n  rest = rest.trim();\n\n  if (!slashesDenoteHost && url.split('#').length === 1) {\n    // Try fast path regexp\n    var simplePath = simplePathPattern.exec(rest);\n    if (simplePath) {\n      this.path = rest;\n      this.href = rest;\n      this.pathname = simplePath[1];\n      if (simplePath[2]) {\n        this.search = simplePath[2];\n        if (parseQueryString) {\n          this.query = querystring.parse(this.search.substr(1));\n        } else {\n          this.query = this.search.substr(1);\n        }\n      } else if (parseQueryString) {\n        this.search = '';\n        this.query = {};\n      }\n      return this;\n    }\n  }\n\n  var proto = protocolPattern.exec(rest);\n  if (proto) {\n    proto = proto[0];\n    var lowerProto = proto.toLowerCase();\n    this.protocol = lowerProto;\n    rest = rest.substr(proto.length);\n  }\n\n  // figure out if it's got a host\n  // user@server is *always* interpreted as a hostname, and url\n  // resolution will treat //foo/bar as host=foo,path=bar because that's\n  // how the browser resolves relative URLs.\n  if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n    var slashes = rest.substr(0, 2) === '//';\n    if (slashes && !(proto && hostlessProtocol[proto])) {\n      rest = rest.substr(2);\n      this.slashes = true;\n    }\n  }\n\n  if (!hostlessProtocol[proto] &&\n    (slashes || proto && !slashedProtocol[proto])) {\n    // there's a hostname.\n    // the first instance of /, ?, ;, or # ends the host.\n    //\n    // If there is an @ in the hostname, then non-host chars *are* allowed\n    // to the left of the last @ sign, unless some host-ending character\n    // comes *before* the @-sign.\n    // URLs are obnoxious.\n    //\n    // ex:\n    // http://a@b@c/ => user:a@b host:c\n    // http://a@b?@c => user:a host:c path:/?@c\n\n    // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n    // Review our test case against browsers more comprehensively.\n\n    // find the first instance of any hostEndingChars\n    var hostEnd = -1;\n    for (var i = 0; i < hostEndingChars.length; i++) {\n      var hec = rest.indexOf(hostEndingChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n        hostEnd = hec;\n    }\n\n    // at this point, either we have an explicit point where the\n    // auth portion cannot go past, or the last @ char is the decider.\n    var auth, atSign;\n    if (hostEnd === -1) {\n      // atSign can be anywhere.\n      atSign = rest.lastIndexOf('@');\n    } else {\n      // atSign must be in auth portion.\n      // http://a@b/c@d => host:b auth:a path:/c@d\n      atSign = rest.lastIndexOf('@', hostEnd);\n    }\n\n    // Now we have a portion which is definitely the auth.\n    // Pull that off.\n    if (atSign !== -1) {\n      auth = rest.slice(0, atSign);\n      rest = rest.slice(atSign + 1);\n      this.auth = decodeURIComponent(auth);\n    }\n\n    // the host is the remaining to the left of the first non-host char\n    hostEnd = -1;\n    for (var i = 0; i < nonHostChars.length; i++) {\n      var hec = rest.indexOf(nonHostChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n        hostEnd = hec;\n    }\n    // if we still have not hit it, then the entire thing is a host.\n    if (hostEnd === -1)\n      hostEnd = rest.length;\n\n    this.host = rest.slice(0, hostEnd);\n    rest = rest.slice(hostEnd);\n\n    // pull out port.\n    this.parseHost();\n\n    // we've indicated that there is a hostname,\n    // so even if it's empty, it has to be present.\n    this.hostname = this.hostname || '';\n\n    // if hostname begins with [ and ends with ]\n    // assume that it's an IPv6 address.\n    var ipv6Hostname = this.hostname[0] === '[' &&\n      this.hostname[this.hostname.length - 1] === ']';\n\n    // validate a little.\n    if (!ipv6Hostname) {\n      var hostparts = this.hostname.split(/\\./);\n      for (var i = 0, l = hostparts.length; i < l; i++) {\n        var part = hostparts[i];\n        if (!part) continue;\n        if (!part.match(hostnamePartPattern)) {\n          var newpart = '';\n          for (var j = 0, k = part.length; j < k; j++) {\n            if (part.charCodeAt(j) > 127) {\n              // we replace non-ASCII char with a temporary placeholder\n              // we need this to make sure size of hostname is not\n              // broken by replacing non-ASCII by nothing\n              newpart += 'x';\n            } else {\n              newpart += part[j];\n            }\n          }\n          // we test again with ASCII char only\n          if (!newpart.match(hostnamePartPattern)) {\n            var validParts = hostparts.slice(0, i);\n            var notHost = hostparts.slice(i + 1);\n            var bit = part.match(hostnamePartStart);\n            if (bit) {\n              validParts.push(bit[1]);\n              notHost.unshift(bit[2]);\n            }\n            if (notHost.length) {\n              rest = '/' + notHost.join('.') + rest;\n            }\n            this.hostname = validParts.join('.');\n            break;\n          }\n        }\n      }\n    }\n\n    if (this.hostname.length > hostnameMaxLen) {\n      this.hostname = '';\n    } else {\n      // hostnames are always lower case.\n      this.hostname = this.hostname.toLowerCase();\n    }\n\n    if (!ipv6Hostname) {\n      // IDNA Support: Returns a punycoded representation of \"domain\".\n      // It only converts parts of the domain name that\n      // have non-ASCII characters, i.e. it doesn't matter if\n      // you call it with a domain that already is ASCII-only.\n      this.hostname = punycode.toASCII(this.hostname);\n    }\n\n    var p = this.port ? ':' + this.port : '';\n    var h = this.hostname || '';\n    this.host = h + p;\n    this.href += this.host;\n\n    // strip [ and ] from the hostname\n    // the host field still retains them, though\n    if (ipv6Hostname) {\n      this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n      if (rest[0] !== '/') {\n        rest = '/' + rest;\n      }\n    }\n  }\n\n  // now rest is set to the post-host stuff.\n  // chop off any delim chars.\n  if (!unsafeProtocol[lowerProto]) {\n    // First, make 100% sure that any \"autoEscape\" chars get\n    // escaped, even if encodeURIComponent doesn't think they\n    // need to be.\n    for (var i = 0, l = autoEscape.length; i < l; i++) {\n      var ae = autoEscape[i];\n      if (rest.indexOf(ae) === -1)\n        continue;\n      var esc = encodeURIComponent(ae);\n      if (esc === ae) {\n        esc = escape(ae);\n      }\n      rest = rest.split(ae).join(esc);\n    }\n  }\n\n\n  // chop off from the tail first.\n  var hash = rest.indexOf('#');\n  if (hash !== -1) {\n    // got a fragment string.\n    this.hash = rest.substr(hash);\n    rest = rest.slice(0, hash);\n  }\n  var qm = rest.indexOf('?');\n  if (qm !== -1) {\n    this.search = rest.substr(qm);\n    this.query = rest.substr(qm + 1);\n    if (parseQueryString) {\n      this.query = querystring.parse(this.query);\n    }\n    rest = rest.slice(0, qm);\n  } else if (parseQueryString) {\n    // no query string, but parseQueryString still requested\n    this.search = '';\n    this.query = {};\n  }\n  if (rest) this.pathname = rest;\n  if (slashedProtocol[lowerProto] &&\n    this.hostname && !this.pathname) {\n    this.pathname = '/';\n  }\n\n  // to support http.request\n  if (this.pathname || this.search) {\n    var p = this.pathname || '';\n    var s = this.search || '';\n    this.path = p + s;\n  }\n\n  // finally, reconstruct the href based on what has been validated.\n  this.href = this.format();\n  return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n  // ensure it's an object, and not a string url.\n  // If it's an obj, this is a no-op.\n  // this way, you can call url_format() on strings\n  // to clean up potentially wonky urls.\n  if (util.isString(obj)) obj = urlParse(obj);\n  if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n  return obj.format();\n}\n\nUrl.prototype.format = function() {\n  var auth = this.auth || '';\n  if (auth) {\n    auth = encodeURIComponent(auth);\n    auth = auth.replace(/%3A/i, ':');\n    auth += '@';\n  }\n\n  var protocol = this.protocol || '',\n    pathname = this.pathname || '',\n    hash = this.hash || '',\n    host = false,\n    query = '';\n\n  if (this.host) {\n    host = auth + this.host;\n  } else if (this.hostname) {\n    host = auth + (this.hostname.indexOf(':') === -1 ?\n      this.hostname :\n      '[' + this.hostname + ']');\n    if (this.port) {\n      host += ':' + this.port;\n    }\n  }\n\n  if (this.query &&\n    util.isObject(this.query) &&\n    Object.keys(this.query).length) {\n    query = querystring.stringify(this.query);\n  }\n\n  var search = this.search || query && '?' + query || '';\n\n  if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n  // only the slashedProtocols get the //.  Not mailto:, xmpp:, etc.\n  // unless they had them to begin with.\n  if (this.slashes ||\n    (!protocol || slashedProtocol[protocol]) && host !== false) {\n    host = '//' + (host || '');\n    if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n  } else if (!host) {\n    host = '';\n  }\n\n  if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n  if (search && search.charAt(0) !== '?') search = '?' + search;\n\n  pathname = pathname.replace(/[?#]/g, function(match) {\n    return encodeURIComponent(match);\n  });\n  search = search.replace('#', '%23');\n\n  return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n  return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n  return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n  if (!source) return relative;\n  return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n  if (util.isString(relative)) {\n    var rel = new Url();\n    rel.parse(relative, false, true);\n    relative = rel;\n  }\n\n  var result = new Url();\n  var tkeys = Object.keys(this);\n  for (var tk = 0; tk < tkeys.length; tk++) {\n    var tkey = tkeys[tk];\n    result[tkey] = this[tkey];\n  }\n\n  // hash is always overridden, no matter what.\n  // even href=\"\" will remove it.\n  result.hash = relative.hash;\n\n  // if the relative url is empty, then there's nothing left to do here.\n  if (relative.href === '') {\n    result.href = result.format();\n    return result;\n  }\n\n  // hrefs like //foo/bar always cut to the protocol.\n  if (relative.slashes && !relative.protocol) {\n    // take everything except the protocol from relative\n    var rkeys = Object.keys(relative);\n    for (var rk = 0; rk < rkeys.length; rk++) {\n      var rkey = rkeys[rk];\n      if (rkey !== 'protocol')\n        result[rkey] = relative[rkey];\n    }\n\n    // urlParse appends trailing / to urls like http://www.example.com\n    if (slashedProtocol[result.protocol] &&\n      result.hostname && !result.pathname) {\n      result.path = result.pathname = '/';\n    }\n\n    result.href = result.format();\n    return result;\n  }\n\n  if (relative.protocol && relative.protocol !== result.protocol) {\n    // if it's a known url protocol, then changing\n    // the protocol does weird things\n    // first, if it's not file:, then we MUST have a host,\n    // and if there was a path\n    // to begin with, then we MUST have a path.\n    // if it is file:, then the host is dropped,\n    // because that's known to be hostless.\n    // anything else is assumed to be absolute.\n    if (!slashedProtocol[relative.protocol]) {\n      var keys = Object.keys(relative);\n      for (var v = 0; v < keys.length; v++) {\n        var k = keys[v];\n        result[k] = relative[k];\n      }\n      result.href = result.format();\n      return result;\n    }\n\n    result.protocol = relative.protocol;\n    if (!relative.host && !hostlessProtocol[relative.protocol]) {\n      var relPath = (relative.pathname || '').split('/');\n      while (relPath.length && !(relative.host = relPath.shift()));\n      if (!relative.host) relative.host = '';\n      if (!relative.hostname) relative.hostname = '';\n      if (relPath[0] !== '') relPath.unshift('');\n      if (relPath.length < 2) relPath.unshift('');\n      result.pathname = relPath.join('/');\n    } else {\n      result.pathname = relative.pathname;\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    result.host = relative.host || '';\n    result.auth = relative.auth;\n    result.hostname = relative.hostname || relative.host;\n    result.port = relative.port;\n    // to support http.request\n    if (result.pathname || result.search) {\n      var p = result.pathname || '';\n      var s = result.search || '';\n      result.path = p + s;\n    }\n    result.slashes = result.slashes || relative.slashes;\n    result.href = result.format();\n    return result;\n  }\n\n  var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n    isRelAbs =\n      relative.host ||\n      relative.pathname && relative.pathname.charAt(0) === '/',\n    mustEndAbs = isRelAbs || isSourceAbs ||\n      result.host && relative.pathname,\n    removeAllDots = mustEndAbs,\n    srcPath = result.pathname && result.pathname.split('/') || [],\n    relPath = relative.pathname && relative.pathname.split('/') || [],\n    psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n  // if the url is a non-slashed url, then relative\n  // links like ../.. should be able\n  // to crawl up to the hostname, as well.  This is strange.\n  // result.protocol has already been set by now.\n  // Later on, put the first path part into the host field.\n  if (psychotic) {\n    result.hostname = '';\n    result.port = null;\n    if (result.host) {\n      if (srcPath[0] === '') srcPath[0] = result.host;\n      else srcPath.unshift(result.host);\n    }\n    result.host = '';\n    if (relative.protocol) {\n      relative.hostname = null;\n      relative.port = null;\n      if (relative.host) {\n        if (relPath[0] === '') relPath[0] = relative.host;\n        else relPath.unshift(relative.host);\n      }\n      relative.host = null;\n    }\n    mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n  }\n\n  if (isRelAbs) {\n    // it's absolute.\n    result.host = relative.host || relative.host === '' ?\n      relative.host : result.host;\n    result.hostname = relative.hostname || relative.hostname === '' ?\n      relative.hostname : result.hostname;\n    result.search = relative.search;\n    result.query = relative.query;\n    srcPath = relPath;\n    // fall through to the dot-handling below.\n  } else if (relPath.length) {\n    // it's relative\n    // throw away the existing file, and take the new path instead.\n    if (!srcPath) srcPath = [];\n    srcPath.pop();\n    srcPath = srcPath.concat(relPath);\n    result.search = relative.search;\n    result.query = relative.query;\n  } else if (!util.isNullOrUndefined(relative.search)) {\n    // just pull out the search.\n    // like href='?foo'.\n    // Put this after the other two cases because it simplifies the booleans\n    if (psychotic) {\n      result.hostname = result.host = srcPath.shift();\n      // occationaly the auth can get stuck only in host\n      // this especially happens in cases like\n      // url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n      var authInHost = result.host && result.host.indexOf('@') > 0 ?\n        result.host.split('@') : false;\n      if (authInHost) {\n        result.auth = authInHost.shift();\n        result.host = result.hostname = authInHost.shift();\n      }\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    // to support http.request\n    if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n      result.path = (result.pathname ? result.pathname : '') +\n        (result.search ? result.search : '');\n    }\n    result.href = result.format();\n    return result;\n  }\n\n  if (!srcPath.length) {\n    // no path at all.  easy.\n    // we've already handled the other stuff above.\n    result.pathname = null;\n    // to support http.request\n    if (result.search) {\n      result.path = '/' + result.search;\n    } else {\n      result.path = null;\n    }\n    result.href = result.format();\n    return result;\n  }\n\n  // if a url ENDs in . or .., then it must get a trailing slash.\n  // however, if it ends in anything else non-slashy,\n  // then it must NOT get a trailing slash.\n  var last = srcPath.slice(-1)[0];\n  var hasTrailingSlash =\n    (result.host || relative.host || srcPath.length > 1) &&\n    (last === '.' || last === '..') || last === '';\n\n  // strip single dots, resolve double dots to parent dir\n  // if the path tries to go above the root, `up` ends up > 0\n  var up = 0;\n  for (var i = srcPath.length; i >= 0; i--) {\n    last = srcPath[i];\n    if (last === '.') {\n      srcPath.splice(i, 1);\n    } else if (last === '..') {\n      srcPath.splice(i, 1);\n      up++;\n    } else if (up) {\n      srcPath.splice(i, 1);\n      up--;\n    }\n  }\n\n  // if the path is allowed to go above the root, restore leading ..s\n  if (!mustEndAbs && !removeAllDots) {\n    for (; up--; up) {\n      srcPath.unshift('..');\n    }\n  }\n\n  if (mustEndAbs && srcPath[0] !== '' &&\n    (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n    srcPath.unshift('');\n  }\n\n  if (hasTrailingSlash && srcPath.join('/').substr(-1) !== '/') {\n    srcPath.push('');\n  }\n\n  var isAbsolute = srcPath[0] === '' ||\n    srcPath[0] && srcPath[0].charAt(0) === '/';\n\n  // put the host back\n  if (psychotic) {\n    result.hostname = result.host = isAbsolute ? '' :\n      srcPath.length ? srcPath.shift() : '';\n    // occationaly the auth can get stuck only in host\n    // this especially happens in cases like\n    // url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n    var authInHost = result.host && result.host.indexOf('@') > 0 ?\n      result.host.split('@') : false;\n    if (authInHost) {\n      result.auth = authInHost.shift();\n      result.host = result.hostname = authInHost.shift();\n    }\n  }\n\n  mustEndAbs = mustEndAbs || result.host && srcPath.length;\n\n  if (mustEndAbs && !isAbsolute) {\n    srcPath.unshift('');\n  }\n\n  if (!srcPath.length) {\n    result.pathname = null;\n    result.path = null;\n  } else {\n    result.pathname = srcPath.join('/');\n  }\n\n  // to support request.http\n  if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n    result.path = (result.pathname ? result.pathname : '') +\n      (result.search ? result.search : '');\n  }\n  result.auth = relative.auth || result.auth;\n  result.slashes = result.slashes || relative.slashes;\n  result.href = result.format();\n  return result;\n};\n\nUrl.prototype.parseHost = function() {\n  var host = this.host;\n  var port = portPattern.exec(host);\n  if (port) {\n    port = port[0];\n    if (port !== ':') {\n      this.port = port.substr(1);\n    }\n    host = host.substr(0, host.length - port.length);\n  }\n  if (host) this.hostname = host;\n};\n","'use strict';\nvar isObj = require('is-obj');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Sources cannot be null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction assignKey(to, from, key) {\n\tvar val = from[key];\n\n\tif (val === undefined || val === null) {\n\t\treturn;\n\t}\n\n\tif (hasOwnProperty.call(to, key)) {\n\t\tif (to[key] === undefined || to[key] === null) {\n\t\t\tthrow new TypeError('Cannot convert undefined or null to object (' + key + ')');\n\t\t}\n\t}\n\n\tif (!hasOwnProperty.call(to, key) || !isObj(val)) {\n\t\tto[key] = val;\n\t} else {\n\t\tto[key] = assign(Object(to[key]), from[key]);\n\t}\n}\n\nfunction assign(to, from) {\n\tif (to === from) {\n\t\treturn to;\n\t}\n\n\tfrom = Object(from);\n\n\tfor (var key in from) {\n\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\tassignKey(to, from, key);\n\t\t}\n\t}\n\n\tif (Object.getOwnPropertySymbols) {\n\t\tvar symbols = Object.getOwnPropertySymbols(from);\n\n\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\tassignKey(to, from, symbols[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n}\n\nmodule.exports = function deepAssign(target) {\n\ttarget = toObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tassign(target, arguments[s]);\n\t}\n\n\treturn target;\n};\n","module.exports = require(\"@weex-module/swipeBack\");","var charenc = {\n  // UTF-8 encoding\n  utf8: {\n    // Convert a string to a byte array\n    stringToBytes: function(str) {\n      return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n    },\n\n    // Convert a byte array to a string\n    bytesToString: function(bytes) {\n      return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n    }\n  },\n\n  // Binary encoding\n  bin: {\n    // Convert a string to a byte array\n    stringToBytes: function(str) {\n      for (var bytes = [], i = 0; i < str.length; i++)\n        bytes.push(str.charCodeAt(i) & 0xFF);\n      return bytes;\n    },\n\n    // Convert a byte array to a string\n    bytesToString: function(bytes) {\n      for (var str = [], i = 0; i < bytes.length; i++)\n        str.push(String.fromCharCode(bytes[i]));\n      return str.join('');\n    }\n  }\n};\n\nmodule.exports = charenc;\n","/** @jsx createElement */\n'use strict';\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _rax = require(\"rax\");\n\nvar _TabPanel = _interopRequireDefault(require(\"./TabPanel\"));\n\nvar _Utils = require(\"./Utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar BaseView =\n/*#__PURE__*/\nfunction (_Component) {\n  _inheritsLoose(BaseView, _Component);\n\n  function BaseView() {\n    var _this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n    _this.itemWidth = 750;\n    _this.itemCount = 0;\n    _this.curIndex = null;\n    _this.token = null;\n    _this.prevIndex = null;\n\n    _this.switchTo = function () {// no impl\n    };\n\n    _this.renderPanel = function (index) {\n      if (_this.refs[\"panel_\" + index]) {\n        _this.refs[\"panel_\" + index].show();\n      }\n    };\n\n    _this.destroyPanel = function (index) {\n      if (_this.refs[\"panel_\" + index]) {\n        _this.refs[\"panel_\" + index].hide();\n      }\n    };\n\n    _this.handleScreens = function () {\n      var screenNumbersPerSide = _this.props.screenNumbersPerSide;\n\n      var _assertThisInitialize = _assertThisInitialized(_this),\n          itemCount = _assertThisInitialize.itemCount,\n          curIndex = _assertThisInitialize.curIndex;\n\n      var visibleIndexes = [];\n\n      if (screenNumbersPerSide === 0 || screenNumbersPerSide > 0) {\n        var max = curIndex + screenNumbersPerSide > itemCount - 1 ? itemCount - 1 : curIndex + screenNumbersPerSide;\n        var min = curIndex - screenNumbersPerSide < 0 ? 0 : curIndex - screenNumbersPerSide;\n\n        for (var i = min; i < curIndex; i++) {\n          visibleIndexes.push(i);\n        }\n\n        for (var _i = curIndex; _i <= max; _i++) {\n          visibleIndexes.push(_i);\n        }\n\n        var _loop = function _loop(_i2) {\n          if ((0, _Utils.findIndex)(visibleIndexes, function (o) {\n            return o === _i2;\n          }) === -1) {\n            _this.destroyPanel(_i2);\n          }\n        };\n\n        for (var _i2 = 0; _i2 < itemCount; _i2++) {\n          _loop(_i2);\n        }\n      }\n    };\n\n    return _this;\n  }\n\n  var _proto = BaseView.prototype;\n\n  _proto.countItems = function countItems(props) {\n    var _this2 = this;\n\n    if (props === void 0) {\n      props = this.props;\n    }\n\n    this.itemCount = 0;\n    var children = props.children.length > 0 ? props.children : [props.children];\n    children.map(function (child) {\n      if (child && child.type === _TabPanel.default) {\n        _this2.itemCount++;\n      }\n    });\n  };\n\n  return BaseView;\n}(_rax.Component);\n\nvar _default = BaseView;\nexports.default = _default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _weexBindingx = _interopRequireDefault(require(\"weex-bindingx\"));\n\nvar _universalEnv = require(\"universal-env\");\n\nvar _universalTransition = _interopRequireDefault(require(\"universal-transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar isSupportBinding = _weexBindingx.default.isSupportNewBinding;\n\nfunction find(o, condition) {\n  var result = null;\n  forEach(o, function (v, k) {\n    if (typeof condition === 'function') {\n      if (condition(v, k)) {\n        result = v;\n      }\n    } else {\n      var propName = Object.keys(condition)[0];\n\n      if (propName && v[propName] === condition[propName]) {\n        result = v;\n      }\n    }\n  });\n  return result;\n}\n\nfunction forEach(o, fn) {\n  if (o instanceof Array) {\n    return Array.prototype.forEach.call(o, fn);\n  }\n\n  Object.keys(o).forEach(function (key) {\n    fn(o[key], key);\n  });\n}\n\nfunction map(o, fn) {\n  if (o instanceof Array) {\n    return Array.prototype.map.call(o, fn);\n  } else {\n    var result = [];\n    forEach(o, function (v, k) {\n      result.push(fn(v, k));\n    });\n    return result;\n  }\n}\n\nvar Animation =\n/*#__PURE__*/\nfunction () {\n  function Animation(options, callback) {\n    _classCallCheck(this, Animation);\n\n    this.run(options, callback);\n  }\n\n  _createClass(Animation, [{\n    key: \"run\",\n    value: function run(options, callback) {\n      var easing = options.easing || 'easeOutSine';\n      if (!options.props || !options.props.length) return;\n      var props = [];\n      var maxDuration = 0;\n      var callbackFlag = false;\n      map(options.props, function (prop) {\n        prop.delay = prop.delay > 0 ? prop.delay : 0;\n        prop.duration = prop.duration >= 0 ? prop.duration : 350; // get max duration\n\n        if (prop.duration + prop.delay > maxDuration) {\n          maxDuration = prop.duration + prop.delay;\n        } // let {start} = prop;\n\n\n        var start = undefined !== prop.start ? prop.start : getInitProperty(prop.element, prop.property); // TODO start should be optional\n        // let start = binding.getComputedStyle(prop.element)[prop.property.replace(/transform\\./, '')];\n        // console.error(binding.getComputedStyle(prop.element),prop.property,start)\n        // TODO cubicBezier support\n        // let bezier = formatBezier(easing);\n\n        var bezier = formatBezier(prop.easing || easing);\n        var expression = bezier && bezier.length === 4 ? \"cubicBezier(t-\".concat(prop.delay, \",\").concat(start, \",\").concat(prop.end - start, \",\").concat(prop.duration, \",\").concat(bezier.join(','), \")\") : \"\".concat(prop.easing || easing, \"(t-\").concat(prop.delay, \",\").concat(start, \",\").concat(prop.end - start, \",\").concat(prop.duration, \")\");\n\n        if (prop && prop.element) {\n          props.push({\n            element: _universalEnv.isWeex ? prop.element.ref : prop.element,\n            expression: \"t>=\".concat(prop.delay, \"?\").concat(expression, \":\").concat(start),\n            property: prop.property\n          });\n        }\n      });\n\n      if (isSupportBinding && !options.forceTransition) {\n        var res = _weexBindingx.default.bind({\n          eventType: 'timing',\n          exitExpression: \"t>\".concat(maxDuration),\n          props: props\n        }, function (e) {\n          if (e && e.state === 'exit') {\n            callback && callback(e);\n          }\n        });\n\n        this.token = res && res.token;\n      } else {\n        // make transition groupby element\n        var transitionMap = [];\n        map(options.props, function (prop) {\n          if (prop && prop.element) {\n            var transitionProps = transformProperty(prop.property, prop.end);\n            var exist = find(transitionMap, function (o) {\n              return o && o.element === prop.element;\n            });\n\n            if (exist) {\n              var transform = exist.props.transform || [];\n\n              if (transitionProps && transitionProps.transform) {\n                transform = [].concat(_toConsumableArray(transform), _toConsumableArray(transitionProps.transform));\n              }\n\n              exist.props = _objectSpread({}, exist.props, transitionProps, {\n                transform: transform\n              });\n            } else {\n              transitionMap.push({\n                element: prop.element,\n                easing: transformEasing(prop.easing || easing),\n                duration: prop.duration,\n                props: transitionProps,\n                delay: prop.delay || 0\n              });\n            }\n          }\n        });\n        map(transitionMap, function (o) {\n          var transitionProps = _objectSpread({}, o.props, o.props.transform ? {\n            transform: o.props.transform.join(' '),\n            webkitTransform: o.props.transform.join(' ')\n          } : {});\n\n          (0, _universalTransition.default)(o.element, transitionProps, {\n            duration: o.duration,\n            timingFunction: o.easing,\n            delay: o.delay\n          }, function (e) {\n            if (o.duration === maxDuration && !callbackFlag) {\n              callback && callback(e);\n              callbackFlag = true;\n            }\n          });\n        });\n      }\n    }\n  }, {\n    key: \"stop\",\n    value: function stop() {\n      if (isSupportBinding && this.token) {\n        return _weexBindingx.default.unbind({\n          eventType: 'timing',\n          token: this.token\n        });\n      } // transition not support stop\n\n    }\n  }]);\n\n  return Animation;\n}();\n\nfunction getInitProperty(el, name) {\n  if (!el) return 0;\n  name = name.replace(/transform\\./, '');\n\n  var style = _weexBindingx.default.getComputedStyle(_universalEnv.isWeex ? el.ref : el);\n\n  switch (name) {\n    case 'scale':\n      name = 'scaleX';\n      break;\n\n    case 'translate':\n      name = 'translateX';\n      break;\n\n    case 'rotate':\n      name = 'rotateZ';\n      break;\n  }\n\n  if (style && undefined !== style[name]) {\n    return style[name];\n  }\n\n  return 0;\n}\n\nfunction formatBezier(easing) {\n  if (easing) {\n    var m = easing.match(/cubicBezier\\((.+),(.+),(.+),(.+)\\)/);\n    return m && [m[1], m[4], m[3], m[4]];\n  }\n} // transform easing from binding to transition timingFunction\n\n\nfunction transformEasing(easing) {\n  var bezier = formatBezier(easing);\n\n  if (bezier && bezier.length === 4) {\n    return \"cubic-bezier(\".concat(bezier.join(','), \")\");\n  }\n\n  var map = {\n    'easeInSine': 'ease-in',\n    'easeOutSine': 'ease-out',\n    'easeInOutSine': 'ease-in-out',\n    'linear': 'linear'\n  };\n  return map[easing] || 'ease-out';\n} // transform property from binding to transition\n\n\nfunction transformProperty(propName, propVal) {\n  var key;\n  var value;\n  var result = {};\n\n  switch (propName) {\n    case 'transform.translateX':\n      key = 'transform';\n      value = ['translateX(' + propVal + 'rem)'];\n      break;\n\n    case 'transform.translateY':\n      key = 'transform';\n      value = ['translateY(' + propVal + 'rem)'];\n      break;\n\n    case 'transform.scaleX':\n      key = 'transform';\n      value = ['scaleX(' + propVal + ')'];\n      break;\n\n    case 'transform.scaleY':\n      key = 'transform';\n      value = ['scaleY(' + propVal + ')'];\n      break;\n\n    case 'transform.scale':\n      key = 'transform';\n      value = ['scale(' + propVal + ')'];\n      break;\n\n    case 'transform.rotate':\n      key = 'transform';\n      value = ['rotate(' + propVal + 'deg)'];\n      break;\n\n    default:\n      key = propName;\n      value = propVal;\n      break;\n  }\n\n  if (key && value !== undefined) {\n    result[key] = value; // solve in old version browser\n\n    if (key == 'transform') {\n      result.webkitTransform = value;\n    }\n  }\n\n  return result;\n}\n\nfunction animate() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var callback = arguments.length > 1 ? arguments[1] : undefined;\n  return new Animation(options, callback);\n}\n\nvar _default = animate;\nexports.default = _default;","(function(){\r\n  var crypt = require('crypt'),\r\n      utf8 = require('charenc').utf8,\r\n      isBuffer = require('is-buffer'),\r\n      bin = require('charenc').bin,\r\n\r\n  // The core\r\n  md5 = function (message, options) {\r\n    // Convert to byte array\r\n    if (message.constructor == String)\r\n      if (options && options.encoding === 'binary')\r\n        message = bin.stringToBytes(message);\r\n      else\r\n        message = utf8.stringToBytes(message);\r\n    else if (isBuffer(message))\r\n      message = Array.prototype.slice.call(message, 0);\r\n    else if (!Array.isArray(message))\r\n      message = message.toString();\r\n    // else, assume byte array already\r\n\r\n    var m = crypt.bytesToWords(message),\r\n        l = message.length * 8,\r\n        a =  1732584193,\r\n        b = -271733879,\r\n        c = -1732584194,\r\n        d =  271733878;\r\n\r\n    // Swap endian\r\n    for (var i = 0; i < m.length; i++) {\r\n      m[i] = ((m[i] <<  8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n             ((m[i] << 24) | (m[i] >>>  8)) & 0xFF00FF00;\r\n    }\r\n\r\n    // Padding\r\n    m[l >>> 5] |= 0x80 << (l % 32);\r\n    m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n    // Method shortcuts\r\n    var FF = md5._ff,\r\n        GG = md5._gg,\r\n        HH = md5._hh,\r\n        II = md5._ii;\r\n\r\n    for (var i = 0; i < m.length; i += 16) {\r\n\r\n      var aa = a,\r\n          bb = b,\r\n          cc = c,\r\n          dd = d;\r\n\r\n      a = FF(a, b, c, d, m[i+ 0],  7, -680876936);\r\n      d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n      c = FF(c, d, a, b, m[i+ 2], 17,  606105819);\r\n      b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n      a = FF(a, b, c, d, m[i+ 4],  7, -176418897);\r\n      d = FF(d, a, b, c, m[i+ 5], 12,  1200080426);\r\n      c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n      b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n      a = FF(a, b, c, d, m[i+ 8],  7,  1770035416);\r\n      d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n      c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n      b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n      a = FF(a, b, c, d, m[i+12],  7,  1804603682);\r\n      d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n      c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n      b = FF(b, c, d, a, m[i+15], 22,  1236535329);\r\n\r\n      a = GG(a, b, c, d, m[i+ 1],  5, -165796510);\r\n      d = GG(d, a, b, c, m[i+ 6],  9, -1069501632);\r\n      c = GG(c, d, a, b, m[i+11], 14,  643717713);\r\n      b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n      a = GG(a, b, c, d, m[i+ 5],  5, -701558691);\r\n      d = GG(d, a, b, c, m[i+10],  9,  38016083);\r\n      c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n      b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n      a = GG(a, b, c, d, m[i+ 9],  5,  568446438);\r\n      d = GG(d, a, b, c, m[i+14],  9, -1019803690);\r\n      c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n      b = GG(b, c, d, a, m[i+ 8], 20,  1163531501);\r\n      a = GG(a, b, c, d, m[i+13],  5, -1444681467);\r\n      d = GG(d, a, b, c, m[i+ 2],  9, -51403784);\r\n      c = GG(c, d, a, b, m[i+ 7], 14,  1735328473);\r\n      b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n      a = HH(a, b, c, d, m[i+ 5],  4, -378558);\r\n      d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n      c = HH(c, d, a, b, m[i+11], 16,  1839030562);\r\n      b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n      a = HH(a, b, c, d, m[i+ 1],  4, -1530992060);\r\n      d = HH(d, a, b, c, m[i+ 4], 11,  1272893353);\r\n      c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n      b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n      a = HH(a, b, c, d, m[i+13],  4,  681279174);\r\n      d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n      c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n      b = HH(b, c, d, a, m[i+ 6], 23,  76029189);\r\n      a = HH(a, b, c, d, m[i+ 9],  4, -640364487);\r\n      d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n      c = HH(c, d, a, b, m[i+15], 16,  530742520);\r\n      b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n      a = II(a, b, c, d, m[i+ 0],  6, -198630844);\r\n      d = II(d, a, b, c, m[i+ 7], 10,  1126891415);\r\n      c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n      b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n      a = II(a, b, c, d, m[i+12],  6,  1700485571);\r\n      d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n      c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n      b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n      a = II(a, b, c, d, m[i+ 8],  6,  1873313359);\r\n      d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n      c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n      b = II(b, c, d, a, m[i+13], 21,  1309151649);\r\n      a = II(a, b, c, d, m[i+ 4],  6, -145523070);\r\n      d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n      c = II(c, d, a, b, m[i+ 2], 15,  718787259);\r\n      b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n      a = (a + aa) >>> 0;\r\n      b = (b + bb) >>> 0;\r\n      c = (c + cc) >>> 0;\r\n      d = (d + dd) >>> 0;\r\n    }\r\n\r\n    return crypt.endian([a, b, c, d]);\r\n  };\r\n\r\n  // Auxiliary functions\r\n  md5._ff  = function (a, b, c, d, x, s, t) {\r\n    var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n    return ((n << s) | (n >>> (32 - s))) + b;\r\n  };\r\n  md5._gg  = function (a, b, c, d, x, s, t) {\r\n    var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n    return ((n << s) | (n >>> (32 - s))) + b;\r\n  };\r\n  md5._hh  = function (a, b, c, d, x, s, t) {\r\n    var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n    return ((n << s) | (n >>> (32 - s))) + b;\r\n  };\r\n  md5._ii  = function (a, b, c, d, x, s, t) {\r\n    var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n    return ((n << s) | (n >>> (32 - s))) + b;\r\n  };\r\n\r\n  // Package private blocksize\r\n  md5._blocksize = 16;\r\n  md5._digestsize = 16;\r\n\r\n  module.exports = function (message, options) {\r\n    if (message === undefined || message === null)\r\n      throw new Error('Illegal argument ' + message);\r\n\r\n    var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n    return options && options.asBytes ? digestbytes :\r\n        options && options.asString ? bin.bytesToString(digestbytes) :\r\n        crypt.bytesToHex(digestbytes);\r\n  };\r\n\r\n})();\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _rax = require(\"rax\");\n\nvar _universalEnv = require(\"universal-env\");\n\nvar _raxText = _interopRequireDefault(require(\"rax-text\"));\n\nvar _raxTouchable = _interopRequireDefault(require(\"rax-touchable\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Button =\n/*#__PURE__*/\nfunction (_Component) {\n  _inherits(Button, _Component);\n\n  function Button() {\n    _classCallCheck(this, Button);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Button).apply(this, arguments));\n  }\n\n  _createClass(Button, [{\n    key: \"render\",\n    value: function render() {\n      var props = this.props;\n      var buttonStyles = [styles.button, props.style];\n      var textStyles = [styles.text];\n\n      if (props.color) {\n        textStyles.push({\n          color: props.color\n        });\n      }\n\n      if (props.disabled) {\n        buttonStyles.push(styles.buttonDisabled);\n        textStyles.push(styles.textDisabled);\n      }\n\n      var content = props.children || props.title;\n\n      if (typeof content === 'string') {\n        content = (0, _rax.createElement)(_raxText.default, {\n          style: textStyles\n        }, content);\n      }\n\n      return (0, _rax.createElement)(_raxTouchable.default, _extends({\n        role: \"button\"\n      }, props, {\n        style: buttonStyles\n      }), content);\n    }\n  }]);\n\n  return Button;\n}(_rax.Component);\n\n_defineProperty(Button, \"propTypes\", {});\n\nvar styles = {\n  button: {},\n  text: {\n    color: '#0C42FD',\n    textAlign: 'center',\n    padding: 16,\n    fontSize: 36\n  },\n  buttonDisabled: {},\n  textDisabled: {\n    color: '#cdcdcd'\n  }\n};\nvar _default = Button;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _rax = require(\"rax\");\n\nvar _universalEnv = require(\"universal-env\");\n\nvar _raxView = _interopRequireDefault(require(\"rax-view\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Image =\n/*#__PURE__*/\nfunction (_PureComponent) {\n  _inherits(Image, _PureComponent);\n\n  function Image() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, Image);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Image)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n      source: _this.props.source\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onLoad\", function (e) {\n      var _assertThisInitialize = _assertThisInitialized(_assertThisInitialized(_this)),\n          onError = _assertThisInitialize.onError;\n\n      var onLoad = _this.props.onLoad;\n\n      if (typeof e.success !== 'undefined') {\n        if (e.success) onLoad(e);else onError(e);\n      } else if (typeof e.currentTarget !== 'undefined') {\n        if (e.currentTarget.naturalWidth > 1 && e.currentTarget.naturalHeight > 1) {\n          onLoad(e);\n        } else {\n          onError(e);\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onError\", function (e) {\n      var _this$props = _this.props,\n          fallbackSource = _this$props.fallbackSource,\n          onError = _this$props.onError;\n      var source = _this.state.source;\n\n      if (fallbackSource.uri && source.uri !== fallbackSource.uri) {\n        _this.isError = true;\n\n        _this.setState({\n          source: fallbackSource\n        });\n      }\n\n      onError(e);\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"save\", function (callback) {\n      _this.refs.nativeImg.save(function (result) {\n        callback(result);\n      });\n    });\n\n    return _this;\n  }\n\n  _createClass(Image, [{\n    key: \"render\",\n    value: function render() {\n      var nativeProps = _objectSpread({}, this.props);\n\n      var source = this.isError ? this.state.source : nativeProps.source; // Source must a object\n\n      if (source && source.uri) {\n        var style = nativeProps.style;\n        var width = source.width,\n            height = source.height,\n            uri = source.uri; // Default is 0\n\n        if (width == null && height == null && style.height == null && style.width == null) {\n          width = 0;\n          height = 0;\n        }\n\n        nativeProps.style = _objectSpread({}, _objectSpread({}, !this.context.isInAParentText && {\n          display: 'flex'\n        }, {\n          width: width,\n          height: height\n        }), style);\n        nativeProps.src = uri;\n        nativeProps.onLoad = this.onLoad;\n        nativeProps.onError = this.onError;\n        delete nativeProps.source;\n        var NativeImage;\n\n        if (_universalEnv.isWeex) {\n          NativeImage = 'image';\n        } else {\n          NativeImage = 'img';\n        } // for cover and contain\n\n\n        var resizeMode = nativeProps.resizeMode || nativeProps.style.resizeMode;\n\n        if (resizeMode) {\n          if (_universalEnv.isWeex) {\n            nativeProps.resize = resizeMode;\n            nativeProps.style.resizeMode = resizeMode;\n          } else {\n            nativeProps.style.objectFit = resizeMode;\n          }\n        }\n\n        if (this.props.children) {\n          nativeProps.children = null;\n          return (0, _rax.createElement)(_raxView.default, {\n            style: nativeProps.style\n          }, (0, _rax.createElement)(NativeImage, _extends({\n            ref: 'nativeImg'\n          }, nativeProps)), (0, _rax.createElement)(_raxView.default, {\n            style: styles.absoluteImage\n          }, this.props.children));\n        } else {\n          return (0, _rax.createElement)(NativeImage, _extends({\n            ref: 'nativeImg'\n          }, nativeProps));\n        }\n      }\n\n      return null;\n    }\n  }]);\n\n  return Image;\n}(_rax.PureComponent);\n\n_defineProperty(Image, \"propTypes\", {});\n\n_defineProperty(Image, \"resizeMode\", {\n  contain: 'contain',\n  cover: 'cover',\n  stretch: 'stretch',\n  center: 'center',\n  repeat: 'repeat'\n});\n\n_defineProperty(Image, \"contextTypes\", {\n  isInAParentText: _rax.PropTypes.bool\n});\n\n_defineProperty(Image, \"defaultProps\", {\n  onLoad: function onLoad() {},\n  onError: function onError() {},\n  fallbackSource: {}\n});\n\nvar styles = {\n  absoluteImage: {\n    left: 0,\n    top: 0,\n    position: 'absolute'\n  }\n};\nvar _default = Image;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","/**\n * The `punycode` object.\n * @name punycode\n * @type Object\n */\nvar punycode,\n\n  /** Highest positive signed 32-bit float value */\n  maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n  /** Bootstring parameters */\n  base = 36,\n  tMin = 1,\n  tMax = 26,\n  skew = 38,\n  damp = 700,\n  initialBias = 72,\n  initialN = 128, // 0x80\n  delimiter = '-', // '\\x2D'\n\n  /** Regular expressions */\n  regexPunycode = /^xn--/,\n  regexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n  regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n  /** Error messages */\n  errors = {\n    'overflow': 'Overflow: input needs wider integers to process',\n    'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n    'invalid-input': 'Invalid input'\n  },\n\n  /** Convenience shortcuts */\n  baseMinusTMin = base - tMin,\n  floor = Math.floor,\n  stringFromCharCode = String.fromCharCode,\n\n  /** Temporary variable */\n  key;\n\n/* -------------------------------------------------------------------------- */\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n  throw RangeError(errors[type]); // eslint-disable-line\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n  var length = array.length;\n  var result = [];\n  while (length--) {\n    result[length] = fn(array[length]);\n  }\n  return result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n  var parts = string.split('@');\n  var result = '';\n  if (parts.length > 1) {\n    // In email addresses, only the domain name should be punycoded. Leave\n    // the local part (i.e. everything up to `@`) intact.\n    result = parts[0] + '@';\n    string = parts[1];\n  }\n  // Avoid `split(regex)` for IE8 compatibility. See #17.\n  string = string.replace(regexSeparators, '\\x2E');\n  var labels = string.split('.');\n  var encoded = map(labels, fn).join('.');\n  return result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n  var output = [],\n    counter = 0,\n    length = string.length,\n    value,\n    extra;\n  while (counter < length) {\n    value = string.charCodeAt(counter++);\n    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n      // high surrogate, and there is a next character\n      extra = string.charCodeAt(counter++);\n      if ((extra & 0xFC00) == 0xDC00) { // low surrogate\n        output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n      } else {\n        // unmatched surrogate; only append this code unit, in case the next\n        // code unit is the high surrogate of a surrogate pair\n        output.push(value);\n        counter--;\n      }\n    } else {\n      output.push(value);\n    }\n  }\n  return output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nfunction ucs2encode(array) {\n  return map(array, function(value) {\n    var output = '';\n    if (value > 0xFFFF) {\n      value -= 0x10000;\n      output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n      value = 0xDC00 | value & 0x3FF;\n    }\n    output += stringFromCharCode(value);\n    return output;\n  }).join('');\n}\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nfunction basicToDigit(codePoint) {\n  if (codePoint - 48 < 10) {\n    return codePoint - 22;\n  }\n  if (codePoint - 65 < 26) {\n    return codePoint - 65;\n  }\n  if (codePoint - 97 < 26) {\n    return codePoint - 97;\n  }\n  return base;\n}\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nfunction digitToBasic(digit, flag) {\n  //  0..25 map to ASCII a..z or A..Z\n  // 26..35 map to ASCII 0..9\n  return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n}\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * http://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nfunction adapt(delta, numPoints, firstTime) {\n  var k = 0;\n  delta = firstTime ? floor(delta / damp) : delta >> 1;\n  delta += floor(delta / numPoints);\n  for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n    delta = floor(delta / baseMinusTMin);\n  }\n  return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n}\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nfunction decode(input) {\n  // Don't use UCS-2\n  var output = [],\n    inputLength = input.length,\n    out,\n    i = 0,\n    n = initialN,\n    bias = initialBias,\n    basic,\n    j,\n    index,\n    oldi,\n    w,\n    k,\n    digit,\n    t,\n    /** Cached calculation results */\n    baseMinusT;\n\n  // Handle the basic code points: let `basic` be the number of input code\n  // points before the last delimiter, or `0` if there is none, then copy\n  // the first basic code points to the output.\n\n  basic = input.lastIndexOf(delimiter);\n  if (basic < 0) {\n    basic = 0;\n  }\n\n  for (j = 0; j < basic; ++j) {\n    // if it's not a basic code point\n    if (input.charCodeAt(j) >= 0x80) {\n      error('not-basic');\n    }\n    output.push(input.charCodeAt(j));\n  }\n\n  // Main decoding loop: start just after the last delimiter if any basic code\n  // points were copied; start at the beginning otherwise.\n\n  for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n    // `index` is the index of the next character to be consumed.\n    // Decode a generalized variable-length integer into `delta`,\n    // which gets added to `i`. The overflow checking is easier\n    // if we increase `i` as we go, then subtract off its starting\n    // value at the end to obtain `delta`.\n    for (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n      if (index >= inputLength) {\n        error('invalid-input');\n      }\n\n      digit = basicToDigit(input.charCodeAt(index++));\n\n      if (digit >= base || digit > floor((maxInt - i) / w)) {\n        error('overflow');\n      }\n\n      i += digit * w;\n      t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n      if (digit < t) {\n        break;\n      }\n\n      baseMinusT = base - t;\n      if (w > floor(maxInt / baseMinusT)) {\n        error('overflow');\n      }\n\n      w *= baseMinusT;\n    }\n\n    out = output.length + 1;\n    bias = adapt(i - oldi, out, oldi == 0);\n\n    // `i` was supposed to wrap around from `out` to `0`,\n    // incrementing `n` each time, so we'll fix that now:\n    if (floor(i / out) > maxInt - n) {\n      error('overflow');\n    }\n\n    n += floor(i / out);\n    i %= out;\n\n    // Insert `n` at position `i` of the output\n    output.splice(i++, 0, n);\n  }\n\n  return ucs2encode(output);\n}\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nfunction encode(input) {\n  var n,\n    delta,\n    handledCPCount,\n    basicLength,\n    bias,\n    j,\n    m,\n    q,\n    k,\n    t,\n    currentValue,\n    output = [],\n    /** `inputLength` will hold the number of code points in `input`. */\n    inputLength,\n    /** Cached calculation results */\n    handledCPCountPlusOne,\n    baseMinusT,\n    qMinusT;\n\n  // Convert the input in UCS-2 to Unicode\n  input = ucs2decode(input);\n\n  // Cache the length\n  inputLength = input.length;\n\n  // Initialize the state\n  n = initialN;\n  delta = 0;\n  bias = initialBias;\n\n  // Handle the basic code points\n  for (j = 0; j < inputLength; ++j) {\n    currentValue = input[j];\n    if (currentValue < 0x80) {\n      output.push(stringFromCharCode(currentValue));\n    }\n  }\n\n  handledCPCount = basicLength = output.length;\n\n  // `handledCPCount` is the number of code points that have been handled;\n  // `basicLength` is the number of basic code points.\n\n  // Finish the basic string - if it is not empty - with a delimiter\n  if (basicLength) {\n    output.push(delimiter);\n  }\n\n  // Main encoding loop:\n  while (handledCPCount < inputLength) {\n    // All non-basic code points < n have been handled already. Find the next\n    // larger one:\n    for (m = maxInt, j = 0; j < inputLength; ++j) {\n      currentValue = input[j];\n      if (currentValue >= n && currentValue < m) {\n        m = currentValue;\n      }\n    }\n\n    // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n    // but guard against overflow\n    handledCPCountPlusOne = handledCPCount + 1;\n    if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n      error('overflow');\n    }\n\n    delta += (m - n) * handledCPCountPlusOne;\n    n = m;\n\n    for (j = 0; j < inputLength; ++j) {\n      currentValue = input[j];\n\n      if (currentValue < n && ++delta > maxInt) {\n        error('overflow');\n      }\n\n      if (currentValue == n) {\n        // Represent delta as a generalized variable-length integer\n        for (q = delta, k = base; /* no condition */; k += base) {\n          t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n          if (q < t) {\n            break;\n          }\n          qMinusT = q - t;\n          baseMinusT = base - t;\n          output.push(\n            stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n          );\n          q = floor(qMinusT / baseMinusT);\n        }\n\n        output.push(stringFromCharCode(digitToBasic(q, 0)));\n        bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n        delta = 0;\n        ++handledCPCount;\n      }\n    }\n\n    ++delta;\n    ++n;\n  }\n  return output.join('');\n}\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nfunction toUnicode(input) {\n  return mapDomain(input, function(string) {\n    return regexPunycode.test(string)\n      ? decode(string.slice(4).toLowerCase())\n      : string;\n  });\n}\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nfunction toASCII(input) {\n  return mapDomain(input, function(string) {\n    return regexNonASCII.test(string)\n      ? 'xn--' + encode(string)\n      : string;\n  });\n}\n\n/* -------------------------------------------------------------------------- */\n\n/** Define the public API */\npunycode = {\n  /**\n   * A string representing the current Punycode.js version number.\n   * @memberOf punycode\n   * @type String\n   */\n  'version': '1.3.2',\n  /**\n   * An object of methods to convert from JavaScript's internal character\n   * representation (UCS-2) to Unicode code points, and back.\n   * @see <https://mathiasbynens.be/notes/javascript-encoding>\n   * @memberOf punycode\n   * @type Object\n   */\n  'ucs2': {\n    'decode': ucs2decode,\n    'encode': ucs2encode\n  },\n  'decode': decode,\n  'encode': encode,\n  'toASCII': toASCII,\n  'toUnicode': toUnicode\n};\n\nexport default punycode;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.isRem = isRem;\nexports.calcRem = calcRem;\nexports.getRem = getRem;\nexports.setRem = setRem;\nexports.isUnitNumber = isUnitNumber;\nexports.convertUnit = convertUnit;\nexports.default = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar UNITLESS_NUMBER_PROPS = {\n  animationIterationCount: true,\n  borderImageOutset: true,\n  borderImageSlice: true,\n  borderImageWidth: true,\n  boxFlex: true,\n  boxFlexGroup: true,\n  boxOrdinalGroup: true,\n  columnCount: true,\n  flex: true,\n  flexGrow: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  flexOrder: true,\n  gridRow: true,\n  gridColumn: true,\n  fontWeight: true,\n  lineClamp: true,\n  // We make lineHeight default is px that is diff with w3c spec\n  // lineHeight: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n  // Weex only\n  lines: true\n};\nvar IS_REM_REG = /\\d+(rem|rpx)/;\nvar REM_REG = /[-+]?\\d*\\.?\\d+(rem|rpx)/g;\nvar GLOBAL_REM_UNIT = '__global_rem_unit__';\nvar global = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' ? window : _typeof(global) === 'object' ? global : {}; // Default 1 rem to 1 px\n\nif (getRem() === undefined) {\n  setRem(1);\n}\n/**\n * Is string contains rem\n * note: rpx is an alias to rem\n * @param {String} str\n * @returns {Boolean}\n */\n\n\nfunction isRem(str) {\n  return IS_REM_REG.test(str);\n}\n/**\n * Calculate rem to pixels: '1.2rem' => 1.2 * rem\n * @param {String} str\n * @param {Number} rem\n * @returns {number}\n */\n\n\nfunction calcRem(str) {\n  var remUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getRem();\n  return str.replace(REM_REG, function (rem) {\n    return parseFloat(rem) * remUnit + 'px';\n  });\n}\n\nfunction getRem() {\n  return global[GLOBAL_REM_UNIT];\n}\n\nfunction setRem(rem) {\n  global[GLOBAL_REM_UNIT] = rem;\n}\n\nfunction isUnitNumber(val, prop) {\n  return typeof val === 'number' && !UNITLESS_NUMBER_PROPS[prop];\n}\n\nfunction convertUnit(val, prop) {\n  var remUnit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getRem();\n\n  if (prop && isUnitNumber(val, prop)) {\n    return val * remUnit + 'px';\n  } else if (isRem(val)) {\n    return calcRem(val, remUnit);\n  }\n\n  return val;\n}\n\nexports[\"default\"] = module.exports;\nvar _default = module.exports;\nexports.default = _default;","(function() {\n  var base64map\n      = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n  crypt = {\n    // Bit-wise rotation left\n    rotl: function(n, b) {\n      return (n << b) | (n >>> (32 - b));\n    },\n\n    // Bit-wise rotation right\n    rotr: function(n, b) {\n      return (n << (32 - b)) | (n >>> b);\n    },\n\n    // Swap big-endian to little-endian and vice versa\n    endian: function(n) {\n      // If number given, swap endian\n      if (n.constructor == Number) {\n        return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n      }\n\n      // Else, assume array and swap all items\n      for (var i = 0; i < n.length; i++)\n        n[i] = crypt.endian(n[i]);\n      return n;\n    },\n\n    // Generate an array of any length of random bytes\n    randomBytes: function(n) {\n      for (var bytes = []; n > 0; n--)\n        bytes.push(Math.floor(Math.random() * 256));\n      return bytes;\n    },\n\n    // Convert a byte array to big-endian 32-bit words\n    bytesToWords: function(bytes) {\n      for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n        words[b >>> 5] |= bytes[i] << (24 - b % 32);\n      return words;\n    },\n\n    // Convert big-endian 32-bit words to a byte array\n    wordsToBytes: function(words) {\n      for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n        bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n      return bytes;\n    },\n\n    // Convert a byte array to a hex string\n    bytesToHex: function(bytes) {\n      for (var hex = [], i = 0; i < bytes.length; i++) {\n        hex.push((bytes[i] >>> 4).toString(16));\n        hex.push((bytes[i] & 0xF).toString(16));\n      }\n      return hex.join('');\n    },\n\n    // Convert a hex string to a byte array\n    hexToBytes: function(hex) {\n      for (var bytes = [], c = 0; c < hex.length; c += 2)\n        bytes.push(parseInt(hex.substr(c, 2), 16));\n      return bytes;\n    },\n\n    // Convert a byte array to a base-64 string\n    bytesToBase64: function(bytes) {\n      for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n        var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n        for (var j = 0; j < 4; j++)\n          if (i * 8 + j * 6 <= bytes.length * 8)\n            base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n          else\n            base64.push('=');\n      }\n      return base64.join('');\n    },\n\n    // Convert a base-64 string to a byte array\n    base64ToBytes: function(base64) {\n      // Remove non-base-64 characters\n      base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n      for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n          imod4 = ++i % 4) {\n        if (imod4 == 0) continue;\n        bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n            & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n            | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n      }\n      return bytes;\n    }\n  };\n\n  module.exports = crypt;\n})();\n","/*!\n * Determine if an object is a Buffer\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n  return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n  return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n  return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","'use strict';\nmodule.exports = function (x) {\n\tvar type = typeof x;\n\treturn x !== null && (type === 'object' || type === 'function');\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _rax = require(\"rax\");\n\nvar _universalEnv = require(\"universal-env\");\n\nvar _raxView = _interopRequireDefault(require(\"rax-view\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Touchable =\n/*#__PURE__*/\nfunction (_Component) {\n  _inherits(Touchable, _Component);\n\n  function Touchable() {\n    _classCallCheck(this, Touchable);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Touchable).apply(this, arguments));\n  }\n\n  _createClass(Touchable, [{\n    key: \"render\",\n    value: function render() {\n      var props = this.props;\n\n      var nativeProps = _objectSpread({}, props, {\n        style: _objectSpread({}, styles.initial, props.style),\n        onClick: props.onPress\n      });\n\n      delete nativeProps.onPress;\n      return (0, _rax.createElement)(_raxView.default, nativeProps);\n    }\n  }]);\n\n  return Touchable;\n}(_rax.Component);\n\n_defineProperty(Touchable, \"propTypes\", {});\n\nvar styles = {\n  initial: {\n    cursor: 'pointer'\n  }\n};\nvar _default = Touchable;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","/** @jsx createElement */\n'use strict';\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _rax = require(\"rax\");\n\nvar _DefaultView = _interopRequireDefault(require(\"./DefaultView\"));\n\nvar _SliderView = _interopRequireDefault(require(\"./SliderView\"));\n\nvar _universalEnv = require(\"universal-env\");\n\nvar _Utils = require(\"./Utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar DURATION = 250;\nvar FULL_WIDTH = 750;\nvar DEFAULT_EASING = 'cubic-bezier(0.25, 0.46, 0.45, 0.94)';\nvar styles = {\n  container: {\n    width: FULL_WIDTH,\n    position: 'absolute',\n    top: 0,\n    bottom: 0,\n    overflow: 'hidden'\n  },\n  wrap: {\n    position: 'absolute',\n    flexDirection: 'row',\n    top: 0,\n    bottom: 0\n  }\n};\n\nvar TabController =\n/*#__PURE__*/\nfunction (_Component) {\n  _inheritsLoose(TabController, _Component);\n\n  function TabController(props) {\n    var _this;\n\n    _this = _Component.call(this, props) || this;\n    _this.itemCount = 0;\n    _this.token = null;\n\n    _this.switchTo = function (index, options) {\n      if (options === void 0) {\n        options = {\n          params: {}\n        };\n      }\n\n      _this.refs.container.switchTo(index, options);\n    };\n\n    _this.uuid = '__tab_panel__' + (0, _Utils.uuid)();\n    return _this;\n  }\n\n  var _proto = TabController.prototype;\n\n  _proto.getChildContext = function getChildContext() {\n    return {\n      isInATabPanel: true,\n      uuid: this.uuid\n    };\n  };\n\n  _proto.render = function render() {\n    // use weex slider component\n    var useSlider = this.props.useSlider;\n\n    var props = _extends({}, this.props, {\n      ref: 'container',\n      style: [styles.container, this.props.style],\n      uuid: this.uuid\n    });\n\n    return useSlider && _universalEnv.isWeex ? (0, _rax.createElement)(_SliderView.default, props) : (0, _rax.createElement)(_DefaultView.default, props);\n  };\n\n  return TabController;\n}(_rax.Component);\n\nTabController.defaultProps = {\n  duration: DURATION,\n  // duration for slide animation\n  easing: DEFAULT_EASING,\n  // easing for slide animation\n  isPanEnabled: true,\n  isSlideEnabled: true,\n  // slide animation\n  beforeExpressionBind: _Utils.noop,\n  pageConfig: [],\n  onViewAppear: _Utils.noop,\n  onViewDisAppear: _Utils.noop,\n  defaultFocusIndex: 0,\n  useSlider: false,\n  screenNumbersPerSide: null // save screens per-side\n\n};\nvar _default = TabController;\nexports.default = _default;","/** @jsx createElement */\n'use strict';\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _rax = require(\"rax\");\n\nvar _raxView = _interopRequireDefault(require(\"rax-view\"));\n\nvar _universalEnv = require(\"universal-env\");\n\nvar _weexBindingx = _interopRequireDefault(require(\"weex-bindingx\"));\n\nvar _universalTransition = _interopRequireDefault(require(\"universal-transition\"));\n\nvar _Detection = _interopRequireDefault(require(\"./Detection\"));\n\nvar _TabPanel = _interopRequireDefault(require(\"./TabPanel\"));\n\nvar _Utils = require(\"./Utils\");\n\nvar _BaseView2 = _interopRequireDefault(require(\"./BaseView\"));\n\nvar _PanView = _interopRequireDefault(require(\"./PanView\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction getEl(el) {\n  return _universalEnv.isWeex ? (0, _rax.findDOMNode)(el).ref : (0, _rax.findDOMNode)(el);\n} // solve for transition duration = 0 bug\n\n\nvar MIN_DURATION = 1;\nvar DURATION = 250;\nvar DEFAULT_EASING = 'cubic-bezier(0.25, 0.46, 0.45, 0.94)';\nvar styles = {\n  container: {\n    width: 750,\n    position: 'absolute',\n    top: 0,\n    bottom: 0,\n    overflow: 'hidden'\n  },\n  wrap: {\n    position: 'absolute',\n    flexDirection: 'row',\n    top: 0,\n    bottom: 0\n  }\n};\n\nvar DefaultView =\n/*#__PURE__*/\nfunction (_BaseView) {\n  _inheritsLoose(DefaultView, _BaseView);\n\n  function DefaultView() {\n    var _this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _BaseView.call.apply(_BaseView, [this].concat(args)) || this;\n    _this.x = 0;\n    _this.itemWidth = 750;\n    _this.itemCount = 0;\n    _this.curIndex = null;\n    _this.startTime = null;\n    _this.token = null;\n    _this.isScrolling = false;\n    _this.shouldBind = false;\n    _this.isPropagationStopped = false;\n\n    _this.bindCellPanExp = function (e) {\n      // check uuid\n      var uuid = _this.props.uuid;\n\n      if (e.uuid == uuid && e.element) {\n        _this.bindPanExp(e.element);\n      }\n    };\n\n    _this.handleSwipeBack = function () {\n      if (_universalEnv.isWeex && _Detection.default.isEnableSlider) {\n        var forbidSwipeBackOnIOS = _this.props.forbidSwipeBackOnIOS;\n\n        if (forbidSwipeBackOnIOS === 'auto') {\n          if (_this.curIndex === 0) {\n            (0, _Utils.forbidSwipeBack)(false);\n          } else {\n            (0, _Utils.forbidSwipeBack)(true);\n          }\n        } else {\n          (0, _Utils.forbidSwipeBack)(!!forbidSwipeBackOnIOS);\n        }\n      }\n    };\n\n    _this.switchTo = function (index, options) {\n      if (options === void 0) {\n        options = {\n          params: {}\n        };\n      }\n\n      var _this$props = _this.props,\n          _this$props$beforeSwi = _this$props.beforeSwitch,\n          beforeSwitch = _this$props$beforeSwi === void 0 ? _Utils.noop : _this$props$beforeSwi,\n          _this$props$afterSwit = _this$props.afterSwitch,\n          afterSwitch = _this$props$afterSwit === void 0 ? _Utils.noop : _this$props$afterSwit;\n      var _options = options,\n          _options$duration = _options.duration,\n          duration = _options$duration === void 0 ? _this.props.duration : _options$duration,\n          params = _options.params;\n      index = (0, _Utils.clamp)(index, 0, _this.itemCount - 1);\n      var prevIndex = _this.curIndex;\n      beforeSwitch({\n        index: index,\n        params: params,\n        prevIndex: prevIndex\n      });\n      _this.curIndex = index;\n\n      _this.renderPanel(index);\n\n      var itemWidth = _this.itemWidth;\n      var end = -index * itemWidth;\n      var wrap = (0, _rax.findDOMNode)(_this.refs.wrap);\n\n      var callback = function callback() {\n        _this.curIndex = index;\n        afterSwitch({\n          index: index,\n          params: params,\n          prevIndex: prevIndex\n        });\n\n        _this.handleScreens();\n\n        _this.handleSwipeBack();\n      };\n\n      if (duration === 0) {\n        (0, _rax.setNativeProps)(wrap, {\n          style: {\n            transform: \"translateX(\" + end + \"rem)\",\n            webkitTransform: \"translateX(\" + end + \"rem)\"\n          }\n        });\n        return callback();\n      }\n\n      (0, _universalTransition.default)(wrap, {\n        transform: \"translateX(\" + end + \"rem)\",\n        webkitTransform: \"translateX(\" + end + \"rem)\"\n      }, {\n        timingFunction: _this.props.easing,\n        delay: 0,\n        duration: Math.max(_this.props.isSlideEnabled ? duration : 0, MIN_DURATION)\n      }, callback);\n    };\n\n    _this.bindPanExp = function (anchor) {\n      _this.anchor = anchor;\n      if (!_Detection.default.isEnableSlider) return;\n      var _this$props$extraBind = _this.props.extraBindingProps,\n          extraBindingProps = _this$props$extraBind === void 0 ? [] : _this$props$extraBind;\n\n      if (typeof extraBindingProps === 'function') {\n        extraBindingProps = extraBindingProps();\n      }\n\n      if (!_this.props.isPanEnabled) {\n        return;\n      }\n\n      _this.x = -_this.curIndex * _this.itemWidth;\n      var expression = {\n        origin: \"x+\" + _this.x,\n        transformed: \"{\\\"type\\\":\\\"+\\\",\\\"children\\\":[{\\\"type\\\":\\\"Identifier\\\",\\\"value\\\":\\\"x\\\"},{\\\"type\\\":\\\"NumericLiteral\\\",\\\"value\\\":\" + _this.x + \"}]}\"\n      };\n\n      if (_this.curIndex === 0) {\n        // left edge bounce\n        expression.origin = \"x > 0 ? (x/3+\" + _this.x + \") : (x + \" + _this.x + \")\";\n        expression.transformed = \" {\\\"type\\\":\\\"?\\\",\\\"children\\\":[{\\\"type\\\":\\\">\\\",\\\"children\\\":[{\\\"type\\\":\\\"Identifier\\\",\\\"value\\\":\\\"x\\\"},{\\\"type\\\":\\\"NumericLiteral\\\",\\\"value\\\":0}]},{\\\"type\\\":\\\"+\\\",\\\"children\\\":[{\\\"type\\\":\\\"/\\\",\\\"children\\\":[{\\\"type\\\":\\\"Identifier\\\",\\\"value\\\":\\\"x\\\"},{\\\"type\\\":\\\"NumericLiteral\\\",\\\"value\\\":3}]},{\\\"type\\\":\\\"NumericLiteral\\\",\\\"value\\\":\" + _this.x + \"}]},{\\\"type\\\":\\\"+\\\",\\\"children\\\":[{\\\"type\\\":\\\"Identifier\\\",\\\"value\\\":\\\"x\\\"},{\\\"type\\\":\\\"NumericLiteral\\\",\\\"value\\\":\" + _this.x + \"}]}]}\";\n      }\n\n      if (_this.curIndex === _this.itemCount - 1) {\n        // right edge bounce\n        expression.origin = \"x < 0 ? (x/3+\" + _this.x + \") : (x + \" + _this.x + \")\";\n        expression.transformed = \"{\\\"type\\\":\\\"?\\\",\\\"children\\\":[{\\\"type\\\":\\\"<\\\",\\\"children\\\":[{\\\"type\\\":\\\"Identifier\\\",\\\"value\\\":\\\"x\\\"},{\\\"type\\\":\\\"NumericLiteral\\\",\\\"value\\\":0}]},{\\\"type\\\":\\\"+\\\",\\\"children\\\":[{\\\"type\\\":\\\"/\\\",\\\"children\\\":[{\\\"type\\\":\\\"Identifier\\\",\\\"value\\\":\\\"x\\\"},{\\\"type\\\":\\\"NumericLiteral\\\",\\\"value\\\":3}]},{\\\"type\\\":\\\"NumericLiteral\\\",\\\"value\\\":\" + _this.x + \"}]},{\\\"type\\\":\\\"+\\\",\\\"children\\\":[{\\\"type\\\":\\\"Identifier\\\",\\\"value\\\":\\\"x\\\"},{\\\"type\\\":\\\"NumericLiteral\\\",\\\"value\\\":\" + _this.x + \"}]}]}\";\n      }\n\n      _this.startTime = Date.now();\n      var props = [{\n        element: _this.refs.wrap,\n        property: 'transform.translateX',\n        expression: expression\n      }].concat(extraBindingProps);\n      props.forEach(function (prop) {\n        if (prop && prop.element) {\n          prop.element = getEl(prop.element);\n        }\n      });\n\n      var res = _weexBindingx.default.bind({\n        anchor: getEl(anchor),\n        eventType: 'pan',\n        options: {\n          touchAction: 'pan-x'\n        },\n        props: props\n      }, function (e) {\n        if (e.state == 'end') {\n          // unbind bindingx\n          if (_this.token) {\n            _weexBindingx.default.unbind({\n              token: _this.token,\n              eventType: 'pan',\n              anchor: getEl(anchor)\n            });\n          }\n        }\n\n        _this.onPanCallback(e);\n      });\n\n      _this.token = res && res.token;\n    };\n\n    _this.onPanCallback = function (e) {\n      if (e.state === 'end' && Math.abs(e.deltaX) > 0) {\n        var duration = Date.now() - _this.startTime;\n\n        var dist = e.deltaX;\n        var panDist = _this.props.panDist ? _this.props.panDist : _this.itemWidth / 2;\n        var newIndex = _this.curIndex;\n\n        if (Math.abs(dist) > panDist || Math.abs(dist) / duration > 0.5 && duration < 200) {\n          if (dist > 0) {\n            newIndex--;\n          } else {\n            newIndex++;\n          }\n        }\n\n        if (_universalEnv.isWeex && _Detection.default.iOS && !_weexBindingx.default.isSupportNewBinding) {\n          setTimeout(function () {\n            _this.switchTo(newIndex);\n          }, 30);\n        } else {\n          _this.switchTo(newIndex);\n        }\n      }\n    };\n\n    _this.onHorizontalPan = function (e) {\n      if (e.state === 'end') {\n        _this.isPropagationStopped = false;\n      }\n\n      if (e.state === 'start' && !_this.isScrolling) {\n        _this.bindPanExp(_this.refs.wrap);\n      }\n    };\n\n    return _this;\n  }\n\n  var _proto = DefaultView.prototype;\n\n  _proto.getChildContext = function getChildContext() {\n    return {\n      isInATabPanelDefaultView: true,\n      parentDefaultView: this\n    };\n  };\n\n  _proto.componentWillMount = function componentWillMount() {\n    var _this2 = this;\n\n    var style = this.props.style;\n    this.itemWidth = style.width || this.itemWidth;\n\n    _Utils.Event.on('scroll', function () {\n      _this2.isScrolling = true;\n\n      if (_this2.scrollTimer) {\n        clearTimeout(_this2.scrollTimer);\n      }\n\n      _this2.scrollTimer = setTimeout(function () {\n        _this2.isScrolling = false;\n      }, 200);\n    });\n\n    if (_Detection.default.isEnableSliderAndroid) {\n      _Utils.Event.on('tabpanelcell:panstart', this.bindCellPanExp);\n    }\n  };\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.countItems();\n    var _this$props$defaultFo = this.props.defaultFocusIndex,\n        defaultFocusIndex = _this$props$defaultFo === void 0 ? 0 : _this$props$defaultFo;\n    this.switchTo(defaultFocusIndex, {\n      duration: 0,\n      params: {\n        type: 'default'\n      }\n    });\n  };\n\n  _proto.componentWillReceiveProps = function componentWillReceiveProps(props) {\n    if (props) {\n      this.countItems(props);\n    }\n  };\n\n  _proto.render = function render() {\n    var _this3 = this;\n\n    var isPanEnabled = this.props.isPanEnabled;\n    var curIndex = this.curIndex;\n\n    if (this.props.children && !(this.props.children instanceof Array)) {\n      this.props.children = [this.props.children];\n    }\n\n    var children = this.props.children.map(function (child, index) {\n      if (child && child.type === _TabPanel.default) {\n        return (0, _rax.createElement)(_TabPanel.default, _extends({\n          index: index,\n          curIndex: curIndex\n        }, child.props, {\n          style: [{\n            width: _this3.itemWidth\n          }, _extends({}, child.props.style)],\n          ref: \"panel_\" + index\n        }));\n      } else {\n        return child;\n      }\n    });\n    var wrapProps = !_Detection.default.isEnableSliderAndroid && isPanEnabled ? {\n      onHorizontalPan: this.onHorizontalPan\n    } : {};\n    return (0, _rax.createElement)(_raxView.default, _extends({}, this.props, {\n      style: [styles.container, this.props.style]\n    }), (0, _rax.createElement)(_PanView.default, _extends({\n      ref: \"wrap\"\n    }, wrapProps, {\n      style: styles.wrap\n    }), children));\n  };\n\n  return DefaultView;\n}(_BaseView2.default);\n\nDefaultView.defaultProps = {\n  panDist: null,\n  duration: DURATION,\n  easing: DEFAULT_EASING,\n  isPanEnabled: true,\n  isSlideEnabled: true,\n  beforeExpressionBind: _Utils.noop,\n  pageConfig: [],\n  defaultFocusIndex: 0,\n  forbidSwipeBackOnIOS: 'auto'\n};\nDefaultView.contextTypes = {\n  isInATabPanel: _rax.PropTypes.bool,\n  uuid: _rax.PropTypes.number,\n  isInATabPanelDefaultView: _rax.PropTypes.bool,\n  parentDefaultView: _rax.PropTypes.Component\n};\nvar _default = DefaultView;\nexports.default = _default;","/** @jsx createElement */\n'use strict';\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _rax = require(\"rax\");\n\nvar _raxView = _interopRequireDefault(require(\"rax-view\"));\n\nvar _universalEnv = require(\"universal-env\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar threshold = 5;\n\nvar PanViewOnWeb =\n/*#__PURE__*/\nfunction (_Component) {\n  _inheritsLoose(PanViewOnWeb, _Component);\n\n  function PanViewOnWeb() {\n    var _this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n    _this.startX = undefined;\n    _this.startY = undefined;\n    _this.isStartX = false;\n    _this.isStartY = false;\n\n    _this.onTouchStart = function () {};\n\n    _this.onTouchMove = function (e) {\n      e.stopPropagation();\n      var onHorizontalPan = _this.props.onHorizontalPan;\n\n      if (_this.startX === undefined) {\n        _this.startX = e.changedTouches[0].clientX;\n      }\n\n      var deltaX = e.changedTouches[0].clientX - _this.startX;\n\n      if (Math.abs(deltaX) >= threshold) {\n        if (!_this.isStartX) {\n          e.state = 'start';\n          e.changedTouches[0].deltaX = deltaX;\n          _this.isStartX = true;\n        } else {\n          e.state = 'pan';\n          e.changedTouches[0].deltaX = deltaX;\n        }\n\n        onHorizontalPan && onHorizontalPan(e);\n      }\n    };\n\n    _this.onTouchEnd = function (e) {\n      var onHorizontalPan = _this.props.onHorizontalPan;\n      e.state = 'end';\n      e.changedTouches[0].deltaX = e.changedTouches[0].clientX - _this.startX;\n      onHorizontalPan && onHorizontalPan(e);\n\n      _this.reset();\n    };\n\n    _this.onTouchCancel = function (e) {\n      var onHorizontalPan = _this.props.onHorizontalPan;\n      e.state = 'cancel';\n      e.changedTouches[0].deltaX = e.changedTouches[0].clientX - _this.startX;\n      onHorizontalPan && onHorizontalPan(e);\n\n      _this.reset();\n    };\n\n    return _this;\n  }\n\n  var _proto = PanViewOnWeb.prototype;\n\n  _proto.reset = function reset() {\n    this.startX = undefined;\n    this.startY = undefined;\n    this.isStartX = false;\n    this.isStartY = false;\n  };\n\n  _proto.render = function render() {\n    return (0, _rax.createElement)(_raxView.default, _extends({}, this.props, {\n      onTouchStart: this.onTouchStart,\n      onTouchMove: this.onTouchMove,\n      onTouchEnd: this.onTouchEnd,\n      onTouchCancel: this.onTouchCancel\n    }));\n  };\n\n  return PanViewOnWeb;\n}(_rax.Component);\n\nvar PanViewOnWeex =\n/*#__PURE__*/\nfunction (_Component2) {\n  _inheritsLoose(PanViewOnWeex, _Component2);\n\n  function PanViewOnWeex() {\n    var _this2;\n\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n\n    _this2 = _Component2.call.apply(_Component2, [this].concat(args)) || this;\n\n    _this2.onTouchStart = function (e) {\n      _this2.startX = e.changedTouches[0].clientX;\n    };\n\n    _this2.onHorizontalPan = function (e) {\n      var onHorizontalPan = _this2.props.onHorizontalPan;\n      e.changedTouches[0].deltaX = e.changedTouches[0].clientX - _this2.startX;\n      onHorizontalPan && onHorizontalPan(e);\n    };\n\n    return _this2;\n  }\n\n  var _proto2 = PanViewOnWeex.prototype;\n\n  _proto2.render = function render() {\n    return (0, _rax.createElement)(_raxView.default, _extends({}, this.props, {\n      onTouchStart: this.onTouchStart,\n      onHorizontalPan: this.onHorizontalPan\n    }));\n  };\n\n  return PanViewOnWeex;\n}(_rax.Component);\n\nvar PanView =\n/*#__PURE__*/\nfunction (_Component3) {\n  _inheritsLoose(PanView, _Component3);\n\n  function PanView() {\n    return _Component3.apply(this, arguments) || this;\n  }\n\n  var _proto3 = PanView.prototype;\n\n  _proto3.render = function render() {\n    return _universalEnv.isWeex ? (0, _rax.createElement)(PanViewOnWeex, this.props) : (0, _rax.createElement)(PanViewOnWeb, this.props);\n  };\n\n  return PanView;\n}(_rax.Component);\n\nvar _default = PanView;\nexports.default = _default;","/** @jsx createElement */\n'use strict';\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _rax = require(\"rax\");\n\nvar _BaseView2 = _interopRequireDefault(require(\"./BaseView\"));\n\nvar _index = require(\"./index\");\n\nvar _Utils = require(\"./Utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar SliderView =\n/*#__PURE__*/\nfunction (_BaseView) {\n  _inheritsLoose(SliderView, _BaseView);\n\n  function SliderView() {\n    var _this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _BaseView.call.apply(_BaseView, [this].concat(args)) || this;\n    _this.params = {\n      params: {},\n      prevIndex: null,\n      index: _this.props.defaultFocusIndex\n    };\n    _this.curIndex = _this.props.defaultFocusIndex;\n    _this.isScrolling = false;\n    _this.itemCount = 0;\n    _this.state = {\n      index: 0\n    };\n\n    _this.onChange = function (e) {\n      var _this$props$beforeSwi = _this.props.beforeSwitch,\n          beforeSwitch = _this$props$beforeSwi === void 0 ? _Utils.noop : _this$props$beforeSwi;\n      _this.params = {\n        params: {},\n        index: e.index,\n        prevIndex: _this.prevIndex >= 0 ? _this.prevIndex : null\n      };\n      beforeSwitch(_this.params);\n      _this.curIndex = e.index;\n\n      _this.renderPanel(_this.curIndex);\n\n      _this.prevIndex = e.index;\n    };\n\n    _this.afterSwitch = function () {\n      var _this$props$afterSwit = _this.props.afterSwitch,\n          afterSwitch = _this$props$afterSwit === void 0 ? _Utils.noop : _this$props$afterSwit;\n      afterSwitch(_this.params);\n\n      _this.handleScreens();\n    };\n\n    _this.switchTo = function (index) {\n      if (_this.refs.container) {\n        _this.setState({\n          index: index\n        });\n      }\n    };\n\n    _this.onScroll = function () {\n      _this.isScrolling = true;\n\n      if (_this.timeout) {\n        clearTimeout(_this.timeout);\n      }\n\n      _this.timeout = setTimeout(function () {\n        _this.isScrolling = false;\n\n        _this.afterSwitch();\n      }, 500);\n    };\n\n    return _this;\n  }\n\n  var _proto = SliderView.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.countItems();\n    var _this$props$defaultFo = this.props.defaultFocusIndex,\n        defaultFocusIndex = _this$props$defaultFo === void 0 ? 0 : _this$props$defaultFo;\n\n    if (defaultFocusIndex !== this.state.index) {\n      this.switchTo(defaultFocusIndex);\n    } else {\n      this.onChange({\n        index: defaultFocusIndex\n      });\n    }\n\n    this.afterSwitch();\n  };\n\n  _proto.render = function render() {\n    var _this2 = this;\n\n    var isPanEnabled = this.props.isPanEnabled;\n    var curIndex = this.curIndex;\n\n    if (this.props.children && !(this.props.children instanceof Array)) {\n      this.props.children = [this.props.children];\n    }\n\n    var children = this.props.children.map(function (child, index) {\n      if (child.type === _index.TabPanel) {\n        return (0, _rax.createElement)(_index.TabPanel, _extends({\n          index: index,\n          curIndex: curIndex,\n          isAppear: index == _this2.curIndex ? true : false\n        }, child.props, {\n          ref: \"panel_\" + index\n        }));\n      } else {\n        return child;\n      }\n    });\n    return (0, _rax.createElement)(\"slider\", _extends({}, this.props, {\n      index: this.state.index,\n      scrollable: isPanEnabled,\n      autoPlay: false,\n      infinite: false,\n      showIndicators: false,\n      onScroll: this.onScroll,\n      ref: \"container\",\n      onChange: this.onChange\n    }), children);\n  };\n\n  return SliderView;\n}(_BaseView2.default);\n\nSliderView.defaultProps = {\n  isPanEnabled: true,\n  isSlideEnabled: true,\n  pageConfig: [],\n  defaultFocusIndex: 0\n};\nvar _default = SliderView;\nexports.default = _default;","/** @jsx createElement */\n'use strict';\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _rax = require(\"rax\");\n\nvar _raxView = _interopRequireDefault(require(\"rax-view\"));\n\nvar _Utils = require(\"./Utils\");\n\nvar _Detection = _interopRequireDefault(require(\"./Detection\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar TabPanelView =\n/*#__PURE__*/\nfunction (_Component) {\n  _inheritsLoose(TabPanelView, _Component);\n\n  function TabPanelView() {\n    var _this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n    _this.isPanning = false;\n\n    _this.onCellClick = function (e) {\n      var _this$props = _this.props,\n          onClick = _this$props.onClick,\n          onPress = _this$props.onPress;\n\n      if (_this.isPanning) {\n        return;\n      }\n\n      if (typeof onClick === 'function') {\n        onClick(e);\n      } else if (typeof onPress === 'function') {\n        onPress(e);\n      }\n    };\n\n    _this.onHorizontalPan = function (e) {\n      if (e.state === 'start') {\n        _this.isPanning = true;\n\n        _Utils.Event.emit('tabpanelcell:panstart', {\n          uuid: _this.context.uuid,\n          element: _assertThisInitialized(_this)\n        });\n      } else if (e.state === 'end') {\n        setTimeout(function () {\n          _this.isPanning = false;\n        }, 50);\n      }\n    };\n\n    return _this;\n  }\n\n  var _proto = TabPanelView.prototype;\n\n  _proto.render = function render() {\n    var props = _extends({}, this.props, {\n      preventMoveEvent: true,\n      onClick: this.onCellClick\n    });\n\n    if (_Detection.default.isEnableSliderAndroid && this.context.isInATabPanel) {\n      props.onHorizontalPan = this.onHorizontalPan;\n    }\n\n    return (0, _rax.createElement)(_raxView.default, props);\n  };\n\n  return TabPanelView;\n}(_rax.Component);\n\nTabPanelView.contextTypes = {\n  isInATabPanel: _rax.PropTypes.bool,\n  uuid: _rax.PropTypes.number\n};\nvar _default = TabPanelView;\nexports.default = _default;","/** @jsx createElement */\n'use strict';\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _rax = require(\"rax\");\n\nvar _Utils = require(\"./Utils\");\n\nvar _Detection = _interopRequireDefault(require(\"./Detection\"));\n\nvar _raxLink = _interopRequireDefault(require(\"rax-link\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar TabPanelLink =\n/*#__PURE__*/\nfunction (_Component) {\n  _inheritsLoose(TabPanelLink, _Component);\n\n  function TabPanelLink() {\n    var _this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n    _this.isPanning = false;\n\n    _this.onCellClick = function (e) {\n      var _this$props = _this.props,\n          onClick = _this$props.onClick,\n          onPress = _this$props.onPress;\n\n      if (_this.isPanning) {\n        return;\n      }\n\n      if (typeof onClick === 'function') {\n        onClick(e);\n      } else if (typeof onPress === 'function') {\n        onPress(e);\n      }\n    };\n\n    _this.onHorizontalPan = function (e) {\n      if (e.state === 'start') {\n        _this.isPanning = true;\n\n        _Utils.Event.emit('tabpanelcell:panstart', {\n          element: _assertThisInitialized(_this)\n        });\n      } else if (e.state === 'end') {\n        setTimeout(function () {\n          _this.isPanning = false;\n        }, 50);\n      }\n    };\n\n    return _this;\n  }\n\n  var _proto = TabPanelLink.prototype;\n\n  _proto.render = function render() {\n    var props = _extends({}, this.props, {\n      preventMoveEvent: true,\n      onClick: this.onCellClick\n    });\n\n    if (_Detection.default.isEnableSliderAndroid && this.context.isInATabPanel) {\n      props.onHorizontalPan = this.onHorizontalPan;\n    }\n\n    return (0, _rax.createElement)(_raxLink.default, props);\n  };\n\n  return TabPanelLink;\n}(_rax.Component);\n\nTabPanelLink.contextTypes = {\n  isInATabPanel: _rax.PropTypes.bool\n};\nvar _default = TabPanelLink;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _rax = require(\"rax\");\n\nvar _universalEnv = require(\"universal-env\");\n\nvar _raxText = _interopRequireDefault(require(\"rax-text\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Link =\n/*#__PURE__*/\nfunction (_Component) {\n  _inherits(Link, _Component);\n\n  function Link() {\n    _classCallCheck(this, Link);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Link).apply(this, arguments));\n  }\n\n  _createClass(Link, [{\n    key: \"getChildContext\",\n    value: function getChildContext() {\n      return {\n        isInAParentLink: true\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      // https://www.w3.org/TR/html4/struct/links.html#h-12.2.2\n      if (this.context.isInAParentLink) {\n        return console.error('Nested links are illegal');\n      }\n\n      var props = this.props;\n      var children = props.children;\n\n      var nativeProps = _objectSpread({}, props);\n\n      var style = _objectSpread({}, styles.initial, nativeProps.style);\n\n      var textStyle = {\n        color: style.color,\n        lines: style.lines,\n        fontSize: style.fontSize,\n        fontStyle: style.fontStyle,\n        fontWeight: style.fontWeight,\n        textDecoration: style.textDecoration,\n        textAlign: style.textAlign,\n        fontFamily: style.fontFamily,\n        textOverflow: style.textOverflow\n      };\n\n      if (nativeProps.onPress) {\n        nativeProps.onClick = nativeProps.onPress;\n        delete nativeProps.onPress;\n      }\n\n      var content = children;\n\n      if (typeof children === 'string' && !this.context.isInAParentText) {\n        content = (0, _rax.createElement)(_raxText.default, {\n          style: textStyle\n        }, children);\n      }\n\n      if (_universalEnv.isWeex) {\n        return (0, _rax.createElement)(\"a\", nativeProps, content);\n      } else {\n        return (0, _rax.createElement)(\"a\", _extends({}, nativeProps, {\n          style: style\n        }), content);\n      }\n    }\n  }]);\n\n  return Link;\n}(_rax.Component);\n\n_defineProperty(Link, \"contextTypes\", {\n  isInAParentLink: _rax.PropTypes.bool,\n  isInAParentText: _rax.PropTypes.bool\n});\n\n_defineProperty(Link, \"childContextTypes\", {\n  isInAParentLink: _rax.PropTypes.bool\n});\n\nvar styles = {\n  initial: {\n    textDecoration: 'none'\n  }\n};\nvar _default = Link;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","import {isWeex, isWeb} from 'universal-env';\n\nlet iphonexhelper = {\n  isIphoneXSeries: false,\n  isIphoneX: false,\n  statusBarHeight: 0,\n  navBarHeight: 0,\n  bottomBarHeight: 0\n};\nconst env = typeof WXEnvironment === 'object' ? WXEnvironment : {};\nconst weexConfig = typeof window.__weex_config__ !== undefined ? window.__weex_config__ && window.__weex_config__.weex && window.__weex_config__.weex.config : {};\n\n\nlet isIOS = env && env.platform == 'iOS';\nif (isIOS) {\n  // X || X Max || X R\n  if (env.deviceHeight == 2436 || env.deviceHeight == 2688 || env.deviceHeight == 1792 || env.deviceHeight==1624){ // eslint-disable-line\n    iphonexhelper.isIphoneXSeries = true;\n  }\n  if (iphonexhelper.isIphoneXSeries && env.deviceHeight == 2436) {\n    iphonexhelper.isIphoneX = true;\n  }\n} else if (isWeb) {\n  let isIphoneXSeries = false;\n  isIphoneXSeries = window && window.screen && window.screen.width && window.screen.height && (\n    parseInt(window.screen.width, 10) == 375 && parseInt(window.screen.height, 10) == 812 ||\n    parseInt(window.screen.width, 10) == 414 && parseInt(window.screen.height, 10) == 896\n  );\n  if (isIphoneXSeries) {\n    iphonexhelper.isIphoneXSeries = true;\n    iphonexhelper.bottomBarHeight = 68;\n  }\n  iphonexhelper.isIphoneX = isIphoneXSeries && parseInt(window.screen.width, 10) == 375 && parseInt(window.screen.height, 10) == 812;\n}\n\nif (!isWeex) {\n  iphonexhelper.navBarHeight = 0;\n  iphonexhelper.statusBarHeight = 0;\n} else {\n  if (!isIOS) {\n    // android\n    iphonexhelper.navBarHeight = 96;\n    iphonexhelper.statusBarHeight = 0;\n    if (weexConfig && weexConfig.env && weexConfig.env.statusbarHeight) {\n      iphonexhelper.statusBarHeight = weexConfig.env.statusbarHeight * 750 / env.deviceWidth || 0;\n    }\n  } else {\n    try {\n      // ios\n      iphonexhelper.navBarHeight = 44 * env.scale * 750 / env.deviceWidth;\n      iphonexhelper.statusBarHeight = 20 * env.scale * 750 / env.deviceWidth;\n      // iphoneX\n      if (iphonexhelper.isIphoneXSeries) {\n        iphonexhelper.statusBarHeight = 44 * env.scale * 750 / env.deviceWidth;\n        iphonexhelper.bottomBarHeight = 34 * env.scale * 750 / env.deviceWidth;\n      }\n    } catch (e) {\n      console.warn(e);\n    }\n  }\n}\n\nexport default iphonexhelper;\n\n","'use strict';\nimport {isWeex} from 'universal-env';\nimport assign from 'object-assign';\n\nlet Detection = {};\n\nif (isWeex) {\n  const deviceInfo = typeof WXEnvironment !== 'undefined' ? WXEnvironment : {}; // eslint-disable-line\n  Detection = assign(Detection, {\n    Android: deviceInfo.platform === 'android',\n    iOS: deviceInfo.platform === 'iOS',\n    appVersion: deviceInfo.appVersion,\n    weexVersion: deviceInfo.weexVersion,\n    osVersion: deviceInfo.osVersion\n  });\n} else {\n  const ua = window.navigator.userAgent;\n  Detection = assign(Detection, {\n    Android: /Android/ig.test(ua),\n    iOS: /iPhone|iPad|iPod/ig.test(ua),\n  });\n}\n\n\nexport default Detection;\n","'use strict';\nimport Detection from './Detection';\n\n\nconst EVENT_CELL_PAN_START = 'navigation:pan:start';\n\nconst EVENT_WILL_FOCUS = 'willFocus';\nconst EVENT_WILL_BLUR = 'willBlur';\nconst EVENT_DID_FOCUS = 'didFocus';\nconst EVENT_DID_BLUR = 'didBlur';\n\n\nconst TYPE_NAVIGATOR_TAB = 'tab';\nconst TYPE_NAVIGATOR_STACK = 'stack';\n\n\nconst HEIGHT_TAB_BAR_DEFAULT = 100;\nconst HEIGHT_STACK_HEADER_DEFAULT = Detection.iOS ? 88 : 100;\n\nconst ROUTE_STORE = 'ROUTE_STORE';\nconst ROUTE_TREE = 'ROUTE_TREE';\nconst PATH_NAME = 'PATH_NAME';\nconst ROUTE_NAME = 'ROUTE_NAME';\n\n\nconst QUERY_STRING = 'queryString';\nconst HASH_TOKEN_KEY = '_hash_token_';\n\nexport {\n  EVENT_CELL_PAN_START,\n  TYPE_NAVIGATOR_TAB,\n  TYPE_NAVIGATOR_STACK,\n  HEIGHT_TAB_BAR_DEFAULT,\n  HEIGHT_STACK_HEADER_DEFAULT,\n  EVENT_WILL_FOCUS,\n  EVENT_WILL_BLUR,\n  EVENT_DID_FOCUS,\n  EVENT_DID_BLUR,\n  ROUTE_STORE,\n  ROUTE_TREE,\n  PATH_NAME,\n  ROUTE_NAME,\n  QUERY_STRING,\n  HASH_TOKEN_KEY\n};\n","'use strict';\nimport pathToRegexp from 'path-to-regexp';\nimport Url from './third-party/url-util';\nimport _ from 'simple-lodash';\nimport {isWeex} from 'universal-env';\nimport assign from 'object-assign';\nimport transition from 'universal-transition';\nimport animation from 'universal-animation';\nimport {findDOMNode} from 'rax';\nimport iphonexHelper from './IPhoneXHelper';\nimport QueryString from './third-party/query-string';\nimport {QUERY_STRING} from './Constant';\nimport bindingx from 'weex-bindingx';\n\nconst statusBarHeight = iphonexHelper.statusBarHeight;\nconst bottomBarHeight = iphonexHelper.bottomBarHeight;\n\n\nconst DEFAULT_DURATION = 350;\nconst DEFAULT_EASING = 'ease-out';\n\nlet isSupportNewBinding = bindingx.isSupportNewBinding;\n\n\nlet __i = 1;\n\n\nfunction uuid() {\n  let id = __i++;\n  return id;\n}\n\n\nfunction urlFormat(url, param = {}) {\n  try {\n    if (param === undefined || param === null || Object.keys(param).length === 0 || !url) {\n      return url;\n    }\n    let query = '';\n    if (param[QUERY_STRING] && Object.keys(param[QUERY_STRING]).length > 0) {\n      query = '?' + QueryString.stringify(param[QUERY_STRING]);\n    }\n    return pathToRegexp.compile(url)(param) + query;\n  } catch (err) {\n    console.warn('urlFormat error', err);\n  }\n};\n\n\nfunction urlMatch(url, options) {\n  let keys = [];\n  let reg = pathToRegexp(url, keys, options);\n  return {reg, keys};\n}\n\nfunction matchRouteByName(routerConfig, name) {\n  let route;\n  if (name) {\n    route = routerConfig[name];\n    if (route) {\n      route.name = name;\n    }\n  }\n  return route;\n}\n\n/**\n * matchRestfulPath\n * @param restfulPath\n * @param realPath\n * @returns {*}\n * @example matchRestfulPath('/demo/:id','/demo/123?a=1&b=2')\n */\nfunction matchRestfulPath(restfulPath, realPath) {\n  if (!restfulPath || !realPath) return;\n  let {keys, reg} = urlMatch(Url.parse(restfulPath).pathname);\n  let {pathname, query} = Url.parse(realPath, true);\n  let params = null;\n  if (restfulPath && reg.test(pathname)) {\n    params = {};\n    let execResult = reg.exec(pathname);\n    if (execResult) {\n      execResult.slice(1).map((v, i) => {\n        if (keys[i] && keys[i].name) {\n          params[keys[i].name] = v;\n        }\n      });\n    }\n    params[QUERY_STRING] = query;\n  }\n  return params;\n}\n\n\nfunction matchRouteByPath(routerConfig, path) {\n  let params = null;\n  let route = null;\n  let name = null;\n  _.map(routerConfig, (config, routeName) => {\n    let res = matchRestfulPath(config.path, path);\n\n    if (res) {\n      params = res;\n      route = config;\n      route.name = routeName;\n      if (route && route.path) {\n        route.pathname = urlFormat(config.path, params);\n      }\n      name = routeName;\n    }\n  });\n\n  if (!name) return;\n\n  return {params, route, name, pathname: route && route.pathname, path: route && route.path};\n}\n\n\nfunction noop() {\n}\n\n// forbid swipe back on IOS\nfunction forbidSwipeBack(isForbid) {\n  if (isWeex) {\n    let swipeBack = {};\n    try {\n      swipeBack = require('@weex-module/swipeBack');\n    } catch (e) {\n      console.warn('require weex module SwipeBack error');\n    }\n    swipeBack.forbidSwipeBack && swipeBack.forbidSwipeBack(isForbid);\n  }\n}\n\nlet Detection = {};\n\nif (isWeex) {\n  const deviceInfo = typeof WXEnvironment !== 'undefined' ? WXEnvironment : {}; // eslint-disable-line\n  Detection = assign(Detection, {\n    Android: deviceInfo.platform === 'android',\n    iOS: deviceInfo.platform === 'iOS',\n  });\n} else {\n  const ua = window.navigator.userAgent;\n  Detection = assign(Detection, {\n    Android: /Android/ig.test(ua),\n    iOS: /iPhone|iPad|iPod/ig.test(ua)\n  });\n}\n\n\nfunction resolveFn(fnOrObj = {}, args = {}) {\n  let result = fnOrObj;\n  if (isFunction(fnOrObj)) {\n    result = fnOrObj(args);\n  }\n  return result || {};\n}\n\nfunction isFunction(fn) {\n  return typeof fn === 'function';\n}\n\nfunction animate(ref, property, options = {}, callback = noop) {\n  try {\n    if (ref) {\n      let el = findDOMNode(ref);\n      if (!el) return;\n      let {timingFunction = DEFAULT_EASING, duration = DEFAULT_DURATION} = options;\n      if (el) {\n        transition(el, property, {\n          timingFunction,\n          duration\n        }, callback);\n      }\n    }\n  } catch (err) {\n  }\n}\n\nfunction multipleAnimate(options = {}, callback) {\n  options.props = _.map(options.props, (o) => {\n    o.element = findDOMNode(o.element);\n    return o;\n  });\n  return animation(options, callback);\n}\n\n\nfunction getLast(array) {\n  if (array && array.length > 0) {\n    return array[array.length - 1];\n  }\n  return;\n}\n\nfunction isNavigator(component) {\n  return component && component.navigatorType && component.routerConfig;\n}\n\nfunction pick(obj = {}, keys = []) {\n  if (!obj) return;\n  if (typeof keys == 'string') {\n    keys = [keys];\n  }\n  let result = {};\n  keys.forEach((key) => {\n    if (undefined !== obj[key]) {\n      result[key] = obj[key];\n    }\n  });\n  return result;\n}\n\n// TODO  storage = __weex_require__('@weex-module/storage');\nfunction setItem(key, state) {\n  if (isWeex) {\n\n  } else {\n    if (window.sessionStorage) {\n      window.sessionStorage.setItem(key, JSON.stringify(state));\n    }\n  }\n}\n\n\nfunction getItem(key) {\n  if (isWeex) {\n\n  } else {\n    if (window.sessionStorage) {\n      let val = window.sessionStorage.getItem(key);\n      return JSON.parse(val);\n    }\n  }\n}\n\nfunction isEventEqual(evt1, evt2) {\n  return evt1.eventName == evt2.eventName\n    && evt1.routeName == evt2.routeName;\n}\n\n\nfunction filterStyle(style = {}) {\n  if (!style) return {};\n  const blackList = ['left', 'top', 'right', 'bottom', 'margin', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom', 'padding', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom'];\n  let result = {};\n  Object.keys(style).forEach((name) => {\n    if (blackList.indexOf(name) === -1) {\n      result[name] = style[name];\n    }\n  });\n  return result;\n}\n\n\nfunction getEl(el) {\n  return isWeex ? findDOMNode(el).ref : findDOMNode(el);\n}\n\n\nlet Event = {\n  on: (eventName, handler) => {\n    window.addEventListener(eventName, handler);\n  },\n  emit: (eventName, data) => {\n    var event = new window.Event(eventName);\n    if (data) {\n      Object.keys(data).forEach((k) => {\n        event[k] = data[k];\n      });\n    }\n    window.dispatchEvent(event);\n  }\n};\n\nexport {\n  isEventEqual,\n  urlFormat,\n  matchRestfulPath,\n  matchRouteByName,\n  matchRouteByPath,\n  uuid,\n  noop,\n  forbidSwipeBack,\n  Detection,\n  resolveFn,\n  animate,\n  multipleAnimate,\n  getLast,\n  isNavigator,\n  pick,\n  statusBarHeight,\n  bottomBarHeight,\n  isSupportNewBinding,\n  setItem,\n  getItem,\n  filterStyle,\n  isFunction,\n  Event,\n  getEl,\n  urlMatch\n};\n","'use strict';\n\nconst BACK = 'Navigation/BACK';\nconst INIT = 'Navigation/INIT';\nconst NAVIGATE = 'Navigation/NAVIGATE';\nconst RESET = 'Navigation/RESET';\nconst SET_PARAMS = 'Navigation/SET_PARAMS';\nconst URI = 'Navigation/URI';\n\nconst createAction = (type, fn) => {\n  fn.toString = () => type;\n  return fn;\n};\n\nconst back = createAction(\n  BACK,\n  payload => {\n    let action = {\n      type: BACK,\n      routeName: payload.routeName,\n      key: payload.key,\n    };\n    if (payload.params) {\n      action.params = payload.params;\n    }\n    if (payload.action) {\n      action.action = payload.action;\n    }\n    return action;\n  }\n);\n\nconst init = createAction(\n  INIT,\n  payload => {\n    const action = {\n      type: INIT,\n    };\n    if (payload.params) {\n      action.params = payload.params;\n    }\n    return action;\n  }\n);\n\nconst navigate = createAction(\n  NAVIGATE,\n  payload => {\n    let action = {\n      type: NAVIGATE,\n      routeName: payload.routeName\n    };\n    if (payload.params) {\n      action.params = payload.params;\n    }\n    if (payload.action) {\n      action.action = payload.action;\n    }\n    return action;\n  }\n);\nconst reset = createAction(\n  RESET,\n  payload => ({\n    type: RESET,\n    index: payload.index,\n    key: payload.key,\n    actions: payload.actions,\n  })\n)\n;\nconst setParams = createAction(\n  SET_PARAMS,\n  payload => ({\n    type: SET_PARAMS,\n    key: payload.key,\n    params: payload.params,\n  })\n);\nconst uri = createAction(\n  URI,\n  payload => ({\n    type: URI,\n    uri: payload.uri,\n  })\n);\n\n\nexport default {\n  // Action constants\n  BACK,\n  INIT,\n  NAVIGATE,\n  RESET,\n  SET_PARAMS,\n  URI,\n\n  // Action creators\n  back,\n  init,\n  navigate,\n  reset,\n  setParams,\n  uri\n};","'use strict';\n\nimport _ from 'simple-lodash';\nimport NavigationActions from './NavigationActions';\nimport {\n  matchRestfulPath,\n  urlFormat,\n  getLast,\n  urlMatch\n} from './Util';\nimport md5 from 'md5';\nimport {QUERY_STRING, HASH_TOKEN_KEY} from './Constant';\n\nlet globalRouter = null;\n\n\n/**\n * transform\n * @param routerConfig\n * @returns {Array}\n * @example\n *\n * {\n     type:'stack',\n     routes:[{\n        type:'tab',\n        routes:[\n           {  name:'cate' },\n           {  name:'cate2' },\n       ]\n     },{\n       name:'profile'\n     }]\n }\n */\nfunction createRouterConfig(routerConfig = {}, navigation, level, parentRoute) {\n  let routes = [];\n  _.map(routerConfig, (config, name) => {\n    let {screen, path, getScreen} = config;\n    let route = {\n      name,\n      screen,\n      getScreen,\n      level,\n      navigation\n    };\n\n    if (screen && screen.routerConfig && screen.navigatorType) {\n      route.type = screen.navigatorType;\n      route.navigation = navigation;\n      route.initialRouteName = route.navigation.config.initialRouteName;\n      route.initialRouteParams = route.navigation.config.initialRouteParams;\n      route.initialRoutePath = route.navigation.config.initialRoutePath;\n      route.routes = createRouterConfig(screen.routerConfig, screen.navigation, level + 1, route);\n      route.params = route.initialRouteParams;\n    }\n\n    if (path) {\n      route.path = path;\n    }\n    if (parentRoute) {\n      route.parentRoute = parentRoute;\n    }\n    route.navigation.level = level;\n    routes.push(route);\n  });\n  return routes;\n}\n\n\nfunction queryRoute(routeObj, query = {}) {\n  let {name, path} = query;\n\n  if (routeObj && routeObj.routes) {\n    for (let i = 0; i < routeObj.routes.length; i++) {\n      let route = routeObj.routes[i];\n      if (name && route.name === name) {\n        return {\n          ...route,\n          params: query.params,\n          type: routeObj.type\n        };\n      } else if (path) {\n        let params = matchRestfulPath(route.path, path);\n        if (params) {\n          return {\n            ...route,\n            params,\n            type: routeObj.type\n          };\n        }\n      }\n    }\n  }\n}\n\n\nfunction queryRoutes(routeObj, query) {\n  let routes = fillRoutesWithInitialRoute(_queryRoutes(routeObj, query));\n\n  let params = {};\n\n  routes.forEach((route) => {\n    route.params = route.params || {};\n    params = {...params, ...route.params};\n  });\n\n  routes.forEach((route) => {\n    if (route.path) {\n      let {keys} = urlMatch(route.path);\n      if (keys && keys.length > 0) {\n        keys.forEach(key => {\n          if (undefined === route.params[key.name] && params[key.name] !== undefined) {\n            route.params[key.name] = params[key.name];\n          }\n        });\n      }\n    }\n  });\n\n  return routes;\n}\n\nfunction _queryRoutes(routeObj, query = {}) {\n  let results = [];\n  if (routeObj && routeObj.routes) {\n    for (let i = 0; i < routeObj.routes.length; i++) {\n      let route = routeObj.routes[i];\n      // has sub-routes\n      if (route && route.routes) {\n        let res = _queryRoutes(route, query);\n        if (res && res.length) {\n          if (res[0].parentRoute) {\n            results.push(res[0].parentRoute);\n            results = results.concat(res);\n          }\n        } else {\n          let route = queryRoute(routeObj, query);\n          if (route && route.name) {\n            results.push({\n              ...route,\n              type: routeObj.type,\n              params: route.params\n            });\n          }\n        }\n      } else {\n        let route = queryRoute(routeObj, query);\n        if (route && route.name) {\n          return [{\n            ...route,\n            type: routeObj.type,\n            params: route.params || query.params\n          }];\n        }\n      }\n    }\n  }\n  return results;\n}\n\nfunction getInitialRoute(routes) {\n  return _.find(routes, (r) => {\n    return r.name == routes[0].navigation.config.initialRouteName;\n  }) || routes[0];\n}\n\nfunction fillRoutesWithInitialRoute(routes) {\n  if (!routes) return routes;\n  let childRoute = getLast(routes);\n  if (!childRoute) return routes;\n  if (childRoute && childRoute.routes && childRoute.routes[0]) {\n    let route = getInitialRoute(childRoute.routes);\n    routes.push(route);\n    return fillRoutesWithInitialRoute(routes);\n  }\n  return routes;\n}\n\nclass Router {\n  routes = {};\n  // global history\n  history = null;\n\n  constructor(config = {}) {\n  }\n\n  _onHistoryChange = (location, action, direction) => {\n    // console.warn('_onHistoryChange:', location, action, direction);\n    if (action === 'POP' && direction) {\n      let routes = queryRoutes(this.routes, {path: location.pathname + location.search});\n      let navigationActions = this.createNavigationActions({\n        type: direction === 'FORWARD' ? 'PUSH' : 'POP',\n\n      }, routes);\n      this.dispatch(navigationActions, {direction, ignoreHistory: true});\n    }\n  }\n\n  addNavigation(options) {\n    let {routerConfig, navigatorType, navigation, initialRouteName, initialRouteParams, initialRoutePath, history} = options;\n    if (!this.history) {\n      this.history = history;\n      this.history.listen(this._onHistoryChange);\n    }\n    this.routes = {\n      initialRouteName,\n      initialRouteParams,\n      initialRoutePath,\n      type: navigatorType,\n      navigation,\n      routes: createRouterConfig(routerConfig, navigation, 0)\n    };\n  }\n\n  createNavigationAction(options = {}) {\n    let {name, params, type, action} = options;\n\n    let fn;\n\n    switch (type) {\n      case 'PUSH':\n        fn = NavigationActions.navigate;\n        break;\n      case 'POP':\n        fn = NavigationActions.back;\n        break;\n    }\n\n    return fn({\n      routeName: name,\n      params,\n      ...action ? {action} : {}\n    });\n  }\n\n  createNavigationActions(options = {}, routes) {\n    if (!routes || !routes[0]) return;\n    let parentAction;\n    let childAction;\n\n    if (routes.length === 1) {\n      parentAction = this.createNavigationAction({\n        ...options,\n        name: routes[0].name,\n        params: routes[0].params || options.params || {}\n      });\n    }\n\n\n    for (let i = routes.length - 1; i >= 0; i--) {\n      let route = routes[i];\n      let parentRoute = routes[i - 1];\n      if (route && parentRoute) {\n        if (!childAction) {\n          childAction = this.createNavigationAction({\n            ...options,\n            name: route.name,\n            // params should be inherited from parent\n            params: {...parentRoute.params, ...parentRoute.navigation.state.params}\n          });\n        }\n        parentAction = this.createNavigationAction({\n          ...options,\n          name: parentRoute.name,\n          params: {...parentRoute.params, ...parentRoute.navigation.state.params}\n        });\n        parentAction.action = childAction;\n        childAction = parentAction;\n      }\n    }\n\n    return parentAction;\n  }\n\n\n  replace = (name, params) => {\n    let routes = queryRoutes(this.routes, {name, params});\n\n\n    let navigationActions = this.createNavigationActions({\n      name,\n      params,\n      type: 'PUSH'\n    }, routes);\n\n    this.dispatch(navigationActions, {\n      replace: true\n    });\n  }\n\n\n  navigate = (name, params) => {\n    let routes = queryRoutes(this.routes, {name, params});\n\n    let navigationActions = this.createNavigationActions({\n      name,\n      params,\n      type: 'PUSH'\n    }, routes);\n\n    this.dispatch(navigationActions);\n  }\n\n  dispatch(actions, options = {}) {\n    if (!actions) return;\n    let navigateAction;\n    let history = this.history;\n    let location = history.location;\n\n    switch (actions.type) {\n      case NavigationActions.NAVIGATE:\n        navigateAction = 'PUSH';\n        break;\n      case NavigationActions.BACK:\n        navigateAction = 'POP';\n        break;\n    }\n\n    if (actions && actions.type && actions.routeName) {\n      if (navigateAction === 'PUSH') {\n        actions.params = actions.params || {};\n\n        if (!actions.params[QUERY_STRING]) {\n          actions.params[QUERY_STRING] = {};\n        }\n\n        // TODO only add hash token for HashHistory\n        // if(history.options.mode === 'hash'){\n        actions.params[QUERY_STRING][HASH_TOKEN_KEY] = actions.params[QUERY_STRING][HASH_TOKEN_KEY] || md5(Date.now());\n        // }\n      }\n\n      let route = queryRoute(options && options.subRoute || this.routes, {\n        name: actions.routeName,\n        params: actions.params\n      });\n      if (route && route.navigation) {\n        let fullPath = urlFormat(route.path, actions.params);\n\n        route.navigation.updateScreen({\n          name: actions.routeName,\n          params: actions.params,\n          action: navigateAction,\n          type: 'update',\n          fullPath,\n          options\n        });\n\n        if (route.routes) {\n          let navAction = actions.action || this.createNavigationAction({\n            type: navigateAction,\n            name: route.initialRouteName,\n            params: route.initialRouteParams,\n          });\n\n          this.dispatch(navAction, {\n            ...options,\n            subRoute: route\n          });\n        } else {\n          //  history push\n          if (route && route.path && navigateAction === 'PUSH' && options && !options.ignoreHistory) {\n            let pathname = urlFormat(route.path, route.params);\n            if (location.pathname + location.search !== pathname) {\n              if (options.replace) {\n                history.replace(pathname, {\n                  params: route.params,\n                  name: route.name,\n                  path: route.path\n                });\n              } else {\n                history.push(pathname, {\n                  params: route.params,\n                  name: route.name,\n                  path: route.path\n                });\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n\n  navigateByPath(path) {\n    let routes = queryRoutes(this.routes, {path});\n    if (routes && routes[0]) {\n      let navigationActions = this.createNavigationActions({\n        name: routes[0].name,\n        params: routes[0].params,\n        type: 'PUSH'\n      }, routes);\n      this.dispatch(navigationActions);\n    } else {\n      console.error('can\\'t find route by path:', path);\n    }\n  }\n\n  goBack() {\n    this.history.goBack();\n  }\n\n  go(options) {\n    this.history.go(options);\n  }\n}\n\n\nfunction createRouter(config) {\n  if (!globalRouter) {\n    globalRouter = new Router(config);\n  }\n  globalRouter.addNavigation(config);\n  return globalRouter;\n}\n\nexport {\n  createRouter,\n  queryRoutes\n};\n","'use strict';\n\nimport {createElement, Component} from 'rax';\nimport assign from 'object-assign';\n\nimport {resolveFn} from './Util';\n\nclass BaseViewContainer extends Component {\n  getChildContext() {\n    return {\n      parentNavigation: this.props.navigation\n    };\n  }\n\n  _resolvedViews = {};\n\n  resolveNavigationOptions = (view) => {\n    let navigationOptions = {};\n    if (view && view.screen && view.screen.guid) {\n      navigationOptions = this._resolvedViews[view.screen.guid] || assign(resolveFn(\n        this.props.navigationOptions, view), resolveFn(view.screen.navigationOptions, view));\n      this._resolvedViews[view.screen.guid] = navigationOptions;\n    }\n    return navigationOptions;\n  }\n}\n\nexport default BaseViewContainer;\n","'use strict';\nimport {createElement, PureComponent} from 'rax';\nimport View from 'rax-view';\nimport {statusBarHeight} from '../Util';\nimport {HEIGHT_STACK_HEADER_DEFAULT} from '../Constant';\n\nclass HeaderRight extends PureComponent {\n  static defaultProps = {\n    headerRight: null\n  };\n\n  render() {\n    let {headerRight, style = {}, headerMode, headerStyle} = this.props;\n\n    return (\n      <View ref=\"headerRight\"\n        style={[styles.headerRightWrap, {opacity: undefined === style.opacity ? 1 : style.opacity}, {top: headerMode === 'float' ? headerStyle.top || statusBarHeight : 0}, {height: (headerStyle.height || HEIGHT_STACK_HEADER_DEFAULT) - 2}]}>\n        {headerRight}\n      </View>);\n  }\n}\n\nconst styles = {\n  headerRightWrap: {\n    position: 'absolute',\n    justifyContent: 'center',\n    width: 150,\n    right: 0\n  }\n};\n\n\nexport default HeaderRight;","'use strict';\nimport {createElement, PureComponent} from 'rax';\nimport Button from 'rax-button';\nimport Text from 'rax-text';\n\nclass HeaderBackTitle extends PureComponent {\n  static defaultProps = {\n    headerBackTitle: 'Back',\n    showHeaderBackTitle: true\n  };\n\n  handleGoBack = () => {\n    let {navigation} = this.props;\n    navigation && navigation.goBack();\n  }\n\n  render() {\n    let {headerBackTitle, headerTintColor, headerBackTitleStyle, showHeaderBackTitle} = this.props;\n\n    if (!showHeaderBackTitle) return null;\n\n    if (typeof headerBackTitle !== 'string') {\n      headerBackTitle = 'Back';\n    }\n    return (<Button style={styles.goBack}\n      onPress={this.handleGoBack}>\n      <Text style={[styles.headerBackTitle, {color: headerTintColor}, headerBackTitleStyle]}>{headerBackTitle}</Text>\n    </Button>);\n  }\n}\n\nconst styles = {\n  goBack: {\n    position: 'absolute',\n    left: 0,\n    top: 0,\n    width: 150,\n    bottom: 0,\n    overflow: 'hidden',\n    opacity: 1,\n    justifyContent: 'center'\n  },\n  headerBackTitle: {\n    textAlign: 'center',\n    fontSize: 32\n  }\n};\n\n\nexport default HeaderBackTitle;","'use strict';\nimport {createElement, PureComponent} from 'rax';\nimport View from 'rax-view';\nimport HeaderBackTitle from './HeaderBackTitle';\nimport {statusBarHeight} from '../Util';\nimport {HEIGHT_STACK_HEADER_DEFAULT} from '../Constant';\n\nclass HeaderLeft extends PureComponent {\n  static defaultProps = {\n    headerLeft: null\n  };\n\n  render() {\n    let {headerLeft, style = {}, headerStyle = {}, headerMode = 'screen'} = this.props;\n    return (<View\n      style={[styles.headerLeftWrap, {top: headerMode === 'float' ? headerStyle.top || statusBarHeight : 0}, {height: (headerStyle.height || HEIGHT_STACK_HEADER_DEFAULT) - 2}, {opacity: undefined === style.opacity ? 1 : style.opacity}]}>\n      {headerLeft && headerLeft.props ?\n        <headerLeft.type {...headerLeft.props} style={headerLeft.props.style} /> :\n        <HeaderBackTitle {...this.props} />}\n    </View>);\n  }\n}\n\nconst styles = {\n  headerLeftWrap: {\n    position: 'absolute',\n    justifyContent: 'center',\n    width: 150\n  }\n};\n\nexport default HeaderLeft;\n","'use strict';\n\nimport {createElement, PureComponent} from 'rax';\nimport View from 'rax-view';\nimport Text from 'rax-text';\nimport HeaderRight from './HeaderRight';\nimport HeaderLeft from './HeaderLeft';\nimport {statusBarHeight} from '../Util';\nimport {HEIGHT_STACK_HEADER_DEFAULT} from '../Constant';\n\n\nfunction computeHeight(props) {\n  let {headerStyle = {}, header} = props;\n  let headerHeight = HEIGHT_STACK_HEADER_DEFAULT;\n  let statusbarHeight = statusBarHeight;\n  if (header === null) {\n    headerHeight = 0;\n  } else if (header === undefined) {\n    headerHeight = headerStyle.height >= 0 ? headerStyle.height : HEIGHT_STACK_HEADER_DEFAULT;\n  } else if (header !== undefined && header.props && header.props.style) {\n    headerHeight = header.props.style.height >= 0 ? header.props.style.height : HEIGHT_STACK_HEADER_DEFAULT;\n    statusbarHeight = 0;\n  }\n  return {headerHeight, statusbarHeight};\n}\n\nclass StackHeader extends PureComponent {\n  static defaultProps = {\n    title: '',\n    index: 0,\n    headerTitle: null,\n    params: {},\n    headerBackTitle: 'Back',\n    headerLeft: null,\n    headerRight: null,\n    header: undefined,\n    // Style object for the header\n    headerStyle: {},\n    // Style object for the title component\n    headerTitleStyle: {},\n    // Style object for the back title\n    headerBackTitleStyle: {\n      color: 'rgb(12, 66, 253)'\n    },\n    // Tint color for the header\n    headerTintColor: '#333',\n    // float | screen | none\n    headerMode: 'screen'\n  }\n\n\n  resolveTitle() {\n    let {title, params, headerTintColor, headerTitleStyle} = this.props;\n\n    if (typeof title === 'function') {\n      title = title({params});\n    }\n\n    if (typeof title === 'string') {\n      title = <Text style={[styles.navTitle, {color: headerTintColor}, headerTitleStyle]}>{title}</Text>;\n    }\n\n    return <View style={styles.title}>{title}</View>;\n  }\n\n  // shouldComponentUpdate() {\n  //   return false;\n  // }\n\n  render() {\n    let {headerStyle = {}, headerMode, header, headerTransparent} = this.props;\n    if (header === null) return <View />;\n    if (header !== undefined) return header;\n    let {headerHeight, statusbarHeight} = computeHeight(this.props);\n    return (\n      <View\n        style={[styles.nav, headerStyle, {height: headerHeight + statusbarHeight}, headerTransparent ? styles.navTransparent : {}]}>\n        <View style={[{\n          marginTop: statusbarHeight,\n          width: 750\n        }, {height: headerHeight}]}>\n          {headerMode !== 'float' ? <HeaderLeft {...this.props} /> : null}\n          {this.resolveTitle()}\n          {headerMode !== 'float' ? <HeaderRight {...this.props} /> : null}\n        </View>\n      </View>);\n  }\n}\n\n\nconst styles = {\n  nav: {\n    height: HEIGHT_STACK_HEADER_DEFAULT + statusBarHeight,\n    width: 750,\n    position: 'absolute',\n    top: 0,\n    backgroundColor: '#fefefe',\n    borderBottomWidth: 1,\n    borderColor: '#ccc',\n    transform: 'translateX(0rem)'\n  },\n  navTransparent: {\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: 'rgba(0,0,0,0)'\n  },\n  navTitle: {\n    textAlign: 'center',\n    width: 450,\n    fontSize: 32\n  },\n  title: {\n    position: 'absolute',\n    width: 450,\n    overflow: 'hidden',\n    top: 0,\n    bottom: 0,\n    left: 150,\n    fontWeight: 'bolder',\n    justifyContent: 'center'\n  },\n  headerRight: {\n    position: 'absolute',\n    top: 0,\n    width: 150,\n    bottom: 0,\n    right: 0\n  }\n};\n\nexport default StackHeader;\n\nexport {computeHeight};\n","'use strict';\nimport {createElement, PureComponent, findDOMNode} from 'rax';\nimport View from 'rax-view';\nimport StackHeader from './views/StackHeader';\nimport HeaderLeft from './views/HeaderLeft';\nimport HeaderRight from './views/HeaderRight';\nimport {animate, statusBarHeight} from './Util';\nimport {HEIGHT_STACK_HEADER_DEFAULT} from './Constant';\n\nconst FULL_WIDTH = 750;\nclass StackHeaderContainer extends PureComponent {\n  static defaultProps = {\n    navigationOptionsArray: [],\n    headerMode: 'screen',\n    isSingle: false,\n    views: [],\n    type: 'push'\n  }\n\n\n  getBindingProps = () => {\n    let {headerMode = 'screen'} = this.props;\n\n    let bindingProps = [];\n\n    switch (headerMode) {\n      case 'float':\n        bindingProps = [{\n          element: this.refs.current,\n          property: 'transform.translateX',\n          expression: {\n            origin: 'max(0,x/2)'\n          }\n        }, {\n          element: this.refs.current,\n          property: 'opacity',\n          expression: {\n            origin: `max(0,1-x/${FULL_WIDTH})`\n          }\n        }, {\n          element: this.refs.prev,\n          property: 'transform.translateX',\n          expression: {\n            origin: `x/2-${FULL_WIDTH / 2}`\n          }\n        }, {\n          element: this.refs.prev,\n          property: 'opacity',\n          expression: {\n            origin: `x/${FULL_WIDTH}`\n          }\n        }];\n\n        if (this.refs.currentBackTitle) {\n          bindingProps.push({\n            element: this.refs.currentBackTitle,\n            property: 'opacity',\n            expression: {\n              origin: `max(0,1-x/${FULL_WIDTH}*3)`\n            }\n          });\n        }\n\n        if (this.refs.prevBackTitle) {\n          bindingProps.push({\n            element: this.refs.prevBackTitle,\n            property: 'opacity',\n            expression: {\n              origin: `x/${FULL_WIDTH}`\n            }\n          });\n        }\n\n        if (this.refs.currentRight) {\n          bindingProps.push({\n            element: this.refs.currentRight,\n            property: 'opacity',\n            expression: {\n              origin: `max(0,1-x/${FULL_WIDTH})`\n            }\n          });\n        }\n\n        if (this.refs.prevRight) {\n          bindingProps.push({\n            element: this.refs.prevRight,\n            property: 'opacity',\n            expression: {\n              origin: `x/${FULL_WIDTH}`\n            }\n          });\n        }\n\n        break;\n      case 'screen':\n        // bindingProps = [{\n        //   element: this.refs.current,\n        //   property: 'transform.translateX',\n        //   expression: {\n        //     origin: 'max(0,x)'\n        //   }\n        // }, {\n        //   element: this.refs.prev,\n        //   property: 'transform.translateX',\n        //   expression: {\n        //     origin: `x*${PREV_VIEW_RATIO}-${PREV_VIEW_RATIO * FULL_WIDTH}`\n        //   }\n        // }];\n        break;\n      case 'none':\n        break;\n    }\n    return bindingProps;\n  }\n\n  slideIn = (options) => {\n    let {headerMode = 'screen'} = this.props;\n    let {timingFunction, duration} = options;\n    let animationConfig = {\n      timingFunction,\n      duration\n    };\n\n\n    switch (headerMode) {\n      case 'float':\n\n        animate(this.refs.prev, {transform: `translate(-${FULL_WIDTH / 2}rem,0)`, opacity: 0}, animationConfig);\n\n        animate(this.refs.current, {transform: 'translate(0,0)', opacity: 1}, animationConfig);\n\n        animate(this.refs.prevBackTitle, {opacity: 0}, animationConfig);\n\n        animate(this.refs.currentBackTitle, {opacity: 1}, animationConfig);\n\n        animate(this.refs.prevRight, {opacity: 0}, animationConfig);\n\n        animate(this.refs.currentRight, {opacity: 1}, animationConfig);\n\n        break;\n      case 'screen':\n\n        // animate(this.refs.prev, {transform: `translate(-${PREV_VIEW_RATIO * FULL_WIDTH}rem,0)`}, animationConfig);\n\n        // animate(this.refs.current, {transform: 'translate(0,0)'}, animationConfig);\n\n        break;\n      case 'none':\n        break;\n    }\n  }\n\n  slideOut = (options) => {\n    let {headerMode = 'screen'} = this.props;\n    let {timingFunction, duration} = options;\n    let animationConfig = {\n      timingFunction,\n      duration\n    };\n    switch (headerMode) {\n      case 'float':\n\n        animate(this.refs.prev, {transform: 'translate(0,0)', opacity: 1}, animationConfig);\n\n        animate(this.refs.current, {transform: `translate(${FULL_WIDTH / 2}rem,0)`, opacity: 0}, animationConfig);\n\n        animate(this.refs.prevBackTitle, {opacity: 1}, animationConfig);\n\n        animate(this.refs.currentBackTitle, {opacity: 0}, animationConfig);\n\n        animate(this.refs.prevRight, {opacity: 1}, animationConfig);\n\n        animate(this.refs.currentRight, {opacity: 0}, animationConfig);\n\n        break;\n      case 'screen':\n\n        // animate(this.refs.prev, {transform: 'translate(0,0)'}, animationConfig);\n        //\n        // animate(this.refs.current, {transform: `translate(${FULL_WIDTH}rem,0)`}, animationConfig);\n\n        break;\n      case 'none':\n        break;\n    }\n  }\n\n  render() {\n    let {navigationOptionsArray = [], isSingle = false, views = [], headerMode, type} = this.props;\n    if (headerMode === 'none') return null;\n    let firstNavigationOptions = navigationOptionsArray[0] || {};\n    let {headerStyle = {}} = firstNavigationOptions;\n    let l = views.length;\n    return (\n      <View style={[styles.container, {height: (headerStyle.height || HEIGHT_STACK_HEADER_DEFAULT) + statusBarHeight}]}>\n        {views.map((view, i) => {\n          let isCurrent = i === l - 1;\n          let isPrev = i === l - 2;\n          let prevView = views[i - 1];\n          let navigationOptions = navigationOptionsArray[i];\n          let viewStyle = {};\n          if (isSingle) {\n            viewStyle = {};\n          } else {\n            if (type === 'push') {\n              viewStyle = isCurrent ? styles.current : {};\n            } else if (type === 'pop') {\n              viewStyle = isCurrent ? {} : styles.prev;\n            }\n          }\n\n          return (<StackHeader\n            key={`stack_header_${i}`}\n            index={i}\n            ref={isCurrent ? 'current' : isPrev ? 'prev' : null}\n            title={view.routeName}\n            headerBackTitle={prevView && prevView.routeName}\n            {...navigationOptions}\n            headerMode={headerMode}\n            params={view.params}\n            style={viewStyle}\n            navigation={view.navigation} />);\n        })}\n        {headerMode === 'float' ? views.map((view, i) => {\n          let isCurrent = i === l - 1;\n          let isPrev = i === l - 2;\n          let prevView = views[i - 1];\n          let navigationOptions = navigationOptionsArray[i];\n          let {header, headerStyle = {}} = navigationOptions;\n          let opacity = 1;\n          if (isSingle) {\n            opacity = 1;\n          } else {\n            if (type === 'push') {\n              opacity = isCurrent ? 0 : 1;\n            } else if (type === 'pop') {\n              opacity = isCurrent ? 1 : 0;\n            }\n          }\n          if (header !== undefined) {\n            return header;\n          }\n\n          return i >= l - 2 ? [<HeaderLeft\n            key={`header_back_title_${i}`}\n            index={i}\n            ref={isCurrent ? 'currentBackTitle' : isPrev ? 'prevBackTitle' : null}\n            headerBackTitle={prevView && prevView.routeName}\n            {...navigationOptions}\n            style={{opacity}}\n            headerStyle={headerStyle}\n            headerMode={headerMode}\n            navigation={view.navigation}\n          />, <HeaderRight\n            key={`header_right_${i}`}\n            ref={isCurrent ? 'currentRight' : isPrev ? 'prevRight' : null}\n            headerBackTitle={prevView && prevView.routeName}\n            {...navigationOptions}\n            style={{opacity}}\n            headerStyle={headerStyle}\n            headerMode={headerMode}\n            navigation={view.navigation}\n          />] : null;\n        }) : null}\n      </View>);\n  }\n}\n\nconst styles = {\n  container: {\n    position: 'absolute',\n    width: 750,\n    top: 0,\n    backgroundColor: '#fff',\n    overflow: 'hidden'\n  },\n  current: {\n    transform: 'translateX(750rem)'\n  },\n  prev: {}\n};\n\nexport default StackHeaderContainer;","'use strict';\n\nimport {createElement, Component} from 'rax';\nimport View from 'rax-view';\nimport {isWeex} from 'universal-env';\n\nconst EDGE_PAN_THRESHOLD = 100;\n\nclass EdgePanView extends Component {\n  static defaultProps = {\n    onEdgeHorizontalPan: () => {\n    }\n  }\n\n  onHorizontalPan = (e) => {\n    if (e && e.state === 'start') {\n      this.handleEdgePanStart(e);\n    }\n  }\n\n  onTouchStart = (e) => {\n    this.handleEdgePanStart(e);\n  }\n\n  handleEdgePanStart = (e) => {\n    e.state = 'start';\n    let {onEdgeHorizontalPan} = this.props;\n    if (e.changedTouches[0].pageX < EDGE_PAN_THRESHOLD) {\n      onEdgeHorizontalPan && onEdgeHorizontalPan(e);\n    }\n  }\n\n\n  render() {\n    let props = {\n      ...this.props\n    };\n\n    let {gesturesEnabled = true} = props;\n\n    if (gesturesEnabled) {\n      if (isWeex) {\n        props.onHorizontalPan = this.onHorizontalPan;\n      } else {\n        props.onTouchStart = this.onTouchStart;\n      }\n    }\n\n    return <View {...props} />;\n  }\n}\n\nexport default EdgePanView;\n","'use strict';\n\nconst DEFAULT_DURATION = 250;\nconst FULL_WIDTH = 750;\nconst PREV_VIEW_RATIO = 300 / FULL_WIDTH;\n\nconst HORIZONTAL_PUSH = {\n  mask: true, // need mask as a modal mode,\n  maskTransitionSpec: {\n    initialStyle: {\n      position: 'absolute',\n      top: 0,\n      left: 0,\n      right: 0,\n      bottom: 0,\n      backgroundColor: '#000',\n      opacity: 0\n    },\n    duration: DEFAULT_DURATION,\n    props: [{\n      property: 'opacity',\n      inputRange: [1, 0],\n      outputRange: [0, 0.25]\n    }]\n  },\n  transitionSpec: {\n    initialStyle: {\n      transform: `translateX(${FULL_WIDTH}rem)`\n    },\n    duration: DEFAULT_DURATION,\n    props: [\n      {\n        property: 'transform.translateX',\n        inputRange: [0, 1],\n        outputRange: [FULL_WIDTH, 0]\n      }]\n  },\n  prevTransitionSpec: {\n    initialStyle: {\n      transform: `translateX(-${PREV_VIEW_RATIO * FULL_WIDTH}rem)`\n    },\n    duration: DEFAULT_DURATION,\n    props: [\n      {\n        property: 'transform.translateX',\n        inputRange: [1, 0],\n        outputRange: [0, -PREV_VIEW_RATIO * FULL_WIDTH]\n      }\n    ]\n  }\n};\n\n\nexport {\n  HORIZONTAL_PUSH\n};","'use strict';\n\nimport {createElement} from 'rax';\nimport View from 'rax-view';\nimport Binding from 'weex-bindingx';\nimport assign from 'deep-assign';\nimport {EVENT_CELL_PAN_START, HEIGHT_STACK_HEADER_DEFAULT} from './Constant';\nimport {\n  Event as Emitter,\n  getEl,\n  noop,\n  forbidSwipeBack,\n  Detection,\n  isNavigator,\n  statusBarHeight,\n  // bottomBarHeight,\n  multipleAnimate,\n  isSupportNewBinding,\n  getLast,\n  matchRouteByPath,\n  isFunction\n} from './Util';\n\nimport BaseViewContainer from './BaseViewContainer';\nimport StackHeader from './views/StackHeader';\nimport StackHeaderContainer from './StackHeaderContainer';\nimport EdgePanView from './views/EdgePanView';\nimport _ from 'simple-lodash';\nimport {HORIZONTAL_PUSH as defaultTransitionConfig} from './TransitionConfig';\n\n\nconst FULL_WIDTH = 750;\nconst SCREEN_REF_PREFIX = 'screen_';\nconst SCREEN_REF_REGEXP = new RegExp(SCREEN_REF_PREFIX);\n\n\nfunction negative(val) {\n  return val < 0 ? `${Math.abs(val)}*(0-1)` : `${val}`;\n}\n\n\n/*\n{out2: 1, out1: 1.3, in2: 0, in1: -150, ratio: -0.0020000000000000005}\nin1 * x + y = out1\nin2 * x + y = out2 => y = out2 - in2 * x\nin1 * x + out2 - in2 * x = out1\nx  = (out1 - out2) / (in1 - in2)\ny = out2 - in2 * (out1 - out2) / (in1 - in2)\n */\n\nfunction transformExpression(in1, in2, out1, out2) {\n  let inMax = Math.max(in1, in2);\n  let inMin = Math.min(in1, in2);\n  let outMax = Math.max(out1, out2);\n  let outMin = Math.min(out1, out2);\n  let inverse = in1 > in2;\n  let x = (out1 - out2) / (in1 - in2);\n  let y = out2 - in2 * (out1 - out2) / (in1 - in2);\n  let ix = `(x/${FULL_WIDTH})`;\n  return `min(${outMax},max(${outMin},(${ix}>=${negative(inMin)}&&${ix}<=${negative(inMax)})?(${ix}*${negative(x)}+${negative(y)}):(${ix}<${negative(inMin)}?(${negative(inverse ? out2 : out1)}):(${negative(inverse ? out1 : out2)}))))`;\n}\n\n\nfunction transformRangeSpec(el, config) {\n  let progress = config.progress;\n  // pan distance witch is less than half size of screen\n  progress = config.type === 'push' && progress > 0 ? 1 - progress : progress;\n  let outputRange = config.outputRange;\n  let start = config.type === 'push' ? outputRange[0] : outputRange[1];\n  let end = config.type === 'push' ? outputRange[1] : outputRange[0];\n  let _start = (end - start) * progress + start;\n  return {\n    element: el,\n    property: config.property,\n    start: _start,\n    end\n  };\n}\n\n\nclass StackViewContainer extends BaseViewContainer {\n  static defaultProps = {\n    mode: 'card', // modal\n    headerMode: 'screen', // screen or none\n    onTransitionStart: noop,\n    onTransitionEnd: noop,\n    transitionConfig: noop,\n    navigationOptions: null\n  }\n\n  state = {\n    views: [],\n    isSingle: false,\n    type: 'push',\n    navigationOptionsArray: []\n  }\n\n  screens = [];\n\n  progress = 0;\n\n  _transitionConfigs = {};\n\n  constructor(props) {\n    super(props);\n    if (!isSupportNewBinding) {\n      this.props.transitionConfig = defaultTransitionConfig;\n    }\n  }\n\n  componentWillMount() {\n    if (Detection.Android) {\n      Emitter.on(EVENT_CELL_PAN_START, this.bindCellPan);\n    }\n  }\n\n  bindCellPan = (e = {}) => {\n    this.bindPan(e.element);\n  }\n\n  componentDidMount() {\n    forbidSwipeBack(true);\n  }\n\n  resolveTransitionConfig = (options) => {\n    let {transitionConfig, navigation, history} = this.props;\n    let routeName = navigation.state.routeName;\n    let prevRouteName = navigation.prevState && navigation.prevState.routeName || 'PREV_INIT';\n    let cachedKeyname = prevRouteName + '_' + routeName;\n    let {records, index} = history;\n    let nav = {};\n    if (options && options.isEdgePan && records[index] && records[index - 1]) {\n      let curRoute = matchRouteByPath(navigation.routerConfig, records[index]);\n      let prevRoute = matchRouteByPath(navigation.routerConfig, records[index - 1]) || {\n        name: 'PREV_INIT'\n      };\n      // it's a little trick\n      cachedKeyname = curRoute.name + '_' + prevRoute.name;\n      nav.state = {\n        ...prevRoute,\n        routeName: prevRouteName\n      };\n      nav.prevState = {\n        ...curRoute,\n        routeName: curRoute.name\n      };\n    } else {\n      nav.prevState = navigation.prevState;\n      nav.state = navigation.state;\n    }\n\n    if (typeof transitionConfig === 'function') {\n      if (this._transitionConfigs[cachedKeyname]) {\n        return this._transitionConfigs[cachedKeyname];\n      }\n      return this._transitionConfigs[cachedKeyname] = assign({}, JSON.parse(JSON.stringify(defaultTransitionConfig)), transitionConfig({navigation: nav, ...nav})); // eslint-disable-line\n    }\n    return assign({}, defaultTransitionConfig, transitionConfig);\n  }\n\n\n  getStackHeaderBindingProps = () => {\n    return this.refs.stackHeader && this.refs.stackHeader.getBindingProps() || [];\n  }\n\n  getScreenBindingProps = () => {\n    let extraBindingProps = [];\n    let transitionConfig = this.resolveTransitionConfig({isEdgePan: true});\n    let {transitionSpec, prevTransitionSpec, maskTransitionSpec, mask} = transitionConfig;\n    let screens = this.screens;\n    if (screens.length <= 1) return extraBindingProps;\n    // current screen\n    if (transitionSpec && transitionSpec.props) {\n      _.map(transitionSpec.props, (config) => {\n        let expression = transformExpression(config.inputRange[1], config.inputRange[0], config.outputRange[0], config.outputRange[1]);\n        extraBindingProps.push({\n          element: this.refs.currentView,\n          property: config.property,\n          expression\n        });\n      });\n    }\n    // previous screen\n    if (prevTransitionSpec) {\n      _.map(prevTransitionSpec.props, (config) => {\n        let expression = transformExpression(config.inputRange[0], config.inputRange[1], config.outputRange[0], config.outputRange[1]);\n        extraBindingProps.push({\n          element: this.refs.prevView,\n          property: config.property,\n          expression\n        });\n      });\n    }\n\n    // mask\n    if (mask && maskTransitionSpec) {\n      _.map(maskTransitionSpec.props, (config) => {\n        let expression = transformExpression(config.inputRange[0], config.inputRange[1], config.outputRange[0], config.outputRange[1]);\n        extraBindingProps.push({\n          element: this.refs.mask,\n          property: config.property,\n          expression\n        });\n      });\n    }\n\n    return extraBindingProps;\n  }\n\n\n  getScreenElementsBindingProps = () => {\n    let screens = this.screens;\n    let index = screens.length - 1;\n    let curScreen = screens[index];\n    let prevScreen = screens[index - 1];\n    let extraBindingProps = [];\n    if (curScreen && curScreen.getScreenTransitionConfig) {\n      let transitionConfig = curScreen.getScreenTransitionConfig();\n      if (transitionConfig && transitionConfig.transitionElements) {\n        _.map(transitionConfig.transitionElements, (config) => {\n          if (config && config.gesturesEnabled) {\n            let expression = transformExpression(config.inputRange[1], config.inputRange[0], config.outputRange[0], config.outputRange[1]);\n            extraBindingProps.push({\n              element: config.element,\n              property: config.property,\n              expression\n            });\n          }\n        });\n      }\n    }\n\n    if (prevScreen && prevScreen.getScreenTransitionConfig) {\n      let transitionConfig = prevScreen.getScreenTransitionConfig();\n      if (transitionConfig && transitionConfig.transitionElements) {\n        _.map(transitionConfig.transitionElements, (config) => {\n          let {inputRange, outputRange, gesturesEnabled, element, property} = config;\n          if (gesturesEnabled && outputRange.length === 3 && inputRange.length === 3) {\n            let expression = transformExpression(inputRange[1], config.inputRange[2], config.outputRange[1], config.outputRange[2]);\n            extraBindingProps.push({\n              element,\n              property,\n              expression\n            });\n          }\n        });\n      }\n    }\n\n    return extraBindingProps;\n  }\n\n\n  bindPan(anchor) {\n    anchor = getEl(anchor);\n\n    if (!isSupportNewBinding || !anchor) return;\n\n    let views = this.state.views;\n\n    if (views.length > 1) {\n      this.startTime = Date.now();\n\n      let screensProps = this.getScreenBindingProps();\n\n      let elementsProps = this.getScreenElementsBindingProps();\n\n      let headerProps = this.getStackHeaderBindingProps();\n\n      let bindingProps = [\n        ...screensProps,\n        ...headerProps,\n        ...elementsProps\n      ].map(o => {\n        o.element = getEl(o.element);\n        return o;\n      });\n\n      let result = Binding.bind({\n        anchor,\n        eventType: 'pan',\n        // debug:true,\n        options: {\n          touchAction: 'pan-x'\n        },\n        props: bindingProps\n      }, (e) => {\n        if (e && e.state === 'end') {\n          let duration = Date.now() - this.startTime;\n          let dist = e.deltaX;\n          if (this._bindingToken) {\n            Binding.unbind({\n              token: this._bindingToken,\n              eventType: 'pan',\n              anchor\n            });\n          }\n\n          this.progress = dist / FULL_WIDTH;\n\n          if (dist > 0) {\n            if (dist > FULL_WIDTH / 2 || Math.abs(dist) / duration > 0.5 && duration < 200) {\n              this.props.navigation.goBack();\n            } else {\n              this.slideIn();\n            }\n          }\n        }\n      });\n\n      this._bindingToken = result && result.token;\n    }\n  }\n\n\n  onEdgeHorizontalPan = (e) => {\n    if (e.state === 'start') {\n      this.bindPan(this.refs.currentPanView);\n    }\n  }\n\n\n  resolveNavigationOptionsArray() {\n    let navigationOptionsArray = [];\n    if (this.state.views) {\n      this.state.views.map((view) => {\n        let navigationOptions = this.resolveNavigationOptions(view);\n        navigationOptionsArray.push(navigationOptions);\n      });\n    }\n    return navigationOptionsArray;\n  }\n\n\n  render() {\n    let {headerMode = 'screen', cardStyle = {}, history} = this.props;\n    let transitionConfig = this.resolveTransitionConfig();\n    let {transitionSpec, prevTransitionSpec, maskTransitionSpec, mask} = transitionConfig;\n    let {isSingle, type} = this.state;\n    let l = this.state.views.length;\n\n    let {navigationOptionsArray} = this.state;\n\n    return (<View ref=\"stackContainer\" style={[styles.container, {...this.props.style}]}>\n      {this.state.views.map((view, i) => {\n        let isCurrent = i === l - 1;\n        let isPrevView = i === l - 2;\n        // only render two screens\n        if (!isCurrent && !isPrevView) return null;\n\n        let prevView = this.state.views[i - 1];\n        let prevRouteName;\n        if (prevView && prevView.name) {\n          prevRouteName = prevView.name;\n        }\n        let navigationOptions = navigationOptionsArray[i];\n        let {headerStyle = {}, header, headerTransparent, gesturesEnabled} = navigationOptions;\n        let isNav = isNavigator(view.screen);\n        let top = isNav ? 0 : (headerStyle.height || HEIGHT_STACK_HEADER_DEFAULT) + statusBarHeight;\n        if (header !== undefined) {\n          if (header && header.props && header.props.style && header.props.style.height !== undefined) {\n            top = header.props.style.height + (header.props.style.top || statusBarHeight);\n          } else {\n            top = 0; // header === null\n          }\n        } else if (headerMode === 'none') {\n          top = 0;\n        }\n        let viewStyle = styles.screenContainer;\n        if (isSingle) {\n          viewStyle = styles.screenContainer;\n        } else {\n          if (type === 'push') {\n            viewStyle = isCurrent ? [styles.screenContainer, transitionSpec && transitionSpec.initialStyle] : styles.screenContainer;\n          } else if (type === 'pop') {\n            viewStyle = isCurrent ? styles.screenContainer : [styles.screenContainer, prevTransitionSpec && prevTransitionSpec.initialStyle];\n          }\n        }\n\n        let index = _.findIndex(history.records, (o) => o === view.fullPath);\n\n        let showHeaderBackTitle = index > 0;\n\n        return (<View key={view.screen.guid} style={[viewStyle, {top: 0}]}\n          ref={isCurrent ? 'currentView' : isPrevView ? 'prevView' : null}>\n          <EdgePanView\n            ref={isCurrent ? 'currentPanView' : isPrevView ? 'prevPanView' : null}\n            onEdgeHorizontalPan={this.onEdgeHorizontalPan}\n            gesturesEnabled={gesturesEnabled}\n            style={[styles.card, {top: headerTransparent ? 0 : top}, cardStyle]}>\n            <view.screen ref={SCREEN_REF_PREFIX + i} {...view} />\n          </EdgePanView>\n          {isPrevView && mask ? <View ref=\"mask\" style={maskTransitionSpec && maskTransitionSpec.initialStyle} /> : null}\n          {headerMode === 'screen' && !isNav ?\n            <StackHeader key={`stack_header_${i}`}\n              index={i}\n              title={view.routeName}\n              showHeaderBackTitle={showHeaderBackTitle}\n              headerBackTitle={prevRouteName}\n              {...navigationOptions}\n              headerMode={headerMode}\n              headerStyle={headerStyle}\n              headerTransparent={headerTransparent}\n              params={view.params}\n              navigation={view.navigation} /> : null}\n        </View>);\n      })}\n      {headerMode === 'float' && navigationOptionsArray && navigationOptionsArray.length ?\n        <StackHeaderContainer type={type} isSingle={isSingle} ref=\"stackHeader\" views={this.state.views}\n          headerMode={headerMode} navigationOptionsArray={navigationOptionsArray} /> : null}\n    </View>);\n  }\n\n\n  slideIn = (options = {}) => {\n    const {callback} = options;\n\n    this.transitionElements({type: 'push'});\n\n    this.transitionScreens({type: 'push'}, callback);\n\n    this.refs.stackHeader && this.refs.stackHeader.slideIn(options);\n  }\n\n\n  slideOut = (options) => {\n    const {callback} = options;\n\n    this.transitionElements({type: 'pop'});\n\n    this.transitionScreens({type: 'pop'}, callback);\n\n    this.refs.stackHeader && this.refs.stackHeader.slideOut(options);\n  }\n\n  transitionElements = (options = {type: 'push'}) => {\n    let screens = this.screens;\n    let progress = this.progress;\n    // pan distance witch is less than half size of screen\n    progress = options.type === 'push' && this.progress > 0 ? 1 - progress : progress;\n    let index = this.screens.length - 1;\n    let curScreen = screens[index];\n    let prevScreen = screens[index - 1];\n    let transitionConfig = this.resolveTransitionConfig();\n    let transitionProps = [];\n\n\n    if (curScreen && curScreen.getScreenTransitionConfig) {\n      let screenTransitionConfig = curScreen.getScreenTransitionConfig();\n      if (screenTransitionConfig && screenTransitionConfig.transitionElements) {\n        _.map(screenTransitionConfig.transitionElements, (config) => {\n          // TODO InputRange\n          // let inputRange = config.inputRange;\n\n          let {gesturesEnabled, outputRange, delay} = config;\n          let start = options.type === 'push' ? outputRange[0] : outputRange[1];\n          let end = options.type === 'push' ? outputRange[1] : outputRange[0];\n          let _start = !gesturesEnabled && options.type === 'push' && progress > 0.5 ? end : (end - start) * progress + start;\n          let duration = config.duration >= 0 ? config.duration : screenTransitionConfig.duration >= 0 ? screenTransitionConfig.duration : transitionConfig.transitionSpec.duration;\n          if (screens.length === 1) {\n            duration = 0;\n            delay = 0;\n          }\n          transitionProps.push({\n            easing: config.easing,\n            delay,\n            element: config.element,\n            property: config.property,\n            duration,\n            start: _start,\n            end\n          });\n        });\n      }\n    }\n\n    if (prevScreen && prevScreen.getScreenTransitionConfig) {\n      let screenTransitionConfig = prevScreen.getScreenTransitionConfig();\n      if (screenTransitionConfig && screenTransitionConfig.transitionElements) {\n        _.map(screenTransitionConfig.transitionElements, (config) => {\n          let gesturesEnabled = config.gesturesEnabled;\n          let outputRange = config.outputRange;\n          let inputRange = config.inputRange;\n          // TODO check for inputRange [0,1,0]\n          if (outputRange.length === 3 && inputRange.length === 3) {\n            let start = options.type === 'push' ? outputRange[1] : outputRange[2];\n            let end = options.type === 'push' ? outputRange[2] : outputRange[1];\n            let _start = !gesturesEnabled && options.type === 'push' && progress > 0.5 ? end : (end - start) * progress + start;\n            transitionProps.push({\n              easing: config.easing,\n              delay: config.delay,\n              element: config.element,\n              property: config.property,\n              duration: config.duration >= 0 ? config.duration : screenTransitionConfig.duration >= 0 ? screenTransitionConfig.duration : transitionConfig.transitionSpec.duration,\n              start: _start,\n              end\n            });\n          }\n        });\n      }\n    }\n\n    if (transitionProps && transitionProps.length > 0) {\n      multipleAnimate({\n        props: transitionProps\n      });\n    }\n  }\n\n  transitionScreens = (options, callback) => {\n    let transitionConfig = this.resolveTransitionConfig();\n    let {transitionSpec, prevTransitionSpec} = transitionConfig;\n    let {maskTransitionSpec} = transitionConfig;\n    let screens = this.screens;\n    let progress = this.progress;\n    if (screens.length <= 1) {\n      return callback && callback();\n    }\n    let transitionProps = [];\n    // current screen\n    if (transitionSpec) {\n      _.map(transitionSpec.props, (config) => {\n        let result = transformRangeSpec(this.refs.currentView, {\n          progress,\n          type: options.type,\n          ...config\n        });\n        transitionProps.push({\n          ...result,\n          // a little trick here for edge pan\n          duration: progress > 0 ? 250 : transitionSpec.duration\n        });\n      });\n    }\n\n    // previous screen\n    if (prevTransitionSpec) {\n      _.map(prevTransitionSpec.props, (config) => {\n        let result = transformRangeSpec(this.refs.prevView, {\n          progress,\n          type: options.type,\n          ...config\n        });\n        transitionProps.push({\n          ...result,\n          duration: prevTransitionSpec.duration\n        });\n      });\n    }\n\n    if (transitionConfig.mask && maskTransitionSpec) {\n      _.map(maskTransitionSpec.props, (config) => {\n        let result = transformRangeSpec(this.refs.mask, {\n          progress,\n          type: options.type,\n          ...config\n        });\n        transitionProps.push({\n          ...result,\n          duration: prevTransitionSpec.duration\n        });\n      });\n    }\n\n    if (transitionProps && transitionProps.length > 0) {\n      multipleAnimate({\n        easing: transitionSpec.easing,\n        props: transitionProps\n      }, (e) => {\n        this.progress = 0;\n        callback && callback(e);\n      });\n    }\n  }\n\n\n  prepend = (view) => {\n    let views = this.state.views;\n    let type = 'prepend';\n    view && views.unshift(view);\n    if (view) {\n      this.setState({\n        views,\n        type,\n        navigationOptionsArray: this.resolveNavigationOptionsArray(),\n        isSingle: views.length === 1 ? true : false\n      }, () => {\n        this.syncScreens();\n      });\n    }\n  }\n\n  canPop = () => {\n    let {views} = this.state;\n    return views.length > 1;\n  }\n\n  canPush = (view) => {\n    if (!view || !view.name) return;\n    let {views} = this.state;\n    let prev = getLast(views);\n    if (prev && prev.routeName === view.name) return false;\n    return true;\n  }\n\n  push = (view, callback) => {\n    let {onTransitionStart, onTransitionEnd, navigation} = this.props;\n    let {views} = this.state;\n    let type = 'push';\n    view && views.push(view);\n    this.setState({\n      views,\n      type,\n      navigationOptionsArray: this.resolveNavigationOptionsArray(),\n      isSingle: views.length === 1 ? true : false\n    });\n\n    let index = this.state.views.length - 1;\n    let screens = this.syncScreens();\n\n    isFunction(onTransitionStart) && onTransitionStart({\n      navigation,\n      index,\n      screens,\n      screen: screens[index],\n      views: this.state.views,\n      view: this.state.views[index]\n    });\n\n\n    setTimeout(() => {\n      this.slideIn({\n        callback: () => {\n          this.setState({\n            isSingle: views.length === 1 ? true : false,\n            type,\n            navigationOptionsArray: this.resolveNavigationOptionsArray()\n          });\n\n          isFunction(onTransitionEnd) && onTransitionEnd({\n            navigation,\n            index,\n            screens,\n            screen: screens[index],\n            views: this.state.views,\n            view: this.state.views[index]\n          });\n          callback && callback();\n        }\n      });\n    }, 50);\n  }\n\n  syncScreens = () => {\n    let screens = this.screens = [];\n    _.map(this.refs, (screen, refName) => {\n      if (SCREEN_REF_REGEXP.test(refName)) {\n        this.screens.push(screen);\n      }\n    });\n    return screens;\n  }\n\n\n  pop = (callback) => {\n    let {onTransitionStart, onTransitionEnd, navigation} = this.props;\n    let {views} = this.state;\n    let type = 'pop';\n    // last view can't be closed\n    if (views.length === 1) {\n      this.setState({\n        views,\n        isSingle: true,\n        type,\n        navigationOptionsArray: this.resolveNavigationOptionsArray()\n      });\n      return;\n    }\n\n\n    let index = this.state.views.length - 2;\n\n    onTransitionStart({\n      navigation,\n      index,\n      screens: this.screens,\n      screen: this.screens[index],\n      views: this.state.views,\n      view: this.state.views[index]\n    });\n\n\n    setTimeout(() => {\n      this.slideOut({\n        callback: () => {\n          let views = this.state.views;\n          let prevView = views.pop();\n          this.setState({\n            views,\n            isSingle: views.length === 1,\n            type,\n            navigationOptionsArray: this.resolveNavigationOptionsArray()\n          });\n\n          let screens = this.syncScreens();\n\n          onTransitionEnd({\n            navigation,\n            index,\n            screens,\n            screen: screens[index],\n            views: this.state.views,\n            view: this.state.views[index]\n          });\n\n          callback && callback({\n            prevView,\n            view: this.state.views[index]\n          });\n        }\n      });\n    }, 50);\n  }\n}\n\n\nconst styles = {\n  fullScreen: {\n    position: 'absolute',\n    left: 0,\n    right: 0,\n    top: 0,\n    bottom: 0\n  },\n  card: {\n    position: 'absolute',\n    backgroundColor: '#E9E9EF',\n    left: 0,\n    right: 0,\n    top: 0,\n    bottom: 0\n  },\n  view: {\n    width: FULL_WIDTH,\n    position: 'absolute',\n    top: 0,\n    bottom: 0,\n    transform: 'translateX(0rem)'\n  },\n  container: {\n    position: 'absolute',\n    width: FULL_WIDTH,\n    top: 0,\n    bottom: 0,\n    backgroundColor: '#fff',\n    overflow: 'hidden'\n  },\n  screenContainer: {\n    position: 'absolute',\n    width: FULL_WIDTH,\n    bottom: 0,\n    // backgroundColor: '#E9E9EF',\n    // boxShadow: '0rem 0rem 20rem 0rem #ccc'\n  },\n  stackHeader: {\n    position: 'absolute',\n    transform: 'translateX(0rem)',\n  }\n};\n\nexport default StackViewContainer;\n","export default function _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n  return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n  for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n    list[i] = list[k];\n  }\n\n  list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n  var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n  var toParts = to && to.split('/') || [];\n  var fromParts = from && from.split('/') || [];\n\n  var isToAbs = to && isAbsolute(to);\n  var isFromAbs = from && isAbsolute(from);\n  var mustEndAbs = isToAbs || isFromAbs;\n\n  if (to && isAbsolute(to)) {\n    // to is absolute\n    fromParts = toParts;\n  } else if (toParts.length) {\n    // to is relative, drop the filename\n    fromParts.pop();\n    fromParts = fromParts.concat(toParts);\n  }\n\n  if (!fromParts.length) return '/';\n\n  var hasTrailingSlash = void 0;\n  if (fromParts.length) {\n    var last = fromParts[fromParts.length - 1];\n    hasTrailingSlash = last === '.' || last === '..' || last === '';\n  } else {\n    hasTrailingSlash = false;\n  }\n\n  var up = 0;\n  for (var i = fromParts.length; i >= 0; i--) {\n    var part = fromParts[i];\n\n    if (part === '.') {\n      spliceOne(fromParts, i);\n    } else if (part === '..') {\n      spliceOne(fromParts, i);\n      up++;\n    } else if (up) {\n      spliceOne(fromParts, i);\n      up--;\n    }\n  }\n\n  if (!mustEndAbs) for (; up--; up) {\n    fromParts.unshift('..');\n  }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n  var result = fromParts.join('/');\n\n  if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n  return result;\n}\n\nexport default resolvePathname;","var _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 valueEqual(a, b) {\n  if (a === b) return true;\n\n  if (a == null || b == null) return false;\n\n  if (Array.isArray(a)) {\n    return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n      return valueEqual(item, b[index]);\n    });\n  }\n\n  var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n  var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n  if (aType !== bType) return false;\n\n  if (aType === 'object') {\n    var aValue = a.valueOf();\n    var bValue = b.valueOf();\n\n    if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n    var aKeys = Object.keys(a);\n    var bKeys = Object.keys(b);\n\n    if (aKeys.length !== bKeys.length) return false;\n\n    return aKeys.every(function (key) {\n      return valueEqual(a[key], b[key]);\n    });\n  }\n\n  return false;\n}\n\nexport default valueEqual;","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n  if (condition) {\n    return;\n  }\n\n  if (isProduction) {\n    throw new Error(prefix);\n  } else {\n    throw new Error(prefix + \": \" + (message || ''));\n  }\n}\n\nexport default invariant;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n  return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n}\nfunction stripBasename(path, prefix) {\n  return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n  return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n  var pathname = path || '/';\n  var search = '';\n  var hash = '';\n  var hashIndex = pathname.indexOf('#');\n\n  if (hashIndex !== -1) {\n    hash = pathname.substr(hashIndex);\n    pathname = pathname.substr(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n\n  if (searchIndex !== -1) {\n    search = pathname.substr(searchIndex);\n    pathname = pathname.substr(0, searchIndex);\n  }\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n}\nfunction createPath(location) {\n  var pathname = location.pathname,\n      search = location.search,\n      hash = location.hash;\n  var path = pathname || '/';\n  if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n  return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n  var location;\n\n  if (typeof path === 'string') {\n    // Two-arg form: push(path, state)\n    location = parsePath(path);\n    location.state = state;\n  } else {\n    // One-arg form: push(location)\n    location = _extends({}, path);\n    if (location.pathname === undefined) location.pathname = '';\n\n    if (location.search) {\n      if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n    } else {\n      location.search = '';\n    }\n\n    if (location.hash) {\n      if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n    } else {\n      location.hash = '';\n    }\n\n    if (state !== undefined && location.state === undefined) location.state = state;\n  }\n\n  try {\n    location.pathname = decodeURI(location.pathname);\n  } catch (e) {\n    if (e instanceof URIError) {\n      throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n    } else {\n      throw e;\n    }\n  }\n\n  if (key) location.key = key;\n\n  if (currentLocation) {\n    // Resolve incomplete/relative pathname relative to current location.\n    if (!location.pathname) {\n      location.pathname = currentLocation.pathname;\n    } else if (location.pathname.charAt(0) !== '/') {\n      location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n    }\n  } else {\n    // When there is no prior location and pathname is empty, set it to /\n    if (!location.pathname) {\n      location.pathname = '/';\n    }\n  }\n\n  return location;\n}\nfunction locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n  var prompt = null;\n\n  function setPrompt(nextPrompt) {\n    process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n    prompt = nextPrompt;\n    return function () {\n      if (prompt === nextPrompt) prompt = null;\n    };\n  }\n\n  function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n    // TODO: If another transition starts while we're still confirming\n    // the previous one, we may end up in a weird state. Figure out the\n    // best way to handle this.\n    if (prompt != null) {\n      var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n      if (typeof result === 'string') {\n        if (typeof getUserConfirmation === 'function') {\n          getUserConfirmation(result, callback);\n        } else {\n          process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n          callback(true);\n        }\n      } else {\n        // Return false from a transition hook to cancel the transition.\n        callback(result !== false);\n      }\n    } else {\n      callback(true);\n    }\n  }\n\n  var listeners = [];\n\n  function appendListener(fn) {\n    var isActive = true;\n\n    function listener() {\n      if (isActive) fn.apply(void 0, arguments);\n    }\n\n    listeners.push(listener);\n    return function () {\n      isActive = false;\n      listeners = listeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  }\n\n  function notifyListeners() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    listeners.forEach(function (listener) {\n      return listener.apply(void 0, args);\n    });\n  }\n\n  return {\n    setPrompt: setPrompt,\n    confirmTransitionTo: confirmTransitionTo,\n    appendListener: appendListener,\n    notifyListeners: notifyListeners\n  };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n  callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n  var ua = window.navigator.userAgent;\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n  return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n  return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n  return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n  event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n  try {\n    return window.history.state || {};\n  } catch (e) {\n    // IE 11 sometimes throws when accessing window.history.state\n    // See https://github.com/ReactTraining/history/pull/289\n    return {};\n  }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n  if (props === void 0) {\n    props = {};\n  }\n\n  !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n  var globalHistory = window.history;\n  var canUseHistory = supportsHistory();\n  var needsHashChangeListener = !supportsPopStateOnHashChange();\n  var _props = props,\n      _props$forceRefresh = _props.forceRefresh,\n      forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n      _props$getUserConfirm = _props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n      _props$keyLength = _props.keyLength,\n      keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n  function getDOMLocation(historyState) {\n    var _ref = historyState || {},\n        key = _ref.key,\n        state = _ref.state;\n\n    var _window$location = window.location,\n        pathname = _window$location.pathname,\n        search = _window$location.search,\n        hash = _window$location.hash;\n    var path = pathname + search + hash;\n    process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n    if (basename) path = stripBasename(path, basename);\n    return createLocation(path, state, key);\n  }\n\n  function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  }\n\n  var transitionManager = createTransitionManager();\n\n  function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n    transitionManager.notifyListeners(history.location, history.action);\n  }\n\n  function handlePopState(event) {\n    // Ignore extraneous popstate events in WebKit.\n    if (isExtraneousPopstateEvent(event)) return;\n    handlePop(getDOMLocation(event.state));\n  }\n\n  function handleHashChange() {\n    handlePop(getDOMLocation(getHistoryState()));\n  }\n\n  var forceNextPop = false;\n\n  function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({\n            action: action,\n            location: location\n          });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  }\n\n  function revertPop(fromLocation) {\n    var toLocation = history.location; // TODO: We could probably make this more reliable by\n    // keeping a list of keys we've seen in sessionStorage.\n    // Instead, we just default to 0 for keys we don't know.\n\n    var toIndex = allKeys.indexOf(toLocation.key);\n    if (toIndex === -1) toIndex = 0;\n    var fromIndex = allKeys.indexOf(fromLocation.key);\n    if (fromIndex === -1) fromIndex = 0;\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  }\n\n  var initialLocation = getDOMLocation(getHistoryState());\n  var allKeys = [initialLocation.key]; // Public interface\n\n  function createHref(location) {\n    return basename + createPath(location);\n  }\n\n  function push(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n    var action = 'PUSH';\n    var location = createLocation(path, state, createKey(), history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n      if (canUseHistory) {\n        globalHistory.pushState({\n          key: key,\n          state: state\n        }, null, href);\n\n        if (forceRefresh) {\n          window.location.href = href;\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n          nextKeys.push(location.key);\n          allKeys = nextKeys;\n          setState({\n            action: action,\n            location: location\n          });\n        }\n      } else {\n        process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n        window.location.href = href;\n      }\n    });\n  }\n\n  function replace(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n    var action = 'REPLACE';\n    var location = createLocation(path, state, createKey(), history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n      if (canUseHistory) {\n        globalHistory.replaceState({\n          key: key,\n          state: state\n        }, null, href);\n\n        if (forceRefresh) {\n          window.location.replace(href);\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n          setState({\n            action: action,\n            location: location\n          });\n        }\n      } else {\n        process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n        window.location.replace(href);\n      }\n    });\n  }\n\n  function go(n) {\n    globalHistory.go(n);\n  }\n\n  function goBack() {\n    go(-1);\n  }\n\n  function goForward() {\n    go(1);\n  }\n\n  var listenerCount = 0;\n\n  function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1 && delta === 1) {\n      window.addEventListener(PopStateEvent, handlePopState);\n      if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      window.removeEventListener(PopStateEvent, handlePopState);\n      if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n    }\n  }\n\n  var isBlocked = false;\n\n  function block(prompt) {\n    if (prompt === void 0) {\n      prompt = false;\n    }\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  }\n\n  function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  }\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n  return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n  hashbang: {\n    encodePath: function encodePath(path) {\n      return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n    },\n    decodePath: function decodePath(path) {\n      return path.charAt(0) === '!' ? path.substr(1) : path;\n    }\n  },\n  noslash: {\n    encodePath: stripLeadingSlash,\n    decodePath: addLeadingSlash\n  },\n  slash: {\n    encodePath: addLeadingSlash,\n    decodePath: addLeadingSlash\n  }\n};\n\nfunction getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  var href = window.location.href;\n  var hashIndex = href.indexOf('#');\n  return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n  window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n  var hashIndex = window.location.href.indexOf('#');\n  window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n  if (props === void 0) {\n    props = {};\n  }\n\n  !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n  var globalHistory = window.history;\n  var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n  var _props = props,\n      _props$getUserConfirm = _props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n      _props$hashType = _props.hashType,\n      hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n  var _HashPathCoders$hashT = HashPathCoders[hashType],\n      encodePath = _HashPathCoders$hashT.encodePath,\n      decodePath = _HashPathCoders$hashT.decodePath;\n\n  function getDOMLocation() {\n    var path = decodePath(getHashPath());\n    process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n    if (basename) path = stripBasename(path, basename);\n    return createLocation(path);\n  }\n\n  var transitionManager = createTransitionManager();\n\n  function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n    transitionManager.notifyListeners(history.location, history.action);\n  }\n\n  var forceNextPop = false;\n  var ignorePath = null;\n\n  function handleHashChange() {\n    var path = getHashPath();\n    var encodedPath = encodePath(path);\n\n    if (path !== encodedPath) {\n      // Ensure we always have a properly-encoded hash.\n      replaceHashPath(encodedPath);\n    } else {\n      var location = getDOMLocation();\n      var prevLocation = history.location;\n      if (!forceNextPop && locationsAreEqual(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n      if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n      ignorePath = null;\n      handlePop(location);\n    }\n  }\n\n  function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({\n            action: action,\n            location: location\n          });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  }\n\n  function revertPop(fromLocation) {\n    var toLocation = history.location; // TODO: We could probably make this more reliable by\n    // keeping a list of paths we've seen in sessionStorage.\n    // Instead, we just default to 0 for paths we don't know.\n\n    var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n    if (toIndex === -1) toIndex = 0;\n    var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n    if (fromIndex === -1) fromIndex = 0;\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  } // Ensure the hash is encoded properly before doing anything else.\n\n\n  var path = getHashPath();\n  var encodedPath = encodePath(path);\n  if (path !== encodedPath) replaceHashPath(encodedPath);\n  var initialLocation = getDOMLocation();\n  var allPaths = [createPath(initialLocation)]; // Public interface\n\n  function createHref(location) {\n    return '#' + encodePath(basename + createPath(location));\n  }\n\n  function push(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n    var action = 'PUSH';\n    var location = createLocation(path, undefined, undefined, history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var path = createPath(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a PUSH, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        pushHashPath(encodedPath);\n        var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n        var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n        nextPaths.push(path);\n        allPaths = nextPaths;\n        setState({\n          action: action,\n          location: location\n        });\n      } else {\n        process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n        setState();\n      }\n    });\n  }\n\n  function replace(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n    var action = 'REPLACE';\n    var location = createLocation(path, undefined, undefined, history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var path = createPath(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        replaceHashPath(encodedPath);\n      }\n\n      var prevIndex = allPaths.indexOf(createPath(history.location));\n      if (prevIndex !== -1) allPaths[prevIndex] = path;\n      setState({\n        action: action,\n        location: location\n      });\n    });\n  }\n\n  function go(n) {\n    process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n    globalHistory.go(n);\n  }\n\n  function goBack() {\n    go(-1);\n  }\n\n  function goForward() {\n    go(1);\n  }\n\n  var listenerCount = 0;\n\n  function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1 && delta === 1) {\n      window.addEventListener(HashChangeEvent$1, handleHashChange);\n    } else if (listenerCount === 0) {\n      window.removeEventListener(HashChangeEvent$1, handleHashChange);\n    }\n  }\n\n  var isBlocked = false;\n\n  function block(prompt) {\n    if (prompt === void 0) {\n      prompt = false;\n    }\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  }\n\n  function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  }\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n  return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n  return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n  if (props === void 0) {\n    props = {};\n  }\n\n  var _props = props,\n      getUserConfirmation = _props.getUserConfirmation,\n      _props$initialEntries = _props.initialEntries,\n      initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n      _props$initialIndex = _props.initialIndex,\n      initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n      _props$keyLength = _props.keyLength,\n      keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n  var transitionManager = createTransitionManager();\n\n  function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = history.entries.length;\n    transitionManager.notifyListeners(history.location, history.action);\n  }\n\n  function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  }\n\n  var index = clamp(initialIndex, 0, initialEntries.length - 1);\n  var entries = initialEntries.map(function (entry) {\n    return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n  }); // Public interface\n\n  var createHref = createPath;\n\n  function push(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n    var action = 'PUSH';\n    var location = createLocation(path, state, createKey(), history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var prevIndex = history.index;\n      var nextIndex = prevIndex + 1;\n      var nextEntries = history.entries.slice(0);\n\n      if (nextEntries.length > nextIndex) {\n        nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n      } else {\n        nextEntries.push(location);\n      }\n\n      setState({\n        action: action,\n        location: location,\n        index: nextIndex,\n        entries: nextEntries\n      });\n    });\n  }\n\n  function replace(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n    var action = 'REPLACE';\n    var location = createLocation(path, state, createKey(), history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      history.entries[history.index] = location;\n      setState({\n        action: action,\n        location: location\n      });\n    });\n  }\n\n  function go(n) {\n    var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n    var action = 'POP';\n    var location = history.entries[nextIndex];\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (ok) {\n        setState({\n          action: action,\n          location: location,\n          index: nextIndex\n        });\n      } else {\n        // Mimic the behavior of DOM histories by\n        // causing a render after a cancelled POP.\n        setState();\n      }\n    });\n  }\n\n  function goBack() {\n    go(-1);\n  }\n\n  function goForward() {\n    go(1);\n  }\n\n  function canGo(n) {\n    var nextIndex = history.index + n;\n    return nextIndex >= 0 && nextIndex < history.entries.length;\n  }\n\n  function block(prompt) {\n    if (prompt === void 0) {\n      prompt = false;\n    }\n\n    return transitionManager.setPrompt(prompt);\n  }\n\n  function listen(listener) {\n    return transitionManager.appendListener(listener);\n  }\n\n  var history = {\n    length: entries.length,\n    action: 'POP',\n    location: entries[index],\n    index: index,\n    entries: entries,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    canGo: canGo,\n    block: block,\n    listen: listen\n  };\n  return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import {isWeex} from 'universal-env';\nimport {createBrowserHistory, createMemoryHistory, createHashHistory} from 'history';\nimport assign from 'object-assign';\nimport {setItem, getItem} from './Util';\nimport _ from 'simple-lodash';\n\n\nlet globalHistory = null;\nlet globalKey;\n\nfunction getInitialPath(options = {}) {\n  options = {...{mode: 'hash'}, ...options};\n  return (options && options.mode === 'hash' ? location.hash.replace(/^#/, '') : location.pathname) || '/';\n}\n\nclass History {\n  records = [];\n\n  index = 0;\n\n  get location() {\n    return this.history.location;\n  }\n\n  constructor(options = {}) {\n    options = this.options = {...{mode: 'hash'}, ...options};\n    let initialPath = getInitialPath(options);\n    options = assign({initialEntries: [initialPath]}, options);\n    let history = this.history = isWeex ? createMemoryHistory(options) : options && options.mode === 'hash' ? createHashHistory(options) : createBrowserHistory(options);\n    let location = history.location;\n    globalKey = location.key;\n\n    let records = getItem('records');\n    let currentPath = getItem('currentPath');\n    let path = location.pathname + location.search;\n\n    if (records && records.length > 0) {\n      this.records = records;\n      if (currentPath != path) {\n        // check records from session\n        this.currentPath = path;\n        this.records = [this.currentPath];\n        this.index = 0;\n        setItem('records', this.records);\n        setItem('currentPath', this.currentPath);\n      } else {\n        this.currentPath = currentPath;\n        this.index = _.findIndex(records, (o) => {\n          return o === currentPath;\n        });\n      }\n    } else {\n      this.addRecord(location);\n      this.index = 0;\n    }\n\n    history.listen(this.onHistoryChange);\n  }\n\n\n  push = (path, options) => {\n    return this.history.push(path, options);\n  }\n\n  replace = (path, options) => {\n    return this.history.replace(path, options);\n  }\n\n\n  goForward = () => {\n    return this.history.goForward();\n  }\n\n\n  goBack() {\n    if (isWeex) {\n      if (this.index === 0) {\n        const weexNavigator = window.require('@weex-module/navigator');\n        weexNavigator.pop();\n      } else {\n        this.history.goBack();\n      }\n    } else {\n      if (this.index === 0) {\n        return;\n      } else {\n        this.history.goBack();\n      }\n    }\n  }\n\n  go(n) {\n    return this.history.go(n);\n  }\n\n  addRecord(location) {\n    let path = location.pathname + location.search;\n    this.records.push(path);\n    this.currentPath = path;\n    setItem('records', this.records);\n    setItem('currentPath', this.currentPath);\n  }\n\n  resetRecord() {\n    this.records.splice(this.index);\n  }\n\n  listen(handler) {\n    this.handler = handler;\n  }\n\n  onHistoryChange = (location, action) => {\n    let direction;\n    switch (action) {\n      case 'POP':\n        let prevIndex = _.findIndex(this.records, (o) => o === this.currentPath);\n        let curIndex = _.findIndex(this.records, (o) => o === location.pathname + location.search);\n\n        if (prevIndex >= 0 && curIndex >= 0) {\n          if (prevIndex > curIndex) {\n            direction = 'BACKWARD';\n            this.index--;\n          } else {\n            direction = 'FORWARD';\n            this.index++;\n          }\n        }\n        this.currentPath = location.pathname + location.search;\n        setItem('currentPath', this.currentPath);\n        break;\n      case 'PUSH':\n        this.index++;\n        this.resetRecord();\n        this.addRecord(location);\n        break;\n      case 'REPLACE':\n        this.resetRecord();\n        this.addRecord(location);\n        break;\n    }\n\n    if (this.handler) {\n      this.handler(location, action, direction);\n    }\n  }\n}\n\n\nfunction createHistory(options) {\n  globalHistory = globalHistory || new History(options);\n  return globalHistory;\n}\n\n\nfunction handleBack() {\n  globalHistory.goBack();\n}\n\nexport {createHistory, handleBack, getInitialPath};\n","import {uuid, isEventEqual} from './Util';\nimport _ from 'simple-lodash';\nimport {\n  EVENT_WILL_FOCUS,\n  EVENT_WILL_BLUR,\n  EVENT_DID_BLUR,\n  EVENT_DID_FOCUS\n} from './Constant';\n\nconst EVENTS_WHITE_LIST = [EVENT_WILL_FOCUS, EVENT_WILL_BLUR, EVENT_DID_BLUR, EVENT_DID_FOCUS];\n\n\nclass Navigation {\n  routerConfig = {}\n\n  config = {};\n\n  router = null;\n\n  state = {};\n\n  prevState = {};\n\n  _screenEvents = [];\n\n  id = null;\n\n  constructor(config) {\n    this.id = '__navigation__' + uuid();\n    this.config = config;\n    this.routerConfig = config.routerConfig;\n    this.navigatorType = config.navigatorType;\n    if (config && config.initialRouteName) {\n      this.state.routeName = config.initialRouteName;\n      this.state.params = config.initialRouteParams;\n      this.state.path = this.routerConfig[this.state.routeName].path;\n      this.records = [{\n        name: config.initialRouteName,\n        params: config.initialRouteParams,\n        path: this.state.path\n      }];\n    }\n    this.history = config.history;\n  }\n\n\n  getCurrentRoute(routes) {\n    let currentRoute = null;\n    routes && routes.forEach((route) => {\n      if (route && route.navigation === this && route.name === this.state.routeName) {\n        currentRoute = route;\n      }\n    });\n\n    if (currentRoute) return currentRoute;\n\n    routes && routes.forEach((route) => {\n      if (route && route.routes) {\n        currentRoute = this.getCurrentRoute(route.routes);\n      }\n    });\n\n    return currentRoute;\n  }\n\n  updateScreen = (params) => {\n    if (params.name && this.navigatorComponent) {\n      this.prevState = {...this.state};\n      this.state.routeName = params.name;\n      this.state.params = params.params;\n      this.prevRoute = this.currentRoute;\n      this.currentRoute = this.getCurrentRoute(this.router.routes.routes);\n      this.navigatorComponent.updateScreen({id: this.id, ...params});\n    }\n  }\n\n  // TODO isEventEqual\n  _triggerEvent = (options) => {\n    if (!options.routeName) return;\n    // console.warn('_triggerEvent:', options, this._screenEvents);\n    setTimeout(() => {\n      let evt = _.find(this._screenEvents, (e) => {\n        return isEventEqual(e, options);\n      });\n      if (evt && typeof evt.handler === 'function') {\n        evt.handler({\n          state: this.state,\n          lastState: this.prevState,\n          type: evt.eventName\n        });\n      }\n    }, 50);\n  }\n\n  addListener(eventName, handler) {\n    if (EVENTS_WHITE_LIST.indexOf(eventName) >= 0) {\n      let existIndex = _.findIndex(this._screenEvents, (evt) => {\n        return isEventEqual(evt, {\n          eventName,\n          params: this.state.params,\n          routeName: this.state.routeName\n        });\n      });\n      if (existIndex >= 0) {\n        this._screenEvents.splice(existIndex, 1);\n      }\n      this._screenEvents.push({\n        routeName: this.state.routeName,\n        eventName,\n        handler,\n        params: this.state.params\n      });\n    }\n  }\n\n  dispatch = (actions) => {\n    this.router.dispatch(actions);\n  }\n\n  navigate = (name, params) => {\n    this.router.navigate(name, params);\n  }\n\n  replace = (name, params) => {\n    this.router.replace(name, params);\n  }\n\n  navigateByPath = (path) => {\n    this.router.navigateByPath(path);\n  }\n\n  goBack = () => {\n    this.router.goBack();\n  }\n\n  go=(n) => {\n    this.router.go(n);\n  }\n}\n\nexport default Navigation;\n","import {createElement, Component} from 'rax';\nimport {isWeex} from 'universal-env';\nimport {EVENT_WILL_FOCUS, EVENT_WILL_BLUR, EVENT_DID_BLUR, EVENT_DID_FOCUS} from './Constant';\nimport {matchRouteByPath, urlFormat, uuid} from './Util';\nimport {createRouter, queryRoutes} from './Router';\nimport {getInitialPath, handleBack, createHistory} from './History';\nimport _ from 'simple-lodash';\nimport Navigation from './Navigation';\n\nfunction queryRoutesDeeply(route) {\n  let routes = [\n    route\n  ];\n  if (route.routes && route.routes[0]) {\n    routes = routes.concat(queryRoutesDeeply(route.routes[0]));\n  }\n  return routes;\n}\n\nfunction updateScreenDeeply(route, params) {\n  if (!route) return;\n\n  let routes = queryRoutesDeeply(route);\n\n  let router = route.navigation.router;\n\n  let navigationActions = router.createNavigationActions({\n    name: route.name,\n    params: route.params || params,\n    type: 'PUSH'\n  }, routes);\n\n  router.dispatch(navigationActions, {\n    replace: true\n  });\n}\n\n\nclass BaseNavigator extends Component {\n  constructor(props) {\n    super(props);\n    this.history = props.history;\n    this.documentHidden = false;\n    if (props.navigation) {\n      props.navigation.navigatorComponent = this;\n      this.history.router = props.navigation.router;\n    }\n  }\n\n  getChildContext() {\n    return {\n      navigation: this.props.navigation\n    };\n  }\n\n  handleViewAppear = () => {\n    let {navigation} = this.props;\n    let {currentRoute} = navigation;\n\n    this.triggerEventDeeply({\n      navigation,\n      route: currentRoute,\n      options: {type: 'viewAppear'},\n      eventName: EVENT_WILL_FOCUS\n    });\n\n\n    this.triggerEventDeeply({\n      navigation,\n      route: currentRoute,\n      options: {type: 'viewAppear'},\n      eventName: EVENT_DID_FOCUS\n    });\n  }\n\n  handleViewDisappear = () => {\n    let {navigation} = this.props;\n    let {currentRoute} = navigation;\n\n    this.triggerEventDeeply({\n      navigation,\n      route: currentRoute,\n      options: {type: 'viewDisappear'},\n      eventName: EVENT_WILL_BLUR\n    });\n\n    this.triggerEventDeeply({\n      navigation,\n      route: currentRoute,\n      options: {type: 'viewDisappear'},\n      eventName: EVENT_DID_BLUR\n    });\n  }\n\n  componentDidMount() {\n    let {location} = this.history;\n    let {navigation} = this.props;\n    if (navigation && navigation.level === 0) {\n      if (isWeex) {\n        document.body.addEvent('clickbackitem', handleBack);\n        document.body.addEvent('viewappear', this.handleViewAppear);\n        document.body.addEvent('viewdisappear', this.handleViewDisappear);\n      } else {\n        document.addEventListener('visibilitychange', (e) => {\n          if (document.hidden !== this.documentHidden) {\n            document.hidden ? this.handleViewDisappear() : this.handleViewAppear();\n            this.documentHidden = document.hidden;\n          }\n        });\n      }\n    }\n\n    let routes = queryRoutes(navigation.router.routes, {path: location.pathname + location.search});\n    // update sub routes\n    if (routes.length > 0) {\n      routes.forEach((route) => {\n        if (route.navigation === navigation) {\n          route.navigation.updateScreen({\n            fullPath: urlFormat(route.path, route.params),\n            name: route.name,\n            params: route.params,\n            action: 'PUSH',\n            type: 'update',\n          });\n        }\n      });\n    } else if (navigation.level === 0) {\n      let route = _.find(navigation.router.routes.routes, (route) => {\n        return route && route.name === navigation.router.routes.initialRouteName;\n      }) || navigation.router.routes.routes[0];\n      updateScreenDeeply(route, navigation.router.routes.initialRouteParams);\n    }\n  }\n\n  getScreenComponent(route) {\n    if (!route) return Promise.resolve();\n    return new Promise((resolve) => {\n      if (route.screen) {\n        resolve(route.screen);\n      } else if (route.getScreen) {\n        resolve(route.getScreen());\n      }\n    }).then((screen) => {\n      screen.guid = '__screen__' + uuid();\n      return screen;\n    });\n  }\n\n\n  triggerEventDeeply({navigation, route, options, eventName, usePrevState}) {\n    if (!route || !navigation || !eventName) return;\n\n    let state = usePrevState ? navigation.prevState : navigation.state;\n\n    if (!state) return;\n\n    if (route.routes) {\n      let _navigation = route.routes[0].navigation;\n      let _route = _.find(route.routes, (r) => {\n        return r.name === _navigation.state.routeName;\n      });\n      return this.triggerEventDeeply({navigation: _navigation, route: _route, options, eventName});\n    }\n\n    navigation._triggerEvent({\n      eventName,\n      routeName: state.routeName,\n      params: state.params,\n      ...options || {}\n    });\n  }\n\n  handleDidEvent(options) {\n    let {navigation} = this.props;\n    let {currentRoute, prevRoute} = navigation;\n\n    this.triggerEventDeeply({\n      navigation,\n      route: currentRoute,\n      options,\n      eventName: EVENT_DID_FOCUS,\n    });\n\n    if (prevRoute) {\n      this.triggerEventDeeply({\n        navigation,\n        route: prevRoute,\n        options,\n        eventName: EVENT_DID_BLUR,\n        usePrevState: true\n      });\n    }\n  }\n\n\n  handleWillEvent(options) {\n    let {navigation} = this.props;\n    let {currentRoute, prevRoute} = navigation;\n\n    this.triggerEventDeeply({\n      navigation,\n      route: currentRoute,\n      options,\n      eventName: EVENT_WILL_FOCUS\n    });\n    if (prevRoute) {\n      this.triggerEventDeeply({\n        navigation,\n        route: prevRoute,\n        options,\n        eventName: EVENT_WILL_BLUR,\n        usePrevState: true\n      });\n    }\n  }\n}\n\n\nfunction createNavigator({navigatorType, routerConfig, options = {}, NavigatorComponent}) {\n  let initialPath = getInitialPath(options);\n\n  let initialRoute = matchRouteByPath(routerConfig, initialPath);\n\n  let history = options.history || createHistory({\n    initialEntries: [initialPath],\n    mode: options.mode || 'hash'\n  });\n\n\n  let initialRouteName;\n  let initialRouteParams;\n  let initialRoutePath;\n\n  if (initialRoute && initialRoute.name) {\n    initialRouteName = initialRoute.name;\n    initialRouteParams = initialRoute.params;\n    initialRoutePath = initialRoute.path;\n  } else {\n    // if not matched\n    initialRouteName = options.initialRouteName || Object.keys(routerConfig)[0];\n    initialRouteParams = options.initialRouteParams || {};\n    initialRoutePath = urlFormat(routerConfig[initialRouteName].path, initialRouteParams);\n  }\n\n  let navigation = new Navigation({\n    routerConfig,\n    navigatorType,\n    history,\n    options,\n    initialRouteName,\n    initialRouteParams,\n    initialRoutePath\n  });\n\n\n  let router = createRouter({\n    routerConfig,\n    navigatorType,\n    history,\n    navigation,\n    initialRouteName,\n    initialRouteParams,\n    initialRoutePath\n  });\n\n  navigation.router = router;\n\n\n  class NavigatorContainer extends Component {\n    static routerConfig = routerConfig;\n\n    static navigatorType = navigatorType;\n\n    static initialRouteName = initialRouteName;\n\n    static initialRouteParams = initialRouteParams;\n\n    static navigation = navigation;\n\n    render() {\n      let props = {\n        routerConfig,\n        ...options,\n        navigation,\n        history\n      };\n\n      return <NavigatorComponent {...this.props} {...props} />;\n    }\n  }\n\n  return NavigatorContainer;\n}\n\nexport default BaseNavigator;\n\nexport {createNavigator};\n","'use strict';\nimport {createElement, PureComponent} from 'rax';\nimport View from 'rax-view';\nimport Text from 'rax-text';\nimport Image from 'rax-image';\n\nclass DefaultLoading extends PureComponent {\n  static defaultProps = {\n    loadingText: 'loading...',\n    loadingIconSource: '',\n    loadingIconStyle: {},\n    loadingTextStyle: {},\n    loadingWrapStyle: {}\n  }\n\n  render() {\n    let {loadingText, loadingIconSource, loadingIconStyle, loadingTextStyle, loadingWrapStyle} = this.props;\n\n    return (<View style={[styles.inner, loadingWrapStyle]}>\n      {loadingIconSource && <Image quality={'original'} style={[styles.pic, loadingIconStyle]} source={{uri: loadingIconSource}} />}\n      <Text style={[styles.txt, loadingTextStyle]}>{loadingText}</Text>\n    </View>);\n  }\n}\n\nclass Loading extends PureComponent {\n  state = {\n    isShow: false\n  }\n\n  static defaultProps = {\n    loadingComponent: DefaultLoading\n  }\n\n  shouldComponentUpdate(nextProps, nextState) {\n    return this.state.isShow !== nextState.isShow;\n  }\n\n  show() {\n    this.setState({\n      isShow: true\n    });\n  }\n\n  hide() {\n    this.setState({\n      isShow: false\n    });\n  }\n\n  render() {\n    let {isShow} = this.state;\n\n    return isShow && this.props.loadingComponent ? <View style={styles.container}>\n      <this.props.loadingComponent {...this.props} />\n    </View> : null;\n  }\n}\n\nconst styles = {\n  container: {\n    position: 'absolute',\n    top: 0,\n    left: 0,\n    bottom: 0,\n    right: 0,\n    // backgroundColor: 'rgba(0,0,0,.6)',\n    alignItems: 'center',\n    justifyContent: 'center'\n  },\n  inner: {\n    width: 250,\n    height: 200,\n    justifyContent: 'center',\n    alignItems: 'center',\n    backgroundColor: 'rgba(0,0,0,.75)',\n    borderRadius: 30\n  },\n  txt: {\n    fontSize: 28,\n    color: '#fff',\n    textAlign: 'center'\n  },\n  pic: {\n    width: 100,\n    height: 100,\n    quality: 'original'\n  }\n};\n\nexport default Loading;\n","import {createElement, Component} from 'rax';\nimport {matchRouteByName, noop} from './Util';\nimport {queryRoutes} from './Router';\nimport StackViewContainer from './StackViewContainer';\nimport BaseNavigator, {createNavigator} from './BaseNavigator';\nimport {TYPE_NAVIGATOR_STACK} from './Constant';\nimport Loading from './views/Loading';\n\n\nclass StackNavigatorComponent extends BaseNavigator {\n  navigatorType = TYPE_NAVIGATOR_STACK;\n\n  static defaultProps = {\n    initialRouteName: null,\n    initialRouteParams: {},\n    navigationOptions: ({navigation}) => ({\n      // Whether you can use gestures to dismiss this screen. Defaults to true on iOS, false on Android.\n      gesturesEnabled: true,\n      // Object to override the distance of touch start from the edge of the screen to recognize gestures\n      gestureResponseDistance: {\n        horizontal: 25,\n        vertical: 135\n      }\n    }),\n    headerMode: 'screen',\n    onTransitionStart: noop,\n    onTransitionEnd: noop,\n    transitionConfig: {\n      transitionProps: {},\n      prevTransitionProps: {},\n      isModal: true\n    }\n  }\n\n  getScreenComponent = (route) => {\n    return new Promise(resolve => {\n      // show loading\n      this.refs.loading.show();\n\n      return super.getScreenComponent(route).then(screen => {\n        // hide loading\n        this.refs.loading.hide();\n        resolve(screen);\n      });\n    });\n  }\n\n  updateScreen = (info = {}) => {\n    this.handleWillEvent(info);\n    let {name, action, params, options = {}, fullPath} = info;\n    let {routerConfig, navigation, history} = this.props;\n    let {location} = history;\n    let viewContainer = this.refs.viewContainer;\n    if (action === 'POP') {\n      if (options && options.direction === 'BACKWARD') {\n        if (viewContainer.canPop()) {\n          viewContainer.pop(() => {\n            this.handleDidEvent(info);\n          });\n        } else {\n          let routes = queryRoutes(navigation.router.routes, {path: location.pathname + location.search});\n          let route = routes[0];\n\n          if (route && viewContainer.canPush({name: route.name})) {\n            this.getScreenComponent(route).then((screen) => {\n              if (screen) {\n                // prepend a view before pop\n                viewContainer.prepend({\n                  screen,\n                  params: params,\n                  navigation,\n                  routeName: route.name,\n                  routePath: route.path,\n                  fullPath\n                });\n                viewContainer.pop(() => {\n                  this.handleDidEvent(info);\n                });\n              }\n            });\n          }\n        }\n      }\n    } else if (action === 'PUSH') {\n      let route = matchRouteByName(routerConfig, name);\n      if (route && route.name && viewContainer.canPush({name: route.name})) {\n        route && this.getScreenComponent(route).then((screen) => {\n          let view = {\n            screen,\n            params: params,\n            navigation,\n            routeName: route.name,\n            routePath: route.path,\n            fullPath\n          };\n          screen && viewContainer.push(view, () => {\n            this.handleDidEvent(info);\n          });\n        });\n      }\n    }\n  }\n\n  render() {\n    return [<StackViewContainer {...this.props} ref=\"viewContainer\" history={this.history} key={0} />,\n      <Loading ref=\"loading\" {...this.props} key={1} />];\n  }\n}\n\nfunction StackNavigator(routerConfig, options = {}) {\n  return createNavigator({\n    routerConfig,\n    options,\n    navigatorType: TYPE_NAVIGATOR_STACK,\n    NavigatorComponent: StackNavigatorComponent\n  });\n}\n\nexport default StackNavigator;\n","import {createElement, Component, PropTypes} from 'rax';\nimport View from 'rax-view';\nimport Text from 'rax-text';\nimport {noop} from '../Util';\nimport {HEIGHT_TAB_BAR_DEFAULT} from '../Constant';\n\n\nclass TabBar extends Component {\n  static defaultProps = {\n    afterSwitch: noop,\n    beforeSwitch: noop,\n    // Label and icon color of the active tab.\n    activeTintColor: 'rgb(12, 66, 253)',\n    // Background color of the active tab.\n    activeBackgroundColor: 'rgba(0,0,0,0)',\n    // Label and icon color of the inactive tab.\n    inactiveTintColor: '#888',\n    // Background color of the inactive tab\n    inactiveBackgroundColor: 'rgba(0,0,0,0)',\n    // Whether to show label for tab, default is true.\n    showLabel: true,\n    //   Style object for the tab bar.\n    style: {},\n    //   Style object for the tab label.\n    labelStyle: {},\n    // Style object for the tab.\n    tabStyle: {},\n    //   Whether label font should scale to respect Text Size accessibility settings, default is true.\n    allowFontScaling: true\n  }\n\n  static contextTypes = {\n    parentNavigation: PropTypes.Component\n  };\n\n  prevIndex = null;\n\n\n  state = {\n    // curIndex: 0\n  }\n\n  handleClick = ({name, index}) => {\n    if (index === this.prevIndex) return;\n\n    let {navigation, navigateMode} = this.props;\n    if (name && navigation) {\n      navigateMode === 'push' ? navigation.navigate(name) : navigation.replace(name);\n    }\n    this.switchTo(index, {type: 'click'});\n  }\n\n  switchTo = (index, options = {}) => {\n    let {afterSwitch, beforeSwitch} = this.props;\n\n    let params = {\n      index,\n      prevIndex: this.prevIndex,\n      options\n    };\n\n    beforeSwitch(params);\n\n    this.setState({\n      curIndex: index\n    });\n\n    afterSwitch(params);\n\n    this.prevIndex = index;\n  }\n\n\n  render() {\n    let curIndex = this.state.curIndex;\n    let {history, routerConfig, style, tabStyle, activeTintColor, activeBackgroundColor, inactiveTintColor, inactiveBackgroundColor, tabBarNavigationOptions = [], showLabel, labelStyle} = this.props;\n    return (<View style={[styles.tab, style]}>\n      {history ? Object.keys(routerConfig).map((name, i) => {\n        let isActive = i === curIndex;\n        let navigationOptions = tabBarNavigationOptions[i] || {};\n        let {tabBarLabel, title = name, tabBarIcon} = navigationOptions;\n        tabBarIcon = typeof tabBarIcon === 'function' ? tabBarIcon({tintColor: isActive ? activeTintColor : inactiveTintColor}) : tabBarIcon;\n        return (<View key={i}\n          onClick={() => this.handleClick({name, index: i, params: this.props.params})}\n          style={[styles.tabItem, {backgroundColor: isActive ? activeBackgroundColor : inactiveBackgroundColor}, tabStyle]}>\n          {tabBarIcon && tabBarIcon.type ?\n            <tabBarIcon.type {...tabBarIcon.props} style={[styles.tabBarIcon, tabBarIcon.props.style]} /> : null}\n          {showLabel ? <Text\n            style={[styles.tabItemTxt, {color: isActive ? activeTintColor : inactiveTintColor}, labelStyle]}>{tabBarLabel || title}</Text> : null}\n        </View>);\n      })\n        : null\n      }\n\n    </View>);\n  }\n}\n\nconst styles = {\n  tab: {\n    position: 'absolute',\n    width: 750,\n    height: HEIGHT_TAB_BAR_DEFAULT,\n    flexDirection: 'row',\n    backgroundColor: '#fefefe',\n    borderColor: '#ccc'\n  },\n  tabItem: {\n    height: HEIGHT_TAB_BAR_DEFAULT,\n    backgroundColor: 'rgba(0,0,0,0)',\n    textAlign: 'center',\n    flex: 1,\n    alignItems: 'center',\n    justifyContent: 'center'\n  },\n  tabItemTxt: {\n    textAlign: 'center',\n    color: '#ccc',\n    fontSize: 32\n  },\n  tabItemActive: {\n    backgroundColor: '#ccc'\n  },\n  tabBarIcon: {\n    width: 60,\n    height: 60\n  }\n};\n\n\nexport default TabBar;\n","import {createElement, PropTypes} from 'rax';\nimport View from 'rax-view';\nimport _ from 'simple-lodash';\nimport assign from 'object-assign';\nimport TabBar from './views/TabBar';\nimport {resolveFn, pick, filterStyle, isFunction} from './Util';\nimport {TabController, TabPanel} from 'rax-tab-panel';\nimport BaseViewContainer from './BaseViewContainer';\nimport StackHeader, {computeHeight} from './views/StackHeader';\nimport {HEIGHT_TAB_BAR_DEFAULT} from './Constant';\n\n\nconst inheritOptionKeys = ['headerLeft', 'headerRight', 'header', 'headerTitle', 'headerStyle'];\n\nconst styles = {\n  view: {\n    width: 750,\n    position: 'absolute',\n    top: 0,\n    bottom: 0,\n    backgroundColor: '#fff'\n  },\n  tabBarTop: {\n    top: 0,\n    borderBottomWidth: 1\n  },\n  tabBarBottom: {\n    bottom: 0,\n    borderTopWidth: 1\n  }\n};\n\nclass TabViewContainer extends BaseViewContainer {\n  state = {\n    curIndex: 0\n  }\n\n  parentNavigationTitle;\n\n  static contextTypes = {\n    parentNavigation: PropTypes.Component\n  };\n\n  static defaultProps = {\n    tabBarComponent: TabBar,\n    tabBarPosition: 'bottom',\n    configureTransition: {\n      currentTransitionProps: {},\n      nextTransitionProps: {}\n    },\n    animationEnabled: false,\n    swipeEnabled: false,\n    lazy: true,\n    tabBarOptions: null,\n    navigationOptions: null,\n    cardStyle: {\n      backgroundColor: '#E9E9EF'\n    }\n  }\n\n  beforeTabControllerSwitch = (e) => {\n    let {navigation, routerConfig, beforeTabControllerSwitch, navigateMode, onTransitionStart} = this.props;\n\n    this.setState({curIndex: e.index});\n\n    if (typeof onTransitionStart === 'function') {\n      onTransitionStart({\n        navigation,\n        index: e.index\n      });\n    }\n\n    isFunction(beforeTabControllerSwitch) && beforeTabControllerSwitch(e);\n    if (e.params.type === 'default' || e.params.type === 'historyChange' || e.prevIndex === e.index) return;\n    let routeName = Object.keys(routerConfig)[e.index];\n    if (e.prevIndex >= 0) {\n      navigateMode === 'push' ? navigation.navigate(routeName) : navigation.replace(routeName);\n    }\n  }\n\n  afterTabControllerSwitch = (e) => {\n    let {navigation, afterTabControllerSwitch, onTransitionEnd} = this.props;\n    isFunction(onTransitionEnd) && onTransitionEnd({\n      navigation,\n      index: e.index\n    });\n    isFunction(afterTabControllerSwitch) && afterTabControllerSwitch(e);\n  }\n\n  shouldComponentUpdate(nextProps, nextState) {\n    return nextProps.curIndex !== this.props.curIndex || nextState.curIndex !== this.state.curIndex;\n  }\n\n\n  componentWillReceiveProps(nextProps) {\n    if (nextProps.curIndex !== this.props.curIndex) {\n      // is init\n      let isFirstInit = this.props.curIndex === undefined;\n      setTimeout(() => {\n        this.refs.tabBar && this.refs.tabBar.switchTo(nextProps.curIndex, {\n          ...isFirstInit ? {duration: 0} : {},\n          type: 'historyChange'\n        });\n        this.refs.tabController.switchTo(nextProps.curIndex, {\n          ...isFirstInit ? {duration: 0} : {},\n          params: {type: 'historyChange', options: nextProps.options, isFirstInit},\n        });\n      }, 0);\n    }\n  }\n\n\n  render() {\n    let parentNavigation = this.context.parentNavigation;\n    let showStackHeader = false;\n    let headerMode = parentNavigation && parentNavigation.config.options && parentNavigation.config.options.headerMode || 'screen';\n    if (parentNavigation && parentNavigation.navigatorType === 'stack') {\n      if (headerMode) {\n        if (headerMode === 'screen' || headerMode === 'float') {\n          showStackHeader = true;\n        } else if (headerMode === 'none') {\n          showStackHeader = false;\n        }\n      }\n    }\n    let {screens, navigation, routerConfig, animationEnabled, swipeEnabled, tabBarOptions, tabBarPosition, tabBarComponent, cardStyle = {}} = this.props;\n    let {curIndex} = this.state;\n\n    let parentNavigationOptions = {};\n    if (parentNavigation && parentNavigation.config.options) {\n      parentNavigationOptions = pick(resolveFn(parentNavigation.config.options.navigationOptions, {navigation}), [...inheritOptionKeys, ...['title']]) || {};\n    }\n    if (!this.parentNavigationTitle && parentNavigation) {\n      // cache title\n      this.parentNavigationTitle = parentNavigationOptions.title || parentNavigation.state.routeName;\n    }\n    let tabBarHeight = tabBarOptions && tabBarOptions.style && tabBarOptions.style.height >= 0 ? tabBarOptions.style.height : HEIGHT_TAB_BAR_DEFAULT;\n\n    let options = {\n      tabBarComponent\n    };\n    let tabBarNavigationOptions = [];\n    let stackNavigationOptions = [];\n    Object.keys(routerConfig).map((routeName, i) => {\n      let view = _.find(screens, (o) => {\n        return o.name === routeName;\n      });\n\n      if (view && view.screen) {\n        let resolvedNavigationOptions = this.resolveNavigationOptions(view);\n        stackNavigationOptions[i] = pick(assign(parentNavigationOptions, resolvedNavigationOptions), inheritOptionKeys);\n        tabBarNavigationOptions[i] = resolvedNavigationOptions;\n      }\n    });\n\n\n    let tabBarProps = {\n      ...this.props,\n      style: {},\n      ...tabBarOptions,\n      ref: 'tabBar',\n      tabBarNavigationOptions\n    };\n    let curScreen = screens && screens[curIndex] || {};\n    let navigationOptions = stackNavigationOptions && stackNavigationOptions[curIndex] || {};\n\n    navigationOptions = {...navigationOptions, ...tabBarNavigationOptions[curIndex]};\n\n    if (tabBarNavigationOptions[curIndex] && tabBarNavigationOptions[curIndex].header === undefined) {\n      navigationOptions.header = undefined;\n    }\n\n    if (navigationOptions && navigationOptions.header === null) {\n      showStackHeader = false;\n    }\n\n    let {headerTransparent} = navigationOptions;\n\n    let {headerHeight, statusbarHeight} = computeHeight(navigationOptions);\n    return (<View style={[styles.view, filterStyle(this.props.style)]}>\n      {options.tabBarComponent && tabBarPosition === 'top' ?\n        <options.tabBarComponent {...tabBarProps} style={[styles.tabBarTop, {...tabBarProps.style}]} /> : null}\n      <TabController\n        ref=\"tabController\"\n        style={{\n          position: 'absolute',\n          width: 750,\n          top: (tabBarPosition === 'top' ? tabBarHeight : 0) + (showStackHeader && !headerTransparent ? headerHeight + statusbarHeight : 0),\n          bottom: tabBarPosition === 'bottom' ? tabBarHeight : 0\n        }}\n        isPanEnabled={swipeEnabled}\n        isSlideEnabled={animationEnabled}\n        beforeSwitch={this.beforeTabControllerSwitch}\n        afterSwitch={this.afterTabControllerSwitch}\n      >\n        {Object.keys(routerConfig).map((routeName, index) => {\n          let view = _.find(screens, (o) => {\n            return o.name === routeName;\n          });\n          return (<TabPanel style={cardStyle} key={index}>\n            {view && view.screen ?\n              <view.screen navigation={this.props.navigation} params={screen.params} /> : null}\n          </TabPanel>);\n        })}\n      </TabController>\n      {showStackHeader ?\n        <StackHeader\n          // title={curScreen.routeName}\n          // headerBackTitle={prevView && prevView.routeName}\n          {...navigationOptions}\n          title={navigationOptions.headerTitle || this.parentNavigationTitle}\n          headerMode={'screen'}\n          params={curScreen.params}\n          navigation={navigation}\n        /> : null}\n      {options.tabBarComponent && tabBarPosition === 'bottom' ?\n        <options.tabBarComponent {...tabBarProps} style={[styles.tabBarBottom, {...tabBarProps.style}]} /> : null}\n    </View>);\n  }\n}\n\nexport default TabViewContainer;\n","import {createElement, Component, PropTypes} from 'rax';\nimport View from 'rax-view';\nimport _ from 'simple-lodash';\nimport {matchRouteByName} from './Util';\nimport {TYPE_NAVIGATOR_TAB} from './Constant';\nimport BaseNavigator, {createNavigator} from './BaseNavigator';\nimport TabViewContainer from './TabViewContainer';\n\nconst styles = {\n  fullScreen: {\n    position: 'absolute',\n    top: 0,\n    bottom: 0,\n    width: 750\n  }\n};\n\n\nclass TabNavigatorComponent extends BaseNavigator {\n  static contextTypes = {\n    parentNavigator: PropTypes.Component\n  };\n\n  navigatorType = TYPE_NAVIGATOR_TAB;\n\n  state = {\n    screen: null,\n    screens: [],\n    curIndex: undefined,\n    options: {}\n  }\n\n\n  static defaultProps = {\n    initialRouteName: null,\n    initialRouteParams: {},\n    tabBarOptions: null,\n    navigationOptions: ({navigation}) => ({\n      // Object to override the distance of touch start from the edge of the screen to recognize gestures\n      gestureResponseDistance: {\n        horizontal: 25,\n        vertical: 135\n      }\n    }),\n  }\n\n\n  updateScreen = (options = {}) => {\n    // this.handleWillEvent(options);\n    let {name, action, params} = options;\n    let {routerConfig, navigation} = this.props;\n    let route = matchRouteByName(routerConfig, name);\n\n    if (!route) return;\n\n    this.getScreenComponent(route).then((screen) => {\n      if (screen) {\n        let routeNames = Object.keys(routerConfig);\n        let index = _.findIndex(routeNames, (routeName) => {\n          return routeName === route.name;\n        });\n        let screens = this.state.screens;\n\n        if (screens.length === 0) {\n          routeNames.forEach((routeName, i) => {\n            screens[i] = {};\n          });\n        }\n\n        screens[index] = {\n          name: route.name,\n          screen,\n          params: options.params || params, action,\n          navigation,\n          routeName: route.name,\n          routePath: route.path\n        };\n\n        this.setState({screens, curIndex: index, options});\n      }\n    });\n  }\n\n  beforeTabControllerSwitch = (e) => {\n    let {beforeTabControllerSwitch, navigation} = this.props;\n\n    if (e.params.options && !(e.params.isFirstInit && navigation.level > 0)) {\n      this.handleWillEvent(e.params.options);\n    }\n    beforeTabControllerSwitch && beforeTabControllerSwitch(e);\n  }\n\n  afterTabControllerSwitch = (e) => {\n    let {afterTabControllerSwitch, navigation} = this.props;\n    if (e.params.options && !(e.params.isFirstInit && navigation.level > 0)) {\n      this.handleDidEvent(e.params.options);\n    }\n    afterTabControllerSwitch && afterTabControllerSwitch(e);\n  }\n\n\n  render() {\n    let {props} = this;\n    return (<View style={[styles.fullScreen, {...props.style}]}>\n      <TabViewContainer {...props} ref=\"viewContainer\"\n        beforeTabControllerSwitch={this.beforeTabControllerSwitch}\n        afterTabControllerSwitch={this.afterTabControllerSwitch}\n        history={this.history}\n        screens={this.state.screens}\n        options={this.state.options}\n        curIndex={this.state.curIndex} />\n    </View>);\n  }\n}\n\n\nfunction TabNavigator(routerConfig, options = {}) {\n  return createNavigator({\n    routerConfig,\n    options,\n    navigatorType: TYPE_NAVIGATOR_TAB,\n    NavigatorComponent: TabNavigatorComponent\n  });\n}\n\n\nexport default TabNavigator;\n","/** @jsx createElement */\n\n'use strict';\n\nimport {createElement, Component, PropTypes} from 'rax';\nimport View from 'rax-view';\nimport {TabPanelView} from 'rax-tab-panel';\nimport {Detection, Event as Emitter} from './Util';\nimport {EVENT_CELL_PAN_START} from './Constant';\n\n\nclass PanView extends Component {\n  isPanning = false;\n\n  static contextTypes = {\n    isInATabPanel: PropTypes.bool\n  };\n\n  render() {\n    let props = {\n      ...this.props,\n      preventMoveEvent: true,\n      onClick: this.onCellClick\n    };\n    if (Detection.Android) {\n      props.onHorizontalPan = this.onHorizontalPan;\n    }\n\n    return this.context.isInATabPanel ? <TabPanelView {...props} /> : <View {...props} />;\n  }\n\n  onCellClick = (e) => {\n    const {onClick, onPress} = this.props;\n    if (this.isPanning) {\n      return;\n    }\n    if (typeof onClick === 'function') {\n      onClick(e);\n    } else if (typeof onPress === 'function') {\n      onPress(e);\n    }\n  }\n\n  onHorizontalPan = (e) => {\n    if (e.state === 'start') {\n      this.isPanning = true;\n      Emitter.emit(EVENT_CELL_PAN_START, {\n        element: this\n      });\n    } else if (e.state === 'end') {\n      setTimeout(() => {\n        this.isPanning = false;\n      }, 50);\n    }\n  }\n}\n\n\nexport default PanView;\n","import {createElement, Component, PropTypes} from 'rax';\nimport {noop} from './Util';\nimport {TabPanelView} from 'rax-tab-panel';\nimport PanView from './PanView';\n\n\nconst styles = {\n  link: {}\n};\n\n\nclass Link extends Component {\n  static contextTypes = {\n    isInATabPanel: PropTypes.bool,\n    navigation: PropTypes.Component\n  };\n\n  onClick = (e) => {\n    let {href, onClick = noop} = this.props;\n    let {navigation} = this.context;\n    onClick(e);\n    if (navigation && href) {\n      navigation.navigateByPath(href);\n    }\n  }\n\n  render() {\n    let props = {\n      style: [styles.link, {...this.props.style}],\n      onClick: this.onClick,\n      children: this.props.children\n    };\n    return this.context.isInATabPanel ? <TabPanelView {...props} /> : <PanView {...props} />;\n  }\n}\n\nexport default Link;\n","'use strict';\n\nimport StackNavigator from './StackNavigator';\nimport TabNavigator from './TabNavigator';\nimport Link from './Link';\nimport PanView from './PanView';\nimport NavigationActions from './NavigationActions';\nimport {createHistory} from './History';\nimport * as Util from './Util';\n\n\nexport {\n  StackNavigator,\n  TabNavigator,\n  Link,\n  PanView,\n  NavigationActions,\n  createHistory,\n  Util\n};\n\n"],"sourceRoot":""}