{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/ssr-window/dist/ssr-window.esm.js","webpack:///./node_modules/framework7/utils/device.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/framework7/utils/support.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/template7/dist/template7.esm.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/construct.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/dom7/dist/dom7.module.js","webpack:///./node_modules/framework7/utils/utils.js","webpack:///./node_modules/framework7/utils/events-class.js","webpack:///./node_modules/framework7/utils/class.js","webpack:///./node_modules/framework7/utils/constructor-methods.js","webpack:///./node_modules/framework7/utils/modal-methods.js","webpack:///./node_modules/framework7/components/app/load-module.js","webpack:///./node_modules/framework7/components/app/app-class.js","webpack:///./node_modules/framework7/utils/request.js","webpack:///./node_modules/framework7/modules/device/device.js","webpack:///./node_modules/framework7/modules/support/support.js","webpack:///./node_modules/framework7/modules/utils/utils.js","webpack:///./node_modules/framework7/modules/resize/resize.js","webpack:///./node_modules/framework7/modules/request/request.js","webpack:///./node_modules/framework7/modules/touch/touch.js","webpack:///./node_modules/path-to-regexp/dist.es2015/index.js","webpack:///./node_modules/framework7/utils/history.js","webpack:///./node_modules/framework7/modules/router/swipe-back.js","webpack:///./node_modules/framework7/modules/router/redirect.js","webpack:///./node_modules/framework7/modules/router/process-route-queue.js","webpack:///./node_modules/framework7/modules/router/app-router-check.js","webpack:///./node_modules/framework7/modules/router/async-component.js","webpack:///./node_modules/framework7/modules/router/router-class.js","webpack:///./node_modules/framework7/modules/router/navigate.js","webpack:///./node_modules/framework7/modules/router/tab.js","webpack:///./node_modules/framework7/modules/router/modal.js","webpack:///./node_modules/framework7/modules/router/back.js","webpack:///./node_modules/framework7/modules/router/clear-previous-history.js","webpack:///./node_modules/framework7/modules/router/router.js","webpack:///./node_modules/framework7/components/view/resizable-view.js","webpack:///./node_modules/framework7/components/view/view-class.js","webpack:///./node_modules/framework7/modules/clicks/clicks.js","webpack:///./node_modules/framework7/modules/router/template-loader.js","webpack:///./node_modules/framework7/modules/router/component-loader.js","webpack:///../src/vnode.ts","webpack:///../src/is.ts","webpack:///../src/h.ts","webpack:///./node_modules/framework7/modules/component/vdom.js","webpack:///./node_modules/framework7/modules/component/custom-components.js","webpack:///../src/htmldomapi.ts","webpack:///../src/snabbdom.ts","webpack:///../../src/modules/attributes.ts","webpack:///../../src/modules/props.ts","webpack:///../../src/modules/style.ts","webpack:///./node_modules/framework7/modules/component/eventslisteners.js","webpack:///./node_modules/framework7/modules/component/patch.js","webpack:///./node_modules/framework7/modules/component/component-mixins.js","webpack:///./node_modules/framework7/modules/component/component-class.js","webpack:///./node_modules/framework7/modules/component/parse-component.js","webpack:///./node_modules/framework7/modules/component/component.js","webpack:///./node_modules/framework7/modules/history/history.js","webpack:///./node_modules/framework7/modules/service-worker/service-worker.js","webpack:///./node_modules/framework7/components/statusbar/statusbar.js","webpack:///./node_modules/framework7/components/view/view.js","webpack:///./node_modules/framework7/components/navbar/navbar.js","webpack:///./node_modules/framework7/components/toolbar/toolbar.js","webpack:///./node_modules/framework7/components/touch-ripple/touch-ripple-class.js","webpack:///./node_modules/framework7/components/touch-ripple/touch-ripple.js","webpack:///./node_modules/framework7/components/modal/modal-class.js","webpack:///./node_modules/framework7/components/modal/custom-modal-class.js","webpack:///./node_modules/framework7/components/modal/modal.js","webpack:///./node_modules/framework7/framework7.esm.js","webpack:///./node_modules/framework7/components/subnavbar/subnavbar.js","webpack:///./node_modules/framework7/components/dialog/dialog-class.js","webpack:///./node_modules/framework7/components/dialog/dialog.js","webpack:///./node_modules/framework7/components/popover/popover-class.js","webpack:///./node_modules/framework7/components/popover/popover.js","webpack:///./node_modules/framework7/components/actions/actions-class.js","webpack:///./node_modules/framework7/components/actions/actions.js","webpack:///./node_modules/framework7/components/accordion/accordion.js","webpack:///./node_modules/framework7/components/list-index/list-index-class.js","webpack:///./node_modules/framework7/components/list-index/list-index.js","webpack:///./node_modules/framework7/components/searchbar/searchbar-class.js","webpack:///./node_modules/framework7/components/searchbar/searchbar.js","webpack:///./src/js/framework7-custom.js","webpack:///./node_modules/framework7/components/appbar/appbar.js","webpack:///./node_modules/framework7/components/elevation/elevation.js","webpack:///./node_modules/framework7/components/typography/typography.js","webpack:///./src/pages/home.f7.html","webpack:///./src/js/app.js","webpack:///./src/app.f7.html","webpack:///./src/js/routes.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","doc","document","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","location","hash","win","window","navigator","userAgent","history","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","Device","platform","ua","device","ios","android","androidChrome","desktop","iphone","ipod","ipad","edge","ie","firefox","macos","windows","cordova","phonegap","electron","nwjs","screenWidth","width","screenHeight","height","match","indexOf","toLowerCase","nw","process","versions","Support","touch","os","osVersion","replace","split","webView","standalone","matchMedia","matches","webview","pixelRatio","devicePixelRatio","prefersColorScheme","theme","_typeof","assertThisInitialized","self","maxTouchPoints","DocumentTouch","pointerEvents","PointerEvent","observer","passiveListener","supportsPassive","opts","e","gestures","intersectionObserver","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","instance","Constructor","TypeError","_defineProperties","target","props","length","descriptor","configurable","writable","protoProps","staticProps","ReferenceError","subClass","superClass","constructor","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","arr","obj","t7ctx","global","undefined","Template7Context","Template7Utils","quoteSingleRexExp","RegExp","quoteDoubleRexExp","isFunction","func","escape","string","helperToSlices","shiftIndex","j","helperParts","trim","slices","part","blockQuoteRegExp","openingQuote","push","hashParts","hashName","hashContent","stringToBlocks","blocks","stringBlocks","block","type","content","contextName","helperSlices","helperName","isPartial","helperContext","helperHash","slice","Array","isArray","helperContent","elseContent","toSkip","foundClosed","foundElse","depth","inverseContent","parseJsVariable","expression","reduce","JSON","stringify","variable","forEach","partName","join","parseJsParents","parents","levelsUp","getCompileVar","ctx","parts","newDepth","data","dataLevel","Number","isFinite","getCompiledArguments","contextArray","test","Template7Helpers","_partial","partialName","options","Template7Class","partials","template","compiled","compile","keys","root","context","Error","if","fn","inverse","unless","each","ret","reverse","first","last","index","with","delimiter","delimeter","js","execute","prop","re1","re2","Template7","eval","js_if","condition","js_compare","Template7Options","Template7Partials","getCompileFn","getCompileInverse","resultString","compiledArguments","level","parentsString","dynamicHelper","args","rendered","registerHelper","helpers","unregisterHelper","registerPartial","unregisterPartial","iterator","isNativeReflectConstruct","_construct","Parent","Class","Reflect","construct","a","apply","Function","arguments","_setPrototypeOf","len","arr2","arrayLikeToArray","minLen","toString","from","arrayWithHoles","iterableToArrayLimit","nonIterableRest","g","iter","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","marker","runClearTimeout","Item","array","noop","nextTick","title","browser","env","argv","version","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","sham","Proxy","_arr","_n","_d","_e","_s","_i","next","done","err","Dom7","$","selector","els","tempParent","html","toCreate","innerHTML","nodeType","unique","uniqueArray","requestAnimationFrame","callback","webkitRequestAnimationFrame","Methods","freeze","addClass","className","classes","classList","add","removeClass","remove","hasClass","contains","toggleClass","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","propName","el","dom7ElementDataStorage","dataKey","removeData","dataset","attributes","group1","toUpperCase","parseFloat","val","multiple","selected","values","selectedOptions","transform","elStyle","webkitTransform","transition","duration","webkitTransitionDuration","transitionDuration","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","k","handleEvent","events","event","dom7LiveListeners","proxyListener","dom7Listeners","handlers","handler","dom7proxy","splice","dom","eventName","onceHandler","eventArgs","trigger","evt","detail","bubbles","cancelable","filter","dataIndex","dispatchEvent","transitionEnd","fireCallBack","animationEnd","innerWidth","css","outerWidth","includeMargins","styles","offsetWidth","innerHeight","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","hide","display","show","toArray","matchedItems","map","modifiedItems","text","textContent","compareWith","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","appendTo","parent","prepend","insertBefore","prependTo","before","parentNode","cloneNode","insertAfter","after","nextSibling","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","siblings","closest","find","foundElements","found","removeChild","detach","toAdd","empty","Scroll","scrollTo","easing","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","scrollHeight","Math","max","min","scrollWidth","startTime","render","time","getTime","progress","easeProgress","cos","PI","Animate","animate","initialProps","initialParams","animateInstance","assign","params","elements","animating","que","easingProgress","stop","id","frameId","cancelAnimationFrame","webkitCancelAnimationFrame","dom7AnimateInstance","complete","shift","initialFullValue","initialValue","unit","finalValue","finalFullValue","container","currentValue","elementsDone","propsDone","began","begin","element","noTrigger","eventShortcut","click","focus","focusin","focusout","keyup","keydown","keypress","submit","change","mousedown","mousemove","mouseup","mouseenter","mouseleave","mouseout","mouseover","touchstart","touchend","touchmove","resize","scroll","group","methodName","defaultDiacriticsRemovalap","base","letters","diacriticsMap","uniqueNumber","Utils","mask","floor","random","mdPreloaderContent","iosPreloaderContent","auroraPreloaderContent","eventNameToColonCase","hasColon","char","deleteProps","delay","nextFrame","now","removeDiacritics","str","parseUrlQuery","url","param","query","urlToParse","href","paramsPart","decodeURIComponent","getTranslate","matrix","curTransform","transformMatrix","axis","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","serializeObject","newParents","resultArray","separator","varName","parentParts","encodeURIComponent","varValue","toPush","String","isObject","merge","to","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","extend","deep","colorHexToRgb","hex","h","b","result","exec","parseInt","colorRgbToHex","colorRgbToHsl","abs","colorHslToRgb","rgb1","hp","x","isNaN","round","colorHsbToHsl","HSL","HSB","colorHslToHsb","colorThemeCSSProperties","rgb","hsl","hslShade","hslTint","shade","tint","EventsClass","eventsParents","eventsListeners","priority","method","f7proxy","eventHandler","local","eventsArray","localEvents","parentEvents","eventsParent","Framework7Class","instanceParams","originalParams","paramKey","moduleName","moduleParams","modulePropName","moduleProp","moduleEventName","vnode","vnodeHooks","vnodeId","hookName","modulesParams","useModule","proto","static","install","installModule","components","use","parameters","defaultSelector","domProp","app","addMethods","methods","$el","destroy","ConstructorMethods","open","targetEl","$targetPage","modalEl","$modalEl","f7Modal","close","$parentEl","$targetEl","fetchedModules","loadModule","moduleToLoad","Framework7","Promise","resolve","reject","modulePath","moduleObj","moduleFunc","matchNamePattern","lazyModulesPath","scriptLoad","resolveScript","rejectScript","request","scriptContent","callbackLoadName","scriptEl","componentLoader","xhr","status","styleLoad","resolveStyle","rtl","styleContent","styleEl","all","then","catch","useModuleParams","passedParams","defaults","language","routes","initOnDeviceReady","init","autoDarkTheme","iosTranslucentBars","iosTranslucentModals","component","componentUrl","useModulesParams","$rootEl","online","onLine","f7","useModules","initData","DARK","LIGHT","mq","dark","light","colorSchemeListener","media","darkTheme","router","componentOptions","rootComponent","f7Component","initialized","enableAutoDarkTheme","initAppComponent","_init","loadModules","hook","ModalMethods","globals","jsonpRequests","Request","requestOptions","globalsNoCallbacks","callbackName","async","cache","user","password","headers","xhrFields","statusCode","processData","dataType","contentType","fireCallback","globalCallbackValue","optionCallbackValue","stringData","paramsPrefix","abortTimeout","callbackSplit","requestUrl","addVars","script","onerror","src","XMLHttpRequest","requestParameters","postData","ArrayBuffer","Blob","Document","FormData","boundary","setRequestHeader","newData","Accept","headerName","crossDomain","$2","host","onload","responseData","parseError","parse","responseText","responseType","response","statusText","ontimeout","send","RequestShortcut","success","error","RequestShortcutPromise","message","post","json","getJSON","postJSON","promise","setup","classNames","metaStatusbar","support","utils","getSize","orientationchange","touchClicksDistanceThreshold","disableContextMenu","tapHold","tapHoldDelay","tapHoldPreventClicks","activeState","activeStateElements","activeStateOnMouseMove","mdTouchRipple","iosTouchRipple","auroraTouchRipple","touchRippleElements","touchEvents","start","move","end","touchStartX","touchStartY","targetElement","isMoved","tapHoldFired","tapHoldTimeout","preventClick","activableElement","activeTimeout","rippleWave","rippleTarget","rippleTimeout","useRipple","findActivableElement","activable","preventPropagation","newActivable","isInsideScrollableView","addActive","removeActive","createRipple","y","touchRipple","removeRipple","rippleTouchStart","rippleElements","rippleParent","findRippleElement","rippleTouchMove","rippleTouchEnd","handleMouseUp","emitAppTouchEvent","appTouchStartActive","appTouchMoveActive","appTouchEndActive","appTouchStartPassive","appTouchMovePassive","appTouchEndPassive","appGestureActive","appGesturePassive","passive","passiveListenerCapture","activeListener","activeListenerCapture","isOverswipe","localPreventClick","stopImmediatePropagation","stopPropagation","preventDefault","targetTouches","touches","pageX","pageY","distance","$activableEl","which","tokens","count","pattern","code","charCodeAt","lexer","_a","prefixes","defaultPattern","escapeString","path","tryConsume","mustConsume","nextType","consumeText","prefix","suffix","modifier","name_1","pattern_1","reFlags","flags","encode","_b","validate","token","optional","repeat","segment","typeOfMessage","tokensToFunction","sensitive","stringToRegexp","strict","_c","endsWith","route","tokens_1","mod","endToken","isEndDelimited","tokensToRegexp","pathToRegexp","groups","source","regexpToRegexp","paths","arrayToRegexp","History","clearQueue","routerQueue","clearRouterQueue","pop","stateUrl","action","pushStateAnimate","back","pushState","navigate","handle","blockPopstate","state","previousState","allowChange","views","view","viewState","allowPageChange","initViewState","viewId","newState","replaceState","go","readyState","SwipeBack","isScrolling","viewContainerWidth","touchesDiff","touchStartTime","dynamicNavbar","$pageShadowEl","$pageOpacityEl","animatableNavEls","$navbarsEl","isTouched","touchesStart","$currentPageEl","$previousPageEl","allowViewTouchMove","$currentNavbarEl","$previousNavbarEl","paramsSwipeBackAnimateShadow","paramsSwipeBackAnimateOpacity","paramsSwipeBackActiveArea","paramsSwipeBackThreshold","transformOrigin","transformOriginTitleLarge","setAnimatableNavElements","reset","classNameSet","styleProp","handleTouchStart","swipeBackEnabled","swipeout","masterDetailBreakpoint","handleTouchMove","f7PreventSwipeBack","preventSwipeBack","cancel","activeNavBackIconText","previousNavBackIconText","inverter","currentNavIsTransparent","currentNavIsLarge","currentNavIsCollapsed","currentNavIsLargeTransparent","previousNavIsTransparent","previousNavIsLarge","previousNavIsCollapsed","previousNavIsLargeTransparent","fromLarge","toLarge","$currentNavElements","$previousNavElements","iosAnimateNavbarBackIcon","f7NavbarLeftOffset","navEl","$navEl","isSubnavbar","isLeft","isTitle","isBg","overflow","subIndex","subNavEl","opacity","isSliding","transformTarget","textEl","activeNavTranslate","f7NavbarRightOffset","previousNavTranslate","animatableNavElements","sheet","f7PreventSwipePanel","preventSwipePanelBySwipeBack","percentage","callbackData","currentPageEl","previousPageEl","currentNavbarEl","previousNavbarEl","currentPageTranslate","previousPageTranslate","swipeBackActive","handleTouchEnd","timeDiff","pageChanged","setNavbarPosition","currentRoute","f7Page","currentPage","pageCallback","swipeBack","saveHistory","stackPages","initialPages","removePage","removeNavbar","previousRoute","preloadPreviousPage","preload","direction","redirect","initial","redirectUrl","redirectOptions","processQueue","routeQueue","enterNextRoute","routesBeforeEnter","beforeEnter","routesBeforeLeave","beforeLeave","asyncComponent","resolvePromise","componentPromise","default","_default","asyncComponentResult","Router","isAppRouter","navbarsEl","scrollHistory","iosDynamicNavbar","initialNavbars","tempDom","set","newRoute","$newNavbarEl","$oldNavbarEl","newNavEls","oldNavEls","animateIcon","animatableNavEl","$navbarInner","isIconLabel","needsOpacityTransition","$iconEl","leftOffset","rightOffset","navEls","otherEls","otherNavEl","iconTextEl","offsetLeft","$oldPageEl","$newPageEl","animateCustom","routerCustomTransitionClass","oldIsLarge","newIsLarge","routerTransitionClass","animateNavbars","setProperty","removeEl","tabEl","keepAlive","tabIndex","tabChild","$destroy","removeElements","removeElementsWithTimeout","removeElementsTimeout","findElement","stringSelector","notStacked","$container","viewMainClass","flattenedRoutes","hasTabRoutes","tabs","mergedPathsRoutes","tabRoute","tRoute","parentPath","tab","flattenRoutes","detailRoutes","detailRoute","dRoute","masterRoute","masterRoutePath","childRoute","cRoute","findRouteByKey","constructRouteUrl","toUrl","foundTabRoute","$tabEl","tabId","matchingRoute","parseRouteUrl","matched","pathsToMatch","alias","aliasPath","pathToMatch","keyObj","paramValue","compiledUrl","paramName","regExp","xhrCache","ignoreCache","hasQuery","passRouteQueryToRequest","passRouteParamsToRequest","replaceRequestUrlParams","xhrCacheIgnoreGetParameters","xhrCacheIgnore","cachedUrl","xhrCacheDuration","beforeSend","removeFromXhrCache","position","ariaHidden","toRemove","pageEl","navbarEl","pageFrom","pageFromEl","$pageEl","$navbarEl","fromPage","$pageFromEl","page","restoreScrollTopOnBack","camelName","colonName","getPageData","attachEvents","$pageContent","pageContentIndex","pageContentEl","f7PageInitialized","detachEvents","f7RouteEventsAttached","f7RouteEventsOn","f7RouteEventsOnce","localStorage","newUrl","appRouterCheck","pushStateRoot","pushStateSeparator","iosSwipeBack","mdSwipeBack","auroraSwipeBack","historyRestored","initUrl","documentUrl","origin","pushStateOnLoad","pushStateAnimateOnLoad","pathname","console","warn","restoreHistory","search","findMatchingRoute","loadInitialPage","reloadCurrent","hasTabRoute","setPagePosition","master","role","checkMasterDetailBreakpoint","initOptions","removeThemeElements","tabLoad","pageAfterIn","routerProp","forward","masterPageEl","otherDetailPageEl","modalType","forwardOptions","reloadPages","reloadPrevious","reloadAll","clearPreviousHistory","reloadDetail","masterDetailEnabled","isMaster","currentRouteIsModal","modal","modalLoadProp","modalToClose","modalInstance","previousUrl","modalRemove","$oldPage","$viewEl","$newPage","reload","keepAliveData","$navbarsInView","isDetail","isDetailRoot","$pagesInView","pageInView","navbarInView","newPagePosition","detailRoot","navbar","getElByPage","removedPageEls","removedNavbarEls","oldNavbarEl","pageIndex","navbarIndex","newPageInDom","$mount","componentEl","f7PageMounted","$oldNavbarElEl","afterAnimation","keepOldPage","setPositionClasses","f7PageTransition","load","loadParams","loadOptions","ignorePageChange","pageName","templateUrl","sameParams","allowDuplicateUrls","newOptions","getPageEl","pageTemplateLoader","pageComponentLoader","abort","xhrRequest","pageContent","navigateParams","createRoute","navigateOptions","generateUrl","navigateUrl","currentPath","viewName","anotherViewName","anotherView","routerLoaded","asyncResolve","resolveParams","resolveOptions","resolvedAsModal","modalRoute","modalLoad","asyncReject","pageLoadProp","preloadMaster","masterLoaded","processRouteQueue","refreshPage","parentPageEl","$parentPageEl","hasContentLoadProp","tabShowResult","$newTabEl","$oldTabEl","animated","onTabsChanged","tabParentPageData","onTabLoaded","contentEl","tabEventTarget","unloadTabContent","tabRemove","f7RouterTabLoaded","loadTab","loadTabParams","loadTabOptions","tabTemplateLoader","tabComponentLoader","tabContent","tabLoadProp","hasTabComponentChild","removeTabContent","foundLoadProp","isPanel","modalOrPanel","modalParams","onModalLoaded","hasEl","closeOnSwipeBack","closeByRouter","modalComponent","removeModal","loadModal","loadModalParams","loadModalOptions","modalTemplateLoader","modalComponentLoader","modalContent","backward","backwardOptions","masterPageRemoved","backIndex","currentIsMaster","force","pageToRemove","$navbarToRemove","$pageToRemove","insertPage","$previousPages","loadBack","backParams","backOptions","prevOpenedModals","forceOtherUrl","isBrokenPushState","needHistoryBack","skipMaster","$previousPage","$previousMaster","expectedPreviousPageUrl","expectedPreviousPageRoute","previousPageRoute","backForceLoaded","panel","clearPreviousPages","templates","resizableView","resizableInitialized","resizable","resizableWidth","$htmlEl","$resizeHandlerEl","minWidth","maxWidth","handleResize","transformCSSWidth","v","newV","$pageMasterEl","newWidth","View","appInstance","viewParams","routesAdd","main","f7View","viewProp","wasMasterDetail","isMasterDetail","masterDetailResizable","initMasterDetail","clicks","externalLinks","$clickedEl","$clickedLinkEl","isLink","InAppBrowser","moduleClicks","preventF7Router","clickSelector","matchingClickedElement","clickedLinkData","current","linksView","ViewClass","f7RouteProps","initClicks","templateLoader","compiledHtml","$app","$root","$route","$f7route","$router","$f7router","$theme","md","aurora","templateContent","cachedComponent","extendContext","createdComponent","componentCache","cached","loadedComponent","parsedComponent","rootEl","routerEl","tempDomTBODY","tempDomTROW","selfClosing","propsAttrs","booleanProps","tempDomDIV","toCamelCase","word","substr","contextFromAttrs","getHooks","isRoot","tagName","hooks","insert","update","postpatch","isFakeElement","isCustomComponent","customComponents","sel","elm","$props","__component__","createCustomComponent","destroyCustomComponent","oldVnode","newProps","$children","$update","updateCustomComponent","class","getVnodeHooks","vn","$options","updated","$hook","f","getData","attrValue","prevent","eventNamePart","eventNameIndex","handlerString","fired","customArgs","needMethodBind","pathIndex","handlerArguments","argument","arg","deepArg","getEventHandler","$id","$style","$styleScoped","prepatch","getChildren","nodes","elementToVNode","SVGElement","slotEl","slotName","slots","childEl","childSlotName","slot","getSlots","htmlTrim","invokeHandler","updateEvents","oldOn","oldListener","oldElm","patch","oldEndVnode","attributesModule","propsModule","Component","$$","$dom7","$f7","isClassComponent","$mixins","mixins","$isRootComponent","mixin","componentMixins","childVNode","$onRootUpdated","deleteProperty","has","styleScoped","__updateQueue","datas","dt","$render","$vnode","vdom","$styleEl","$attachEvents","$detachEventsHandlers","__requestAnimationFrameId","__updateIsPending","newVNode","resolvers","resolver","$startUpdateQueue","mergeState","mountMethod","$detachEvents","promises","parseComponent","componentString","callbackCreateName","callbackRenderName","hasTemplate","templateType","item","rules","rule","scripts","templateFunction","renderContent","registerComponentMixin","registerComponent","SW","registrations","register","scope","serviceWorker","reg","unregister","registration","Statusbar","StatusBar","onClick","setTextColor","color","styleLightContent","styleDefault","setBackgroundColor","backgroundColorByHexString","isVisible","overlaysWebView","overlays","statusbar","enabled","scrollTopOnClick","iosOverlaysWebView","iosTextColor","androidOverlaysWebView","androidTextColor","iosBackgroundColor","androidBackgroundColor","iosSwipeBackAnimateShadow","iosSwipeBackAnimateOpacity","iosSwipeBackActiveArea","iosSwipeBackThreshold","mdSwipeBackAnimateShadow","mdSwipeBackAnimateOpacity","mdSwipeBackActiveArea","mdSwipeBackThreshold","auroraSwipeBackAnimateShadow","auroraSwipeBackAnimateOpacity","auroraSwipeBackActiveArea","auroraSwipeBackThreshold","iosPageLoadDelay","mdPageLoadDelay","auroraPageLoadDelay","viewEl","$popoverView","$popupView","$panelView","$viewsEl","getCurrentView","modalOpen","modalBeforeDestroy","Navbar","size","$innerEl","needCenterTitle","needLeftTitle","iosCenterTitle","currLeft","diff","right","subnavbar","noLeft","noRight","leftWidth","rightWidth","titleWidth","navbarStyles","navbarInnerWidth","paddingLeft","paddingRight","isPrevious","sliding","requiredLeft","titleLeftOffset","titleRightOffset","activeNavbarBackLink","titleLeft","hideStatusbar","isDynamic","currentIsLarge","subEl","pageData","getPageByEl","collapseLargeTitle","expandLargeTitle","toggleLargeTitle","initNavbarOnScroll","needHide","needCollapse","needTransparent","previousScrollTop","currentScrollTop","reachEnd","navbarHidden","navbarCollapsed","navbarTitleLargeHeight","navbarOffsetHeight","scrollChanged","scrollContent","scrollTimeoutId","touchEndTimeoutId","$titleLargeEl","isLarge","navbarHideHeight","snapPageScrollToLargeTitle","snapPageScrollToTransparentNavbar","snapLargeNavbar","snapTransparentNavbar","previousCollapseProgress","collapseProgress","handleScroll","isLargeTransparent","previousCollapseWasInMiddle","handleLargeNavbarCollapse","isHidden","notTransparent","handleNavbarTransparent","showOnPageScrollEnd","showOnPageScrollTop","handeTouchStart","f7DetachNavbarScrollHandlers","scrollTopOnTitleClick","mdCenterTitle","auroraCenterTitle","hideOnPageScroll","collapseLargeTitleOnScroll","pageBeforeRemove","pageBeforeIn","pageReinit","pageInit","needCollapseOnScrollHandler","needTransparentOnScroll","needHideOnScrollHandler","tabShow","$pageContentEl","Toolbar","setHighlight","tabbarEl","$tabbarEl","$highlightEl","tabLinksCount","highlightWidth","highlightTranslate","$activeLink","activeIndex","toolbar","initToolbarOnScroll","toolbarHidden","$toolbarEl","f7ScrollToolbarHandler","tabbar","TouchRipple","ripple","center","diameter","$rippleWaveEl","rippleTransform","removing","removeTimeout","openedModals","dialogsQueue","Modal","opened","animateModal","pushToQueue","$backdropEl","queueDialogs","openedModal","$modalParentEl","wasInDom","onClosed","onOpened","moveToRoot","_clientLeft","onOpen","needToHideBackdrop","popupEl","popupInstance","closeByBackdropClick","backdrop","backdropEl","onClose","destroyed","CustomModal","extendedParams","customModal","handleClick","RouterTemplateLoaderModule","RouterComponentLoaderModule","DeviceModule","SupportModule","UtilsModule","ResizeModule","RequestModule","TouchModule","ClicksModule","RouterModule","HistoryModule","ComponentModule","ServiceWorkerModule","Dialog","dialog","buttons","verticalButtons","cssClass","destroyOnClose","addKeyboardHander","dialogClasses","buttonsHTML","button","bold","dialogHtml","buttonOnClick","onKeyDown","keyCode","keyCodes","buttonEl","setProgress","progressbar","setText","newText","$textEl","setTitle","newTitle","$titleEl","buttonOk","buttonCancel","usernamePlaceholder","passwordPlaceholder","preloaderTitle","progressTitle","destroyPredefinedDialogs","keyboardActions","autoFocus","defaultDialogTitle","autoFocusHandler","alert","callbackOk","prompt","callbackCancel","defaultValue","inputValue","confirm","login","username","preloader","preloaderInner","infinite","Popover","popover","elIndex","node","$angleEl","originalOpen","$target","Keyboard","plugins","closeByOutsideClick","closeOnEscape","angleEl","targetX","targetY","angleLeft","angleTop","targetWidth","targetHeight","targetOffsetLeft","targetOffsetTop","angleSize","safeAreaTop","targetOffset","targetParentPage","hPosition","popoverEl","$popoverEl","Actions","actions","convertToPopover","popoverHtml","renderPopover","actionsHtml","originalClose","buttonIndex","groupIndex","$buttonEl","forceToPopover","closed","grid","buttonClasses","label","bg","disabled","icon","itemClasses","Accordion","toggleClicked","$accordionItemEl","$accordionContent","accordion","prevented","$list","$contentEl","$openedItem","ListIndex","$listEl","$ul","listEl","indexes","iosItemHeight","mdItemHeight","auroraItemHeight","scrollList","renderItem","itemContent","itemIndex","renderSkipPlaceholder","f7ListIndex","calcSize","$clickedLi","skipRate","scrollListToIndex","ul","topPoint","bottomPoint","$labelEl","previousIndex","ulHeight","bubbleBottom","$scrollToEl","parentTop","paddingTop","scrollToElTop","navbarInnerEl","wasSkipped","itemHtml","itemHeight","maxItems","items","ceil","elContent","calcIndexes","listIndex","tabMounted","listIndexEl","tabBeforeRemove","Searchbar","sb","inputEl","inputEvents","disableButton","disableButtonEl","searchContainer","searchItem","searchIn","searchGroup","searchGroupTitle","ignore","foundEl","notFoundEl","hideOnEnableEl","hideOnSearchEl","customSearch","hideDividers","hideGroups","disableOnBackdropClick","expandable","inline","f7Searchbar","$foundEl","$notFoundEl","$hideOnEnableEl","$hideOnSearchEl","$searchContainer","$inputEl","$disableButtonEl","preventSubmit","onInputFocus","enable","onInputBlur","disable","onInputChange","isVirtualList","onInputClear","previousValue","disableOnClick","onPageBeforeOut","onPageBeforeIn","disableButtonHasMargin","previousQuery","virtualList","setFocus","backdropShow","setDisableButtonMargin","needsFocus","backdropHide","internal","vlQuery","foundItems","f7VirtualList","resetFilter","searchAll","searchByItem","itemEl","$itemEl","compareWithText","$searchIn","searchInIndex","searchInEl","itemText","wordsMatch","titleIndex","titleEl","$nextElements","$nextEl","groupEl","$groupEl","filterItems","FrameworkClass","searchbar","searchbarEl","$searchbarEl","clear","foo","doSomething","ctx_1","data_1","stationList","age","like","_stationList","geolocation","getCurrentPosition","coords","longitude","latitude","sortedArray","sortByLoc","$setState","positions","pws_CoordinateX","calculateDistance","pws_CoordinateY","sort","lat1","lon1","lat2","lon2","radlat1","radlat2","theta","radtheta","dist","sin","acos","pageMounted","log","_this","InstallStation","ctx_2","data_2","HebrewName","skills","ctx_3","data_3","pws_CityIdName","pws_Address","pws_Telephone1"],"mappings":"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","file":"js/app.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 = 30);\n","/**\n * SSR Window 1.0.1\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2018, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: July 18, 2018\n */\nvar doc = (typeof document === 'undefined') ? {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: '',\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {},\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n },\n };\n },\n location: { hash: '' },\n} : document; // eslint-disable-line\n\nvar win = (typeof window === 'undefined') ? {\n document: doc,\n navigator: {\n userAgent: '',\n },\n location: {},\n history: {},\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n },\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n} : window; // eslint-disable-line\n\nexport { win as window, doc as document };\n","import { window } from 'ssr-window';\nimport Support from './support';\n\nconst Device = (function Device() {\n const platform = window.navigator.platform;\n const ua = window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n iphone: false,\n ipod: false,\n ipad: false,\n edge: false,\n ie: false,\n firefox: false,\n macos: false,\n windows: false,\n cordova: !!(window.cordova || window.phonegap),\n phonegap: !!(window.cordova || window.phonegap),\n electron: false,\n nwjs: false,\n };\n\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n const edge = ua.indexOf('Edge/') >= 0;\n const firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n const windows = platform === 'Win32';\n const electron = ua.toLowerCase().indexOf('electron') >= 0;\n const nwjs = typeof nw !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && typeof process.versions.nw !== 'undefined';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n if (!ipad\n && macos\n && Support.touch\n && (\n (screenWidth === 1024 && screenHeight === 1366) // Pro 12.9\n || (screenWidth === 834 && screenHeight === 1194) // Pro 11\n || (screenWidth === 834 && screenHeight === 1112) // Pro 10.5\n || (screenWidth === 768 && screenHeight === 1024) // other\n )\n ) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n macos = false;\n }\n\n device.ie = ie;\n device.edge = edge;\n device.firefox = firefox;\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Webview\n device.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || window.navigator.standalone))\n || (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches);\n device.webview = device.webView;\n device.standalone = device.webView;\n\n // Desktop\n device.desktop = !(device.ios || device.android) || electron || nwjs;\n if (device.desktop) {\n device.electron = electron;\n device.nwjs = nwjs;\n device.macos = macos;\n device.windows = windows;\n if (device.macos) {\n device.os = 'macos';\n }\n if (device.windows) {\n device.os = 'windows';\n }\n }\n\n // Pixel Ratio\n device.pixelRatio = window.devicePixelRatio || 1;\n\n // Color Scheme\n const DARK = '(prefers-color-scheme: dark)';\n const LIGHT = '(prefers-color-scheme: light)';\n device.prefersColorScheme = function prefersColorTheme() {\n let theme;\n if (window.matchMedia && window.matchMedia(LIGHT).matches) {\n theme = 'light';\n }\n if (window.matchMedia && window.matchMedia(DARK).matches) {\n theme = 'dark';\n }\n return theme;\n };\n\n // Export object\n return device;\n}());\n\nexport default Device;\n","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","import { window, document } from 'ssr-window';\n\nconst Support = (function Support() {\n return {\n touch: (function checkTouch() {\n return !!((window.navigator.maxTouchPoints > 0) || ('ontouchstart' in window) || (window.DocumentTouch && document instanceof window.DocumentTouch));\n }()),\n\n pointerEvents: !!window.PointerEvent,\n\n observer: (function checkObserver() {\n return ('MutationObserver' in window || 'WebkitMutationObserver' in window);\n }()),\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in window;\n }()),\n\n intersectionObserver: (function checkObserver() {\n return ('IntersectionObserver' in window);\n }()),\n };\n}());\n\nexport default Support;\n","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","/**\n * Template7 1.4.2\n * Mobile-first HTML template engine\n * \n * http://www.idangero.us/template7/\n * \n * Copyright 2019, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n * \n * Licensed under MIT\n * \n * Released on: June 14, 2019\n */\n\nlet t7ctx;\nif (typeof window !== 'undefined') {\n t7ctx = window;\n} else if (typeof global !== 'undefined') {\n t7ctx = global;\n} else {\n t7ctx = undefined;\n}\n\nconst Template7Context = t7ctx;\n\nconst Template7Utils = {\n quoteSingleRexExp: new RegExp('\\'', 'g'),\n quoteDoubleRexExp: new RegExp('\"', 'g'),\n isFunction(func) {\n return typeof func === 'function';\n },\n escape(string = '') {\n return string\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n },\n helperToSlices(string) {\n const { quoteDoubleRexExp, quoteSingleRexExp } = Template7Utils;\n const helperParts = string.replace(/[{}#}]/g, '').trim().split(' ');\n const slices = [];\n let shiftIndex;\n let i;\n let j;\n for (i = 0; i < helperParts.length; i += 1) {\n let part = helperParts[i];\n let blockQuoteRegExp;\n let openingQuote;\n if (i === 0) slices.push(part);\n else if (part.indexOf('\"') === 0 || part.indexOf('\\'') === 0) {\n blockQuoteRegExp = part.indexOf('\"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp;\n openingQuote = part.indexOf('\"') === 0 ? '\"' : '\\'';\n // Plain String\n if (part.match(blockQuoteRegExp).length === 2) {\n // One word string\n slices.push(part);\n } else {\n // Find closed Index\n shiftIndex = 0;\n for (j = i + 1; j < helperParts.length; j += 1) {\n part += ` ${helperParts[j]}`;\n if (helperParts[j].indexOf(openingQuote) >= 0) {\n shiftIndex = j;\n slices.push(part);\n break;\n }\n }\n if (shiftIndex) i = shiftIndex;\n }\n } else if (part.indexOf('=') > 0) {\n // Hash\n const hashParts = part.split('=');\n const hashName = hashParts[0];\n let hashContent = hashParts[1];\n if (!blockQuoteRegExp) {\n blockQuoteRegExp = hashContent.indexOf('\"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp;\n openingQuote = hashContent.indexOf('\"') === 0 ? '\"' : '\\'';\n }\n if (hashContent.match(blockQuoteRegExp).length !== 2) {\n shiftIndex = 0;\n for (j = i + 1; j < helperParts.length; j += 1) {\n hashContent += ` ${helperParts[j]}`;\n if (helperParts[j].indexOf(openingQuote) >= 0) {\n shiftIndex = j;\n break;\n }\n }\n if (shiftIndex) i = shiftIndex;\n }\n const hash = [hashName, hashContent.replace(blockQuoteRegExp, '')];\n slices.push(hash);\n } else {\n // Plain variable\n slices.push(part);\n }\n }\n return slices;\n },\n stringToBlocks(string) {\n const blocks = [];\n let i;\n let j;\n if (!string) return [];\n const stringBlocks = string.split(/({{[^{^}]*}})/);\n for (i = 0; i < stringBlocks.length; i += 1) {\n let block = stringBlocks[i];\n if (block === '') continue;\n if (block.indexOf('{{') < 0) {\n blocks.push({\n type: 'plain',\n content: block,\n });\n } else {\n if (block.indexOf('{/') >= 0) {\n continue;\n }\n block = block\n .replace(/{{([#/])*([ ])*/, '{{$1')\n .replace(/([ ])*}}/, '}}');\n if (block.indexOf('{#') < 0 && block.indexOf(' ') < 0 && block.indexOf('else') < 0) {\n // Simple variable\n blocks.push({\n type: 'variable',\n contextName: block.replace(/[{}]/g, ''),\n });\n continue;\n }\n // Helpers\n const helperSlices = Template7Utils.helperToSlices(block);\n let helperName = helperSlices[0];\n const isPartial = helperName === '>';\n const helperContext = [];\n const helperHash = {};\n for (j = 1; j < helperSlices.length; j += 1) {\n const slice = helperSlices[j];\n if (Array.isArray(slice)) {\n // Hash\n helperHash[slice[0]] = slice[1] === 'false' ? false : slice[1];\n } else {\n helperContext.push(slice);\n }\n }\n\n if (block.indexOf('{#') >= 0) {\n // Condition/Helper\n let helperContent = '';\n let elseContent = '';\n let toSkip = 0;\n let shiftIndex;\n let foundClosed = false;\n let foundElse = false;\n let depth = 0;\n for (j = i + 1; j < stringBlocks.length; j += 1) {\n if (stringBlocks[j].indexOf('{{#') >= 0) {\n depth += 1;\n }\n if (stringBlocks[j].indexOf('{{/') >= 0) {\n depth -= 1;\n }\n if (stringBlocks[j].indexOf(`{{#${helperName}`) >= 0) {\n helperContent += stringBlocks[j];\n if (foundElse) elseContent += stringBlocks[j];\n toSkip += 1;\n } else if (stringBlocks[j].indexOf(`{{/${helperName}`) >= 0) {\n if (toSkip > 0) {\n toSkip -= 1;\n helperContent += stringBlocks[j];\n if (foundElse) elseContent += stringBlocks[j];\n } else {\n shiftIndex = j;\n foundClosed = true;\n break;\n }\n } else if (stringBlocks[j].indexOf('else') >= 0 && depth === 0) {\n foundElse = true;\n } else {\n if (!foundElse) helperContent += stringBlocks[j];\n if (foundElse) elseContent += stringBlocks[j];\n }\n }\n if (foundClosed) {\n if (shiftIndex) i = shiftIndex;\n if (helperName === 'raw') {\n blocks.push({\n type: 'plain',\n content: helperContent,\n });\n } else {\n blocks.push({\n type: 'helper',\n helperName,\n contextName: helperContext,\n content: helperContent,\n inverseContent: elseContent,\n hash: helperHash,\n });\n }\n }\n } else if (block.indexOf(' ') > 0) {\n if (isPartial) {\n helperName = '_partial';\n if (helperContext[0]) {\n if (helperContext[0].indexOf('[') === 0) helperContext[0] = helperContext[0].replace(/[[\\]]/g, '');\n else helperContext[0] = `\"${helperContext[0].replace(/\"|'/g, '')}\"`;\n }\n }\n blocks.push({\n type: 'helper',\n helperName,\n contextName: helperContext,\n hash: helperHash,\n });\n }\n }\n }\n return blocks;\n },\n parseJsVariable(expression, replace, object) {\n return expression.split(/([+ \\-*/^()&=|<>!%:?])/g).reduce((arr, part) => {\n if (!part) {\n return arr;\n }\n if (part.indexOf(replace) < 0) {\n arr.push(part);\n return arr;\n }\n if (!object) {\n arr.push(JSON.stringify(''));\n return arr;\n }\n\n let variable = object;\n if (part.indexOf(`${replace}.`) >= 0) {\n part.split(`${replace}.`)[1].split('.').forEach((partName) => {\n if (partName in variable) variable = variable[partName];\n else variable = undefined;\n });\n }\n if (\n (typeof variable === 'string')\n || Array.isArray(variable)\n || (variable.constructor && variable.constructor === Object)\n ) {\n variable = JSON.stringify(variable);\n }\n if (variable === undefined) variable = 'undefined';\n\n arr.push(variable);\n return arr;\n }, []).join('');\n\n },\n parseJsParents(expression, parents) {\n return expression.split(/([+ \\-*^()&=|<>!%:?])/g).reduce((arr, part) => {\n if (!part) {\n return arr;\n }\n\n if (part.indexOf('../') < 0) {\n arr.push(part);\n return arr;\n }\n\n if (!parents || parents.length === 0) {\n arr.push(JSON.stringify(''));\n return arr;\n }\n\n const levelsUp = part.split('../').length - 1;\n const parentData = levelsUp > parents.length ? parents[parents.length - 1] : parents[levelsUp - 1];\n\n let variable = parentData;\n const parentPart = part.replace(/..\\//g, '');\n parentPart.split('.').forEach((partName) => {\n if (typeof variable[partName] !== 'undefined') variable = variable[partName];\n else variable = 'undefined';\n });\n if (variable === false || variable === true) {\n arr.push(JSON.stringify(variable));\n return arr;\n }\n if (variable === null || variable === 'undefined') {\n arr.push(JSON.stringify(''));\n return arr;\n }\n arr.push(JSON.stringify(variable));\n return arr;\n }, []).join('');\n },\n getCompileVar(name, ctx, data = 'data_1') {\n let variable = ctx;\n let parts;\n let levelsUp = 0;\n let newDepth;\n if (name.indexOf('../') === 0) {\n levelsUp = name.split('../').length - 1;\n newDepth = variable.split('_')[1] - levelsUp;\n variable = `ctx_${newDepth >= 1 ? newDepth : 1}`;\n parts = name.split('../')[levelsUp].split('.');\n } else if (name.indexOf('@global') === 0) {\n variable = 'Template7.global';\n parts = name.split('@global.')[1].split('.');\n } else if (name.indexOf('@root') === 0) {\n variable = 'root';\n parts = name.split('@root.')[1].split('.');\n } else {\n parts = name.split('.');\n }\n for (let i = 0; i < parts.length; i += 1) {\n const part = parts[i];\n if (part.indexOf('@') === 0) {\n let dataLevel = data.split('_')[1];\n if (levelsUp > 0) {\n dataLevel = newDepth;\n }\n if (i > 0) {\n variable += `[(data_${dataLevel} && data_${dataLevel}.${part.replace('@', '')})]`;\n } else {\n variable = `(data_${dataLevel} && data_${dataLevel}.${part.replace('@', '')})`;\n }\n } else if (Number.isFinite ? Number.isFinite(part) : Template7Context.isFinite(part)) {\n variable += `[${part}]`;\n } else if (part === 'this' || part.indexOf('this.') >= 0 || part.indexOf('this[') >= 0 || part.indexOf('this(') >= 0) {\n variable = part.replace('this', ctx);\n } else {\n variable += `.${part}`;\n }\n }\n return variable;\n },\n getCompiledArguments(contextArray, ctx, data) {\n const arr = [];\n for (let i = 0; i < contextArray.length; i += 1) {\n if (/^['\"]/.test(contextArray[i])) arr.push(contextArray[i]);\n else if (/^(true|false|\\d+)$/.test(contextArray[i])) arr.push(contextArray[i]);\n else {\n arr.push(Template7Utils.getCompileVar(contextArray[i], ctx, data));\n }\n }\n\n return arr.join(', ');\n },\n};\n\n/* eslint no-eval: \"off\" */\n\nconst Template7Helpers = {\n _partial(partialName, options) {\n const ctx = this;\n const p = Template7Class.partials[partialName];\n if (!p || (p && !p.template)) return '';\n if (!p.compiled) {\n p.compiled = new Template7Class(p.template).compile();\n }\n Object.keys(options.hash).forEach((hashName) => {\n ctx[hashName] = options.hash[hashName];\n });\n return p.compiled(ctx, options.data, options.root);\n },\n escape(context) {\n if (typeof context === 'undefined' || context === null) return '';\n if (typeof context !== 'string') {\n throw new Error('Template7: Passed context to \"escape\" helper should be a string');\n }\n return Template7Utils.escape(context);\n },\n if(context, options) {\n let ctx = context;\n if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); }\n if (ctx) {\n return options.fn(this, options.data);\n }\n\n return options.inverse(this, options.data);\n },\n unless(context, options) {\n let ctx = context;\n if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); }\n if (!ctx) {\n return options.fn(this, options.data);\n }\n\n return options.inverse(this, options.data);\n },\n each(context, options) {\n let ctx = context;\n let ret = '';\n let i = 0;\n if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); }\n if (Array.isArray(ctx)) {\n if (options.hash.reverse) {\n ctx = ctx.reverse();\n }\n for (i = 0; i < ctx.length; i += 1) {\n ret += options.fn(ctx[i], { first: i === 0, last: i === ctx.length - 1, index: i });\n }\n if (options.hash.reverse) {\n ctx = ctx.reverse();\n }\n } else {\n // eslint-disable-next-line\n for (const key in ctx) {\n i += 1;\n ret += options.fn(ctx[key], { key });\n }\n }\n if (i > 0) return ret;\n return options.inverse(this);\n },\n with(context, options) {\n let ctx = context;\n if (Template7Utils.isFunction(ctx)) { ctx = context.call(this); }\n return options.fn(ctx);\n },\n join(context, options) {\n let ctx = context;\n if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); }\n return ctx.join(options.hash.delimiter || options.hash.delimeter);\n },\n js(expression, options) {\n const data = options.data;\n let func;\n let execute = expression;\n ('index first last key').split(' ').forEach((prop) => {\n if (typeof data[prop] !== 'undefined') {\n const re1 = new RegExp(`this.@${prop}`, 'g');\n const re2 = new RegExp(`@${prop}`, 'g');\n execute = execute\n .replace(re1, JSON.stringify(data[prop]))\n .replace(re2, JSON.stringify(data[prop]));\n }\n });\n if (options.root && execute.indexOf('@root') >= 0) {\n execute = Template7Utils.parseJsVariable(execute, '@root', options.root);\n }\n if (execute.indexOf('@global') >= 0) {\n execute = Template7Utils.parseJsVariable(execute, '@global', Template7Context.Template7.global);\n }\n if (execute.indexOf('../') >= 0) {\n execute = Template7Utils.parseJsParents(execute, options.parents);\n }\n if (execute.indexOf('return') >= 0) {\n func = `(function(){${execute}})`;\n } else {\n func = `(function(){return (${execute})})`;\n }\n return eval(func).call(this);\n },\n js_if(expression, options) {\n const data = options.data;\n let func;\n let execute = expression;\n ('index first last key').split(' ').forEach((prop) => {\n if (typeof data[prop] !== 'undefined') {\n const re1 = new RegExp(`this.@${prop}`, 'g');\n const re2 = new RegExp(`@${prop}`, 'g');\n execute = execute\n .replace(re1, JSON.stringify(data[prop]))\n .replace(re2, JSON.stringify(data[prop]));\n }\n });\n if (options.root && execute.indexOf('@root') >= 0) {\n execute = Template7Utils.parseJsVariable(execute, '@root', options.root);\n }\n if (execute.indexOf('@global') >= 0) {\n execute = Template7Utils.parseJsVariable(execute, '@global', Template7Context.Template7.global);\n }\n if (execute.indexOf('../') >= 0) {\n execute = Template7Utils.parseJsParents(execute, options.parents);\n }\n if (execute.indexOf('return') >= 0) {\n func = `(function(){${execute}})`;\n } else {\n func = `(function(){return (${execute})})`;\n }\n const condition = eval(func).call(this);\n if (condition) {\n return options.fn(this, options.data);\n }\n\n return options.inverse(this, options.data);\n },\n};\nTemplate7Helpers.js_compare = Template7Helpers.js_if;\n\nconst Template7Options = {};\nconst Template7Partials = {};\n\nclass Template7Class {\n constructor(template) {\n const t = this;\n t.template = template;\n }\n compile(template = this.template, depth = 1) {\n const t = this;\n if (t.compiled) return t.compiled;\n\n if (typeof template !== 'string') {\n throw new Error('Template7: Template must be a string');\n }\n const { stringToBlocks, getCompileVar, getCompiledArguments } = Template7Utils;\n\n const blocks = stringToBlocks(template);\n const ctx = `ctx_${depth}`;\n const data = `data_${depth}`;\n if (blocks.length === 0) {\n return function empty() { return ''; };\n }\n\n function getCompileFn(block, newDepth) {\n if (block.content) return t.compile(block.content, newDepth);\n return function empty() { return ''; };\n }\n function getCompileInverse(block, newDepth) {\n if (block.inverseContent) return t.compile(block.inverseContent, newDepth);\n return function empty() { return ''; };\n }\n\n let resultString = '';\n if (depth === 1) {\n resultString += `(function (${ctx}, ${data}, root) {\\n`;\n } else {\n resultString += `(function (${ctx}, ${data}) {\\n`;\n }\n if (depth === 1) {\n resultString += 'function isArray(arr){return Array.isArray(arr);}\\n';\n resultString += 'function isFunction(func){return (typeof func === \\'function\\');}\\n';\n resultString += 'function c(val, ctx) {if (typeof val !== \"undefined\" && val !== null) {if (isFunction(val)) {return val.call(ctx);} else return val;} else return \"\";}\\n';\n resultString += 'root = root || ctx_1 || {};\\n';\n }\n resultString += 'var r = \\'\\';\\n';\n let i;\n for (i = 0; i < blocks.length; i += 1) {\n const block = blocks[i];\n // Plain block\n if (block.type === 'plain') {\n // eslint-disable-next-line\n resultString += `r +='${(block.content).replace(/\\r/g, '\\\\r').replace(/\\n/g, '\\\\n').replace(/'/g, '\\\\' + '\\'')}';`;\n continue;\n }\n let variable;\n let compiledArguments;\n // Variable block\n if (block.type === 'variable') {\n variable = getCompileVar(block.contextName, ctx, data);\n resultString += `r += c(${variable}, ${ctx});`;\n }\n // Helpers block\n if (block.type === 'helper') {\n let parents;\n if (ctx !== 'ctx_1') {\n const level = ctx.split('_')[1];\n let parentsString = `ctx_${level - 1}`;\n for (let j = level - 2; j >= 1; j -= 1) {\n parentsString += `, ctx_${j}`;\n }\n parents = `[${parentsString}]`;\n } else {\n parents = `[${ctx}]`;\n }\n let dynamicHelper;\n if (block.helperName.indexOf('[') === 0) {\n block.helperName = getCompileVar(block.helperName.replace(/[[\\]]/g, ''), ctx, data);\n dynamicHelper = true;\n }\n if (dynamicHelper || block.helperName in Template7Helpers) {\n compiledArguments = getCompiledArguments(block.contextName, ctx, data);\n resultString += `r += (Template7Helpers${dynamicHelper ? `[${block.helperName}]` : `.${block.helperName}`}).call(${ctx}, ${compiledArguments && (`${compiledArguments}, `)}{hash:${JSON.stringify(block.hash)}, data: ${data} || {}, fn: ${getCompileFn(block, depth + 1)}, inverse: ${getCompileInverse(block, depth + 1)}, root: root, parents: ${parents}});`;\n } else if (block.contextName.length > 0) {\n throw new Error(`Template7: Missing helper: \"${block.helperName}\"`);\n } else {\n variable = getCompileVar(block.helperName, ctx, data);\n resultString += `if (${variable}) {`;\n resultString += `if (isArray(${variable})) {`;\n resultString += `r += (Template7Helpers.each).call(${ctx}, ${variable}, {hash:${JSON.stringify(block.hash)}, data: ${data} || {}, fn: ${getCompileFn(block, depth + 1)}, inverse: ${getCompileInverse(block, depth + 1)}, root: root, parents: ${parents}});`;\n resultString += '}else {';\n resultString += `r += (Template7Helpers.with).call(${ctx}, ${variable}, {hash:${JSON.stringify(block.hash)}, data: ${data} || {}, fn: ${getCompileFn(block, depth + 1)}, inverse: ${getCompileInverse(block, depth + 1)}, root: root, parents: ${parents}});`;\n resultString += '}}';\n }\n }\n }\n resultString += '\\nreturn r;})';\n\n if (depth === 1) {\n // eslint-disable-next-line\n t.compiled = eval(resultString);\n return t.compiled;\n }\n return resultString;\n }\n static get options() {\n return Template7Options;\n }\n static get partials() {\n return Template7Partials;\n }\n static get helpers() {\n return Template7Helpers;\n }\n}\n\nfunction Template7(...args) {\n const [template, data] = args;\n if (args.length === 2) {\n let instance = new Template7Class(template);\n const rendered = instance.compile()(data);\n instance = null;\n return (rendered);\n }\n return new Template7Class(template);\n}\nTemplate7.registerHelper = function registerHelper(name, fn) {\n Template7Class.helpers[name] = fn;\n};\nTemplate7.unregisterHelper = function unregisterHelper(name) {\n Template7Class.helpers[name] = undefined;\n delete Template7Class.helpers[name];\n};\nTemplate7.registerPartial = function registerPartial(name, template) {\n Template7Class.partials[name] = { template };\n};\nTemplate7.unregisterPartial = function unregisterPartial(name) {\n if (Template7Class.partials[name]) {\n Template7Class.partials[name] = undefined;\n delete Template7Class.partials[name];\n }\n};\nTemplate7.compile = function compile(template, options) {\n const instance = new Template7Class(template, options);\n return instance.compile();\n};\n\nTemplate7.options = Template7Class.options;\nTemplate7.helpers = Template7Class.helpers;\nTemplate7.partials = Template7Class.partials;\n\nexport default Template7;\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","/**\n * Dom7 2.1.3\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2019, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: February 11, 2019\n */\nimport { document, window } from 'ssr-window';\n\nclass Dom7 {\n constructor(arr) {\n const self = this;\n // Create array-like object\n for (let i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n }\n}\n\nfunction $(selector, context) {\n const arr = [];\n let i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n let els;\n let tempParent;\n const html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(':~]/)) {\n // Pure ID selector\n els = [document.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || document).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) arr.push(els[i]);\n }\n }\n } else if (selector.nodeType || selector === window || selector === document) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n}\n\n$.fn = Dom7.prototype;\n$.Class = Dom7;\n$.Dom7 = Dom7;\n\nfunction unique(arr) {\n const uniqueArray = [];\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group1) => group1.toUpperCase());\n}\n\nfunction requestAnimationFrame(callback) {\n if (window.requestAnimationFrame) return window.requestAnimationFrame(callback);\n else if (window.webkitRequestAnimationFrame) return window.webkitRequestAnimationFrame(callback);\n return window.setTimeout(callback, 1000 / 60);\n}\nfunction cancelAnimationFrame(id) {\n if (window.cancelAnimationFrame) return window.cancelAnimationFrame(id);\n else if (window.webkitCancelAnimationFrame) return window.webkitCancelAnimationFrame(id);\n return window.clearTimeout(id);\n}\n\n// Classes and attributes\nfunction addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.add(classes[i]);\n }\n }\n return this;\n}\nfunction removeClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.remove(classes[i]);\n }\n }\n return this;\n}\nfunction hasClass(className) {\n if (!this[0]) return false;\n return this[0].classList.contains(className);\n}\nfunction toggleClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.toggle(classes[i]);\n }\n }\n return this;\n}\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n }\n\n // Set attrs\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n // eslint-disable-next-line\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n // eslint-disable-next-line\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n return this;\n }\n}\nfunction data(key, value) {\n let el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n}\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n if (el.dataset) {\n // eslint-disable-next-line\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n // eslint-disable-next-line\n const attr = el.attributes[i];\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n // eslint-disable-next-line\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;\n else if (dataset[key] === 'true') dataset[key] = true;\n else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n return dataset;\n}\nfunction val(value) {\n const dom = this;\n if (typeof value === 'undefined') {\n if (dom[0]) {\n if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') {\n const values = [];\n for (let i = 0; i < dom[0].selectedOptions.length; i += 1) {\n values.push(dom[0].selectedOptions[i].value);\n }\n return values;\n }\n return dom[0].value;\n }\n return undefined;\n }\n\n for (let i = 0; i < dom.length; i += 1) {\n const el = dom[i];\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n return dom;\n}\n// Transforms\n// eslint-disable-next-line\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n if (typeof duration !== 'string') {\n duration = `${duration}ms`; // eslint-disable-line\n }\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n}\n// Events\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) listener.apply(target, eventData);\n else {\n const parents = $(target).parents(); // eslint-disable-line\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n const events = eventType.split(' ');\n let j;\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent,\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent,\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n return this;\n}\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n const events = eventType.split(' ');\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n return this;\n}\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\nfunction trigger(...args) {\n const events = args[0].split(' ');\n const eventData = args[1];\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let evt;\n try {\n evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n } catch (e) {\n evt = document.createEvent('Event');\n evt.initEvent(event, true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n const events = ['webkitTransitionEnd', 'transitionend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\nfunction animationEnd(callback) {\n const events = ['webkitAnimationEnd', 'animationend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\n// Sizing/Styles\nfunction width() {\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction height() {\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: (box.top + scrollTop) - clientTop,\n left: (box.left + scrollLeft) - clientLeft,\n };\n }\n\n return null;\n}\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n return this;\n}\nfunction show() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n return this;\n}\nfunction styles() {\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n let i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (let prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\n\n// Dom manipulation\nfunction toArray() {\n const arr = [];\n for (let i = 0; i < this.length; i += 1) {\n arr.push(this[i]);\n }\n return arr;\n}\n// Iterate over the collection passing elements to `callback`\nfunction each(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction forEach(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], this[i], i) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction filter(callback) {\n const matchedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n if (callback.call(dom[i], i, dom[i])) matchedItems.push(dom[i]);\n }\n return new Dom7(matchedItems);\n}\nfunction map(callback) {\n const modifiedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n modifiedItems.push(callback.call(dom[i], i, dom[i]));\n }\n return new Dom7(modifiedItems);\n}\n// eslint-disable-next-line\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\n// eslint-disable-next-line\nfunction text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n } else if (selector === document) return el === document;\n else if (selector === window) return el === window;\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction indexOf(el) {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i] === el) return i;\n }\n return -1;\n}\nfunction index() {\n let child = this[0];\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\n// eslint-disable-next-line\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n let returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) return new Dom7([]);\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n}\nfunction append(...args) {\n let newChild;\n\n for (let k = 0; k < args.length; k += 1) {\n newChild = args[k];\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n// eslint-disable-next-line\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\nfunction prepend(newChild) {\n let i;\n let j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\nfunction insertBefore(selector) {\n const before = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\nfunction insertAfter(selector) {\n const after = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return new Dom7(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (el.previousElementSibling) return new Dom7([el.previousElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return new Dom7(prevEls);\n}\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n return $(unique(parents));\n}\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $(unique(parents));\n}\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n const foundElements = [];\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n}\nfunction children(selector) {\n const children = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].childNodes;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\n}\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n}\nfunction detach() {\n return this.remove();\n}\nfunction add(...args) {\n const dom = this;\n let i;\n let j;\n for (i = 0; i < args.length; i += 1) {\n const toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n}\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n el.textContent = '';\n }\n }\n return this;\n}\n\nvar Methods = /*#__PURE__*/Object.freeze({\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n prop: prop,\n data: data,\n removeData: removeData,\n dataset: dataset,\n val: val,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n once: once,\n trigger: trigger,\n transitionEnd: transitionEnd,\n animationEnd: animationEnd,\n width: width,\n outerWidth: outerWidth,\n height: height,\n outerHeight: outerHeight,\n offset: offset,\n hide: hide,\n show: show,\n styles: styles,\n css: css,\n toArray: toArray,\n each: each,\n forEach: forEach,\n filter: filter,\n map: map,\n html: html,\n text: text,\n is: is,\n indexOf: indexOf,\n index: index,\n eq: eq,\n append: append,\n appendTo: appendTo,\n prepend: prepend,\n prependTo: prependTo,\n insertBefore: insertBefore,\n insertAfter: insertAfter,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n siblings: siblings,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n remove: remove,\n detach: detach,\n add: add,\n empty: empty\n});\n\nfunction scrollTo(...args) {\n let [left, top, duration, easing, callback] = args;\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n if (typeof easing === 'undefined') easing = 'swing';\n\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n let scrollLeft; // eslint-disable-line\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n if (animateTop) {\n currentTop = el.scrollTop;\n if (!duration) {\n el.scrollTop = top;\n }\n }\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n if (!duration) return;\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : (0.5 - (Math.cos(progress * Math.PI) / 2));\n let done;\n if (animateTop) scrollTop = currentTop + (easeProgress * (newTop - currentTop));\n if (animateLeft) scrollLeft = currentLeft + (easeProgress * (newLeft - currentLeft));\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n requestAnimationFrame(render);\n }\n requestAnimationFrame(render);\n });\n}\n// scrollTop(top, duration, easing, callback) {\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nvar Scroll = /*#__PURE__*/Object.freeze({\n scrollTo: scrollTo,\n scrollTop: scrollTop,\n scrollLeft: scrollLeft\n});\n\nfunction animate(initialProps, initialParams) {\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing', // or 'linear'\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n }, initialParams),\n\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - (Math.cos(progress * Math.PI) / 2);\n }\n if (typeof easing === 'function') {\n return easing(progress);\n }\n return progress;\n },\n stop() {\n if (a.frameId) {\n cancelAnimationFrame(a.frameId);\n }\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done(complete) {\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n const elements = [];\n\n // Define & Cache Initials & Units\n a.elements.each((index, el) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n\n elements[index] = {\n container: el,\n };\n Object.keys(props).forEach((prop) => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue,\n };\n });\n });\n\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress;\n // let el;\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n if (startTime === null) {\n startTime = time;\n }\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), ((startTime + params.duration) - time < 0 ? 0 : (startTime + params.duration) - time), startTime);\n }\n\n elements.forEach((element) => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach((prop) => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const { initialValue, finalValue, unit } = el[prop];\n el[prop].currentValue = initialValue + (easeProgress * (finalValue - initialValue));\n const currentValue = el[prop].currentValue;\n\n if (\n (finalValue > initialValue && currentValue >= finalValue) ||\n (finalValue < initialValue && currentValue <= finalValue)) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n if (done) {\n a.done(params.complete);\n return;\n }\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return;\n // Then call\n a.frameId = requestAnimationFrame(render);\n }\n a.frameId = requestAnimationFrame(render);\n return a;\n },\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar Animate = /*#__PURE__*/Object.freeze({\n animate: animate,\n stop: stop\n});\n\nconst noTrigger = ('resize scroll').split(' ');\nfunction eventShortcut(name, ...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();\n else {\n $(this[i]).trigger(name);\n }\n }\n }\n return this;\n }\n return this.on(name, ...args);\n}\n\nfunction click(...args) {\n return eventShortcut.bind(this)('click', ...args);\n}\nfunction blur(...args) {\n return eventShortcut.bind(this)('blur', ...args);\n}\nfunction focus(...args) {\n return eventShortcut.bind(this)('focus', ...args);\n}\nfunction focusin(...args) {\n return eventShortcut.bind(this)('focusin', ...args);\n}\nfunction focusout(...args) {\n return eventShortcut.bind(this)('focusout', ...args);\n}\nfunction keyup(...args) {\n return eventShortcut.bind(this)('keyup', ...args);\n}\nfunction keydown(...args) {\n return eventShortcut.bind(this)('keydown', ...args);\n}\nfunction keypress(...args) {\n return eventShortcut.bind(this)('keypress', ...args);\n}\nfunction submit(...args) {\n return eventShortcut.bind(this)('submit', ...args);\n}\nfunction change(...args) {\n return eventShortcut.bind(this)('change', ...args);\n}\nfunction mousedown(...args) {\n return eventShortcut.bind(this)('mousedown', ...args);\n}\nfunction mousemove(...args) {\n return eventShortcut.bind(this)('mousemove', ...args);\n}\nfunction mouseup(...args) {\n return eventShortcut.bind(this)('mouseup', ...args);\n}\nfunction mouseenter(...args) {\n return eventShortcut.bind(this)('mouseenter', ...args);\n}\nfunction mouseleave(...args) {\n return eventShortcut.bind(this)('mouseleave', ...args);\n}\nfunction mouseout(...args) {\n return eventShortcut.bind(this)('mouseout', ...args);\n}\nfunction mouseover(...args) {\n return eventShortcut.bind(this)('mouseover', ...args);\n}\nfunction touchstart(...args) {\n return eventShortcut.bind(this)('touchstart', ...args);\n}\nfunction touchend(...args) {\n return eventShortcut.bind(this)('touchend', ...args);\n}\nfunction touchmove(...args) {\n return eventShortcut.bind(this)('touchmove', ...args);\n}\nfunction resize(...args) {\n return eventShortcut.bind(this)('resize', ...args);\n}\nfunction scroll(...args) {\n return eventShortcut.bind(this)('scroll', ...args);\n}\n\nvar eventShortcuts = /*#__PURE__*/Object.freeze({\n click: click,\n blur: blur,\n focus: focus,\n focusin: focusin,\n focusout: focusout,\n keyup: keyup,\n keydown: keydown,\n keypress: keypress,\n submit: submit,\n change: change,\n mousedown: mousedown,\n mousemove: mousemove,\n mouseup: mouseup,\n mouseenter: mouseenter,\n mouseleave: mouseleave,\n mouseout: mouseout,\n mouseover: mouseover,\n touchstart: touchstart,\n touchend: touchend,\n touchmove: touchmove,\n resize: resize,\n scroll: scroll\n});\n\n[Methods, Scroll, Animate, eventShortcuts].forEach((group) => {\n Object.keys(group).forEach((methodName) => {\n $.fn[methodName] = group[methodName];\n });\n});\n\nexport default $;\n","/* eslint no-control-regex: \"off\" */\nimport { window } from 'ssr-window';\n\n// Remove Diacritics\nconst defaultDiacriticsRemovalap = [\n { base: 'A', letters: '\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F' },\n { base: 'AA', letters: '\\uA732' },\n { base: 'AE', letters: '\\u00C6\\u01FC\\u01E2' },\n { base: 'AO', letters: '\\uA734' },\n { base: 'AU', letters: '\\uA736' },\n { base: 'AV', letters: '\\uA738\\uA73A' },\n { base: 'AY', letters: '\\uA73C' },\n { base: 'B', letters: '\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181' },\n { base: 'C', letters: '\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E' },\n { base: 'D', letters: '\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779' },\n { base: 'DZ', letters: '\\u01F1\\u01C4' },\n { base: 'Dz', letters: '\\u01F2\\u01C5' },\n { base: 'E', letters: '\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E' },\n { base: 'F', letters: '\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B' },\n { base: 'G', letters: '\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E' },\n { base: 'H', letters: '\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D' },\n { base: 'I', letters: '\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197' },\n { base: 'J', letters: '\\u004A\\u24BF\\uFF2A\\u0134\\u0248' },\n { base: 'K', letters: '\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2' },\n { base: 'L', letters: '\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780' },\n { base: 'LJ', letters: '\\u01C7' },\n { base: 'Lj', letters: '\\u01C8' },\n { base: 'M', letters: '\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C' },\n { base: 'N', letters: '\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4' },\n { base: 'NJ', letters: '\\u01CA' },\n { base: 'Nj', letters: '\\u01CB' },\n { base: 'O', letters: '\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C' },\n { base: 'OI', letters: '\\u01A2' },\n { base: 'OO', letters: '\\uA74E' },\n { base: 'OU', letters: '\\u0222' },\n { base: 'OE', letters: '\\u008C\\u0152' },\n { base: 'oe', letters: '\\u009C\\u0153' },\n { base: 'P', letters: '\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754' },\n { base: 'Q', letters: '\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A' },\n { base: 'R', letters: '\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782' },\n { base: 'S', letters: '\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784' },\n { base: 'T', letters: '\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786' },\n { base: 'TZ', letters: '\\uA728' },\n { base: 'U', letters: '\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244' },\n { base: 'V', letters: '\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245' },\n { base: 'VY', letters: '\\uA760' },\n { base: 'W', letters: '\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72' },\n { base: 'X', letters: '\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C' },\n { base: 'Y', letters: '\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE' },\n { base: 'Z', letters: '\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762' },\n { base: 'a', letters: '\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250' },\n { base: 'aa', letters: '\\uA733' },\n { base: 'ae', letters: '\\u00E6\\u01FD\\u01E3' },\n { base: 'ao', letters: '\\uA735' },\n { base: 'au', letters: '\\uA737' },\n { base: 'av', letters: '\\uA739\\uA73B' },\n { base: 'ay', letters: '\\uA73D' },\n { base: 'b', letters: '\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253' },\n { base: 'c', letters: '\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184' },\n { base: 'd', letters: '\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A' },\n { base: 'dz', letters: '\\u01F3\\u01C6' },\n { base: 'e', letters: '\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD' },\n { base: 'f', letters: '\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C' },\n { base: 'g', letters: '\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F' },\n { base: 'h', letters: '\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265' },\n { base: 'hv', letters: '\\u0195' },\n { base: 'i', letters: '\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131' },\n { base: 'j', letters: '\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249' },\n { base: 'k', letters: '\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3' },\n { base: 'l', letters: '\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747' },\n { base: 'lj', letters: '\\u01C9' },\n { base: 'm', letters: '\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F' },\n { base: 'n', letters: '\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5' },\n { base: 'nj', letters: '\\u01CC' },\n { base: 'o', letters: '\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275' },\n { base: 'oi', letters: '\\u01A3' },\n { base: 'ou', letters: '\\u0223' },\n { base: 'oo', letters: '\\uA74F' },\n { base: 'p', letters: '\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755' },\n { base: 'q', letters: '\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759' },\n { base: 'r', letters: '\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783' },\n { base: 's', letters: '\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B' },\n { base: 't', letters: '\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787' },\n { base: 'tz', letters: '\\uA729' },\n { base: 'u', letters: '\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289' },\n { base: 'v', letters: '\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C' },\n { base: 'vy', letters: '\\uA761' },\n { base: 'w', letters: '\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73' },\n { base: 'x', letters: '\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D' },\n { base: 'y', letters: '\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF' },\n { base: 'z', letters: '\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763' },\n];\n\nconst diacriticsMap = {};\nfor (let i = 0; i < defaultDiacriticsRemovalap.length; i += 1) {\n const letters = defaultDiacriticsRemovalap[i].letters;\n for (let j = 0; j < letters.length; j += 1) {\n diacriticsMap[letters[j]] = defaultDiacriticsRemovalap[i].base;\n }\n}\n\nlet uniqueNumber = 1;\n\nconst Utils = {\n uniqueNumber() {\n uniqueNumber += 1;\n return uniqueNumber;\n },\n id(mask = 'xxxxxxxxxx', map = '0123456789abcdef') {\n const length = map.length;\n return mask.replace(/x/g, () => map[Math.floor((Math.random() * length))]);\n },\n mdPreloaderContent: `\n \n \n \n \n \n \n \n \n \n `.trim(),\n iosPreloaderContent: `\n \n ${[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(() => '').join('')}\n \n `.trim(),\n auroraPreloaderContent: `\n \n \n \n `,\n eventNameToColonCase(eventName) {\n let hasColon;\n return eventName.split('').map((char, index) => {\n if (char.match(/[A-Z]/) && index !== 0 && !hasColon) {\n hasColon = true;\n return `:${char.toLowerCase()}`;\n }\n return char.toLowerCase();\n }).join('');\n },\n deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no setter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n },\n nextFrame(callback) {\n return Utils.requestAnimationFrame(() => {\n Utils.requestAnimationFrame(callback);\n });\n },\n now() {\n return Date.now();\n },\n requestAnimationFrame(callback) {\n return window.requestAnimationFrame(callback);\n },\n cancelAnimationFrame(id) {\n return window.cancelAnimationFrame(id);\n },\n removeDiacritics(str) {\n return str.replace(/[^\\u0000-\\u007E]/g, a => diacriticsMap[a] || a);\n },\n parseUrlQuery(url) {\n const query = {};\n let urlToParse = url || window.location.href;\n let i;\n let params;\n let param;\n let length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter(paramsPart => paramsPart !== '');\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param.slice(1).join('=')) || '';\n }\n }\n return query;\n },\n getTranslate(el, axis = 'x') {\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n },\n serializeObject(obj, parents = []) {\n if (typeof obj === 'string') return obj;\n const resultArray = [];\n const separator = '&';\n let newParents;\n function varName(name) {\n if (parents.length > 0) {\n let parentParts = '';\n for (let j = 0; j < parents.length; j += 1) {\n if (j === 0) parentParts += parents[j];\n else parentParts += `[${encodeURIComponent(parents[j])}]`;\n }\n return `${parentParts}[${encodeURIComponent(name)}]`;\n }\n return encodeURIComponent(name);\n }\n function varValue(value) {\n return encodeURIComponent(value);\n }\n Object.keys(obj).forEach((prop) => {\n let toPush;\n if (Array.isArray(obj[prop])) {\n toPush = [];\n for (let i = 0; i < obj[prop].length; i += 1) {\n if (!Array.isArray(obj[prop][i]) && typeof obj[prop][i] === 'object') {\n newParents = parents.slice();\n newParents.push(prop);\n newParents.push(String(i));\n toPush.push(Utils.serializeObject(obj[prop][i], newParents));\n } else {\n toPush.push(`${varName(prop)}[]=${varValue(obj[prop][i])}`);\n }\n }\n if (toPush.length > 0) resultArray.push(toPush.join(separator));\n } else if (obj[prop] === null || obj[prop] === '') {\n resultArray.push(`${varName(prop)}=`);\n } else if (typeof obj[prop] === 'object') {\n // Object, convert to named array\n newParents = parents.slice();\n newParents.push(prop);\n toPush = Utils.serializeObject(obj[prop], newParents);\n if (toPush !== '') resultArray.push(toPush);\n } else if (typeof obj[prop] !== 'undefined' && obj[prop] !== '') {\n // Should be string or plain value\n resultArray.push(`${varName(prop)}=${varValue(obj[prop])}`);\n } else if (obj[prop] === '') resultArray.push(varName(prop));\n });\n return resultArray.join(separator);\n },\n isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n merge(...args) {\n const to = args[0];\n args.splice(0, 1);\n const from = args;\n\n for (let i = 0; i < from.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n },\n extend(...args) {\n let deep = true;\n let to;\n let from;\n if (typeof args[0] === 'boolean') {\n deep = args[0];\n to = args[1];\n args.splice(0, 2);\n from = args;\n } else {\n to = args[0];\n args.splice(0, 1);\n from = args;\n }\n for (let i = 0; i < from.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (!deep) {\n to[nextKey] = nextSource[nextKey];\n } else if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n colorHexToRgb(hex) {\n const h = hex.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i, (m, r, g, b) => r + r + g + g + b + b);\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(h);\n return result\n ? result.slice(1).map(n => parseInt(n, 16))\n : null;\n },\n colorRgbToHex(r, g, b) {\n const result = [r, g, b].map((n) => {\n const hex = n.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n }).join('');\n return `#${result}`;\n },\n colorRgbToHsl(r, g, b) {\n r /= 255; // eslint-disable-line\n g /= 255; // eslint-disable-line\n b /= 255; // eslint-disable-line\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n let h;\n if (d === 0) h = 0;\n else if (max === r) h = ((g - b) / d) % 6;\n else if (max === g) h = (b - r) / d + 2;\n else if (max === b) h = (r - g) / d + 4;\n const l = (min + max) / 2;\n const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));\n if (h < 0) h = 360 / 60 + h;\n return [h * 60, s, l];\n },\n colorHslToRgb(h, s, l) {\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const hp = h / 60;\n const x = c * (1 - Math.abs((hp % 2) - 1));\n let rgb1;\n if (Number.isNaN(h) || typeof h === 'undefined') {\n rgb1 = [0, 0, 0];\n } else if (hp <= 1) rgb1 = [c, x, 0];\n else if (hp <= 2) rgb1 = [x, c, 0];\n else if (hp <= 3) rgb1 = [0, c, x];\n else if (hp <= 4) rgb1 = [0, x, c];\n else if (hp <= 5) rgb1 = [x, 0, c];\n else if (hp <= 6) rgb1 = [c, 0, x];\n const m = l - (c / 2);\n return rgb1.map(n => Math.max(0, Math.min(255, Math.round(255 * (n + m)))));\n },\n colorHsbToHsl(h, s, b) {\n const HSL = {\n h,\n s: 0,\n l: 0,\n };\n const HSB = { h, s, b };\n\n HSL.l = (2 - HSB.s) * HSB.b / 2;\n HSL.s = HSL.l && HSL.l < 1 ? HSB.s * HSB.b / (HSL.l < 0.5 ? HSL.l * 2 : 2 - HSL.l * 2) : HSL.s;\n\n return [HSL.h, HSL.s, HSL.l];\n },\n colorHslToHsb(h, s, l) {\n const HSB = {\n h,\n s: 0,\n b: 0,\n };\n const HSL = { h, s, l };\n\n const t = HSL.s * (HSL.l < 0.5 ? HSL.l : 1 - HSL.l);\n HSB.b = HSL.l + t;\n HSB.s = HSL.l > 0 ? 2 * t / HSB.b : HSB.s;\n\n return [HSB.h, HSB.s, HSB.b];\n },\n colorThemeCSSProperties(...args) {\n let hex;\n let rgb;\n if (args.length === 1) {\n hex = args[0];\n rgb = Utils.colorHexToRgb(hex);\n } else if (args.length === 3) {\n rgb = args;\n hex = Utils.colorRgbToHex(...rgb);\n }\n if (!rgb) return {};\n const hsl = Utils.colorRgbToHsl(...rgb);\n const hslShade = [hsl[0], hsl[1], Math.max(0, (hsl[2] - 0.08))];\n const hslTint = [hsl[0], hsl[1], Math.max(0, (hsl[2] + 0.08))];\n const shade = Utils.colorRgbToHex(...Utils.colorHslToRgb(...hslShade));\n const tint = Utils.colorRgbToHex(...Utils.colorHslToRgb(...hslTint));\n return {\n '--f7-theme-color': hex,\n '--f7-theme-color-rgb': rgb.join(', '),\n '--f7-theme-color-shade': shade,\n '--f7-theme-color-tint': tint,\n };\n },\n};\nexport default Utils;\n","class EventsClass {\n constructor(parents = []) {\n const self = this;\n self.eventsParents = parents;\n self.eventsListeners = {};\n }\n\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach((event) => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n }\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n handler.apply(self, args);\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n }\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach((event) => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n }\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n let eventsParents;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n eventsParents = self.eventsParents;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n eventsParents = args[0].local ? [] : args[0].parents || self.eventsParents;\n }\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n const localEvents = eventsArray.map(eventName => eventName.replace('local::', ''));\n const parentEvents = eventsArray.filter(eventName => eventName.indexOf('local::') < 0);\n\n localEvents.forEach((event) => {\n if (self.eventsListeners && self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach((eventHandler) => {\n handlers.push(eventHandler);\n });\n handlers.forEach((eventHandler) => {\n eventHandler.apply(context, data);\n });\n }\n });\n if (eventsParents && eventsParents.length > 0) {\n eventsParents.forEach((eventsParent) => {\n eventsParent.emit(parentEvents, ...data);\n });\n }\n return self;\n }\n}\n\nexport default EventsClass;\n","import Utils from './utils';\nimport EventsClass from './events-class';\n\nclass Framework7Class extends EventsClass {\n constructor(params = {}, parents = []) {\n super(parents);\n const self = this;\n self.params = params;\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach((eventName) => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n\n // eslint-disable-next-line\n useModuleParams(module, instanceParams) {\n if (module.params) {\n const originalParams = {};\n Object.keys(module.params).forEach((paramKey) => {\n if (typeof instanceParams[paramKey] === 'undefined') return;\n originalParams[paramKey] = Utils.extend({}, instanceParams[paramKey]);\n });\n Utils.extend(instanceParams, module.params);\n Object.keys(originalParams).forEach((paramKey) => {\n Utils.extend(instanceParams[paramKey], originalParams[paramKey]);\n });\n }\n }\n\n useModulesParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n }\n\n useModule(moduleName = '', moduleParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n const module = typeof moduleName === 'string' ? instance.modules[moduleName] : moduleName;\n if (!module) return;\n\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach((modulePropName) => {\n const moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n // Add vnode hooks\n if (module.vnode) {\n if (!instance.vnodeHooks) instance.vnodeHooks = {};\n Object.keys(module.vnode).forEach((vnodeId) => {\n Object.keys(module.vnode[vnodeId]).forEach((hookName) => {\n const handler = module.vnode[vnodeId][hookName];\n if (!instance.vnodeHooks[hookName]) instance.vnodeHooks[hookName] = {};\n if (!instance.vnodeHooks[hookName][vnodeId]) instance.vnodeHooks[hookName][vnodeId] = [];\n instance.vnodeHooks[hookName][vnodeId].push(handler.bind(instance));\n });\n });\n }\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n }\n\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const moduleParams = modulesParams[moduleName] || {};\n instance.useModule(moduleName, moduleParams);\n });\n }\n\n static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n\n static installModule(module, ...params) {\n const Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n const name = module.name || (`${Object.keys(Class.prototype.modules).length}_${Utils.now()}`);\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach((key) => {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach((key) => {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n }\n\n static use(module, ...params) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach(m => Class.installModule(m));\n return Class;\n }\n return Class.installModule(module, ...params);\n }\n}\n\nexport default Framework7Class;\n","import $ from 'dom7';\n\nexport default function (parameters = {}) {\n const {\n defaultSelector,\n constructor: Constructor,\n domProp,\n app,\n addMethods,\n } = parameters;\n const methods = {\n create(...args) {\n if (app) return new Constructor(app, ...args);\n return new Constructor(...args);\n },\n get(el = defaultSelector) {\n if (el instanceof Constructor) return el;\n const $el = $(el);\n if ($el.length === 0) return undefined;\n return $el[0][domProp];\n },\n destroy(el) {\n const instance = methods.get(el);\n if (instance && instance.destroy) return instance.destroy();\n return undefined;\n },\n };\n if (addMethods && Array.isArray(addMethods)) {\n addMethods.forEach((methodName) => {\n methods[methodName] = (el = defaultSelector, ...args) => {\n const instance = methods.get(el);\n if (instance && instance[methodName]) return instance[methodName](...args);\n return undefined;\n };\n });\n }\n return methods;\n}\n","import $ from 'dom7';\nimport Utils from './utils';\nimport ConstructorMethods from './constructor-methods';\n\nexport default function (parameters = {}) {\n const { defaultSelector, constructor: Constructor, app } = parameters;\n const methods = Utils.extend(\n ConstructorMethods({\n defaultSelector,\n constructor: Constructor,\n app,\n domProp: 'f7Modal',\n }),\n {\n open(el, animate, targetEl) {\n let $el = $(el);\n if ($el.length > 1 && targetEl) {\n // check if same modal in other page\n const $targetPage = $(targetEl).parents('.page');\n if ($targetPage.length) {\n $el.each((index, modalEl) => {\n const $modalEl = $(modalEl);\n if ($modalEl.parents($targetPage)[0] === $targetPage[0]) {\n $el = $modalEl;\n }\n });\n }\n }\n if ($el.length > 1) {\n $el = $el.eq($el.length - 1);\n }\n if (!$el.length) return undefined;\n let instance = $el[0].f7Modal;\n if (!instance) {\n const params = $el.dataset();\n instance = new Constructor(app, { el: $el, ...params });\n }\n return instance.open(animate);\n },\n close(el = defaultSelector, animate, targetEl) {\n let $el = $(el);\n if (!$el.length) return undefined;\n if ($el.length > 1) {\n // check if close link (targetEl) in this modal\n let $parentEl;\n if (targetEl) {\n const $targetEl = $(targetEl);\n if ($targetEl.length) {\n $parentEl = $targetEl.parents($el);\n }\n }\n if ($parentEl && $parentEl.length > 0) {\n $el = $parentEl;\n } else {\n $el = $el.eq($el.length - 1);\n }\n }\n let instance = $el[0].f7Modal;\n if (!instance) {\n const params = $el.dataset();\n instance = new Constructor(app, { el: $el, ...params });\n }\n return instance.close(animate);\n },\n }\n );\n return methods;\n}\n","import $ from 'dom7';\nimport { window, document } from 'ssr-window';\nimport Utils from '../../utils/utils';\n\nconst fetchedModules = [];\nfunction loadModule(moduleToLoad) {\n const Framework7 = this;\n return new Promise((resolve, reject) => {\n const app = Framework7.instance;\n let modulePath;\n let moduleObj;\n let moduleFunc;\n if (!moduleToLoad) {\n reject(new Error('Framework7: Lazy module must be specified'));\n return;\n }\n\n function install(module) {\n Framework7.use(module);\n\n if (app) {\n app.useModuleParams(module, app.params);\n app.useModule(module);\n }\n }\n\n if (typeof moduleToLoad === 'string') {\n const matchNamePattern = moduleToLoad.match(/([a-z0-9-]*)/i);\n if (moduleToLoad.indexOf('.') < 0 && matchNamePattern && matchNamePattern[0].length === moduleToLoad.length) {\n if (!app || (app && !app.params.lazyModulesPath)) {\n reject(new Error('Framework7: \"lazyModulesPath\" app parameter must be specified to fetch module by name'));\n return;\n }\n modulePath = `${app.params.lazyModulesPath}/${moduleToLoad}.js`;\n } else {\n modulePath = moduleToLoad;\n }\n } else if (typeof moduleToLoad === 'function') {\n moduleFunc = moduleToLoad;\n } else {\n // considering F7-Plugin object\n moduleObj = moduleToLoad;\n }\n\n if (moduleFunc) {\n const module = moduleFunc(Framework7, false);\n if (!module) {\n reject(new Error('Framework7: Can\\'t find Framework7 component in specified component function'));\n return;\n }\n // Check if it was added\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolve();\n return;\n }\n // Install It\n install(module);\n\n resolve();\n }\n if (moduleObj) {\n const module = moduleObj;\n if (!module) {\n reject(new Error('Framework7: Can\\'t find Framework7 component in specified component'));\n return;\n }\n // Check if it was added\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolve();\n return;\n }\n // Install It\n install(module);\n\n resolve();\n }\n if (modulePath) {\n if (fetchedModules.indexOf(modulePath) >= 0) {\n resolve();\n return;\n }\n fetchedModules.push(modulePath);\n const scriptLoad = new Promise((resolveScript, rejectScript) => {\n Framework7.request.get(\n modulePath,\n (scriptContent) => {\n const id = Utils.id();\n const callbackLoadName = `f7_component_loader_callback_${id}`;\n\n const scriptEl = document.createElement('script');\n scriptEl.innerHTML = `window.${callbackLoadName} = function (Framework7, Framework7AutoInstallComponent) {return ${scriptContent.trim()}}`;\n $('head').append(scriptEl);\n\n const componentLoader = window[callbackLoadName];\n delete window[callbackLoadName];\n $(scriptEl).remove();\n\n const module = componentLoader(Framework7, false);\n\n if (!module) {\n rejectScript(new Error(`Framework7: Can't find Framework7 component in ${modulePath} file`));\n return;\n }\n\n // Check if it was added\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolveScript();\n return;\n }\n\n // Install It\n install(module);\n\n resolveScript();\n },\n (xhr, status) => {\n rejectScript(xhr, status);\n }\n );\n });\n const styleLoad = new Promise((resolveStyle) => {\n Framework7.request.get(\n modulePath.replace('.js', app.rtl ? '.rtl.css' : '.css'),\n (styleContent) => {\n const styleEl = document.createElement('style');\n styleEl.innerHTML = styleContent;\n $('head').append(styleEl);\n\n resolveStyle();\n },\n () => {\n resolveStyle();\n }\n );\n });\n\n Promise.all([scriptLoad, styleLoad]).then(() => {\n resolve();\n }).catch((err) => {\n reject(err);\n });\n }\n });\n}\n\nexport default loadModule;\n","import $ from 'dom7';\nimport Template7 from 'template7';\nimport { window, document } from 'ssr-window';\nimport Utils from '../../utils/utils';\nimport Device from '../../utils/device';\nimport Framework7Class from '../../utils/class';\nimport EventsClass from '../../utils/events-class';\nimport ConstructorMethods from '../../utils/constructor-methods';\nimport ModalMethods from '../../utils/modal-methods';\nimport loadModule from './load-module';\n\nclass Framework7 extends Framework7Class {\n constructor(params) {\n super(params);\n if (Framework7.instance) {\n throw new Error('Framework7 is already initialized and can\\'t be initialized more than once');\n }\n\n const passedParams = Utils.extend({}, params);\n\n // App Instance\n const app = this;\n\n Framework7.instance = app;\n\n // Default\n const defaults = {\n version: '1.0.0',\n id: 'io.framework7.testapp',\n root: 'body',\n theme: 'auto',\n language: window.navigator.language,\n routes: [],\n name: 'Framework7',\n lazyModulesPath: null,\n initOnDeviceReady: true,\n init: true,\n autoDarkTheme: false,\n iosTranslucentBars: true,\n iosTranslucentModals: true,\n component: undefined,\n componentUrl: undefined,\n };\n\n // Extend defaults with modules params\n app.useModulesParams(defaults);\n\n // Extend defaults with passed params\n app.params = Utils.extend(defaults, params);\n\n const $rootEl = $(app.params.root);\n\n Utils.extend(app, {\n // App Id\n id: app.params.id,\n // App Name\n name: app.params.name,\n // App version\n version: app.params.version,\n // Routes\n routes: app.params.routes,\n // Lang\n language: app.params.language,\n // Root\n root: $rootEl,\n // RTL\n rtl: $rootEl.css('direction') === 'rtl',\n // Theme\n theme: (function getTheme() {\n if (app.params.theme === 'auto') {\n if (Device.ios) return 'ios';\n if (Device.desktop && Device.electron) return 'aurora';\n return 'md';\n }\n return app.params.theme;\n }()),\n // Initially passed parameters\n passedParams,\n online: window.navigator.onLine,\n });\n\n // Save Root\n if (app.root && app.root[0]) {\n app.root[0].f7 = app;\n }\n\n // Install Modules\n app.useModules();\n\n // Init Data & Methods\n app.initData();\n\n // Auto Dark Theme\n const DARK = '(prefers-color-scheme: dark)';\n const LIGHT = '(prefers-color-scheme: light)';\n app.mq = {};\n if (window.matchMedia) {\n app.mq.dark = window.matchMedia(DARK);\n app.mq.light = window.matchMedia(LIGHT);\n }\n app.colorSchemeListener = function colorSchemeListener({ matches, media }) {\n if (!matches) {\n return;\n }\n const html = document.querySelector('html');\n if (media === DARK) {\n html.classList.add('theme-dark');\n app.darkTheme = true;\n app.emit('darkThemeChange', true);\n } else if (media === LIGHT) {\n html.classList.remove('theme-dark');\n app.darkTheme = false;\n app.emit('darkThemeChange', false);\n }\n };\n\n // Init\n if (app.params.init) {\n if (Device.cordova && app.params.initOnDeviceReady) {\n $(document).on('deviceready', () => {\n app.init();\n });\n } else {\n app.init();\n }\n }\n\n // Return app instance\n return app;\n }\n\n initData() {\n const app = this;\n\n // Data\n app.data = {};\n if (app.params.data && typeof app.params.data === 'function') {\n Utils.extend(app.data, app.params.data.bind(app)());\n } else if (app.params.data) {\n Utils.extend(app.data, app.params.data);\n }\n // Methods\n app.methods = {};\n if (app.params.methods) {\n Object.keys(app.params.methods).forEach((methodName) => {\n if (typeof app.params.methods[methodName] === 'function') {\n app.methods[methodName] = app.params.methods[methodName].bind(app);\n } else {\n app.methods[methodName] = app.params.methods[methodName];\n }\n });\n }\n }\n\n enableAutoDarkTheme() {\n if (!window.matchMedia) return;\n const app = this;\n const html = document.querySelector('html');\n if (app.mq.dark && app.mq.light) {\n app.mq.dark.addListener(app.colorSchemeListener);\n app.mq.light.addListener(app.colorSchemeListener);\n }\n if (app.mq.dark && app.mq.dark.matches) {\n html.classList.add('theme-dark');\n app.darkTheme = true;\n app.emit('darkThemeChange', true);\n } else if (app.mq.light && app.mq.light.matches) {\n html.classList.remove('theme-dark');\n app.darkTheme = false;\n app.emit('darkThemeChange', false);\n }\n }\n\n disableAutoDarkTheme() {\n if (!window.matchMedia) return;\n const app = this;\n if (app.mq.dark) app.mq.dark.removeListener(app.colorSchemeListener);\n if (app.mq.light) app.mq.light.removeListener(app.colorSchemeListener);\n }\n\n initAppComponent(callback) {\n const app = this;\n app.router.componentLoader(\n app.params.component,\n app.params.componentUrl,\n { componentOptions: { el: app.root[0], root: true } },\n (el) => {\n app.root = $(el);\n app.root[0].f7 = app;\n app.rootComponent = el.f7Component;\n if (callback) callback();\n },\n () => {}\n );\n }\n\n // eslint-disable-next-line\n _init() {\n const app = this;\n if (app.initialized) return app;\n\n app.root.addClass('framework7-initializing');\n\n // RTL attr\n if (app.rtl) {\n $('html').attr('dir', 'rtl');\n }\n\n // Auto Dark Theme\n if (app.params.autoDarkTheme) {\n app.enableAutoDarkTheme();\n }\n\n // Watch for online/offline state\n window.addEventListener('offline', () => {\n app.online = false;\n app.emit('offline');\n app.emit('connection', false);\n });\n window.addEventListener('online', () => {\n app.online = true;\n app.emit('online');\n app.emit('connection', true);\n });\n\n // Root class\n app.root.addClass('framework7-root');\n\n // Theme class\n $('html').removeClass('ios md aurora').addClass(app.theme);\n\n // iOS Translucent\n if (app.params.iosTranslucentBars && app.theme === 'ios' && Device.ios) {\n $('html').addClass('ios-translucent-bars');\n }\n if (app.params.iosTranslucentModals && app.theme === 'ios' && Device.ios) {\n $('html').addClass('ios-translucent-modals');\n }\n\n // Init class\n Utils.nextFrame(() => {\n app.root.removeClass('framework7-initializing');\n });\n // Emit, init other modules\n app.initialized = true;\n app.emit('init');\n\n return app;\n }\n\n init() {\n const app = this;\n if (app.params.component || app.params.componentUrl) {\n app.initAppComponent(() => {\n app._init(); // eslint-disable-line\n });\n } else {\n app._init(); // eslint-disable-line\n }\n }\n\n // eslint-disable-next-line\n loadModule(...args) {\n return Framework7.loadModule(...args);\n }\n\n // eslint-disable-next-line\n loadModules(...args) {\n return Framework7.loadModules(...args);\n }\n\n getVnodeHooks(hook, id) {\n const app = this;\n if (!app.vnodeHooks || !app.vnodeHooks[hook]) return [];\n return app.vnodeHooks[hook][id] || [];\n }\n\n // eslint-disable-next-line\n get $() {\n return $;\n }\n // eslint-disable-next-line\n get t7() {\n return Template7;\n }\n\n static get Dom7() {\n return $;\n }\n\n static get $() {\n return $;\n }\n\n static get Template7() {\n return Template7;\n }\n\n static get Class() {\n return Framework7Class;\n }\n\n static get Events() {\n return EventsClass;\n }\n}\n\nFramework7.ModalMethods = ModalMethods;\nFramework7.ConstructorMethods = ConstructorMethods;\n\nFramework7.loadModule = loadModule;\nFramework7.loadModules = function loadModules(modules) {\n return Promise.all(modules.map(module => Framework7.loadModule(module)));\n};\n\nexport default Framework7;\n","import { window, document } from 'ssr-window';\nimport Utils from './utils';\n\nconst globals = {};\nlet jsonpRequests = 0;\n\nfunction Request(requestOptions) {\n const globalsNoCallbacks = Utils.extend({}, globals);\n ('beforeCreate beforeOpen beforeSend error complete success statusCode').split(' ').forEach((callbackName) => {\n delete globalsNoCallbacks[callbackName];\n });\n const defaults = Utils.extend({\n url: window.location.toString(),\n method: 'GET',\n data: false,\n async: true,\n cache: true,\n user: '',\n password: '',\n headers: {},\n xhrFields: {},\n statusCode: {},\n processData: true,\n dataType: 'text',\n contentType: 'application/x-www-form-urlencoded',\n timeout: 0,\n }, globalsNoCallbacks);\n\n const options = Utils.extend({}, defaults, requestOptions);\n let proceedRequest;\n\n // Function to run XHR callbacks and events\n function fireCallback(callbackName, ...data) {\n /*\n Callbacks:\n beforeCreate (options),\n beforeOpen (xhr, options),\n beforeSend (xhr, options),\n error (xhr, status, message),\n complete (xhr, stautus),\n success (response, status, xhr),\n statusCode ()\n */\n let globalCallbackValue;\n let optionCallbackValue;\n if (globals[callbackName]) {\n globalCallbackValue = globals[callbackName](...data);\n }\n if (options[callbackName]) {\n optionCallbackValue = options[callbackName](...data);\n }\n if (typeof globalCallbackValue !== 'boolean') globalCallbackValue = true;\n if (typeof optionCallbackValue !== 'boolean') optionCallbackValue = true;\n return (globalCallbackValue && optionCallbackValue);\n }\n\n // Before create callback\n proceedRequest = fireCallback('beforeCreate', options);\n if (proceedRequest === false) return undefined;\n\n // For jQuery guys\n if (options.type) options.method = options.type;\n\n // Parameters Prefix\n let paramsPrefix = options.url.indexOf('?') >= 0 ? '&' : '?';\n\n // UC method\n const method = options.method.toUpperCase();\n\n // Data to modify GET URL\n if ((method === 'GET' || method === 'HEAD' || method === 'OPTIONS' || method === 'DELETE') && options.data) {\n let stringData;\n if (typeof options.data === 'string') {\n // Should be key=value string\n if (options.data.indexOf('?') >= 0) stringData = options.data.split('?')[1];\n else stringData = options.data;\n } else {\n // Should be key=value object\n stringData = Utils.serializeObject(options.data);\n }\n if (stringData.length) {\n options.url += paramsPrefix + stringData;\n if (paramsPrefix === '?') paramsPrefix = '&';\n }\n }\n\n // JSONP\n if (options.dataType === 'json' && options.url.indexOf('callback=') >= 0) {\n const callbackName = `f7jsonp_${Date.now() + ((jsonpRequests += 1))}`;\n let abortTimeout;\n const callbackSplit = options.url.split('callback=');\n let requestUrl = `${callbackSplit[0]}callback=${callbackName}`;\n if (callbackSplit[1].indexOf('&') >= 0) {\n const addVars = callbackSplit[1].split('&').filter(el => el.indexOf('=') > 0).join('&');\n if (addVars.length > 0) requestUrl += `&${addVars}`;\n }\n\n // Create script\n let script = document.createElement('script');\n script.type = 'text/javascript';\n script.onerror = function onerror() {\n clearTimeout(abortTimeout);\n fireCallback('error', null, 'scripterror', 'scripterror');\n fireCallback('complete', null, 'scripterror');\n };\n script.src = requestUrl;\n\n // Handler\n window[callbackName] = function jsonpCallback(data) {\n clearTimeout(abortTimeout);\n fireCallback('success', data);\n script.parentNode.removeChild(script);\n script = null;\n delete window[callbackName];\n };\n document.querySelector('head').appendChild(script);\n\n if (options.timeout > 0) {\n abortTimeout = setTimeout(() => {\n script.parentNode.removeChild(script);\n script = null;\n fireCallback('error', null, 'timeout', 'timeout');\n }, options.timeout);\n }\n\n return undefined;\n }\n\n // Cache for GET/HEAD requests\n if (method === 'GET' || method === 'HEAD' || method === 'OPTIONS' || method === 'DELETE') {\n if (options.cache === false) {\n options.url += `${paramsPrefix}_nocache${Date.now()}`;\n }\n }\n\n // Create XHR\n const xhr = new XMLHttpRequest();\n\n // Save Request URL\n xhr.requestUrl = options.url;\n xhr.requestParameters = options;\n\n // Before open callback\n proceedRequest = fireCallback('beforeOpen', xhr, options);\n if (proceedRequest === false) return xhr;\n\n // Open XHR\n xhr.open(method, options.url, options.async, options.user, options.password);\n\n // Create POST Data\n let postData = null;\n\n if ((method === 'POST' || method === 'PUT' || method === 'PATCH') && options.data) {\n if (options.processData) {\n const postDataInstances = [ArrayBuffer, Blob, Document, FormData];\n // Post Data\n if (postDataInstances.indexOf(options.data.constructor) >= 0) {\n postData = options.data;\n } else {\n // POST Headers\n const boundary = `---------------------------${Date.now().toString(16)}`;\n\n if (options.contentType === 'multipart/form-data') {\n xhr.setRequestHeader('Content-Type', `multipart/form-data; boundary=${boundary}`);\n } else {\n xhr.setRequestHeader('Content-Type', options.contentType);\n }\n postData = '';\n let data = Utils.serializeObject(options.data);\n if (options.contentType === 'multipart/form-data') {\n data = data.split('&');\n const newData = [];\n for (let i = 0; i < data.length; i += 1) {\n newData.push(`Content-Disposition: form-data; name=\"${data[i].split('=')[0]}\"\\r\\n\\r\\n${data[i].split('=')[1]}\\r\\n`);\n }\n postData = `--${boundary}\\r\\n${newData.join(`--${boundary}\\r\\n`)}--${boundary}--\\r\\n`;\n } else if (options.contentType === 'application/json') {\n postData = JSON.stringify(options.data);\n } else {\n postData = data;\n }\n }\n } else {\n postData = options.data;\n xhr.setRequestHeader('Content-Type', options.contentType);\n }\n }\n if (options.dataType === 'json' && (!options.headers || !options.headers.Accept)) {\n xhr.setRequestHeader('Accept', 'application/json');\n }\n\n // Additional headers\n if (options.headers) {\n Object.keys(options.headers).forEach((headerName) => {\n if (typeof options.headers[headerName] === 'undefined') return;\n xhr.setRequestHeader(headerName, options.headers[headerName]);\n });\n }\n\n // Check for crossDomain\n if (typeof options.crossDomain === 'undefined') {\n // eslint-disable-next-line\n options.crossDomain = /^([\\w-]+:)?\\/\\/([^\\/]+)/.test(options.url) && RegExp.$2 !== window.location.host;\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n if (options.xhrFields) {\n Utils.extend(xhr, options.xhrFields);\n }\n\n\n // Handle XHR\n xhr.onload = function onload() {\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 0) {\n let responseData;\n if (options.dataType === 'json') {\n let parseError;\n try {\n responseData = JSON.parse(xhr.responseText);\n } catch (err) {\n parseError = true;\n }\n if (!parseError) {\n fireCallback('success', responseData, xhr.status, xhr);\n } else {\n fireCallback('error', xhr, 'parseerror', 'parseerror');\n }\n } else {\n responseData = xhr.responseType === 'text' || xhr.responseType === '' ? xhr.responseText : xhr.response;\n fireCallback('success', responseData, xhr.status, xhr);\n }\n } else {\n fireCallback('error', xhr, xhr.status, xhr.statusText);\n }\n if (options.statusCode) {\n if (globals.statusCode && globals.statusCode[xhr.status]) globals.statusCode[xhr.status](xhr);\n if (options.statusCode[xhr.status]) options.statusCode[xhr.status](xhr);\n }\n fireCallback('complete', xhr, xhr.status);\n };\n\n xhr.onerror = function onerror() {\n fireCallback('error', xhr, xhr.status, xhr.status);\n fireCallback('complete', xhr, 'error');\n };\n\n // Timeout\n if (options.timeout > 0) {\n xhr.timeout = options.timeout;\n xhr.ontimeout = () => {\n fireCallback('error', xhr, 'timeout', 'timeout');\n fireCallback('complete', xhr, 'timeout');\n };\n }\n\n // Ajax start callback\n proceedRequest = fireCallback('beforeSend', xhr, options);\n if (proceedRequest === false) return xhr;\n\n // Send XHR\n xhr.send(postData);\n\n // Return XHR object\n return xhr;\n}\nfunction RequestShortcut(method, ...args) {\n let [url, data, success, error, dataType] = [];\n if (typeof args[1] === 'function') {\n [url, success, error, dataType] = args;\n } else {\n [url, data, success, error, dataType] = args;\n }\n [success, error].forEach((callback) => {\n if (typeof callback === 'string') {\n dataType = callback;\n if (callback === success) success = undefined;\n else error = undefined;\n }\n });\n dataType = dataType || (method === 'json' || method === 'postJSON' ? 'json' : undefined);\n const requestOptions = {\n url,\n method: method === 'post' || method === 'postJSON' ? 'POST' : 'GET',\n data,\n success,\n error,\n dataType,\n };\n if (method === 'postJSON') {\n Utils.extend(requestOptions, {\n contentType: 'application/json',\n processData: false,\n crossDomain: true,\n data: typeof data === 'string' ? data : JSON.stringify(data),\n });\n }\n return Request(requestOptions);\n}\nfunction RequestShortcutPromise(method, ...args) {\n const [url, data, dataType] = args;\n return new Promise((resolve, reject) => {\n RequestShortcut(\n method,\n url,\n data,\n (responseData, status, xhr) => {\n resolve({ data: responseData, status, xhr });\n },\n (xhr, status, message) => {\n // eslint-disable-next-line\n reject({ xhr, status, message });\n },\n dataType\n );\n });\n}\nObject.assign(Request, {\n get: (...args) => RequestShortcut('get', ...args),\n post: (...args) => RequestShortcut('post', ...args),\n json: (...args) => RequestShortcut('json', ...args),\n getJSON: (...args) => RequestShortcut('json', ...args),\n postJSON: (...args) => RequestShortcut('postJSON', ...args),\n});\n\nRequest.promise = function requestPromise(requestOptions) {\n return new Promise((resolve, reject) => {\n Request(Object.assign(requestOptions, {\n success(data, status, xhr) {\n resolve({ data, status, xhr });\n },\n error(xhr, status, message) {\n // eslint-disable-next-line\n reject({ xhr, status, message });\n },\n }));\n });\n};\nObject.assign(Request.promise, {\n get: (...args) => RequestShortcutPromise('get', ...args),\n post: (...args) => RequestShortcutPromise('post', ...args),\n json: (...args) => RequestShortcutPromise('json', ...args),\n getJSON: (...args) => RequestShortcutPromise('json', ...args),\n postJSON: (...args) => RequestShortcutPromise('postJSON', ...args),\n});\n\nRequest.setup = function setup(options) {\n if (options.type && !options.method) {\n Utils.extend(options, { method: options.type });\n }\n Utils.extend(globals, options);\n};\n\nexport default Request;\n","import { document } from 'ssr-window';\nimport Device from '../../utils/device';\n\nexport default {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n on: {\n init() {\n const classNames = [];\n const html = document.querySelector('html');\n const metaStatusbar = document.querySelector('meta[name=\"apple-mobile-web-app-status-bar-style\"]');\n if (!html) return;\n if (Device.standalone && Device.ios && metaStatusbar && metaStatusbar.content === 'black-translucent') {\n classNames.push('device-full-viewport');\n }\n\n // Pixel Ratio\n classNames.push(`device-pixel-ratio-${Math.floor(Device.pixelRatio)}`);\n // OS classes\n if (Device.os && !Device.desktop) {\n classNames.push(\n `device-${Device.os}`,\n );\n } else if (Device.desktop) {\n classNames.push('device-desktop');\n if (Device.os) {\n classNames.push(`device-${Device.os}`);\n }\n }\n if (Device.cordova || Device.phonegap) {\n classNames.push('device-cordova');\n }\n\n // Add html classes\n classNames.forEach((className) => {\n html.classList.add(className);\n });\n },\n },\n};\n","import Support from '../../utils/support';\n\nexport default {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n};\n","import Utils from '../../utils/utils';\n\nexport default {\n name: 'utils',\n proto: {\n utils: Utils,\n },\n static: {\n utils: Utils,\n },\n};\n","import { window, document } from 'ssr-window';\n\nexport default {\n name: 'resize',\n instance: {\n getSize() {\n const app = this;\n if (!app.root[0]) return { width: 0, height: 0, left: 0, top: 0 };\n const offset = app.root.offset();\n const [width, height, left, top] = [app.root[0].offsetWidth, app.root[0].offsetHeight, offset.left, offset.top];\n app.width = width;\n app.height = height;\n app.left = left;\n app.top = top;\n return { width, height, left, top };\n },\n },\n on: {\n init() {\n const app = this;\n\n // Get Size\n app.getSize();\n\n // Emit resize\n window.addEventListener('resize', () => {\n app.emit('resize');\n }, false);\n\n // Emit orientationchange\n window.addEventListener('orientationchange', () => {\n app.emit('orientationchange');\n });\n },\n orientationchange() {\n const app = this;\n // Fix iPad weird body scroll\n if (app.device.ipad) {\n document.body.scrollLeft = 0;\n setTimeout(() => {\n document.body.scrollLeft = 0;\n }, 0);\n }\n },\n resize() {\n const app = this;\n app.getSize();\n },\n },\n};\n","/* eslint no-param-reassign: \"off\" */\nimport Request from '../../utils/request';\n\nexport default {\n name: 'request',\n proto: {\n request: Request,\n },\n static: {\n request: Request,\n },\n};\n","/* eslint-disable no-nested-ternary */\nimport { window, document } from 'ssr-window';\nimport $ from 'dom7';\nimport Support from '../../utils/support';\nimport Device from '../../utils/device';\n\nfunction initTouch() {\n const app = this;\n const params = app.params.touch;\n const useRipple = params[`${app.theme}TouchRipple`];\n\n if (Device.ios && Device.webView) {\n // Strange hack required for iOS 8 webview to work on inputs\n window.addEventListener('touchstart', () => {});\n }\n\n let touchStartX;\n let touchStartY;\n let targetElement;\n let isMoved;\n let tapHoldFired;\n let tapHoldTimeout;\n let preventClick;\n\n let activableElement;\n let activeTimeout;\n\n let rippleWave;\n let rippleTarget;\n let rippleTimeout;\n\n function findActivableElement(el) {\n const target = $(el);\n const parents = target.parents(params.activeStateElements);\n if (target.closest('.no-active-state').length) {\n return null;\n }\n let activable;\n if (target.is(params.activeStateElements)) {\n activable = target;\n }\n if (parents.length > 0) {\n activable = activable ? activable.add(parents) : parents;\n }\n if (activable && activable.length > 1) {\n const newActivable = [];\n let preventPropagation;\n for (let i = 0; i < activable.length; i += 1) {\n if (!preventPropagation) {\n newActivable.push(activable[i]);\n if (activable.eq(i).hasClass('prevent-active-state-propagation')\n || activable.eq(i).hasClass('no-active-state-propagation')\n ) {\n preventPropagation = true;\n }\n }\n }\n activable = $(newActivable);\n }\n return activable || target;\n }\n\n function isInsideScrollableView(el) {\n const pageContent = el.parents('.page-content');\n return pageContent.length > 0;\n }\n\n function addActive() {\n if (!activableElement) return;\n activableElement.addClass('active-state');\n }\n function removeActive() {\n if (!activableElement) return;\n activableElement.removeClass('active-state');\n activableElement = null;\n }\n\n // Ripple handlers\n function findRippleElement(el) {\n const rippleElements = params.touchRippleElements;\n const $el = $(el);\n if ($el.is(rippleElements)) {\n if ($el.hasClass('no-ripple')) {\n return false;\n }\n return $el;\n }\n if ($el.parents(rippleElements).length > 0) {\n const rippleParent = $el.parents(rippleElements).eq(0);\n if (rippleParent.hasClass('no-ripple')) {\n return false;\n }\n return rippleParent;\n }\n return false;\n }\n function createRipple($el, x, y) {\n if (!$el) return;\n rippleWave = app.touchRipple.create($el, x, y);\n }\n\n function removeRipple() {\n if (!rippleWave) return;\n rippleWave.remove();\n rippleWave = undefined;\n rippleTarget = undefined;\n }\n function rippleTouchStart(el) {\n rippleTarget = findRippleElement(el);\n if (!rippleTarget || rippleTarget.length === 0) {\n rippleTarget = undefined;\n return;\n }\n const inScrollable = isInsideScrollableView(rippleTarget);\n\n if (!inScrollable) {\n removeRipple();\n createRipple(rippleTarget, touchStartX, touchStartY);\n } else {\n clearTimeout(rippleTimeout);\n rippleTimeout = setTimeout(() => {\n removeRipple();\n createRipple(rippleTarget, touchStartX, touchStartY);\n }, 80);\n }\n }\n function rippleTouchMove() {\n clearTimeout(rippleTimeout);\n removeRipple();\n }\n function rippleTouchEnd() {\n if (!rippleWave && rippleTarget && !isMoved) {\n clearTimeout(rippleTimeout);\n createRipple(rippleTarget, touchStartX, touchStartY);\n setTimeout(removeRipple, 0);\n } else {\n removeRipple();\n }\n }\n\n // Mouse Handlers\n function handleMouseDown(e) {\n const $activableEl = findActivableElement(e.target);\n if ($activableEl) {\n $activableEl.addClass('active-state');\n if ('which' in e && e.which === 3) {\n setTimeout(() => {\n $('.active-state').removeClass('active-state');\n }, 0);\n }\n }\n\n if (useRipple) {\n touchStartX = e.pageX;\n touchStartY = e.pageY;\n rippleTouchStart(e.target, e.pageX, e.pageY);\n }\n }\n function handleMouseMove() {\n if (!params.activeStateOnMouseMove) {\n $('.active-state').removeClass('active-state');\n }\n if (useRipple) {\n rippleTouchMove();\n }\n }\n function handleMouseUp() {\n $('.active-state').removeClass('active-state');\n if (useRipple) {\n rippleTouchEnd();\n }\n }\n\n function handleTouchCancel() {\n targetElement = null;\n\n // Remove Active State\n clearTimeout(activeTimeout);\n clearTimeout(tapHoldTimeout);\n if (params.activeState) {\n removeActive();\n }\n\n // Remove Ripple\n if (useRipple) {\n rippleTouchEnd();\n }\n }\n\n function handleTouchStart(e) {\n isMoved = false;\n tapHoldFired = false;\n preventClick = false;\n if (e.targetTouches.length > 1) {\n if (activableElement) removeActive();\n return true;\n }\n if (e.touches.length > 1 && activableElement) {\n removeActive();\n }\n if (params.tapHold) {\n if (tapHoldTimeout) clearTimeout(tapHoldTimeout);\n tapHoldTimeout = setTimeout(() => {\n if (e && e.touches && e.touches.length > 1) return;\n tapHoldFired = true;\n e.preventDefault();\n preventClick = true;\n $(e.target).trigger('taphold', e);\n app.emit('taphold', e);\n }, params.tapHoldDelay);\n }\n targetElement = e.target;\n touchStartX = e.targetTouches[0].pageX;\n touchStartY = e.targetTouches[0].pageY;\n\n if (params.activeState) {\n activableElement = findActivableElement(targetElement);\n if (activableElement && !isInsideScrollableView(activableElement)) {\n addActive();\n } else if (activableElement) {\n activeTimeout = setTimeout(addActive, 80);\n }\n }\n if (useRipple) {\n rippleTouchStart(targetElement, touchStartX, touchStartY);\n }\n return true;\n }\n function handleTouchMove(e) {\n let touch;\n let distance;\n if (e.type === 'touchmove') {\n touch = e.targetTouches[0];\n distance = params.touchClicksDistanceThreshold;\n }\n\n if (distance && touch) {\n const pageX = touch.pageX;\n const pageY = touch.pageY;\n if (Math.abs(pageX - touchStartX) > distance || Math.abs(pageY - touchStartY) > distance) {\n isMoved = true;\n }\n } else {\n isMoved = true;\n }\n if (isMoved) {\n preventClick = true;\n if (params.tapHold) {\n clearTimeout(tapHoldTimeout);\n }\n if (params.activeState) {\n clearTimeout(activeTimeout);\n removeActive();\n }\n if (useRipple) {\n rippleTouchMove();\n }\n }\n }\n function handleTouchEnd(e) {\n clearTimeout(activeTimeout);\n clearTimeout(tapHoldTimeout);\n if (document.activeElement === e.target) {\n if (params.activeState) removeActive();\n if (useRipple) {\n rippleTouchEnd();\n }\n return true;\n }\n if (params.activeState) {\n addActive();\n setTimeout(removeActive, 0);\n }\n if (useRipple) {\n rippleTouchEnd();\n }\n if ((params.tapHoldPreventClicks && tapHoldFired) || preventClick) {\n if (e.cancelable) e.preventDefault();\n preventClick = true;\n return false;\n }\n return true;\n }\n function handleClick(e) {\n const isOverswipe = e && e.detail && e.detail === 'f7Overswipe';\n let localPreventClick = preventClick;\n if (targetElement && e.target !== targetElement) {\n if (isOverswipe) {\n localPreventClick = false;\n } else {\n localPreventClick = true;\n }\n }\n if (params.tapHold && params.tapHoldPreventClicks && tapHoldFired) {\n localPreventClick = true;\n }\n if (localPreventClick) {\n e.stopImmediatePropagation();\n e.stopPropagation();\n e.preventDefault();\n }\n\n if (params.tapHold) {\n tapHoldTimeout = setTimeout(\n () => {\n tapHoldFired = false;\n },\n (Device.ios || Device.androidChrome ? 100 : 400)\n );\n }\n preventClick = false;\n targetElement = null;\n\n return !localPreventClick;\n }\n\n function emitAppTouchEvent(name, e) {\n app.emit({\n events: name,\n data: [e],\n });\n }\n function appClick(e) {\n emitAppTouchEvent('click', e);\n }\n function appTouchStartActive(e) {\n emitAppTouchEvent('touchstart touchstart:active', e);\n }\n function appTouchMoveActive(e) {\n emitAppTouchEvent('touchmove touchmove:active', e);\n }\n function appTouchEndActive(e) {\n emitAppTouchEvent('touchend touchend:active', e);\n }\n function appTouchStartPassive(e) {\n emitAppTouchEvent('touchstart:passive', e);\n }\n function appTouchMovePassive(e) {\n emitAppTouchEvent('touchmove:passive', e);\n }\n function appTouchEndPassive(e) {\n emitAppTouchEvent('touchend:passive', e);\n }\n function appGestureActive(e) {\n emitAppTouchEvent(`${e.type} ${e.type}:active`, e);\n }\n function appGesturePassive(e) {\n emitAppTouchEvent(`${e.type}:passive`, e);\n }\n\n\n const passiveListener = Support.passiveListener ? { passive: true } : false;\n const passiveListenerCapture = Support.passiveListener ? { passive: true, capture: true } : true;\n const activeListener = Support.passiveListener ? { passive: false } : false;\n const activeListenerCapture = Support.passiveListener ? { passive: false, capture: true } : true;\n\n document.addEventListener('click', appClick, true);\n\n if (Support.passiveListener) {\n document.addEventListener(app.touchEvents.start, appTouchStartActive, activeListenerCapture);\n document.addEventListener(app.touchEvents.move, appTouchMoveActive, activeListener);\n document.addEventListener(app.touchEvents.end, appTouchEndActive, activeListener);\n\n document.addEventListener(app.touchEvents.start, appTouchStartPassive, passiveListenerCapture);\n document.addEventListener(app.touchEvents.move, appTouchMovePassive, passiveListener);\n document.addEventListener(app.touchEvents.end, appTouchEndPassive, passiveListener);\n if (Support.touch && Support.gestures) {\n document.addEventListener('gesturestart', appGestureActive, activeListener);\n document.addEventListener('gesturechange', appGestureActive, activeListener);\n document.addEventListener('gestureend', appGestureActive, activeListener);\n\n document.addEventListener('gesturestart', appGesturePassive, passiveListener);\n document.addEventListener('gesturechange', appGesturePassive, passiveListener);\n document.addEventListener('gestureend', appGesturePassive, passiveListener);\n }\n } else {\n document.addEventListener(app.touchEvents.start, (e) => {\n appTouchStartActive(e);\n appTouchStartPassive(e);\n }, true);\n document.addEventListener(app.touchEvents.move, (e) => {\n appTouchMoveActive(e);\n appTouchMovePassive(e);\n }, false);\n document.addEventListener(app.touchEvents.end, (e) => {\n appTouchEndActive(e);\n appTouchEndPassive(e);\n }, false);\n if (Support.touch && Support.gestures) {\n document.addEventListener('gesturestart', (e) => {\n appGestureActive(e);\n appGesturePassive(e);\n }, false);\n document.addEventListener('gesturechange', (e) => {\n appGestureActive(e);\n appGesturePassive(e);\n }, false);\n document.addEventListener('gestureend', (e) => {\n appGestureActive(e);\n appGesturePassive(e);\n }, false);\n }\n }\n\n if (Support.touch) {\n app.on('click', handleClick);\n app.on('touchstart', handleTouchStart);\n app.on('touchmove', handleTouchMove);\n app.on('touchend', handleTouchEnd);\n document.addEventListener('touchcancel', handleTouchCancel, { passive: true });\n } else if (params.activeState) {\n app.on('touchstart', handleMouseDown);\n app.on('touchmove', handleMouseMove);\n app.on('touchend', handleMouseUp);\n document.addEventListener('pointercancel', handleMouseUp, { passive: true });\n }\n document.addEventListener('contextmenu', (e) => {\n if (params.disableContextMenu && (Device.ios || Device.android || Device.cordova)) {\n e.preventDefault();\n }\n if (useRipple) {\n if (activableElement) removeActive();\n rippleTouchEnd();\n }\n });\n}\n\nexport default {\n name: 'touch',\n params: {\n touch: {\n // Clicks\n touchClicksDistanceThreshold: 5,\n // ContextMenu\n disableContextMenu: false,\n // Tap Hold\n tapHold: false,\n tapHoldDelay: 750,\n tapHoldPreventClicks: true,\n // Active State\n activeState: true,\n activeStateElements: 'a, button, label, span, .actions-button, .stepper-button, .stepper-button-plus, .stepper-button-minus, .card-expandable, .menu-item, .link, .item-link, .accordion-item-toggle',\n activeStateOnMouseMove: false,\n mdTouchRipple: true,\n iosTouchRipple: false,\n auroraTouchRipple: false,\n touchRippleElements: '.ripple, .link, .item-link, .list-button, .links-list a, .button, button, .input-clear-button, .dialog-button, .tab-link, .item-radio, .item-checkbox, .actions-button, .searchbar-disable-button, .fab a, .checkbox, .radio, .data-table .sortable-cell:not(.input-cell), .notification-close-button, .stepper-button, .stepper-button-minus, .stepper-button-plus, .menu-item-content, .list.accordion-list .accordion-item-toggle',\n },\n },\n instance: {\n touchEvents: {\n start: Support.touch ? 'touchstart' : (Support.pointerEvents ? 'pointerdown' : 'mousedown'),\n move: Support.touch ? 'touchmove' : (Support.pointerEvents ? 'pointermove' : 'mousemove'),\n end: Support.touch ? 'touchend' : (Support.pointerEvents ? 'pointerup' : 'mouseup'),\n },\n },\n on: {\n init: initTouch,\n },\n};\n","/**\n * Tokenize input string.\n */\nfunction lexer(str) {\n var tokens = [];\n var i = 0;\n while (i < str.length) {\n var char = str[i];\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n if (char === \":\") {\n var name = \"\";\n var j = i + 1;\n while (j < str.length) {\n var code = str.charCodeAt(j);\n if (\n // `0-9`\n (code >= 48 && code <= 57) ||\n // `A-Z`\n (code >= 65 && code <= 90) ||\n // `a-z`\n (code >= 97 && code <= 122) ||\n // `_`\n code === 95) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name)\n throw new TypeError(\"Missing parameter name at \" + i);\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n if (char === \"(\") {\n var count = 1;\n var pattern = \"\";\n var j = i + 1;\n if (str[j] === \"?\") {\n throw new TypeError(\"Pattern cannot start with \\\"?\\\" at \" + j);\n }\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n }\n else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(\"Capturing groups are not allowed at \" + j);\n }\n }\n pattern += str[j++];\n }\n if (count)\n throw new TypeError(\"Unbalanced pattern at \" + i);\n if (!pattern)\n throw new TypeError(\"Missing pattern at \" + i);\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n tokens.push({ type: \"END\", index: i, value: \"\" });\n return tokens;\n}\n/**\n * Parse a string for the raw tokens.\n */\nexport function parse(str, options) {\n if (options === void 0) { options = {}; }\n var tokens = lexer(str);\n var _a = options.prefixes, prefixes = _a === void 0 ? \"./\" : _a;\n var defaultPattern = \"[^\" + escapeString(options.delimiter || \"/#?\") + \"]+?\";\n var result = [];\n var key = 0;\n var i = 0;\n var path = \"\";\n var tryConsume = function (type) {\n if (i < tokens.length && tokens[i].type === type)\n return tokens[i++].value;\n };\n var mustConsume = function (type) {\n var value = tryConsume(type);\n if (value !== undefined)\n return value;\n var _a = tokens[i], nextType = _a.type, index = _a.index;\n throw new TypeError(\"Unexpected \" + nextType + \" at \" + index + \", expected \" + type);\n };\n var consumeText = function () {\n var result = \"\";\n var value;\n // tslint:disable-next-line\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n while (i < tokens.length) {\n var char = tryConsume(\"CHAR\");\n var name = tryConsume(\"NAME\");\n var pattern = tryConsume(\"PATTERN\");\n if (name || pattern) {\n var prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n result.push({\n name: name || key++,\n prefix: prefix,\n suffix: \"\",\n pattern: pattern || defaultPattern,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n var value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n var open = tryConsume(\"OPEN\");\n if (open) {\n var prefix = consumeText();\n var name_1 = tryConsume(\"NAME\") || \"\";\n var pattern_1 = tryConsume(\"PATTERN\") || \"\";\n var suffix = consumeText();\n mustConsume(\"CLOSE\");\n result.push({\n name: name_1 || (pattern_1 ? key++ : \"\"),\n pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1,\n prefix: prefix,\n suffix: suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n mustConsume(\"END\");\n }\n return result;\n}\n/**\n * Compile a string to a template function for the path.\n */\nexport function compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\n/**\n * Expose a method for transforming tokens into the path function.\n */\nexport function tokensToFunction(tokens, options) {\n if (options === void 0) { options = {}; }\n var reFlags = flags(options);\n var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;\n // Compile all the tokens into regexps.\n var matches = tokens.map(function (token) {\n if (typeof token === \"object\") {\n return new RegExp(\"^(?:\" + token.pattern + \")$\", reFlags);\n }\n });\n return function (data) {\n var path = \"\";\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n var value = data ? data[token.name] : undefined;\n var optional = token.modifier === \"?\" || token.modifier === \"*\";\n var repeat = token.modifier === \"*\" || token.modifier === \"+\";\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to not repeat, but got an array\");\n }\n if (value.length === 0) {\n if (optional)\n continue;\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to not be empty\");\n }\n for (var j = 0; j < value.length; j++) {\n var segment = encode(value[j], token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected all \\\"\" + token.name + \"\\\" to match \\\"\" + token.pattern + \"\\\", but got \\\"\" + segment + \"\\\"\");\n }\n path += token.prefix + segment + token.suffix;\n }\n continue;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n var segment = encode(String(value), token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to match \\\"\" + token.pattern + \"\\\", but got \\\"\" + segment + \"\\\"\");\n }\n path += token.prefix + segment + token.suffix;\n continue;\n }\n if (optional)\n continue;\n var typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to be \" + typeOfMessage);\n }\n return path;\n };\n}\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nexport function match(str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys, options);\n}\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nexport function regexpToFunction(re, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.decode, decode = _a === void 0 ? function (x) { return x; } : _a;\n return function (pathname) {\n var m = re.exec(pathname);\n if (!m)\n return false;\n var path = m[0], index = m.index;\n var params = Object.create(null);\n var _loop_1 = function (i) {\n // tslint:disable-next-line\n if (m[i] === undefined)\n return \"continue\";\n var key = keys[i - 1];\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map(function (value) {\n return decode(value, key);\n });\n }\n else {\n params[key.name] = decode(m[i], key);\n }\n };\n for (var i = 1; i < m.length; i++) {\n _loop_1(i);\n }\n return { path: path, index: index, params: params };\n };\n}\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path, keys) {\n if (!keys)\n return path;\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\"\n });\n }\n }\n return path;\n}\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(paths, keys, options) {\n var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; });\n return new RegExp(\"(?:\" + parts.join(\"|\") + \")\", flags(options));\n}\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nexport function tokensToRegexp(tokens, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d;\n var endsWith = \"[\" + escapeString(options.endsWith || \"\") + \"]|$\";\n var delimiter = \"[\" + escapeString(options.delimiter || \"/#?\") + \"]\";\n var route = start ? \"^\" : \"\";\n // Iterate over the tokens and create our regexp string.\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n }\n else {\n var prefix = escapeString(encode(token.prefix));\n var suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys)\n keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n var mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += \"(?:\" + prefix + \"((?:\" + token.pattern + \")(?:\" + suffix + prefix + \"(?:\" + token.pattern + \"))*)\" + suffix + \")\" + mod;\n }\n else {\n route += \"(?:\" + prefix + \"(\" + token.pattern + \")\" + suffix + \")\" + token.modifier;\n }\n }\n else {\n route += \"(\" + token.pattern + \")\" + token.modifier;\n }\n }\n else {\n route += \"(?:\" + prefix + suffix + \")\" + token.modifier;\n }\n }\n }\n if (end) {\n if (!strict)\n route += delimiter + \"?\";\n route += !options.endsWith ? \"$\" : \"(?=\" + endsWith + \")\";\n }\n else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === \"string\"\n ? delimiter.indexOf(endToken[endToken.length - 1]) > -1\n : // tslint:disable-next-line\n endToken === undefined;\n if (!strict) {\n route += \"(?:\" + delimiter + \"(?=\" + endsWith + \"))?\";\n }\n if (!isEndDelimited) {\n route += \"(?=\" + delimiter + \"|\" + endsWith + \")\";\n }\n }\n return new RegExp(route, flags(options));\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 */\nexport function pathToRegexp(path, keys, options) {\n if (path instanceof RegExp)\n return regexpToRegexp(path, keys);\n if (Array.isArray(path))\n return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\n//# sourceMappingURL=index.js.map","import { window, document } from 'ssr-window';\nimport $ from 'dom7';\nimport Utils from './utils';\n\nconst History = {\n queue: [],\n clearQueue() {\n if (History.queue.length === 0) return;\n const currentQueue = History.queue.shift();\n currentQueue();\n },\n routerQueue: [],\n clearRouterQueue() {\n if (History.routerQueue.length === 0) return;\n const currentQueue = History.routerQueue.pop();\n const { router, stateUrl, action } = currentQueue;\n\n let animate = router.params.animate;\n if (router.params.pushStateAnimate === false) animate = false;\n\n if (action === 'back') {\n router.back({ animate, pushState: false });\n }\n if (action === 'load') {\n router.navigate(stateUrl, { animate, pushState: false });\n }\n },\n handle(e) {\n if (History.blockPopstate) return;\n const app = this;\n // const mainView = app.views.main;\n let state = e.state;\n History.previousState = History.state;\n History.state = state;\n\n History.allowChange = true;\n History.clearQueue();\n\n state = History.state;\n if (!state) state = {};\n\n app.views.forEach((view) => {\n const router = view.router;\n let viewState = state[view.id];\n if (!viewState && view.params.pushState) {\n viewState = {\n url: view.router.history[0],\n };\n }\n if (!viewState) return;\n const stateUrl = viewState.url || undefined;\n\n let animate = router.params.animate;\n if (router.params.pushStateAnimate === false) animate = false;\n\n if (stateUrl !== router.url) {\n if (router.history.indexOf(stateUrl) >= 0) {\n // Go Back\n if (router.allowPageChange) {\n router.back({ animate, pushState: false });\n } else {\n History.routerQueue.push({\n action: 'back',\n router,\n });\n }\n } else if (router.allowPageChange) {\n // Load page\n router.navigate(stateUrl, { animate, pushState: false });\n } else {\n History.routerQueue.unshift({\n action: 'load',\n stateUrl,\n router,\n });\n }\n }\n });\n },\n initViewState(viewId, viewState) {\n const newState = Utils.extend({}, (History.state || {}), {\n [viewId]: viewState,\n });\n History.state = newState;\n window.history.replaceState(newState, '');\n },\n push(viewId, viewState, url) {\n if (!History.allowChange) {\n History.queue.push(() => {\n History.push(viewId, viewState, url);\n });\n return;\n }\n History.previousState = History.state;\n const newState = Utils.extend({}, (History.previousState || {}), {\n [viewId]: viewState,\n });\n History.state = newState;\n window.history.pushState(newState, '', url);\n },\n replace(viewId, viewState, url) {\n if (!History.allowChange) {\n History.queue.push(() => {\n History.replace(viewId, viewState, url);\n });\n return;\n }\n History.previousState = History.state;\n const newState = Utils.extend({}, (History.previousState || {}), {\n [viewId]: viewState,\n });\n History.state = newState;\n window.history.replaceState(newState, '', url);\n },\n go(index) {\n History.allowChange = false;\n window.history.go(index);\n },\n back() {\n History.allowChange = false;\n window.history.back();\n },\n allowChange: true,\n previousState: {},\n state: window.history.state,\n blockPopstate: true,\n init(app) {\n $(window).on('load', () => {\n setTimeout(() => {\n History.blockPopstate = false;\n }, 0);\n });\n\n if (document.readyState && document.readyState === 'complete') {\n History.blockPopstate = false;\n }\n\n $(window).on('popstate', History.handle.bind(app));\n },\n};\n\nexport default History;\n","import $ from 'dom7';\nimport History from '../../utils/history';\nimport Support from '../../utils/support';\nimport Device from '../../utils/device';\nimport Utils from '../../utils/utils';\n\nfunction SwipeBack(r) {\n const router = r;\n const { $el, $navbarsEl, app, params } = router;\n let isTouched = false;\n let isMoved = false;\n const touchesStart = {};\n let isScrolling;\n let $currentPageEl = [];\n let $previousPageEl = [];\n let viewContainerWidth;\n let touchesDiff;\n let allowViewTouchMove = true;\n let touchStartTime;\n let $currentNavbarEl = [];\n let $previousNavbarEl = [];\n let dynamicNavbar;\n let $pageShadowEl;\n let $pageOpacityEl;\n\n let animatableNavEls;\n\n const paramsSwipeBackAnimateShadow = params[`${app.theme}SwipeBackAnimateShadow`];\n const paramsSwipeBackAnimateOpacity = params[`${app.theme}SwipeBackAnimateOpacity`];\n const paramsSwipeBackActiveArea = params[`${app.theme}SwipeBackActiveArea`];\n const paramsSwipeBackThreshold = params[`${app.theme}SwipeBackThreshold`];\n\n const transformOrigin = app.rtl ? 'right center' : 'left center';\n const transformOriginTitleLarge = app.rtl\n ? 'calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center'\n : 'calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center';\n\n\n function animatableNavElements() {\n const els = [];\n const inverter = app.rtl ? -1 : 1;\n const currentNavIsTransparent = $currentNavbarEl.hasClass('navbar-transparent') && !$currentNavbarEl.hasClass('navbar-large') && !$currentNavbarEl.hasClass('navbar-transparent-visible');\n const currentNavIsLarge = $currentNavbarEl.hasClass('navbar-large');\n const currentNavIsCollapsed = $currentNavbarEl.hasClass('navbar-large-collapsed');\n const currentNavIsLargeTransparent = $currentNavbarEl.hasClass('navbar-large-transparent')\n || (\n $currentNavbarEl.hasClass('navbar-large')\n && $currentNavbarEl.hasClass('navbar-transparent')\n );\n const previousNavIsTransparent = $previousNavbarEl.hasClass('navbar-transparent') && !$previousNavbarEl.hasClass('navbar-large') && !$previousNavbarEl.hasClass('navbar-transparent-visible');\n const previousNavIsLarge = $previousNavbarEl.hasClass('navbar-large');\n const previousNavIsCollapsed = $previousNavbarEl.hasClass('navbar-large-collapsed');\n const previousNavIsLargeTransparent = $previousNavbarEl.hasClass('navbar-large-transparent')\n || (\n $previousNavbarEl.hasClass('navbar-large')\n && $previousNavbarEl.hasClass('navbar-transparent')\n );\n const fromLarge = currentNavIsLarge && !currentNavIsCollapsed;\n const toLarge = previousNavIsLarge && !previousNavIsCollapsed;\n const $currentNavElements = $currentNavbarEl.find('.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg');\n const $previousNavElements = $previousNavbarEl.find('.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg');\n let activeNavBackIconText;\n let previousNavBackIconText;\n\n if (params.iosAnimateNavbarBackIcon) {\n if ($currentNavbarEl.hasClass('sliding') || $currentNavbarEl.find('.navbar-inner.sliding').length) {\n activeNavBackIconText = $currentNavbarEl.find('.left').find('.back .icon + span').eq(0);\n } else {\n activeNavBackIconText = $currentNavbarEl.find('.left.sliding').find('.back .icon + span').eq(0);\n }\n if ($previousNavbarEl.hasClass('sliding') || $previousNavbarEl.find('.navbar-inner.sliding').length) {\n previousNavBackIconText = $previousNavbarEl.find('.left').find('.back .icon + span').eq(0);\n } else {\n previousNavBackIconText = $previousNavbarEl.find('.left.sliding').find('.back .icon + span').eq(0);\n }\n if (activeNavBackIconText.length) {\n $previousNavElements.each((index, el) => {\n if (!$(el).hasClass('title')) return;\n el.f7NavbarLeftOffset += activeNavBackIconText.prev('.icon')[0].offsetWidth;\n });\n }\n }\n $currentNavElements\n .each((index, navEl) => {\n const $navEl = $(navEl);\n const isSubnavbar = $navEl.hasClass('subnavbar');\n const isLeft = $navEl.hasClass('left');\n const isTitle = $navEl.hasClass('title');\n const isBg = $navEl.hasClass('navbar-bg');\n if ((isTitle || isBg) && currentNavIsTransparent) return;\n if (!fromLarge && $navEl.hasClass('.title-large')) return;\n const el = {\n el: navEl,\n };\n if (fromLarge) {\n if (isTitle) return;\n if ($navEl.hasClass('title-large')) {\n if (els.indexOf(el) < 0) els.push(el);\n el.overflow = 'visible';\n $navEl.find('.title-large-text').each((subIndex, subNavEl) => {\n els.push({\n el: subNavEl,\n transform: progress => `translateX(${progress * 100 * inverter}%)`,\n });\n });\n return;\n }\n }\n if (toLarge) {\n if (!fromLarge) {\n if ($navEl.hasClass('title-large')) {\n if (els.indexOf(el) < 0) els.push(el);\n el.opacity = 0;\n }\n }\n if (isLeft) {\n if (els.indexOf(el) < 0) els.push(el);\n el.opacity = progress => (1 - (progress ** 0.33));\n $navEl.find('.back span').each((subIndex, subNavEl) => {\n els.push({\n el: subNavEl,\n 'transform-origin': transformOrigin,\n transform: progress => `translateX(calc(${progress} * (var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset)))) translateY(calc(${progress} * (var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical) / 2))) scale(${1 + (1 * progress)})`,\n });\n });\n return;\n }\n }\n if (isBg) {\n if (els.indexOf(el) < 0) els.push(el);\n if (!fromLarge && !toLarge) {\n if (currentNavIsCollapsed) {\n if (currentNavIsLargeTransparent) {\n el.className = 'ios-swipeback-navbar-bg-large';\n }\n el.transform = progress => `translateX(${100 * progress * inverter}%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))`;\n } else {\n el.transform = progress => `translateX(${100 * progress * inverter}%)`;\n }\n }\n if (!fromLarge && toLarge) {\n el.className = 'ios-swipeback-navbar-bg-large';\n el.transform = progress => `translateX(${100 * progress * inverter}%) translateY(calc(-1 * ${1 - progress} * var(--f7-navbar-large-title-height)))`;\n }\n if (fromLarge && toLarge) {\n el.transform = progress => `translateX(${100 * progress * inverter}%)`;\n }\n if (fromLarge && !toLarge) {\n el.transform = progress => `translateX(${100 * progress * inverter}%) translateY(calc(-${progress} * var(--f7-navbar-large-title-height)))`;\n }\n return;\n }\n if ($navEl.hasClass('title-large')) return;\n const isSliding = $navEl.hasClass('sliding') || $navEl.parents('.navbar-inner.sliding').length;\n if (els.indexOf(el) < 0) els.push(el);\n if (!isSubnavbar || (isSubnavbar && !isSliding)) {\n el.opacity = progress => (1 - (progress ** 0.33));\n }\n if (isSliding) {\n let transformTarget = el;\n if (isLeft && activeNavBackIconText.length && params.iosAnimateNavbarBackIcon) {\n const textEl = { el: activeNavBackIconText[0] };\n transformTarget = textEl;\n els.push(textEl);\n }\n transformTarget.transform = (progress) => {\n let activeNavTranslate = progress * transformTarget.el.f7NavbarRightOffset;\n if (Device.pixelRatio === 1) activeNavTranslate = Math.round(activeNavTranslate);\n if (isSubnavbar && currentNavIsLarge) {\n return `translate3d(${activeNavTranslate}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`;\n }\n return `translate3d(${activeNavTranslate}px,0,0)`;\n };\n }\n });\n $previousNavElements\n .each((index, navEl) => {\n const $navEl = $(navEl);\n const isSubnavbar = $navEl.hasClass('subnavbar');\n const isLeft = $navEl.hasClass('left');\n const isTitle = $navEl.hasClass('title');\n const isBg = $navEl.hasClass('navbar-bg');\n if ((isTitle || isBg) && previousNavIsTransparent) return;\n const el = {\n el: navEl,\n };\n if (toLarge) {\n if (isTitle) return;\n if (els.indexOf(el) < 0) els.push(el);\n\n if ($navEl.hasClass('title-large')) {\n el.opacity = 1;\n el.overflow = 'visible';\n $navEl.find('.title-large-text').each((subIndex, subNavEl) => {\n els.push({\n el: subNavEl,\n 'transform-origin': transformOriginTitleLarge,\n opacity: progress => (progress ** 3),\n transform: progress => `translateX(calc(${1 - progress} * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(${progress - 1} * var(--f7-navbar-large-title-height) + ${1 - progress} * var(--f7-navbar-large-title-padding-vertical))) scale(${0.5 + progress * 0.5})`,\n });\n });\n return;\n }\n }\n if (isBg) {\n if (els.indexOf(el) < 0) els.push(el);\n if (!fromLarge && !toLarge) {\n if (previousNavIsCollapsed) {\n if (previousNavIsLargeTransparent) {\n el.className = 'ios-swipeback-navbar-bg-large';\n }\n el.transform = progress => `translateX(${(-100 + 100 * progress) * inverter}%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))`;\n } else {\n el.transform = progress => `translateX(${(-100 + 100 * progress) * inverter}%)`;\n }\n }\n if (!fromLarge && toLarge) {\n el.transform = progress => `translateX(${(-100 + 100 * progress) * inverter}%) translateY(calc(-1 * ${1 - progress} * var(--f7-navbar-large-title-height)))`;\n }\n if (fromLarge && !toLarge) {\n el.className = 'ios-swipeback-navbar-bg-large';\n el.transform = progress => `translateX(${(-100 + 100 * progress) * inverter}%) translateY(calc(-${progress} * var(--f7-navbar-large-title-height)))`;\n }\n if (fromLarge && toLarge) {\n el.transform = progress => `translateX(${(-100 + 100 * progress) * inverter}%)`;\n }\n\n return;\n }\n if ($navEl.hasClass('title-large')) return;\n const isSliding = $navEl.hasClass('sliding') || $previousNavbarEl.children('.navbar-inner.sliding').length;\n if (els.indexOf(el) < 0) els.push(el);\n if (!isSubnavbar || (isSubnavbar && !isSliding)) {\n el.opacity = progress => (progress ** 3);\n }\n if (isSliding) {\n let transformTarget = el;\n if (isLeft && previousNavBackIconText.length && params.iosAnimateNavbarBackIcon) {\n const textEl = { el: previousNavBackIconText[0] };\n transformTarget = textEl;\n els.push(textEl);\n }\n transformTarget.transform = (progress) => {\n let previousNavTranslate = transformTarget.el.f7NavbarLeftOffset * (1 - progress);\n if (Device.pixelRatio === 1) previousNavTranslate = Math.round(previousNavTranslate);\n if (isSubnavbar && previousNavIsLarge) {\n return `translate3d(${previousNavTranslate}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`;\n }\n return `translate3d(${previousNavTranslate}px,0,0)`;\n };\n }\n });\n return els;\n }\n\n function setAnimatableNavElements({ progress, reset, transition } = {}) {\n const styles = ['overflow', 'transform', 'transform-origin', 'opacity'];\n for (let i = 0; i < animatableNavEls.length; i += 1) {\n const el = animatableNavEls[i];\n if (el && el.el) {\n if (transition === true) el.el.classList.add('navbar-page-transitioning');\n if (transition === false) el.el.classList.remove('navbar-page-transitioning');\n if (el.className && !el.classNameSet && !reset) {\n el.el.classList.add(el.className);\n el.classNameSet = true;\n }\n if (el.className && reset) {\n el.el.classList.remove(el.className);\n }\n for (let j = 0; j < styles.length; j += 1) {\n const styleProp = styles[j];\n if (el[styleProp]) {\n if (reset) {\n el.el.style[styleProp] = '';\n } else if (typeof el[styleProp] === 'function') {\n el.el.style[styleProp] = el[styleProp](progress);\n } else {\n el.el.style[styleProp] = el[styleProp];\n }\n }\n }\n }\n }\n }\n\n function handleTouchStart(e) {\n const swipeBackEnabled = params[`${app.theme}SwipeBack`];\n if (!allowViewTouchMove || !swipeBackEnabled || isTouched || (app.swipeout && app.swipeout.el) || !router.allowPageChange) return;\n if ($(e.target).closest('.range-slider, .calendar-months').length > 0) return;\n if ($(e.target).closest('.page-master, .page-master-detail').length > 0 && params.masterDetailBreakpoint > 0 && app.width >= params.masterDetailBreakpoint) return;\n isMoved = false;\n isTouched = true;\n isScrolling = undefined;\n touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n touchStartTime = Utils.now();\n dynamicNavbar = router.dynamicNavbar;\n }\n function handleTouchMove(e) {\n if (!isTouched) return;\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)) || (pageX < touchesStart.x && !app.rtl) || (pageX > touchesStart.x && app.rtl);\n }\n if (isScrolling || e.f7PreventSwipeBack || app.preventSwipeBack) {\n isTouched = false;\n return;\n }\n if (!isMoved) {\n // Calc values during first move fired\n let cancel = false;\n const target = $(e.target);\n\n const swipeout = target.closest('.swipeout');\n if (swipeout.length > 0) {\n if (!app.rtl && swipeout.find('.swipeout-actions-left').length > 0) cancel = true;\n if (app.rtl && swipeout.find('.swipeout-actions-right').length > 0) cancel = true;\n }\n\n $currentPageEl = target.closest('.page');\n if ($currentPageEl.hasClass('no-swipeback') || target.closest('.no-swipeback, .card-opened').length > 0) cancel = true;\n $previousPageEl = $el.find('.page-previous:not(.stacked)');\n if ($previousPageEl.length > 1) {\n $previousPageEl = $previousPageEl.eq($previousPageEl.length - 1);\n }\n let notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea;\n viewContainerWidth = $el.width();\n if (app.rtl) {\n notFromBorder = touchesStart.x < ($el.offset().left - $el[0].scrollLeft) + (viewContainerWidth - paramsSwipeBackActiveArea);\n } else {\n notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea;\n }\n if (notFromBorder) cancel = true;\n if ($previousPageEl.length === 0 || $currentPageEl.length === 0) cancel = true;\n if (cancel) {\n isTouched = false;\n return;\n }\n\n if (paramsSwipeBackAnimateShadow) {\n $pageShadowEl = $currentPageEl.find('.page-shadow-effect');\n if ($pageShadowEl.length === 0) {\n $pageShadowEl = $('
');\n $currentPageEl.append($pageShadowEl);\n }\n }\n if (paramsSwipeBackAnimateOpacity) {\n $pageOpacityEl = $previousPageEl.find('.page-opacity-effect');\n if ($pageOpacityEl.length === 0) {\n $pageOpacityEl = $('
');\n $previousPageEl.append($pageOpacityEl);\n }\n }\n\n if (dynamicNavbar) {\n $currentNavbarEl = $navbarsEl.find('.navbar-current:not(.stacked)');\n $previousNavbarEl = $navbarsEl.find('.navbar-previous:not(.stacked)');\n if ($previousNavbarEl.length > 1) {\n $previousNavbarEl = $previousNavbarEl.eq($previousNavbarEl.length - 1);\n }\n\n animatableNavEls = animatableNavElements($previousNavbarEl, $currentNavbarEl);\n }\n\n // Close/Hide Any Picker\n if ($('.sheet.modal-in').length > 0 && app.sheet) {\n app.sheet.close($('.sheet.modal-in'));\n }\n }\n e.f7PreventSwipePanel = true;\n isMoved = true;\n app.preventSwipePanelBySwipeBack = true;\n e.preventDefault();\n\n // RTL inverter\n const inverter = app.rtl ? -1 : 1;\n\n // Touches diff\n touchesDiff = (pageX - touchesStart.x - paramsSwipeBackThreshold) * inverter;\n if (touchesDiff < 0) touchesDiff = 0;\n const percentage = Math.min(Math.max(touchesDiff / viewContainerWidth, 0), 1);\n\n // Swipe Back Callback\n const callbackData = {\n percentage,\n progress: percentage,\n currentPageEl: $currentPageEl[0],\n previousPageEl: $previousPageEl[0],\n currentNavbarEl: $currentNavbarEl[0],\n previousNavbarEl: $previousNavbarEl[0],\n };\n $el.trigger('swipeback:move', callbackData);\n router.emit('swipebackMove', callbackData);\n\n // Transform pages\n let currentPageTranslate = touchesDiff * inverter;\n let previousPageTranslate = ((touchesDiff / 5) - (viewContainerWidth / 5)) * inverter;\n if (!app.rtl) {\n currentPageTranslate = Math.min(currentPageTranslate, viewContainerWidth);\n previousPageTranslate = Math.min(previousPageTranslate, 0);\n } else {\n currentPageTranslate = Math.max(currentPageTranslate, -viewContainerWidth);\n previousPageTranslate = Math.max(previousPageTranslate, 0);\n }\n if (Device.pixelRatio === 1) {\n currentPageTranslate = Math.round(currentPageTranslate);\n previousPageTranslate = Math.round(previousPageTranslate);\n }\n\n router.swipeBackActive = true;\n $([$currentPageEl[0], $previousPageEl[0]]).addClass('page-swipeback-active');\n\n $currentPageEl.transform(`translate3d(${currentPageTranslate}px,0,0)`);\n if (paramsSwipeBackAnimateShadow) $pageShadowEl[0].style.opacity = 1 - (1 * percentage);\n\n if (app.theme === 'ios') {\n $previousPageEl.transform(`translate3d(${previousPageTranslate}px,0,0)`);\n }\n if (paramsSwipeBackAnimateOpacity) $pageOpacityEl[0].style.opacity = 1 - (1 * percentage);\n\n // Dynamic Navbars Animation\n if (!dynamicNavbar) return;\n\n setAnimatableNavElements({ progress: percentage });\n }\n function handleTouchEnd() {\n app.preventSwipePanelBySwipeBack = false;\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n isTouched = false;\n isMoved = false;\n router.swipeBackActive = false;\n $([$currentPageEl[0], $previousPageEl[0]]).removeClass('page-swipeback-active');\n if (touchesDiff === 0) {\n $([$currentPageEl[0], $previousPageEl[0]]).transform('');\n if ($pageShadowEl && $pageShadowEl.length > 0) $pageShadowEl.remove();\n if ($pageOpacityEl && $pageOpacityEl.length > 0) $pageOpacityEl.remove();\n if (dynamicNavbar) {\n setAnimatableNavElements({ reset: true });\n }\n return;\n }\n const timeDiff = Utils.now() - touchStartTime;\n let pageChanged = false;\n // Swipe back to previous page\n if (\n (timeDiff < 300 && touchesDiff > 10)\n || (timeDiff >= 300 && touchesDiff > viewContainerWidth / 2)\n ) {\n $currentPageEl.removeClass('page-current').addClass(`page-next${app.theme !== 'ios' ? ' page-next-on-right' : ''}`);\n $previousPageEl.removeClass('page-previous').addClass('page-current').removeAttr('aria-hidden');\n if ($pageShadowEl) $pageShadowEl[0].style.opacity = '';\n if ($pageOpacityEl) $pageOpacityEl[0].style.opacity = '';\n if (dynamicNavbar) {\n router.setNavbarPosition($currentNavbarEl, 'next');\n router.setNavbarPosition($previousNavbarEl, 'current', false);\n }\n pageChanged = true;\n }\n // Reset custom styles\n // Add transitioning class for transition-duration\n $([$currentPageEl[0], $previousPageEl[0]]).addClass('page-transitioning page-transitioning-swipeback').transform('');\n\n if (dynamicNavbar) {\n setAnimatableNavElements({ progress: pageChanged ? 1 : 0, transition: true });\n }\n allowViewTouchMove = false;\n router.allowPageChange = false;\n\n // Swipe Back Callback\n const callbackData = {\n currentPageEl: $currentPageEl[0],\n previousPageEl: $previousPageEl[0],\n currentNavbarEl: $currentNavbarEl[0],\n previousNavbarEl: $previousNavbarEl[0],\n };\n\n if (pageChanged) {\n // Update Route\n router.currentRoute = $previousPageEl[0].f7Page.route;\n router.currentPage = $previousPageEl[0];\n\n // Page before animation callback\n router.pageCallback('beforeOut', $currentPageEl, $currentNavbarEl, 'current', 'next', { route: $currentPageEl[0].f7Page.route, swipeBack: true });\n router.pageCallback('beforeIn', $previousPageEl, $previousNavbarEl, 'previous', 'current', { route: $previousPageEl[0].f7Page.route, swipeBack: true }, $currentPageEl[0]);\n\n $el.trigger('swipeback:beforechange', callbackData);\n router.emit('swipebackBeforeChange', callbackData);\n } else {\n $el.trigger('swipeback:beforereset', callbackData);\n router.emit('swipebackBeforeReset', callbackData);\n }\n\n $currentPageEl.transitionEnd(() => {\n $([$currentPageEl[0], $previousPageEl[0]]).removeClass('page-transitioning page-transitioning-swipeback');\n if (dynamicNavbar) {\n setAnimatableNavElements({ reset: true, transition: false });\n }\n allowViewTouchMove = true;\n router.allowPageChange = true;\n if (pageChanged) {\n // Update History\n if (router.history.length === 1) {\n router.history.unshift(router.url);\n }\n router.history.pop();\n router.saveHistory();\n\n // Update push state\n if (params.pushState) {\n History.back();\n }\n\n // Page after animation callback\n router.pageCallback('afterOut', $currentPageEl, $currentNavbarEl, 'current', 'next', { route: $currentPageEl[0].f7Page.route, swipeBack: true });\n router.pageCallback('afterIn', $previousPageEl, $previousNavbarEl, 'previous', 'current', { route: $previousPageEl[0].f7Page.route, swipeBack: true });\n\n // Remove Old Page\n if (params.stackPages && router.initialPages.indexOf($currentPageEl[0]) >= 0) {\n $currentPageEl.addClass('stacked');\n if (dynamicNavbar) {\n $currentNavbarEl.addClass('stacked');\n }\n } else {\n router.pageCallback('beforeRemove', $currentPageEl, $currentNavbarEl, 'next', { swipeBack: true });\n router.removePage($currentPageEl);\n if (dynamicNavbar) {\n router.removeNavbar($currentNavbarEl);\n }\n }\n\n $el.trigger('swipeback:afterchange', callbackData);\n router.emit('swipebackAfterChange', callbackData);\n\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n\n if (params.preloadPreviousPage) {\n router.back(router.history[router.history.length - 2], { preload: true });\n }\n } else {\n $el.trigger('swipeback:afterreset', callbackData);\n router.emit('swipebackAfterReset', callbackData);\n }\n if ($pageShadowEl && $pageShadowEl.length > 0) $pageShadowEl.remove();\n if ($pageOpacityEl && $pageOpacityEl.length > 0) $pageOpacityEl.remove();\n });\n }\n\n function attachEvents() {\n const passiveListener = (app.touchEvents.start === 'touchstart' && Support.passiveListener) ? { passive: true, capture: false } : false;\n $el.on(app.touchEvents.start, handleTouchStart, passiveListener);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n }\n function detachEvents() {\n const passiveListener = (app.touchEvents.start === 'touchstart' && Support.passiveListener) ? { passive: true, capture: false } : false;\n $el.off(app.touchEvents.start, handleTouchStart, passiveListener);\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n }\n\n attachEvents();\n\n router.on('routerDestroy', detachEvents);\n}\n\nexport default SwipeBack;\n","import Utils from '../../utils/utils';\n\nexport default function (direction, route, options) {\n const router = this;\n const redirect = route.route.redirect;\n if (options.initial && router.params.pushState) {\n options.replaceState = true; // eslint-disable-line\n options.history = true; // eslint-disable-line\n }\n function redirectResolve(redirectUrl, redirectOptions = {}) {\n router.allowPageChange = true;\n router[direction](redirectUrl, Utils.extend({}, options, redirectOptions));\n }\n function redirectReject() {\n router.allowPageChange = true;\n }\n if (typeof redirect === 'function') {\n router.allowPageChange = false;\n const redirectUrl = redirect.call(router, route, redirectResolve, redirectReject);\n if (redirectUrl && typeof redirectUrl === 'string') {\n router.allowPageChange = true;\n return router[direction](redirectUrl, options);\n }\n return router;\n }\n return router[direction](redirect, options);\n}\n","function processQueue(router, routerQueue, routeQueue, to, from, resolve, reject) {\n const queue = [];\n\n if (Array.isArray(routeQueue)) {\n queue.push(...routeQueue);\n } else if (routeQueue && typeof routeQueue === 'function') {\n queue.push(routeQueue);\n }\n if (routerQueue) {\n if (Array.isArray(routerQueue)) {\n queue.push(...routerQueue);\n } else {\n queue.push(routerQueue);\n }\n }\n\n function next() {\n if (queue.length === 0) {\n resolve();\n return;\n }\n const queueItem = queue.shift();\n\n queueItem.call(\n router,\n to,\n from,\n () => {\n next();\n },\n () => {\n reject();\n }\n );\n }\n next();\n}\n\nexport default function (to, from, resolve, reject) {\n const router = this;\n function enterNextRoute() {\n if (to && to.route && (router.params.routesBeforeEnter || to.route.beforeEnter)) {\n router.allowPageChange = false;\n processQueue(\n router,\n router.params.routesBeforeEnter,\n to.route.beforeEnter,\n to,\n from,\n () => {\n router.allowPageChange = true;\n resolve();\n },\n () => {\n reject();\n },\n );\n } else {\n resolve();\n }\n }\n function leaveCurrentRoute() {\n if (from && from.route && (router.params.routesBeforeLeave || from.route.beforeLeave)) {\n router.allowPageChange = false;\n processQueue(\n router,\n router.params.routesBeforeLeave,\n from.route.beforeLeave,\n to,\n from,\n () => {\n router.allowPageChange = true;\n enterNextRoute();\n },\n () => {\n reject();\n },\n );\n } else {\n enterNextRoute();\n }\n }\n leaveCurrentRoute();\n}\n","export default function (router, method) {\n if (!router.view) {\n throw new Error(`Framework7: it is not allowed to use router methods on global app router. Use router methods only on related View, e.g. app.views.main.router.${method}(...)`);\n }\n}\n","export default function (router, asyncComponent, resolve, reject) {\n function resolvePromise(componentPromise) {\n componentPromise\n .then((c) => {\n // eslint-disable-next-line\n resolve({ component: c.default || c._default || c });\n })\n .catch((err) => {\n reject();\n throw new Error(err);\n });\n }\n if (asyncComponent instanceof Promise) {\n resolvePromise(asyncComponent);\n return;\n }\n const asyncComponentResult = asyncComponent.call(router);\n if (asyncComponentResult instanceof Promise) {\n resolvePromise(asyncComponentResult);\n } else {\n resolve({ component: asyncComponentResult });\n }\n}\n","import { window, document } from 'ssr-window';\nimport $ from 'dom7';\nimport { pathToRegexp, compile } from 'path-to-regexp';\nimport Framework7Class from '../../utils/class';\nimport Utils from '../../utils/utils';\nimport History from '../../utils/history';\nimport SwipeBack from './swipe-back';\n\nimport { refreshPage, forward, load, navigate } from './navigate';\nimport { tabLoad, tabRemove } from './tab';\nimport { modalLoad, modalRemove } from './modal';\nimport { backward, loadBack, back } from './back';\nimport { clearPreviousHistory } from './clear-previous-history';\nimport appRouterCheck from './app-router-check';\n\nclass Router extends Framework7Class {\n constructor(app, view) {\n super({}, [typeof view === 'undefined' ? app : view]);\n const router = this;\n\n // Is App Router\n router.isAppRouter = typeof view === 'undefined';\n\n if (router.isAppRouter) {\n // App Router\n Utils.extend(false, router, {\n app,\n params: app.params.view,\n routes: app.routes || [],\n cache: app.cache,\n });\n } else {\n // View Router\n Utils.extend(false, router, {\n app,\n view,\n viewId: view.id,\n params: view.params,\n routes: view.routes,\n $el: view.$el,\n el: view.el,\n $navbarsEl: view.$navbarsEl,\n navbarsEl: view.navbarsEl,\n history: view.history,\n scrollHistory: view.scrollHistory,\n cache: app.cache,\n dynamicNavbar: app.theme === 'ios' && view.params.iosDynamicNavbar,\n initialPages: [],\n initialNavbars: [],\n });\n }\n\n // Install Modules\n router.useModules();\n\n // Temporary Dom\n router.tempDom = document.createElement('div');\n\n // AllowPageChage\n router.allowPageChange = true;\n\n // Current Route\n let currentRoute = {};\n let previousRoute = {};\n Object.defineProperty(router, 'currentRoute', {\n enumerable: true,\n configurable: true,\n set(newRoute = {}) {\n previousRoute = Utils.extend({}, currentRoute);\n currentRoute = newRoute;\n if (!currentRoute) return;\n router.url = currentRoute.url;\n router.emit('routeChange', newRoute, previousRoute, router);\n },\n get() {\n return currentRoute;\n },\n });\n Object.defineProperty(router, 'previousRoute', {\n enumerable: true,\n configurable: true,\n get() {\n return previousRoute;\n },\n set(newRoute) {\n previousRoute = newRoute;\n },\n });\n\n return router;\n }\n\n animatableNavElements($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction) {\n const router = this;\n const dynamicNavbar = router.dynamicNavbar;\n const animateIcon = router.params.iosAnimateNavbarBackIcon;\n\n let newNavEls;\n let oldNavEls;\n function animatableNavEl($el, $navbarInner) {\n const isSliding = $el.hasClass('sliding') || $navbarInner.hasClass('sliding');\n const isSubnavbar = $el.hasClass('subnavbar');\n const needsOpacityTransition = isSliding ? !isSubnavbar : true;\n const $iconEl = $el.find('.back .icon');\n let isIconLabel;\n if (isSliding && animateIcon && $el.hasClass('left') && $iconEl.length > 0 && $iconEl.next('span').length) {\n $el = $iconEl.next('span'); // eslint-disable-line\n isIconLabel = true;\n }\n return {\n $el,\n isIconLabel,\n leftOffset: $el[0].f7NavbarLeftOffset,\n rightOffset: $el[0].f7NavbarRightOffset,\n isSliding,\n isSubnavbar,\n needsOpacityTransition,\n };\n }\n if (dynamicNavbar) {\n newNavEls = [];\n oldNavEls = [];\n $newNavbarEl.children('.navbar-inner').children('.left, .right, .title, .subnavbar').each((index, navEl) => {\n const $navEl = $(navEl);\n if ($navEl.hasClass('left') && fromLarge && direction === 'forward') return;\n if ($navEl.hasClass('title') && toLarge) return;\n newNavEls.push(animatableNavEl($navEl, $newNavbarEl.children('.navbar-inner')));\n });\n if (!($oldNavbarEl.hasClass('navbar-master') && router.params.masterDetailBreakpoint > 0 && router.app.width >= router.params.masterDetailBreakpoint)) {\n $oldNavbarEl.children('.navbar-inner').children('.left, .right, .title, .subnavbar').each((index, navEl) => {\n const $navEl = $(navEl);\n if ($navEl.hasClass('left') && toLarge && !fromLarge && direction === 'forward') return;\n if ($navEl.hasClass('left') && toLarge && direction === 'backward') return;\n if ($navEl.hasClass('title') && fromLarge) {\n return;\n }\n oldNavEls.push(animatableNavEl($navEl, $oldNavbarEl.children('.navbar-inner')));\n });\n }\n [oldNavEls, newNavEls].forEach((navEls) => {\n navEls.forEach((navEl) => {\n const n = navEl;\n const { isSliding, $el } = navEl;\n const otherEls = navEls === oldNavEls ? newNavEls : oldNavEls;\n if (!(isSliding && $el.hasClass('title') && otherEls)) return;\n otherEls.forEach((otherNavEl) => {\n if (otherNavEl.isIconLabel) {\n const iconTextEl = otherNavEl.$el[0];\n n.leftOffset += iconTextEl ? (iconTextEl.offsetLeft || 0) : 0;\n }\n });\n });\n });\n }\n\n return { newNavEls, oldNavEls };\n }\n\n animate($oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, transition, callback) {\n const router = this;\n if (router.params.animateCustom) {\n router.params.animateCustom.apply(router, [$oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, callback]);\n return;\n }\n const dynamicNavbar = router.dynamicNavbar;\n const ios = router.app.theme === 'ios';\n if (transition) {\n const routerCustomTransitionClass = `router-transition-custom router-transition-${transition}-${direction}`;\n // Animate\n const onCustomTransitionDone = () => {\n router.$el.removeClass(routerCustomTransitionClass);\n if (dynamicNavbar && router.$navbarsEl.length) {\n if ($newNavbarEl) {\n router.$navbarsEl.prepend($newNavbarEl);\n }\n if ($oldNavbarEl) {\n router.$navbarsEl.prepend($oldNavbarEl);\n }\n }\n if (callback) callback();\n };\n\n (direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(onCustomTransitionDone);\n if (dynamicNavbar) {\n if ($newNavbarEl && $newPageEl) {\n router.setNavbarPosition($newNavbarEl, '');\n $newNavbarEl.removeClass('navbar-next navbar-previous navbar-current');\n $newPageEl.prepend($newNavbarEl);\n }\n if ($oldNavbarEl && $oldPageEl) {\n router.setNavbarPosition($oldNavbarEl, '');\n $oldNavbarEl.removeClass('navbar-next navbar-previous navbar-current');\n $oldPageEl.prepend($oldNavbarEl);\n }\n }\n\n router.$el.addClass(routerCustomTransitionClass);\n return;\n }\n\n\n // Router Animation class\n const routerTransitionClass = `router-transition-${direction} router-transition`;\n\n let newNavEls;\n let oldNavEls;\n\n let fromLarge;\n let toLarge;\n\n let oldIsLarge;\n let newIsLarge;\n\n if (ios && dynamicNavbar) {\n const betweenMasterAndDetail = router.params.masterDetailBreakpoint > 0 && router.app.width >= router.params.masterDetailBreakpoint\n && (\n ($oldNavbarEl.hasClass('navbar-master') && $newNavbarEl.hasClass('navbar-master-detail'))\n || ($oldNavbarEl.hasClass('navbar-master-detail') && $newNavbarEl.hasClass('navbar-master'))\n );\n if (!betweenMasterAndDetail) {\n oldIsLarge = $oldNavbarEl && $oldNavbarEl.hasClass('navbar-large');\n newIsLarge = $newNavbarEl && $newNavbarEl.hasClass('navbar-large');\n fromLarge = oldIsLarge && !$oldNavbarEl.hasClass('navbar-large-collapsed');\n toLarge = newIsLarge && !$newNavbarEl.hasClass('navbar-large-collapsed');\n }\n const navEls = router.animatableNavElements($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction);\n newNavEls = navEls.newNavEls;\n oldNavEls = navEls.oldNavEls;\n }\n\n function animateNavbars(progress) {\n if (!(ios && dynamicNavbar)) return;\n if (progress === 1) {\n if (toLarge) {\n $newNavbarEl.addClass('router-navbar-transition-to-large');\n $oldNavbarEl.addClass('router-navbar-transition-to-large');\n }\n if (fromLarge) {\n $newNavbarEl.addClass('router-navbar-transition-from-large');\n $oldNavbarEl.addClass('router-navbar-transition-from-large');\n }\n }\n newNavEls.forEach((navEl) => {\n const $el = navEl.$el;\n const offset = direction === 'forward' ? navEl.rightOffset : navEl.leftOffset;\n if (navEl.isSliding) {\n if (navEl.isSubnavbar && newIsLarge) {\n $el[0].style.setProperty('transform', `translate3d(${offset * (1 - progress)}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`, 'important');\n } else {\n $el.transform(`translate3d(${offset * (1 - progress)}px,0,0)`);\n }\n }\n });\n oldNavEls.forEach((navEl) => {\n const $el = navEl.$el;\n const offset = direction === 'forward' ? navEl.leftOffset : navEl.rightOffset;\n if (navEl.isSliding) {\n if (navEl.isSubnavbar && oldIsLarge) {\n $el.transform(`translate3d(${offset * (progress)}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`);\n } else {\n $el.transform(`translate3d(${offset * (progress)}px,0,0)`);\n }\n }\n });\n }\n\n // AnimationEnd Callback\n function onDone() {\n if (router.dynamicNavbar) {\n if ($newNavbarEl) {\n $newNavbarEl.removeClass('router-navbar-transition-to-large router-navbar-transition-from-large');\n $newNavbarEl.addClass('navbar-no-title-large-transition');\n Utils.nextFrame(() => {\n $newNavbarEl.removeClass('navbar-no-title-large-transition');\n });\n }\n if ($oldNavbarEl) {\n $oldNavbarEl.removeClass('router-navbar-transition-to-large router-navbar-transition-from-large');\n }\n if ($newNavbarEl.hasClass('sliding')) {\n $newNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform('');\n } else {\n $newNavbarEl.find('.sliding').transform('');\n }\n if ($oldNavbarEl.hasClass('sliding')) {\n $oldNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform('');\n } else {\n $oldNavbarEl.find('.sliding').transform('');\n }\n }\n router.$el.removeClass(routerTransitionClass);\n if (callback) callback();\n }\n\n (direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(() => {\n onDone();\n });\n\n // Animate\n if (dynamicNavbar) {\n // Prepare Navbars\n animateNavbars(0);\n Utils.nextFrame(() => {\n // Add class, start animation\n animateNavbars(1);\n router.$el.addClass(routerTransitionClass);\n });\n } else {\n // Add class, start animation\n router.$el.addClass(routerTransitionClass);\n }\n }\n\n removeModal(modalEl) {\n const router = this;\n router.removeEl(modalEl);\n }\n // eslint-disable-next-line\n removeTabContent(tabEl) {\n const $tabEl = $(tabEl);\n $tabEl.html('');\n }\n\n removeNavbar(el) {\n const router = this;\n router.removeEl(el);\n }\n\n removePage(el) {\n const $el = $(el);\n const f7Page = $el && $el[0] && $el[0].f7Page;\n const router = this;\n if (f7Page && f7Page.route && f7Page.route.route && f7Page.route.route.keepAlive) {\n $el.remove();\n return;\n }\n router.removeEl(el);\n }\n\n removeEl(el) {\n if (!el) return;\n const router = this;\n const $el = $(el);\n if ($el.length === 0) return;\n $el.find('.tab').each((tabIndex, tabEl) => {\n $(tabEl).children().each((index, tabChild) => {\n if (tabChild.f7Component) {\n $(tabChild).trigger('tab:beforeremove');\n tabChild.f7Component.$destroy();\n }\n });\n });\n if ($el[0].f7Component && $el[0].f7Component.$destroy) {\n $el[0].f7Component.$destroy();\n }\n if (!router.params.removeElements) {\n return;\n }\n if (router.params.removeElementsWithTimeout) {\n setTimeout(() => {\n $el.remove();\n }, router.params.removeElementsTimeout);\n } else {\n $el.remove();\n }\n }\n\n getPageEl(content) {\n const router = this;\n if (typeof content === 'string') {\n router.tempDom.innerHTML = content;\n } else {\n if ($(content).hasClass('page')) {\n return content;\n }\n router.tempDom.innerHTML = '';\n $(router.tempDom).append(content);\n }\n\n return router.findElement('.page', router.tempDom);\n }\n\n findElement(stringSelector, container, notStacked) {\n const router = this;\n const view = router.view;\n const app = router.app;\n\n // Modals Selector\n const modalsSelector = '.popup, .dialog, .popover, .actions-modal, .sheet-modal, .login-screen, .page';\n\n const $container = $(container);\n let selector = stringSelector;\n if (notStacked) selector += ':not(.stacked)';\n\n let found = $container\n .find(selector)\n .filter((index, el) => $(el).parents(modalsSelector).length === 0);\n\n if (found.length > 1) {\n if (typeof view.selector === 'string') {\n // Search in related view\n found = $container.find(`${view.selector} ${selector}`);\n }\n if (found.length > 1) {\n // Search in main view\n found = $container.find(`.${app.params.viewMainClass} ${selector}`);\n }\n }\n if (found.length === 1) return found;\n\n // Try to find not stacked\n if (!notStacked) found = router.findElement(selector, $container, true);\n if (found && found.length === 1) return found;\n if (found && found.length > 1) return $(found[0]);\n return undefined;\n }\n\n flattenRoutes(routes = this.routes) {\n const router = this;\n let flattenedRoutes = [];\n routes.forEach((route) => {\n let hasTabRoutes = false;\n if ('tabs' in route && route.tabs) {\n const mergedPathsRoutes = route.tabs.map((tabRoute) => {\n const tRoute = Utils.extend({}, route, {\n path: (`${route.path}/${tabRoute.path}`).replace('///', '/').replace('//', '/'),\n parentPath: route.path,\n tab: tabRoute,\n });\n delete tRoute.tabs;\n delete tRoute.routes;\n return tRoute;\n });\n hasTabRoutes = true;\n flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes));\n }\n if ('detailRoutes' in route) {\n const mergedPathsRoutes = route.detailRoutes.map((detailRoute) => {\n const dRoute = Utils.extend({}, detailRoute);\n dRoute.masterRoute = route;\n dRoute.masterRoutePath = route.path;\n return dRoute;\n });\n flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes));\n }\n if ('routes' in route) {\n const mergedPathsRoutes = route.routes.map((childRoute) => {\n const cRoute = Utils.extend({}, childRoute);\n cRoute.path = (`${route.path}/${cRoute.path}`).replace('///', '/').replace('//', '/');\n return cRoute;\n });\n if (hasTabRoutes) {\n flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes));\n } else {\n flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes));\n }\n }\n if (!('routes' in route) && !('tabs' in route && route.tabs) && !('detailRoutes' in route)) {\n flattenedRoutes.push(route);\n }\n });\n return flattenedRoutes;\n }\n\n // eslint-disable-next-line\n parseRouteUrl(url) {\n if (!url) return {};\n const query = Utils.parseUrlQuery(url);\n const hash = url.split('#')[1];\n const params = {};\n const path = url.split('#')[0].split('?')[0];\n return {\n query,\n hash,\n params,\n url,\n path,\n };\n }\n\n generateUrl(parameters = {}) {\n if (typeof parameters === 'string') {\n return parameters;\n }\n const { name, params, query } = parameters;\n if (!name) {\n throw new Error('Framework7: name parameter is required');\n }\n const router = this;\n const route = router.findRouteByKey('name', name);\n if (!route) {\n throw new Error(`Framework7: route with name \"${name}\" not found`);\n }\n const url = router.constructRouteUrl(route, { params, query });\n if (!url) {\n throw new Error(`Framework7: can't construct URL for route with name \"${name}\"`);\n }\n return url;\n }\n\n // eslint-disable-next-line\n constructRouteUrl(route, { params, query } = {}) {\n const { path } = route;\n const toUrl = compile(path);\n let url;\n try {\n url = toUrl(params || {});\n } catch (error) {\n throw new Error(`Framework7: error constructing route URL from passed params:\\nRoute: ${path}\\n${error.toString()}`);\n }\n\n if (query) {\n if (typeof query === 'string') url += `?${query}`;\n else url += `?${Utils.serializeObject(query)}`;\n }\n\n return url;\n }\n\n findTabRoute(tabEl) {\n const router = this;\n const $tabEl = $(tabEl);\n const parentPath = router.currentRoute.route.parentPath;\n const tabId = $tabEl.attr('id');\n const flattenedRoutes = router.flattenRoutes(router.routes);\n let foundTabRoute;\n flattenedRoutes.forEach((route) => {\n if (\n route.parentPath === parentPath\n && route.tab\n && route.tab.id === tabId\n ) {\n foundTabRoute = route;\n }\n });\n return foundTabRoute;\n }\n\n findRouteByKey(key, value) {\n const router = this;\n const routes = router.routes;\n const flattenedRoutes = router.flattenRoutes(routes);\n let matchingRoute;\n\n flattenedRoutes.forEach((route) => {\n if (matchingRoute) return;\n if (route[key] === value) {\n matchingRoute = route;\n }\n });\n return matchingRoute;\n }\n\n findMatchingRoute(url) {\n if (!url) return undefined;\n const router = this;\n const routes = router.routes;\n const flattenedRoutes = router.flattenRoutes(routes);\n const { path, query, hash, params } = router.parseRouteUrl(url);\n let matchingRoute;\n flattenedRoutes.forEach((route) => {\n if (matchingRoute) return;\n const keys = [];\n\n const pathsToMatch = [route.path];\n if (route.alias) {\n if (typeof route.alias === 'string') pathsToMatch.push(route.alias);\n else if (Array.isArray(route.alias)) {\n route.alias.forEach((aliasPath) => {\n pathsToMatch.push(aliasPath);\n });\n }\n }\n\n let matched;\n pathsToMatch.forEach((pathToMatch) => {\n if (matched) return;\n matched = pathToRegexp(pathToMatch, keys).exec(path);\n });\n\n if (matched) {\n keys.forEach((keyObj, index) => {\n if (typeof keyObj.name === 'number') return;\n const paramValue = matched[index + 1];\n if (typeof paramValue === 'undefined' || paramValue === null) {\n params[keyObj.name] = paramValue;\n } else {\n params[keyObj.name] = decodeURIComponent(paramValue);\n }\n });\n\n let parentPath;\n if (route.parentPath) {\n parentPath = path.split('/').slice(0, route.parentPath.split('/').length - 1).join('/');\n }\n\n matchingRoute = {\n query,\n hash,\n params,\n url,\n path,\n parentPath,\n route,\n name: route.name,\n };\n }\n });\n return matchingRoute;\n }\n\n // eslint-disable-next-line\n replaceRequestUrlParams(url = '', options = {}) {\n let compiledUrl = url;\n if (typeof compiledUrl === 'string'\n && compiledUrl.indexOf('{{') >= 0\n && options\n && options.route\n && options.route.params\n && Object.keys(options.route.params).length\n ) {\n Object.keys(options.route.params).forEach((paramName) => {\n const regExp = new RegExp(`{{${paramName}}}`, 'g');\n compiledUrl = compiledUrl.replace(regExp, options.route.params[paramName] || '');\n });\n }\n return compiledUrl;\n }\n\n removeFromXhrCache(url) {\n const router = this;\n const xhrCache = router.cache.xhr;\n let index = false;\n for (let i = 0; i < xhrCache.length; i += 1) {\n if (xhrCache[i].url === url) index = i;\n }\n if (index !== false) xhrCache.splice(index, 1);\n }\n\n xhrRequest(requestUrl, options) {\n const router = this;\n const params = router.params;\n const { ignoreCache } = options;\n let url = requestUrl;\n\n let hasQuery = url.indexOf('?') >= 0;\n if (params.passRouteQueryToRequest\n && options\n && options.route\n && options.route.query\n && Object.keys(options.route.query).length\n ) {\n url += `${hasQuery ? '&' : '?'}${Utils.serializeObject(options.route.query)}`;\n hasQuery = true;\n }\n\n if (params.passRouteParamsToRequest\n && options\n && options.route\n && options.route.params\n && Object.keys(options.route.params).length\n ) {\n url += `${hasQuery ? '&' : '?'}${Utils.serializeObject(options.route.params)}`;\n hasQuery = true;\n }\n\n if (url.indexOf('{{') >= 0) {\n url = router.replaceRequestUrlParams(url, options);\n }\n // should we ignore get params or not\n if (params.xhrCacheIgnoreGetParameters && url.indexOf('?') >= 0) {\n url = url.split('?')[0];\n }\n return new Promise((resolve, reject) => {\n if (params.xhrCache && !ignoreCache && url.indexOf('nocache') < 0 && params.xhrCacheIgnore.indexOf(url) < 0) {\n for (let i = 0; i < router.cache.xhr.length; i += 1) {\n const cachedUrl = router.cache.xhr[i];\n if (cachedUrl.url === url) {\n // Check expiration\n if (Utils.now() - cachedUrl.time < params.xhrCacheDuration) {\n // Load from cache\n resolve(cachedUrl.content);\n return;\n }\n }\n }\n }\n router.xhr = router.app.request({\n url,\n method: 'GET',\n beforeSend(xhr) {\n router.emit('routerAjaxStart', xhr, options);\n },\n complete(xhr, status) {\n router.emit('routerAjaxComplete', xhr);\n if ((status !== 'error' && status !== 'timeout' && (xhr.status >= 200 && xhr.status < 300)) || xhr.status === 0) {\n if (params.xhrCache && xhr.responseText !== '') {\n router.removeFromXhrCache(url);\n router.cache.xhr.push({\n url,\n time: Utils.now(),\n content: xhr.responseText,\n });\n }\n router.emit('routerAjaxSuccess', xhr, options);\n resolve(xhr.responseText);\n } else {\n router.emit('routerAjaxError', xhr, options);\n reject(xhr);\n }\n },\n error(xhr) {\n router.emit('routerAjaxError', xhr, options);\n reject(xhr);\n },\n });\n });\n }\n\n setNavbarPosition($el, position, ariaHidden) {\n const router = this;\n $el.removeClass('navbar-previous navbar-current navbar-next');\n if (position) {\n $el.addClass(`navbar-${position}`);\n }\n\n if (ariaHidden === false) {\n $el.removeAttr('aria-hidden');\n } else if (ariaHidden === true) {\n $el.attr('aria-hidden', 'true');\n }\n $el.trigger('navbar:position', { position });\n router.emit('navbarPosition', $el[0], position);\n }\n\n setPagePosition($el, position, ariaHidden) {\n const router = this;\n $el.removeClass('page-previous page-current page-next');\n $el.addClass(`page-${position}`);\n if (ariaHidden === false) {\n $el.removeAttr('aria-hidden');\n } else if (ariaHidden === true) {\n $el.attr('aria-hidden', 'true');\n }\n $el.trigger('page:position', { position });\n router.emit('pagePosition', $el[0], position);\n }\n\n // Remove theme elements\n removeThemeElements(el) {\n const router = this;\n const theme = router.app.theme;\n let toRemove;\n if (theme === 'ios') {\n toRemove = '.md-only, .aurora-only, .if-md, .if-aurora, .if-not-ios, .not-ios';\n } else if (theme === 'md') {\n toRemove = '.ios-only, .aurora-only, .if-ios, .if-aurora, .if-not-md, .not-md';\n } else if (theme === 'aurora') {\n toRemove = '.ios-only, .md-only, .if-ios, .if-md, .if-not-aurora, .not-aurora';\n }\n $(el).find(toRemove).remove();\n }\n\n getPageData(pageEl, navbarEl, from, to, route = {}, pageFromEl) {\n const router = this;\n const $pageEl = $(pageEl).eq(0);\n const $navbarEl = $(navbarEl).eq(0);\n const currentPage = $pageEl[0].f7Page || {};\n let direction;\n let pageFrom;\n if ((from === 'next' && to === 'current') || (from === 'current' && to === 'previous')) direction = 'forward';\n if ((from === 'current' && to === 'next') || (from === 'previous' && to === 'current')) direction = 'backward';\n if (currentPage && !currentPage.fromPage) {\n const $pageFromEl = $(pageFromEl);\n if ($pageFromEl.length) {\n pageFrom = $pageFromEl[0].f7Page;\n }\n }\n pageFrom = currentPage.pageFrom || pageFrom;\n if (pageFrom && pageFrom.pageFrom) {\n pageFrom.pageFrom = null;\n }\n const page = {\n app: router.app,\n view: router.view,\n router,\n $el: $pageEl,\n el: $pageEl[0],\n $pageEl,\n pageEl: $pageEl[0],\n $navbarEl,\n navbarEl: $navbarEl[0],\n name: $pageEl.attr('data-name'),\n position: from,\n from,\n to,\n direction,\n route: currentPage.route ? currentPage.route : route,\n pageFrom,\n };\n\n $pageEl[0].f7Page = page;\n return page;\n }\n\n // Callbacks\n pageCallback(callback, pageEl, navbarEl, from, to, options = {}, pageFromEl) {\n if (!pageEl) return;\n const router = this;\n const $pageEl = $(pageEl);\n if (!$pageEl.length) return;\n const $navbarEl = $(navbarEl);\n const { route } = options;\n const restoreScrollTopOnBack = router.params.restoreScrollTopOnBack\n && !(\n router.params.masterDetailBreakpoint > 0\n && $pageEl.hasClass('page-master')\n && router.app.width >= router.params.masterDetailBreakpoint\n );\n const keepAlive = $pageEl[0].f7Page && $pageEl[0].f7Page.route && $pageEl[0].f7Page.route.route && $pageEl[0].f7Page.route.route.keepAlive;\n\n if (callback === 'beforeRemove' && keepAlive) {\n callback = 'beforeUnmount'; // eslint-disable-line\n }\n\n const camelName = `page${callback[0].toUpperCase() + callback.slice(1, callback.length)}`;\n const colonName = `page:${callback.toLowerCase()}`;\n\n let page = {};\n if (callback === 'beforeRemove' && $pageEl[0].f7Page) {\n page = Utils.extend($pageEl[0].f7Page, { from, to, position: from });\n } else {\n page = router.getPageData($pageEl[0], $navbarEl[0], from, to, route, pageFromEl);\n }\n page.swipeBack = !!options.swipeBack;\n\n const { on = {}, once = {} } = options.route ? options.route.route : {};\n if (options.on) {\n Utils.extend(on, options.on);\n }\n if (options.once) {\n Utils.extend(once, options.once);\n }\n\n function attachEvents() {\n if ($pageEl[0].f7RouteEventsAttached) return;\n $pageEl[0].f7RouteEventsAttached = true;\n if (on && Object.keys(on).length > 0) {\n $pageEl[0].f7RouteEventsOn = on;\n Object.keys(on).forEach((eventName) => {\n on[eventName] = on[eventName].bind(router);\n $pageEl.on(Utils.eventNameToColonCase(eventName), on[eventName]);\n });\n }\n if (once && Object.keys(once).length > 0) {\n $pageEl[0].f7RouteEventsOnce = once;\n Object.keys(once).forEach((eventName) => {\n once[eventName] = once[eventName].bind(router);\n $pageEl.once(Utils.eventNameToColonCase(eventName), once[eventName]);\n });\n }\n }\n\n function detachEvents() {\n if (!$pageEl[0].f7RouteEventsAttached) return;\n if ($pageEl[0].f7RouteEventsOn) {\n Object.keys($pageEl[0].f7RouteEventsOn).forEach((eventName) => {\n $pageEl.off(Utils.eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOn[eventName]);\n });\n }\n if ($pageEl[0].f7RouteEventsOnce) {\n Object.keys($pageEl[0].f7RouteEventsOnce).forEach((eventName) => {\n $pageEl.off(Utils.eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOnce[eventName]);\n });\n }\n $pageEl[0].f7RouteEventsAttached = null;\n $pageEl[0].f7RouteEventsOn = null;\n $pageEl[0].f7RouteEventsOnce = null;\n delete $pageEl[0].f7RouteEventsAttached;\n delete $pageEl[0].f7RouteEventsOn;\n delete $pageEl[0].f7RouteEventsOnce;\n }\n\n if (callback === 'mounted') {\n attachEvents();\n }\n if (callback === 'init') {\n if (restoreScrollTopOnBack && (from === 'previous' || !from) && to === 'current' && router.scrollHistory[page.route.url] && !$pageEl.hasClass('no-restore-scroll')) {\n let $pageContent = $pageEl.find('.page-content');\n if ($pageContent.length > 0) {\n // eslint-disable-next-line\n $pageContent = $pageContent.filter((pageContentIndex, pageContentEl) => {\n return (\n $(pageContentEl).parents('.tab:not(.tab-active)').length === 0\n && !$(pageContentEl).is('.tab:not(.tab-active)')\n );\n });\n }\n $pageContent.scrollTop(router.scrollHistory[page.route.url]);\n }\n attachEvents();\n if ($pageEl[0].f7PageInitialized) {\n $pageEl.trigger('page:reinit', page);\n router.emit('pageReinit', page);\n return;\n }\n $pageEl[0].f7PageInitialized = true;\n }\n if (restoreScrollTopOnBack && callback === 'beforeOut' && from === 'current' && to === 'previous') {\n // Save scroll position\n let $pageContent = $pageEl.find('.page-content');\n if ($pageContent.length > 0) {\n // eslint-disable-next-line\n $pageContent = $pageContent.filter((pageContentIndex, pageContentEl) => {\n return (\n $(pageContentEl).parents('.tab:not(.tab-active)').length === 0\n && !$(pageContentEl).is('.tab:not(.tab-active)')\n );\n });\n }\n router.scrollHistory[page.route.url] = $pageContent.scrollTop();\n }\n if (restoreScrollTopOnBack && callback === 'beforeOut' && from === 'current' && to === 'next') {\n // Delete scroll position\n delete router.scrollHistory[page.route.url];\n }\n\n $pageEl.trigger(colonName, page);\n router.emit(camelName, page);\n\n if (callback === 'beforeRemove' || callback === 'beforeUnmount') {\n detachEvents();\n if (!keepAlive) {\n if ($pageEl[0].f7Page && $pageEl[0].f7Page.navbarEl) {\n delete $pageEl[0].f7Page.navbarEl.f7Page;\n }\n $pageEl[0].f7Page = null;\n }\n }\n }\n\n saveHistory() {\n const router = this;\n router.view.history = router.history;\n if (router.params.pushState) {\n window.localStorage[`f7router-${router.view.id}-history`] = JSON.stringify(router.history);\n }\n }\n\n restoreHistory() {\n const router = this;\n if (router.params.pushState && window.localStorage[`f7router-${router.view.id}-history`]) {\n router.history = JSON.parse(window.localStorage[`f7router-${router.view.id}-history`]);\n router.view.history = router.history;\n }\n }\n\n clearHistory() {\n const router = this;\n router.history = [];\n if (router.view) router.view.history = [];\n router.saveHistory();\n }\n\n updateCurrentUrl(newUrl) {\n const router = this;\n appRouterCheck(router, 'updateCurrentUrl');\n // Update history\n if (router.history.length) {\n router.history[router.history.length - 1] = newUrl;\n } else {\n router.history.push(newUrl);\n }\n\n // Update current route params\n const { query, hash, params, url, path } = router.parseRouteUrl(newUrl);\n if (router.currentRoute) {\n Utils.extend(router.currentRoute, {\n query,\n hash,\n params,\n url,\n path,\n });\n }\n\n if (router.params.pushState) {\n const pushStateRoot = router.params.pushStateRoot || '';\n History.replace(\n router.view.id,\n {\n url: newUrl,\n },\n pushStateRoot + router.params.pushStateSeparator + newUrl\n );\n }\n\n // Save History\n router.saveHistory();\n\n router.emit('routeUrlUpdate', router.currentRoute, router);\n }\n\n init() {\n const router = this;\n const { app, view } = router;\n\n // Init Swipeback\n if (\n (view && router.params.iosSwipeBack && app.theme === 'ios')\n || (view && router.params.mdSwipeBack && app.theme === 'md')\n || (view && router.params.auroraSwipeBack && app.theme === 'aurora')\n ) {\n SwipeBack(router);\n }\n\n let initUrl = router.params.url;\n let documentUrl = document.location.href.split(document.location.origin)[1];\n let historyRestored;\n const { pushState, pushStateOnLoad, pushStateSeparator, pushStateAnimateOnLoad } = router.params;\n let { pushStateRoot } = router.params;\n if (window.cordova && pushState && !pushStateSeparator && !pushStateRoot && document.location.pathname.indexOf('index.html')) {\n // eslint-disable-next-line\n console.warn('Framework7: wrong or not complete pushState configuration, trying to guess pushStateRoot');\n pushStateRoot = document.location.pathname.split('index.html')[0];\n }\n if (!pushState || !pushStateOnLoad) {\n if (!initUrl) {\n initUrl = documentUrl;\n }\n if (document.location.search && initUrl.indexOf('?') < 0) {\n initUrl += document.location.search;\n }\n if (document.location.hash && initUrl.indexOf('#') < 0) {\n initUrl += document.location.hash;\n }\n } else {\n if (pushStateRoot && documentUrl.indexOf(pushStateRoot) >= 0) {\n documentUrl = documentUrl.split(pushStateRoot)[1];\n if (documentUrl === '') documentUrl = '/';\n }\n if (pushStateSeparator.length > 0 && documentUrl.indexOf(pushStateSeparator) >= 0) {\n initUrl = documentUrl.split(pushStateSeparator)[1];\n } else {\n initUrl = documentUrl;\n }\n router.restoreHistory();\n if (router.history.indexOf(initUrl) >= 0) {\n router.history = router.history.slice(0, router.history.indexOf(initUrl) + 1);\n } else if (router.params.url === initUrl) {\n router.history = [initUrl];\n } else if (History.state && History.state[view.id] && History.state[view.id].url === router.history[router.history.length - 1]) {\n initUrl = router.history[router.history.length - 1];\n } else {\n router.history = [documentUrl.split(pushStateSeparator)[0] || '/', initUrl];\n }\n if (router.history.length > 1) {\n historyRestored = true;\n } else {\n router.history = [];\n }\n router.saveHistory();\n }\n let currentRoute;\n if (router.history.length > 1) {\n // Will load page\n currentRoute = router.findMatchingRoute(router.history[0]);\n if (!currentRoute) {\n currentRoute = Utils.extend(router.parseRouteUrl(router.history[0]), {\n route: {\n url: router.history[0],\n path: router.history[0].split('?')[0],\n },\n });\n }\n } else {\n // Don't load page\n currentRoute = router.findMatchingRoute(initUrl);\n if (!currentRoute) {\n currentRoute = Utils.extend(router.parseRouteUrl(initUrl), {\n route: {\n url: initUrl,\n path: initUrl.split('?')[0],\n },\n });\n }\n }\n\n if (router.params.stackPages) {\n router.$el.children('.page').each((index, pageEl) => {\n const $pageEl = $(pageEl);\n router.initialPages.push($pageEl[0]);\n if (router.dynamicNavbar && $pageEl.children('.navbar').length > 0) {\n router.initialNavbars.push($pageEl.children('.navbar')[0]);\n }\n });\n }\n\n if (router.$el.children('.page:not(.stacked)').length === 0 && initUrl && router.params.loadInitialPage) {\n // No pages presented in DOM, reload new page\n router.navigate(initUrl, {\n initial: true,\n reloadCurrent: true,\n pushState: false,\n });\n } else if (router.$el.children('.page:not(.stacked)').length) {\n // Init current DOM page\n let hasTabRoute;\n router.currentRoute = currentRoute;\n router.$el.children('.page:not(.stacked)').each((index, pageEl) => {\n const $pageEl = $(pageEl);\n let $navbarEl;\n router.setPagePosition($pageEl, 'current');\n if (router.dynamicNavbar) {\n $navbarEl = $pageEl.children('.navbar');\n if ($navbarEl.length > 0) {\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n router.setNavbarPosition($navbarEl, 'current');\n router.$navbarsEl.append($navbarEl);\n if ($navbarEl.children('.title-large').length) {\n $navbarEl.addClass('navbar-large');\n }\n $pageEl.children('.navbar').remove();\n } else {\n router.$navbarsEl.addClass('navbar-hidden');\n if ($navbarEl.children('.title-large').length) {\n router.$navbarsEl.addClass('navbar-hidden navbar-large-hidden');\n }\n }\n }\n if (router.currentRoute && router.currentRoute.route && router.currentRoute.route.master && router.params.masterDetailBreakpoint > 0) {\n $pageEl.addClass('page-master');\n $pageEl.trigger('page:role', { role: 'master' });\n if ($navbarEl && $navbarEl.length) {\n $navbarEl.addClass('navbar-master');\n }\n view.checkMasterDetailBreakpoint();\n }\n const initOptions = {\n route: router.currentRoute,\n };\n if (router.currentRoute && router.currentRoute.route && router.currentRoute.route.options) {\n Utils.extend(initOptions, router.currentRoute.route.options);\n }\n router.currentPageEl = $pageEl[0];\n if (router.dynamicNavbar && $navbarEl.length) {\n router.currentNavbarEl = $navbarEl[0];\n }\n router.removeThemeElements($pageEl);\n if (router.dynamicNavbar && $navbarEl.length) {\n router.removeThemeElements($navbarEl);\n }\n if (initOptions.route.route.tab) {\n hasTabRoute = true;\n router.tabLoad(initOptions.route.route.tab, Utils.extend({}, initOptions));\n }\n router.pageCallback('init', $pageEl, $navbarEl, 'current', undefined, initOptions);\n });\n if (historyRestored) {\n router.navigate(initUrl, {\n initial: true,\n pushState: false,\n history: false,\n animate: pushStateAnimateOnLoad,\n once: {\n pageAfterIn() {\n const preloadPreviousPage = router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 2) {\n router.back({ preload: true });\n }\n },\n },\n });\n }\n if (!historyRestored && !hasTabRoute) {\n router.history.push(initUrl);\n router.saveHistory();\n }\n }\n if (initUrl && pushState && pushStateOnLoad && (!History.state || !History.state[view.id])) {\n History.initViewState(view.id, {\n url: initUrl,\n });\n }\n router.emit('local::init routerInit', router);\n }\n\n destroy() {\n let router = this;\n\n router.emit('local::destroy routerDestroy', router);\n\n // Delete props & methods\n Object.keys(router).forEach((routerProp) => {\n router[routerProp] = null;\n delete router[routerProp];\n });\n\n router = null;\n }\n}\n\n// Load\nRouter.prototype.forward = forward;\nRouter.prototype.load = load;\nRouter.prototype.navigate = navigate;\nRouter.prototype.refreshPage = refreshPage;\n// Tab\nRouter.prototype.tabLoad = tabLoad;\nRouter.prototype.tabRemove = tabRemove;\n// Modal\nRouter.prototype.modalLoad = modalLoad;\nRouter.prototype.modalRemove = modalRemove;\n// Back\nRouter.prototype.backward = backward;\nRouter.prototype.loadBack = loadBack;\nRouter.prototype.back = back;\n// Clear history\nRouter.prototype.clearPreviousHistory = clearPreviousHistory;\n\n\nexport default Router;\n","import $ from 'dom7';\nimport { document } from 'ssr-window';\nimport Utils from '../../utils/utils';\nimport History from '../../utils/history';\nimport redirect from './redirect';\nimport processRouteQueue from './process-route-queue';\nimport appRouterCheck from './app-router-check';\nimport asyncComponent from './async-component';\n\nfunction refreshPage() {\n const router = this;\n appRouterCheck(router, 'refreshPage');\n return router.navigate(router.currentRoute.url, {\n ignoreCache: true,\n reloadCurrent: true,\n });\n}\n\nfunction forward(el, forwardOptions = {}) {\n const router = this;\n const $el = $(el);\n const app = router.app;\n const view = router.view;\n const options = Utils.extend(false, {\n animate: router.params.animate,\n pushState: true,\n replaceState: false,\n history: true,\n reloadCurrent: router.params.reloadPages,\n reloadPrevious: false,\n reloadAll: false,\n clearPreviousHistory: false,\n reloadDetail: router.params.reloadDetail,\n on: {},\n }, forwardOptions);\n\n const masterDetailEnabled = router.params.masterDetailBreakpoint > 0;\n const isMaster = masterDetailEnabled && options.route && options.route.route && options.route.route.master === true;\n let masterPageEl;\n let otherDetailPageEl;\n\n let currentRouteIsModal = router.currentRoute.modal;\n let modalType;\n if (!currentRouteIsModal) {\n ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach((modalLoadProp) => {\n if (router.currentRoute && router.currentRoute.route && router.currentRoute.route[modalLoadProp]) {\n currentRouteIsModal = true;\n modalType = modalLoadProp;\n }\n });\n }\n\n if (currentRouteIsModal) {\n const modalToClose = router.currentRoute.modal\n || router.currentRoute.route.modalInstance\n || app[modalType].get();\n const previousUrl = router.history[router.history.length - 2];\n let previousRoute = router.findMatchingRoute(previousUrl);\n if (!previousRoute && previousUrl) {\n previousRoute = {\n url: previousUrl,\n path: previousUrl.split('?')[0],\n query: Utils.parseUrlQuery(previousUrl),\n route: {\n path: previousUrl.split('?')[0],\n url: previousUrl,\n },\n };\n }\n\n router.modalRemove(modalToClose);\n }\n\n const dynamicNavbar = router.dynamicNavbar;\n\n const $viewEl = router.$el;\n const $newPage = $el;\n const reload = options.reloadPrevious || options.reloadCurrent || options.reloadAll;\n let $oldPage;\n\n let $navbarsEl;\n let $newNavbarEl;\n let $oldNavbarEl;\n\n router.allowPageChange = false;\n if ($newPage.length === 0) {\n router.allowPageChange = true;\n return router;\n }\n\n if ($newPage.length) {\n // Remove theme elements\n router.removeThemeElements($newPage);\n }\n\n if (dynamicNavbar) {\n $newNavbarEl = $newPage.children('.navbar');\n $navbarsEl = router.$navbarsEl;\n if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) {\n // Try from pageData\n $newNavbarEl = $newPage[0].f7Page.$navbarEl;\n }\n }\n\n // Save Keep Alive Cache\n if (options.route && options.route.route && options.route.route.keepAlive && !options.route.route.keepAliveData) {\n options.route.route.keepAliveData = {\n pageEl: $el[0],\n };\n }\n\n // Pages In View\n const $pagesInView = $viewEl\n .children('.page:not(.stacked)')\n .filter((index, pageInView) => pageInView !== $newPage[0]);\n\n // Navbars In View\n let $navbarsInView;\n if (dynamicNavbar) {\n $navbarsInView = $navbarsEl\n .children('.navbar:not(.stacked)')\n .filter((index, navbarInView) => navbarInView !== $newNavbarEl[0]);\n }\n\n // Exit when reload previous and only 1 page in view so nothing ro reload\n if (options.reloadPrevious && $pagesInView.length < 2) {\n router.allowPageChange = true;\n return router;\n }\n\n // Find Detail' master page\n let isDetail;\n let reloadDetail;\n let isDetailRoot;\n if (masterDetailEnabled && !options.reloadAll) {\n for (let i = 0; i < $pagesInView.length; i += 1) {\n if (!masterPageEl\n && $pagesInView[i].classList.contains('page-master')\n ) {\n masterPageEl = $pagesInView[i];\n continue; // eslint-disable-line\n }\n }\n isDetail = !isMaster && masterPageEl;\n\n if (isDetail) {\n // Find Other Detail\n if (masterPageEl) {\n for (let i = 0; i < $pagesInView.length; i += 1) {\n if ($pagesInView[i].classList.contains('page-master-detail')\n ) {\n otherDetailPageEl = $pagesInView[i];\n continue; // eslint-disable-line\n }\n }\n }\n }\n reloadDetail = isDetail && options.reloadDetail && app.width >= router.params.masterDetailBreakpoint && masterPageEl;\n }\n if (isDetail) {\n isDetailRoot = !otherDetailPageEl || reloadDetail || options.reloadAll || options.reloadCurrent;\n }\n\n // New Page\n let newPagePosition = 'next';\n if (options.reloadCurrent || options.reloadAll || reloadDetail) {\n newPagePosition = 'current';\n } else if (options.reloadPrevious) {\n newPagePosition = 'previous';\n }\n $newPage\n .removeClass('page-previous page-current page-next')\n .addClass(`page-${newPagePosition}${isMaster ? ' page-master' : ''}${isDetail ? ' page-master-detail' : ''}${isDetailRoot ? ' page-master-detail-root' : ''}`)\n .removeClass('stacked')\n .trigger('page:unstack')\n .trigger('page:position', { position: newPagePosition });\n router.emit('pageUnstack', $newPage[0]);\n router.emit('pagePosition', $newPage[0], newPagePosition);\n\n if (isMaster || isDetail) {\n $newPage.trigger('page:role', { role: isMaster ? 'master' : 'detail', root: !!isDetailRoot });\n router.emit('pageRole', $newPage[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot });\n }\n\n if (dynamicNavbar && $newNavbarEl.length) {\n $newNavbarEl\n .removeClass('navbar-previous navbar-current navbar-next')\n .addClass(`navbar-${newPagePosition}${isMaster ? ' navbar-master' : ''}${isDetail ? ' navbar-master-detail' : ''}${isDetailRoot ? ' navbar-master-detail-root' : ''}`)\n .removeClass('stacked');\n $newNavbarEl.trigger('navbar:position', { position: newPagePosition });\n router.emit('navbarPosition', $newNavbarEl[0], newPagePosition);\n if (isMaster || isDetail) {\n router.emit('navbarRole', $newNavbarEl[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot });\n }\n }\n\n // Find Old Page\n if (options.reloadCurrent || reloadDetail) {\n $oldPage = $pagesInView.eq($pagesInView.length - 1);\n if (dynamicNavbar) {\n // $oldNavbarEl = $navbarsInView.eq($pagesInView.length - 1);\n $oldNavbarEl = $(app.navbar.getElByPage($oldPage));\n }\n } else if (options.reloadPrevious) {\n $oldPage = $pagesInView.eq($pagesInView.length - 2);\n if (dynamicNavbar) {\n // $oldNavbarEl = $navbarsInView.eq($pagesInView.length - 2);\n $oldNavbarEl = $(app.navbar.getElByPage($oldPage));\n }\n } else if (options.reloadAll) {\n $oldPage = $pagesInView.filter((index, pageEl) => pageEl !== $newPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl = $navbarsInView.filter((index, navbarEl) => navbarEl !== $newNavbarEl[0]);\n }\n } else {\n let removedPageEls = [];\n let removedNavbarEls = [];\n if ($pagesInView.length > 1) {\n let i = 0;\n for (i = 0; i < $pagesInView.length - 1; i += 1) {\n if (masterPageEl\n && $pagesInView[i] === masterPageEl\n ) {\n $pagesInView.eq(i).addClass('page-master-stacked');\n $pagesInView.eq(i).trigger('page:masterstack');\n router.emit('pageMasterStack', $pagesInView[i]);\n if (dynamicNavbar) {\n $(app.navbar.getElByPage(masterPageEl)).addClass('navbar-master-stacked');\n router.emit('navbarMasterStack', app.navbar.getElByPage(masterPageEl));\n }\n continue; // eslint-disable-line\n }\n const oldNavbarEl = app.navbar.getElByPage($pagesInView.eq(i));\n if (router.params.stackPages) {\n $pagesInView.eq(i).addClass('stacked');\n $pagesInView.eq(i).trigger('page:stack');\n router.emit('pageStack', $pagesInView[i]);\n if (dynamicNavbar) {\n $(oldNavbarEl).addClass('stacked');\n }\n } else {\n // Page remove event\n removedPageEls.push($pagesInView[i]);\n router.pageCallback('beforeRemove', $pagesInView[i], $navbarsInView && $navbarsInView[i], 'previous', undefined, options);\n router.removePage($pagesInView[i]);\n if (dynamicNavbar && oldNavbarEl) {\n removedNavbarEls.push(oldNavbarEl);\n router.removeNavbar(oldNavbarEl);\n }\n }\n }\n }\n $oldPage = $viewEl\n .children('.page:not(.stacked)')\n .filter((index, pageEl) => pageEl !== $newPage[0] && removedPageEls.indexOf(pageEl) < 0);\n if (dynamicNavbar) {\n $oldNavbarEl = $navbarsEl\n .children('.navbar:not(.stacked)')\n .filter((index, navbarEl) => navbarEl !== $newNavbarEl[0] && removedNavbarEls.indexOf(removedNavbarEls) < 0);\n }\n removedPageEls = [];\n removedNavbarEls = [];\n }\n\n if (isDetail && !options.reloadAll) {\n if ($oldPage.length > 1 || reloadDetail) {\n $oldPage = $oldPage.filter((pageIndex, pageEl) => !pageEl.classList.contains('page-master'));\n }\n if ($oldNavbarEl && ($oldNavbarEl.length > 1 || reloadDetail)) {\n $oldNavbarEl = $oldNavbarEl.filter((navbarIndex, navbarEl) => !navbarEl.classList.contains('navbar-master'));\n }\n }\n\n // Push State\n if (router.params.pushState && (options.pushState || options.replaceState) && !options.reloadPrevious) {\n const pushStateRoot = router.params.pushStateRoot || '';\n History[options.reloadCurrent || (reloadDetail && otherDetailPageEl) || options.reloadAll || options.replaceState ? 'replace' : 'push'](\n view.id,\n {\n url: options.route.url,\n },\n pushStateRoot + router.params.pushStateSeparator + options.route.url\n );\n }\n\n if (!options.reloadPrevious) {\n // Current Page & Navbar\n router.currentPageEl = $newPage[0];\n if (dynamicNavbar && $newNavbarEl.length) {\n router.currentNavbarEl = $newNavbarEl[0];\n } else {\n delete router.currentNavbarEl;\n }\n\n // Current Route\n router.currentRoute = options.route;\n }\n\n // Update router history\n const url = options.route.url;\n\n if (options.history) {\n if (((options.reloadCurrent || (reloadDetail && otherDetailPageEl)) && router.history.length) > 0 || options.replaceState) {\n router.history[router.history.length - (options.reloadPrevious ? 2 : 1)] = url;\n } else if (options.reloadPrevious) {\n router.history[router.history.length - 2] = url;\n } else if (options.reloadAll) {\n router.history = [url];\n } else {\n router.history.push(url);\n }\n }\n router.saveHistory();\n\n // Insert new page and navbar\n const newPageInDom = $newPage.parents(document).length > 0;\n const f7Component = $newPage[0].f7Component;\n if (options.reloadPrevious) {\n if (f7Component && !newPageInDom) {\n f7Component.$mount((componentEl) => {\n $(componentEl).insertBefore($oldPage);\n });\n } else {\n $newPage.insertBefore($oldPage);\n }\n if (dynamicNavbar && $newNavbarEl.length) {\n if ($newNavbarEl.find('.title-large').length) {\n $newNavbarEl.addClass('navbar-large');\n }\n if ($oldNavbarEl.length) {\n $newNavbarEl.insertBefore($oldNavbarEl);\n } else {\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n $navbarsEl.append($newNavbarEl);\n }\n }\n } else {\n if ($oldPage.next('.page')[0] !== $newPage[0]) {\n if (f7Component && !newPageInDom) {\n f7Component.$mount((componentEl) => {\n $viewEl.append(componentEl);\n });\n } else {\n $viewEl.append($newPage[0]);\n }\n }\n if (dynamicNavbar && $newNavbarEl.length) {\n if ($newNavbarEl.find('.title-large').length) {\n $newNavbarEl.addClass('navbar-large');\n }\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n $navbarsEl.append($newNavbarEl[0]);\n }\n }\n if (!newPageInDom) {\n router.pageCallback('mounted', $newPage, $newNavbarEl, newPagePosition, (reload ? newPagePosition : 'current'), options, $oldPage);\n } else if (options.route && options.route.route && options.route.route.keepAlive && !$newPage[0].f7PageMounted) {\n $newPage[0].f7PageMounted = true;\n router.pageCallback('mounted', $newPage, $newNavbarEl, newPagePosition, (reload ? newPagePosition : 'current'), options, $oldPage);\n }\n\n // Remove old page\n if ((options.reloadCurrent || reloadDetail) && $oldPage.length > 0) {\n if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) {\n $oldPage.addClass('stacked');\n $oldPage.trigger('page:stack');\n router.emit('pageStack', $oldPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else {\n // Page remove event\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', undefined, options);\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', undefined, options);\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'current', undefined, options);\n router.removePage($oldPage);\n if (dynamicNavbar && $oldNavbarEl && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n } else if (options.reloadAll) {\n $oldPage.each((index, pageEl) => {\n const $oldPageEl = $(pageEl);\n const $oldNavbarElEl = $(app.navbar.getElByPage($oldPageEl));\n if (router.params.stackPages && router.initialPages.indexOf($oldPageEl[0]) >= 0) {\n $oldPageEl.addClass('stacked');\n $oldPageEl.trigger('page:stack');\n router.emit('pageStack', $oldPageEl[0]);\n if (dynamicNavbar) {\n $oldNavbarElEl.addClass('stacked');\n }\n } else {\n // Page remove event\n if ($oldPageEl.hasClass('page-current')) {\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', undefined, options);\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', undefined, options);\n }\n router.pageCallback('beforeRemove', $oldPageEl, $oldNavbarEl && $oldNavbarEl.eq(index), 'previous', undefined, options);\n router.removePage($oldPageEl);\n if (dynamicNavbar && $oldNavbarElEl.length) {\n router.removeNavbar($oldNavbarElEl);\n }\n }\n });\n } else if (options.reloadPrevious) {\n if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) {\n $oldPage.addClass('stacked');\n $oldPage.trigger('page:stack');\n router.emit('pageStack', $oldPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else {\n // Page remove event\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'previous', undefined, options);\n router.removePage($oldPage);\n if (dynamicNavbar && $oldNavbarEl && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n }\n\n // Load Tab\n if (options.route.route.tab) {\n router.tabLoad(options.route.route.tab, Utils.extend({}, options, {\n history: false,\n pushState: false,\n }));\n }\n\n // Check master detail\n if (masterDetailEnabled) {\n view.checkMasterDetailBreakpoint();\n }\n\n // Page init and before init events\n router.pageCallback('init', $newPage, $newNavbarEl, newPagePosition, reload ? newPagePosition : 'current', options, $oldPage);\n\n if (options.reloadCurrent || options.reloadAll || reloadDetail) {\n router.allowPageChange = true;\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, newPagePosition, 'current', options);\n $newPage.removeAttr('aria-hidden');\n if (dynamicNavbar && $newNavbarEl) {\n $newNavbarEl.removeAttr('aria-hidden');\n }\n router.pageCallback('afterIn', $newPage, $newNavbarEl, newPagePosition, 'current', options);\n if (options.reloadCurrent && options.clearPreviousHistory) router.clearPreviousHistory();\n if (reloadDetail) {\n router.setPagePosition($(masterPageEl), 'previous');\n if (masterPageEl.f7Page && masterPageEl.f7Page.navbarEl) {\n router.setNavbarPosition($(masterPageEl.f7Page.navbarEl), 'previous');\n }\n }\n return router;\n }\n if (options.reloadPrevious) {\n router.allowPageChange = true;\n return router;\n }\n\n // Before animation event\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'previous', options);\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'next', 'current', options);\n\n // Animation\n function afterAnimation() {\n router.setPagePosition($newPage, 'current', false);\n router.setPagePosition($oldPage, 'previous', !$oldPage.hasClass('page-master'));\n if (dynamicNavbar) {\n router.setNavbarPosition($newNavbarEl, 'current', false);\n router.setNavbarPosition($oldNavbarEl, 'previous', !$oldNavbarEl.hasClass('navbar-master'));\n }\n // After animation event\n router.allowPageChange = true;\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'previous', options);\n router.pageCallback('afterIn', $newPage, $newNavbarEl, 'next', 'current', options);\n\n let keepOldPage = (router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`]) && !isMaster;\n if (!keepOldPage) {\n if ($newPage.hasClass('smart-select-page') || $newPage.hasClass('photo-browser-page') || $newPage.hasClass('autocomplete-page') || $newPage.hasClass('color-picker-page')) {\n keepOldPage = true;\n }\n }\n if (!keepOldPage) {\n if (router.params.stackPages) {\n $oldPage.addClass('stacked');\n $oldPage.trigger('page:stack');\n router.emit('pageStack', $oldPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else if (!($newPage.attr('data-name') && $newPage.attr('data-name') === 'smart-select-page')) {\n // Remove event\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'previous', undefined, options);\n router.removePage($oldPage);\n if (dynamicNavbar && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n }\n if (options.clearPreviousHistory) router.clearPreviousHistory();\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n\n if (router.params.pushState) {\n History.clearRouterQueue();\n }\n }\n function setPositionClasses() {\n router.setPagePosition($oldPage, 'current', false);\n router.setPagePosition($newPage, 'next', false);\n if (dynamicNavbar) {\n router.setNavbarPosition($oldNavbarEl, 'current', false);\n router.setNavbarPosition($newNavbarEl, 'next', false);\n }\n }\n if (options.animate && !(isMaster && app.width >= router.params.masterDetailBreakpoint)) {\n const delay = router.params[`${router.app.theme}PageLoadDelay`];\n let transition = router.params.transition;\n if (options.transition) transition = options.transition;\n if (!transition && router.currentRoute && router.currentRoute.route) {\n transition = router.currentRoute.route.transition;\n }\n if (!transition && router.currentRoute && router.currentRoute.route.options) {\n transition = router.currentRoute.route.options.transition;\n }\n if (transition) {\n $newPage[0].f7PageTransition = transition;\n }\n\n if (delay) {\n setTimeout(() => {\n setPositionClasses();\n router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'forward', transition, () => {\n afterAnimation();\n });\n }, delay);\n } else {\n setPositionClasses();\n router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'forward', transition, () => {\n afterAnimation();\n });\n }\n } else {\n afterAnimation();\n }\n return router;\n}\nfunction load(loadParams = {}, loadOptions = {}, ignorePageChange) {\n const router = this;\n if (!router.allowPageChange && !ignorePageChange) return router;\n const params = loadParams;\n const options = loadOptions;\n const { url, content, el, pageName, template, templateUrl, component, componentUrl } = params;\n\n if (!options.reloadCurrent\n && options.route\n && options.route.route\n && options.route.route.parentPath\n && router.currentRoute.route\n && router.currentRoute.route.parentPath === options.route.route.parentPath) {\n // Do something nested\n if (options.route.url === router.url) {\n router.allowPageChange = true;\n return false;\n }\n // Check for same params\n let sameParams = Object.keys(options.route.params).length === Object.keys(router.currentRoute.params).length;\n if (sameParams) {\n // Check for equal params name\n Object.keys(options.route.params).forEach((paramName) => {\n if (\n !(paramName in router.currentRoute.params)\n || (router.currentRoute.params[paramName] !== options.route.params[paramName])\n ) {\n sameParams = false;\n }\n });\n }\n if (sameParams) {\n if (options.route.route.tab) {\n return router.tabLoad(options.route.route.tab, options);\n }\n return false;\n }\n if (!sameParams\n && options.route.route.tab\n && router.currentRoute.route.tab\n && router.currentRoute.parentPath === options.route.parentPath\n ) {\n return router.tabLoad(options.route.route.tab, options);\n }\n }\n\n if (\n options.route\n && options.route.url\n && router.url === options.route.url\n && !(options.reloadCurrent || options.reloadPrevious)\n && !router.params.allowDuplicateUrls\n ) {\n router.allowPageChange = true;\n return false;\n }\n\n if (!options.route && url) {\n options.route = router.parseRouteUrl(url);\n Utils.extend(options.route, { route: { url, path: url } });\n }\n\n // Component Callbacks\n function resolve(pageEl, newOptions) {\n return router.forward(pageEl, Utils.extend(options, newOptions));\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (url || templateUrl || componentUrl) {\n router.allowPageChange = false;\n }\n\n // Proceed\n if (content) {\n router.forward(router.getPageEl(content), options);\n } else if (template || templateUrl) {\n // Parse template and send page element\n try {\n router.pageTemplateLoader(template, templateUrl, options, resolve, reject);\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (el) {\n // Load page from specified HTMLElement or by page name in pages container\n router.forward(router.getPageEl(el), options);\n } else if (pageName) {\n // Load page by page name in pages container\n router.forward(router.$el.children(`.page[data-name=\"${pageName}\"]`).eq(0), options);\n } else if (component || componentUrl) {\n // Load from component (F7/Vue/React/...)\n try {\n router.pageComponentLoader(router.el, component, componentUrl, options, resolve, reject);\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (url) {\n // Load using XHR\n if (router.xhr) {\n router.xhr.abort();\n router.xhr = false;\n }\n router.xhrRequest(url, options)\n .then((pageContent) => {\n router.forward(router.getPageEl(pageContent), options);\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n }\n return router;\n}\nfunction navigate(navigateParams, navigateOptions = {}) {\n const router = this;\n if (router.swipeBackActive) return router;\n let url;\n let createRoute;\n let name;\n let query;\n let params;\n let route;\n if (typeof navigateParams === 'string') {\n url = navigateParams;\n } else {\n url = navigateParams.url;\n createRoute = navigateParams.route;\n name = navigateParams.name;\n query = navigateParams.query;\n params = navigateParams.params;\n }\n if (name) {\n url = router.generateUrl({ name, params, query });\n if (url) {\n return router.navigate(url, navigateOptions);\n }\n return router;\n }\n const app = router.app;\n appRouterCheck(router, 'navigate');\n if (url === '#' || url === '') {\n return router;\n }\n\n let navigateUrl = url.replace('./', '');\n if (navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) {\n const currentPath = router.currentRoute.parentPath || router.currentRoute.path;\n navigateUrl = ((currentPath ? `${currentPath}/` : '/') + navigateUrl)\n .replace('///', '/')\n .replace('//', '/');\n }\n if (createRoute) {\n route = Utils.extend(router.parseRouteUrl(navigateUrl), {\n route: Utils.extend({}, createRoute),\n });\n } else {\n route = router.findMatchingRoute(navigateUrl);\n }\n\n if (!route) {\n return router;\n }\n if (route.route && route.route.viewName) {\n const anotherViewName = route.route.viewName;\n const anotherView = app.views[anotherViewName];\n if (!anotherView) {\n throw new Error(`Framework7: There is no View with \"${anotherViewName}\" name that was specified in this route`);\n }\n if (anotherView !== router.view) {\n return anotherView.router.navigate(navigateParams, navigateOptions);\n }\n }\n\n if (route.route.redirect) {\n return redirect.call(router, 'navigate', route, navigateOptions);\n }\n\n\n const options = {};\n if (route.route.options) {\n Utils.extend(options, route.route.options, navigateOptions);\n } else {\n Utils.extend(options, navigateOptions);\n }\n options.route = route;\n\n if (options && options.context) {\n route.context = options.context;\n options.route.context = options.context;\n }\n\n function resolve() {\n let routerLoaded = false;\n ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach((modalLoadProp) => {\n if (route.route[modalLoadProp] && !routerLoaded) {\n routerLoaded = true;\n router.modalLoad(modalLoadProp, route, options);\n }\n });\n if (route.route.keepAlive && route.route.keepAliveData) {\n router.load({ el: route.route.keepAliveData.pageEl }, options, false);\n routerLoaded = true;\n }\n ('url content component pageName el componentUrl template templateUrl').split(' ').forEach((pageLoadProp) => {\n if (route.route[pageLoadProp] && !routerLoaded) {\n routerLoaded = true;\n router.load({ [pageLoadProp]: route.route[pageLoadProp] }, options, false);\n }\n });\n if (routerLoaded) return;\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n router.allowPageChange = false;\n let resolvedAsModal = false;\n if (resolveOptions && resolveOptions.context) {\n if (!route.context) route.context = resolveOptions.context;\n else route.context = Utils.extend({}, route.context, resolveOptions.context);\n options.route.context = route.context;\n }\n ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach((modalLoadProp) => {\n if (resolveParams[modalLoadProp]) {\n resolvedAsModal = true;\n const modalRoute = Utils.extend({}, route, { route: resolveParams });\n router.allowPageChange = true;\n router.modalLoad(modalLoadProp, modalRoute, Utils.extend(options, resolveOptions));\n }\n });\n if (resolvedAsModal) return;\n router.load(resolveParams, Utils.extend(options, resolveOptions), true);\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (route.route.async) {\n router.allowPageChange = false;\n route.route.async.call(router, options.route, router.currentRoute, asyncResolve, asyncReject);\n }\n if (route.route.asyncComponent) {\n asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject);\n }\n }\n function reject() {\n router.allowPageChange = true;\n }\n\n if (router.params.masterDetailBreakpoint > 0 && route.route.masterRoute) {\n // load detail route\n let preloadMaster = true;\n let masterLoaded = false;\n if (router.currentRoute && router.currentRoute.route) {\n if (\n router.currentRoute.route.master\n && (\n router.currentRoute.route === route.route.masterRoute\n || router.currentRoute.route.path === route.route.masterRoute.path\n )\n ) {\n preloadMaster = false;\n }\n if (\n router.currentRoute.route.masterRoute\n && (router.currentRoute.route.masterRoute === route.route.masterRoute\n || router.currentRoute.route.masterRoute.path === route.route.masterRoute.path\n )\n ) {\n preloadMaster = false;\n masterLoaded = true;\n }\n }\n if (preloadMaster || (masterLoaded && navigateOptions.reloadAll)) {\n router.navigate(route.route.masterRoute.path, {\n animate: false,\n reloadAll: navigateOptions.reloadAll,\n reloadCurrent: navigateOptions.reloadCurrent,\n reloadPrevious: navigateOptions.reloadPrevious,\n pushState: !navigateOptions.initial,\n history: !navigateOptions.initial,\n once: {\n pageAfterIn() {\n router.navigate(navigateParams, Utils.extend({}, navigateOptions, {\n animate: false,\n reloadAll: false,\n reloadCurrent: false,\n reloadPrevious: false,\n history: !navigateOptions.initial,\n pushState: !navigateOptions.initial,\n }));\n },\n },\n });\n return router;\n }\n }\n\n processRouteQueue.call(\n router,\n route,\n router.currentRoute,\n () => {\n if (route.route.modules) {\n app\n .loadModules(Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules])\n .then(() => {\n resolve();\n })\n .catch(() => {\n reject();\n });\n } else {\n resolve();\n }\n },\n () => {\n reject();\n },\n );\n\n // Return Router\n return router;\n}\nexport { refreshPage, forward, load, navigate };\n","import $ from 'dom7';\nimport Utils from '../../utils/utils';\nimport History from '../../utils/history';\nimport asyncComponent from './async-component';\n\nfunction tabLoad(tabRoute, loadOptions = {}) {\n const router = this;\n const options = Utils.extend({\n animate: router.params.animate,\n pushState: true,\n history: true,\n parentPageEl: null,\n preload: false,\n on: {},\n }, loadOptions);\n\n let currentRoute;\n let previousRoute;\n if (options.route) {\n // Set Route\n if (!options.preload && options.route !== router.currentRoute) {\n previousRoute = router.previousRoute;\n router.currentRoute = options.route;\n }\n if (options.preload) {\n currentRoute = options.route;\n previousRoute = router.currentRoute;\n } else {\n currentRoute = router.currentRoute;\n if (!previousRoute) previousRoute = router.previousRoute;\n }\n\n // Update Browser History\n if (router.params.pushState && options.pushState && !options.reloadPrevious) {\n History.replace(\n router.view.id,\n {\n url: options.route.url,\n },\n (router.params.pushStateRoot || '') + router.params.pushStateSeparator + options.route.url\n );\n }\n\n // Update Router History\n if (options.history) {\n router.history[Math.max(router.history.length - 1, 0)] = options.route.url;\n router.saveHistory();\n }\n }\n\n // Show Tab\n const $parentPageEl = $(options.parentPageEl || router.currentPageEl);\n let tabEl;\n if ($parentPageEl.length && $parentPageEl.find(`#${tabRoute.id}`).length) {\n tabEl = $parentPageEl.find(`#${tabRoute.id}`).eq(0);\n } else if (router.view.selector) {\n tabEl = `${router.view.selector} #${tabRoute.id}`;\n } else {\n tabEl = `#${tabRoute.id}`;\n }\n const tabShowResult = router.app.tab.show({\n tabEl,\n animate: options.animate,\n tabRoute: options.route,\n });\n\n const { $newTabEl, $oldTabEl, animated, onTabsChanged } = tabShowResult;\n\n if ($newTabEl && $newTabEl.parents('.page').length > 0 && options.route) {\n const tabParentPageData = $newTabEl.parents('.page')[0].f7Page;\n if (tabParentPageData && options.route) {\n tabParentPageData.route = options.route;\n }\n }\n\n // Tab Content Loaded\n function onTabLoaded(contentEl) {\n // Remove theme elements\n router.removeThemeElements($newTabEl);\n\n let tabEventTarget = $newTabEl;\n if (typeof contentEl !== 'string') tabEventTarget = $(contentEl);\n\n tabEventTarget.trigger('tab:init tab:mounted', tabRoute);\n router.emit('tabInit tabMounted', $newTabEl[0], tabRoute);\n\n if ($oldTabEl && $oldTabEl.length) {\n if (animated) {\n onTabsChanged(() => {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n if (router.params.unloadTabContent) {\n router.tabRemove($oldTabEl, $newTabEl, tabRoute);\n }\n });\n } else {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n if (router.params.unloadTabContent) {\n router.tabRemove($oldTabEl, $newTabEl, tabRoute);\n }\n }\n }\n }\n\n if ($newTabEl[0].f7RouterTabLoaded) {\n if (!$oldTabEl || !$oldTabEl.length) return router;\n if (animated) {\n onTabsChanged(() => {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n });\n } else {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n }\n return router;\n }\n\n // Load Tab Content\n function loadTab(loadTabParams, loadTabOptions) {\n // Load Tab Props\n const { url, content, el, template, templateUrl, component, componentUrl } = loadTabParams;\n // Component/Template Callbacks\n function resolve(contentEl) {\n router.allowPageChange = true;\n if (!contentEl) return;\n if (typeof contentEl === 'string') {\n $newTabEl.html(contentEl);\n } else {\n $newTabEl.html('');\n if (contentEl.f7Component) {\n contentEl.f7Component.$mount((componentEl) => {\n $newTabEl.append(componentEl);\n });\n } else {\n $newTabEl.append(contentEl);\n }\n }\n $newTabEl[0].f7RouterTabLoaded = true;\n onTabLoaded(contentEl);\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (content) {\n resolve(content);\n } else if (template || templateUrl) {\n try {\n router.tabTemplateLoader(template, templateUrl, loadTabOptions, resolve, reject);\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (el) {\n resolve(el);\n } else if (component || componentUrl) {\n // Load from component (F7/Vue/React/...)\n try {\n router.tabComponentLoader($newTabEl[0], component, componentUrl, loadTabOptions, resolve, reject);\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (url) {\n // Load using XHR\n if (router.xhr) {\n router.xhr.abort();\n router.xhr = false;\n }\n router.xhrRequest(url, loadTabOptions)\n .then((tabContent) => {\n resolve(tabContent);\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n }\n }\n\n let hasContentLoadProp;\n ('url content component el componentUrl template templateUrl').split(' ').forEach((tabLoadProp) => {\n if (tabRoute[tabLoadProp]) {\n hasContentLoadProp = true;\n loadTab({ [tabLoadProp]: tabRoute[tabLoadProp] }, options);\n }\n });\n\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n loadTab(resolveParams, Utils.extend(options, resolveOptions));\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (tabRoute.async) {\n tabRoute.async.call(router, currentRoute, previousRoute, asyncResolve, asyncReject);\n } else if (tabRoute.asyncComponent) {\n asyncComponent(router, tabRoute.asyncComponent, asyncResolve, asyncReject);\n } else if (!hasContentLoadProp) {\n router.allowPageChange = true;\n }\n\n return router;\n}\nfunction tabRemove($oldTabEl, $newTabEl, tabRoute) {\n const router = this;\n\n let hasTabComponentChild;\n if ($oldTabEl[0]) {\n $oldTabEl[0].f7RouterTabLoaded = false;\n delete $oldTabEl[0].f7RouterTabLoaded;\n }\n $oldTabEl.children().each((index, tabChild) => {\n if (tabChild.f7Component) {\n hasTabComponentChild = true;\n $(tabChild).trigger('tab:beforeremove', tabRoute);\n tabChild.f7Component.$destroy();\n }\n });\n if (!hasTabComponentChild) {\n $oldTabEl.trigger('tab:beforeremove', tabRoute);\n }\n router.emit('tabBeforeRemove', $oldTabEl[0], $newTabEl[0], tabRoute);\n router.removeTabContent($oldTabEl[0], tabRoute);\n}\n\nexport { tabLoad, tabRemove };\n","import Utils from '../../utils/utils';\nimport History from '../../utils/history';\nimport asyncComponent from './async-component';\n\nfunction modalLoad(modalType, route, loadOptions = {}) {\n const router = this;\n const app = router.app;\n const isPanel = modalType === 'panel';\n const modalOrPanel = isPanel ? 'panel' : 'modal';\n\n const options = Utils.extend({\n animate: router.params.animate,\n pushState: true,\n history: true,\n on: {},\n }, loadOptions);\n\n const modalParams = Utils.extend({}, route.route[modalType]);\n const modalRoute = route.route;\n\n function onModalLoaded() {\n // Create Modal\n const modal = app[modalType].create(modalParams);\n modalRoute.modalInstance = modal;\n\n const hasEl = modal.el;\n\n function closeOnSwipeBack() {\n modal.close();\n }\n modal.on(`${modalOrPanel}Open`, () => {\n if (!hasEl) {\n // Remove theme elements\n router.removeThemeElements(modal.el);\n\n // Emit events\n modal.$el.trigger(`${modalType.toLowerCase()}:init ${modalType.toLowerCase()}:mounted`, route, modal);\n router.emit(`${!isPanel ? 'modalInit' : ''} ${modalType}Init ${modalType}Mounted`, modal.el, route, modal);\n }\n router.once('swipeBackMove', closeOnSwipeBack);\n });\n modal.on(`${modalOrPanel}Close`, () => {\n router.off('swipeBackMove', closeOnSwipeBack);\n if (!modal.closeByRouter) {\n router.back();\n }\n });\n\n modal.on(`${modalOrPanel}Closed`, () => {\n modal.$el.trigger(`${modalType.toLowerCase()}:beforeremove`, route, modal);\n modal.emit(`${!isPanel ? 'modalBeforeRemove ' : ''}${modalType}BeforeRemove`, modal.el, route, modal);\n const modalComponent = modal.el.f7Component;\n if (modalComponent) {\n modalComponent.$destroy();\n }\n Utils.nextTick(() => {\n if (modalComponent || modalParams.component) {\n router.removeModal(modal.el);\n }\n modal.destroy();\n delete modal.route;\n delete modalRoute.modalInstance;\n });\n });\n\n if (options.route) {\n // Update Browser History\n if (router.params.pushState && options.pushState) {\n History.push(\n router.view.id,\n {\n url: options.route.url,\n modal: modalType,\n },\n (router.params.pushStateRoot || '') + router.params.pushStateSeparator + options.route.url\n );\n }\n\n // Set Route\n if (options.route !== router.currentRoute) {\n modal.route = Utils.extend(options.route, { modal });\n router.currentRoute = modal.route;\n }\n\n // Update Router History\n if (options.history) {\n router.history.push(options.route.url);\n router.saveHistory();\n }\n }\n\n if (hasEl) {\n // Remove theme elements\n router.removeThemeElements(modal.el);\n\n // Emit events\n modal.$el.trigger(`${modalType.toLowerCase()}:init ${modalType.toLowerCase()}:mounted`, route, modal);\n router.emit(`${modalOrPanel}Init ${modalType}Init ${modalType}Mounted`, modal.el, route, modal);\n }\n\n // Open\n modal.open();\n }\n\n // Load Modal Content\n function loadModal(loadModalParams, loadModalOptions) {\n // Load Modal Props\n const { url, content, template, templateUrl, component, componentUrl } = loadModalParams;\n\n // Component/Template Callbacks\n function resolve(contentEl) {\n if (contentEl) {\n if (typeof contentEl === 'string') {\n modalParams.content = contentEl;\n } else if (contentEl.f7Component) {\n contentEl.f7Component.$mount((componentEl) => {\n modalParams.el = componentEl;\n app.root.append(componentEl);\n });\n } else {\n modalParams.el = contentEl;\n }\n onModalLoaded();\n }\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (content) {\n resolve(content);\n } else if (template || templateUrl) {\n try {\n router.modalTemplateLoader(template, templateUrl, loadModalOptions, resolve, reject);\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (component || componentUrl) {\n // Load from component (F7/Vue/React/...)\n try {\n router.modalComponentLoader(app.root[0], component, componentUrl, loadModalOptions, resolve, reject);\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (url) {\n // Load using XHR\n if (router.xhr) {\n router.xhr.abort();\n router.xhr = false;\n }\n router.xhrRequest(url, loadModalOptions)\n .then((modalContent) => {\n modalParams.content = modalContent;\n onModalLoaded();\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n } else {\n onModalLoaded();\n }\n }\n\n let foundLoadProp;\n ('url content component el componentUrl template templateUrl').split(' ').forEach((modalLoadProp) => {\n if (modalParams[modalLoadProp] && !foundLoadProp) {\n foundLoadProp = true;\n loadModal({ [modalLoadProp]: modalParams[modalLoadProp] }, options);\n }\n });\n if (!foundLoadProp && modalType === 'actions') {\n onModalLoaded();\n }\n\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n loadModal(resolveParams, Utils.extend(options, resolveOptions));\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (modalParams.async) {\n modalParams.async.call(router, options.route, router.currentRoute, asyncResolve, asyncReject);\n }\n if (modalParams.asyncComponent) {\n asyncComponent(router, modalParams.asyncComponent, asyncResolve, asyncReject);\n }\n return router;\n}\nfunction modalRemove(modal) {\n Utils.extend(modal, { closeByRouter: true });\n modal.close();\n}\n\nexport { modalLoad, modalRemove };\n","import $ from 'dom7';\nimport { document } from 'ssr-window';\nimport Utils from '../../utils/utils';\nimport Device from '../../utils/device';\nimport History from '../../utils/history';\nimport redirect from './redirect';\nimport processRouteQueue from './process-route-queue';\nimport appRouterCheck from './app-router-check';\nimport asyncComponent from './async-component';\n\nfunction backward(el, backwardOptions) {\n const router = this;\n const $el = $(el);\n const app = router.app;\n const view = router.view;\n\n const options = Utils.extend({\n animate: router.params.animate,\n pushState: true,\n replaceState: false,\n }, backwardOptions);\n\n const masterDetailEnabled = router.params.masterDetailBreakpoint > 0;\n const isMaster = masterDetailEnabled && options.route && options.route.route && options.route.route.master === true;\n let masterPageEl;\n let masterPageRemoved;\n\n const dynamicNavbar = router.dynamicNavbar;\n\n const $newPage = $el;\n const $oldPage = router.$el.children('.page-current');\n const currentIsMaster = masterDetailEnabled && $oldPage.hasClass('page-master');\n\n if ($newPage.length) {\n // Remove theme elements\n router.removeThemeElements($newPage);\n }\n\n let $navbarsEl;\n let $newNavbarEl;\n let $oldNavbarEl;\n\n if (dynamicNavbar) {\n $newNavbarEl = $newPage.children('.navbar');\n $navbarsEl = router.$navbarsEl;\n if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) {\n // Try from pageData\n $newNavbarEl = $newPage[0].f7Page.$navbarEl;\n }\n $oldNavbarEl = $navbarsEl.find('.navbar-current');\n }\n\n router.allowPageChange = false;\n if ($newPage.length === 0 || $oldPage.length === 0) {\n router.allowPageChange = true;\n return router;\n }\n\n // Remove theme elements\n router.removeThemeElements($newPage);\n\n // Save Keep Alive Cache\n if (options.route && options.route.route && options.route.route.keepAlive && !options.route.route.keepAliveData) {\n options.route.route.keepAliveData = {\n pageEl: $el[0],\n };\n }\n\n // Pages In View\n let isDetail;\n let isDetailRoot;\n if (masterDetailEnabled) {\n const $pagesInView = router.$el\n .children('.page:not(.stacked)')\n .filter((index, pageInView) => pageInView !== $newPage[0]);\n\n // Find Detail' master page\n for (let i = 0; i < $pagesInView.length; i += 1) {\n if (!masterPageEl\n && $pagesInView[i].classList.contains('page-master')\n ) {\n masterPageEl = $pagesInView[i];\n continue; // eslint-disable-line\n }\n }\n\n isDetail = !isMaster\n && masterPageEl\n && (router.history.indexOf(options.route.url) > router.history.indexOf(masterPageEl.f7Page.route.url));\n\n if (!isDetail && !isMaster && masterPageEl && masterPageEl.f7Page && options.route.route.masterRoute) {\n isDetail = options.route.route.masterRoute.path === masterPageEl.f7Page.route.route.path;\n }\n }\n if (isDetail && masterPageEl && masterPageEl.f7Page) {\n isDetailRoot = router.history.indexOf(options.route.url) - router.history.indexOf(masterPageEl.f7Page.route.url) === 1;\n }\n\n // New Page\n $newPage\n .addClass(`page-previous${isMaster ? ' page-master' : ''}${isDetail ? ' page-master-detail' : ''}${isDetailRoot ? ' page-master-detail-root' : ''}`)\n .removeClass('stacked')\n .removeAttr('aria-hidden')\n .trigger('page:unstack')\n .trigger('page:position', { position: 'previous' });\n router.emit('pageUnstack', $newPage[0]);\n router.emit('pagePosition', $newPage[0], 'previous');\n if (isMaster || isDetail) {\n $newPage.trigger('page:role', { role: isMaster ? 'master' : 'detail', root: !!isDetailRoot });\n router.emit('pageRole', $newPage[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot });\n }\n\n if (dynamicNavbar && $newNavbarEl.length > 0) {\n $newNavbarEl\n .addClass(`navbar-previous${isMaster ? ' navbar-master' : ''}${isDetail ? ' navbar-master-detail' : ''}${isDetailRoot ? ' navbar-master-detail-root' : ''}`)\n .removeClass('stacked')\n .removeAttr('aria-hidden');\n $newNavbarEl.trigger('navbar:position', { position: 'previous' });\n router.emit('navbarPosition', $newNavbarEl[0], 'previous');\n if (isMaster || isDetailRoot) {\n router.emit('navbarRole', $newNavbarEl[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot });\n }\n }\n\n // Remove previous page in case of \"forced\"\n let backIndex;\n if (options.force) {\n if ($oldPage.prev('.page-previous:not(.stacked)').length > 0 || $oldPage.prev('.page-previous').length === 0) {\n if (router.history.indexOf(options.route.url) >= 0) {\n backIndex = router.history.length - router.history.indexOf(options.route.url) - 1;\n router.history = router.history.slice(0, router.history.indexOf(options.route.url) + 2);\n view.history = router.history;\n } else if (router.history[[router.history.length - 2]]) {\n router.history[router.history.length - 2] = options.route.url;\n } else {\n router.history.unshift(router.url);\n }\n\n if (backIndex && router.params.stackPages) {\n $oldPage.prevAll('.page-previous').each((index, pageToRemove) => {\n const $pageToRemove = $(pageToRemove);\n let $navbarToRemove;\n if (dynamicNavbar) {\n // $navbarToRemove = $oldNavbarEl.prevAll('.navbar-previous').eq(index);\n $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));\n }\n if ($pageToRemove[0] !== $newPage[0] && $pageToRemove.index() > $newPage.index()) {\n if (router.initialPages.indexOf($pageToRemove[0]) >= 0) {\n $pageToRemove.addClass('stacked');\n $pageToRemove.trigger('page:stack');\n router.emit('pageStack', $pageToRemove[0]);\n if (dynamicNavbar) {\n $navbarToRemove.addClass('stacked');\n }\n } else {\n router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined, options);\n if ($pageToRemove[0] === masterPageEl) {\n masterPageRemoved = true;\n }\n router.removePage($pageToRemove);\n if (dynamicNavbar && $navbarToRemove.length > 0) {\n router.removeNavbar($navbarToRemove);\n }\n }\n }\n });\n } else {\n const $pageToRemove = $oldPage.prev('.page-previous:not(.stacked)');\n let $navbarToRemove;\n if (dynamicNavbar) {\n // $navbarToRemove = $oldNavbarEl.prev('.navbar-inner:not(.stacked)');\n $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));\n }\n if (router.params.stackPages && router.initialPages.indexOf($pageToRemove[0]) >= 0) {\n $pageToRemove.addClass('stacked');\n $pageToRemove.trigger('page:stack');\n router.emit('pageStack', $pageToRemove[0]);\n $navbarToRemove.addClass('stacked');\n } else if ($pageToRemove.length > 0) {\n router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined, options);\n if ($pageToRemove[0] === masterPageEl) {\n masterPageRemoved = true;\n }\n router.removePage($pageToRemove);\n if (dynamicNavbar && $navbarToRemove.length) {\n router.removeNavbar($navbarToRemove);\n }\n }\n }\n }\n }\n\n // Insert new page\n const newPageInDom = $newPage.parents(document).length > 0;\n const f7Component = $newPage[0].f7Component;\n\n function insertPage() {\n if ($newPage.next($oldPage).length === 0) {\n if (!newPageInDom && f7Component) {\n f7Component.$mount((componentEl) => {\n $(componentEl).insertBefore($oldPage);\n });\n } else {\n $newPage.insertBefore($oldPage);\n }\n }\n if (dynamicNavbar && $newNavbarEl.length) {\n if ($newNavbarEl.find('.title-large').length) {\n $newNavbarEl.addClass('navbar-large');\n }\n $newNavbarEl.insertBefore($oldNavbarEl);\n if ($oldNavbarEl.length > 0) {\n $newNavbarEl.insertBefore($oldNavbarEl);\n } else {\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n $navbarsEl.append($newNavbarEl);\n }\n }\n if (!newPageInDom) {\n router.pageCallback('mounted', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);\n } else if (options.route && options.route.route && options.route.route.keepAlive && !$newPage[0].f7PageMounted) {\n $newPage[0].f7PageMounted = true;\n router.pageCallback('mounted', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);\n }\n }\n\n if (options.preload) {\n // Insert Page\n insertPage();\n // Tab route\n if (options.route.route.tab) {\n router.tabLoad(options.route.route.tab, Utils.extend({}, options, {\n history: false,\n pushState: false,\n preload: true,\n }));\n }\n if (isMaster) {\n $newPage\n .removeClass('page-master-stacked')\n .trigger('page:masterunstack');\n router.emit('pageMasterUnstack', $newPage[0]);\n if (dynamicNavbar) {\n $(app.navbar.getElByPage($newPage)).removeClass('navbar-master-stacked');\n router.emit('navbarMasterUnstack', app.navbar.getElByPage($newPage));\n }\n }\n // Page init and before init events\n router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);\n const $previousPages = $newPage.prevAll('.page-previous:not(.stacked):not(.page-master)');\n if ($previousPages.length > 0) {\n $previousPages.each((index, pageToRemove) => {\n const $pageToRemove = $(pageToRemove);\n let $navbarToRemove;\n if (dynamicNavbar) {\n // $navbarToRemove = $newNavbarEl.prevAll('.navbar-previous:not(.stacked)').eq(index);\n $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));\n }\n if (router.params.stackPages && router.initialPages.indexOf(pageToRemove) >= 0) {\n $pageToRemove.addClass('stacked');\n $pageToRemove.trigger('page:stack');\n router.emit('pageStack', $pageToRemove[0]);\n if (dynamicNavbar) {\n $navbarToRemove.addClass('stacked');\n }\n } else {\n router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined);\n router.removePage($pageToRemove);\n if (dynamicNavbar && $navbarToRemove.length) {\n router.removeNavbar($navbarToRemove);\n }\n }\n });\n }\n router.allowPageChange = true;\n return router;\n }\n\n // History State\n if (!(Device.ie || Device.edge || (Device.firefox && !Device.ios))) {\n if (router.params.pushState && options.pushState) {\n if (options.replaceState) {\n const pushStateRoot = router.params.pushStateRoot || '';\n History.replace(\n view.id,\n {\n url: options.route.url,\n },\n pushStateRoot + router.params.pushStateSeparator + options.route.url\n );\n } else if (backIndex) {\n History.go(-backIndex);\n } else {\n History.back();\n }\n }\n }\n\n // Update History\n if (options.replaceState) {\n router.history[router.history.length - 1] = options.route.url;\n } else {\n if (router.history.length === 1) {\n router.history.unshift(router.url);\n }\n router.history.pop();\n }\n router.saveHistory();\n\n // Current Page & Navbar\n router.currentPageEl = $newPage[0];\n if (dynamicNavbar && $newNavbarEl.length) {\n router.currentNavbarEl = $newNavbarEl[0];\n } else {\n delete router.currentNavbarEl;\n }\n\n // Current Route\n router.currentRoute = options.route;\n\n // History State\n if (Device.ie || Device.edge || (Device.firefox && !Device.ios)) {\n if (router.params.pushState && options.pushState) {\n if (options.replaceState) {\n const pushStateRoot = router.params.pushStateRoot || '';\n History.replace(\n view.id,\n {\n url: options.route.url,\n },\n pushStateRoot + router.params.pushStateSeparator + options.route.url\n );\n } else if (backIndex) {\n History.go(-backIndex);\n } else {\n History.back();\n }\n }\n }\n\n // Insert Page\n insertPage();\n\n // Load Tab\n if (options.route.route.tab) {\n router.tabLoad(options.route.route.tab, Utils.extend({}, options, {\n history: false,\n pushState: false,\n }));\n }\n\n // Check master detail\n\n if (masterDetailEnabled && (currentIsMaster || masterPageRemoved)) {\n view.checkMasterDetailBreakpoint(false);\n }\n\n // Page init and before init events\n router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);\n\n // Before animation callback\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'next', options);\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'previous', 'current', options);\n\n // Animation\n function afterAnimation() {\n // Set classes\n router.setPagePosition($newPage, 'current', false);\n router.setPagePosition($oldPage, 'next', true);\n if (dynamicNavbar) {\n router.setNavbarPosition($newNavbarEl, 'current', false);\n router.setNavbarPosition($oldNavbarEl, 'next', true);\n }\n\n // After animation event\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'next', options);\n router.pageCallback('afterIn', $newPage, $newNavbarEl, 'previous', 'current', options);\n\n // Remove Old Page\n if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) {\n $oldPage.addClass('stacked');\n $oldPage.trigger('page:stack');\n router.emit('pageStack', $oldPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else {\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'next', undefined, options);\n router.removePage($oldPage);\n if (dynamicNavbar && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n\n router.allowPageChange = true;\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n\n // Preload previous page\n const preloadPreviousPage = router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history[router.history.length - 2] && !isMaster) {\n router.back(router.history[router.history.length - 2], { preload: true });\n }\n if (router.params.pushState) {\n History.clearRouterQueue();\n }\n }\n\n function setPositionClasses() {\n router.setPagePosition($oldPage, 'current');\n router.setPagePosition($newPage, 'previous', false);\n if (dynamicNavbar) {\n router.setNavbarPosition($oldNavbarEl, 'current');\n router.setNavbarPosition($newNavbarEl, 'previous', false);\n }\n }\n\n if (options.animate && !(currentIsMaster && app.width >= router.params.masterDetailBreakpoint)) {\n let transition = router.params.transition;\n if ($oldPage[0] && $oldPage[0].f7PageTransition) {\n transition = $oldPage[0].f7PageTransition;\n delete $oldPage[0].f7PageTransition;\n }\n if (options.transition) transition = options.transition;\n if (!transition && router.previousRoute && router.previousRoute.route) {\n transition = router.previousRoute.route.transition;\n }\n if (!transition && router.previousRoute && router.previousRoute.route && router.previousRoute.route.options) {\n transition = router.previousRoute.route.options.transition;\n }\n setPositionClasses();\n router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'backward', transition, () => {\n afterAnimation();\n });\n } else {\n afterAnimation();\n }\n\n return router;\n}\nfunction loadBack(backParams, backOptions, ignorePageChange) {\n const router = this;\n\n if (!router.allowPageChange && !ignorePageChange) return router;\n const params = backParams;\n const options = backOptions;\n const { url, content, el, pageName, template, templateUrl, component, componentUrl } = params;\n\n if (\n options.route.url\n && router.url === options.route.url\n && !(options.reloadCurrent || options.reloadPrevious)\n && !router.params.allowDuplicateUrls\n ) {\n return false;\n }\n\n if (!options.route && url) {\n options.route = router.parseRouteUrl(url);\n }\n\n // Component Callbacks\n function resolve(pageEl, newOptions) {\n return router.backward(pageEl, Utils.extend(options, newOptions));\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (url || templateUrl || componentUrl) {\n router.allowPageChange = false;\n }\n\n // Proceed\n if (content) {\n router.backward(router.getPageEl(content), options);\n } else if (template || templateUrl) {\n // Parse template and send page element\n try {\n router.pageTemplateLoader(template, templateUrl, options, resolve, reject);\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (el) {\n // Load page from specified HTMLElement or by page name in pages container\n router.backward(router.getPageEl(el), options);\n } else if (pageName) {\n // Load page by page name in pages container\n router.backward(router.$el.children(`.page[data-name=\"${pageName}\"]`).eq(0), options);\n } else if (component || componentUrl) {\n // Load from component (F7/Vue/React/...)\n try {\n router.pageComponentLoader(router.el, component, componentUrl, options, resolve, reject);\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (url) {\n // Load using XHR\n if (router.xhr) {\n router.xhr.abort();\n router.xhr = false;\n }\n router.xhrRequest(url, options)\n .then((pageContent) => {\n router.backward(router.getPageEl(pageContent), options);\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n }\n return router;\n}\nfunction back(...args) {\n const router = this;\n if (router.swipeBackActive) return router;\n let navigateUrl;\n let navigateOptions;\n let route;\n if (typeof args[0] === 'object') {\n navigateOptions = args[0] || {};\n } else {\n navigateUrl = args[0];\n navigateOptions = args[1] || {};\n }\n\n const { name, params, query } = navigateOptions;\n if (name) {\n navigateUrl = router.generateUrl({ name, params, query });\n if (navigateUrl) {\n return router.back(navigateUrl, Utils.extend({}, navigateOptions, {\n name: null,\n params: null,\n query: null,\n }));\n }\n return router;\n }\n\n const app = router.app;\n appRouterCheck(router, 'back');\n\n let currentRouteIsModal = router.currentRoute.modal;\n let modalType;\n if (!currentRouteIsModal) {\n ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach((modalLoadProp) => {\n if (router.currentRoute.route[modalLoadProp]) {\n currentRouteIsModal = true;\n modalType = modalLoadProp;\n }\n });\n }\n if (currentRouteIsModal) {\n const modalToClose = router.currentRoute.modal\n || router.currentRoute.route.modalInstance\n || app[modalType].get();\n const previousUrl = router.history[router.history.length - 2];\n let previousRoute;\n // check if previous route is modal too\n if (modalToClose && modalToClose.$el) {\n const prevOpenedModals = modalToClose.$el.prevAll('.modal-in');\n if (prevOpenedModals.length && prevOpenedModals[0].f7Modal) {\n const modalEl = prevOpenedModals[0];\n // check if current router not inside of the modalEl\n if (!router.$el.parents(modalEl).length) {\n previousRoute = modalEl.f7Modal.route;\n }\n }\n }\n if (!previousRoute) {\n previousRoute = router.findMatchingRoute(previousUrl);\n }\n\n if (!previousRoute && previousUrl) {\n previousRoute = {\n url: previousUrl,\n path: previousUrl.split('?')[0],\n query: Utils.parseUrlQuery(previousUrl),\n route: {\n path: previousUrl.split('?')[0],\n url: previousUrl,\n },\n };\n }\n if (!navigateUrl || navigateUrl.replace(/[# ]/g, '').trim().length === 0) {\n if (!previousRoute || !modalToClose) {\n return router;\n }\n }\n const forceOtherUrl = navigateOptions.force && previousRoute && navigateUrl;\n if (previousRoute && modalToClose) {\n const isBrokenPushState = Device.ie || Device.edge || (Device.firefox && !Device.ios);\n const needHistoryBack = router.params.pushState && navigateOptions.pushState !== false;\n if (needHistoryBack && !isBrokenPushState) {\n History.back();\n }\n router.currentRoute = previousRoute;\n router.history.pop();\n router.saveHistory();\n\n if (needHistoryBack && isBrokenPushState) {\n History.back();\n }\n\n router.modalRemove(modalToClose);\n if (forceOtherUrl) {\n router.navigate(navigateUrl, { reloadCurrent: true });\n }\n } else if (modalToClose) {\n router.modalRemove(modalToClose);\n if (navigateUrl) {\n router.navigate(navigateUrl, { reloadCurrent: true });\n }\n }\n return router;\n }\n let $previousPage = router.$el.children('.page-current').prevAll('.page-previous:not(.page-master)').eq(0);\n\n let skipMaster;\n if (router.params.masterDetailBreakpoint > 0) {\n const $previousMaster = router.$el.children('.page-current').prevAll('.page-master').eq(0);\n if ($previousMaster.length) {\n const expectedPreviousPageUrl = router.history[router.history.length - 2];\n const expectedPreviousPageRoute = router.findMatchingRoute(expectedPreviousPageUrl);\n if (expectedPreviousPageRoute && expectedPreviousPageRoute.route === $previousMaster[0].f7Page.route.route) {\n $previousPage = $previousMaster;\n if (!navigateOptions.preload) {\n skipMaster = app.width >= router.params.masterDetailBreakpoint;\n }\n }\n }\n }\n if (!navigateOptions.force && $previousPage.length && !skipMaster) {\n if (router.params.pushState\n && $previousPage[0].f7Page\n && router.history[router.history.length - 2] !== $previousPage[0].f7Page.route.url\n ) {\n router.back(\n router.history[router.history.length - 2],\n Utils.extend(navigateOptions, { force: true })\n );\n return router;\n }\n const previousPageRoute = $previousPage[0].f7Page.route;\n\n processRouteQueue.call(\n router,\n previousPageRoute,\n router.currentRoute,\n () => {\n router.loadBack({ el: $previousPage }, Utils.extend(navigateOptions, {\n route: previousPageRoute,\n }));\n },\n () => {}\n );\n\n return router;\n }\n\n // Navigate URL\n if (navigateUrl === '#') {\n navigateUrl = undefined;\n }\n if (navigateUrl && navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) {\n navigateUrl = ((router.path || '/') + navigateUrl).replace('//', '/');\n }\n if (!navigateUrl && router.history.length > 1) {\n navigateUrl = router.history[router.history.length - 2];\n }\n if (skipMaster && !navigateOptions.force && router.history[router.history.length - 3]) {\n return router.back(router.history[router.history.length - 3], Utils.extend({}, navigateOptions || {}, {\n force: true,\n animate: false,\n }));\n }\n if (skipMaster && !navigateOptions.force) {\n return router;\n }\n\n // Find route to load\n route = router.findMatchingRoute(navigateUrl);\n if (!route) {\n if (navigateUrl) {\n route = {\n url: navigateUrl,\n path: navigateUrl.split('?')[0],\n query: Utils.parseUrlQuery(navigateUrl),\n route: {\n path: navigateUrl.split('?')[0],\n url: navigateUrl,\n },\n };\n }\n }\n if (!route) {\n return router;\n }\n\n if (route.route.redirect) {\n return redirect.call(router, 'back', route, navigateOptions);\n }\n\n const options = {};\n if (route.route.options) {\n Utils.extend(options, route.route.options, navigateOptions);\n } else {\n Utils.extend(options, navigateOptions);\n }\n options.route = route;\n\n if (options && options.context) {\n route.context = options.context;\n options.route.context = options.context;\n }\n\n let backForceLoaded;\n if (options.force && router.params.stackPages) {\n router.$el.children('.page-previous.stacked').each((index, pageEl) => {\n if (pageEl.f7Page && pageEl.f7Page.route && pageEl.f7Page.route.url === route.url) {\n backForceLoaded = true;\n router.loadBack({ el: pageEl }, options);\n }\n });\n if (backForceLoaded) {\n return router;\n }\n }\n function resolve() {\n let routerLoaded = false;\n if (route.route.keepAlive && route.route.keepAliveData) {\n router.loadBack({ el: route.route.keepAliveData.pageEl }, options);\n routerLoaded = true;\n }\n ('url content component pageName el componentUrl template templateUrl').split(' ').forEach((pageLoadProp) => {\n if (route.route[pageLoadProp] && !routerLoaded) {\n routerLoaded = true;\n router.loadBack({ [pageLoadProp]: route.route[pageLoadProp] }, options);\n }\n });\n if (routerLoaded) return;\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n router.allowPageChange = false;\n if (resolveOptions && resolveOptions.context) {\n if (!route.context) route.context = resolveOptions.context;\n else route.context = Utils.extend({}, route.context, resolveOptions.context);\n options.route.context = route.context;\n }\n router.loadBack(resolveParams, Utils.extend(options, resolveOptions), true);\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (route.route.async) {\n router.allowPageChange = false;\n route.route.async.call(router, route, router.currentRoute, asyncResolve, asyncReject);\n }\n if (route.route.asyncComponent) {\n asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject);\n }\n }\n function reject() {\n router.allowPageChange = true;\n }\n\n if (options.preload) {\n resolve();\n } else {\n processRouteQueue.call(\n router,\n route,\n router.currentRoute,\n () => {\n if (route.route.modules) {\n app\n .loadModules(Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules])\n .then(() => {\n resolve();\n })\n .catch(() => {\n reject();\n });\n } else {\n resolve();\n }\n },\n () => {\n reject();\n },\n );\n }\n\n // Return Router\n return router;\n}\nexport { backward, loadBack, back };\n","import $ from 'dom7';\nimport appRouterCheck from './app-router-check';\n\nfunction clearPreviousPages(router) {\n appRouterCheck(router, 'clearPreviousPages');\n const app = router.app;\n const dynamicNavbar = router.dynamicNavbar;\n\n const $pagesToRemove = router.$el\n .children('.page')\n .filter((index, pageInView) => {\n if (router.currentRoute && (router.currentRoute.modal || router.currentRoute.panel)) return true;\n return pageInView !== router.currentPageEl;\n });\n\n $pagesToRemove.each((index, pageEl) => {\n const $oldPageEl = $(pageEl);\n const $oldNavbarEl = $(app.navbar.getElByPage($oldPageEl));\n if (router.params.stackPages && router.initialPages.indexOf($oldPageEl[0]) >= 0) {\n $oldPageEl.addClass('stacked');\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else {\n // Page remove event\n router.pageCallback('beforeRemove', $oldPageEl, $oldNavbarEl, 'previous', undefined, {});\n router.removePage($oldPageEl);\n if (dynamicNavbar && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n });\n}\n\nfunction clearPreviousHistory() {\n const router = this;\n appRouterCheck(router, 'clearPreviousHistory');\n const url = router.history[router.history.length - 1];\n\n clearPreviousPages(router);\n\n router.history = [url];\n router.view.history = [url];\n router.saveHistory();\n}\n\nexport { clearPreviousHistory }; // eslint-disable-line\n","import Router from './router-class';\n\nexport default {\n name: 'router',\n static: {\n Router,\n },\n instance: {\n cache: {\n xhr: [],\n templates: [],\n components: [],\n },\n },\n create() {\n const instance = this;\n if (instance.app) {\n // View Router\n if (instance.params.router) {\n instance.router = new Router(instance.app, instance);\n }\n } else {\n // App Router\n instance.router = new Router(instance);\n }\n },\n};\n","import $ from 'dom7';\nimport Utils from '../../utils/utils';\nimport Support from '../../utils/support';\n\nfunction resizableView(view) {\n const app = view.app;\n if (view.resizableInitialized) return;\n Utils.extend(view, {\n resizable: true,\n resizableWidth: null,\n resizableInitialized: true,\n });\n const $htmlEl = $('html');\n const { $el } = view;\n if (!$el) return;\n\n let $resizeHandlerEl;\n\n let isTouched;\n let isMoved;\n const touchesStart = {};\n let touchesDiff;\n let width;\n\n let minWidth;\n let maxWidth;\n\n function transformCSSWidth(v) {\n if (!v) return null;\n if (v.indexOf('%') >= 0 || v.indexOf('vw') >= 0) {\n return parseInt(v, 10) / 100 * app.width;\n }\n const newV = parseInt(v, 10);\n if (Number.isNaN(newV)) return null;\n return newV;\n }\n\n function isResizable() {\n return view.resizable && $el.hasClass('view-resizable') && $el.hasClass('view-master-detail');\n }\n\n function handleTouchStart(e) {\n if (!isResizable()) return;\n touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n isMoved = false;\n isTouched = true;\n const $pageMasterEl = $el.children('.page-master');\n minWidth = transformCSSWidth($pageMasterEl.css('min-width'));\n maxWidth = transformCSSWidth($pageMasterEl.css('max-width'));\n }\n function handleTouchMove(e) {\n if (!isTouched) return;\n e.f7PreventSwipePanel = true;\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n\n if (!isMoved) {\n width = $resizeHandlerEl[0].offsetLeft + $resizeHandlerEl[0].offsetWidth;\n $el.addClass('view-resizing');\n $htmlEl.css('cursor', 'col-resize');\n }\n\n isMoved = true;\n\n e.preventDefault();\n\n touchesDiff = (pageX - touchesStart.x);\n\n let newWidth = width + touchesDiff;\n if (minWidth && !Number.isNaN(minWidth)) {\n newWidth = Math.max(newWidth, minWidth);\n }\n if (maxWidth && !Number.isNaN(maxWidth)) {\n newWidth = Math.min(newWidth, maxWidth);\n }\n newWidth = Math.min(Math.max(newWidth, 0), app.width);\n\n view.resizableWidth = newWidth;\n $htmlEl[0].style.setProperty('--f7-page-master-width', `${newWidth}px`);\n\n $el.trigger('view:resize', newWidth);\n view.emit('local::resize viewResize', view, newWidth);\n }\n function handleTouchEnd() {\n $('html').css('cursor', '');\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n isTouched = false;\n isMoved = false;\n\n $htmlEl[0].style.setProperty('--f7-page-master-width', `${view.resizableWidth}px`);\n $el.removeClass('view-resizing');\n }\n\n function handleResize() {\n if (!view.resizableWidth) return;\n minWidth = transformCSSWidth($resizeHandlerEl.css('min-width'));\n maxWidth = transformCSSWidth($resizeHandlerEl.css('max-width'));\n\n if (minWidth && !Number.isNaN(minWidth) && view.resizableWidth < minWidth) {\n view.resizableWidth = Math.max(view.resizableWidth, minWidth);\n }\n if (maxWidth && !Number.isNaN(maxWidth) && view.resizableWidth > maxWidth) {\n view.resizableWidth = Math.min(view.resizableWidth, maxWidth);\n }\n view.resizableWidth = Math.min(Math.max(view.resizableWidth, 0), app.width);\n\n $htmlEl[0].style.setProperty('--f7-page-master-width', `${view.resizableWidth}px`);\n }\n\n $resizeHandlerEl = view.$el.children('.view-resize-handler');\n if (!$resizeHandlerEl.length) {\n view.$el.append('
');\n $resizeHandlerEl = view.$el.children('.view-resize-handler');\n }\n view.$resizeHandlerEl = $resizeHandlerEl;\n\n $el.addClass('view-resizable');\n\n // Add Events\n const passive = Support.passiveListener ? { passive: true } : false;\n\n view.$el.on(app.touchEvents.start, '.view-resize-handler', handleTouchStart, passive);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n app.on('resize', handleResize);\n view.on('beforeOpen', handleResize);\n\n view.once('viewDestroy', () => {\n $el.removeClass('view-resizable');\n view.$resizeHandlerEl.remove();\n view.$el.off(app.touchEvents.start, '.view-resize-handler', handleTouchStart, passive);\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n app.off('resize', handleResize);\n view.off('beforeOpen', handleResize);\n });\n}\n\nexport default resizableView;\n","import $ from 'dom7';\nimport Utils from '../../utils/utils';\nimport Router from '../../modules/router/router';\nimport Framework7Class from '../../utils/class';\nimport resizableView from './resizable-view';\n\nclass View extends Framework7Class {\n constructor(appInstance, el, viewParams = {}) {\n super(viewParams, [appInstance]);\n\n const app = appInstance;\n const $el = $(el);\n const view = this;\n\n const defaults = {\n routes: [],\n routesAdd: [],\n };\n\n if ($el.length === 0) {\n let message = 'Framework7: can\\'t create a View instance because ';\n message += (typeof el === 'string')\n ? `the selector \"${el}\" didn't match any element`\n : 'el must be an HTMLElement or Dom7 object';\n\n throw new Error(message);\n }\n\n // Default View params\n view.params = Utils.extend(defaults, app.params.view, viewParams);\n\n // Routes\n if (view.params.routes.length > 0) {\n view.routes = view.params.routes;\n } else {\n view.routes = [].concat(app.routes, view.params.routesAdd);\n }\n\n // Selector\n let selector;\n if (typeof el === 'string') selector = el;\n else {\n // Supposed to be HTMLElement or Dom7\n selector = ($el.attr('id') ? `#${$el.attr('id')}` : '') + ($el.attr('class') ? `.${$el.attr('class').replace(/ /g, '.').replace('.active', '')}` : '');\n }\n\n // DynamicNavbar\n let $navbarsEl;\n if (app.theme === 'ios' && view.params.iosDynamicNavbar) {\n $navbarsEl = $el.children('.navbars').eq(0);\n if ($navbarsEl.length === 0) {\n $navbarsEl = $('
');\n }\n }\n\n // View Props\n Utils.extend(false, view, {\n app,\n $el,\n el: $el[0],\n name: view.params.name,\n main: view.params.main || $el.hasClass('view-main'),\n $navbarsEl,\n navbarsEl: $navbarsEl ? $navbarsEl[0] : undefined,\n selector,\n history: [],\n scrollHistory: {},\n });\n\n // Save in DOM\n $el[0].f7View = view;\n\n // Install Modules\n view.useModules();\n\n // Add to app\n app.views.push(view);\n if (view.main) {\n app.views.main = view;\n }\n if (view.name) {\n app.views[view.name] = view;\n }\n\n // Index\n view.index = app.views.indexOf(view);\n\n // View ID\n let viewId;\n if (view.name) {\n viewId = `view_${view.name}`;\n } else if (view.main) {\n viewId = 'view_main';\n } else {\n viewId = `view_${view.index}`;\n }\n view.id = viewId;\n\n // Init View\n if (app.initialized) {\n view.init();\n } else {\n app.on('init', () => {\n view.init();\n });\n }\n\n return view;\n }\n\n destroy() {\n let view = this;\n const app = view.app;\n\n view.$el.trigger('view:beforedestroy');\n view.emit('local::beforeDestroy viewBeforeDestroy', view);\n\n app.off('resize', view.checkMasterDetailBreakpoint);\n\n if (view.main) {\n app.views.main = null;\n delete app.views.main;\n } else if (view.name) {\n app.views[view.name] = null;\n delete app.views[view.name];\n }\n view.$el[0].f7View = null;\n delete view.$el[0].f7View;\n\n app.views.splice(app.views.indexOf(view), 1);\n\n // Destroy Router\n if (view.params.router && view.router) {\n view.router.destroy();\n }\n\n view.emit('local::destroy viewDestroy', view);\n\n // Delete props & methods\n Object.keys(view).forEach((viewProp) => {\n view[viewProp] = null;\n delete view[viewProp];\n });\n\n view = null;\n }\n\n checkMasterDetailBreakpoint(force) {\n const view = this;\n const app = view.app;\n const wasMasterDetail = view.$el.hasClass('view-master-detail');\n const isMasterDetail = app.width >= view.params.masterDetailBreakpoint && view.$el.children('.page-master').length;\n if ((typeof force === 'undefined' && isMasterDetail) || force === true) {\n view.$el.addClass('view-master-detail');\n if (!wasMasterDetail) {\n view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view);\n view.$el.trigger('view:masterDetailBreakpoint');\n }\n } else {\n view.$el.removeClass('view-master-detail');\n if (wasMasterDetail) {\n view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view);\n view.$el.trigger('view:masterDetailBreakpoint');\n }\n }\n }\n\n initMasterDetail() {\n const view = this;\n const app = view.app;\n view.checkMasterDetailBreakpoint = view.checkMasterDetailBreakpoint.bind(view);\n view.checkMasterDetailBreakpoint();\n if (view.params.masterDetailResizable) {\n resizableView(view);\n }\n app.on('resize', view.checkMasterDetailBreakpoint);\n }\n\n init() {\n const view = this;\n if (view.params.router) {\n if (view.params.masterDetailBreakpoint > 0) {\n view.initMasterDetail();\n }\n view.router.init();\n view.$el.trigger('view:init');\n view.emit('local::init viewInit', view);\n }\n }\n}\n\n// Use Router\nView.use(Router);\n\n\nexport default View;\n","import $ from 'dom7';\nimport { window /* , document */ } from 'ssr-window';\n// import Device from '../../utils/device';\n// import Support from '../../utils/support';\nimport ViewClass from '../../components/view/view-class';\n\nfunction initClicks(app) {\n function handleClicks(e) {\n const $clickedEl = $(e.target);\n const $clickedLinkEl = $clickedEl.closest('a');\n const isLink = $clickedLinkEl.length > 0;\n const url = isLink && $clickedLinkEl.attr('href');\n // const isTabLink = isLink && $clickedLinkEl.hasClass('tab-link') && ($clickedLinkEl.attr('data-tab') || (url && url.indexOf('#') === 0));\n\n // Check if link is external\n if (isLink) {\n // eslint-disable-next-line\n if ($clickedLinkEl.is(app.params.clicks.externalLinks) || (url && url.indexOf('javascript:') >= 0)) {\n const target = $clickedLinkEl.attr('target');\n if (\n url\n && window.cordova\n && window.cordova.InAppBrowser\n && (target === '_system' || target === '_blank')\n ) {\n e.preventDefault();\n window.cordova.InAppBrowser.open(url, target);\n }\n return;\n }\n }\n\n // Modules Clicks\n Object.keys(app.modules).forEach((moduleName) => {\n const moduleClicks = app.modules[moduleName].clicks;\n if (!moduleClicks) return;\n if (e.preventF7Router) return;\n Object.keys(moduleClicks).forEach((clickSelector) => {\n const matchingClickedElement = $clickedEl.closest(clickSelector).eq(0);\n if (matchingClickedElement.length > 0) {\n moduleClicks[clickSelector].call(app, matchingClickedElement, matchingClickedElement.dataset(), e);\n }\n });\n });\n\n // Load Page\n let clickedLinkData = {};\n if (isLink) {\n e.preventDefault();\n clickedLinkData = $clickedLinkEl.dataset();\n }\n\n // Prevent Router\n if (e.preventF7Router) return;\n if ($clickedLinkEl.hasClass('prevent-router') || $clickedLinkEl.hasClass('router-prevent')) return;\n\n const validUrl = url && url.length > 0 && url[0] !== '#';\n if (validUrl || $clickedLinkEl.hasClass('back')) {\n let view;\n if (clickedLinkData.view && clickedLinkData.view === 'current') {\n view = app.views.current;\n } else if (clickedLinkData.view) {\n view = $(clickedLinkData.view)[0].f7View;\n } else {\n view = $clickedEl.parents('.view')[0] && $clickedEl.parents('.view')[0].f7View;\n if (!$clickedLinkEl.hasClass('back') && view && view.params.linksView) {\n if (typeof view.params.linksView === 'string') view = $(view.params.linksView)[0].f7View;\n else if (view.params.linksView instanceof ViewClass) view = view.params.linksView;\n }\n }\n if (!view) {\n if (app.views.main) view = app.views.main;\n }\n if (!view || !view.router) return;\n if (clickedLinkData.context && typeof clickedLinkData.context === 'string') {\n try {\n clickedLinkData.context = JSON.parse(clickedLinkData.context);\n } catch (err) {\n // something wrong there\n }\n }\n if ($clickedLinkEl[0].f7RouteProps) {\n clickedLinkData.props = $clickedLinkEl[0].f7RouteProps;\n }\n if ($clickedLinkEl.hasClass('back')) view.router.back(url, clickedLinkData);\n else view.router.navigate(url, clickedLinkData);\n }\n }\n\n app.on('click', handleClicks);\n}\nexport default {\n name: 'clicks',\n params: {\n clicks: {\n // External Links\n externalLinks: '.external',\n },\n },\n on: {\n init() {\n const app = this;\n initClicks(app);\n },\n },\n};\n","import Template7 from 'template7';\nimport Utils from '../../utils/utils';\n\nexport default {\n name: 'routerTemplateLoader',\n proto: {\n templateLoader(template, templateUrl, options, resolve, reject) {\n const router = this;\n function compile(t) {\n let compiledHtml;\n let context;\n try {\n context = options.context || {};\n if (typeof context === 'function') context = context.call(router);\n else if (typeof context === 'string') {\n try {\n context = JSON.parse(context);\n } catch (err) {\n reject();\n throw (err);\n }\n }\n if (typeof t === 'function') {\n compiledHtml = t(context);\n } else {\n compiledHtml = Template7.compile(t)(Utils.extend({}, context || {}, {\n $app: router.app,\n $root: Utils.extend({}, router.app.data, router.app.methods),\n $route: options.route,\n $f7route: options.route,\n $router: router,\n $f7router: router,\n $theme: {\n ios: router.app.theme === 'ios',\n md: router.app.theme === 'md',\n aurora: router.app.theme === 'aurora',\n },\n }));\n }\n } catch (err) {\n reject();\n throw (err);\n }\n resolve(compiledHtml, { context });\n }\n if (templateUrl) {\n // Load via XHR\n if (router.xhr) {\n router.xhr.abort();\n router.xhr = false;\n }\n router\n .xhrRequest(templateUrl, options)\n .then((templateContent) => {\n compile(templateContent);\n })\n .catch(() => {\n reject();\n });\n } else {\n compile(template);\n }\n },\n\n modalTemplateLoader(template, templateUrl, options, resolve, reject) {\n const router = this;\n return router.templateLoader(template, templateUrl, options, (html) => {\n resolve(html);\n }, reject);\n },\n\n tabTemplateLoader(template, templateUrl, options, resolve, reject) {\n const router = this;\n return router.templateLoader(template, templateUrl, options, (html) => {\n resolve(html);\n }, reject);\n },\n\n pageTemplateLoader(template, templateUrl, options, resolve, reject) {\n const router = this;\n return router.templateLoader(template, templateUrl, options, (html, newOptions = {}) => {\n resolve(router.getPageEl(html), newOptions);\n }, reject);\n },\n },\n};\n","import Utils from '../../utils/utils';\n\nexport default {\n name: 'routerComponentLoader',\n proto: {\n componentLoader(component, componentUrl, options = {}, resolve, reject) {\n const router = this;\n const { app } = router;\n const url = typeof component === 'string' ? component : componentUrl;\n const compiledUrl = router.replaceRequestUrlParams(url, options);\n function compile(componentOptions) {\n let context = options.context || {};\n if (typeof context === 'function') context = context.call(router);\n else if (typeof context === 'string') {\n try {\n context = JSON.parse(context);\n } catch (err) {\n reject(err);\n throw (err);\n }\n }\n const extendContext = Utils.merge(\n {},\n context,\n {\n $route: options.route,\n $f7route: options.route,\n $router: router,\n $f7router: router,\n $theme: {\n ios: app.theme === 'ios',\n md: app.theme === 'md',\n aurora: app.theme === 'aurora',\n },\n }\n );\n if (options.componentOptions && options.componentOptions.el) {\n componentOptions.el = options.componentOptions.el;\n }\n if (options.componentOptions && options.componentOptions.root) {\n componentOptions.root = options.componentOptions.root;\n }\n app.component.create(componentOptions, extendContext)\n .then((createdComponent) => {\n resolve(createdComponent.el);\n })\n .catch((err) => {\n reject(err);\n throw new Error(err);\n });\n }\n let cachedComponent;\n if (compiledUrl && router.params.componentCache) {\n router.cache.components.forEach((cached) => {\n if (cached.url === compiledUrl) cachedComponent = cached.component;\n });\n }\n if (compiledUrl && cachedComponent) {\n compile(cachedComponent);\n } else if (compiledUrl && !cachedComponent) {\n // Load via XHR\n if (router.xhr) {\n router.xhr.abort();\n router.xhr = false;\n }\n router\n .xhrRequest(url, options)\n .then((loadedComponent) => {\n const parsedComponent = app.component.parse(loadedComponent);\n if (router.params.componentCache) {\n router.cache.components.push({\n url: compiledUrl,\n component: parsedComponent,\n });\n }\n compile(parsedComponent);\n })\n .catch((err) => {\n reject();\n throw (err);\n });\n } else {\n compile(component);\n }\n },\n\n modalComponentLoader(rootEl, component, componentUrl, options, resolve, reject) {\n const router = this;\n router.componentLoader(component, componentUrl, options, (el) => {\n resolve(el);\n }, reject);\n },\n\n tabComponentLoader(tabEl, component, componentUrl, options, resolve, reject) {\n const router = this;\n router.componentLoader(component, componentUrl, options, (el) => {\n resolve(el);\n }, reject);\n },\n\n pageComponentLoader(routerEl, component, componentUrl, options, resolve, reject) {\n const router = this;\n router.componentLoader(component, componentUrl, options, (el, newOptions = {}) => {\n resolve(el, newOptions);\n }, reject);\n },\n },\n};\n","export function vnode(sel, data, children, text, elm) {\n var key = data === undefined ? undefined : data.key;\n return { sel: sel, data: data, children: children,\n text: text, elm: elm, key: key };\n}\nexport default vnode;\n//# sourceMappingURL=vnode.js.map","export var array = Array.isArray;\nexport function primitive(s) {\n return typeof s === 'string' || typeof s === 'number';\n}\n//# sourceMappingURL=is.js.map","import { vnode } from './vnode';\nimport * as is from './is';\nfunction addNS(data, children, sel) {\n data.ns = 'http://www.w3.org/2000/svg';\n if (sel !== 'foreignObject' && children !== undefined) {\n for (var i = 0; i < children.length; ++i) {\n var childData = children[i].data;\n if (childData !== undefined) {\n addNS(childData, children[i].children, children[i].sel);\n }\n }\n }\n}\nexport function h(sel, b, c) {\n var data = {}, children, text, i;\n if (c !== undefined) {\n data = b;\n if (is.array(c)) {\n children = c;\n }\n else if (is.primitive(c)) {\n text = c;\n }\n else if (c && c.sel) {\n children = [c];\n }\n }\n else if (b !== undefined) {\n if (is.array(b)) {\n children = b;\n }\n else if (is.primitive(b)) {\n text = b;\n }\n else if (b && b.sel) {\n children = [b];\n }\n else {\n data = b;\n }\n }\n if (is.array(children)) {\n for (i = 0; i < children.length; ++i) {\n if (is.primitive(children[i]))\n children[i] = vnode(undefined, undefined, undefined, children[i], undefined);\n }\n }\n if (sel[0] === 's' && sel[1] === 'v' && sel[2] === 'g' &&\n (sel.length === 3 || sel[3] === '.' || sel[3] === '#')) {\n addNS(data, children, sel);\n }\n return vnode(sel, data, children, text, undefined);\n}\n;\nexport default h;\n//# sourceMappingURL=h.js.map","/* eslint no-use-before-define: \"off\" */\n/* eslint import/no-named-as-default: \"off\" */\nimport { window, document } from 'ssr-window';\nimport h from './snabbdom/h';\nimport customComponents from './custom-components';\n\nconst selfClosing = 'area base br col command embed hr img input keygen link menuitem meta param source track wbr'.split(' ');\nconst propsAttrs = 'hidden checked disabled readonly selected autofocus autoplay required multiple value indeterminate'.split(' ');\nconst booleanProps = 'hidden checked disabled readonly selected autofocus autoplay required multiple readOnly indeterminate'.split(' ');\nconst tempDomDIV = document.createElement('div');\nlet tempDomTBODY;\nlet tempDomTROW;\n\nfunction toCamelCase(name) {\n return name\n .split('-')\n .map((word, index) => {\n if (index === 0) return word.toLowerCase();\n return word[0].toUpperCase() + word.substr(1);\n })\n .join('');\n}\nfunction contextFromAttrs(...args) {\n const context = {};\n args.forEach((obj = {}) => {\n Object.keys(obj).forEach((key) => {\n context[toCamelCase(key)] = obj[key];\n });\n });\n\n return context;\n}\n\nfunction createCustomComponent({ app, vnode, tagName, data }) {\n app.component.create(\n Object.assign({ el: vnode.elm }, customComponents[tagName]),\n {\n $props: contextFromAttrs(data.attrs || {}, data.props || {}),\n },\n vnode.children,\n ).then((c) => {\n if (vnode.data && vnode.data.on && c && c.$el) {\n Object.keys(vnode.data.on).forEach((eventName) => {\n c.$el.on(eventName, vnode.data.on[eventName]);\n });\n }\n // eslint-disable-next-line\n vnode.elm.__component__ = c;\n });\n}\nfunction updateCustomComponent(vnode) {\n // eslint-disable-next-line\n const component = vnode && vnode.elm && vnode.elm.__component__;\n if (!component) return;\n const newProps = contextFromAttrs(vnode.data.attrs || {}, vnode.data.props || {});\n component.$children = vnode.children;\n Object.assign(component.$props, newProps);\n component.$update();\n}\nfunction destroyCustomComponent(vnode) {\n // eslint-disable-next-line\n const component = vnode && vnode.elm && vnode.elm.__component__;\n\n if (component) {\n const { el, $el } = component;\n if (vnode.data && vnode.data.on && $el) {\n Object.keys(vnode.data.on).forEach((eventName) => {\n $el.off(eventName, vnode.data.on[eventName]);\n });\n }\n if (component.$destroy) component.$destroy();\n if (el && el.parentNode) el.parentNode.removeChild(el);\n delete vnode.elm.__component__; // eslint-disable-line\n }\n}\n\nfunction getHooks(data, app, initial, isRoot, tagName) {\n const hooks = {};\n const insert = [];\n const destroy = [];\n const update = [];\n const postpatch = [];\n let isFakeElement = false;\n if (data && data.attrs && data.attrs.component) {\n // eslint-disable-next-line\n tagName = data.attrs.component;\n delete data.attrs.component;\n isFakeElement = true;\n }\n const isCustomComponent = tagName && tagName.indexOf('-') > 0 && customComponents[tagName];\n if (isCustomComponent) {\n insert.push((vnode) => {\n if (vnode.sel !== tagName && !isFakeElement) return;\n createCustomComponent({ app, vnode, tagName, data });\n });\n destroy.push((vnode) => {\n destroyCustomComponent(vnode);\n });\n update.push((oldVnode, vnode) => {\n updateCustomComponent(vnode);\n });\n }\n\n if (!isCustomComponent) {\n if (!data || !data.attrs || !data.attrs.class) return hooks;\n\n const classNames = data.attrs.class;\n classNames.split(' ').forEach((className) => {\n if (!initial) {\n insert.push(...app.getVnodeHooks('insert', className));\n }\n destroy.push(...app.getVnodeHooks('destroy', className));\n update.push(...app.getVnodeHooks('update', className));\n postpatch.push(...app.getVnodeHooks('postpatch', className));\n });\n }\n\n if (isRoot && !initial) {\n postpatch.push((oldVnode, vnode) => {\n const vn = vnode || oldVnode;\n if (!vn) return;\n if (vn.data && vn.data.context && vn.data.context.$options.updated) {\n vn.data.context.$hook('updated');\n }\n });\n }\n if (insert.length === 0 && destroy.length === 0 && update.length === 0 && postpatch.length === 0) {\n return hooks;\n }\n\n if (insert.length) {\n hooks.insert = (vnode) => {\n insert.forEach(f => f(vnode));\n };\n }\n if (destroy.length) {\n hooks.destroy = (vnode) => {\n destroy.forEach(f => f(vnode));\n };\n }\n if (update.length) {\n hooks.update = (oldVnode, vnode) => {\n update.forEach(f => f(oldVnode, vnode));\n };\n }\n if (postpatch.length) {\n hooks.postpatch = (oldVnode, vnode) => {\n postpatch.forEach(f => f(oldVnode, vnode));\n };\n }\n\n return hooks;\n}\nfunction getEventHandler(handlerString, context, { stop, prevent, once } = {}) {\n let fired = false;\n let methodName;\n let method;\n let customArgs = [];\n let needMethodBind = true;\n\n if (handlerString.indexOf('(') < 0) {\n methodName = handlerString;\n } else {\n methodName = handlerString.split('(')[0];\n }\n if (methodName.indexOf('.') >= 0) {\n methodName.split('.').forEach((path, pathIndex) => {\n if (pathIndex === 0 && path === 'this') return;\n if (pathIndex === 0 && path === 'window') {\n // eslint-disable-next-line\n method = window;\n needMethodBind = false;\n return;\n }\n if (!method) method = context;\n if (method[path]) method = method[path];\n else {\n throw new Error(`Framework7: Component doesn't have method \"${methodName.split('.').slice(0, pathIndex + 1).join('.')}\"`);\n }\n });\n } else {\n if (!context[methodName]) {\n throw new Error(`Framework7: Component doesn't have method \"${methodName}\"`);\n }\n method = context[methodName];\n }\n if (needMethodBind) {\n method = method.bind(context);\n }\n\n function handler(...args) {\n const e = args[0];\n if (once && fired) return;\n if (stop) e.stopPropagation();\n if (prevent) e.preventDefault();\n fired = true;\n\n if (handlerString.indexOf('(') < 0) {\n customArgs = args;\n } else {\n const handlerArguments = handlerString\n .split('(')[1]\n .split(')')[0]\n .replace(/'[^']*'|\"[^\"]*\"/g, a => a.replace(/,/g, '<_comma_>'))\n .split(',')\n .map(a => a.replace(/<_comma_>/g, ','));\n handlerArguments.forEach((argument) => {\n let arg = argument.trim();\n // eslint-disable-next-line\n if (!isNaN(arg)) arg = parseFloat(arg);\n else if (arg === 'true') arg = true;\n else if (arg === 'false') arg = false;\n else if (arg === 'null') arg = null;\n else if (arg === 'undefined') arg = undefined;\n else if (arg[0] === '\"') arg = arg.replace(/\"/g, '');\n else if (arg[0] === '\\'') arg = arg.replace(/'/g, '');\n else if (arg.indexOf('.') > 0) {\n let deepArg;\n arg.split('.').forEach((path) => {\n if (!deepArg) deepArg = context;\n deepArg = deepArg[path];\n });\n arg = deepArg;\n } else {\n arg = context[arg];\n }\n customArgs.push(arg);\n });\n }\n\n method(...customArgs);\n }\n\n return handler;\n}\n\nfunction getData(el, context, app, initial, isRoot, tagName) {\n const data = { context };\n const attributes = el.attributes;\n Array.prototype.forEach.call(attributes, (attr) => {\n let attrName = attr.name;\n const attrValue = attr.value;\n if (propsAttrs.indexOf(attrName) >= 0) {\n // Props\n if (!data.props) data.props = {};\n if (attrName === 'readonly') {\n attrName = 'readOnly';\n }\n if (booleanProps.indexOf(attrName) >= 0) {\n // eslint-disable-next-line\n data.props[attrName] = attrValue === false ? false : true;\n } else {\n data.props[attrName] = attrValue;\n }\n } else if (attrName === 'key') {\n // Key\n data.key = attrValue;\n } else if (attrName.indexOf('@') === 0) {\n // Events\n if (!data.on) data.on = {};\n let eventName = attrName.substr(1);\n let stop = false;\n let prevent = false;\n let once = false;\n if (eventName.indexOf('.') >= 0) {\n eventName.split('.').forEach((eventNamePart, eventNameIndex) => {\n if (eventNameIndex === 0) eventName = eventNamePart;\n else {\n if (eventNamePart === 'stop') stop = true;\n if (eventNamePart === 'prevent') prevent = true;\n if (eventNamePart === 'once') once = true;\n }\n });\n }\n data.on[eventName] = getEventHandler(attrValue, context, { stop, prevent, once });\n } else if (attrName === 'style') {\n // Style\n if (attrValue.indexOf('{') >= 0 && attrValue.indexOf('}') >= 0) {\n try {\n data.style = JSON.parse(attrValue);\n } catch (e) {\n if (!data.attrs) data.attrs = {};\n data.attrs.style = attrValue;\n }\n } else {\n if (!data.attrs) data.attrs = {};\n data.attrs.style = attrValue;\n }\n } else {\n // Rest of attribures\n if (!data.attrs) data.attrs = {};\n data.attrs[attrName] = attrValue;\n\n // ID -> Key\n if (attrName === 'id' && !data.key && !isRoot) {\n data.key = attrValue;\n }\n }\n });\n if (isRoot && context && context.$id && context.$style && context.$styleScoped) {\n if (!data.attrs) data.attrs = {};\n data.attrs[`data-f7-${context.$id}`] = '';\n }\n const hooks = getHooks(data, app, initial, isRoot, tagName);\n hooks.prepatch = (oldVnode, vnode) => {\n if (!oldVnode || !vnode) return;\n if (oldVnode && oldVnode.data && oldVnode.data.props) {\n Object.keys(oldVnode.data.props).forEach((key) => {\n if (booleanProps.indexOf(key) < 0) return;\n if (!vnode.data) vnode.data = {};\n if (!vnode.data.props) vnode.data.props = {};\n if (oldVnode.data.props[key] === true && !(key in vnode.data.props)) {\n vnode.data.props[key] = false;\n }\n });\n }\n };\n if (hooks) {\n data.hook = hooks;\n }\n return data;\n}\n\nfunction getChildren(el, context, app, initial) {\n const children = [];\n const nodes = el.childNodes;\n for (let i = 0; i < nodes.length; i += 1) {\n const childNode = nodes[i];\n const child = elementToVNode(childNode, context, app, initial);\n if (Array.isArray(child)) {\n children.push(...child);\n } else if (child) {\n children.push(child);\n }\n }\n return children;\n}\n\nfunction getSlots(slotEl, context, app, initial) {\n const slotName = slotEl.getAttribute('name') || 'default';\n const slots = (context.$children || [])\n .filter((childEl) => {\n let childSlotName = 'default';\n if (childEl.data) {\n childSlotName = (childEl.data.attrs && childEl.data.attrs.slot) || 'default';\n }\n return childSlotName === slotName;\n });\n if (slots.length === 0) {\n return getChildren(slotEl, context, app, initial);\n }\n return slots;\n}\n\nfunction elementToVNode(el, context, app, initial, isRoot) {\n if (el.nodeType === 3) {\n // text\n return el.textContent;\n }\n if (el.nodeType !== 1) return null;\n // element (statement adds inline SVG compatibility)\n const tagName = (el instanceof window.SVGElement) ? el.nodeName : el.nodeName.toLowerCase();\n if (tagName === 'slot') {\n return getSlots(el, context, app, initial);\n }\n return h(\n tagName,\n getData(el, context, app, initial, isRoot, tagName),\n selfClosing.indexOf(tagName) >= 0 ? [] : getChildren(el, context, app, initial)\n );\n}\n\nexport default function (html = '', context, initial) {\n // Save to temp dom\n const htmlTrim = html.trim();\n let tempDom = tempDomDIV;\n if (htmlTrim.indexOf(' 0 ? hashIdx : sel.length;\n var dot = dotIdx > 0 ? dotIdx : sel.length;\n var tag = hashIdx !== -1 || dotIdx !== -1 ? sel.slice(0, Math.min(hash, dot)) : sel;\n var elm = vnode.elm = isDef(data) && isDef(i = data.ns) ? api.createElementNS(i, tag)\n : api.createElement(tag);\n if (hash < dot)\n elm.setAttribute('id', sel.slice(hash + 1, dot));\n if (dotIdx > 0)\n elm.setAttribute('class', sel.slice(dot + 1).replace(/\\./g, ' '));\n for (i = 0; i < cbs.create.length; ++i)\n cbs.create[i](emptyNode, vnode);\n if (is.array(children)) {\n for (i = 0; i < children.length; ++i) {\n var ch = children[i];\n if (ch != null) {\n api.appendChild(elm, createElm(ch, insertedVnodeQueue));\n }\n }\n }\n else if (is.primitive(vnode.text)) {\n api.appendChild(elm, api.createTextNode(vnode.text));\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (i.create)\n i.create(emptyNode, vnode);\n if (i.insert)\n insertedVnodeQueue.push(vnode);\n }\n }\n else {\n vnode.elm = api.createTextNode(vnode.text);\n }\n return vnode.elm;\n }\n function addVnodes(parentElm, before, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (ch != null) {\n api.insertBefore(parentElm, createElm(ch, insertedVnodeQueue), before);\n }\n }\n }\n function invokeDestroyHook(vnode) {\n var i, j, data = vnode.data;\n if (data !== undefined) {\n if (isDef(i = data.hook) && isDef(i = i.destroy))\n i(vnode);\n for (i = 0; i < cbs.destroy.length; ++i)\n cbs.destroy[i](vnode);\n if (vnode.children !== undefined) {\n for (j = 0; j < vnode.children.length; ++j) {\n i = vnode.children[j];\n if (i != null && typeof i !== \"string\") {\n invokeDestroyHook(i);\n }\n }\n }\n }\n }\n function removeVnodes(parentElm, vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var i_1 = void 0, listeners = void 0, rm = void 0, ch = vnodes[startIdx];\n if (ch != null) {\n if (isDef(ch.sel)) {\n invokeDestroyHook(ch);\n listeners = cbs.remove.length + 1;\n rm = createRmCb(ch.elm, listeners);\n for (i_1 = 0; i_1 < cbs.remove.length; ++i_1)\n cbs.remove[i_1](ch, rm);\n if (isDef(i_1 = ch.data) && isDef(i_1 = i_1.hook) && isDef(i_1 = i_1.remove)) {\n i_1(ch, rm);\n }\n else {\n rm();\n }\n }\n else {\n api.removeChild(parentElm, ch.elm);\n }\n }\n }\n }\n function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue) {\n var oldStartIdx = 0, newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx;\n var idxInOld;\n var elmToMove;\n var before;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode might have been moved left\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldStartVnode, newEndVnode)) {\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);\n api.insertBefore(parentElm, oldStartVnode.elm, api.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldEndVnode, newStartVnode)) {\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);\n api.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n if (oldKeyToIdx === undefined) {\n oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n }\n idxInOld = oldKeyToIdx[newStartVnode.key];\n if (isUndef(idxInOld)) {\n api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm);\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n elmToMove = oldCh[idxInOld];\n if (elmToMove.sel !== newStartVnode.sel) {\n api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm);\n }\n else {\n patchVnode(elmToMove, newStartVnode, insertedVnodeQueue);\n oldCh[idxInOld] = undefined;\n api.insertBefore(parentElm, elmToMove.elm, oldStartVnode.elm);\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n }\n if (oldStartIdx <= oldEndIdx || newStartIdx <= newEndIdx) {\n if (oldStartIdx > oldEndIdx) {\n before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n }\n else {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n }\n }\n }\n function patchVnode(oldVnode, vnode, insertedVnodeQueue) {\n var i, hook;\n if (isDef(i = vnode.data) && isDef(hook = i.hook) && isDef(i = hook.prepatch)) {\n i(oldVnode, vnode);\n }\n var elm = vnode.elm = oldVnode.elm;\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (oldVnode === vnode)\n return;\n if (vnode.data !== undefined) {\n for (i = 0; i < cbs.update.length; ++i)\n cbs.update[i](oldVnode, vnode);\n i = vnode.data.hook;\n if (isDef(i) && isDef(i = i.update))\n i(oldVnode, vnode);\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch)\n updateChildren(elm, oldCh, ch, insertedVnodeQueue);\n }\n else if (isDef(ch)) {\n if (isDef(oldVnode.text))\n api.setTextContent(elm, '');\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n }\n else if (isDef(oldCh)) {\n removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n }\n else if (isDef(oldVnode.text)) {\n api.setTextContent(elm, '');\n }\n }\n else if (oldVnode.text !== vnode.text) {\n api.setTextContent(elm, vnode.text);\n }\n if (isDef(hook) && isDef(i = hook.postpatch)) {\n i(oldVnode, vnode);\n }\n }\n return function patch(oldVnode, vnode) {\n var i, elm, parent;\n var insertedVnodeQueue = [];\n for (i = 0; i < cbs.pre.length; ++i)\n cbs.pre[i]();\n if (!isVnode(oldVnode)) {\n oldVnode = emptyNodeAt(oldVnode);\n }\n if (sameVnode(oldVnode, vnode)) {\n patchVnode(oldVnode, vnode, insertedVnodeQueue);\n }\n else {\n elm = oldVnode.elm;\n parent = api.parentNode(elm);\n createElm(vnode, insertedVnodeQueue);\n if (parent !== null) {\n api.insertBefore(parent, vnode.elm, api.nextSibling(elm));\n removeVnodes(parent, [oldVnode], 0, 0);\n }\n }\n for (i = 0; i < insertedVnodeQueue.length; ++i) {\n insertedVnodeQueue[i].data.hook.insert(insertedVnodeQueue[i]);\n }\n for (i = 0; i < cbs.post.length; ++i)\n cbs.post[i]();\n return vnode;\n };\n}\n//# sourceMappingURL=snabbdom.js.map","var xlinkNS = 'http://www.w3.org/1999/xlink';\nvar xmlNS = 'http://www.w3.org/XML/1998/namespace';\nvar colonChar = 58;\nvar xChar = 120;\nfunction updateAttrs(oldVnode, vnode) {\n var key, elm = vnode.elm, oldAttrs = oldVnode.data.attrs, attrs = vnode.data.attrs;\n if (!oldAttrs && !attrs)\n return;\n if (oldAttrs === attrs)\n return;\n oldAttrs = oldAttrs || {};\n attrs = attrs || {};\n // update modified attributes, add new attributes\n for (key in attrs) {\n var cur = attrs[key];\n var old = oldAttrs[key];\n if (old !== cur) {\n if (cur === true) {\n elm.setAttribute(key, \"\");\n }\n else if (cur === false) {\n elm.removeAttribute(key);\n }\n else {\n if (key.charCodeAt(0) !== xChar) {\n elm.setAttribute(key, cur);\n }\n else if (key.charCodeAt(3) === colonChar) {\n // Assume xml namespace\n elm.setAttributeNS(xmlNS, key, cur);\n }\n else if (key.charCodeAt(5) === colonChar) {\n // Assume xlink namespace\n elm.setAttributeNS(xlinkNS, key, cur);\n }\n else {\n elm.setAttribute(key, cur);\n }\n }\n }\n }\n // remove removed attributes\n // use `in` operator since the previous `for` iteration uses it (.i.e. add even attributes with undefined value)\n // the other option is to remove all attributes with value == undefined\n for (key in oldAttrs) {\n if (!(key in attrs)) {\n elm.removeAttribute(key);\n }\n }\n}\nexport var attributesModule = { create: updateAttrs, update: updateAttrs };\nexport default attributesModule;\n//# sourceMappingURL=attributes.js.map","function updateProps(oldVnode, vnode) {\n var key, cur, old, elm = vnode.elm, oldProps = oldVnode.data.props, props = vnode.data.props;\n if (!oldProps && !props)\n return;\n if (oldProps === props)\n return;\n oldProps = oldProps || {};\n props = props || {};\n for (key in oldProps) {\n if (!props[key]) {\n delete elm[key];\n }\n }\n for (key in props) {\n cur = props[key];\n old = oldProps[key];\n if (old !== cur && (key !== 'value' || elm[key] !== cur)) {\n elm[key] = cur;\n }\n }\n}\nexport var propsModule = { create: updateProps, update: updateProps };\nexport default propsModule;\n//# sourceMappingURL=props.js.map","var raf = (typeof window !== 'undefined' && window.requestAnimationFrame) || setTimeout;\nvar nextFrame = function (fn) { raf(function () { raf(fn); }); };\nfunction setNextFrame(obj, prop, val) {\n nextFrame(function () { obj[prop] = val; });\n}\nfunction updateStyle(oldVnode, vnode) {\n var cur, name, elm = vnode.elm, oldStyle = oldVnode.data.style, style = vnode.data.style;\n if (!oldStyle && !style)\n return;\n if (oldStyle === style)\n return;\n oldStyle = oldStyle || {};\n style = style || {};\n var oldHasDel = 'delayed' in oldStyle;\n for (name in oldStyle) {\n if (!style[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.removeProperty(name);\n }\n else {\n elm.style[name] = '';\n }\n }\n }\n for (name in style) {\n cur = style[name];\n if (name === 'delayed' && style.delayed) {\n for (var name2 in style.delayed) {\n cur = style.delayed[name2];\n if (!oldHasDel || cur !== oldStyle.delayed[name2]) {\n setNextFrame(elm.style, name2, cur);\n }\n }\n }\n else if (name !== 'remove' && cur !== oldStyle[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.setProperty(name, cur);\n }\n else {\n elm.style[name] = cur;\n }\n }\n }\n}\nfunction applyDestroyStyle(vnode) {\n var style, name, elm = vnode.elm, s = vnode.data.style;\n if (!s || !(style = s.destroy))\n return;\n for (name in style) {\n elm.style[name] = style[name];\n }\n}\nfunction applyRemoveStyle(vnode, rm) {\n var s = vnode.data.style;\n if (!s || !s.remove) {\n rm();\n return;\n }\n var name, elm = vnode.elm, i = 0, compStyle, style = s.remove, amount = 0, applied = [];\n for (name in style) {\n applied.push(name);\n elm.style[name] = style[name];\n }\n compStyle = getComputedStyle(elm);\n var props = compStyle['transition-property'].split(', ');\n for (; i < props.length; ++i) {\n if (applied.indexOf(props[i]) !== -1)\n amount++;\n }\n elm.addEventListener('transitionend', function (ev) {\n if (ev.target === elm)\n --amount;\n if (amount === 0)\n rm();\n });\n}\nexport var styleModule = {\n create: updateStyle,\n update: updateStyle,\n destroy: applyDestroyStyle,\n remove: applyRemoveStyle\n};\nexport default styleModule;\n//# sourceMappingURL=style.js.map","import $ from 'dom7';\n\nfunction invokeHandler(handler, event, args) {\n if (typeof handler === 'function') {\n // call function handler\n handler(event, ...args);\n }\n}\nfunction handleEvent(event, args, vnode) {\n const name = event.type;\n const on = vnode.data.on;\n // call event handler(s) if exists\n if (on && on[name]) {\n invokeHandler(on[name], event, args, vnode);\n }\n}\nfunction createListener() {\n return function handler(event, ...args) {\n handleEvent(event, args, handler.vnode);\n };\n}\nfunction updateEvents(oldVnode, vnode) {\n const oldOn = oldVnode.data.on;\n const oldListener = oldVnode.listener;\n const oldElm = oldVnode.elm;\n const on = vnode && vnode.data.on;\n const elm = (vnode && vnode.elm);\n // optimization for reused immutable handlers\n if (oldOn === on) {\n return;\n }\n // remove existing listeners which no longer used\n if (oldOn && oldListener) {\n // if element changed or deleted we remove all existing listeners unconditionally\n if (!on) {\n Object.keys(oldOn).forEach((name) => {\n $(oldElm).off(name, oldListener);\n });\n } else {\n Object.keys(oldOn).forEach((name) => {\n if (!on[name]) {\n $(oldElm).off(name, oldListener);\n }\n });\n }\n }\n // add new listeners which has not already attached\n if (on) {\n // reuse existing listener or create new\n const listener = oldVnode.listener || createListener();\n vnode.listener = listener;\n // update vnode for listener\n listener.vnode = vnode;\n // if element changed or added we add all needed listeners unconditionally\n if (!oldOn) {\n Object.keys(on).forEach((name) => {\n $(elm).on(name, listener);\n });\n } else {\n Object.keys(on).forEach((name) => {\n if (!oldOn[name]) {\n $(elm).on(name, listener);\n }\n });\n }\n }\n}\n\nexport default {\n create: updateEvents,\n update: updateEvents,\n destroy: updateEvents,\n};\n","/* eslint import/no-named-as-default: off */\nimport { init } from './snabbdom/snabbdom';\nimport attributesModule from './snabbdom/modules/attributes';\nimport propsModule from './snabbdom/modules/props';\nimport styleModule from './snabbdom/modules/style';\nimport eventListenersModule from './eventslisteners';\n\nconst patch = init([\n attributesModule,\n propsModule,\n styleModule,\n eventListenersModule,\n]);\n\nexport default patch;\n","export default {};\n","/* eslint no-underscore-dangle: \"off\" */\nimport { window, document } from 'ssr-window';\nimport $ from 'dom7';\nimport Template7 from 'template7';\nimport Utils from '../../utils/utils';\nimport vdom from './vdom';\nimport patch from './patch';\n\nimport componentMixins from './component-mixins';\n\nclass Component {\n constructor(app, options = {}, extendContext = {}, children) {\n const id = Utils.id();\n const self = this;\n Utils.merge(\n self,\n { $props: {} },\n extendContext,\n {\n $,\n $$: $,\n $dom7: $,\n $app: app,\n $f7: app,\n $options: Utils.extend({ id }, options),\n $id: options.isClassComponent ? self.constructor.id : (options.id || id),\n $mixins: options.isClassComponent ? self.constructor.mixins : options.mixins,\n $children: children || [],\n $isRootComponent: !!options.root,\n }\n );\n const { $options } = self;\n\n\n if (self.$mixins && self.$mixins.length) {\n for (let i = self.$mixins.length - 1; i >= 0; i -= 1) {\n const mixin = self.$mixins[i];\n if (typeof mixin === 'string') {\n if (componentMixins[mixin]) self.$mixins[i] = componentMixins[mixin];\n else self.$mixins.splice(i, 1);\n }\n }\n }\n\n Object.defineProperty(self, '$slots', {\n enumerable: true,\n configurable: true,\n get() {\n const slots = {};\n self.$children.forEach((childVNode) => {\n let childSlotName = 'default';\n if (childVNode.data) {\n childSlotName = (childVNode.data.attrs && childVNode.data.attrs.slot) || 'default';\n }\n if (!slots[childSlotName]) slots[childSlotName] = [];\n slots[childSlotName].push(childVNode);\n });\n return slots;\n },\n });\n\n\n // Root data and methods\n Object.defineProperty(self, '$root', {\n enumerable: true,\n configurable: true,\n get() {\n if (self.$isRootComponent) {\n return self;\n }\n if (app.rootComponent) {\n if (!self.$onRootUpdated) {\n self.$onRootUpdated = () => self.$update();\n app.on('rootComponentUpdated', self.$onRootUpdated);\n }\n return app.rootComponent;\n }\n let root = Utils.merge({}, app.data, app.methods);\n if (window && window.Proxy) {\n root = new window.Proxy(root, {\n set(target, name, val) {\n app.data[name] = val;\n },\n deleteProperty(target, name) {\n delete app.data[name];\n delete app.methods[name];\n },\n has(target, name) {\n return (name in app.data || name in app.methods);\n },\n });\n }\n return root;\n },\n set() {},\n });\n\n // Bind render\n if ($options.render) $options.render = $options.render.bind(self);\n\n // Bind methods\n const methods = {};\n if (self.$mixins && self.$mixins.length) {\n self.$mixins.forEach((mixin) => {\n if (mixin.methods) Object.assign(methods, mixin.methods);\n });\n }\n if ($options.methods) {\n Object.assign(methods, $options.methods);\n }\n Object.keys(methods).forEach((methodName) => {\n self[methodName] = methods[methodName].bind(self);\n });\n\n // Bind Events\n if ($options.on) {\n Object.keys($options.on).forEach((eventName) => {\n $options.on[eventName] = $options.on[eventName].bind(self);\n });\n }\n if ($options.once) {\n Object.keys($options.once).forEach((eventName) => {\n $options.once[eventName] = $options.once[eventName].bind(self);\n });\n }\n\n self.$style = $options.isClassComponent ? self.constructor.style : $options.style;\n self.$styleScoped = $options.isClassComponent ? self.constructor.styleScoped : $options.styleScoped;\n\n self.__updateQueue = [];\n\n return new Promise((resolve, reject) => {\n self.$hook('data', true)\n .then((datas) => {\n const data = {};\n datas.forEach((dt) => {\n Object.assign(data, dt || {});\n });\n Utils.extend(self, data);\n self.$hook('beforeCreate');\n let html = self.$render();\n\n if (self.$options.el) {\n html = html.trim();\n self.$vnode = vdom(html, self, true);\n if (self.$style) {\n self.$styleEl = document.createElement('style');\n self.$styleEl.innerHTML = self.$style;\n }\n self.el = self.$options.el;\n patch(self.el, self.$vnode);\n self.el = self.$vnode.elm;\n self.$el = $(self.el);\n\n self.$attachEvents();\n self.el.f7Component = self;\n self.$hook('created');\n self.$mount();\n resolve(self);\n return;\n }\n // Make Dom\n if (html && typeof html === 'string') {\n html = html.trim();\n self.$vnode = vdom(html, self, true);\n self.el = document.createElement(self.$vnode.sel || 'div');\n patch(self.el, self.$vnode);\n self.$el = $(self.el);\n } else if (html) {\n self.el = html;\n self.$el = $(self.el);\n }\n if (self.$style) {\n self.$styleEl = document.createElement('style');\n self.$styleEl.innerHTML = self.$style;\n }\n\n self.$attachEvents();\n\n if (self.el) {\n self.el.f7Component = self;\n }\n\n self.$hook('created');\n resolve(self);\n })\n .catch((err) => {\n reject(err);\n });\n });\n }\n\n $attachEvents() {\n const self = this;\n const { $options, $el } = self;\n if (self.$mixins && self.$mixins.length) {\n self.$detachEventsHandlers = {};\n self.$mixins.forEach((mixin) => {\n if (mixin.on) {\n Object.keys(mixin.on).forEach((eventName) => {\n const handler = mixin.on[eventName].bind(self);\n if (!self.$detachEventsHandlers[eventName]) self.$detachEventsHandlers[eventName] = [];\n self.$detachEventsHandlers[eventName].push(handler);\n $el.on(Utils.eventNameToColonCase(eventName), handler);\n });\n }\n if (mixin.once) {\n Object.keys(mixin.once).forEach((eventName) => {\n const handler = mixin.once[eventName].bind(self);\n if (!self.$detachEventsHandlers[eventName]) self.$detachEventsHandlers[eventName] = [];\n self.$detachEventsHandlers[eventName].push(handler);\n $el.once(Utils.eventNameToColonCase(eventName), handler);\n });\n }\n });\n }\n if ($options.on) {\n Object.keys($options.on).forEach((eventName) => {\n $el.on(Utils.eventNameToColonCase(eventName), $options.on[eventName]);\n });\n }\n if ($options.once) {\n Object.keys($options.once).forEach((eventName) => {\n $el.once(Utils.eventNameToColonCase(eventName), $options.once[eventName]);\n });\n }\n }\n\n $detachEvents() {\n const self = this;\n const { $options, $el } = self;\n if ($options.on) {\n Object.keys($options.on).forEach((eventName) => {\n $el.off(Utils.eventNameToColonCase(eventName), $options.on[eventName]);\n });\n }\n if ($options.once) {\n Object.keys($options.once).forEach((eventName) => {\n $el.off(Utils.eventNameToColonCase(eventName), $options.once[eventName]);\n });\n }\n if (!self.$detachEventsHandlers) return;\n Object.keys(self.$detachEventsHandlers).forEach((eventName) => {\n const handlers = self.$detachEventsHandlers[eventName];\n handlers.forEach((handler) => {\n $el.off(Utils.eventNameToColonCase(eventName), handler);\n });\n self.$detachEventsHandlers[eventName] = [];\n delete self.$detachEventsHandlers[eventName];\n });\n self.$detachEventsHandlers = null;\n delete self.$detachEventsHandlers;\n }\n\n $render() {\n const self = this;\n const { $options } = self;\n let html = '';\n if ($options.render) {\n html = $options.render();\n } else if (self.render) {\n html = self.render.call(self);\n } else if ($options.template) {\n if (typeof $options.template === 'string') {\n html = Template7.compile($options.template)(self);\n } else {\n // Supposed to be function\n html = $options.template(self);\n }\n }\n return html;\n }\n\n $startUpdateQueue() {\n const self = this;\n if (self.__requestAnimationFrameId) return;\n function update() {\n let html = self.$render();\n\n // Make Dom\n if (html && typeof html === 'string') {\n html = html.trim();\n const newVNode = vdom(html, self, false);\n self.$vnode = patch(self.$vnode, newVNode);\n }\n }\n self.__requestAnimationFrameId = window.requestAnimationFrame(() => {\n if (self.__updateIsPending) update();\n let resolvers = [...self.__updateQueue];\n self.__updateQueue = [];\n self.__updateIsPending = false;\n window.cancelAnimationFrame(self.__requestAnimationFrameId);\n delete self.__requestAnimationFrameId;\n delete self.__updateIsPending;\n resolvers.forEach(resolver => resolver());\n resolvers = [];\n });\n }\n\n $tick(callback) {\n const self = this;\n return new Promise((resolve) => {\n function resolver() {\n resolve();\n if (callback) callback();\n }\n self.__updateQueue.push(resolver);\n self.$startUpdateQueue();\n });\n }\n\n $update(callback) {\n const self = this;\n return new Promise((resolve) => {\n function resolver() {\n resolve();\n if (callback) callback();\n if (self.$isRootComponent) {\n self.$f7.emit('rootComponentUpdated');\n }\n }\n self.__updateIsPending = true;\n self.__updateQueue.push(resolver);\n self.$startUpdateQueue();\n });\n }\n\n $setState(mergeState = {}, callback) {\n const self = this;\n Utils.merge(self, mergeState);\n return self.$update(callback);\n }\n\n $f7ready(callback) {\n if (this.$f7.initialized) {\n callback(this.$f7);\n return;\n }\n this.$f7.once('init', () => {\n callback(this.$f7);\n });\n }\n\n $mount(mountMethod) {\n const self = this;\n self.$hook('beforeMount');\n if (self.$styleEl) $('head').append(self.$styleEl);\n if (mountMethod) mountMethod(self.el);\n self.$hook('mounted');\n }\n\n $destroy() {\n const self = this;\n self.$hook('beforeDestroy');\n\n if (self.$styleEl) $(self.$styleEl).remove();\n if (self.$onRootUpdated) {\n self.$f7.off('rootComponentUpdated', self.$onRootUpdated);\n delete self.$onRootUpdated;\n }\n\n self.$detachEvents();\n self.$hook('destroyed');\n // Delete component instance\n if (self.el && self.el.f7Component) {\n self.el.f7Component = null;\n delete self.el.f7Component;\n }\n // Patch with empty node\n if (self.$vnode) {\n self.$vnode = patch(self.$vnode, { sel: self.$vnode.sel, data: {} });\n }\n // Clear update queue\n window.cancelAnimationFrame(self.__requestAnimationFrameId);\n\n // Delete all props\n Utils.deleteProps(self);\n }\n\n $hook(name, async) {\n const self = this;\n if (async) {\n const promises = [];\n if (self.$mixins && self.$mixins.length) {\n self.$mixins.forEach((mixin) => {\n if (mixin[name]) promises.push(mixin[name].call(self));\n });\n }\n if (self[name] && typeof self[name] === 'function') {\n promises.push(self[name].call(self));\n }\n if (self.$options[name]) {\n promises.push(self.$options[name].call(self));\n }\n return Promise.all(promises);\n }\n if (self.$mixins && self.$mixins.length) {\n self.$mixins.forEach((mixin) => {\n if (mixin[name] && typeof mixin[name] === 'function') {\n mixin[name].call(self);\n }\n });\n }\n if (self.$options[name]) return self.$options[name].call(self);\n if (self[name]) return self[name].call(self);\n return undefined;\n }\n}\n\nexport default Component;\n","import { window, document } from 'ssr-window';\nimport Template7 from 'template7';\nimport $ from 'dom7';\nimport Utils from '../../utils/utils';\n\nfunction parseComponent(componentString) {\n const id = Utils.id();\n const callbackCreateName = `f7_component_create_callback_${id}`;\n const callbackRenderName = `f7_component_render_callback_${id}`;\n\n // Template\n let template;\n const hasTemplate = componentString.match(//);\n const templateType = hasTemplate[2] || 't7';\n if (hasTemplate) {\n template = componentString\n .split(//)\n .filter((item, index) => index > 0)\n .join('')\n .filter((item, index, arr) => index < arr.length - 1)\n .join('')\n .replace(/{{#raw}}([ \\n]*)