diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..06866cc --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["minify"] +} diff --git a/README.md b/README.md index 5f85e80..e6b925f 100644 --- a/README.md +++ b/README.md @@ -14,25 +14,37 @@ You can find a running demo [here](http://www.timo-ernst.net/misc/f7-plugin-welc ### 1. Add dependency +#### With module bundler (Webpack, Vite...) + ```shell $ yarn add f7-welcomescreen ``` -### 2. Import - In your main js file do: ``` import F7WelcomescreenPlugin from 'f7-welcomescreen'; ``` -Make sure you have css bundling in webpack enabled and import these stylesheets from your main css file: +In your stylesheet do: ``` @import '~framework7/framework7-bundle.min.css'; @import '~f7-welcomescreen/dist/main.css'; ``` +#### Alternative: Without bundler (direct linking) + +1. Copy files `f7-welcomescreen.min.js` and `f7-welcomescreen.min.css` from `dist` into your project folder. +2. Reference the files in HTML like this: + +``` + + + ')[0].trim();\n } else {\n scriptContent = 'return () => {return $render}';\n }\n\n if (!scriptContent || !scriptContent.trim()) scriptContent = 'return () => {return $render}'; // Parse Template\n\n if (template) {\n scriptContent = scriptContent.replace('$render', \"function ($$ctx) {\\n var $ = $$ctx.$$;\\n var $h = $$ctx.$h;\\n var $root = $$ctx.$root;\\n var $f7 = $$ctx.$f7;\\n var $f7route = $$ctx.$f7route;\\n var $f7router = $$ctx.$f7router;\\n var $theme = $$ctx.$theme;\\n var $update = $$ctx.$update;\\n var $store = $$ctx.$store;\\n\\n return $h`\" + template + \"`\\n }\\n \").replace(/export default/g, 'return');\n } // Execute Script\n\n\n scriptContent = \"window.\" + callbackCreateName + \" = function () {\" + scriptContent + \"}\"; // Insert Script El\n\n var scriptEl = document.createElement('script');\n scriptEl.innerHTML = scriptContent;\n $('head').append(scriptEl);\n var component = window[callbackCreateName](); // Remove Script El\n\n $(scriptEl).remove();\n window[callbackCreateName] = null;\n delete window[callbackCreateName]; // Assign Style\n\n if (style) {\n component.style = style;\n } // Component ID\n\n\n component.id = componentId;\n return component;\n}\n\nexport default parseComponent;","import History from '../../shared/history';\nexport default {\n name: 'history',\n static: {\n history: History\n },\n on: {\n init: function init() {\n History.init(this);\n }\n }\n};","import { getWindow } from 'ssr-window';\nimport { extend } from '../../shared/utils';\nvar SW = {\n registrations: [],\n register: function register(path, scope) {\n var app = this;\n var window = getWindow();\n\n if (!('serviceWorker' in window.navigator) || !app.serviceWorker.container) {\n return new Promise(function (resolve, reject) {\n reject(new Error('Service worker is not supported'));\n });\n }\n\n return new Promise(function (resolve, reject) {\n app.serviceWorker.container.register(path, scope ? {\n scope: scope\n } : {}).then(function (reg) {\n SW.registrations.push(reg);\n app.emit('serviceWorkerRegisterSuccess', reg);\n resolve(reg);\n }).catch(function (error) {\n app.emit('serviceWorkerRegisterError', error);\n reject(error);\n });\n });\n },\n unregister: function unregister(registration) {\n var app = this;\n var window = getWindow();\n\n if (!('serviceWorker' in window.navigator) || !app.serviceWorker.container) {\n return new Promise(function (resolve, reject) {\n reject(new Error('Service worker is not supported'));\n });\n }\n\n var registrations;\n if (!registration) registrations = SW.registrations;else if (Array.isArray(registration)) registrations = registration;else registrations = [registration];\n return Promise.all(registrations.map(function (reg) {\n return new Promise(function (resolve, reject) {\n reg.unregister().then(function () {\n if (SW.registrations.indexOf(reg) >= 0) {\n SW.registrations.splice(SW.registrations.indexOf(reg), 1);\n }\n\n app.emit('serviceWorkerUnregisterSuccess', reg);\n resolve();\n }).catch(function (error) {\n app.emit('serviceWorkerUnregisterError', reg, error);\n reject(error);\n });\n });\n }));\n }\n};\nexport default {\n name: 'sw',\n params: {\n serviceWorker: {\n path: undefined,\n scope: undefined\n }\n },\n create: function create() {\n var app = this;\n var window = getWindow();\n extend(app, {\n serviceWorker: {\n container: 'serviceWorker' in window.navigator ? window.navigator.serviceWorker : undefined,\n registrations: SW.registrations,\n register: SW.register.bind(app),\n unregister: SW.unregister.bind(app)\n }\n });\n },\n on: {\n init: function init() {\n var window = getWindow();\n if (!('serviceWorker' in window.navigator)) return;\n var app = this;\n if (app.device.cordova || window.Capacitor && window.Capacitor.isNative) return;\n if (!app.serviceWorker.container) return;\n var paths = app.params.serviceWorker.path;\n var scope = app.params.serviceWorker.scope;\n if (!paths || Array.isArray(paths) && !paths.length) return;\n var toRegister = Array.isArray(paths) ? paths : [paths];\n toRegister.forEach(function (path) {\n app.serviceWorker.register(path, scope);\n });\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint-disable no-underscore-dangle */\nimport { extend } from '../../shared/utils';\n\nfunction createStore(storeParams) {\n if (storeParams === void 0) {\n storeParams = {};\n }\n\n var store = {\n __store: true\n };\n\n var originalState = _extends({}, storeParams.state || {});\n\n var actions = _extends({}, storeParams.actions || {});\n\n var getters = _extends({}, storeParams.getters || {});\n\n var state = extend({}, originalState);\n var propsQueue = [];\n var gettersDependencies = {};\n var gettersCallbacks = {};\n Object.keys(getters).forEach(function (getterKey) {\n gettersDependencies[getterKey] = [];\n gettersCallbacks[getterKey] = [];\n });\n\n var getGetterValue = function getGetterValue(getterKey) {\n return getters[getterKey]({\n state: store.state\n });\n };\n\n var addGetterDependencies = function addGetterDependencies(getterKey, deps) {\n if (!gettersDependencies[getterKey]) gettersDependencies[getterKey] = [];\n deps.forEach(function (dep) {\n if (gettersDependencies[getterKey].indexOf(dep) < 0) {\n gettersDependencies[getterKey].push(dep);\n }\n });\n };\n\n var addGetterCallback = function addGetterCallback(getterKey, callback) {\n if (!gettersCallbacks[getterKey]) gettersCallbacks[getterKey] = [];\n gettersCallbacks[getterKey].push(callback);\n };\n\n var runGetterCallbacks = function runGetterCallbacks(stateKey) {\n var keys = Object.keys(gettersDependencies).filter(function (getterKey) {\n return gettersDependencies[getterKey].indexOf(stateKey) >= 0;\n });\n keys.forEach(function (getterKey) {\n if (!gettersCallbacks[getterKey] || !gettersCallbacks[getterKey].length) return;\n gettersCallbacks[getterKey].forEach(function (callback) {\n callback(getGetterValue(getterKey));\n });\n });\n };\n\n var removeGetterCallback = function removeGetterCallback(callback) {\n Object.keys(gettersCallbacks).forEach(function (stateKey) {\n var callbacks = gettersCallbacks[stateKey];\n\n if (callbacks.indexOf(callback) >= 0) {\n callbacks.splice(callbacks.indexOf(callback), 1);\n }\n });\n }; // eslint-disable-next-line\n\n\n store.__removeCallback = function (callback) {\n removeGetterCallback(callback);\n };\n\n var getterValue = function getterValue(getterKey, addCallback) {\n if (addCallback === void 0) {\n addCallback = true;\n }\n\n if (getterKey === 'constructor') return undefined;\n propsQueue = [];\n var value = getGetterValue(getterKey);\n addGetterDependencies(getterKey, propsQueue);\n\n var onUpdated = function onUpdated(callback) {\n addGetterCallback(getterKey, callback);\n };\n\n var obj = {\n value: value,\n onUpdated: onUpdated\n };\n\n if (!addCallback) {\n return obj;\n }\n\n var callback = function callback(v) {\n obj.value = v;\n };\n\n obj.__callback = callback;\n addGetterCallback(getterKey, callback); // eslint-disable-next-line\n\n return obj;\n };\n\n store.state = new Proxy(state, {\n set: function set(target, prop, value) {\n target[prop] = value;\n runGetterCallbacks(prop);\n return true;\n },\n get: function get(target, prop) {\n propsQueue.push(prop);\n return target[prop];\n }\n });\n store.getters = new Proxy(getters, {\n set: function set() {\n return false;\n },\n get: function get(target, prop) {\n if (!target[prop]) {\n return undefined;\n }\n\n return getterValue(prop, true);\n }\n });\n store._gettersPlain = new Proxy(getters, {\n set: function set() {\n return false;\n },\n get: function get(target, prop) {\n if (!target[prop]) {\n return undefined;\n }\n\n return getterValue(prop, false);\n }\n });\n\n store.dispatch = function (actionName, data) {\n return new Promise(function (resolve, reject) {\n if (!actions[actionName]) {\n reject();\n throw new Error(\"Framework7: Store action \\\"\" + actionName + \"\\\" is not found\");\n }\n\n var result = actions[actionName]({\n state: store.state,\n dispatch: store.dispatch\n }, data);\n resolve(result);\n });\n };\n\n return store;\n}\n\nexport default createStore;","import createStore from './create-store';\nexport { createStore };\nexport default {\n name: 'store',\n static: {\n createStore: createStore\n },\n proto: {\n createStore: createStore\n }\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom7';\nimport { bindMethods } from '../../shared/utils';\nimport { getDevice } from '../../shared/get-device';\n\nvar isCapacitor = function isCapacitor() {\n var window = getWindow();\n return window.Capacitor && window.Capacitor.isNative && window.Capacitor.Plugins && window.Capacitor.Plugins.StatusBar;\n};\n\nvar Statusbar = {\n hide: function hide() {\n var window = getWindow();\n var device = getDevice();\n\n if (device.cordova && window.StatusBar) {\n window.StatusBar.hide();\n }\n\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.hide();\n }\n },\n show: function show() {\n var window = getWindow();\n var device = getDevice();\n\n if (device.cordova && window.StatusBar) {\n window.StatusBar.show();\n }\n\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.show();\n }\n },\n onClick: function onClick() {\n var app = this;\n var pageContent;\n\n if ($('.popup.modal-in').length > 0) {\n // Check for opened popup\n pageContent = $('.popup.modal-in').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content');\n } else if ($('.panel.panel-in').length > 0) {\n // Check for opened panel\n pageContent = $('.panel.panel-in').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content');\n } else if ($('.views > .view.tab-active').length > 0) {\n // View in tab bar app layout\n pageContent = $('.views > .view.tab-active').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content');\n } else if ($('.views').length > 0) {\n pageContent = $('.views').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content');\n } else {\n pageContent = app.$el.children('.view').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content');\n }\n\n if (pageContent && pageContent.length > 0) {\n // Check for tab\n if (pageContent.hasClass('tab')) {\n pageContent = pageContent.parent('.tabs').children('.page-content.tab-active');\n }\n\n if (pageContent.length > 0) pageContent.scrollTop(0, 300);\n }\n },\n setTextColor: function setTextColor(color) {\n var window = getWindow();\n var device = getDevice();\n\n if (device.cordova && window.StatusBar) {\n if (color === 'white') {\n window.StatusBar.styleLightContent();\n } else {\n window.StatusBar.styleDefault();\n }\n }\n\n if (isCapacitor()) {\n if (color === 'white') {\n window.Capacitor.Plugins.StatusBar.setStyle({\n style: 'DARK'\n });\n } else {\n window.Capacitor.Plugins.StatusBar.setStyle({\n style: 'LIGHT'\n });\n }\n }\n },\n setBackgroundColor: function setBackgroundColor(color) {\n var window = getWindow();\n var device = getDevice();\n\n if (device.cordova && window.StatusBar) {\n window.StatusBar.backgroundColorByHexString(color);\n }\n\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.setBackgroundColor({\n color: color\n });\n }\n },\n isVisible: function isVisible() {\n var window = getWindow();\n var device = getDevice();\n return new Promise(function (resolve) {\n if (device.cordova && window.StatusBar) {\n resolve(window.StatusBar.isVisible);\n }\n\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.getInfo().then(function (info) {\n resolve(info.visible);\n });\n }\n\n resolve(false);\n });\n },\n overlaysWebView: function overlaysWebView(overlays) {\n if (overlays === void 0) {\n overlays = true;\n }\n\n var window = getWindow();\n var device = getDevice();\n\n if (device.cordova && window.StatusBar) {\n window.StatusBar.overlaysWebView(overlays);\n }\n\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.setOverlaysWebView({\n overlay: overlays\n });\n }\n },\n init: function init() {\n var app = this;\n var window = getWindow();\n var device = getDevice();\n var params = app.params.statusbar;\n if (!params.enabled) return;\n var isCordova = device.cordova && window.StatusBar;\n var isCap = isCapacitor();\n\n if (isCordova || isCap) {\n if (params.scrollTopOnClick) {\n $(window).on('statusTap', Statusbar.onClick.bind(app));\n }\n\n if (device.ios) {\n if (params.iosOverlaysWebView) {\n Statusbar.overlaysWebView(true);\n } else {\n Statusbar.overlaysWebView(false);\n }\n\n if (params.iosTextColor === 'white') {\n Statusbar.setTextColor('white');\n } else {\n Statusbar.setTextColor('black');\n }\n }\n\n if (device.android) {\n if (params.androidOverlaysWebView) {\n Statusbar.overlaysWebView(true);\n } else {\n Statusbar.overlaysWebView(false);\n }\n\n if (params.androidTextColor === 'white') {\n Statusbar.setTextColor('white');\n } else {\n Statusbar.setTextColor('black');\n }\n }\n }\n\n if (params.iosBackgroundColor && device.ios) {\n Statusbar.setBackgroundColor(params.iosBackgroundColor);\n }\n\n if (params.androidBackgroundColor && device.android) {\n Statusbar.setBackgroundColor(params.androidBackgroundColor);\n }\n }\n};\nexport default {\n name: 'statusbar',\n params: {\n statusbar: {\n enabled: true,\n scrollTopOnClick: true,\n iosOverlaysWebView: true,\n iosTextColor: 'black',\n iosBackgroundColor: null,\n androidOverlaysWebView: false,\n androidTextColor: 'black',\n androidBackgroundColor: null\n }\n },\n create: function create() {\n var app = this;\n bindMethods(app, {\n statusbar: Statusbar\n });\n },\n on: {\n init: function init() {\n var app = this;\n Statusbar.init.call(app);\n }\n }\n};","import $ from '../../shared/dom7';\nimport { extend } from '../../shared/utils';\nimport View from './view-class';\n\nfunction getCurrentView(app) {\n var $popoverView = $('.popover.modal-in .view');\n var $popupView = $('.popup.modal-in .view');\n var $panelView = $('.panel.panel-in .view');\n var $viewsEl = $('.views');\n if ($viewsEl.length === 0) $viewsEl = app.$el; // Find active view as tab\n\n var $viewEl = $viewsEl.children('.view');\n\n if ($viewEl.length === 0) {\n $viewEl = $viewsEl.children('.tabs').children('.view');\n } // Propably in tabs or split view\n\n\n if ($viewEl.length > 1) {\n if ($viewEl.hasClass('tab')) {\n // Tabs\n $viewEl = $viewsEl.children('.view.tab-active');\n\n if ($viewEl.length === 0) {\n $viewEl = $viewsEl.children('.tabs').children('.view.tab-active');\n }\n } else {// Split View, leave appView intact\n }\n }\n\n if ($popoverView.length > 0 && $popoverView[0].f7View) return $popoverView[0].f7View;\n if ($popupView.length > 0 && $popupView[0].f7View) return $popupView[0].f7View;\n if ($panelView.length > 0 && $panelView[0].f7View) return $panelView[0].f7View;\n\n if ($viewEl.length > 0) {\n if ($viewEl.length === 1 && $viewEl[0].f7View) return $viewEl[0].f7View;\n\n if ($viewEl.length > 1) {\n return app.views.main;\n }\n }\n\n return undefined;\n}\n\nexport default {\n name: 'view',\n params: {\n view: {\n init: true,\n name: undefined,\n main: false,\n router: true,\n linksView: null,\n stackPages: false,\n xhrCache: true,\n xhrCacheIgnore: [],\n xhrCacheIgnoreGetParameters: false,\n xhrCacheDuration: 1000 * 60 * 10,\n // Ten minutes\n componentCache: true,\n preloadPreviousPage: true,\n allowDuplicateUrls: false,\n reloadPages: false,\n reloadDetail: false,\n masterDetailBreakpoint: 0,\n masterDetailResizable: false,\n removeElements: true,\n removeElementsWithTimeout: false,\n removeElementsTimeout: 0,\n restoreScrollTopOnBack: true,\n unloadTabContent: true,\n passRouteQueryToRequest: true,\n passRouteParamsToRequest: false,\n loadInitialPage: true,\n // Swipe Back\n iosSwipeBack: true,\n iosSwipeBackAnimateShadow: true,\n iosSwipeBackAnimateOpacity: true,\n iosSwipeBackActiveArea: 30,\n iosSwipeBackThreshold: 0,\n mdSwipeBack: false,\n mdSwipeBackAnimateShadow: true,\n mdSwipeBackAnimateOpacity: false,\n mdSwipeBackActiveArea: 30,\n mdSwipeBackThreshold: 0,\n auroraSwipeBack: false,\n auroraSwipeBackAnimateShadow: false,\n auroraSwipeBackAnimateOpacity: true,\n auroraSwipeBackActiveArea: 30,\n auroraSwipeBackThreshold: 0,\n // Push State\n browserHistory: false,\n browserHistoryRoot: undefined,\n browserHistoryAnimate: true,\n browserHistoryAnimateOnLoad: false,\n browserHistorySeparator: '#!',\n browserHistoryOnLoad: true,\n browserHistoryInitialMatch: false,\n browserHistoryStoreHistory: true,\n // Animate Pages\n animate: true,\n // iOS Dynamic Navbar\n iosDynamicNavbar: true,\n // Animate iOS Navbar Back Icon\n iosAnimateNavbarBackIcon: true,\n // Delays\n iosPageLoadDelay: 0,\n mdPageLoadDelay: 0,\n auroraPageLoadDelay: 0,\n // Routes hooks\n routesBeforeEnter: null,\n routesBeforeLeave: null\n }\n },\n static: {\n View: View\n },\n create: function create() {\n var app = this;\n extend(app, {\n views: extend([], {\n create: function create(el, params) {\n return new View(app, el, params);\n },\n get: function get(viewEl) {\n var $viewEl = $(viewEl);\n if ($viewEl.length && $viewEl[0].f7View) return $viewEl[0].f7View;\n return undefined;\n }\n })\n });\n Object.defineProperty(app.views, 'current', {\n enumerable: true,\n configurable: true,\n get: function get() {\n return getCurrentView(app);\n }\n }); // Alias\n\n app.view = app.views;\n },\n on: {\n init: function init() {\n var app = this;\n $('.view-init').each(function (viewEl) {\n if (viewEl.f7View) return;\n var viewParams = $(viewEl).dataset();\n app.views.create(viewEl, viewParams);\n });\n },\n 'modalOpen panelOpen': function onOpen(instance) {\n var app = this;\n instance.$el.find('.view-init').each(function (viewEl) {\n if (viewEl.f7View) return;\n var viewParams = $(viewEl).dataset();\n app.views.create(viewEl, viewParams);\n });\n },\n 'modalBeforeDestroy panelBeforeDestroy': function onClose(instance) {\n if (!instance || !instance.$el) return;\n instance.$el.find('.view-init').each(function (viewEl) {\n var view = viewEl.f7View;\n if (!view) return;\n view.destroy();\n });\n }\n },\n vnode: {\n 'view-init': {\n insert: function insert(vnode) {\n var app = this;\n var viewEl = vnode.elm;\n if (viewEl.f7View) return;\n var viewParams = $(viewEl).dataset();\n app.views.create(viewEl, viewParams);\n },\n destroy: function destroy(vnode) {\n var viewEl = vnode.elm;\n var view = viewEl.f7View;\n if (!view) return;\n view.destroy();\n }\n }\n }\n};","import $ from '../../shared/dom7';\nimport { bindMethods } from '../../shared/utils';\nimport { getSupport } from '../../shared/get-support';\nvar Navbar = {\n size: function size(el) {\n var app = this;\n var $el = $(el);\n\n if ($el.hasClass('navbars')) {\n $el = $el.children('.navbar').each(function (navbarEl) {\n app.navbar.size(navbarEl);\n });\n return;\n }\n\n var $innerEl = $el.children('.navbar-inner');\n if (!$innerEl.length) return;\n var needCenterTitle = $innerEl.hasClass('navbar-inner-centered-title') || app.params.navbar[app.theme + \"CenterTitle\"];\n var needLeftTitle = app.theme === 'ios' && !app.params.navbar[app.theme + \"CenterTitle\"];\n if (!needCenterTitle && !needLeftTitle) return;\n\n if ($el.hasClass('stacked') || $el.parents('.stacked').length > 0 || $el.parents('.tab:not(.tab-active)').length > 0 || $el.parents('.popup:not(.modal-in)').length > 0) {\n return;\n }\n\n if (app.theme !== 'ios' && app.params.navbar[app.theme + \"CenterTitle\"]) {\n $innerEl.addClass('navbar-inner-centered-title');\n }\n\n if (app.theme === 'ios' && !app.params.navbar.iosCenterTitle) {\n $innerEl.addClass('navbar-inner-left-title');\n }\n\n var $viewEl = $el.parents('.view').eq(0);\n var left = app.rtl ? $innerEl.children('.right') : $innerEl.children('.left');\n var right = app.rtl ? $innerEl.children('.left') : $innerEl.children('.right');\n var title = $innerEl.children('.title');\n var subnavbar = $innerEl.children('.subnavbar');\n var noLeft = left.length === 0;\n var noRight = right.length === 0;\n var leftWidth = noLeft ? 0 : left.outerWidth(true);\n var rightWidth = noRight ? 0 : right.outerWidth(true);\n var titleWidth = title.outerWidth(true);\n var navbarStyles = $innerEl.styles();\n var navbarWidth = $innerEl[0].offsetWidth;\n var navbarInnerWidth = navbarWidth - parseInt(navbarStyles.paddingLeft, 10) - parseInt(navbarStyles.paddingRight, 10);\n var isPrevious = $el.hasClass('navbar-previous');\n var sliding = $innerEl.hasClass('sliding');\n var router;\n var dynamicNavbar;\n\n if ($viewEl.length > 0 && $viewEl[0].f7View) {\n router = $viewEl[0].f7View.router;\n dynamicNavbar = router && router.dynamicNavbar;\n }\n\n var currLeft;\n var diff;\n\n if (noRight) {\n currLeft = navbarInnerWidth - titleWidth;\n }\n\n if (noLeft) {\n currLeft = 0;\n }\n\n if (!noLeft && !noRight) {\n currLeft = (navbarInnerWidth - rightWidth - titleWidth + leftWidth) / 2;\n }\n\n var requiredLeft = (navbarInnerWidth - titleWidth) / 2;\n\n if (navbarInnerWidth - leftWidth - rightWidth > titleWidth) {\n if (requiredLeft < leftWidth) {\n requiredLeft = leftWidth;\n }\n\n if (requiredLeft + titleWidth > navbarInnerWidth - rightWidth) {\n requiredLeft = navbarInnerWidth - rightWidth - titleWidth;\n }\n\n diff = requiredLeft - currLeft;\n } else {\n diff = 0;\n } // RTL inverter\n\n\n var inverter = app.rtl ? -1 : 1;\n\n if (dynamicNavbar && app.theme === 'ios') {\n if (title.hasClass('sliding') || title.length > 0 && sliding) {\n var titleLeftOffset = -(currLeft + diff) * inverter;\n var titleRightOffset = (navbarInnerWidth - currLeft - diff - titleWidth) * inverter;\n\n if (isPrevious) {\n if (router && router.params.iosAnimateNavbarBackIcon) {\n var activeNavbarBackLink = $el.parent().find('.navbar-current').children('.left.sliding').find('.back .icon ~ span');\n\n if (activeNavbarBackLink.length > 0) {\n titleLeftOffset += activeNavbarBackLink[0].offsetLeft;\n }\n }\n }\n\n title[0].f7NavbarLeftOffset = titleLeftOffset;\n title[0].f7NavbarRightOffset = titleRightOffset;\n }\n\n if (!noLeft && (left.hasClass('sliding') || sliding)) {\n if (app.rtl) {\n left[0].f7NavbarLeftOffset = -(navbarInnerWidth - left[0].offsetWidth) / 2 * inverter;\n left[0].f7NavbarRightOffset = leftWidth * inverter;\n } else {\n left[0].f7NavbarLeftOffset = -leftWidth;\n left[0].f7NavbarRightOffset = (navbarInnerWidth - left[0].offsetWidth) / 2;\n\n if (router && router.params.iosAnimateNavbarBackIcon && left.find('.back .icon').length > 0) {\n if (left.find('.back .icon ~ span').length) {\n var leftOffset = left[0].f7NavbarLeftOffset;\n var rightOffset = left[0].f7NavbarRightOffset;\n left[0].f7NavbarLeftOffset = 0;\n left[0].f7NavbarRightOffset = 0;\n left.find('.back .icon ~ span')[0].f7NavbarLeftOffset = leftOffset;\n left.find('.back .icon ~ span')[0].f7NavbarRightOffset = rightOffset - left.find('.back .icon')[0].offsetWidth;\n }\n }\n }\n }\n\n if (!noRight && (right.hasClass('sliding') || sliding)) {\n if (app.rtl) {\n right[0].f7NavbarLeftOffset = -rightWidth * inverter;\n right[0].f7NavbarRightOffset = (navbarInnerWidth - right[0].offsetWidth) / 2 * inverter;\n } else {\n right[0].f7NavbarLeftOffset = -(navbarInnerWidth - right[0].offsetWidth) / 2;\n right[0].f7NavbarRightOffset = rightWidth;\n }\n }\n\n if (subnavbar.length && (subnavbar.hasClass('sliding') || sliding)) {\n subnavbar[0].f7NavbarLeftOffset = app.rtl ? subnavbar[0].offsetWidth : -subnavbar[0].offsetWidth;\n subnavbar[0].f7NavbarRightOffset = -subnavbar[0].f7NavbarLeftOffset;\n }\n } // Center title\n\n\n if (needCenterTitle) {\n var titleLeft = diff;\n if (app.rtl && noLeft && noRight && title.length > 0) titleLeft = -titleLeft;\n title.css({\n left: titleLeft + \"px\"\n });\n }\n },\n hide: function hide(el, animate, hideStatusbar, hideOnlyCurrent) {\n if (animate === void 0) {\n animate = true;\n }\n\n if (hideStatusbar === void 0) {\n hideStatusbar = false;\n }\n\n if (hideOnlyCurrent === void 0) {\n hideOnlyCurrent = false;\n }\n\n var app = this;\n var $el = $(el);\n var isDynamic = $el.hasClass('navbar') && $el.parent('.navbars').length && !hideOnlyCurrent;\n if (isDynamic) $el = $el.parents('.navbars');\n if (!$el.length) return;\n if ($el.hasClass('navbar-hidden')) return;\n var className = \"navbar-hidden\" + (animate ? ' navbar-transitioning' : '');\n var currentIsLarge = isDynamic ? $el.find('.navbar-current .title-large').length : $el.find('.title-large').length;\n\n if (currentIsLarge) {\n className += ' navbar-large-hidden';\n }\n\n if (hideStatusbar) {\n className += ' navbar-hidden-statusbar';\n }\n\n $el.transitionEnd(function () {\n $el.removeClass('navbar-transitioning');\n });\n $el.addClass(className);\n\n if (isDynamic) {\n $el.children('.navbar').each(function (subEl) {\n $(subEl).trigger('navbar:hide');\n app.emit('navbarHide', subEl);\n });\n } else {\n $el.trigger('navbar:hide');\n app.emit('navbarHide', $el[0]);\n }\n },\n show: function show(el, animate, hideOnlyCurrent) {\n if (el === void 0) {\n el = '.navbar-hidden';\n }\n\n if (animate === void 0) {\n animate = true;\n }\n\n if (hideOnlyCurrent === void 0) {\n hideOnlyCurrent = false;\n }\n\n var app = this;\n var $el = $(el);\n var isDynamic = $el.hasClass('navbar') && $el.parent('.navbars').length && !hideOnlyCurrent;\n if (isDynamic) $el = $el.parents('.navbars');\n if (!$el.length) return;\n if (!$el.hasClass('navbar-hidden')) return;\n\n if (animate) {\n $el.addClass('navbar-transitioning');\n $el.transitionEnd(function () {\n $el.removeClass('navbar-transitioning');\n });\n }\n\n $el.removeClass('navbar-hidden navbar-large-hidden navbar-hidden-statusbar');\n\n if (isDynamic) {\n $el.children('.navbar').each(function (subEl) {\n $(subEl).trigger('navbar:show');\n app.emit('navbarShow', subEl);\n });\n } else {\n $el.trigger('navbar:show');\n app.emit('navbarShow', $el[0]);\n }\n },\n getElByPage: function getElByPage(page) {\n var $pageEl;\n var $navbarEl;\n var pageData;\n\n if (page.$navbarEl || page.$el) {\n pageData = page;\n $pageEl = page.$el;\n } else {\n $pageEl = $(page);\n if ($pageEl.length > 0) pageData = $pageEl[0].f7Page;\n }\n\n if (pageData && pageData.$navbarEl && pageData.$navbarEl.length > 0) {\n $navbarEl = pageData.$navbarEl;\n } else if ($pageEl) {\n $navbarEl = $pageEl.children('.navbar');\n }\n\n if (!$navbarEl || $navbarEl && $navbarEl.length === 0) return undefined;\n return $navbarEl[0];\n },\n getPageByEl: function getPageByEl(navbarEl) {\n var $navbarEl = $(navbarEl);\n\n if ($navbarEl.parents('.page').length) {\n return $navbarEl.parents('.page')[0];\n }\n\n var pageEl;\n $navbarEl.parents('.view').find('.page').each(function (el) {\n if (el && el.f7Page && el.f7Page.navbarEl && $navbarEl[0] === el.f7Page.navbarEl) {\n pageEl = el;\n }\n });\n return pageEl;\n },\n collapseLargeTitle: function collapseLargeTitle(navbarEl) {\n var app = this;\n var $navbarEl = $(navbarEl);\n\n if ($navbarEl.hasClass('navbars')) {\n $navbarEl = $navbarEl.find('.navbar');\n\n if ($navbarEl.length > 1) {\n $navbarEl = $(navbarEl).find('.navbar-large.navbar-current');\n }\n\n if ($navbarEl.length > 1 || !$navbarEl.length) {\n return;\n }\n }\n\n var $pageEl = $(app.navbar.getPageByEl($navbarEl));\n $navbarEl.addClass('navbar-large-collapsed');\n $pageEl.eq(0).addClass('page-with-navbar-large-collapsed').trigger('page:navbarlargecollapsed');\n app.emit('pageNavbarLargeCollapsed', $pageEl[0]);\n $navbarEl.trigger('navbar:collapse');\n app.emit('navbarCollapse', $navbarEl[0]);\n },\n expandLargeTitle: function expandLargeTitle(navbarEl) {\n var app = this;\n var $navbarEl = $(navbarEl);\n\n if ($navbarEl.hasClass('navbars')) {\n $navbarEl = $navbarEl.find('.navbar-large');\n\n if ($navbarEl.length > 1) {\n $navbarEl = $(navbarEl).find('.navbar-large.navbar-current');\n }\n\n if ($navbarEl.length > 1 || !$navbarEl.length) {\n return;\n }\n }\n\n var $pageEl = $(app.navbar.getPageByEl($navbarEl));\n $navbarEl.removeClass('navbar-large-collapsed');\n $pageEl.eq(0).removeClass('page-with-navbar-large-collapsed').trigger('page:navbarlargeexpanded');\n app.emit('pageNavbarLargeExpanded', $pageEl[0]);\n $navbarEl.trigger('navbar:expand');\n app.emit('navbarExpand', $navbarEl[0]);\n },\n toggleLargeTitle: function toggleLargeTitle(navbarEl) {\n var app = this;\n var $navbarEl = $(navbarEl);\n\n if ($navbarEl.hasClass('navbars')) {\n $navbarEl = $navbarEl.find('.navbar-large');\n\n if ($navbarEl.length > 1) {\n $navbarEl = $(navbarEl).find('.navbar-large.navbar-current');\n }\n\n if ($navbarEl.length > 1 || !$navbarEl.length) {\n return;\n }\n }\n\n if ($navbarEl.hasClass('navbar-large-collapsed')) {\n app.navbar.expandLargeTitle($navbarEl);\n } else {\n app.navbar.collapseLargeTitle($navbarEl);\n }\n },\n initNavbarOnScroll: function initNavbarOnScroll(pageEl, navbarEl, needHide, needCollapse, needTransparent) {\n var app = this;\n var support = getSupport();\n var $pageEl = $(pageEl);\n var $navbarEl = $(navbarEl);\n var $titleLargeEl = $navbarEl.find('.title-large');\n var isLarge = $titleLargeEl.length || $navbarEl.hasClass('.navbar-large');\n var navbarHideHeight = 44;\n var snapPageScrollToLargeTitle = app.params.navbar.snapPageScrollToLargeTitle;\n var snapPageScrollToTransparentNavbar = app.params.navbar.snapPageScrollToTransparentNavbar;\n var previousScrollTop;\n var currentScrollTop;\n var scrollHeight;\n var offsetHeight;\n var reachEnd;\n var action;\n var navbarHidden;\n var navbarCollapsed;\n var navbarTitleLargeHeight;\n var navbarOffsetHeight;\n\n if (needCollapse || needHide && isLarge) {\n navbarTitleLargeHeight = $navbarEl.css('--f7-navbar-large-title-height');\n\n if (navbarTitleLargeHeight && navbarTitleLargeHeight.indexOf('px') >= 0) {\n navbarTitleLargeHeight = parseInt(navbarTitleLargeHeight, 10);\n\n if (Number.isNaN(navbarTitleLargeHeight) && $titleLargeEl.length) {\n navbarTitleLargeHeight = $titleLargeEl[0].offsetHeight;\n } else if (Number.isNaN(navbarTitleLargeHeight)) {\n if (app.theme === 'ios') navbarTitleLargeHeight = 52;else if (app.theme === 'md') navbarTitleLargeHeight = 48;else if (app.theme === 'aurora') navbarTitleLargeHeight = 38;\n }\n } else if ($titleLargeEl.length) {\n navbarTitleLargeHeight = $titleLargeEl[0].offsetHeight;\n } else {\n // eslint-disable-next-line\n if (app.theme === 'ios') navbarTitleLargeHeight = 52;else if (app.theme === 'md') navbarTitleLargeHeight = 48;else if (app.theme === 'aurora') navbarTitleLargeHeight = 38;\n }\n }\n\n if (needHide && isLarge) {\n navbarHideHeight += navbarTitleLargeHeight;\n }\n\n var scrollChanged;\n var scrollContent;\n var scrollTimeoutId;\n var touchEndTimeoutId;\n var touchSnapTimeout = 70;\n var desktopSnapTimeout = 300;\n\n function calcScrollableDistance() {\n $pageEl.find('.page-content').each(function (pageContentEl) {\n pageContentEl.f7ScrollableDistance = pageContentEl.scrollHeight - pageContentEl.offsetHeight;\n });\n }\n\n function snapLargeNavbar() {\n var inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded) return;\n if (!scrollContent || currentScrollTop < 0) return;\n\n if (currentScrollTop >= navbarTitleLargeHeight / 2 && currentScrollTop < navbarTitleLargeHeight) {\n $(scrollContent).scrollTop(navbarTitleLargeHeight, 100);\n } else if (currentScrollTop < navbarTitleLargeHeight) {\n $(scrollContent).scrollTop(0, 200);\n }\n }\n\n function snapTransparentNavbar() {\n var inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded) return;\n if (!scrollContent || currentScrollTop < 0) return;\n\n if (currentScrollTop >= navbarOffsetHeight / 2 && currentScrollTop < navbarOffsetHeight) {\n $(scrollContent).scrollTop(navbarOffsetHeight, 100);\n } else if (currentScrollTop < navbarOffsetHeight) {\n $(scrollContent).scrollTop(0, 200);\n }\n }\n\n function handleNavbarTransparent() {\n var isHidden = $navbarEl.hasClass('navbar-hidden') || $navbarEl.parent('.navbars').hasClass('navbar-hidden');\n var inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded || isHidden) return;\n\n if (!navbarOffsetHeight) {\n navbarOffsetHeight = navbarEl.offsetHeight;\n }\n\n var opacity = currentScrollTop / navbarOffsetHeight;\n var notTransparent = $navbarEl.hasClass('navbar-transparent-visible');\n opacity = Math.max(Math.min(opacity, 1), 0);\n\n if (notTransparent && opacity === 1 || !notTransparent && opacity === 0) {\n $navbarEl.find('.navbar-bg, .title').css('opacity', '');\n return;\n }\n\n if (notTransparent && opacity === 0) {\n $navbarEl.trigger('navbar:transparenthide');\n app.emit('navbarTransparentHide', $navbarEl[0]);\n $navbarEl.removeClass('navbar-transparent-visible');\n $navbarEl.find('.navbar-bg, .title').css('opacity', '');\n return;\n }\n\n if (!notTransparent && opacity === 1) {\n $navbarEl.trigger('navbar:transparentshow');\n app.emit('navbarTransparentShow', $navbarEl[0]);\n $navbarEl.addClass('navbar-transparent-visible');\n $navbarEl.find('.navbar-bg, .title').css('opacity', '');\n return;\n }\n\n $navbarEl.find('.navbar-bg, .title').css('opacity', opacity);\n\n if (snapPageScrollToTransparentNavbar) {\n if (!support.touch) {\n clearTimeout(scrollTimeoutId);\n scrollTimeoutId = setTimeout(function () {\n snapTransparentNavbar();\n }, desktopSnapTimeout);\n } else if (touchEndTimeoutId) {\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n touchEndTimeoutId = setTimeout(function () {\n snapTransparentNavbar();\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n }, touchSnapTimeout);\n }\n }\n }\n\n var previousCollapseProgress = null;\n var collapseProgress = null;\n\n function handleLargeNavbarCollapse(pageContentEl) {\n var isHidden = $navbarEl.hasClass('navbar-hidden') || $navbarEl.parent('.navbars').hasClass('navbar-hidden');\n if (isHidden) return;\n var isLargeTransparent = $navbarEl.hasClass('navbar-large-transparent') || $navbarEl.hasClass('navbar-large') && $navbarEl.hasClass('navbar-transparent');\n previousCollapseProgress = collapseProgress;\n var scrollableDistance = Math.min(navbarTitleLargeHeight, pageContentEl.f7ScrollableDistance || navbarTitleLargeHeight);\n collapseProgress = Math.min(Math.max(currentScrollTop / scrollableDistance, 0), 1);\n var previousCollapseWasInMiddle = previousCollapseProgress > 0 && previousCollapseProgress < 1;\n var inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded) return;\n navbarCollapsed = $navbarEl.hasClass('navbar-large-collapsed');\n\n if (collapseProgress === 0 && navbarCollapsed) {\n app.navbar.expandLargeTitle($navbarEl[0]);\n } else if (collapseProgress === 1 && !navbarCollapsed) {\n app.navbar.collapseLargeTitle($navbarEl[0]);\n }\n\n if (collapseProgress === 0 && navbarCollapsed || collapseProgress === 0 && previousCollapseWasInMiddle || collapseProgress === 1 && !navbarCollapsed || collapseProgress === 1 && previousCollapseWasInMiddle) {\n if (app.theme === 'md') {\n $navbarEl.find('.navbar-inner').css('overflow', '');\n }\n\n $navbarEl.find('.title').css('opacity', '');\n $navbarEl.find('.title-large-text, .subnavbar').css('transform', '');\n\n if (isLargeTransparent) {\n $navbarEl.find('.navbar-bg').css('opacity', '');\n } else {\n $navbarEl.find('.navbar-bg').css('transform', '');\n }\n } else if (collapseProgress > 0 && collapseProgress < 1) {\n if (app.theme === 'md') {\n $navbarEl.find('.navbar-inner').css('overflow', 'visible');\n }\n\n $navbarEl.find('.title').css('opacity', collapseProgress);\n $navbarEl.find('.title-large-text, .subnavbar').css('transform', \"translate3d(0px, \" + -1 * collapseProgress * navbarTitleLargeHeight + \"px, 0)\");\n\n if (isLargeTransparent) {\n $navbarEl.find('.navbar-bg').css('opacity', collapseProgress);\n } else {\n $navbarEl.find('.navbar-bg').css('transform', \"translate3d(0px, \" + -1 * collapseProgress * navbarTitleLargeHeight + \"px, 0)\");\n }\n }\n\n if (snapPageScrollToLargeTitle) {\n if (!support.touch) {\n clearTimeout(scrollTimeoutId);\n scrollTimeoutId = setTimeout(function () {\n snapLargeNavbar();\n }, desktopSnapTimeout);\n } else if (touchEndTimeoutId) {\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n touchEndTimeoutId = setTimeout(function () {\n snapLargeNavbar();\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n }, touchSnapTimeout);\n }\n }\n }\n\n function handleTitleHideShow() {\n if ($pageEl.hasClass('page-with-card-opened')) return;\n scrollHeight = scrollContent.scrollHeight;\n offsetHeight = scrollContent.offsetHeight;\n reachEnd = currentScrollTop + offsetHeight >= scrollHeight;\n navbarHidden = $navbarEl.hasClass('navbar-hidden') || $navbarEl.parent('.navbars').hasClass('navbar-hidden');\n\n if (reachEnd) {\n if (app.params.navbar.showOnPageScrollEnd) {\n action = 'show';\n }\n } else if (previousScrollTop > currentScrollTop) {\n if (app.params.navbar.showOnPageScrollTop || currentScrollTop <= navbarHideHeight) {\n action = 'show';\n } else {\n action = 'hide';\n }\n } else if (currentScrollTop > navbarHideHeight) {\n action = 'hide';\n } else {\n action = 'show';\n }\n\n if (action === 'show' && navbarHidden) {\n app.navbar.show($navbarEl, true, true);\n navbarHidden = false;\n } else if (action === 'hide' && !navbarHidden) {\n app.navbar.hide($navbarEl, true, false, true);\n navbarHidden = true;\n }\n\n previousScrollTop = currentScrollTop;\n }\n\n function handleScroll(e) {\n scrollContent = this;\n\n if (e && e.target && e.target !== scrollContent) {\n return;\n }\n\n currentScrollTop = scrollContent.scrollTop;\n scrollChanged = currentScrollTop;\n\n if (needCollapse) {\n handleLargeNavbarCollapse(scrollContent);\n } else if (needTransparent) {\n handleNavbarTransparent();\n }\n\n if ($pageEl.hasClass('page-previous')) return;\n\n if (needHide) {\n handleTitleHideShow();\n }\n }\n\n function handeTouchStart() {\n scrollChanged = false;\n }\n\n function handleTouchEnd() {\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n touchEndTimeoutId = setTimeout(function () {\n if (scrollChanged !== false) {\n if (needTransparent && !needCollapse) {\n snapTransparentNavbar();\n } else {\n snapLargeNavbar();\n }\n\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n }\n }, touchSnapTimeout);\n }\n\n $pageEl.on('scroll', '.page-content', handleScroll, true);\n\n if (support.touch && (needCollapse && snapPageScrollToLargeTitle || needTransparent && snapPageScrollToTransparentNavbar)) {\n app.on('touchstart:passive', handeTouchStart);\n app.on('touchend:passive', handleTouchEnd);\n }\n\n calcScrollableDistance();\n\n if (needCollapse || needTransparent) {\n $pageEl.find('.page-content').each(function (pageContentEl) {\n if (pageContentEl.scrollTop > 0) handleScroll.call(pageContentEl);\n });\n }\n\n app.on('resize', calcScrollableDistance);\n\n $pageEl[0].f7DetachNavbarScrollHandlers = function f7DetachNavbarScrollHandlers() {\n app.off('resize', calcScrollableDistance);\n delete $pageEl[0].f7DetachNavbarScrollHandlers;\n $pageEl.off('scroll', '.page-content', handleScroll, true);\n\n if (support.touch && (needCollapse && snapPageScrollToLargeTitle || needTransparent && snapPageScrollToTransparentNavbar)) {\n app.off('touchstart:passive', handeTouchStart);\n app.off('touchend:passive', handleTouchEnd);\n }\n };\n }\n};\nexport default {\n name: 'navbar',\n create: function create() {\n var app = this;\n bindMethods(app, {\n navbar: Navbar\n });\n },\n params: {\n navbar: {\n scrollTopOnTitleClick: true,\n iosCenterTitle: true,\n mdCenterTitle: false,\n auroraCenterTitle: true,\n hideOnPageScroll: false,\n showOnPageScrollEnd: true,\n showOnPageScrollTop: true,\n collapseLargeTitleOnScroll: true,\n snapPageScrollToLargeTitle: true,\n snapPageScrollToTransparentNavbar: true\n }\n },\n on: {\n 'panelBreakpoint panelCollapsedBreakpoint panelResize viewResize resize viewMasterDetailBreakpoint': function onPanelResize() {\n var app = this;\n $('.navbar').each(function (navbarEl) {\n app.navbar.size(navbarEl);\n });\n },\n pageBeforeRemove: function pageBeforeRemove(page) {\n if (page.$el[0].f7DetachNavbarScrollHandlers) {\n page.$el[0].f7DetachNavbarScrollHandlers();\n }\n },\n pageBeforeIn: function pageBeforeIn(page) {\n var app = this;\n if (app.theme !== 'ios') return;\n var $navbarsEl;\n var view = page.$el.parents('.view')[0].f7View;\n var navbarEl = app.navbar.getElByPage(page);\n\n if (!navbarEl) {\n $navbarsEl = page.$el.parents('.view').children('.navbars');\n } else {\n $navbarsEl = $(navbarEl).parents('.navbars');\n }\n\n if (page.$el.hasClass('no-navbar') || view.router.dynamicNavbar && !navbarEl) {\n var animate = !!(page.pageFrom && page.router.history.length > 0);\n app.navbar.hide($navbarsEl, animate);\n } else {\n app.navbar.show($navbarsEl);\n }\n },\n pageReinit: function pageReinit(page) {\n var app = this;\n var $navbarEl = $(app.navbar.getElByPage(page));\n if (!$navbarEl || $navbarEl.length === 0) return;\n app.navbar.size($navbarEl);\n },\n pageInit: function pageInit(page) {\n var app = this;\n var $navbarEl = $(app.navbar.getElByPage(page));\n if (!$navbarEl || $navbarEl.length === 0) return; // Size\n\n app.navbar.size($navbarEl); // Need Collapse On Scroll\n\n var needCollapseOnScrollHandler;\n\n if ($navbarEl.find('.title-large').length > 0) {\n $navbarEl.addClass('navbar-large');\n }\n\n if ($navbarEl.hasClass('navbar-large')) {\n if (app.params.navbar.collapseLargeTitleOnScroll) needCollapseOnScrollHandler = true;\n page.$el.addClass('page-with-navbar-large');\n } // Need transparent on scroll\n\n\n var needTransparentOnScroll;\n\n if (!needCollapseOnScrollHandler && $navbarEl.hasClass('navbar-transparent')) {\n needTransparentOnScroll = true;\n } // Need Hide On Scroll\n\n\n var needHideOnScrollHandler;\n\n if (app.params.navbar.hideOnPageScroll || page.$el.find('.hide-navbar-on-scroll').length || page.$el.hasClass('hide-navbar-on-scroll') || page.$el.find('.hide-bars-on-scroll').length || page.$el.hasClass('hide-bars-on-scroll')) {\n if (page.$el.find('.keep-navbar-on-scroll').length || page.$el.hasClass('keep-navbar-on-scroll') || page.$el.find('.keep-bars-on-scroll').length || page.$el.hasClass('keep-bars-on-scroll')) {\n needHideOnScrollHandler = false;\n } else {\n needHideOnScrollHandler = true;\n }\n }\n\n if (needCollapseOnScrollHandler || needHideOnScrollHandler || needTransparentOnScroll) {\n app.navbar.initNavbarOnScroll(page.el, $navbarEl[0], needHideOnScrollHandler, needCollapseOnScrollHandler, needTransparentOnScroll);\n }\n },\n 'panelOpen panelSwipeOpen modalOpen': function onPanelModalOpen(instance) {\n var app = this;\n instance.$el.find('.navbar:not(.navbar-previous):not(.stacked)').each(function (navbarEl) {\n app.navbar.size(navbarEl);\n });\n },\n tabShow: function tabShow(tabEl) {\n var app = this;\n $(tabEl).find('.navbar:not(.navbar-previous):not(.stacked)').each(function (navbarEl) {\n app.navbar.size(navbarEl);\n });\n }\n },\n clicks: {\n '.navbar .title': function onTitleClick($clickedEl, clickedData, e) {\n var app = this;\n if (!app.params.navbar.scrollTopOnTitleClick) return;\n\n if ($(e.target).closest('a, button').length > 0) {\n return;\n }\n\n var $pageContentEl; // Find active page\n\n var $navbarEl = $clickedEl.parents('.navbar');\n var $navbarsEl = $navbarEl.parents('.navbars'); // Static Layout\n\n $pageContentEl = $navbarEl.parents('.page-content');\n\n if ($pageContentEl.length === 0) {\n // Fixed Layout\n if ($navbarEl.parents('.page').length > 0) {\n $pageContentEl = $navbarEl.parents('.page').find('.page-content');\n } // Through Layout iOS\n\n\n if ($pageContentEl.length === 0 && $navbarsEl.length) {\n if ($navbarsEl.nextAll('.page-current:not(.stacked)').length > 0) {\n $pageContentEl = $navbarsEl.nextAll('.page-current:not(.stacked)').find('.page-content');\n }\n } // Through Layout\n\n\n if ($pageContentEl.length === 0) {\n if ($navbarEl.nextAll('.page-current:not(.stacked)').length > 0) {\n $pageContentEl = $navbarEl.nextAll('.page-current:not(.stacked)').find('.page-content');\n }\n }\n }\n\n if ($pageContentEl && $pageContentEl.length > 0) {\n // Check for tab\n if ($pageContentEl.hasClass('tab')) {\n $pageContentEl = $pageContentEl.parent('.tabs').children('.page-content.tab-active');\n }\n\n if ($pageContentEl.length > 0) $pageContentEl.scrollTop(0, 300);\n }\n }\n },\n vnode: {\n navbar: {\n postpatch: function postpatch(vnode) {\n var app = this;\n app.navbar.size(vnode.elm);\n }\n }\n }\n};","import $ from '../../shared/dom7';\nimport { nextFrame, bindMethods } from '../../shared/utils';\nvar Toolbar = {\n setHighlight: function setHighlight(tabbarEl) {\n var app = this;\n if (app.theme === 'ios') return;\n var $tabbarEl = $(tabbarEl);\n if ($tabbarEl.length === 0 || !($tabbarEl.hasClass('tabbar') || $tabbarEl.hasClass('tabbar-labels'))) return;\n var $highlightEl = $tabbarEl.find('.tab-link-highlight');\n var tabLinksCount = $tabbarEl.find('.tab-link').length;\n\n if (tabLinksCount === 0) {\n $highlightEl.remove();\n return;\n }\n\n if ($highlightEl.length === 0) {\n $tabbarEl.children('.toolbar-inner').append('');\n $highlightEl = $tabbarEl.find('.tab-link-highlight');\n } else if ($highlightEl.next().length) {\n $tabbarEl.children('.toolbar-inner').append($highlightEl);\n }\n\n var $activeLink = $tabbarEl.find('.tab-link-active');\n var highlightWidth;\n var highlightTranslate;\n\n if ($tabbarEl.hasClass('tabbar-scrollable') && $activeLink && $activeLink[0]) {\n highlightWidth = $activeLink[0].offsetWidth + \"px\";\n highlightTranslate = $activeLink[0].offsetLeft + \"px\";\n } else {\n var activeIndex = $activeLink.index();\n highlightWidth = 100 / tabLinksCount + \"%\";\n highlightTranslate = (app.rtl ? -activeIndex : activeIndex) * 100 + \"%\";\n }\n\n nextFrame(function () {\n $highlightEl.css('width', highlightWidth).transform(\"translate3d(\" + highlightTranslate + \",0,0)\");\n });\n },\n init: function init(tabbarEl) {\n var app = this;\n app.toolbar.setHighlight(tabbarEl);\n },\n hide: function hide(el, animate) {\n if (animate === void 0) {\n animate = true;\n }\n\n var app = this;\n var $el = $(el);\n if ($el.hasClass('toolbar-hidden')) return;\n var className = \"toolbar-hidden\" + (animate ? ' toolbar-transitioning' : '');\n $el.transitionEnd(function () {\n $el.removeClass('toolbar-transitioning');\n });\n $el.addClass(className);\n $el.trigger('toolbar:hide');\n app.emit('toolbarHide', $el[0]);\n },\n show: function show(el, animate) {\n if (animate === void 0) {\n animate = true;\n }\n\n var app = this;\n var $el = $(el);\n if (!$el.hasClass('toolbar-hidden')) return;\n\n if (animate) {\n $el.addClass('toolbar-transitioning');\n $el.transitionEnd(function () {\n $el.removeClass('toolbar-transitioning');\n });\n }\n\n $el.removeClass('toolbar-hidden');\n $el.trigger('toolbar:show');\n app.emit('toolbarShow', $el[0]);\n },\n initToolbarOnScroll: function initToolbarOnScroll(pageEl) {\n var app = this;\n var $pageEl = $(pageEl);\n var $toolbarEl = $pageEl.parents('.view').children('.toolbar');\n\n if ($toolbarEl.length === 0) {\n $toolbarEl = $pageEl.find('.toolbar');\n }\n\n if ($toolbarEl.length === 0) {\n $toolbarEl = $pageEl.parents('.views').children('.tabbar, .tabbar-labels');\n }\n\n if ($toolbarEl.length === 0) {\n return;\n }\n\n var previousScrollTop;\n var currentScrollTop;\n var scrollHeight;\n var offsetHeight;\n var reachEnd;\n var action;\n var toolbarHidden;\n\n function handleScroll(e) {\n if ($pageEl.hasClass('page-with-card-opened')) return;\n if ($pageEl.hasClass('page-previous')) return;\n var scrollContent = this;\n\n if (e && e.target && e.target !== scrollContent) {\n return;\n }\n\n currentScrollTop = scrollContent.scrollTop;\n scrollHeight = scrollContent.scrollHeight;\n offsetHeight = scrollContent.offsetHeight;\n reachEnd = currentScrollTop + offsetHeight >= scrollHeight;\n toolbarHidden = $toolbarEl.hasClass('toolbar-hidden');\n\n if (reachEnd) {\n if (app.params.toolbar.showOnPageScrollEnd) {\n action = 'show';\n }\n } else if (previousScrollTop > currentScrollTop) {\n if (app.params.toolbar.showOnPageScrollTop || currentScrollTop <= 44) {\n action = 'show';\n } else {\n action = 'hide';\n }\n } else if (currentScrollTop > 44) {\n action = 'hide';\n } else {\n action = 'show';\n }\n\n if (action === 'show' && toolbarHidden) {\n app.toolbar.show($toolbarEl);\n toolbarHidden = false;\n } else if (action === 'hide' && !toolbarHidden) {\n app.toolbar.hide($toolbarEl);\n toolbarHidden = true;\n }\n\n previousScrollTop = currentScrollTop;\n }\n\n $pageEl.on('scroll', '.page-content', handleScroll, true);\n $pageEl[0].f7ScrollToolbarHandler = handleScroll;\n }\n};\nexport default {\n name: 'toolbar',\n create: function create() {\n var app = this;\n bindMethods(app, {\n toolbar: Toolbar\n });\n },\n params: {\n toolbar: {\n hideOnPageScroll: false,\n showOnPageScrollEnd: true,\n showOnPageScrollTop: true\n }\n },\n on: {\n pageBeforeRemove: function pageBeforeRemove(page) {\n if (page.$el[0].f7ScrollToolbarHandler) {\n page.$el.off('scroll', '.page-content', page.$el[0].f7ScrollToolbarHandler, true);\n }\n },\n pageBeforeIn: function pageBeforeIn(page) {\n var app = this;\n var $toolbarEl = page.$el.parents('.view').children('.toolbar');\n\n if ($toolbarEl.length === 0) {\n $toolbarEl = page.$el.parents('.views').children('.tabbar, .tabbar-labels');\n }\n\n if ($toolbarEl.length === 0) {\n $toolbarEl = page.$el.find('.toolbar');\n }\n\n if ($toolbarEl.length === 0) {\n return;\n }\n\n if (page.$el.hasClass('no-toolbar')) {\n app.toolbar.hide($toolbarEl);\n } else {\n app.toolbar.show($toolbarEl);\n }\n },\n pageInit: function pageInit(page) {\n var app = this;\n page.$el.find('.tabbar, .tabbar-labels').each(function (tabbarEl) {\n app.toolbar.init(tabbarEl);\n });\n\n if (app.params.toolbar.hideOnPageScroll || page.$el.find('.hide-toolbar-on-scroll').length || page.$el.hasClass('hide-toolbar-on-scroll') || page.$el.find('.hide-bars-on-scroll').length || page.$el.hasClass('hide-bars-on-scroll')) {\n if (page.$el.find('.keep-toolbar-on-scroll').length || page.$el.hasClass('keep-toolbar-on-scroll') || page.$el.find('.keep-bars-on-scroll').length || page.$el.hasClass('keep-bars-on-scroll')) {\n return;\n }\n\n app.toolbar.initToolbarOnScroll(page.el);\n }\n },\n init: function init() {\n var app = this;\n app.$el.find('.tabbar, .tabbar-labels').each(function (tabbarEl) {\n app.toolbar.init(tabbarEl);\n });\n }\n },\n vnode: {\n tabbar: {\n insert: function insert(vnode) {\n var app = this;\n app.toolbar.init(vnode.elm);\n }\n }\n }\n};","import $ from '../../shared/dom7';\nexport default {\n name: 'subnavbar',\n on: {\n pageInit: function pageInit(page) {\n if (page.$navbarEl && page.$navbarEl.length && page.$navbarEl.find('.subnavbar').length) {\n page.$el.addClass('page-with-subnavbar');\n }\n\n var $innerSubnavbars = page.$el.find('.subnavbar').filter(function (subnavbarEl) {\n return $(subnavbarEl).parents('.page')[0] === page.$el[0];\n });\n\n if ($innerSubnavbars.length) {\n page.$el.addClass('page-with-subnavbar');\n }\n }\n }\n};","import $ from '../../shared/dom7';\n\nvar TouchRipple = /*#__PURE__*/function () {\n function TouchRipple(app, $el, x, y) {\n var ripple = this;\n if (!$el) return undefined;\n\n var _$el$0$getBoundingCli = $el[0].getBoundingClientRect(),\n left = _$el$0$getBoundingCli.left,\n top = _$el$0$getBoundingCli.top,\n width = _$el$0$getBoundingCli.width,\n height = _$el$0$getBoundingCli.height;\n\n var center = {\n x: x - left,\n y: y - top\n };\n var diameter = Math.max(Math.pow(Math.pow(height, 2) + Math.pow(width, 2), 0.5), 48);\n var isInset = false;\n var insetElements = app.params.touch.touchRippleInsetElements || '';\n\n if (insetElements && $el.is(insetElements)) {\n isInset = true;\n }\n\n if (isInset) {\n diameter = Math.max(Math.min(width, height), 48);\n }\n\n if (!isInset && $el.css('overflow') === 'hidden') {\n var distanceFromCenter = Math.pow(Math.pow(center.x - width / 2, 2) + Math.pow(center.y - height / 2, 2), 0.5);\n var scale = (diameter / 2 + distanceFromCenter) / (diameter / 2);\n ripple.rippleTransform = \"translate3d(0px, 0px, 0) scale(\" + scale + \")\";\n } else {\n // prettier-ignore\n ripple.rippleTransform = \"translate3d(\" + (-center.x + width / 2) + \"px, \" + (-center.y + height / 2) + \"px, 0) scale(1)\";\n }\n\n if (isInset) {\n $el.addClass('ripple-inset');\n }\n\n ripple.$rippleWaveEl = $(\"
\");\n $el.prepend(ripple.$rippleWaveEl);\n ripple.$rippleWaveEl.animationEnd(function () {\n if (!ripple.$rippleWaveEl) return;\n if (ripple.$rippleWaveEl.hasClass('ripple-wave-out')) return;\n ripple.$rippleWaveEl.addClass('ripple-wave-in');\n\n if (ripple.shouldBeRemoved) {\n ripple.out();\n }\n });\n return ripple;\n }\n\n var _proto = TouchRipple.prototype;\n\n _proto.destroy = function destroy() {\n var ripple = this;\n\n if (ripple.$rippleWaveEl) {\n ripple.$rippleWaveEl.remove();\n }\n\n Object.keys(ripple).forEach(function (key) {\n ripple[key] = null;\n delete ripple[key];\n });\n ripple = null;\n };\n\n _proto.out = function out() {\n var ripple = this;\n var $rippleWaveEl = this.$rippleWaveEl;\n clearTimeout(ripple.removeTimeout);\n $rippleWaveEl.addClass('ripple-wave-out');\n ripple.removeTimeout = setTimeout(function () {\n ripple.destroy();\n }, 300);\n $rippleWaveEl.animationEnd(function () {\n clearTimeout(ripple.removeTimeout);\n ripple.destroy();\n });\n };\n\n _proto.remove = function remove() {\n var ripple = this;\n if (ripple.shouldBeRemoved) return;\n ripple.removeTimeout = setTimeout(function () {\n ripple.destroy();\n }, 400);\n ripple.shouldBeRemoved = true;\n\n if (ripple.$rippleWaveEl.hasClass('ripple-wave-in')) {\n ripple.out();\n }\n };\n\n return TouchRipple;\n}();\n\nexport { TouchRipple as default };","function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport TouchRipple from './touch-ripple-class';\nexport default {\n name: 'touch-ripple',\n static: {\n TouchRipple: TouchRipple\n },\n create: function create() {\n var app = this;\n app.touchRipple = {\n create: function create() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _construct(TouchRipple, args);\n }\n };\n }\n};","function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7';\nimport { extend, deleteProps } from '../../shared/utils';\nimport Framework7Class from '../../shared/class';\nvar openedModals = [];\nvar dialogsQueue = [];\n\nfunction clearDialogsQueue() {\n if (dialogsQueue.length === 0) return;\n var dialog = dialogsQueue.shift();\n dialog.open();\n}\n\nvar Modal = /*#__PURE__*/function (_Framework7Class) {\n _inheritsLoose(Modal, _Framework7Class);\n\n function Modal(app, params) {\n var _this;\n\n _this = _Framework7Class.call(this, params, [app]) || this;\n\n var modal = _assertThisInitialized(_this);\n\n var defaults = {}; // Extend defaults with modules params\n\n modal.useModulesParams(defaults);\n modal.params = extend(defaults, params);\n modal.opened = false;\n var $containerEl = modal.params.containerEl ? $(modal.params.containerEl).eq(0) : app.$el;\n if (!$containerEl.length) $containerEl = app.$el;\n modal.$containerEl = $containerEl;\n modal.containerEl = $containerEl[0]; // Install Modules\n\n modal.useModules();\n return _assertThisInitialized(_this) || _assertThisInitialized(_this);\n }\n\n var _proto = Modal.prototype;\n\n _proto.onOpen = function onOpen() {\n var modal = this;\n modal.opened = true;\n openedModals.push(modal);\n $('html').addClass(\"with-modal-\" + modal.type.toLowerCase());\n modal.$el.trigger(\"modal:open \" + modal.type.toLowerCase() + \":open\");\n modal.emit(\"local::open modalOpen \" + modal.type + \"Open\", modal);\n };\n\n _proto.onOpened = function onOpened() {\n var modal = this;\n modal.$el.trigger(\"modal:opened \" + modal.type.toLowerCase() + \":opened\");\n modal.emit(\"local::opened modalOpened \" + modal.type + \"Opened\", modal);\n };\n\n _proto.onClose = function onClose() {\n var modal = this;\n modal.opened = false;\n if (!modal.type || !modal.$el) return;\n openedModals.splice(openedModals.indexOf(modal), 1);\n $('html').removeClass(\"with-modal-\" + modal.type.toLowerCase());\n modal.$el.trigger(\"modal:close \" + modal.type.toLowerCase() + \":close\");\n modal.emit(\"local::close modalClose \" + modal.type + \"Close\", modal);\n };\n\n _proto.onClosed = function onClosed() {\n var modal = this;\n if (!modal.type || !modal.$el) return;\n modal.$el.removeClass('modal-out');\n modal.$el.hide();\n modal.$el.trigger(\"modal:closed \" + modal.type.toLowerCase() + \":closed\");\n modal.emit(\"local::closed modalClosed \" + modal.type + \"Closed\", modal);\n };\n\n _proto.open = function open(animateModal) {\n var modal = this;\n var document = getDocument();\n var app = modal.app;\n var $el = modal.$el;\n var $backdropEl = modal.$backdropEl;\n var type = modal.type;\n var animate = true;\n if (typeof animateModal !== 'undefined') animate = animateModal;else if (typeof modal.params.animate !== 'undefined') {\n animate = modal.params.animate;\n }\n\n if (!$el || $el.hasClass('modal-in')) {\n if (animateModal === false && $el[0] && type !== 'dialog') {\n $el[0].style.display = 'block';\n }\n\n return modal;\n }\n\n if (type === 'dialog' && app.params.modal.queueDialogs) {\n var pushToQueue;\n\n if ($('.dialog.modal-in').length > 0) {\n pushToQueue = true;\n } else if (openedModals.length > 0) {\n openedModals.forEach(function (openedModal) {\n if (openedModal.type === 'dialog') pushToQueue = true;\n });\n }\n\n if (pushToQueue) {\n dialogsQueue.push(modal);\n return modal;\n }\n }\n\n var $modalParentEl = $el.parent();\n var wasInDom = $el.parents(document).length > 0;\n\n if (!$modalParentEl.is(modal.$containerEl)) {\n modal.$containerEl.append($el);\n modal.once(type + \"Closed\", function () {\n if (wasInDom) {\n $modalParentEl.append($el);\n } else {\n $el.remove();\n }\n });\n } // Show Modal\n\n\n $el.show();\n /* eslint no-underscore-dangle: [\"error\", { \"allow\": [\"_clientLeft\"] }] */\n\n modal._clientLeft = $el[0].clientLeft; // Modal\n\n function transitionEnd() {\n if ($el.hasClass('modal-out')) {\n modal.onClosed();\n } else if ($el.hasClass('modal-in')) {\n modal.onOpened();\n }\n }\n\n if (animate) {\n if ($backdropEl) {\n $backdropEl.removeClass('not-animated');\n $backdropEl.addClass('backdrop-in');\n }\n\n $el.animationEnd(function () {\n transitionEnd();\n });\n $el.transitionEnd(function () {\n transitionEnd();\n });\n $el.removeClass('modal-out not-animated').addClass('modal-in');\n modal.onOpen();\n } else {\n if ($backdropEl) {\n $backdropEl.addClass('backdrop-in not-animated');\n }\n\n $el.removeClass('modal-out').addClass('modal-in not-animated');\n modal.onOpen();\n modal.onOpened();\n }\n\n return modal;\n };\n\n _proto.close = function close(animateModal) {\n var modal = this;\n var $el = modal.$el;\n var $backdropEl = modal.$backdropEl;\n var animate = true;\n if (typeof animateModal !== 'undefined') animate = animateModal;else if (typeof modal.params.animate !== 'undefined') {\n animate = modal.params.animate;\n }\n\n if (!$el || !$el.hasClass('modal-in')) {\n if (dialogsQueue.indexOf(modal) >= 0) {\n dialogsQueue.splice(dialogsQueue.indexOf(modal), 1);\n }\n\n return modal;\n } // backdrop\n\n\n if ($backdropEl) {\n var needToHideBackdrop = true;\n\n if (modal.type === 'popup') {\n modal.$el.prevAll('.popup.modal-in').add(modal.$el.nextAll('.popup.modal-in')).each(function (popupEl) {\n var popupInstance = popupEl.f7Modal;\n if (!popupInstance) return;\n\n if (popupInstance.params.closeByBackdropClick && popupInstance.params.backdrop && popupInstance.backdropEl === modal.backdropEl) {\n needToHideBackdrop = false;\n }\n });\n }\n\n if (needToHideBackdrop) {\n $backdropEl[animate ? 'removeClass' : 'addClass']('not-animated');\n $backdropEl.removeClass('backdrop-in');\n }\n } // Modal\n\n\n $el[animate ? 'removeClass' : 'addClass']('not-animated');\n\n function transitionEnd() {\n if ($el.hasClass('modal-out')) {\n modal.onClosed();\n } else if ($el.hasClass('modal-in')) {\n modal.onOpened();\n }\n }\n\n if (animate) {\n $el.animationEnd(function () {\n transitionEnd();\n });\n $el.transitionEnd(function () {\n transitionEnd();\n });\n $el.removeClass('modal-in').addClass('modal-out'); // Emit close\n\n modal.onClose();\n } else {\n $el.addClass('not-animated').removeClass('modal-in').addClass('modal-out'); // Emit close\n\n modal.onClose();\n modal.onClosed();\n }\n\n if (modal.type === 'dialog') {\n clearDialogsQueue();\n }\n\n return modal;\n };\n\n _proto.destroy = function destroy() {\n var modal = this;\n if (modal.destroyed) return;\n modal.emit(\"local::beforeDestroy modalBeforeDestroy \" + modal.type + \"BeforeDestroy\", modal);\n\n if (modal.$el) {\n modal.$el.trigger(\"modal:beforedestroy \" + modal.type.toLowerCase() + \":beforedestroy\");\n\n if (modal.$el.length && modal.$el[0].f7Modal) {\n delete modal.$el[0].f7Modal;\n }\n }\n\n deleteProps(modal);\n modal.destroyed = true;\n };\n\n return Modal;\n}(Framework7Class);\n\nexport default Modal;","function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport $ from '../../shared/dom7';\nimport { extend } from '../../shared/utils';\nimport Modal from './modal-class';\n\nvar CustomModal = /*#__PURE__*/function (_Modal) {\n _inheritsLoose(CustomModal, _Modal);\n\n function CustomModal(app, params) {\n var _this;\n\n var extendedParams = extend({\n backdrop: true,\n closeByBackdropClick: true,\n on: {}\n }, params); // Extends with open/close Modal methods;\n\n _this = _Modal.call(this, app, extendedParams) || this;\n\n var customModal = _assertThisInitialized(_this);\n\n customModal.params = extendedParams; // Find Element\n\n var $el;\n\n if (!customModal.params.el) {\n $el = $(customModal.params.content);\n } else {\n $el = $(customModal.params.el);\n }\n\n if ($el && $el.length > 0 && $el[0].f7Modal) {\n return $el[0].f7Modal || _assertThisInitialized(_this);\n }\n\n if ($el.length === 0) {\n return customModal.destroy() || _assertThisInitialized(_this);\n }\n\n var $backdropEl;\n\n if (customModal.params.backdrop) {\n $backdropEl = app.$el.children('.custom-modal-backdrop');\n\n if ($backdropEl.length === 0) {\n $backdropEl = $('
');\n app.$el.append($backdropEl);\n }\n }\n\n function handleClick(e) {\n if (!customModal || customModal.destroyed) return;\n\n if ($backdropEl && e.target === $backdropEl[0]) {\n customModal.close();\n }\n }\n\n customModal.on('customModalOpened', function () {\n if (customModal.params.closeByBackdropClick && customModal.params.backdrop) {\n app.on('click', handleClick);\n }\n });\n customModal.on('customModalClose', function () {\n if (customModal.params.closeByBackdropClick && customModal.params.backdrop) {\n app.off('click', handleClick);\n }\n });\n extend(customModal, {\n app: app,\n $el: $el,\n el: $el[0],\n $backdropEl: $backdropEl,\n backdropEl: $backdropEl && $backdropEl[0],\n type: 'customModal'\n });\n $el[0].f7Modal = customModal;\n return customModal || _assertThisInitialized(_this);\n }\n\n return CustomModal;\n}(Modal);\n\nexport default CustomModal;","import Modal from './modal-class';\nimport CustomModal from './custom-modal-class';\nexport default {\n name: 'modal',\n static: {\n Modal: Modal,\n CustomModal: CustomModal\n },\n create: function create() {\n var app = this;\n app.customModal = {\n create: function create(params) {\n return new CustomModal(app, params);\n }\n };\n },\n params: {\n modal: {\n queueDialogs: true\n }\n }\n};","/**\n * Framework7 6.2.0\n * Full featured mobile HTML framework for building iOS & Android apps\n * https://framework7.io/\n *\n * Copyright 2014-2021 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: August 2, 2021\n */\n\nimport $ from './shared/dom7';\nimport Framework7 from './components/app/app-class';\nimport request from './shared/request';\nimport * as utils from './shared/utils';\nimport { getSupport } from './shared/get-support';\nimport { getDevice } from './shared/get-device';\nimport DeviceModule from './modules/device/device';\nimport SupportModule from './modules/support/support';\nimport UtilsModule from './modules/utils/utils';\nimport ResizeModule from './modules/resize/resize';\nimport RequestModule from './modules/request/request';\nimport TouchModule from './modules/touch/touch';\nimport ClicksModule from './modules/clicks/clicks';\nimport RouterModule from './modules/router/router';\nimport RouterComponentLoaderModule from './modules/router/component-loader';\nimport ComponentModule, { Component, $jsx } from './modules/component/component';\nimport HistoryModule from './modules/history/history';\nimport ServiceWorkerModule from './modules/service-worker/service-worker';\nimport StoreModule, { createStore } from './modules/store/store';\nimport Statusbar from './components/statusbar/statusbar';\nimport View from './components/view/view';\nimport Navbar from './components/navbar/navbar';\nimport Toolbar from './components/toolbar/toolbar';\nimport Subnavbar from './components/subnavbar/subnavbar';\nimport TouchRipple from './components/touch-ripple/touch-ripple';\nimport Modal from './components/modal/modal';\nimport Router from './modules/router/router-class';\nRouter.use([RouterComponentLoaderModule]);\nFramework7.use([DeviceModule, SupportModule, UtilsModule, ResizeModule, RequestModule, TouchModule, ClicksModule, RouterModule, HistoryModule, ComponentModule, ServiceWorkerModule, StoreModule, Statusbar, View, Navbar, Toolbar, Subnavbar, TouchRipple, Modal]);\nexport { Component, $jsx, $ as Dom7, request, utils, getDevice, getSupport, createStore };\nexport default Framework7;\n","import Framework7, { Dom7 } from 'framework7';\nimport F7WelcomescreenPlugin from 'f7-welcomescreen';\nimport './main.css';\n\ndocument.addEventListener('DOMContentLoaded', function (event) {\n var options = {\n bgcolor: '#0da6ec',\n fontcolor: '#fff',\n\n // Parallax example – Remove comments to test it out:\n\n // parallax: true|false,\n // parallaxBackgroundImage: 'http://lorempixel.com/900/600/nightlife/2/', // parallax default background image\n // parallaxBackground: '-23%', // parallax default background effect\n /* parallaxSlideElements: {\n title: -100, \n subtitle: -300, \n text: -500\n }, */\n\n onOpened: function () {\n console.log('welcome screen opened');\n },\n onClosed: function () {\n console.log('welcome screen closed');\n },\n };\n\n var welcomescreen_slides = [\n {\n id: 'slide0',\n title: 'Slide 1',\n picture: '
♥
',\n text: 'Welcome to this tutorial. In the next steps we will guide you through a manual that will teach you how to use this app.

Swipe to continue →',\n },\n {\n id: 'slide1',\n title: 'Slide 2',\n picture: '
✲
',\n text: 'This is slide 2

Swipe to continue →',\n },\n {\n id: 'slide2',\n title: 'Slide 3',\n picture: '
♫
',\n text: 'This is slide 3

Swipe to continue →',\n },\n {\n id: 'slide3',\n // title: 'NO TITLE',\n picture: '
☆
',\n text: 'Thanks for reading! Enjoy this app or go to previous slide.

End Tutorial',\n },\n ];\n\n // Tell F7 to use the plugin\n Framework7.use(F7WelcomescreenPlugin);\n\n // Initialize Framework7 + plugin\n var app = new Framework7({\n root: '#app',\n name: 'welcomescreen-demo',\n id: 'de.timoernst.f7.welcomescreen',\n welcomescreen: {\n slides: welcomescreen_slides,\n options: options,\n },\n });\n\n var mainView = app.views.create('.view-main');\n\n Dom7(document).on('click', '.tutorial-close-btn', function () {\n app.welcomescreen.close();\n });\n\n Dom7('.tutorial-open-btn').click(function () {\n app.welcomescreen.open();\n });\n\n Dom7(document).on('click', '.tutorial-next-link', function (e) {\n app.welcomescreen.next();\n });\n\n Dom7(document).on('click', '.tutorial-previous-slide', function (e) {\n app.welcomescreen.previous();\n });\n});\n"],"names":["define","__webpack_modules__","__unused_webpack_module","__webpack_exports__","__webpack_require__","t7ctx","d","Z","__WEBPACK_DEFAULT_EXPORT__","window","g","Template7Context","Template7Utils","quoteSingleRexExp","RegExp","quoteDoubleRexExp","isFunction","e","escape","replace","helperToSlices","n","a","o","t","i","r","trim","split","s","length","l","push","indexOf","match","c","p","u","f","stringToBlocks","type","content","contextName","Array","isArray","helperName","inverseContent","hash","parseJsVariable","reduce","JSON","stringify","forEach","constructor","Object","join","parseJsParents","getCompileVar","Number","isFinite","getCompiledArguments","test","Template7Helpers","_partial","this","Template7Class","partials","template","compiled","compile","keys","data","root","Error","call","fn","inverse","unless","each","reverse","first","last","index","key","delimiter","delimeter","js","expression","options","func","execute","Template7","global","parents","eval","js_if","condition","js_compare","Template7Options","Template7Partials","depth","blocks","ctx","getCompileFn","getCompileInverse","resultString","registerHelper","helpers","unregisterHelper","registerPartial","unregisterPartial","__webpack_module_cache__","exports","defineProperty","enumerable","get","globalThis","Function","prototype","hasOwnProperty","Symbol","toStringTag","value","default","J","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","host","hostname","href","origin","pathname","protocol","search","document","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","cancelAnimationFrame","setPrototypeOf","getPrototypeOf","__proto__","Reflect","construct","sham","Proxy","toString","apply","bind","arguments","Map","TypeError","has","set","create","writable","configurable","ReferenceError","concat","h","filter","v","innerHTML","nodeType","m","trigger","on","w","addClass","map","classList","add","removeClass","remove","hasClass","contains","toggleClass","toggle","attr","getAttribute","removeAttr","removeAttribute","transform","transition","transitionDuration","target","dom7EventData","unshift","is","dom7LiveListeners","listener","proxyListener","dom7Listeners","off","dom7proxy","splice","detail","bubbles","cancelable","dispatchEvent","transitionEnd","outerWidth","styles","offsetWidth","parseFloat","outerHeight","offsetHeight","offset","getBoundingClientRect","clientTop","clientLeft","scrollY","scrollTop","scrollX","scrollLeft","top","left","css","html","text","textContent","matches","webkitMatchesSelector","msMatchesSelector","previousSibling","eq","append","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","prev","previousElementSibling","prevAll","parent","parentNode","closest","find","removeChild","E","_","M","T","x","b","now","S","slice","y","HTMLElement","C","getOwnPropertyDescriptor","__swiper__","k","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","gestures","P","platform","ios","android","width","height","os","O","isEdge","isSafari","toLowerCase","isWebView","L","name","resize","createObserver","destroyed","initialized","ResizeObserver","contentBoxSize","contentRect","el","inlineSize","blockSize","resizeHandler","observe","removeObserver","unobserve","emit","orientationChangeHandler","init","params","resizeObserver","destroy","z","assign","A","attach","MutationObserver","WebkitMutationObserver","attributes","childList","characterData","observers","support","observeParents","$el","observeSlideChildren","$wrapperEl","disconnect","I","$","touchEventsData","touches","enabled","animating","preventInteractionOnTransition","originalEvent","touchEventsTarget","wrapperEl","isTouchEvent","which","button","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","noSwiping","assignedSlot","getRootNode","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","startX","startY","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","focusableElements","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","N","rtlTranslate","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","loop","isVertical","translate","maxTranslate","minTranslate","Math","sqrt","pow","isHorizontal","atan2","abs","PI","touchAngle","cssMode","touchMoveStopPropagation","nested","stopPropagation","loopFix","startTranslate","getTranslate","setTransition","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","position","time","updateProgress","setTranslate","D","slidesGrid","snapGrid","updateClickedSlide","lastClickTime","slideTo","activeIndex","slides","freeModeMomentum","pop","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","freeModeMomentumRatio","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","once","slidesSizesGrid","speed","slideToClosest","transitionStart","longSwipesMs","slidesPerGroupSkip","slidesPerGroup","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","B","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","autoplay","running","paused","run","watchOverflow","checkOverflow","G","preventClicks","preventClicksPropagation","stopImmediatePropagation","j","previousTranslate","scrollWidth","progress","H","F","V","direction","initialSlide","updateOnWindowResize","createElements","url","autoHeight","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","W","modular","useParams","modules","useModules","eventsEmitter","eventsListeners","__emitterProxy","onAny","eventsAnyListeners","offAny","events","context","update","clientWidth","clientHeight","parseInt","isNaN","size","marginRight","wrongRTL","virtual","virtualSize","marginLeft","marginBottom","marginTop","floor","ceil","max","min","order","webkitTransform","R","q","X","Y","U","swiperSlideSize","K","Q","ee","te","ie","re","se","ne","ae","updateSlidesOffset","updateAutoHeight","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","visibleSlidesIndexes","realIndex","emitSlidesClasses","snapIndex","previousIndex","clickedSlide","clickedIndex","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","translateTo","scrollTo","behavior","onTranslateToWrapperTransitionEnd","slide","onSlideToWrapperTransitionEnd","slideToLoop","slideNext","_clientLeft","slidePrev","slideReset","slidesPerViewDynamic","loopCreate","cloneNode","loopDestroy","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","removeSlide","removeAllSlides","attachEvents","touchEvents","device","onTouchStart","onTouchMove","onTouchEnd","onScroll","onClick","start","move","end","passive","capture","cancel","detachEvents","getBreakpoint","currentBreakpoint","originalParams","emitContainerClasses","changeDirection","disable","enable","innerHeight","substr","point","sort","classes","addClasses","classNames","rtl","autoheight","multirow","removeClasses","images","loadImage","complete","onload","onerror","sizes","srcset","src","imagesLoaded","imagesToLoad","currentSrc","browser","auto","passedParams","touchEventsTouch","touchEventsDesktop","clickTimeout","setProgress","className","getSlideClasses","slideEl","mount","mounted","swiper","dir","extendDefaults","installModule","use","Welcomescreen","closeButton","closeButtonText","cssClass","pagination","open","parallax","parallaxSpeed","parallaxBackgroundImage","parallaxBackground","parallaxSlideElements","title","subtitle","Dom7","bgcolor","color","fontcolor","f7Welcomescreen","onOpened","close","onClosed","previous","welcomescreen","moduleId","cachedModule","undefined","module","getter","__esModule","definition","obj","prop","isObject","extend","ssrDocument","getDocument","doc","ssrWindow","callback","id","getWindow","win","uniqueNum","uniqueNumber","mask","random","deviceCalculated","mdPreloaderContent","iosPreloaderContent","auroraPreloaderContent","eventNameToColonCase","eventName","hasColon","char","deleteProps","object","frameId","nextTick","delay","nextFrame","parseUrlQuery","param","query","urlToParse","paramsPart","decodeURIComponent","axis","matrix","curTransform","transformMatrix","curStyle","serializeObject","newParents","resultArray","varName","parentParts","encodeURIComponent","varValue","toPush","String","merge","_len","args","_key","to","from","nextSource","keysArray","nextIndex","len","nextKey","desc","deep","_len2","_key2","colorHexToRgb","hex","result","exec","colorRgbToHex","colorRgbToHsl","colorHslToRgb","rgb1","hp","round","colorHsbToHsl","HSL","HSB","colorHslToHsb","colorThemeCSSProperties","rgb","_len3","_key3","hsl","hslShade","hslTint","shade","tint","bindMethods","instance","subKey","flattenArray","arr","_len4","_key4","arg","getSupport","supportsPassive","opts","intersectionObserver","calcSupport","getDevice","overrides","reset","_temp","ua","androidChrome","desktop","iphone","ipod","ipad","edge","firefox","macos","windows","cordova","phonegap","electron","capacitor","Capacitor","nwjs","screenWidth","screenHeight","nw","process","versions","osVersion","webView","standalone","webview","pixelRatio","devicePixelRatio","prefersColorScheme","theme","calcDevice","EventsClass","eventsParents","_proto","handler","priority","self","method","event","onceHandler","f7proxy","eventHandler","local","eventsArray","localEvents","parentEvents","handlers","eventsParent","_defineProperties","props","descriptor","_setPrototypeOf","_EventsClass","subClass","superClass","Framework7Class","_this","_assertThisInitialized","Constructor","staticProps","useModuleParams","instanceParams","paramKey","useModulesParams","moduleName","useModule","moduleParams","modulePropName","moduleProp","moduleEventName","vnode","vnodeHooks","vnodeId","hookName","modulesParams","Class","proto","static","install","components","_getPrototypeOf","_isNativeReflectConstruct","_construct","Parent","_wrapNativeSuper","_cache","Wrapper","_Array","items","arrayFlat","res","arrayFilter","selector","toCreate","tempParent","qsa","uniqueArray","arrayUnique","_el$classList","_el$classList2","attrs","attrName","propName","dom7ElementDataStorage","removeData","dataset","string","dataKey","_attr","group","toUpperCase","val","multiple","values","selectedOptions","_i","_el","selected","duration","_len5","_key5","eventType","targetSelector","handleLiveEvent","eventData","_parents","handleEvent","_event","_len6","_key6","dom","_len7","_key7","_len8","eventArgs","_key8","_len9","_key9","evt","dataIndex","fireCallBack","animationEnd","includeMargins","_styles","_styles2","box","hide","display","show","_prop","compareWith","child","returnIndex","newChild","tempDiv","appendTo","prependTo","before","insertAfter","after","nextSibling","nextEls","_next","prevEls","_prev","siblings","_parent","foundElements","found","detach","_len10","els","_key10","toAdd","empty","easing","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","scrollHeight","startTime","render","getTime","done","easeProgress","cos","animate","initialProps","initialParams","animateInstance","elements","que","easingProgress","stop","dom7AnimateInstance","shift","initialFullValue","initialValue","unit","finalValue","finalFullValue","container","currentValue","elementsDone","propsDone","began","begin","element","_el$prop","noTrigger","shortcut","click","focusin","focusout","keyup","keydown","keypress","change","mousedown","mousemove","mouseup","mouseenter","mouseleave","mouseout","mouseover","touchstart","touchend","touchmove","methodName","Boolean","valueOf","ConstructorMethods","parameters","_parameters","defaultSelector","domProp","app","addMethods","methods","_extends","source","fetchedModules","Framework7","_Framework7Class","defaults","version","language","routes","lazyModulesPath","initOnDeviceReady","autoDarkTheme","iosTranslucentBars","iosTranslucentModals","component","componentUrl","online","onLine","store","f7","initStore","protoProps","rootEl","$rootEl","DARK","LIGHT","mq","dark","light","colorSchemeListener","_ref","media","darkTheme","__store","createStore","enableAutoDarkTheme","addListener","disableAutoDarkTheme","removeListener","initAppComponent","router","componentLoader","componentOptions","$elComponent","f7Component","loadModule","loadModules","getVnodeHooks","hook","ModalMethods","targetEl","$targetPage","modalEl","$modalEl","f7Modal","$parentEl","$targetEl","moduleToLoad","Promise","resolve","reject","modulePath","moduleObj","moduleFunc","matchNamePattern","_module","scriptLoad","resolveScript","rejectScript","request","scriptContent","callbackLoadName","scriptEl","xhr","status","styleLoad","resolveStyle","styleContent","styleEl","all","then","catch","err","metaStatusbar","utils","getSize","orientationchange","globals","jsonpRequests","RequestResponse","RequestError","_Error","requestOptions","globalsNoCallbacks","callbackName","async","cache","user","password","headers","xhrFields","statusCode","processData","dataType","contentType","timeout","abortController","canceled","message","fireCallback","stringData","paramsPrefix","abortTimeout","callbackSplit","requestUrl","addVars","script","XMLHttpRequest","aborted","onAbort","abort","requestParameters","postData","ArrayBuffer","Blob","Document","FormData","boundary","setRequestHeader","newData","Accept","headerName","crossDomain","$2","responseData","parseError","parse","responseText","responseType","response","statusText","ontimeout","send","globalCallbackValue","optionCallbackValue","requestShortcut","success","error","post","json","getJSON","postJSON","contoller","setup","touchClicksDistanceThreshold","disableContextMenu","tapHold","tapHoldDelay","tapHoldPreventClicks","activeState","activeStateElements","activeStateOnMouseMove","mdTouchRipple","iosTouchRipple","auroraTouchRipple","touchRippleElements","touchRippleInsetElements","touchStartX","touchStartY","targetElement","tapHoldFired","tapHoldTimeout","preventClick","activableElement","activeTimeout","rippleWave","rippleTarget","rippleTimeout","useRipple","findActivableElement","activable","preventPropagation","newActivable","isInsideScrollableView","addActive","removeActive","createRipple","touchRipple","removeRipple","rippleTouchStart","rippleElements","rippleParent","findRippleElement","rippleTouchMove","rippleTouchEnd","handleMouseUp","isSegmentedStrong","segmentedStrongEl","touchMoveActivableIos","isTouchMoveActivable","touchmoveActivableEl","emitAppTouchEvent","appTouchStartActive","appTouchMoveActive","appTouchEndActive","appTouchStartPassive","appTouchMovePassive","appTouchEndPassive","passiveListenerCapture","activeListener","activeListenerCapture","isOverswipe","isSegmented","localPreventClick","distance","shouldRemoveActive","touchCurrentX","touchCurrentY","buttonEl","elementFromPoint","clientX","clientY","_elementFromPoint","$activableEl","isNative","str","tokens","count","pattern","code","charCodeAt","lexer","_a","prefixes","defaultPattern","escapeString","tryConsume","mustConsume","nextType","consumeText","prefix","suffix","modifier","name_1","pattern_1","flags","sensitive","pathToRegexp","groupsRegex","execResult","regexpToRegexp","paths","parts","arrayToRegexp","strict","_b","_c","_d","encode","endsWith","route","tokens_1","token","mod","endToken","isEndDelimited","tokensToRegexp","stringToRegexp","History","queue","clearQueue","currentQueue","routerQueue","clearRouterQueue","stateUrl","action","browserHistoryAnimate","browserHistory","navigate","handle","blockPopstate","state","previousState","allowChange","views","view","viewState","allowPageChange","initViewState","viewId","_extend","newState","_extend2","_extend3","readyState","redirect","initial","redirectUrl","redirectOptions","processQueue","routeQueue","_reject","processRouteQueue","enterNextRoute","routesBeforeEnter","beforeEnter","routesBeforeLeave","beforeLeave","appRouterCheck","asyncComponent","resolvePromise","componentPromise","_default","asyncComponentResult","forward","forwardOptions","masterPageEl","otherDetailPageEl","modalType","reloadCurrent","reloadPages","reloadPrevious","reloadAll","clearPreviousHistory","reloadDetail","masterDetailEnabled","masterDetailBreakpoint","isMaster","master","detailsInBetweenRemoved","currentRouteIsModal","currentRoute","modal","modalLoadProp","modalToClose","modalInstance","previousUrl","previousRoute","findMatchingRoute","modalRemove","$oldPage","$navbarsEl","$newNavbarEl","$oldNavbarEl","dynamicNavbar","$viewEl","$newPage","reload","removeThemeElements","f7Page","$navbarEl","keepAlive","keepAliveData","pageEl","$navbarsInView","isDetail","isDetailRoot","$pagesInView","pageInView","navbarInView","newPagePosition","role","detailRoot","navbar","getElByPage","navbarEl","removedPageEls","removedNavbarEls","_i2","oldNavbarEl","stackPages","pageCallback","removePage","removeNavbar","browserHistoryRoot","browserHistorySeparator","currentPageEl","currentNavbarEl","saveHistory","newPageInDom","componentEl","f7PageMounted","initialPages","$oldPageEl","$oldNavbarElEl","tab","tabLoad","checkMasterDetailBreakpoint","setPagePosition","setNavbarPosition","afterAnimation","keepOldPage","preloadPreviousPage","setPositionClasses","f7PageTransition","load","loadParams","loadOptions","ignorePageChange","pageName","parentPath","sameParams","paramName","allowDuplicateUrls","parseRouteUrl","getPageEl","pageComponentLoader","routerEl","newOptions","xhrAbortController","xhrRequest","pageContent","backward","backwardOptions","masterPageRemoved","backIndex","initialPreload","preload","currentIsMaster","masterRoute","force","pageToRemove","$navbarToRemove","$pageToRemove","insertPage","$previousPages","_browserHistoryRoot","loadBack","backParams","backOptions","Router","isAppRouter","routerId","scrollHistory","iosDynamicNavbar","initialNavbars","newRoute","tempDom","navbarsEl","animatableNavElements","toLarge","fromLarge","newNavEls","oldNavEls","animateIcon","iosAnimateNavbarBackIcon","animatableNavEl","$navbarInner","isIconLabel","isSliding","isSubnavbar","needsOpacityTransition","$iconEl","leftOffset","f7NavbarLeftOffset","rightOffset","f7NavbarRightOffset","navEl","$navEl","navEls","otherEls","otherNavEl","iconTextEl","$newPageEl","animateCustom","routerCustomTransitionClass","toDifferent","oldIsLarge","newIsLarge","routerTransitionClass","animateNavbars","setProperty","removeModal","removeEl","removeTabContent","tabEl","tabChild","removeElements","removeElementsWithTimeout","removeElementsTimeout","findElement","stringSelector","notStacked","$container","viewMainClass","flattenRoutes","flattenedRoutes","hasTabRoutes","tabs","mergedPathsRoutes","tabRoute","tRoute","_mergedPathsRoutes","detailRoutes","detailRoute","dRoute","masterRoutePath","_mergedPathsRoutes2","childRoute","cRoute","generateUrl","findRouteByKey","constructRouteUrl","toUrl","reFlags","validate","optional","repeat","segment","typeOfMessage","tokensToFunction","findTabRouteUrl","foundTabRouteUrl","$tabEl","tabId","matchingRoute","_router$parseRouteUrl","matched","pathsToMatch","alias","aliasPath","pathToMatch","keyObj","paramValue","replaceRequestUrlParams","compiledUrl","regExp","removeFromXhrCache","xhrCache","ignoreCache","hasQuery","passRouteQueryToRequest","passRouteParamsToRequest","xhrCacheIgnoreGetParameters","xhrCacheIgnore","cachedUrl","xhrCacheDuration","beforeSend","ariaHidden","toRemove","getPageData","pageFromEl","pageFrom","$pageEl","currentPage","fromPage","$pageFromEl","page","restoreScrollTopOnBack","camelName","colonName","swipeBack","_ref2","_ref2$on","_ref2$once","$pageContent","pageContentEl","f7PageInitialized","_$pageContent","f7RouteEventsAttached","f7RouteEventsOn","f7RouteEventsOnce","browserHistoryStoreHistory","localStorage","restoreHistory","clearHistory","updateCurrentUrl","newUrl","_router$parseRouteUrl2","getInitialUrl","initialUrl","historyRestored","URL","documentUrl","_router$params","browserHistoryOnLoad","console","warn","_router$getInitialUrl","iosSwipeBack","mdSwipeBack","auroraSwipeBack","viewContainerWidth","touchesDiff","$pageShadowEl","$pageOpacityEl","animatableNavEls","touchesStart","$currentPageEl","$previousPageEl","allowViewTouchMove","$currentNavbarEl","$previousNavbarEl","paramsSwipeBackAnimateShadow","paramsSwipeBackAnimateOpacity","paramsSwipeBackActiveArea","paramsSwipeBackThreshold","transformOrigin","transformOriginTitleLarge","setAnimatableNavElements","reflow","classNameSet","styleProp","handleTouchStart","swipeBackEnabled","swipeout","handleTouchMove","f7PreventSwipeBack","preventSwipeBack","activeNavBackIconText","previousNavBackIconText","inverter","currentNavIsTransparent","currentNavIsLarge","currentNavIsCollapsed","currentNavIsLargeTransparent","previousNavIsTransparent","previousNavIsLarge","previousNavIsCollapsed","previousNavIsLargeTransparent","$currentNavElements","$previousNavElements","isLeft","isTitle","isBg","overflow","subNavEl","opacity","transformTarget","textEl","activeNavTranslate","previousNavTranslate","sheet","f7PreventSwipePanel","preventSwipePanelBySwipeBack","percentage","callbackData","previousPageEl","previousNavbarEl","currentPageTranslate","previousPageTranslate","swipeBackActive","handleTouchEnd","$pages","timeDiff","pageChanged","_router$params2","browserHistoryAnimateOnLoad","browserHistoryInitialMatch","initUrl","loadInitialPage","modalOpen","pageAfterIn","hasTabRoute","initOptions","routerProp","navigateParams","navigateOptions","createRoute","navigateUrl","currentPath","viewName","anotherViewName","anotherView","openIn","ignoreOpenIn","popup","loginScreen","clickedEl","popover","side","panel","routerLoaded","asyncResolve","resolveParams","resolveOptions","resolvedAsModal","modalRoute","modalLoad","asyncReject","pageLoadProp","_load","preloadMaster","masterLoaded","refreshPage","parentPageEl","$parentPageEl","hasContentLoadProp","tabShowResult","$newTabEl","$oldTabEl","animated","onTabsChanged","tabParentPageData","f7RouterTabLoaded","loadTab","loadTabParams","loadTabOptions","contentEl","tabEventTarget","unloadTabContent","tabRemove","onTabLoaded","tabComponentLoader","tabContent","tabLoadProp","_loadTab","hasTabComponentChild","foundLoadProp","isPanel","modalOrPanel","modalParams","routeCallback","panelOpen","modalClose","panelClose","modalClosed","panelClosed","onModalLoaded","hasEl","closeOnSwipeBack","closeByRouter","modalComponent","loadModal","loadModalParams","loadModalOptions","modalComponentLoader","modalContent","_loadModal","_navigateOptions","prevOpenedModals","forceOtherUrl","isBrokenBrowserHistory","needHistoryBack","currentRouteWithoutBrowserHistory","skipMaster","$previousPage","$previousMaster","expectedPreviousPageUrl","expectedPreviousPageRoute","previousPageRoute","backForceLoaded","_loadBack","clearPreviousPages","templates","View","viewParams","routesAdd","main","f7View","viewProp","wasMasterDetail","isMasterDetail","initMasterDetail","masterDetailResizable","resizableInitialized","resizable","resizableWidth","$htmlEl","$resizeHandlerEl","minWidth","maxWidth","handleResize","transformCSSWidth","newV","$pageMasterEl","newWidth","viewEl","clicks","externalLinks","$clickedEl","$clickedLinkEl","isLink","InAppBrowser","Plugins","Browser","moduleClicks","preventF7Router","clickSelector","matchingClickedElement","clickedLinkData","current","linksView","f7RouteProps","cachedComponent","componentFunction","componentRoot","componentContext","f7route","f7router","componentProps","routeProps","createdComponent","componentCache","cached","loadedComponent","parsedComponent","_temp2","_temp3","_ref3","ignoreChildren","sel","elm","array","primitive","addNS","ns","childData","SELF_CLOSING","PROPS_ATTRS","BOOLEAN_PROPS","getTagName","treeNode","word","propsFromAttrs","isCustomComponent","treeNodeType","getChildren","nodes","childNode","treeNodeToVNode","isRoot","isTreeNode","slotName","slotNodes","childTreeNode","childSlotName","slot","subTreeNode","getSlots","tagName","attrValue","prevent","eventNamePart","eventNameIndex","fired","getEventHandler","hooks","insert","postpatch","isFakeElement","_readOnlyError","isCustom","__component__","createCustomComponent","destroyCustomComponent","oldVnode","newProps","updateCustomComponent","class","vn","getHooks","prepatch","getData","vdom","tree","namespaceURI","qualifiedName","createTextNode","createComment","newNode","referenceNode","node","setTextContent","getTextContent","isElement","isText","isComment","isUndef","isDef","emptyNode","sameVnode","vnode1","vnode2","createKeyToOldIdx","beginIdx","endIdx","ch","updateAttrs","oldAttrs","cur","setAttributeNS","updateProps","oldProps","raf","setNextFrame","updateStyle","oldStyle","oldHasDel","removeProperty","delayed","name2","invokeHandler","updateEvents","oldOn","oldListener","oldElm","domApi","cbs","api","createRmCb","childElm","listeners","parent_1","createElm","insertedVnodeQueue","hashIdx","dotIdx","dot","tag","addVnodes","parentElm","vnodes","startIdx","invokeDestroyHook","removeVnodes","i_1","rm","patchVnode","oldCh","newCh","oldKeyToIdx","idxInOld","elmToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","updateChildren","pre","isVnode","emptyNodeAt","amount","applied","ev","Component","md","aurora","__updateQueue","__eventHandlers","__onceEventHandlers","__onBeforeMount","__onMounted","__onBeforeUpdate","__onUpdated","__onBeforeUnmount","__onUnmounted","componentResult","getComponentContext","renderFunction","getComponentStore","_this2","_this$f7$store","_gettersPlain","$store","dispatch","getters","onUpdated","includeHooks","_this3","$f7route","$f7router","$h","$id","$f7","$f7ready","f7ready","$theme","$tick","tick","$update","$emit","$on","$once","$onBeforeMount","$onMounted","$onBeforeUpdate","$onUpdated","$onBeforeUnmount","$onUnmounted","_ref4","_ref5","startUpdateQueue","_this4","__requestAnimationFrameId","__updateIsPending","newVNode","resolvers","resolver","_this5","_this6","__destroyed","setState","_this7","mountMethod","registerComponent","unregisterComponent","componentString","componentId","callbackCreateName","item","scripts","SW","registrations","register","scope","serviceWorker","reg","unregister","registration","storeParams","originalState","actions","propsQueue","gettersDependencies","gettersCallbacks","getterKey","getGetterValue","addGetterCallback","__removeCallback","stateKey","callbacks","removeGetterCallback","getterValue","addCallback","deps","dep","addGetterDependencies","__callback","actionName","isCapacitor","StatusBar","Statusbar","setTextColor","styleLightContent","styleDefault","setStyle","setBackgroundColor","backgroundColorByHexString","isVisible","getInfo","info","visible","overlaysWebView","overlays","setOverlaysWebView","overlay","statusbar","isCordova","isCap","scrollTopOnClick","iosOverlaysWebView","iosTextColor","androidOverlaysWebView","androidTextColor","iosBackgroundColor","androidBackgroundColor","iosSwipeBackAnimateShadow","iosSwipeBackAnimateOpacity","iosSwipeBackActiveArea","iosSwipeBackThreshold","mdSwipeBackAnimateShadow","mdSwipeBackAnimateOpacity","mdSwipeBackActiveArea","mdSwipeBackThreshold","auroraSwipeBackAnimateShadow","auroraSwipeBackAnimateOpacity","auroraSwipeBackActiveArea","auroraSwipeBackThreshold","iosPageLoadDelay","mdPageLoadDelay","auroraPageLoadDelay","$popoverView","$popupView","$panelView","$viewsEl","getCurrentView","Navbar","$innerEl","needCenterTitle","needLeftTitle","iosCenterTitle","currLeft","right","subnavbar","noLeft","noRight","leftWidth","rightWidth","titleWidth","navbarStyles","navbarInnerWidth","paddingLeft","paddingRight","isPrevious","sliding","requiredLeft","titleLeftOffset","titleRightOffset","activeNavbarBackLink","titleLeft","hideStatusbar","hideOnlyCurrent","isDynamic","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","calcScrollableDistance","f7ScrollableDistance","snapLargeNavbar","snapTransparentNavbar","previousCollapseProgress","collapseProgress","handleScroll","isLargeTransparent","scrollableDistance","previousCollapseWasInMiddle","handleLargeNavbarCollapse","isHidden","notTransparent","handleNavbarTransparent","showOnPageScrollEnd","showOnPageScrollTop","handeTouchStart","f7DetachNavbarScrollHandlers","scrollTopOnTitleClick","mdCenterTitle","auroraCenterTitle","hideOnPageScroll","collapseLargeTitleOnScroll","pageBeforeRemove","pageBeforeIn","pageReinit","pageInit","needCollapseOnScrollHandler","needTransparentOnScroll","needHideOnScrollHandler","tabShow","clickedData","$pageContentEl","Toolbar","setHighlight","tabbarEl","$tabbarEl","$highlightEl","tabLinksCount","highlightWidth","highlightTranslate","$activeLink","toolbar","initToolbarOnScroll","toolbarHidden","$toolbarEl","f7ScrollToolbarHandler","tabbar","subnavbarEl","TouchRipple","ripple","_$el$0$getBoundingCli","center","diameter","isInset","insetElements","rippleTransform","scale","$rippleWaveEl","shouldBeRemoved","out","removeTimeout","openedModals","dialogsQueue","Modal","opened","$containerEl","containerEl","onOpen","onClose","animateModal","pushToQueue","$backdropEl","queueDialogs","openedModal","$modalParentEl","wasInDom","needToHideBackdrop","popupEl","popupInstance","closeByBackdropClick","backdrop","backdropEl","_Modal","CustomModal","extendedParams","customModal","handleClick","log","F7WelcomescreenPlugin","picture"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"bundle.js","mappings":"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","sources":["webpack://f7-welcomescreen-demo/./node_modules/f7-welcomescreen/dist/index.js","webpack://f7-welcomescreen-demo/webpack/bootstrap","webpack://f7-welcomescreen-demo/webpack/runtime/compat get default export","webpack://f7-welcomescreen-demo/webpack/runtime/define property getters","webpack://f7-welcomescreen-demo/webpack/runtime/hasOwnProperty shorthand","webpack://f7-welcomescreen-demo/webpack/runtime/make namespace object","webpack://f7-welcomescreen-demo/./node_modules/ssr-window/ssr-window.esm.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/shared/utils.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/shared/get-support.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/shared/get-device.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/shared/events-class.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/shared/class.js","webpack://f7-welcomescreen-demo/./node_modules/dom7/dom7.esm.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/shared/dom7.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/shared/constructor-methods.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/shared/modal-methods.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/components/app/load-module.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/components/app/app-class.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/device/device.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/support/support.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/utils/utils.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/resize/resize.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/shared/request.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/request/request.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/touch/touch.js","webpack://f7-welcomescreen-demo/./node_modules/path-to-regexp/dist.es2015/index.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/shared/history.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/router/redirect.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/router/process-route-queue.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/router/app-router-check.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/router/async-component.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/router/navigate.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/router/back.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/router/router-class.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/router/swipe-back.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/router/tab.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/router/modal.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/router/clear-previous-history.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/router/router.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/components/view/view-class.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/components/view/resizable-view.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/clicks/clicks.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/router/component-loader.js","webpack://f7-welcomescreen-demo/./node_modules/htm/dist/htm.module.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/$h.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/snabbdom/vnode.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/snabbdom/is.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/snabbdom/h.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/custom-components.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/vdom.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/snabbdom/htmldomapi.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/snabbdom/snabbdom.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/snabbdom/modules/attributes.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/snabbdom/modules/props.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/snabbdom/modules/style.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/eventslisteners.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/patch.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/component-class.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/component.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/component/parse-component.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/history/history.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/service-worker/service-worker.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/store/create-store.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/modules/store/store.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/components/statusbar/statusbar.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/components/view/view.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/components/navbar/navbar.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/components/toolbar/toolbar.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/components/subnavbar/subnavbar.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/components/touch-ripple/touch-ripple-class.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/components/touch-ripple/touch-ripple.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/components/modal/modal-class.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/components/modal/custom-modal-class.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/components/modal/modal.js","webpack://f7-welcomescreen-demo/./node_modules/framework7/esm/framework7.js","webpack://f7-welcomescreen-demo/./src/index.js"],"sourcesContent":["define(\"F7WelcomescreenPlugin\",[],(()=>(()=>{\"use strict\";var __webpack_modules__={676:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{let t7ctx;__webpack_require__.d(__webpack_exports__,{Z:()=>__WEBPACK_DEFAULT_EXPORT__}),t7ctx=\"undefined\"!=typeof window?window:void 0!==__webpack_require__.g?__webpack_require__.g:void 0;const Template7Context=t7ctx,Template7Utils={quoteSingleRexExp:new RegExp(\"'\",\"g\"),quoteDoubleRexExp:new RegExp('\"',\"g\"),isFunction:e=>\"function\"==typeof e,escape:(e=\"\")=>e.replace(/&/g,\"&\").replace(//g,\">\").replace(/\"/g,\""\").replace(/'/g,\"'\"),helperToSlices(e){const{quoteDoubleRexExp:t,quoteSingleRexExp:i}=Template7Utils,r=e.replace(/[{}#}]/g,\"\").trim().split(\" \"),s=[];let n,a,o;for(a=0;a=0){n=o,s.push(d);break}n&&(a=n)}else if(d.indexOf(\"=\")>0){const c=d.split(\"=\"),p=c[0];let u=c[1];if(e||(e=0===u.indexOf('\"')?t:i,l=0===u.indexOf('\"')?'\"':\"'\"),2!==u.match(e).length){for(n=0,o=a+1;o=0){n=o;break}n&&(a=n)}const f=[p,u.replace(e,\"\")];s.push(f)}else s.push(d)}return s},stringToBlocks(e){const t=[];let i,r;if(!e)return[];const s=e.split(/({{[^{^}]*}})/);for(i=0;i=0)continue;if(e=e.replace(/{{([#/])*([ ])*/,\"{{$1\").replace(/([ ])*}}/,\"}}\"),e.indexOf(\"{#\")<0&&e.indexOf(\" \")<0&&e.indexOf(\"else\")<0){t.push({type:\"variable\",contextName:e.replace(/[{}]/g,\"\")});continue}const n=Template7Utils.helperToSlices(e);let a=n[0];const o=\">\"===a,l=[],d={};for(r=1;r=0){let e,n=\"\",o=\"\",c=0,p=!1,u=!1,f=0;for(r=i+1;r=0&&(f+=1),s[r].indexOf(\"{{/\")>=0&&(f-=1),s[r].indexOf(`{{#${a}`)>=0)n+=s[r],u&&(o+=s[r]),c+=1;else if(s[r].indexOf(`{{/${a}`)>=0){if(!(c>0)){e=r,p=!0;break}c-=1,n+=s[r],u&&(o+=s[r])}else s[r].indexOf(\"else\")>=0&&0===f?u=!0:(u||(n+=s[r]),u&&(o+=s[r]));p&&(e&&(i=e),\"raw\"===a?t.push({type:\"plain\",content:n}):t.push({type:\"helper\",helperName:a,contextName:l,content:n,inverseContent:o,hash:d}))}else e.indexOf(\" \")>0&&(o&&(a=\"_partial\",l[0]&&(0===l[0].indexOf(\"[\")?l[0]=l[0].replace(/[[\\]]/g,\"\"):l[0]=`\"${l[0].replace(/\"|'/g,\"\")}\"`)),t.push({type:\"helper\",helperName:a,contextName:l,hash:d}))}}return t},parseJsVariable:(e,t,i)=>e.split(/([+ \\-*/^()&=|<>!%:?])/g).reduce(((e,r)=>{if(!r)return e;if(r.indexOf(t)<0)return e.push(r),e;if(!i)return e.push(JSON.stringify(\"\")),e;let s=i;return r.indexOf(`${t}.`)>=0&&r.split(`${t}.`)[1].split(\".\").forEach((e=>{s=e in s?s[e]:void 0})),(\"string\"==typeof s||Array.isArray(s)||s.constructor&&s.constructor===Object)&&(s=JSON.stringify(s)),void 0===s&&(s=\"undefined\"),e.push(s),e}),[]).join(\"\"),parseJsParents:(e,t)=>e.split(/([+ \\-*^()&=|<>!%:?])/g).reduce(((e,i)=>{if(!i)return e;if(i.indexOf(\"../\")<0)return e.push(i),e;if(!t||0===t.length)return e.push(JSON.stringify(\"\")),e;const r=i.split(\"../\").length-1;let s=r>t.length?t[t.length-1]:t[r-1];return i.replace(/..\\//g,\"\").split(\".\").forEach((e=>{s=void 0!==s[e]?s[e]:\"undefined\"})),!1===s||!0===s?(e.push(JSON.stringify(s)),e):null===s||\"undefined\"===s?(e.push(JSON.stringify(\"\")),e):(e.push(JSON.stringify(s)),e)}),[]).join(\"\"),getCompileVar(e,t,i=\"data_1\"){let r,s,n=t,a=0;0===e.indexOf(\"../\")?(a=e.split(\"../\").length-1,s=n.split(\"_\")[1]-a,n=`ctx_${s>=1?s:1}`,r=e.split(\"../\")[a].split(\".\")):0===e.indexOf(\"@global\")?(n=\"Template7.global\",r=e.split(\"@global.\")[1].split(\".\")):0===e.indexOf(\"@root\")?(n=\"root\",r=e.split(\"@root.\")[1].split(\".\")):r=e.split(\".\");for(let e=0;e0&&(t=s),e>0?n+=`[(data_${t} && data_${t}.${o.replace(\"@\",\"\")})]`:n=`(data_${t} && data_${t}.${o.replace(\"@\",\"\")})`}else(Number.isFinite?Number.isFinite(o):Template7Context.isFinite(o))?n+=`[${o}]`:\"this\"===o||o.indexOf(\"this.\")>=0||o.indexOf(\"this[\")>=0||o.indexOf(\"this(\")>=0?n=o.replace(\"this\",t):n+=`.${o}`}return n},getCompiledArguments(e,t,i){const r=[];for(let s=0;s{i[e]=t.hash[e]})),r.compiled(i,t.data,t.root))},escape(e){if(null==e)return\"\";if(\"string\"!=typeof e)throw new Error('Template7: Passed context to \"escape\" helper should be a string');return Template7Utils.escape(e)},if(e,t){let i=e;return Template7Utils.isFunction(i)&&(i=i.call(this)),i?t.fn(this,t.data):t.inverse(this,t.data)},unless(e,t){let i=e;return Template7Utils.isFunction(i)&&(i=i.call(this)),i?t.inverse(this,t.data):t.fn(this,t.data)},each(e,t){let i=e,r=\"\",s=0;if(Template7Utils.isFunction(i)&&(i=i.call(this)),Array.isArray(i)){for(t.hash.reverse&&(i=i.reverse()),s=0;s0?r:t.inverse(this)},with(e,t){let i=e;return Template7Utils.isFunction(i)&&(i=e.call(this)),t.fn(i)},join(e,t){let i=e;return Template7Utils.isFunction(i)&&(i=i.call(this)),i.join(t.hash.delimiter||t.hash.delimeter)},js(expression,options){const data=options.data;let func,execute=expression;return\"index first last key\".split(\" \").forEach((e=>{if(void 0!==data[e]){const t=new RegExp(`this.@${e}`,\"g\"),i=new RegExp(`@${e}`,\"g\");execute=execute.replace(t,JSON.stringify(data[e])).replace(i,JSON.stringify(data[e]))}})),options.root&&execute.indexOf(\"@root\")>=0&&(execute=Template7Utils.parseJsVariable(execute,\"@root\",options.root)),execute.indexOf(\"@global\")>=0&&(execute=Template7Utils.parseJsVariable(execute,\"@global\",Template7Context.Template7.global)),execute.indexOf(\"../\")>=0&&(execute=Template7Utils.parseJsParents(execute,options.parents)),func=execute.indexOf(\"return\")>=0?`(function(){${execute}})`:`(function(){return (${execute})})`,eval(func).call(this)},js_if(expression,options){const data=options.data;let func,execute=expression;\"index first last key\".split(\" \").forEach((e=>{if(void 0!==data[e]){const t=new RegExp(`this.@${e}`,\"g\"),i=new RegExp(`@${e}`,\"g\");execute=execute.replace(t,JSON.stringify(data[e])).replace(i,JSON.stringify(data[e]))}})),options.root&&execute.indexOf(\"@root\")>=0&&(execute=Template7Utils.parseJsVariable(execute,\"@root\",options.root)),execute.indexOf(\"@global\")>=0&&(execute=Template7Utils.parseJsVariable(execute,\"@global\",Template7Context.Template7.global)),execute.indexOf(\"../\")>=0&&(execute=Template7Utils.parseJsParents(execute,options.parents)),func=execute.indexOf(\"return\")>=0?`(function(){${execute}})`:`(function(){return (${execute})})`;const condition=eval(func).call(this);return condition?options.fn(this,options.data):options.inverse(this,options.data)}};Template7Helpers.js_compare=Template7Helpers.js_if;const Template7Options={},Template7Partials={};class Template7Class{constructor(e){this.template=e}compile(template=this.template,depth=1){const t=this;if(t.compiled)return t.compiled;if(\"string\"!=typeof template)throw new Error(\"Template7: Template must be a string\");const{stringToBlocks,getCompileVar,getCompiledArguments}=Template7Utils,blocks=stringToBlocks(template),ctx=`ctx_${depth}`,data=`data_${depth}`;if(0===blocks.length)return function(){return\"\"};function getCompileFn(e,i){return e.content?t.compile(e.content,i):function(){return\"\"}}function getCompileInverse(e,i){return e.inverseContent?t.compile(e.inverseContent,i):function(){return\"\"}}let resultString=\"\",i;for(resultString+=1===depth?`(function (${ctx}, ${data}, root) {\\n`:`(function (${ctx}, ${data}) {\\n`,1===depth&&(resultString+=\"function isArray(arr){return Array.isArray(arr);}\\n\",resultString+=\"function isFunction(func){return (typeof func === 'function');}\\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',resultString+=\"root = root || ctx_1 || {};\\n\"),resultString+=\"var r = '';\\n\",i=0;i=1;i-=1)t+=`, ctx_${i}`;i=`[${t}]`}else i=`[${ctx}]`;if(0===e.helperName.indexOf(\"[\")&&(e.helperName=getCompileVar(e.helperName.replace(/[[\\]]/g,\"\"),ctx,data),s=!0),s||e.helperName in Template7Helpers)r=getCompiledArguments(e.contextName,ctx,data),resultString+=`r += (Template7Helpers${s?`[${e.helperName}]`:`.${e.helperName}`}).call(${ctx}, ${r&&`${r}, `}{hash:${JSON.stringify(e.hash)}, data: ${data} || {}, fn: ${getCompileFn(e,depth+1)}, inverse: ${getCompileInverse(e,depth+1)}, root: root, parents: ${i}});`;else{if(e.contextName.length>0)throw new Error(`Template7: Missing helper: \"${e.helperName}\"`);t=getCompileVar(e.helperName,ctx,data),resultString+=`if (${t}) {`,resultString+=`if (isArray(${t})) {`,resultString+=`r += (Template7Helpers.each).call(${ctx}, ${t}, {hash:${JSON.stringify(e.hash)}, data: ${data} || {}, fn: ${getCompileFn(e,depth+1)}, inverse: ${getCompileInverse(e,depth+1)}, root: root, parents: ${i}});`,resultString+=\"}else {\",resultString+=`r += (Template7Helpers.with).call(${ctx}, ${t}, {hash:${JSON.stringify(e.hash)}, data: ${data} || {}, fn: ${getCompileFn(e,depth+1)}, inverse: ${getCompileInverse(e,depth+1)}, root: root, parents: ${i}});`,resultString+=\"}}\"}}}return resultString+=\"\\nreturn r;})\",1===depth?(t.compiled=eval(resultString),t.compiled):resultString}static get options(){return Template7Options}static get partials(){return Template7Partials}static get helpers(){return Template7Helpers}}function Template7(...e){const[t,i]=e;if(2===e.length){let e=new Template7Class(t);const r=e.compile()(i);return e=null,r}return new Template7Class(t)}Template7.registerHelper=function(e,t){Template7Class.helpers[e]=t},Template7.unregisterHelper=function(e){Template7Class.helpers[e]=void 0,delete Template7Class.helpers[e]},Template7.registerPartial=function(e,t){Template7Class.partials[e]={template:t}},Template7.unregisterPartial=function(e){Template7Class.partials[e]&&(Template7Class.partials[e]=void 0,delete Template7Class.partials[e])},Template7.compile=function(e,t){return new Template7Class(e,t).compile()},Template7.options=Template7Class.options,Template7.helpers=Template7Class.helpers,Template7.partials=Template7Class.partials;const __WEBPACK_DEFAULT_EXPORT__=Template7}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var i=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](i,i.exports,__webpack_require__),i.exports}__webpack_require__.d=(e,t)=>{for(var i in t)__webpack_require__.o(t,i)&&!__webpack_require__.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},__webpack_require__.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(e){if(\"object\"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var __webpack_exports__={};return(()=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>J});var e=__webpack_require__(676);function t(e){return null!==e&&\"object\"==typeof e&&\"constructor\"in e&&e.constructor===Object}function i(e,r){void 0===e&&(e={}),void 0===r&&(r={}),Object.keys(r).forEach((function(s){void 0===e[s]?e[s]=r[s]:t(r[s])&&t(e[s])&&Object.keys(r[s]).length>0&&i(e[s],r[s])}))}var r={body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:\"\"},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:\"\",host:\"\",hostname:\"\",href:\"\",origin:\"\",pathname:\"\",protocol:\"\",search:\"\"}};function s(){var e=\"undefined\"!=typeof document?document:{};return i(e,r),e}var n={document:r,navigator:{userAgent:\"\"},location:{hash:\"\",host:\"\",hostname:\"\",href:\"\",origin:\"\",pathname:\"\",protocol:\"\",search:\"\"},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return\"\"}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(e){return\"undefined\"==typeof setTimeout?(e(),null):setTimeout(e,0)},cancelAnimationFrame:function(e){\"undefined\"!=typeof setTimeout&&clearTimeout(e)}};function a(){var e=\"undefined\"!=typeof window?window:{};return i(e,n),e}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function d(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function c(e,t,i){return(c=d()?Reflect.construct:function(e,t,i){var r=[null];r.push.apply(r,t);var s=new(Function.bind.apply(e,r));return i&&l(s,i.prototype),s}).apply(null,arguments)}function p(e){var t=\"function\"==typeof Map?new Map:void 0;return(p=function(e){if(null===e||(i=e,-1===Function.toString.call(i).indexOf(\"[native code]\")))return e;var i;if(\"function\"!=typeof e)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return c(e,arguments,o(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),l(r,e)})(e)}var u=function(e){var t,i;function r(t){var i,r,s;return r=function(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}(i=e.call.apply(e,[this].concat(t))||this),s=r.__proto__,Object.defineProperty(r,\"__proto__\",{get:function(){return s},set:function(e){s.__proto__=e}}),i}return i=e,(t=r).prototype=Object.create(i.prototype),t.prototype.constructor=t,t.__proto__=i,r}(p(Array));function f(e){void 0===e&&(e=[]);var t=[];return e.forEach((function(e){Array.isArray(e)?t.push.apply(t,f(e)):t.push(e)})),t}function h(e,t){return Array.prototype.filter.call(e,t)}function v(e,t){var i=a(),r=s(),n=[];if(!t&&e instanceof u)return e;if(!e)return new u(n);if(\"string\"==typeof e){var o=e.trim();if(o.indexOf(\"<\")>=0&&o.indexOf(\">\")>=0){var l=\"div\";0===o.indexOf(\"0})).length>0},toggleClass:function(){for(var e=arguments.length,t=new Array(e),i=0;i=0;f-=1){var h=u[f];n&&h.listener===n||n&&h.listener&&h.listener.dom7proxy&&h.listener.dom7proxy===n?(p.removeEventListener(d,h.proxyListener,a),u.splice(f,1)):n||(p.removeEventListener(d,h.proxyListener,a),u.splice(f,1))}}return this},trigger:function(){for(var e=a(),t=arguments.length,i=new Array(t),r=0;r0})),c.dispatchEvent(p),c.dom7EventData=[],delete c.dom7EventData}}return this},transitionEnd:function(e){var t=this;return e&&t.on(\"transitionend\",(function i(r){r.target===this&&(e.call(this,r),t.off(\"transitionend\",i))})),this},outerWidth:function(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetWidth+parseFloat(t.getPropertyValue(\"margin-right\"))+parseFloat(t.getPropertyValue(\"margin-left\"))}return this[0].offsetWidth}return null},outerHeight:function(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetHeight+parseFloat(t.getPropertyValue(\"margin-top\"))+parseFloat(t.getPropertyValue(\"margin-bottom\"))}return this[0].offsetHeight}return null},styles:function(){var e=a();return this[0]?e.getComputedStyle(this[0],null):{}},offset:function(){if(this.length>0){var e=a(),t=s(),i=this[0],r=i.getBoundingClientRect(),n=t.body,o=i.clientTop||n.clientTop||0,l=i.clientLeft||n.clientLeft||0,d=i===e?e.scrollY:i.scrollTop,c=i===e?e.scrollX:i.scrollLeft;return{top:r.top+d-o,left:r.left+c-l}}return null},css:function(e,t){var i,r=a();if(1===arguments.length){if(\"string\"!=typeof e){for(i=0;it-1)return v([]);if(e<0){var i=t+e;return v(i<0?[]:[this[i]])}return v([this[e]])},append:function(){for(var e,t=s(),i=0;i=0;i-=1)this[t].insertBefore(n.childNodes[i],this[t].childNodes[0])}else if(e instanceof u)for(i=0;i0?e?this[0].nextElementSibling&&v(this[0].nextElementSibling).is(e)?v([this[0].nextElementSibling]):v([]):this[0].nextElementSibling?v([this[0].nextElementSibling]):v([]):v([])},nextAll:function(e){var t=[],i=this[0];if(!i)return v([]);for(;i.nextElementSibling;){var r=i.nextElementSibling;e?v(r).is(e)&&t.push(r):t.push(r),i=r}return v(t)},prev:function(e){if(this.length>0){var t=this[0];return e?t.previousElementSibling&&v(t.previousElementSibling).is(e)?v([t.previousElementSibling]):v([]):t.previousElementSibling?v([t.previousElementSibling]):v([])}return v([])},prevAll:function(e){var t=[],i=this[0];if(!i)return v([]);for(;i.previousElementSibling;){var r=i.previousElementSibling;e?v(r).is(e)&&t.push(r):t.push(r),i=r}return v(t)},parent:function(e){for(var t=[],i=0;i=0,observer:\"MutationObserver\"in e||\"WebkitMutationObserver\"in e,passiveListener:function(){var t=!1;try{var i=Object.defineProperty({},\"passive\",{get:function(){t=!0}});e.addEventListener(\"testPassiveListener\",null,i)}catch(e){}return t}(),gestures:\"ongesturestart\"in e}}()),E}function P(e){return void 0===e&&(e={}),_||(_=function(e){var t=(void 0===e?{}:e).userAgent,i=k(),r=a(),s=r.navigator.platform,n=t||r.navigator.userAgent,o={ios:!1,android:!1},l=r.screen.width,d=r.screen.height,c=n.match(/(Android);?[\\s\\/]+([\\d.]+)?/),p=n.match(/(iPad).*OS\\s([\\d_]+)/),u=n.match(/(iPod)(.*OS\\s([\\d_]+))?/),f=!p&&n.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/),h=\"Win32\"===s,v=\"MacIntel\"===s;return!p&&v&&i.touch&&[\"1024x1366\",\"1366x1024\",\"834x1194\",\"1194x834\",\"834x1112\",\"1112x834\",\"768x1024\",\"1024x768\",\"820x1180\",\"1180x820\",\"810x1080\",\"1080x810\"].indexOf(l+\"x\"+d)>=0&&((p=n.match(/(Version)\\/([\\d.]+)/))||(p=[0,1,\"13_0_0\"]),v=!1),c&&!h&&(o.os=\"android\",o.android=!0),(p||f||u)&&(o.os=\"ios\",o.ios=!0),o}(e)),_}function O(){return M||(M=function(){var e,t=a();return{isEdge:!!t.navigator.userAgent.match(/Edge/g),isSafari:(e=t.navigator.userAgent.toLowerCase(),e.indexOf(\"safari\")>=0&&e.indexOf(\"chrome\")<0&&e.indexOf(\"android\")<0),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent)}}()),M}const L={name:\"resize\",create:function(){var e=this;C(e,{resize:{observer:null,createObserver:function(){e&&!e.destroyed&&e.initialized&&(e.resize.observer=new ResizeObserver((function(t){var i=e.width,r=e.height,s=i,n=r;t.forEach((function(t){var i=t.contentBoxSize,r=t.contentRect,a=t.target;a&&a!==e.el||(s=r?r.width:(i[0]||i).inlineSize,n=r?r.height:(i[0]||i).blockSize)})),s===i&&n===r||e.resize.resizeHandler()})),e.resize.observer.observe(e.el))},removeObserver:function(){e.resize.observer&&e.resize.observer.unobserve&&e.el&&(e.resize.observer.unobserve(e.el),e.resize.observer=null)},resizeHandler:function(){e&&!e.destroyed&&e.initialized&&(e.emit(\"beforeResize\"),e.emit(\"resize\"))},orientationChangeHandler:function(){e&&!e.destroyed&&e.initialized&&e.emit(\"orientationchange\")}}})},on:{init:function(e){var t=a();e.params.resizeObserver&&void 0!==a().ResizeObserver?e.resize.createObserver():(t.addEventListener(\"resize\",e.resize.resizeHandler),t.addEventListener(\"orientationchange\",e.resize.orientationChangeHandler))},destroy:function(e){var t=a();e.resize.removeObserver(),t.removeEventListener(\"resize\",e.resize.resizeHandler),t.removeEventListener(\"orientationchange\",e.resize.orientationChangeHandler)}}};function z(){return(z=Object.assign||function(e){for(var t=1;t0||n.isTouched&&n.isMoved))){o.noSwipingClass&&\"\"!==o.noSwipingClass&&d.target&&d.target.shadowRoot&&e.path&&e.path[0]&&(c=T(e.path[0]));var p=o.noSwipingSelector?o.noSwipingSelector:\".\"+o.noSwipingClass,u=!(!d.target||!d.target.shadowRoot);if(o.noSwiping&&(u?function(e,t){return void 0===t&&(t=this),function t(i){return i&&i!==s()&&i!==a()?(i.assignedSlot&&(i=i.assignedSlot),i.closest(e)||t(i.getRootNode().host)):null}(t)}(p,d.target):c.closest(p)[0]))t.allowClick=!0;else if(!o.swipeHandler||c.closest(o.swipeHandler)[0]){l.currentX=\"touchstart\"===d.type?d.targetTouches[0].pageX:d.pageX,l.currentY=\"touchstart\"===d.type?d.targetTouches[0].pageY:d.pageY;var f=l.currentX,h=l.currentY,v=o.edgeSwipeDetection||o.iOSEdgeSwipeDetection,m=o.edgeSwipeThreshold||o.iOSEdgeSwipeThreshold;if(v&&(f<=m||f>=r.innerWidth-m)){if(\"prevent\"!==v)return;e.preventDefault()}if(C(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),l.startX=f,l.startY=h,n.touchStartTime=b(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,o.threshold>0&&(n.allowThresholdMove=!1),\"touchstart\"!==d.type){var g=!0;c.is(n.focusableElements)&&(g=!1),i.activeElement&&T(i.activeElement).is(n.focusableElements)&&i.activeElement!==c[0]&&i.activeElement.blur();var w=g&&t.allowTouchMove&&o.touchStartPreventDefault;!o.touchStartForcePreventDefault&&!w||c[0].isContentEditable||d.preventDefault()}t.emit(\"touchStart\",d)}}}}function N(e){var t=s(),i=this,r=i.touchEventsData,n=i.params,a=i.touches,o=i.rtlTranslate;if(i.enabled){var l=e;if(l.originalEvent&&(l=l.originalEvent),r.isTouched){if(!r.isTouchEvent||\"touchmove\"===l.type){var d=\"touchmove\"===l.type&&l.targetTouches&&(l.targetTouches[0]||l.changedTouches[0]),c=\"touchmove\"===l.type?d.pageX:l.pageX,p=\"touchmove\"===l.type?d.pageY:l.pageY;if(l.preventedByNestedSwiper)return a.startX=c,void(a.startY=p);if(!i.allowTouchMove)return i.allowClick=!1,void(r.isTouched&&(C(a,{startX:c,startY:p,currentX:c,currentY:p}),r.touchStartTime=b()));if(r.isTouchEvent&&n.touchReleaseOnEdges&&!n.loop)if(i.isVertical()){if(pa.startY&&i.translate>=i.minTranslate())return r.isTouched=!1,void(r.isMoved=!1)}else if(ca.startX&&i.translate>=i.minTranslate())return;if(r.isTouchEvent&&t.activeElement&&l.target===t.activeElement&&T(l.target).is(r.focusableElements))return r.isMoved=!0,void(i.allowClick=!1);if(r.allowTouchCallbacks&&i.emit(\"touchMove\",l),!(l.targetTouches&&l.targetTouches.length>1)){a.currentX=c,a.currentY=p;var u,f=a.currentX-a.startX,h=a.currentY-a.startY;if(!(i.params.threshold&&Math.sqrt(Math.pow(f,2)+Math.pow(h,2))=25&&(u=180*Math.atan2(Math.abs(h),Math.abs(f))/Math.PI,r.isScrolling=i.isHorizontal()?u>n.touchAngle:90-u>n.touchAngle)),r.isScrolling&&i.emit(\"touchMoveOpposite\",l),void 0===r.startMoving&&(a.currentX===a.startX&&a.currentY===a.startY||(r.startMoving=!0)),r.isScrolling)r.isTouched=!1;else if(r.startMoving){i.allowClick=!1,!n.cssMode&&l.cancelable&&l.preventDefault(),n.touchMoveStopPropagation&&!n.nested&&l.stopPropagation(),r.isMoved||(n.loop&&i.loopFix(),r.startTranslate=i.getTranslate(),i.setTransition(0),i.animating&&i.$wrapperEl.trigger(\"webkitTransitionEnd transitionend\"),r.allowMomentumBounce=!1,!n.grabCursor||!0!==i.allowSlideNext&&!0!==i.allowSlidePrev||i.setGrabCursor(!0),i.emit(\"sliderFirstMove\",l)),i.emit(\"sliderMove\",l),r.isMoved=!0;var v=i.isHorizontal()?f:h;a.diff=v,v*=n.touchRatio,o&&(v=-v),i.swipeDirection=v>0?\"prev\":\"next\",r.currentTranslate=v+r.startTranslate;var m=!0,g=n.resistanceRatio;if(n.touchReleaseOnEdges&&(g=0),v>0&&r.currentTranslate>i.minTranslate()?(m=!1,n.resistance&&(r.currentTranslate=i.minTranslate()-1+Math.pow(-i.minTranslate()+r.startTranslate+v,g))):v<0&&r.currentTranslater.startTranslate&&(r.currentTranslate=r.startTranslate),i.allowSlidePrev||i.allowSlideNext||(r.currentTranslate=r.startTranslate),n.threshold>0){if(!(Math.abs(v)>n.threshold||r.allowThresholdMove))return void(r.currentTranslate=r.startTranslate);if(!r.allowThresholdMove)return r.allowThresholdMove=!0,a.startX=a.currentX,a.startY=a.currentY,r.currentTranslate=r.startTranslate,void(a.diff=i.isHorizontal()?a.currentX-a.startX:a.currentY-a.startY)}n.followFinger&&!n.cssMode&&((n.freeMode||n.watchSlidesProgress||n.watchSlidesVisibility)&&(i.updateActiveIndex(),i.updateSlidesClasses()),n.freeMode&&(0===r.velocities.length&&r.velocities.push({position:a[i.isHorizontal()?\"startX\":\"startY\"],time:r.touchStartTime}),r.velocities.push({position:a[i.isHorizontal()?\"currentX\":\"currentY\"],time:b()})),i.updateProgress(r.currentTranslate),i.setTranslate(r.currentTranslate))}}}}else r.startMoving&&r.isScrolling&&i.emit(\"touchMoveOpposite\",l)}}function D(e){var t=this,i=t.touchEventsData,r=t.params,s=t.touches,n=t.rtlTranslate,a=t.$wrapperEl,o=t.slidesGrid,l=t.snapGrid;if(t.enabled){var d=e;if(d.originalEvent&&(d=d.originalEvent),i.allowTouchCallbacks&&t.emit(\"touchEnd\",d),i.allowTouchCallbacks=!1,!i.isTouched)return i.isMoved&&r.grabCursor&&t.setGrabCursor(!1),i.isMoved=!1,void(i.startMoving=!1);r.grabCursor&&i.isMoved&&i.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);var c,p=b(),u=p-i.touchStartTime;if(t.allowClick&&(t.updateClickedSlide(d),t.emit(\"tap click\",d),u<300&&p-i.lastClickTime<300&&t.emit(\"doubleTap doubleClick\",d)),i.lastClickTime=b(),x((function(){t.destroyed||(t.allowClick=!0)})),!i.isTouched||!i.isMoved||!t.swipeDirection||0===s.diff||i.currentTranslate===i.startTranslate)return i.isTouched=!1,i.isMoved=!1,void(i.startMoving=!1);if(i.isTouched=!1,i.isMoved=!1,i.startMoving=!1,c=r.followFinger?n?t.translate:-t.translate:-i.currentTranslate,!r.cssMode)if(r.freeMode){if(c<-t.minTranslate())return void t.slideTo(t.activeIndex);if(c>-t.maxTranslate())return void(t.slides.length1){var f=i.velocities.pop(),h=i.velocities.pop(),v=f.position-h.position,m=f.time-h.time;t.velocity=v/m,t.velocity/=2,Math.abs(t.velocity)150||b()-f.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeModeMomentumVelocityRatio,i.velocities.length=0;var g=1e3*r.freeModeMomentumRatio,w=t.velocity*g,T=t.translate+w;n&&(T=-T);var S,y,C=!1,E=20*Math.abs(t.velocity)*r.freeModeMomentumBounceRatio;if(Tt.minTranslate())r.freeModeMomentumBounce?(T-t.minTranslate()>E&&(T=t.minTranslate()+E),S=t.minTranslate(),C=!0,i.allowMomentumBounce=!0):T=t.minTranslate(),r.loop&&r.centeredSlides&&(y=!0);else if(r.freeModeSticky){for(var _,M=0;M-T){_=M;break}T=-(T=Math.abs(l[_]-T)=r.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}else{for(var O=0,L=t.slidesSizesGrid[0],z=0;z=o[z]&&c=o[z]&&(O=z,L=o[o.length-1]-o[o.length-2])}var I=(c-o[O])/L,$=Or.longSwipesMs){if(!r.longSwipes)return void t.slideTo(t.activeIndex);\"next\"===t.swipeDirection&&(I>=r.longSwipesRatio?t.slideTo(O+$):t.slideTo(O)),\"prev\"===t.swipeDirection&&(I>1-r.longSwipesRatio?t.slideTo(O+$):t.slideTo(O))}else{if(!r.shortSwipes)return void t.slideTo(t.activeIndex);!t.navigation||d.target!==t.navigation.nextEl&&d.target!==t.navigation.prevEl?(\"next\"===t.swipeDirection&&t.slideTo(O+$),\"prev\"===t.swipeDirection&&t.slideTo(O)):d.target===t.navigation.nextEl?t.slideTo(O+$):t.slideTo(O)}}}}function B(){var e=this,t=e.params,i=e.el;if(!i||0!==i.offsetWidth){t.breakpoints&&e.setBreakpoint();var r=e.allowSlideNext,s=e.allowSlidePrev,n=e.snapGrid;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses(),(\"auto\"===t.slidesPerView||t.slidesPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.run(),e.allowSlidePrev=s,e.allowSlideNext=r,e.params.watchOverflow&&n!==e.snapGrid&&e.checkOverflow()}}function G(e){var t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function j(){var e=this,t=e.wrapperEl,i=e.rtlTranslate;if(e.enabled){e.previousTranslate=e.translate,e.isHorizontal()?e.translate=i?t.scrollWidth-t.offsetWidth-t.scrollLeft:-t.scrollLeft:e.translate=-t.scrollTop,-0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();var r=e.maxTranslate()-e.minTranslate();(0===r?0:(e.translate-e.minTranslate())/r)!==e.progress&&e.updateProgress(i?-e.translate:e.translate),e.emit(\"setTranslate\",e.translate,!1)}}var H=!1;function F(){}const V={init:!0,direction:\"horizontal\",touchEventsTarget:\"container\",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!1,nested:!1,createElements:!1,enabled:!0,focusableElements:\"input, select, option, textarea, button, video, label\",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:\"slide\",breakpoints:void 0,breakpointsBase:\"window\",spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:\"column\",slidesPerGroup:1,slidesPerGroupSkip:0,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!1,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:\"swiper-no-swiping\",noSwipingSelector:null,passiveListeners:!0,containerModifierClass:\"swiper-container-\",slideClass:\"swiper-slide\",slideBlankClass:\"swiper-slide-invisible-blank\",slideActiveClass:\"swiper-slide-active\",slideDuplicateActiveClass:\"swiper-slide-duplicate-active\",slideVisibleClass:\"swiper-slide-visible\",slideDuplicateClass:\"swiper-slide-duplicate\",slideNextClass:\"swiper-slide-next\",slideDuplicateNextClass:\"swiper-slide-duplicate-next\",slidePrevClass:\"swiper-slide-prev\",slideDuplicatePrevClass:\"swiper-slide-duplicate-prev\",wrapperClass:\"swiper-wrapper\",runCallbacksOnInit:!0,_emitClasses:!1};function R(e,t){for(var i=0;i=0&&t.eventsAnyListeners.splice(i,1),t},off:function(e,t){var i=this;return i.eventsListeners?(e.split(\" \").forEach((function(e){void 0===t?i.eventsListeners[e]=[]:i.eventsListeners[e]&&i.eventsListeners[e].forEach((function(r,s){(r===t||r.__emitterProxy&&r.__emitterProxy===t)&&i.eventsListeners[e].splice(s,1)}))})),i):i},emit:function(){var e,t,i,r=this;if(!r.eventsListeners)return r;for(var s=arguments.length,n=new Array(s),a=0;a=0&&(T=parseFloat(T.replace(\"%\",\"\"))/100*n),e.virtualSize=-T,a?c.css({marginLeft:\"\",marginBottom:\"\",marginTop:\"\"}):c.css({marginRight:\"\",marginBottom:\"\",marginTop:\"\"}),r.slidesPerColumn>1&&(y=Math.floor(p/r.slidesPerColumn)===p/e.params.slidesPerColumn?p:Math.ceil(p/r.slidesPerColumn)*r.slidesPerColumn,\"auto\"!==r.slidesPerView&&\"row\"===r.slidesPerColumnFill&&(y=Math.max(y,r.slidesPerView*r.slidesPerColumn)));for(var _,M,k,P=r.slidesPerColumn,O=y/P,L=Math.floor(p/r.slidesPerColumn),z=0;z1){var I=void 0,$=void 0,N=void 0;if(\"row\"===r.slidesPerColumnFill&&r.slidesPerGroup>1){var D=Math.floor(z/(r.slidesPerGroup*r.slidesPerColumn)),B=z-r.slidesPerColumn*r.slidesPerGroup*D,G=0===D?r.slidesPerGroup:Math.min(Math.ceil((p-D*P*r.slidesPerGroup)/P),r.slidesPerGroup);I=($=B-(N=Math.floor(B/G))*G+D*r.slidesPerGroup)+N*y/P,A.css({\"-webkit-box-ordinal-group\":I,\"-moz-box-ordinal-group\":I,\"-ms-flex-order\":I,\"-webkit-order\":I,order:I})}else\"column\"===r.slidesPerColumnFill?(N=z-($=Math.floor(z/P))*P,($>L||$===L&&N===P-1)&&(N+=1)>=P&&(N=0,$+=1)):$=z-(N=Math.floor(z/O))*O;A.css(t(\"margin-top\"),0!==N?r.spaceBetween&&r.spaceBetween+\"px\":\"\")}if(\"none\"!==A.css(\"display\")){if(\"auto\"===r.slidesPerView){var j=getComputedStyle(A[0]),H=A[0].style.transform,F=A[0].style.webkitTransform;if(H&&(A[0].style.transform=\"none\"),F&&(A[0].style.webkitTransform=\"none\"),r.roundLengths)E=e.isHorizontal()?A.outerWidth(!0):A.outerHeight(!0);else{var V=i(j,\"width\"),R=i(j,\"padding-left\"),W=i(j,\"padding-right\"),q=i(j,\"margin-left\"),X=i(j,\"margin-right\"),Y=j.getPropertyValue(\"box-sizing\");if(Y&&\"border-box\"===Y)E=V+q+X;else{var U=A[0],J=U.clientWidth;E=V+R+W+q+X+(U.offsetWidth-J)}}H&&(A[0].style.transform=H),F&&(A[0].style.webkitTransform=F),r.roundLengths&&(E=Math.floor(E))}else E=(n-(r.slidesPerView-1)*T)/r.slidesPerView,r.roundLengths&&(E=Math.floor(E)),c[z]&&(c[z].style[t(\"width\")]=E+\"px\");c[z]&&(c[z].swiperSlideSize=E),h.push(E),r.centeredSlides?(x=x+E/2+b/2+T,0===b&&0!==z&&(x=x-n/2-T),0===z&&(x=x-n/2-T),Math.abs(x)<.001&&(x=0),r.roundLengths&&(x=Math.floor(x)),S%r.slidesPerGroup==0&&u.push(x),f.push(x)):(r.roundLengths&&(x=Math.floor(x)),(S-Math.min(e.params.slidesPerGroupSkip,S))%e.params.slidesPerGroup==0&&u.push(x),f.push(x),x=x+E+T),e.virtualSize+=E+T,b=E,S+=1}}if(e.virtualSize=Math.max(e.virtualSize,n)+m,a&&o&&(\"slide\"===r.effect||\"coverflow\"===r.effect)&&s.css({width:e.virtualSize+r.spaceBetween+\"px\"}),r.setWrapperSize&&s.css(((M={})[t(\"width\")]=e.virtualSize+r.spaceBetween+\"px\",M)),r.slidesPerColumn>1&&(e.virtualSize=(E+r.spaceBetween)*y,e.virtualSize=Math.ceil(e.virtualSize/r.slidesPerColumn)-r.spaceBetween,s.css(((k={})[t(\"width\")]=e.virtualSize+r.spaceBetween+\"px\",k)),r.centeredSlides)){_=[];for(var K=0;K1&&u.push(e.virtualSize-n)}if(0===u.length&&(u=[0]),0!==r.spaceBetween){var te,ie=e.isHorizontal()&&a?\"marginLeft\":t(\"marginRight\");c.filter((function(e,t){return!r.cssMode||t!==c.length-1})).css(((te={})[ie]=T+\"px\",te))}if(r.centeredSlides&&r.centeredSlidesBounds){var re=0;h.forEach((function(e){re+=e+(r.spaceBetween?r.spaceBetween:0)}));var se=(re-=r.spaceBetween)-n;u=u.map((function(e){return e<0?-v:e>se?se+m:e}))}if(r.centerInsufficientSlides){var ne=0;if(h.forEach((function(e){ne+=e+(r.spaceBetween?r.spaceBetween:0)})),(ne-=r.spaceBetween)1)if(i.params.centeredSlides)i.visibleSlides.each((function(e){r.push(e)}));else for(t=0;ti.slides.length&&!s)break;r.push(a(o))}else r.push(a(i.activeIndex));for(t=0;tn?l:n}n&&i.$wrapperEl.css(\"height\",n+\"px\")},updateSlidesOffset:function(){for(var e=this.slides,t=0;t=0&&d1&&c<=t.size||d<=0&&c>=t.size)&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(a),r.eq(a).addClass(i.slideVisibleClass))}o.progress=s?-l:l}t.visibleSlides=T(t.visibleSlides)}},updateProgress:function(e){var t=this;if(void 0===e){var i=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*i||0}var r=t.params,s=t.maxTranslate()-t.minTranslate(),n=t.progress,a=t.isBeginning,o=t.isEnd,l=a,d=o;0===s?(n=0,a=!0,o=!0):(a=(n=(e-t.minTranslate())/s)<=0,o=n>=1),C(t,{progress:n,isBeginning:a,isEnd:o}),(r.watchSlidesProgress||r.watchSlidesVisibility||r.centeredSlides&&r.autoHeight)&&t.updateSlidesProgress(e),a&&!l&&t.emit(\"reachBeginning toEdge\"),o&&!d&&t.emit(\"reachEnd toEdge\"),(l&&!a||d&&!o)&&t.emit(\"fromEdge\"),t.emit(\"progress\",n)},updateSlidesClasses:function(){var e,t=this,i=t.slides,r=t.params,s=t.$wrapperEl,n=t.activeIndex,a=t.realIndex,o=t.virtual&&r.virtual.enabled;i.removeClass(r.slideActiveClass+\" \"+r.slideNextClass+\" \"+r.slidePrevClass+\" \"+r.slideDuplicateActiveClass+\" \"+r.slideDuplicateNextClass+\" \"+r.slideDuplicatePrevClass),(e=o?t.$wrapperEl.find(\".\"+r.slideClass+'[data-swiper-slide-index=\"'+n+'\"]'):i.eq(n)).addClass(r.slideActiveClass),r.loop&&(e.hasClass(r.slideDuplicateClass)?s.children(\".\"+r.slideClass+\":not(.\"+r.slideDuplicateClass+')[data-swiper-slide-index=\"'+a+'\"]').addClass(r.slideDuplicateActiveClass):s.children(\".\"+r.slideClass+\".\"+r.slideDuplicateClass+'[data-swiper-slide-index=\"'+a+'\"]').addClass(r.slideDuplicateActiveClass));var l=e.nextAll(\".\"+r.slideClass).eq(0).addClass(r.slideNextClass);r.loop&&0===l.length&&(l=i.eq(0)).addClass(r.slideNextClass);var d=e.prevAll(\".\"+r.slideClass).eq(0).addClass(r.slidePrevClass);r.loop&&0===d.length&&(d=i.eq(-1)).addClass(r.slidePrevClass),r.loop&&(l.hasClass(r.slideDuplicateClass)?s.children(\".\"+r.slideClass+\":not(.\"+r.slideDuplicateClass+')[data-swiper-slide-index=\"'+l.attr(\"data-swiper-slide-index\")+'\"]').addClass(r.slideDuplicateNextClass):s.children(\".\"+r.slideClass+\".\"+r.slideDuplicateClass+'[data-swiper-slide-index=\"'+l.attr(\"data-swiper-slide-index\")+'\"]').addClass(r.slideDuplicateNextClass),d.hasClass(r.slideDuplicateClass)?s.children(\".\"+r.slideClass+\":not(.\"+r.slideDuplicateClass+')[data-swiper-slide-index=\"'+d.attr(\"data-swiper-slide-index\")+'\"]').addClass(r.slideDuplicatePrevClass):s.children(\".\"+r.slideClass+\".\"+r.slideDuplicateClass+'[data-swiper-slide-index=\"'+d.attr(\"data-swiper-slide-index\")+'\"]').addClass(r.slideDuplicatePrevClass)),t.emitSlidesClasses()},updateActiveIndex:function(e){var t,i=this,r=i.rtlTranslate?i.translate:-i.translate,s=i.slidesGrid,n=i.snapGrid,a=i.params,o=i.activeIndex,l=i.realIndex,d=i.snapIndex,c=e;if(void 0===c){for(var p=0;p=s[p]&&r=s[p]&&r=s[p]&&(c=p);a.normalizeSlideIndex&&(c<0||void 0===c)&&(c=0)}if(n.indexOf(r)>=0)t=n.indexOf(r);else{var u=Math.min(a.slidesPerGroupSkip,c);t=u+Math.floor((c-u)/a.slidesPerGroup)}if(t>=n.length&&(t=n.length-1),c!==o){var f=parseInt(i.slides.eq(c).attr(\"data-swiper-slide-index\")||c,10);C(i,{snapIndex:t,realIndex:f,previousIndex:o,activeIndex:c}),i.emit(\"activeIndexChange\"),i.emit(\"snapIndexChange\"),l!==f&&i.emit(\"realIndexChange\"),(i.initialized||i.params.runCallbacksOnInit)&&i.emit(\"slideChange\")}else t!==d&&(i.snapIndex=t,i.emit(\"snapIndexChange\"))},updateClickedSlide:function(e){var t,i=this,r=i.params,s=T(e.target).closest(\".\"+r.slideClass)[0],n=!1;if(s)for(var a=0;a6&&(r=r.split(\", \").map((function(e){return e.replace(\",\",\".\")})).join(\", \")),s=new n.WebKitCSSMatrix(\"none\"===r?\"\":r)):i=(s=o.MozTransform||o.OTransform||o.MsTransform||o.msTransform||o.transform||o.getPropertyValue(\"transform\").replace(\"translate(\",\"matrix(1, 0, 0, 1,\")).toString().split(\",\"),\"x\"===t&&(r=n.WebKitCSSMatrix?s.m41:16===i.length?parseFloat(i[12]):parseFloat(i[4])),\"y\"===t&&(r=n.WebKitCSSMatrix?s.m42:16===i.length?parseFloat(i[13]):parseFloat(i[5])),r||0}(n[0],e);return r&&(o=-o),o||0},setTranslate:function(e,t){var i=this,r=i.rtlTranslate,s=i.params,n=i.$wrapperEl,a=i.wrapperEl,o=i.progress,l=0,d=0;i.isHorizontal()?l=r?-e:e:d=e,s.roundLengths&&(l=Math.floor(l),d=Math.floor(d)),s.cssMode?a[i.isHorizontal()?\"scrollLeft\":\"scrollTop\"]=i.isHorizontal()?-l:-d:s.virtualTranslate||n.transform(\"translate3d(\"+l+\"px, \"+d+\"px, 0px)\"),i.previousTranslate=i.translate,i.translate=i.isHorizontal()?l:d;var c=i.maxTranslate()-i.minTranslate();(0===c?0:(e-i.minTranslate())/c)!==o&&i.updateProgress(e),i.emit(\"setTranslate\",i.translate,t)},minTranslate:function(){return-this.snapGrid[0]},maxTranslate:function(){return-this.snapGrid[this.snapGrid.length-1]},translateTo:function(e,t,i,r,s){void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===i&&(i=!0),void 0===r&&(r=!0);var n=this,a=n.params,o=n.wrapperEl;if(n.animating&&a.preventInteractionOnTransition)return!1;var l,d=n.minTranslate(),c=n.maxTranslate();if(l=r&&e>d?d:r&&en?\"next\":rs?\"next\":r=d.length&&(g=d.length-1),(u||l.initialSlide||0)===(p||0)&&i&&a.emit(\"beforeSlideChangeStart\");var w,T=-d[g];if(a.updateProgress(T),l.normalizeSlideIndex)for(var x=0;x=S&&b=S&&b=S&&(o=x)}if(a.initialized&&o!==u){if(!a.allowSlideNext&&Ta.translate&&T>a.maxTranslate()&&(u||0)!==o)return!1}if(w=o>u?\"next\":o=e&&(f=e)})),void 0!==f&&(c=o.indexOf(f))<0&&(c=r.activeIndex-1),r.slideTo(c,e,t,i)},slideReset:function(e,t,i){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,i)},slideToClosest:function(e,t,i,r){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===r&&(r=.5);var s=this,n=s.activeIndex,a=Math.min(s.params.slidesPerGroupSkip,n),o=a+Math.floor((n-a)/s.params.slidesPerGroup),l=s.rtlTranslate?s.translate:-s.translate;if(l>=s.snapGrid[o]){var d=s.snapGrid[o];l-d>(s.snapGrid[o+1]-d)*r&&(n+=s.params.slidesPerGroup)}else{var c=s.snapGrid[o-1];l-c<=(s.snapGrid[o]-c)*r&&(n-=s.params.slidesPerGroup)}return n=Math.max(n,0),n=Math.min(n,s.slidesGrid.length-1),s.slideTo(n,e,t,i)},slideToClickedSlide:function(){var e,t=this,i=t.params,r=t.$wrapperEl,s=\"auto\"===i.slidesPerView?t.slidesPerViewDynamic():i.slidesPerView,n=t.clickedIndex;if(i.loop){if(t.animating)return;e=parseInt(T(t.clickedSlide).attr(\"data-swiper-slide-index\"),10),i.centeredSlides?nt.slides.length-t.loopedSlides+s/2?(t.loopFix(),n=r.children(\".\"+i.slideClass+'[data-swiper-slide-index=\"'+e+'\"]:not(.'+i.slideDuplicateClass+\")\").eq(0).index(),x((function(){t.slideTo(n)}))):t.slideTo(n):n>t.slides.length-s?(t.loopFix(),n=r.children(\".\"+i.slideClass+'[data-swiper-slide-index=\"'+e+'\"]:not(.'+i.slideDuplicateClass+\")\").eq(0).index(),x((function(){t.slideTo(n)}))):t.slideTo(n)}else t.slideTo(n)}},loop:{loopCreate:function(){var e=this,t=s(),i=e.params,r=e.$wrapperEl;r.children(\".\"+i.slideClass+\".\"+i.slideDuplicateClass).remove();var n=r.children(\".\"+i.slideClass);if(i.loopFillGroupWithBlank){var a=i.slidesPerGroup-n.length%i.slidesPerGroup;if(a!==i.slidesPerGroup){for(var o=0;on.length&&(e.loopedSlides=n.length);var d=[],c=[];n.each((function(t,i){var r=T(t);i=n.length-e.loopedSlides&&d.push(t),r.attr(\"data-swiper-slide-index\",i)}));for(var p=0;p=0;u-=1)r.prepend(T(d[u].cloneNode(!0)).addClass(i.slideDuplicateClass))},loopFix:function(){var e=this;e.emit(\"beforeLoopFix\");var t,i=e.activeIndex,r=e.slides,s=e.loopedSlides,n=e.allowSlidePrev,a=e.allowSlideNext,o=e.snapGrid,l=e.rtlTranslate;e.allowSlidePrev=!0,e.allowSlideNext=!0;var d=-o[i]-e.getTranslate();i=r.length-s&&(t=-r.length+i+s,t+=s,e.slideTo(t,0,!1,!0)&&0!==d&&e.setTranslate((l?-e.translate:e.translate)-d)),e.allowSlidePrev=n,e.allowSlideNext=a,e.emit(\"loopFix\")},loopDestroy:function(){var e=this,t=e.$wrapperEl,i=e.params,r=e.slides;t.children(\".\"+i.slideClass+\".\"+i.slideDuplicateClass+\",.\"+i.slideClass+\".\"+i.slideBlankClass).remove(),r.removeAttr(\"data-swiper-slide-index\")}},grabCursor:{setGrabCursor:function(e){var t=this;if(!(t.support.touch||!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)){var i=t.el;i.style.cursor=\"move\",i.style.cursor=e?\"-webkit-grabbing\":\"-webkit-grab\",i.style.cursor=e?\"-moz-grabbin\":\"-moz-grab\",i.style.cursor=e?\"grabbing\":\"grab\"}},unsetGrabCursor:function(){var e=this;e.support.touch||e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.el.style.cursor=\"\")}},manipulation:{appendSlide:function(e){var t=this,i=t.$wrapperEl,r=t.params;if(r.loop&&t.loopDestroy(),\"object\"==typeof e&&\"length\"in e)for(var s=0;s=a)i.appendSlide(t);else{for(var o=n>e?n+1:n,l=[],d=a-1;d>=e;d-=1){var c=i.slides.eq(d);c.remove(),l.unshift(c)}if(\"object\"==typeof t&&\"length\"in t){for(var p=0;pe?n+t.length:n}else r.append(t);for(var u=0;u1,u=c.slidesPerColumn>1,f=n.enabled;p&&!u?(a.removeClass(n.containerModifierClass+\"multirow \"+n.containerModifierClass+\"multirow-column\"),e.emitContainerClasses()):!p&&u&&(a.addClass(n.containerModifierClass+\"multirow\"),(c.slidesPerColumnFill&&\"column\"===c.slidesPerColumnFill||!c.slidesPerColumnFill&&\"column\"===n.slidesPerColumnFill)&&a.addClass(n.containerModifierClass+\"multirow-column\"),e.emitContainerClasses());var h=c.direction&&c.direction!==n.direction,v=n.loop&&(c.slidesPerView!==n.slidesPerView||h);h&&i&&e.changeDirection(),C(e.params,c);var m=e.params.enabled;C(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),f&&!m?e.disable():!f&&m&&e.enable(),e.currentBreakpoint=l,e.emit(\"_beforeBreakpoint\",c),v&&i&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-s+e.loopedSlides,0,!1)),e.emit(\"breakpoint\",c)}}},getBreakpoint:function(e,t,i){if(void 0===t&&(t=\"window\"),e&&(\"container\"!==t||i)){var r=!1,s=a(),n=\"window\"===t?s.innerHeight:i.clientHeight,o=Object.keys(e).map((function(e){if(\"string\"==typeof e&&0===e.indexOf(\"@\")){var t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));o.sort((function(e,t){return parseInt(e.value,10)-parseInt(t.value,10)}));for(var l=0;l0&&t.slidesOffsetBefore+t.spaceBetween*(e.slides.length-1)+e.slides[0].offsetWidth*e.slides.length;t.slidesOffsetBefore&&t.slidesOffsetAfter&&r?e.isLocked=r<=e.size:e.isLocked=1===e.snapGrid.length,e.allowSlideNext=!e.isLocked,e.allowSlidePrev=!e.isLocked,i!==e.isLocked&&e.emit(e.isLocked?\"lock\":\"unlock\"),i&&i!==e.isLocked&&(e.isEnd=!1,e.navigation&&e.navigation.update())}},classes:{addClasses:function(){var e,t,i,r=this,s=r.classNames,n=r.params,a=r.rtl,o=r.$el,l=r.device,d=r.support,c=(e=[\"initialized\",n.direction,{\"pointer-events\":d.pointerEvents&&!d.touch},{\"free-mode\":n.freeMode},{autoheight:n.autoHeight},{rtl:a},{multirow:n.slidesPerColumn>1},{\"multirow-column\":n.slidesPerColumn>1&&\"column\"===n.slidesPerColumnFill},{android:l.android},{ios:l.ios},{\"css-mode\":n.cssMode}],t=n.containerModifierClass,i=[],e.forEach((function(e){\"object\"==typeof e?Object.keys(e).forEach((function(r){e[r]&&i.push(t+r)})):\"string\"==typeof e&&i.push(t+e)})),i);s.push.apply(s,c),o.addClass([].concat(s).join(\" \")),r.emitContainerClasses()},removeClasses:function(){var e=this,t=e.$el,i=e.classNames;t.removeClass(i.join(\" \")),e.emitContainerClasses()}},images:{loadImage:function(e,t,i,r,s,n){var o,l=a();function d(){n&&n()}T(e).parent(\"picture\")[0]||e.complete&&s?d():t?((o=new l.Image).onload=d,o.onerror=d,r&&(o.sizes=r),i&&(o.srcset=i),t&&(o.src=t)):d()},preloadImages:function(){var e=this;function t(){null!=e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit(\"imagesReady\")))}e.imagesToLoad=e.$el.find(\"img\");for(var i=0;i1){var a=[];return T(i.el).each((function(t){var r=C({},i,{el:t});a.push(new e(r))})),a}var o=this;o.__swiper__=!0,o.support=k(),o.device=P({userAgent:i.userAgent}),o.browser=O(),o.eventsListeners={},o.eventsAnyListeners=[],void 0===o.modules&&(o.modules={}),Object.keys(o.modules).forEach((function(e){var t=o.modules[e];if(t.params){var r=Object.keys(t.params)[0],s=t.params[r];if(\"object\"!=typeof s||null===s)return;if([\"navigation\",\"pagination\",\"scrollbar\"].indexOf(r)>=0&&!0===i[r]&&(i[r]={auto:!0}),!(r in i)||!(\"enabled\"in s))return;!0===i[r]&&(i[r]={enabled:!0}),\"object\"!=typeof i[r]||\"enabled\"in i[r]||(i[r].enabled=!0),i[r]||(i[r]={enabled:!1})}}));var l,d,c=C({},V);return o.useParams(c),o.params=C({},c,q,i),o.originalParams=C({},o.params),o.passedParams=C({},i),o.params&&o.params.on&&Object.keys(o.params.on).forEach((function(e){o.on(e,o.params.on[e])})),o.params&&o.params.onAny&&o.onAny(o.params.onAny),o.$=T,C(o,{enabled:o.params.enabled,el:t,classNames:[],slides:T(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:function(){return\"horizontal\"===o.params.direction},isVertical:function(){return\"vertical\"===o.params.direction},activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:o.params.allowSlideNext,allowSlidePrev:o.params.allowSlidePrev,touchEvents:(l=[\"touchstart\",\"touchmove\",\"touchend\",\"touchcancel\"],d=[\"mousedown\",\"mousemove\",\"mouseup\"],o.support.pointerEvents&&(d=[\"pointerdown\",\"pointermove\",\"pointerup\"]),o.touchEventsTouch={start:l[0],move:l[1],end:l[2],cancel:l[3]},o.touchEventsDesktop={start:d[0],move:d[1],end:d[2]},o.support.touch||!o.params.simulateTouch?o.touchEventsTouch:o.touchEventsDesktop),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:o.params.focusableElements,lastClickTime:b(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:o.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),o.useModules(),o.emit(\"_swiper\"),o.params.init&&o.init(),o}var t,i,r=e.prototype;return r.enable=function(){var e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit(\"enable\"))},r.disable=function(){var e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit(\"disable\"))},r.setProgress=function(e,t){var i=this;e=Math.min(Math.max(e,0),1);var r=i.minTranslate(),s=(i.maxTranslate()-r)*e+r;i.translateTo(s,void 0===t?0:t),i.updateActiveIndex(),i.updateSlidesClasses()},r.emitContainerClasses=function(){var e=this;if(e.params._emitClasses&&e.el){var t=e.el.className.split(\" \").filter((function(t){return 0===t.indexOf(\"swiper-container\")||0===t.indexOf(e.params.containerModifierClass)}));e.emit(\"_containerClasses\",t.join(\" \"))}},r.getSlideClasses=function(e){var t=this;return e.className.split(\" \").filter((function(e){return 0===e.indexOf(\"swiper-slide\")||0===e.indexOf(t.params.slideClass)})).join(\" \")},r.emitSlidesClasses=function(){var e=this;if(e.params._emitClasses&&e.el){var t=[];e.slides.each((function(i){var r=e.getSlideClasses(i);t.push({slideEl:i,classNames:r}),e.emit(\"_slideClass\",i,r)})),e.emit(\"_slideClasses\",t)}},r.slidesPerViewDynamic=function(){var e=this,t=e.params,i=e.slides,r=e.slidesGrid,s=e.size,n=e.activeIndex,a=1;if(t.centeredSlides){for(var o,l=i[n].swiperSlideSize,d=n+1;ds&&(o=!0));for(var c=n-1;c>=0;c-=1)i[c]&&!o&&(a+=1,(l+=i[c].swiperSlideSize)>s&&(o=!0))}else for(var p=n+1;p1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0))||r(),i.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit(\"update\")}function r(){var t=e.rtlTranslate?-1*e.translate:e.translate,i=Math.min(Math.max(t,e.maxTranslate()),e.minTranslate());e.setTranslate(i),e.updateActiveIndex(),e.updateSlidesClasses()}},r.changeDirection=function(e,t){void 0===t&&(t=!0);var i=this,r=i.params.direction;return e||(e=\"horizontal\"===r?\"vertical\":\"horizontal\"),e===r||\"horizontal\"!==e&&\"vertical\"!==e||(i.$el.removeClass(\"\"+i.params.containerModifierClass+r).addClass(\"\"+i.params.containerModifierClass+e),i.emitContainerClasses(),i.params.direction=e,i.slides.each((function(t){\"vertical\"===e?t.style.width=\"\":t.style.height=\"\"})),i.emit(\"changeDirection\"),t&&i.update()),i},r.mount=function(e){var t=this;if(t.mounted)return!0;var i=T(e||t.params.el);if(!(e=i[0]))return!1;e.swiper=t;var r=function(){return\".\"+(t.params.wrapperClass||\"\").trim().split(\" \").join(\".\")},n=function(){if(e&&e.shadowRoot&&e.shadowRoot.querySelector){var t=T(e.shadowRoot.querySelector(r()));return t.children=function(e){return i.children(e)},t}return i.children(r())}();if(0===n.length&&t.params.createElements){var a=s().createElement(\"div\");n=T(a),a.className=t.params.wrapperClass,i.append(a),i.children(\".\"+t.params.slideClass).each((function(e){n.append(e)}))}return C(t,{$el:i,el:e,$wrapperEl:n,wrapperEl:n[0],mounted:!0,rtl:\"rtl\"===e.dir.toLowerCase()||\"rtl\"===i.css(\"direction\"),rtlTranslate:\"horizontal\"===t.params.direction&&(\"rtl\"===e.dir.toLowerCase()||\"rtl\"===i.css(\"direction\")),wrongRTL:\"-webkit-box\"===n.css(\"display\")}),!0},r.init=function(e){var t=this;return t.initialized||!1===t.mount(e)||(t.emit(\"beforeInit\"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.params.loop&&t.loopCreate(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.preloadImages&&t.preloadImages(),t.params.loop?t.slideTo(t.params.initialSlide+t.loopedSlides,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.attachEvents(),t.initialized=!0,t.emit(\"init\"),t.emit(\"afterInit\")),t},r.destroy=function(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);var i,r=this,s=r.params,n=r.$el,a=r.$wrapperEl,o=r.slides;return void 0===r.params||r.destroyed||(r.emit(\"beforeDestroy\"),r.initialized=!1,r.detachEvents(),s.loop&&r.loopDestroy(),t&&(r.removeClasses(),n.removeAttr(\"style\"),a.removeAttr(\"style\"),o&&o.length&&o.removeClass([s.slideVisibleClass,s.slideActiveClass,s.slideNextClass,s.slidePrevClass].join(\" \")).removeAttr(\"style\").removeAttr(\"data-swiper-slide-index\")),r.emit(\"destroy\"),Object.keys(r.eventsListeners).forEach((function(e){r.off(e)})),!1!==e&&(r.$el[0].swiper=null,i=r,Object.keys(i).forEach((function(e){try{i[e]=null}catch(e){}try{delete i[e]}catch(e){}}))),r.destroyed=!0),null},e.extendDefaults=function(e){C(q,e)},e.installModule=function(t){e.prototype.modules||(e.prototype.modules={});var i=t.name||Object.keys(e.prototype.modules).length+\"_\"+b();e.prototype.modules[i]=t},e.use=function(t){return Array.isArray(t)?(t.forEach((function(t){return e.installModule(t)})),e):(e.installModule(t),e)},t=e,i=[{key:\"extendedDefaults\",get:function(){return q}},{key:\"defaults\",get:function(){return V}}],null&&R(t.prototype,null),i&&R(t,i),e}();Object.keys(W).forEach((function(e){Object.keys(W[e]).forEach((function(t){X.prototype[t]=W[e][t]}))})),X.use([L,I]);const Y=X;var U={name:\"welcomescreen\",Welcomescreen:function(t,i,r){var s,n,a,o,l=this,d={closeButton:!0,closeButtonText:\"Skip\",cssClass:\"\",pagination:!0,navigation:!1,loop:!1,open:!0,parallax:!1,parallaxSpeed:600,parallaxBackgroundImage:\"http://lorempixel.com/900/600/nightlife/2/\",parallaxBackground:\"-23%\",parallaxSlideElements:{title:-100,subtitle:-300,text:-500}};return l.open=function(){(n=window.Dom7(s({options:r,slides:i}))).find(\".welcomescreen-swiper\"),r.bgcolor&&n.css({\"background-color\":r.bgcolor,color:r.fontcolor}),window.Dom7(\"body\").append(n),a=new Y(\".welcomescreen-swiper\",{direction:\"horizontal\",loop:r.loop,pagination:r.pagination?{el:\".swiper-pagination\"}:void 0,parallax:r.parallax,speed:r.parallaxSpeed}),n[0].f7Welcomescreen=l,\"function\"==typeof r.onOpened&&r.onOpened()},l.close=function(){a&&a.destroy(!0),n&&n.remove(),n=a=void 0,\"function\"==typeof r.onClosed&&r.onClosed()},l.next=function(){a&&a.slideNext()},l.previous=function(){a&&a.slidePrev()},l.slideTo=function(e){a&&a.slideTo(e)},'
{{#if options.closeButton}}
{{options.closeButtonText}}
{{/if}}
{{#if options.parallax}}
{{/if}}
{{#each slides}}
{{#if title}}{{title}}{{else}}title{{/if}}
{{#if content}}
{{content}}
{{else}}{{#if picture}}
{{picture}}
{{/if}}{{#if text}}
{{text}}
{{/if}}{{/if}}
{{/each}}
{{#if options.pagination}}
{{/if}}{{#if options.navigation}}\\x3c!-- If we need navigation buttons --\\x3e
{{/if}}
',o=window.Template7||e.Z,s=r.template?o.compile(r.template):o.compile('
{{#if options.closeButton}}
{{options.closeButtonText}}
{{/if}}
{{#if options.parallax}}
{{/if}}
{{#each slides}}
{{#if title}}{{title}}{{else}}title{{/if}}
{{#if content}}
{{content}}
{{else}}{{#if picture}}
{{picture}}
{{/if}}{{#if text}}
{{text}}
{{/if}}{{/if}}
{{/each}}
{{#if options.pagination}}
{{/if}}{{#if options.navigation}}\\x3c!-- If we need navigation buttons --\\x3e
{{/if}}
'),function(){var e;for(e in r=r||{},d)void 0===r[e]&&(r[e]=d[e])}(),r.open&&l.open(),l},params:{welcomescreen:{options:{},slides:[]}},on:{init:function(){window.Dom7=this.$,window.swiper=this.swiper,window.Dom7(document).on(\"click\",\".close-welcomescreen\",(function(e){e.preventDefault();var t=window.Dom7(this).parents(\".welcomescreen-container\");t.length>0&&t[0].f7Welcomescreen&&t[0].f7Welcomescreen.close()}));var e=this,t=e.params.welcomescreen;e.welcomescreen=new U.Welcomescreen(e,t.slides,t.options)}}};const J=U})(),__webpack_exports__})()));","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow } from 'ssr-window';\nvar uniqueNum = 0;\nexport function uniqueNumber() {\n uniqueNum += 1;\n return uniqueNum;\n}\nexport function id(mask, map) {\n if (mask === void 0) {\n mask = 'xxxxxxxxxx';\n }\n\n if (map === void 0) {\n map = '0123456789abcdef';\n }\n\n var length = map.length;\n return mask.replace(/x/g, function () {\n return map[Math.floor(Math.random() * length)];\n });\n}\nexport var mdPreloaderContent = \"\\n \\n \\n \\n \\n \\n\".trim();\nexport var iosPreloaderContent = (\"\\n \\n \" + [0, 1, 2, 3, 4, 5, 6, 7].map(function () {\n return '';\n}).join('') + \"\\n \\n\").trim();\nexport var auroraPreloaderContent = \"\\n \\n \\n \\n\";\nexport function eventNameToColonCase(eventName) {\n var hasColon;\n return eventName.split('').map(function (char, index) {\n if (char.match(/[A-Z]/) && index !== 0 && !hasColon) {\n hasColon = true;\n return \":\" + char.toLowerCase();\n }\n\n return char.toLowerCase();\n }).join('');\n}\nexport function deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no setter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\nexport function requestAnimationFrame(callback) {\n var window = getWindow();\n return window.requestAnimationFrame(callback);\n}\nexport function cancelAnimationFrame(frameId) {\n var window = getWindow();\n return window.cancelAnimationFrame(frameId);\n}\nexport function nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\nexport function nextFrame(callback) {\n return requestAnimationFrame(function () {\n requestAnimationFrame(callback);\n });\n}\nexport function now() {\n return Date.now();\n}\nexport function parseUrlQuery(url) {\n var window = getWindow();\n var query = {};\n var urlToParse = url || window.location.href;\n var i;\n var params;\n var param;\n var length;\n\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter(function (paramsPart) {\n return paramsPart !== '';\n });\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\n return query;\n}\nexport function getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\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; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\nexport function serializeObject(obj, parents) {\n if (parents === void 0) {\n parents = [];\n }\n\n if (typeof obj === 'string') return obj;\n var resultArray = [];\n var separator = '&';\n var newParents;\n\n function varName(name) {\n if (parents.length > 0) {\n var parentParts = '';\n\n for (var j = 0; j < parents.length; j += 1) {\n if (j === 0) parentParts += parents[j];else parentParts += \"[\" + encodeURIComponent(parents[j]) + \"]\";\n }\n\n return parentParts + \"[\" + encodeURIComponent(name) + \"]\";\n }\n\n return encodeURIComponent(name);\n }\n\n function varValue(value) {\n return encodeURIComponent(value);\n }\n\n Object.keys(obj).forEach(function (prop) {\n var toPush;\n\n if (Array.isArray(obj[prop])) {\n toPush = [];\n\n for (var 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(serializeObject(obj[prop][i], newParents));\n } else {\n toPush.push(varName(prop) + \"[]=\" + varValue(obj[prop][i]));\n }\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 = 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}\nexport function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\nexport function merge() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var to = args[0];\n args.splice(0, 1);\n var from = args;\n\n for (var i = 0; i < from.length; i += 1) {\n var nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource));\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n\n return to;\n}\nexport function extend() {\n var deep = true;\n var to;\n var from;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\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\n for (var i = 0; i < from.length; i += 1) {\n var nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource));\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (!deep) {\n to[nextKey] = nextSource[nextKey];\n } else if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n extend(to[nextKey], nextSource[nextKey]);\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\nexport function colorHexToRgb(hex) {\n var h = hex.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(h);\n return result ? result.slice(1).map(function (n) {\n return parseInt(n, 16);\n }) : null;\n}\nexport function colorRgbToHex(r, g, b) {\n var result = [r, g, b].map(function (n) {\n var hex = n.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n }).join('');\n return \"#\" + result;\n}\nexport function colorRgbToHsl(r, g, b) {\n r /= 255; // eslint-disable-line\n\n g /= 255; // eslint-disable-line\n\n b /= 255; // eslint-disable-line\n\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n if (d === 0) h = 0;else if (max === r) h = (g - b) / d % 6;else if (max === g) h = (b - r) / d + 2;else if (max === b) h = (r - g) / d + 4;\n var l = (min + max) / 2;\n var 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}\nexport function colorHslToRgb(h, s, l) {\n var c = (1 - Math.abs(2 * l - 1)) * s;\n var hp = h / 60;\n var x = c * (1 - Math.abs(hp % 2 - 1));\n var rgb1;\n\n if (Number.isNaN(h) || typeof h === 'undefined') {\n rgb1 = [0, 0, 0];\n } else if (hp <= 1) rgb1 = [c, x, 0];else if (hp <= 2) rgb1 = [x, c, 0];else if (hp <= 3) rgb1 = [0, c, x];else if (hp <= 4) rgb1 = [0, x, c];else if (hp <= 5) rgb1 = [x, 0, c];else if (hp <= 6) rgb1 = [c, 0, x];\n\n var m = l - c / 2;\n return rgb1.map(function (n) {\n return Math.max(0, Math.min(255, Math.round(255 * (n + m))));\n });\n}\nexport function colorHsbToHsl(h, s, b) {\n var HSL = {\n h: h,\n s: 0,\n l: 0\n };\n var HSB = {\n h: h,\n s: s,\n b: 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 return [HSL.h, HSL.s, HSL.l];\n}\nexport function colorHslToHsb(h, s, l) {\n var HSB = {\n h: h,\n s: 0,\n b: 0\n };\n var HSL = {\n h: h,\n s: s,\n l: l\n };\n var 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 return [HSB.h, HSB.s, HSB.b];\n}\nexport function colorThemeCSSProperties() {\n var hex;\n var rgb;\n\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (args.length === 1) {\n hex = args[0];\n rgb = colorHexToRgb(hex);\n } else if (args.length === 3) {\n rgb = args;\n hex = colorRgbToHex.apply(void 0, rgb);\n }\n\n if (!rgb) return {};\n var hsl = colorRgbToHsl.apply(void 0, rgb);\n var hslShade = [hsl[0], hsl[1], Math.max(0, hsl[2] - 0.08)];\n var hslTint = [hsl[0], hsl[1], Math.max(0, hsl[2] + 0.08)];\n var shade = colorRgbToHex.apply(void 0, colorHslToRgb.apply(void 0, hslShade));\n var tint = colorRgbToHex.apply(void 0, colorHslToRgb.apply(void 0, 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}\nexport function bindMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\nexport function flattenArray() {\n var arr = [];\n\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n args.forEach(function (arg) {\n if (Array.isArray(arg)) arr.push.apply(arr, flattenArray.apply(void 0, arg));else arr.push(arg);\n });\n return arr;\n}","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n intersectionObserver: function checkObserver() {\n return 'IntersectionObserver' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar deviceCalculated;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var 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 capacitor: !!window.Capacitor,\n nwjs: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS|iPhone;\\sCPU\\sOS)\\s([\\d_]+)/);\n var ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n var edge = ua.indexOf('Edge/') >= 0;\n var firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n var windows = platform === 'Win32';\n var electron = ua.toLowerCase().indexOf('electron') >= 0;\n var nwjs = typeof nw !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && typeof process.versions.nw !== 'undefined';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n device.ie = ie;\n device.edge = edge;\n device.firefox = firefox; // Android\n\n if (android) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // iOS\n\n\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n } // iOS 8+ changed UA\n\n\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 } // Webview\n\n\n device.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || window.navigator.standalone)) || window.matchMedia && window.matchMedia('(display-mode: standalone)').matches;\n device.webview = device.webView;\n device.standalone = device.webView; // Desktop\n\n device.desktop = !(device.ios || device.android) || electron || nwjs;\n\n if (device.desktop) {\n device.electron = electron;\n device.nwjs = nwjs;\n device.macos = macos;\n device.windows = windows;\n\n if (device.macos) {\n device.os = 'macos';\n }\n\n if (device.windows) {\n device.os = 'windows';\n }\n } // Pixel Ratio\n\n\n device.pixelRatio = window.devicePixelRatio || 1; // Color Scheme\n\n var DARK = '(prefers-color-scheme: dark)';\n var LIGHT = '(prefers-color-scheme: light)';\n\n device.prefersColorScheme = function prefersColorTheme() {\n var theme;\n\n if (window.matchMedia && window.matchMedia(LIGHT).matches) {\n theme = 'light';\n }\n\n if (window.matchMedia && window.matchMedia(DARK).matches) {\n theme = 'dark';\n }\n\n return theme;\n }; // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides, reset) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!deviceCalculated || reset) {\n deviceCalculated = calcDevice(overrides);\n }\n\n return deviceCalculated;\n}\n\nexport { getDevice };","var EventsClass = /*#__PURE__*/function () {\n function EventsClass(parents) {\n if (parents === void 0) {\n parents = [];\n }\n\n var self = this;\n self.eventsParents = parents;\n self.eventsListeners = {};\n }\n\n var _proto = EventsClass.prototype;\n\n _proto.on = function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n };\n\n _proto.once = function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n };\n\n _proto.off = function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (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 _proto.emit = function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n var eventsParents;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\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\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n var localEvents = eventsArray.map(function (eventName) {\n return eventName.replace('local::', '');\n });\n var parentEvents = eventsArray.filter(function (eventName) {\n return eventName.indexOf('local::') < 0;\n });\n localEvents.forEach(function (event) {\n if (self.eventsListeners && self.eventsListeners[event]) {\n var handlers = [];\n self.eventsListeners[event].forEach(function (eventHandler) {\n handlers.push(eventHandler);\n });\n handlers.forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n\n if (eventsParents && eventsParents.length > 0) {\n eventsParents.forEach(function (eventsParent) {\n eventsParent.emit.apply(eventsParent, [parentEvents].concat(data));\n });\n }\n\n return self;\n };\n\n return EventsClass;\n}();\n\nexport default EventsClass;","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport { extend, now } from './utils';\nimport EventsClass from './events-class';\n\nvar Framework7Class = /*#__PURE__*/function (_EventsClass) {\n _inheritsLoose(Framework7Class, _EventsClass);\n\n function Framework7Class(params, parents) {\n var _this;\n\n if (params === void 0) {\n params = {};\n }\n\n if (parents === void 0) {\n parents = [];\n }\n\n _this = _EventsClass.call(this, parents) || this;\n\n var self = _assertThisInitialized(_this);\n\n self.params = params;\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach(function (eventName) {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n\n return _this;\n } // eslint-disable-next-line\n\n\n var _proto = Framework7Class.prototype;\n\n _proto.useModuleParams = function useModuleParams(module, instanceParams) {\n if (module.params) {\n var originalParams = {};\n Object.keys(module.params).forEach(function (paramKey) {\n if (typeof instanceParams[paramKey] === 'undefined') return;\n originalParams[paramKey] = extend({}, instanceParams[paramKey]);\n });\n extend(instanceParams, module.params);\n Object.keys(originalParams).forEach(function (paramKey) {\n extend(instanceParams[paramKey], originalParams[paramKey]);\n });\n }\n };\n\n _proto.useModulesParams = function useModulesParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n };\n\n _proto.useModule = function useModule(moduleName, moduleParams) {\n if (moduleName === void 0) {\n moduleName = '';\n }\n\n if (moduleParams === void 0) {\n moduleParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n var module = typeof moduleName === 'string' ? instance.modules[moduleName] : moduleName;\n if (!module) return; // Extend instance methods and props\n\n if (module.instance) {\n Object.keys(module.instance).forEach(function (modulePropName) {\n var moduleProp = module.instance[modulePropName];\n\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n } // Add event listeners\n\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Add vnode hooks\n\n\n if (module.vnode) {\n if (!instance.vnodeHooks) instance.vnodeHooks = {};\n Object.keys(module.vnode).forEach(function (vnodeId) {\n Object.keys(module.vnode[vnodeId]).forEach(function (hookName) {\n var 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 } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n };\n\n _proto.useModules = function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var moduleParams = modulesParams[moduleName] || {};\n instance.useModule(moduleName, moduleParams);\n });\n };\n\n Framework7Class.installModule = function installModule(module) {\n var Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n var name = module.name || Object.keys(Class.prototype.modules).length + \"_\" + now();\n Class.prototype.modules[name] = module; // Prototype\n\n if (module.proto) {\n Object.keys(module.proto).forEach(function (key) {\n Class.prototype[key] = module.proto[key];\n });\n } // Class\n\n\n if (module.static) {\n Object.keys(module.static).forEach(function (key) {\n Class[key] = module.static[key];\n });\n } // Callback\n\n\n if (module.install) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n module.install.apply(Class, params);\n }\n\n return Class;\n };\n\n Framework7Class.use = function use(module) {\n var Class = this;\n\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Class.installModule(m);\n });\n return Class;\n }\n\n for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n params[_key2 - 1] = arguments[_key2];\n }\n\n return Class.installModule.apply(Class, [module].concat(params));\n };\n\n _createClass(Framework7Class, null, [{\n key: \"components\",\n set: function set(components) {\n var Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n }]);\n\n return Framework7Class;\n}(EventsClass);\n\nexport default Framework7Class;","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _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\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _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\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _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\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\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 } // Set attrs\n\n\n for (var 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 for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\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 (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var 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\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: 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 var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\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\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\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}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\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}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var 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}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var 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\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\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\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var 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 (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var 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 (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\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 $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var 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\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var 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\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\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\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (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: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\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(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (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 var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var 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\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 var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import * as methods from 'dom7';\nObject.keys(methods).forEach(function (methodName) {\n if (methodName === '$') return;\n methods.$.fn[methodName] = methods[methodName];\n});\nexport default methods.$;","function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport $ from './dom7';\nexport default function ConstructorMethods(parameters) {\n if (parameters === void 0) {\n parameters = {};\n }\n\n var _parameters = parameters,\n defaultSelector = _parameters.defaultSelector,\n Constructor = _parameters.constructor,\n domProp = _parameters.domProp,\n app = _parameters.app,\n addMethods = _parameters.addMethods;\n var methods = {\n create: function create() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (app) return _construct(Constructor, [app].concat(args));\n return _construct(Constructor, args);\n },\n get: function get(el) {\n if (el === void 0) {\n el = defaultSelector;\n }\n\n if (el instanceof Constructor) return el;\n var $el = $(el);\n if ($el.length === 0) return undefined;\n return $el[0][domProp];\n },\n destroy: function destroy(el) {\n var instance = methods.get(el);\n if (instance && instance.destroy) return instance.destroy();\n return undefined;\n }\n };\n\n if (addMethods && Array.isArray(addMethods)) {\n addMethods.forEach(function (methodName) {\n methods[methodName] = function (el) {\n if (el === void 0) {\n el = defaultSelector;\n }\n\n var instance = methods.get(el);\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n if (instance && instance[methodName]) return instance[methodName].apply(instance, args);\n return undefined;\n };\n });\n }\n\n return methods;\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from './dom7';\nimport { extend } from './utils';\nimport ConstructorMethods from './constructor-methods';\nexport default function ModalMethods(parameters) {\n if (parameters === void 0) {\n parameters = {};\n }\n\n var _parameters = parameters,\n defaultSelector = _parameters.defaultSelector,\n Constructor = _parameters.constructor,\n app = _parameters.app;\n var methods = extend(ConstructorMethods({\n defaultSelector: defaultSelector,\n constructor: Constructor,\n app: app,\n domProp: 'f7Modal'\n }), {\n open: function open(el, animate, targetEl) {\n var $el = $(el);\n\n if ($el.length > 1 && targetEl) {\n // check if same modal in other page\n var $targetPage = $(targetEl).parents('.page');\n\n if ($targetPage.length) {\n $el.each(function (modalEl) {\n var $modalEl = $(modalEl);\n\n if ($modalEl.parents($targetPage)[0] === $targetPage[0]) {\n $el = $modalEl;\n }\n });\n }\n }\n\n if ($el.length > 1) {\n $el = $el.eq($el.length - 1);\n }\n\n if (!$el.length) return undefined;\n var instance = $el[0].f7Modal;\n\n if (!instance) {\n var params = $el.dataset();\n instance = new Constructor(app, _extends({\n el: $el\n }, params));\n }\n\n return instance.open(animate);\n },\n close: function close(el, animate, targetEl) {\n if (el === void 0) {\n el = defaultSelector;\n }\n\n var $el = $(el);\n if (!$el.length) return undefined;\n\n if ($el.length > 1) {\n // check if close link (targetEl) in this modal\n var $parentEl;\n\n if (targetEl) {\n var $targetEl = $(targetEl);\n\n if ($targetEl.length) {\n $parentEl = $targetEl.parents($el);\n }\n }\n\n if ($parentEl && $parentEl.length > 0) {\n $el = $parentEl;\n } else {\n $el = $el.eq($el.length - 1);\n }\n }\n\n var instance = $el[0].f7Modal;\n\n if (!instance) {\n var params = $el.dataset();\n instance = new Constructor(app, _extends({\n el: $el\n }, params));\n }\n\n return instance.close(animate);\n }\n });\n return methods;\n}","import { getWindow, getDocument } from 'ssr-window';\nimport { id } from '../../shared/utils';\nimport $ from '../../shared/dom7';\nvar fetchedModules = [];\n\nfunction loadModule(moduleToLoad) {\n var Framework7 = this;\n var window = getWindow();\n var document = getDocument();\n return new Promise(function (resolve, reject) {\n var app = Framework7.instance;\n var modulePath;\n var moduleObj;\n var moduleFunc;\n\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 var matchNamePattern = moduleToLoad.match(/([a-z0-9-]*)/i);\n\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\n modulePath = app.params.lazyModulesPath + \"/\" + moduleToLoad + \"/\" + 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 var module = moduleFunc(Framework7, false);\n\n if (!module) {\n reject(new Error(\"Framework7: Can't find Framework7 component in specified component function\"));\n return;\n } // Check if it was added\n\n\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolve();\n return;\n } // Install It\n\n\n install(module);\n resolve();\n }\n\n if (moduleObj) {\n var _module = moduleObj;\n\n if (!_module) {\n reject(new Error(\"Framework7: Can't find Framework7 component in specified component\"));\n return;\n } // Check if it was added\n\n\n if (Framework7.prototype.modules && Framework7.prototype.modules[_module.name]) {\n resolve();\n return;\n } // Install It\n\n\n install(_module);\n resolve();\n }\n\n if (modulePath) {\n if (fetchedModules.indexOf(modulePath) >= 0) {\n resolve();\n return;\n }\n\n fetchedModules.push(modulePath);\n var scriptLoad = new Promise(function (resolveScript, rejectScript) {\n Framework7.request.get(modulePath, function (scriptContent) {\n var callbackId = id();\n var callbackLoadName = \"f7_component_loader_callback_\" + callbackId;\n var scriptEl = document.createElement('script');\n scriptEl.innerHTML = \"window.\" + callbackLoadName + \" = function (Framework7, Framework7AutoInstallComponent) {return \" + scriptContent.trim() + \"}\";\n $('head').append(scriptEl);\n var componentLoader = window[callbackLoadName];\n delete window[callbackLoadName];\n $(scriptEl).remove();\n var module = componentLoader(Framework7, false);\n\n if (!module) {\n rejectScript(new Error(\"Framework7: Can't find Framework7 component in \" + modulePath + \" file\"));\n return;\n } // Check if it was added\n\n\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolveScript();\n return;\n } // Install It\n\n\n install(module);\n resolveScript();\n }, function (xhr, status) {\n rejectScript(xhr, status);\n });\n });\n var styleLoad = new Promise(function (resolveStyle) {\n Framework7.request.get(modulePath.replace('.js', app.rtl ? '.rtl.css' : '.css'), function (styleContent) {\n var styleEl = document.createElement('style');\n styleEl.innerHTML = styleContent;\n $('head').append(styleEl);\n resolveStyle();\n }, function () {\n resolveStyle();\n });\n });\n Promise.all([scriptLoad, styleLoad]).then(function () {\n resolve();\n }).catch(function (err) {\n reject(err);\n });\n }\n });\n}\n\nexport default loadModule;","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/* eslint-disable no-underscore-dangle */\nimport { getWindow, getDocument } from 'ssr-window';\nimport { extend, nextFrame } from '../../shared/utils';\nimport { getDevice } from '../../shared/get-device';\nimport { getSupport } from '../../shared/get-support';\nimport Framework7Class from '../../shared/class';\nimport EventsClass from '../../shared/events-class';\nimport ConstructorMethods from '../../shared/constructor-methods';\nimport ModalMethods from '../../shared/modal-methods';\nimport $ from '../../shared/dom7';\nimport loadModule from './load-module';\n\nvar Framework7 = /*#__PURE__*/function (_Framework7Class) {\n _inheritsLoose(Framework7, _Framework7Class);\n\n function Framework7(params) {\n var _this;\n\n if (params === void 0) {\n params = {};\n }\n\n _this = _Framework7Class.call(this, params) || this; // eslint-disable-next-line\n\n if (Framework7.instance && typeof window !== 'undefined') {\n throw new Error(\"Framework7 is already initialized and can't be initialized more than once\");\n }\n\n var device = getDevice({\n userAgent: params.userAgent || undefined\n });\n var support = getSupport();\n var passedParams = extend({}, params); // App Instance\n\n var app = _assertThisInitialized(_this);\n\n app.device = device;\n app.support = support;\n var w = getWindow();\n var d = getDocument();\n Framework7.instance = app; // Default\n\n var defaults = {\n version: '1.0.0',\n id: 'io.framework7.myapp',\n el: 'body',\n theme: 'auto',\n language: w.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 userAgent: null,\n url: null\n }; // Extend defaults with modules params\n\n app.useModulesParams(defaults); // Extend defaults with passed params\n\n app.params = extend(defaults, params);\n 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 // 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\n return app.params.theme;\n }(),\n // Initially passed parameters\n passedParams: passedParams,\n online: w.navigator.onLine\n });\n if (params.store) app.params.store = params.store; // Save Root\n\n if (app.$el && app.$el[0]) {\n app.$el[0].f7 = app;\n } // Install Modules\n\n\n app.useModules(); // Init Store\n\n app.initStore(); // Init\n\n if (app.params.init) {\n if (device.cordova && app.params.initOnDeviceReady) {\n $(d).on('deviceready', function () {\n app.init();\n });\n } else {\n app.init();\n }\n } // Return app instance\n\n\n return app || _assertThisInitialized(_this);\n }\n\n var _proto = Framework7.prototype;\n\n _proto.mount = function mount(rootEl) {\n var app = this;\n var window = getWindow();\n var document = getDocument();\n var $rootEl = $(rootEl || app.params.el).eq(0);\n app.$el = $rootEl;\n\n if (app.$el && app.$el[0]) {\n app.el = app.$el[0];\n app.el.f7 = app;\n app.rtl = $rootEl.css('direction') === 'rtl';\n } // Auto Dark Theme\n\n\n var DARK = '(prefers-color-scheme: dark)';\n var LIGHT = '(prefers-color-scheme: light)';\n app.mq = {};\n\n if (window.matchMedia) {\n app.mq.dark = window.matchMedia(DARK);\n app.mq.light = window.matchMedia(LIGHT);\n }\n\n app.colorSchemeListener = function colorSchemeListener(_ref) {\n var matches = _ref.matches,\n media = _ref.media;\n\n if (!matches) {\n return;\n }\n\n var html = document.querySelector('html');\n\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 app.emit('mount');\n };\n\n _proto.initStore = function initStore() {\n var app = this;\n\n if (typeof app.params.store !== 'undefined' && app.params.store.__store) {\n app.store = app.params.store;\n } else {\n app.store = app.createStore(app.params.store);\n }\n };\n\n _proto.enableAutoDarkTheme = function enableAutoDarkTheme() {\n var window = getWindow();\n var document = getDocument();\n if (!window.matchMedia) return;\n var app = this;\n var html = document.querySelector('html');\n\n if (app.mq.dark && app.mq.light) {\n app.mq.dark.addListener(app.colorSchemeListener);\n app.mq.light.addListener(app.colorSchemeListener);\n }\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 _proto.disableAutoDarkTheme = function disableAutoDarkTheme() {\n var window = getWindow();\n if (!window.matchMedia) return;\n var 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 _proto.initAppComponent = function initAppComponent(callback) {\n var app = this;\n app.router.componentLoader(app.params.component, app.params.componentUrl, {\n componentOptions: {\n el: app.$el[0]\n }\n }, function (el) {\n app.$el = $(el);\n app.$el[0].f7 = app;\n app.$elComponent = el.f7Component;\n app.el = app.$el[0];\n if (callback) callback();\n }, function () {});\n };\n\n _proto.init = function init(rootEl) {\n var app = this;\n app.mount(rootEl);\n\n var init = function init() {\n if (app.initialized) return;\n app.$el.addClass('framework7-initializing'); // RTL attr\n\n if (app.rtl) {\n $('html').attr('dir', 'rtl');\n } // Auto Dark Theme\n\n\n if (app.params.autoDarkTheme) {\n app.enableAutoDarkTheme();\n } // Watch for online/offline state\n\n\n var window = getWindow();\n window.addEventListener('offline', function () {\n app.online = false;\n app.emit('offline');\n app.emit('connection', false);\n });\n window.addEventListener('online', function () {\n app.online = true;\n app.emit('online');\n app.emit('connection', true);\n }); // Root class\n\n app.$el.addClass('framework7-root'); // Theme class\n\n $('html').removeClass('ios md aurora').addClass(app.theme); // iOS Translucent\n\n var device = app.device;\n\n if (app.params.iosTranslucentBars && app.theme === 'ios' && device.ios) {\n $('html').addClass('ios-translucent-bars');\n }\n\n if (app.params.iosTranslucentModals && app.theme === 'ios' && device.ios) {\n $('html').addClass('ios-translucent-modals');\n } // Init class\n\n\n nextFrame(function () {\n app.$el.removeClass('framework7-initializing');\n }); // Emit, init other modules\n\n app.initialized = true;\n app.emit('init');\n };\n\n if (app.params.component || app.params.componentUrl) {\n app.initAppComponent(function () {\n init();\n });\n } else {\n init();\n }\n\n return app;\n } // eslint-disable-next-line\n ;\n\n _proto.loadModule = function loadModule() {\n return Framework7.loadModule.apply(Framework7, arguments);\n } // eslint-disable-next-line\n ;\n\n _proto.loadModules = function loadModules() {\n return Framework7.loadModules.apply(Framework7, arguments);\n };\n\n _proto.getVnodeHooks = function getVnodeHooks(hook, id) {\n var app = this;\n if (!app.vnodeHooks || !app.vnodeHooks[hook]) return [];\n return app.vnodeHooks[hook][id] || [];\n } // eslint-disable-next-line\n ;\n\n _createClass(Framework7, [{\n key: \"$\",\n get: function get() {\n return $;\n }\n }], [{\n key: \"Dom7\",\n get: function get() {\n return $;\n }\n }, {\n key: \"$\",\n get: function get() {\n return $;\n }\n }, {\n key: \"device\",\n get: function get() {\n return getDevice();\n }\n }, {\n key: \"support\",\n get: function get() {\n return getSupport();\n }\n }, {\n key: \"Class\",\n get: function get() {\n return Framework7Class;\n }\n }, {\n key: \"Events\",\n get: function get() {\n return EventsClass;\n }\n }]);\n\n return Framework7;\n}(Framework7Class);\n\nFramework7.ModalMethods = ModalMethods;\nFramework7.ConstructorMethods = ConstructorMethods;\nFramework7.loadModule = loadModule;\n\nFramework7.loadModules = function loadModules(modules) {\n return Promise.all(modules.map(function (module) {\n return Framework7.loadModule(module);\n }));\n};\n\nexport default Framework7;","import { getDocument } from 'ssr-window';\nimport { getDevice } from '../../shared/get-device';\nexport default {\n name: 'device',\n static: {\n getDevice: getDevice\n },\n on: {\n init: function init() {\n var document = getDocument();\n var device = getDevice();\n var classNames = [];\n var html = document.querySelector('html');\n var metaStatusbar = document.querySelector('meta[name=\"apple-mobile-web-app-status-bar-style\"]');\n if (!html) return;\n\n if (device.standalone && device.ios && metaStatusbar && metaStatusbar.content === 'black-translucent') {\n classNames.push('device-full-viewport');\n } // Pixel Ratio\n\n\n classNames.push(\"device-pixel-ratio-\" + Math.floor(device.pixelRatio)); // OS classes\n\n if (device.os && !device.desktop) {\n classNames.push(\"device-\" + device.os);\n } else if (device.desktop) {\n classNames.push('device-desktop');\n\n if (device.os) {\n classNames.push(\"device-\" + device.os);\n }\n }\n\n if (device.cordova || device.phonegap) {\n classNames.push('device-cordova');\n }\n\n if (device.capacitor) {\n classNames.push('device-capacitor');\n } // Add html classes\n\n\n classNames.forEach(function (className) {\n html.classList.add(className);\n });\n }\n }\n};","import { getSupport } from '../../shared/get-support';\nexport default {\n name: 'support',\n static: {\n getSupport: getSupport\n }\n};","import * as utils from '../../shared/utils';\nexport default {\n name: 'utils',\n proto: {\n utils: utils\n },\n static: {\n utils: utils\n }\n};","import { getWindow, getDocument } from 'ssr-window';\nimport { getDevice } from '../../shared/get-device';\nexport default {\n name: 'resize',\n create: function create() {\n var app = this;\n\n app.getSize = function () {\n if (!app.el) return {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n };\n var offset = app.$el.offset();\n var _ref = [app.el.offsetWidth, app.el.offsetHeight, offset.left, offset.top],\n width = _ref[0],\n height = _ref[1],\n left = _ref[2],\n top = _ref[3];\n app.width = width;\n app.height = height;\n app.left = left;\n app.top = top;\n return {\n width: width,\n height: height,\n left: left,\n top: top\n };\n };\n },\n on: {\n init: function init() {\n var app = this;\n var window = getWindow(); // Get Size\n\n app.getSize(); // Emit resize\n\n window.addEventListener('resize', function () {\n app.emit('resize');\n }, false); // Emit orientationchange\n\n window.addEventListener('orientationchange', function () {\n app.emit('orientationchange');\n });\n },\n orientationchange: function orientationchange() {\n var document = getDocument();\n var device = getDevice(); // Fix iPad weird body scroll\n\n if (device.ipad) {\n document.body.scrollLeft = 0;\n setTimeout(function () {\n document.body.scrollLeft = 0;\n }, 0);\n }\n },\n resize: function resize() {\n var app = this;\n app.getSize();\n }\n }\n};","function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/* eslint-disable max-classes-per-file */\nimport { getWindow, getDocument } from 'ssr-window';\nimport { extend, serializeObject } from './utils';\nvar globals = {};\nvar jsonpRequests = 0;\n\nvar RequestResponse = function RequestResponse(obj) {\n Object.assign(this, obj);\n};\n\nvar RequestError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(RequestError, _Error);\n\n function RequestError(obj) {\n var _this;\n\n _this = _Error.call(this) || this;\n Object.assign(_assertThisInitialized(_this), obj);\n return _this;\n }\n\n return RequestError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar request = function request(requestOptions) {\n return new Promise(function (resolve, reject) {\n var window = getWindow();\n var document = getDocument();\n var globalsNoCallbacks = extend({}, globals);\n 'beforeCreate beforeOpen beforeSend error complete success statusCode'.split(' ').forEach(function (callbackName) {\n delete globalsNoCallbacks[callbackName];\n });\n var defaults = 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 var proceedRequest;\n var options = extend({}, defaults, requestOptions);\n\n if (requestOptions.abortController) {\n options.abortController = requestOptions.abortController;\n }\n\n if (options.abortController && options.abortController.canceled) {\n reject(new RequestError({\n options: options,\n status: 'canceled',\n message: 'canceled'\n }));\n return;\n } // Function to run XHR callbacks and events\n\n\n function fireCallback(callbackName) {\n /*\n Callbacks:\n beforeCreate (options),\n beforeOpen (xhr, options),\n beforeSend (xhr, options),\n error (xhr, status, message),\n complete (xhr, status),\n success (response, status, xhr),\n statusCode ()\n */\n var globalCallbackValue;\n var optionCallbackValue;\n\n for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n data[_key - 1] = arguments[_key];\n }\n\n if (globals[callbackName]) {\n globalCallbackValue = globals[callbackName].apply(globals, data);\n }\n\n if (options[callbackName]) {\n optionCallbackValue = options[callbackName].apply(options, data);\n }\n\n if (typeof globalCallbackValue !== 'boolean') globalCallbackValue = true;\n if (typeof optionCallbackValue !== 'boolean') optionCallbackValue = true;\n\n if (options.abortController && options.abortController.canceled && (callbackName === 'beforeCreate' || callbackName === 'beforeOpen' || callbackName === 'beforeSend')) {\n return false;\n }\n\n return globalCallbackValue && optionCallbackValue;\n } // Before create callback\n\n\n proceedRequest = fireCallback('beforeCreate', options);\n\n if (proceedRequest === false) {\n reject(new RequestError({\n options: options,\n status: 'canceled',\n message: 'canceled'\n }));\n return;\n } // For jQuery guys\n\n\n if (options.type) options.method = options.type; // Parameters Prefix\n\n var paramsPrefix = options.url.indexOf('?') >= 0 ? '&' : '?'; // UC method\n\n var method = options.method.toUpperCase(); // Data to modify GET URL\n\n if ((method === 'GET' || method === 'HEAD' || method === 'OPTIONS' || method === 'DELETE') && options.data) {\n var stringData;\n\n if (typeof options.data === 'string') {\n // Should be key=value string\n if (options.data.indexOf('?') >= 0) stringData = options.data.split('?')[1];else stringData = options.data;\n } else {\n // Should be key=value object\n stringData = serializeObject(options.data);\n }\n\n if (stringData.length) {\n options.url += paramsPrefix + stringData;\n if (paramsPrefix === '?') paramsPrefix = '&';\n }\n } // JSONP\n\n\n if (options.dataType === 'json' && options.url.indexOf('callback=') >= 0) {\n var callbackName = \"f7jsonp_\" + (Date.now() + (jsonpRequests += 1));\n var abortTimeout;\n var callbackSplit = options.url.split('callback=');\n var requestUrl = callbackSplit[0] + \"callback=\" + callbackName;\n\n if (callbackSplit[1].indexOf('&') >= 0) {\n var addVars = callbackSplit[1].split('&').filter(function (el) {\n return el.indexOf('=') > 0;\n }).join('&');\n if (addVars.length > 0) requestUrl += \"&\" + addVars;\n } // Create script\n\n\n var script = document.createElement('script');\n script.type = 'text/javascript';\n\n script.onerror = function onerror() {\n clearTimeout(abortTimeout);\n fireCallback('error', null, 'scripterror', 'scripterror');\n reject(new RequestError({\n options: options,\n status: 'scripterror',\n message: 'scripterror'\n }));\n fireCallback('complete', null, 'scripterror');\n };\n\n script.src = requestUrl; // Handler\n\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 resolve(new RequestResponse({\n options: options,\n data: data\n }));\n };\n\n document.querySelector('head').appendChild(script);\n\n if (options.timeout > 0) {\n abortTimeout = setTimeout(function () {\n script.parentNode.removeChild(script);\n script = null;\n fireCallback('error', null, 'timeout', 'timeout');\n reject(new RequestError({\n options: options,\n status: 'timeout',\n message: 'timeout'\n }));\n }, options.timeout);\n }\n\n return;\n } // Cache for GET/HEAD requests\n\n\n if (method === 'GET' || method === 'HEAD' || method === 'OPTIONS' || method === 'DELETE') {\n if (options.cache === false) {\n options.url += paramsPrefix + \"_nocache\" + Date.now();\n }\n } // Create XHR\n\n\n var xhr = new XMLHttpRequest();\n\n if (options.abortController) {\n var aborted = false;\n\n options.abortController.onAbort = function () {\n if (aborted) return;\n aborted = true;\n xhr.abort();\n reject(new RequestError({\n options: options,\n xhr: xhr,\n status: 'canceled',\n message: 'canceled'\n }));\n };\n } // Save Request URL\n\n\n xhr.requestUrl = options.url;\n xhr.requestParameters = options; // Before open callback\n\n proceedRequest = fireCallback('beforeOpen', xhr, options);\n\n if (proceedRequest === false) {\n reject(new RequestError({\n options: options,\n xhr: xhr,\n status: 'canceled',\n message: 'canceled'\n }));\n return;\n } // Open XHR\n\n\n xhr.open(method, options.url, options.async, options.user, options.password); // Create POST Data\n\n var postData = null;\n\n if ((method === 'POST' || method === 'PUT' || method === 'PATCH') && options.data) {\n if (options.processData) {\n var postDataInstances = [ArrayBuffer, Blob, Document, FormData]; // Post Data\n\n if (postDataInstances.indexOf(options.data.constructor) >= 0) {\n postData = options.data;\n } else {\n // POST Headers\n var 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\n postData = '';\n var data = serializeObject(options.data);\n\n if (options.contentType === 'multipart/form-data') {\n data = data.split('&');\n var newData = [];\n\n for (var 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\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\n if (options.dataType === 'json' && (!options.headers || !options.headers.Accept)) {\n xhr.setRequestHeader('Accept', 'application/json');\n } // Additional headers\n\n\n if (options.headers) {\n Object.keys(options.headers).forEach(function (headerName) {\n if (typeof options.headers[headerName] === 'undefined') return;\n xhr.setRequestHeader(headerName, options.headers[headerName]);\n });\n } // Check for crossDomain\n\n\n if (typeof options.crossDomain === 'undefined') {\n options.crossDomain = // eslint-disable-next-line\n /^([\\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 extend(xhr, options.xhrFields);\n } // Handle XHR\n\n\n xhr.onload = function onload() {\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 0) {\n var responseData;\n\n if (options.dataType === 'json') {\n var parseError;\n\n try {\n responseData = JSON.parse(xhr.responseText);\n } catch (err) {\n parseError = true;\n }\n\n if (!parseError) {\n fireCallback('success', responseData, xhr.status, xhr);\n resolve(new RequestResponse({\n options: options,\n data: responseData,\n status: xhr.status,\n xhr: xhr\n }));\n } else {\n fireCallback('error', xhr, 'parseerror', 'parseerror');\n reject(new RequestError({\n options: options,\n xhr: xhr,\n status: 'parseerror',\n message: 'parseerror'\n }));\n }\n } else {\n responseData = xhr.responseType === 'text' || xhr.responseType === '' ? xhr.responseText : xhr.response;\n fireCallback('success', responseData, xhr.status, xhr);\n resolve(new RequestResponse({\n options: options,\n data: responseData,\n status: xhr.status,\n xhr: xhr\n }));\n }\n } else {\n fireCallback('error', xhr, xhr.status, xhr.statusText);\n reject(new RequestError({\n options: options,\n xhr: xhr,\n status: xhr.status,\n message: xhr.statusText\n }));\n }\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\n fireCallback('complete', xhr, xhr.status);\n };\n\n xhr.onerror = function onerror() {\n fireCallback('error', xhr, xhr.status, xhr.status);\n reject(new RequestError({\n options: options,\n xhr: xhr,\n status: xhr.status,\n message: xhr.statusText\n }));\n fireCallback('complete', xhr, 'error');\n }; // Timeout\n\n\n if (options.timeout > 0) {\n xhr.timeout = options.timeout;\n\n xhr.ontimeout = function () {\n fireCallback('error', xhr, 'timeout', 'timeout');\n reject(new RequestError({\n options: options,\n xhr: xhr,\n status: 'timeout',\n message: 'timeout'\n }));\n fireCallback('complete', xhr, 'timeout');\n };\n } // Ajax start callback\n\n\n proceedRequest = fireCallback('beforeSend', xhr, options);\n\n if (proceedRequest === false) {\n reject(new RequestError({\n options: options,\n xhr: xhr,\n status: 'canceled',\n message: 'canceled'\n }));\n return;\n } // Send XHR\n\n\n xhr.send(postData);\n });\n};\n\nfunction requestShortcut(method) {\n var _ref = [],\n url = _ref[0],\n data = _ref[1],\n success = _ref[2],\n error = _ref[3],\n dataType = _ref[4];\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n if (typeof args[1] === 'function') {\n url = args[0];\n success = args[1];\n error = args[2];\n dataType = args[3];\n } else {\n url = args[0];\n data = args[1];\n success = args[2];\n error = args[3];\n dataType = args[4];\n }\n\n [success, error].forEach(function (callback) {\n if (typeof callback === 'string') {\n dataType = callback;\n if (callback === success) success = undefined;else error = undefined;\n }\n });\n dataType = dataType || (method === 'json' || method === 'postJSON' ? 'json' : undefined);\n var requestOptions = {\n url: url,\n method: method === 'post' || method === 'postJSON' ? 'POST' : 'GET',\n data: data,\n success: success,\n error: error,\n dataType: dataType\n };\n\n if (method === 'postJSON') {\n extend(requestOptions, {\n contentType: 'application/json',\n processData: false,\n crossDomain: true,\n data: typeof data === 'string' ? data : JSON.stringify(data)\n });\n }\n\n return request(requestOptions);\n}\n\nObject.assign(request, {\n get: function get() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return requestShortcut.apply(void 0, ['get'].concat(args));\n },\n post: function post() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return requestShortcut.apply(void 0, ['post'].concat(args));\n },\n json: function json() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return requestShortcut.apply(void 0, ['json'].concat(args));\n },\n getJSON: function getJSON() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return requestShortcut.apply(void 0, ['json'].concat(args));\n },\n postJSON: function postJSON() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return requestShortcut.apply(void 0, ['postJSON'].concat(args));\n }\n});\n\nrequest.abortController = function () {\n var contoller = {\n canceled: false,\n onAbort: null,\n abort: function abort() {\n contoller.canceled = true;\n if (contoller.onAbort) contoller.onAbort();\n }\n };\n return contoller;\n};\n\nrequest.setup = function setup(options) {\n if (options.type && !options.method) {\n extend(options, {\n method: options.type\n });\n }\n\n extend(globals, options);\n};\n\nexport default request;","/* eslint no-param-reassign: \"off\" */\nimport request from '../../shared/request';\nexport default {\n name: 'request',\n proto: {\n request: request\n },\n static: {\n request: request\n }\n};","/* eslint-disable no-nested-ternary */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7';\nimport { getSupport } from '../../shared/get-support';\nimport { getDevice } from '../../shared/get-device';\nimport { extend } from '../../shared/utils';\n\nfunction initTouch() {\n var app = this;\n var device = getDevice();\n var support = getSupport();\n var window = getWindow();\n var document = getDocument();\n var params = app.params.touch;\n var 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', function () {});\n }\n\n var touchStartX;\n var touchStartY;\n var targetElement;\n var isMoved;\n var tapHoldFired;\n var tapHoldTimeout;\n var preventClick;\n var activableElement;\n var activeTimeout;\n var rippleWave;\n var rippleTarget;\n var rippleTimeout;\n\n function findActivableElement(el) {\n var target = $(el);\n var parents = target.parents(params.activeStateElements);\n\n if (target.closest('.no-active-state').length) {\n return null;\n }\n\n var activable;\n\n if (target.is(params.activeStateElements)) {\n activable = target;\n }\n\n if (parents.length > 0) {\n activable = activable ? activable.add(parents) : parents;\n }\n\n if (activable && activable.length > 1) {\n var newActivable = [];\n var preventPropagation;\n\n for (var i = 0; i < activable.length; i += 1) {\n if (!preventPropagation) {\n newActivable.push(activable[i]);\n\n if (activable.eq(i).hasClass('prevent-active-state-propagation') || activable.eq(i).hasClass('no-active-state-propagation')) {\n preventPropagation = true;\n }\n }\n }\n\n activable = $(newActivable);\n }\n\n return activable || target;\n }\n\n function isInsideScrollableView(el) {\n var 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\n function removeActive() {\n if (!activableElement) return;\n activableElement.removeClass('active-state');\n activableElement = null;\n } // Ripple handlers\n\n\n function findRippleElement(el) {\n var rippleElements = params.touchRippleElements;\n var $el = $(el);\n\n if ($el.is(rippleElements)) {\n if ($el.hasClass('no-ripple')) {\n return false;\n }\n\n return $el;\n }\n\n if ($el.parents(rippleElements).length > 0) {\n var rippleParent = $el.parents(rippleElements).eq(0);\n\n if (rippleParent.hasClass('no-ripple')) {\n return false;\n }\n\n return rippleParent;\n }\n\n return false;\n }\n\n function createRipple($el, x, y) {\n if (!$el) return;\n rippleWave = app.touchRipple.create(app, $el, x, y);\n }\n\n function removeRipple() {\n if (!rippleWave) return;\n rippleWave.remove();\n rippleWave = undefined;\n rippleTarget = undefined;\n }\n\n function rippleTouchStart(el) {\n rippleTarget = findRippleElement(el);\n\n if (!rippleTarget || rippleTarget.length === 0) {\n rippleTarget = undefined;\n return;\n }\n\n var inScrollable = isInsideScrollableView(rippleTarget);\n\n if (!inScrollable) {\n removeRipple();\n createRipple(rippleTarget, touchStartX, touchStartY);\n } else {\n clearTimeout(rippleTimeout);\n rippleTimeout = setTimeout(function () {\n removeRipple();\n createRipple(rippleTarget, touchStartX, touchStartY);\n }, 80);\n }\n }\n\n function rippleTouchMove() {\n clearTimeout(rippleTimeout);\n removeRipple();\n }\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 } // Mouse Handlers\n\n\n function handleMouseDown(e) {\n var $activableEl = findActivableElement(e.target);\n\n if ($activableEl) {\n $activableEl.addClass('active-state');\n\n if ('which' in e && e.which === 3) {\n setTimeout(function () {\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\n function handleMouseMove() {\n if (!params.activeStateOnMouseMove) {\n $('.active-state').removeClass('active-state');\n }\n\n if (useRipple) {\n rippleTouchMove();\n }\n }\n\n function handleMouseUp() {\n $('.active-state').removeClass('active-state');\n\n if (useRipple) {\n rippleTouchEnd();\n }\n }\n\n function handleTouchCancel() {\n targetElement = null; // Remove Active State\n\n clearTimeout(activeTimeout);\n clearTimeout(tapHoldTimeout);\n\n if (params.activeState) {\n removeActive();\n } // Remove Ripple\n\n\n if (useRipple) {\n rippleTouchEnd();\n }\n }\n\n var isScrolling;\n var isSegmentedStrong = false;\n var segmentedStrongEl = null;\n var touchMoveActivableIos = '.dialog-button, .actions-button';\n var isTouchMoveActivable = false;\n var touchmoveActivableEl = null;\n\n function handleTouchStart(e) {\n isMoved = false;\n tapHoldFired = false;\n preventClick = false;\n isScrolling = undefined;\n\n if (e.targetTouches.length > 1) {\n if (activableElement) removeActive();\n return true;\n }\n\n if (e.touches.length > 1 && activableElement) {\n removeActive();\n }\n\n if (params.tapHold) {\n if (tapHoldTimeout) clearTimeout(tapHoldTimeout);\n tapHoldTimeout = setTimeout(function () {\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\n targetElement = e.target;\n touchStartX = e.targetTouches[0].pageX;\n touchStartY = e.targetTouches[0].pageY;\n isSegmentedStrong = e.target.closest('.segmented-strong .button-active, .segmented-strong .tab-link-active');\n isTouchMoveActivable = app.theme === 'ios' && e.target.closest(touchMoveActivableIos);\n\n if (isSegmentedStrong) {\n segmentedStrongEl = isSegmentedStrong.closest('.segmented-strong');\n }\n\n if (params.activeState) {\n activableElement = findActivableElement(targetElement);\n\n if (activableElement && !isInsideScrollableView(activableElement)) {\n addActive();\n } else if (activableElement) {\n activeTimeout = setTimeout(addActive, 80);\n }\n }\n\n if (useRipple) {\n rippleTouchStart(targetElement, touchStartX, touchStartY);\n }\n\n return true;\n }\n\n function handleTouchMove(e) {\n var touch;\n var distance;\n var shouldRemoveActive = true;\n\n if (e.type === 'touchmove') {\n touch = e.targetTouches[0];\n distance = params.touchClicksDistanceThreshold;\n }\n\n var touchCurrentX = e.targetTouches[0].pageX;\n var touchCurrentY = e.targetTouches[0].pageY;\n\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(isScrolling || Math.abs(touchCurrentY - touchStartY) > Math.abs(touchCurrentX - touchStartX));\n }\n\n if (isTouchMoveActivable || !isScrolling && isSegmentedStrong && segmentedStrongEl) {\n if (e.cancelable) e.preventDefault();\n }\n\n if (!isScrolling && isSegmentedStrong && segmentedStrongEl) {\n var elementFromPoint = document.elementFromPoint(e.targetTouches[0].clientX, e.targetTouches[0].clientY);\n var buttonEl = elementFromPoint.closest('.segmented-strong .button:not(.button-active):not(.tab-link-active)');\n\n if (buttonEl && segmentedStrongEl.contains(buttonEl)) {\n $(buttonEl).trigger('click', 'f7Segmented');\n targetElement = buttonEl;\n }\n }\n\n if (distance && touch) {\n var pageX = touch.pageX;\n var pageY = touch.pageY;\n\n if (Math.abs(pageX - touchStartX) > distance || Math.abs(pageY - touchStartY) > distance) {\n isMoved = true;\n }\n } else {\n isMoved = true;\n }\n\n if (isMoved) {\n preventClick = true; // Keep active state on touchMove (for dialog and actions buttons)\n\n if (isTouchMoveActivable) {\n var _elementFromPoint = document.elementFromPoint(e.targetTouches[0].clientX, e.targetTouches[0].clientY);\n\n touchmoveActivableEl = _elementFromPoint.closest(touchMoveActivableIos);\n\n if (touchmoveActivableEl && activableElement && activableElement[0] === touchmoveActivableEl) {\n shouldRemoveActive = false;\n } else if (touchmoveActivableEl) {\n setTimeout(function () {\n activableElement = findActivableElement(touchmoveActivableEl);\n addActive();\n });\n }\n }\n\n if (params.tapHold) {\n clearTimeout(tapHoldTimeout);\n }\n\n if (params.activeState && shouldRemoveActive) {\n clearTimeout(activeTimeout);\n removeActive();\n }\n\n if (useRipple) {\n rippleTouchMove();\n }\n }\n }\n\n function handleTouchEnd(e) {\n isScrolling = undefined;\n isSegmentedStrong = false;\n segmentedStrongEl = null;\n isTouchMoveActivable = false;\n clearTimeout(activeTimeout);\n clearTimeout(tapHoldTimeout);\n\n if (touchmoveActivableEl) {\n $(touchmoveActivableEl).trigger('click', 'f7TouchMoveActivable');\n touchmoveActivableEl = null;\n }\n\n if (document.activeElement === e.target) {\n if (params.activeState) removeActive();\n\n if (useRipple) {\n rippleTouchEnd();\n }\n\n return true;\n }\n\n if (params.activeState) {\n addActive();\n setTimeout(removeActive, 0);\n }\n\n if (useRipple) {\n rippleTouchEnd();\n }\n\n if (params.tapHoldPreventClicks && tapHoldFired || preventClick) {\n if (e.cancelable) e.preventDefault();\n preventClick = true;\n return false;\n }\n\n return true;\n }\n\n function handleClick(e) {\n var isOverswipe = e && e.detail && e.detail === 'f7Overswipe';\n var isSegmented = e && e.detail && e.detail === 'f7Segmented'; // eslint-disable-next-line\n\n var isTouchMoveActivable = e && e.detail && e.detail === 'f7TouchMoveActivable';\n var localPreventClick = preventClick;\n\n if (targetElement && e.target !== targetElement) {\n if (isOverswipe || isSegmented || isTouchMoveActivable) {\n localPreventClick = false;\n } else {\n localPreventClick = true;\n }\n } else if (isTouchMoveActivable) {\n localPreventClick = false;\n }\n\n if (params.tapHold && params.tapHoldPreventClicks && tapHoldFired) {\n localPreventClick = true;\n }\n\n if (localPreventClick) {\n e.stopImmediatePropagation();\n e.stopPropagation();\n e.preventDefault();\n }\n\n if (params.tapHold) {\n tapHoldTimeout = setTimeout(function () {\n tapHoldFired = false;\n }, device.ios || device.androidChrome ? 100 : 400);\n }\n\n preventClick = false;\n targetElement = null;\n return !localPreventClick;\n }\n\n function emitAppTouchEvent(name, e) {\n app.emit({\n events: name,\n data: [e]\n });\n }\n\n function appClick(e) {\n emitAppTouchEvent('click', e);\n }\n\n function appTouchStartActive(e) {\n emitAppTouchEvent('touchstart touchstart:active', e);\n }\n\n function appTouchMoveActive(e) {\n emitAppTouchEvent('touchmove touchmove:active', e);\n }\n\n function appTouchEndActive(e) {\n emitAppTouchEvent('touchend touchend:active', e);\n }\n\n function appTouchStartPassive(e) {\n emitAppTouchEvent('touchstart:passive', e);\n }\n\n function appTouchMovePassive(e) {\n emitAppTouchEvent('touchmove:passive', e);\n }\n\n function appTouchEndPassive(e) {\n emitAppTouchEvent('touchend:passive', e);\n }\n\n var passiveListener = support.passiveListener ? {\n passive: true\n } : false;\n var passiveListenerCapture = support.passiveListener ? {\n passive: true,\n capture: true\n } : true;\n var activeListener = support.passiveListener ? {\n passive: false\n } : false;\n var activeListenerCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\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 document.addEventListener(app.touchEvents.start, appTouchStartPassive, passiveListenerCapture);\n document.addEventListener(app.touchEvents.move, appTouchMovePassive, passiveListener);\n document.addEventListener(app.touchEvents.end, appTouchEndPassive, passiveListener);\n } else {\n document.addEventListener(app.touchEvents.start, function (e) {\n appTouchStartActive(e);\n appTouchStartPassive(e);\n }, true);\n document.addEventListener(app.touchEvents.move, function (e) {\n appTouchMoveActive(e);\n appTouchMovePassive(e);\n }, false);\n document.addEventListener(app.touchEvents.end, function (e) {\n appTouchEndActive(e);\n appTouchEndPassive(e);\n }, false);\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, {\n passive: true\n });\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, {\n passive: true\n });\n }\n\n document.addEventListener('contextmenu', function (e) {\n if (params.disableContextMenu && (device.ios || device.android || device.cordova || window.Capacitor && window.Capacitor.isNative)) {\n e.preventDefault();\n }\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 touchRippleInsetElements: '.ripple-inset, .icon-only, .searchbar-disable-button, .input-clear-button, .notification-close-button, .md .navbar .link.back'\n }\n },\n create: function create() {\n var app = this;\n var support = getSupport();\n extend(app, {\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 },\n on: {\n init: initTouch\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 var groupsRegex = /\\((?:\\?<(.*?)>)?(?!\\?)/g;\n var index = 0;\n var execResult = groupsRegex.exec(path.source);\n while (execResult) {\n keys.push({\n // Use parenthesized substring match if available, index otherwise\n name: execResult[1] || index++,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\"\n });\n execResult = groupsRegex.exec(path.source);\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 { getWindow, getDocument } from 'ssr-window';\nimport $ from './dom7';\nimport { extend } from './utils';\nvar History = {\n queue: [],\n clearQueue: function clearQueue() {\n if (History.queue.length === 0) return;\n var currentQueue = History.queue.shift();\n currentQueue();\n },\n routerQueue: [],\n clearRouterQueue: function clearRouterQueue() {\n if (History.routerQueue.length === 0) return;\n var currentQueue = History.routerQueue.pop();\n var router = currentQueue.router,\n stateUrl = currentQueue.stateUrl,\n action = currentQueue.action;\n var animate = router.params.animate;\n if (router.params.browserHistoryAnimate === false) animate = false;\n\n if (action === 'back') {\n router.back({\n animate: animate,\n browserHistory: false\n });\n }\n\n if (action === 'load') {\n router.navigate(stateUrl, {\n animate: animate,\n browserHistory: false\n });\n }\n },\n handle: function handle(e) {\n if (History.blockPopstate) return;\n var app = this; // const mainView = app.views.main;\n\n var state = e.state;\n History.previousState = History.state;\n History.state = state;\n History.allowChange = true;\n History.clearQueue();\n state = History.state;\n if (!state) state = {};\n app.views.forEach(function (view) {\n var router = view.router;\n var viewState = state[view.id];\n\n if (!viewState && view.params.browserHistory) {\n viewState = {\n url: view.router.history[0]\n };\n }\n\n if (!viewState) return;\n var stateUrl = viewState.url || undefined;\n var animate = router.params.animate;\n if (router.params.browserHistoryAnimate === 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({\n animate: animate,\n browserHistory: false\n });\n } else {\n History.routerQueue.push({\n action: 'back',\n router: router\n });\n }\n } else if (router.allowPageChange) {\n // Load page\n router.navigate(stateUrl, {\n animate: animate,\n browserHistory: false\n });\n } else {\n History.routerQueue.unshift({\n action: 'load',\n stateUrl: stateUrl,\n router: router\n });\n }\n }\n });\n },\n initViewState: function initViewState(viewId, viewState) {\n var _extend;\n\n var window = getWindow();\n var newState = extend({}, History.state || {}, (_extend = {}, _extend[viewId] = viewState, _extend));\n History.state = newState;\n window.history.replaceState(newState, '');\n },\n push: function push(viewId, viewState, url) {\n var _extend2;\n\n var window = getWindow();\n\n if (url.substr(-3) === '#!/') {\n // eslint-disable-next-line\n url = url.replace('#!/', '');\n }\n\n if (!History.allowChange) {\n History.queue.push(function () {\n History.push(viewId, viewState, url);\n });\n return;\n }\n\n History.previousState = History.state;\n var newState = extend({}, History.previousState || {}, (_extend2 = {}, _extend2[viewId] = viewState, _extend2));\n History.state = newState;\n window.history.pushState(newState, '', url);\n },\n replace: function replace(viewId, viewState, url) {\n var _extend3;\n\n var window = getWindow();\n\n if (url.substr(-3) === '#!/') {\n // eslint-disable-next-line\n url = url.replace('#!/', '');\n }\n\n if (!History.allowChange) {\n History.queue.push(function () {\n History.replace(viewId, viewState, url);\n });\n return;\n }\n\n History.previousState = History.state;\n var newState = extend({}, History.previousState || {}, (_extend3 = {}, _extend3[viewId] = viewState, _extend3));\n History.state = newState;\n window.history.replaceState(newState, '', url);\n },\n go: function go(index) {\n var window = getWindow();\n History.allowChange = false;\n window.history.go(index);\n },\n back: function back() {\n var window = getWindow();\n History.allowChange = false;\n window.history.back();\n },\n allowChange: true,\n previousState: {},\n state: {},\n blockPopstate: true,\n init: function init(app) {\n var window = getWindow();\n var document = getDocument();\n History.state = window.history.state;\n $(window).on('load', function () {\n setTimeout(function () {\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};\nexport default History;","import { extend } from '../../shared/utils';\nexport default function redirect(direction, route, options) {\n var router = this;\n var r = route.route.redirect;\n var method = direction === 'forward' ? 'navigate' : 'back';\n\n if (options.initial && router.params.browserHistory) {\n options.replaceState = true; // eslint-disable-line\n\n options.history = true; // eslint-disable-line\n }\n\n function redirectResolve(redirectUrl, redirectOptions) {\n if (redirectOptions === void 0) {\n redirectOptions = {};\n }\n\n router.allowPageChange = true;\n router[method](redirectUrl, extend({}, options, redirectOptions));\n }\n\n function redirectReject() {\n router.allowPageChange = true;\n }\n\n if (typeof r === 'function') {\n router.allowPageChange = false;\n var redirectUrl = r.call(router, {\n router: router,\n to: route,\n resolve: redirectResolve,\n reject: redirectReject,\n direction: direction,\n app: router.app\n });\n\n if (redirectUrl && typeof redirectUrl === 'string') {\n router.allowPageChange = true;\n return router[method](redirectUrl, options);\n }\n\n return router;\n }\n\n return router[method](r, options);\n}","function processQueue(router, routerQueue, routeQueue, to, from, resolve, _reject, direction) {\n var queue = [];\n\n if (Array.isArray(routeQueue)) {\n queue.push.apply(queue, routeQueue);\n } else if (routeQueue && typeof routeQueue === 'function') {\n queue.push(routeQueue);\n }\n\n if (routerQueue) {\n if (Array.isArray(routerQueue)) {\n queue.push.apply(queue, routerQueue);\n } else {\n queue.push(routerQueue);\n }\n }\n\n function next() {\n if (queue.length === 0) {\n resolve();\n return;\n }\n\n var queueItem = queue.shift();\n queueItem.call(router, {\n router: router,\n to: to,\n from: from,\n resolve: function resolve() {\n next();\n },\n reject: function reject() {\n _reject();\n },\n direction: direction,\n app: router.app\n });\n }\n\n next();\n}\n\nexport default function processRouteQueue(to, from, resolve, reject, direction) {\n var router = this;\n\n function enterNextRoute() {\n if (to && to.route && (router.params.routesBeforeEnter || to.route.beforeEnter)) {\n router.allowPageChange = false;\n processQueue(router, router.params.routesBeforeEnter, to.route.beforeEnter, to, from, function () {\n router.allowPageChange = true;\n resolve();\n }, function () {\n reject();\n }, direction);\n } else {\n resolve();\n }\n }\n\n function leaveCurrentRoute() {\n if (from && from.route && (router.params.routesBeforeLeave || from.route.beforeLeave)) {\n router.allowPageChange = false;\n processQueue(router, router.params.routesBeforeLeave, from.route.beforeLeave, to, from, function () {\n router.allowPageChange = true;\n enterNextRoute();\n }, function () {\n reject();\n }, direction);\n } else {\n enterNextRoute();\n }\n }\n\n leaveCurrentRoute();\n}","export default function appRouterCheck(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}","export default function asyncComponent(router, component, resolve, reject) {\n function resolvePromise(componentPromise) {\n componentPromise.then(function (c) {\n // eslint-disable-next-line\n resolve({\n component: c.default || c._default || c\n });\n }).catch(function (err) {\n reject();\n throw new Error(err);\n });\n }\n\n if (component instanceof Promise) {\n resolvePromise(component);\n return;\n }\n\n var asyncComponentResult = component.call(router);\n\n if (asyncComponentResult instanceof Promise) {\n resolvePromise(asyncComponentResult);\n } else {\n resolve({\n component: asyncComponentResult\n });\n }\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7';\nimport { extend, parseUrlQuery } from '../../shared/utils';\nimport History from '../../shared/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 var router = this;\n appRouterCheck(router, 'refreshPage');\n return router.navigate(router.currentRoute.url, {\n ignoreCache: true,\n reloadCurrent: true\n });\n}\n\nfunction forward(router, el, forwardOptions) {\n if (forwardOptions === void 0) {\n forwardOptions = {};\n }\n\n var document = getDocument();\n var $el = $(el);\n var app = router.app;\n var view = router.view;\n var options = extend(false, {\n animate: router.params.animate,\n browserHistory: 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 var masterDetailEnabled = router.params.masterDetailBreakpoint > 0;\n var isMaster = masterDetailEnabled && options.route && options.route.route && (options.route.route.master === true || typeof options.route.route.master === 'function' && options.route.route.master(app, router));\n var masterPageEl;\n var otherDetailPageEl;\n var detailsInBetweenRemoved = 0;\n var currentRouteIsModal = router.currentRoute.modal;\n var modalType;\n\n if (!currentRouteIsModal) {\n 'popup popover sheet loginScreen actions customModal panel'.split(' ').forEach(function (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 var modalToClose = router.currentRoute.modal || router.currentRoute.route.modalInstance || app[modalType].get();\n var previousUrl = router.history[router.history.length - 2];\n var previousRoute = router.findMatchingRoute(previousUrl);\n\n if (!previousRoute && previousUrl) {\n previousRoute = {\n url: previousUrl,\n path: previousUrl.split('?')[0],\n query: parseUrlQuery(previousUrl),\n route: {\n path: previousUrl.split('?')[0],\n url: previousUrl\n }\n };\n }\n\n router.modalRemove(modalToClose);\n }\n\n var dynamicNavbar = router.dynamicNavbar;\n var $viewEl = router.$el;\n var $newPage = $el;\n var reload = options.reloadPrevious || options.reloadCurrent || options.reloadAll;\n var $oldPage;\n var $navbarsEl;\n var $newNavbarEl;\n var $oldNavbarEl;\n router.allowPageChange = false;\n\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\n if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) {\n // Try from pageData\n $newNavbarEl = $newPage[0].f7Page.$navbarEl;\n }\n } // Save Keep Alive Cache\n\n\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 } // Pages In View\n\n\n var $pagesInView = $viewEl.children('.page:not(.stacked)').filter(function (pageInView) {\n return pageInView !== $newPage[0];\n }); // Navbars In View\n\n var $navbarsInView;\n\n if (dynamicNavbar) {\n $navbarsInView = $navbarsEl.children('.navbar:not(.stacked)').filter(function (navbarInView) {\n return navbarInView !== $newNavbarEl[0];\n });\n } // Exit when reload previous and only 1 page in view so nothing ro reload\n\n\n if (options.reloadPrevious && $pagesInView.length < 2) {\n router.allowPageChange = true;\n return router;\n } // Find Detail' master page\n\n\n var isDetail;\n var reloadDetail;\n var isDetailRoot;\n\n if (masterDetailEnabled && !options.reloadAll) {\n for (var i = 0; i < $pagesInView.length; i += 1) {\n if (!masterPageEl && $pagesInView[i].classList.contains('page-master')) {\n masterPageEl = $pagesInView[i];\n continue; // eslint-disable-line\n }\n }\n\n isDetail = !isMaster && masterPageEl;\n\n if (isDetail) {\n // Find Other Detail\n if (masterPageEl) {\n for (var _i = 0; _i < $pagesInView.length; _i += 1) {\n if ($pagesInView[_i].classList.contains('page-master-detail')) {\n otherDetailPageEl = $pagesInView[_i];\n continue; // eslint-disable-line\n }\n }\n }\n }\n\n reloadDetail = isDetail && options.reloadDetail && app.width >= router.params.masterDetailBreakpoint && masterPageEl;\n }\n\n if (isDetail) {\n isDetailRoot = !otherDetailPageEl || reloadDetail || options.reloadAll || options.reloadCurrent;\n } // New Page\n\n\n var newPagePosition = 'next';\n\n if (options.reloadCurrent || options.reloadAll || reloadDetail) {\n newPagePosition = 'current';\n } else if (options.reloadPrevious) {\n newPagePosition = 'previous';\n }\n\n $newPage.removeClass('page-previous page-current page-next').addClass(\"page-\" + newPagePosition + (isMaster ? ' page-master' : '') + (isDetail ? ' page-master-detail' : '') + (isDetailRoot ? ' page-master-detail-root' : '')).removeClass('stacked').trigger('page:unstack').trigger('page:position', {\n position: newPagePosition\n });\n router.emit('pageUnstack', $newPage[0]);\n router.emit('pagePosition', $newPage[0], newPagePosition);\n\n if (isMaster || isDetail) {\n $newPage.trigger('page:role', {\n role: isMaster ? 'master' : 'detail',\n root: !!isDetailRoot\n });\n router.emit('pageRole', $newPage[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot\n });\n }\n\n if (dynamicNavbar && $newNavbarEl.length) {\n $newNavbarEl.removeClass('navbar-previous navbar-current navbar-next').addClass(\"navbar-\" + newPagePosition + (isMaster ? ' navbar-master' : '') + (isDetail ? ' navbar-master-detail' : '') + (isDetailRoot ? ' navbar-master-detail-root' : '')).removeClass('stacked');\n $newNavbarEl.trigger('navbar:position', {\n position: newPagePosition\n });\n router.emit('navbarPosition', $newNavbarEl[0], newPagePosition);\n\n if (isMaster || isDetail) {\n router.emit('navbarRole', $newNavbarEl[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot\n });\n }\n } // Find Old Page\n\n\n if (options.reloadCurrent || reloadDetail) {\n if (reloadDetail) {\n $oldPage = $pagesInView.filter(function (pageEl) {\n return !pageEl.classList.contains('page-master');\n });\n\n if (dynamicNavbar) {\n $oldNavbarEl = $($oldPage.map(function (pageEl) {\n return app.navbar.getElByPage(pageEl);\n }));\n }\n\n if ($oldPage.length > 1 && masterPageEl) {\n detailsInBetweenRemoved = $oldPage.length - 1;\n $(masterPageEl).removeClass('page-master-stacked').trigger('page:masterunstack');\n router.emit('pageMasterUnstack', masterPageEl);\n\n if (dynamicNavbar) {\n $(app.navbar.getElByPage(masterPageEl)).removeClass('navbar-master-stacked');\n router.emit('navbarMasterUnstack', app.navbar.getElByPage(masterPageEl));\n }\n }\n } else {\n $oldPage = $pagesInView.eq($pagesInView.length - 1);\n\n if (dynamicNavbar) {\n $oldNavbarEl = $(app.navbar.getElByPage($oldPage));\n }\n }\n } else if (options.reloadPrevious) {\n $oldPage = $pagesInView.eq($pagesInView.length - 2);\n\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(function (pageEl) {\n return pageEl !== $newPage[0];\n });\n\n if (dynamicNavbar) {\n $oldNavbarEl = $navbarsInView.filter(function (navbarEl) {\n return navbarEl !== $newNavbarEl[0];\n });\n }\n } else {\n var removedPageEls = [];\n var removedNavbarEls = [];\n\n if ($pagesInView.length > 1) {\n var _i2 = 0;\n\n for (_i2 = 0; _i2 < $pagesInView.length - 1; _i2 += 1) {\n if (masterPageEl && $pagesInView[_i2] === masterPageEl) {\n $pagesInView.eq(_i2).addClass('page-master-stacked');\n $pagesInView.eq(_i2).trigger('page:masterstack');\n router.emit('pageMasterStack', $pagesInView[_i2]);\n\n if (dynamicNavbar) {\n $(app.navbar.getElByPage(masterPageEl)).addClass('navbar-master-stacked');\n router.emit('navbarMasterStack', app.navbar.getElByPage(masterPageEl));\n }\n\n continue; // eslint-disable-line\n }\n\n var oldNavbarEl = app.navbar.getElByPage($pagesInView.eq(_i2));\n\n if (router.params.stackPages) {\n $pagesInView.eq(_i2).addClass('stacked');\n $pagesInView.eq(_i2).trigger('page:stack');\n router.emit('pageStack', $pagesInView[_i2]);\n\n if (dynamicNavbar) {\n $(oldNavbarEl).addClass('stacked');\n }\n } else {\n // Page remove event\n removedPageEls.push($pagesInView[_i2]);\n router.pageCallback('beforeRemove', $pagesInView[_i2], $navbarsInView && $navbarsInView[_i2], 'previous', undefined, options);\n router.removePage($pagesInView[_i2]);\n\n if (dynamicNavbar && oldNavbarEl) {\n removedNavbarEls.push(oldNavbarEl);\n router.removeNavbar(oldNavbarEl);\n }\n }\n }\n }\n\n $oldPage = $viewEl.children('.page:not(.stacked)').filter(function (pageEl) {\n return pageEl !== $newPage[0] && removedPageEls.indexOf(pageEl) < 0;\n });\n\n if (dynamicNavbar) {\n $oldNavbarEl = $navbarsEl.children('.navbar:not(.stacked)').filter(function (navbarEl) {\n return navbarEl !== $newNavbarEl[0] && removedNavbarEls.indexOf(removedNavbarEls) < 0;\n });\n }\n\n removedPageEls = [];\n removedNavbarEls = [];\n }\n\n if (isDetail && !options.reloadAll) {\n if ($oldPage.length > 1 || reloadDetail) {\n $oldPage = $oldPage.filter(function (pageEl) {\n return !pageEl.classList.contains('page-master');\n });\n }\n\n if ($oldNavbarEl && ($oldNavbarEl.length > 1 || reloadDetail)) {\n $oldNavbarEl = $oldNavbarEl.filter(function (navbarEl) {\n return !navbarEl.classList.contains('navbar-master');\n });\n }\n } // Push State\n\n\n if (router.params.browserHistory && (options.browserHistory || options.replaceState) && !options.reloadPrevious) {\n var browserHistoryRoot = router.params.browserHistoryRoot || '';\n History[options.reloadCurrent || reloadDetail && otherDetailPageEl || options.reloadAll || options.replaceState ? 'replace' : 'push'](view.id, {\n url: options.route.url\n }, browserHistoryRoot + router.params.browserHistorySeparator + options.route.url);\n }\n\n if (!options.reloadPrevious) {\n // Current Page & Navbar\n router.currentPageEl = $newPage[0];\n\n if (dynamicNavbar && $newNavbarEl.length) {\n router.currentNavbarEl = $newNavbarEl[0];\n } else {\n delete router.currentNavbarEl;\n } // Current Route\n\n\n router.currentRoute = options.route;\n } // Update router history\n\n\n var url = options.route.url;\n\n if (options.history) {\n if (((options.reloadCurrent || reloadDetail && otherDetailPageEl) && router.history.length) > 0 || options.replaceState) {\n if (reloadDetail && detailsInBetweenRemoved > 0) {\n router.history = router.history.slice(0, router.history.length - detailsInBetweenRemoved);\n }\n\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\n router.saveHistory(); // Insert new page and navbar\n\n var newPageInDom = $newPage.parents(document).length > 0;\n var f7Component = $newPage[0].f7Component;\n\n if (options.reloadPrevious) {\n if (f7Component && !newPageInDom) {\n f7Component.mount(function (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\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\n $navbarsEl.append($newNavbarEl);\n }\n }\n } else {\n if ($oldPage.next('.page')[0] !== $newPage[0]) {\n if (f7Component && !newPageInDom) {\n f7Component.mount(function (componentEl) {\n $viewEl.append(componentEl);\n });\n } else {\n $viewEl.append($newPage[0]);\n }\n }\n\n if (dynamicNavbar && $newNavbarEl.length) {\n if ($newNavbarEl.find('.title-large').length) {\n $newNavbarEl.addClass('navbar-large');\n }\n\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n\n $navbarsEl.append($newNavbarEl[0]);\n }\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 } // Remove old page\n\n\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\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\n if (dynamicNavbar && $oldNavbarEl && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n } else if (options.reloadAll) {\n $oldPage.each(function (pageEl, index) {\n var $oldPageEl = $(pageEl);\n var $oldNavbarElEl = $(app.navbar.getElByPage($oldPageEl));\n\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\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\n router.pageCallback('beforeRemove', $oldPageEl, $oldNavbarEl && $oldNavbarEl.eq(index), 'previous', undefined, options);\n router.removePage($oldPageEl);\n\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\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\n if (dynamicNavbar && $oldNavbarEl && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n } // Load Tab\n\n\n if (options.route.route.tab) {\n router.tabLoad(options.route.route.tab, extend({}, options, {\n history: false,\n browserHistory: false\n }));\n } // Check master detail\n\n\n if (masterDetailEnabled) {\n view.checkMasterDetailBreakpoint();\n } // Page init and before init events\n\n\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\n if (dynamicNavbar && $newNavbarEl) {\n $newNavbarEl.removeAttr('aria-hidden');\n }\n\n router.pageCallback('afterIn', $newPage, $newNavbarEl, newPagePosition, 'current', options);\n if (options.reloadCurrent && options.clearPreviousHistory) router.clearPreviousHistory();\n\n if (reloadDetail) {\n router.setPagePosition($(masterPageEl), 'previous');\n\n if (masterPageEl.f7Page && masterPageEl.f7Page.navbarEl) {\n router.setNavbarPosition($(masterPageEl.f7Page.navbarEl), 'previous');\n }\n }\n\n return router;\n }\n\n if (options.reloadPrevious) {\n router.allowPageChange = true;\n return router;\n } // Before animation event\n\n\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'previous', options);\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'next', 'current', options); // Animation\n\n function afterAnimation() {\n router.setPagePosition($newPage, 'current', false);\n router.setPagePosition($oldPage, 'previous', !$oldPage.hasClass('page-master'));\n\n if (dynamicNavbar) {\n router.setNavbarPosition($newNavbarEl, 'current', false);\n router.setNavbarPosition($oldNavbarEl, 'previous', !$oldNavbarEl.hasClass('navbar-master'));\n } // After animation event\n\n\n router.allowPageChange = true;\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'previous', options);\n router.pageCallback('afterIn', $newPage, $newNavbarEl, 'next', 'current', options);\n var keepOldPage = (router.params.preloadPreviousPage || router.params[app.theme + \"SwipeBack\"]) && !isMaster;\n\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\n if (!keepOldPage) {\n if (router.params.stackPages) {\n $oldPage.addClass('stacked');\n $oldPage.trigger('page:stack');\n router.emit('pageStack', $oldPage[0]);\n\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\n if (dynamicNavbar && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n }\n\n if (options.clearPreviousHistory) router.clearPreviousHistory();\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n\n if (router.params.browserHistory) {\n History.clearRouterQueue();\n }\n }\n\n function setPositionClasses() {\n router.setPagePosition($oldPage, 'current', false);\n router.setPagePosition($newPage, 'next', false);\n\n if (dynamicNavbar) {\n router.setNavbarPosition($oldNavbarEl, 'current', false);\n router.setNavbarPosition($newNavbarEl, 'next', false);\n }\n }\n\n if (options.animate && !(isMaster && app.width >= router.params.masterDetailBreakpoint)) {\n var delay = router.params[router.app.theme + \"PageLoadDelay\"];\n var transition = router.params.transition;\n if (options.transition) transition = options.transition;\n\n if (!transition && router.currentRoute && router.currentRoute.route) {\n transition = router.currentRoute.route.transition;\n }\n\n if (!transition && router.currentRoute && router.currentRoute.route.options) {\n transition = router.currentRoute.route.options.transition;\n }\n\n if (transition) {\n $newPage[0].f7PageTransition = transition;\n }\n\n if (delay) {\n setTimeout(function () {\n setPositionClasses();\n router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'forward', transition, function () {\n afterAnimation();\n });\n }, delay);\n } else {\n setPositionClasses();\n router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'forward', transition, function () {\n afterAnimation();\n });\n }\n } else {\n afterAnimation();\n }\n\n return router;\n}\n\nfunction load(router, loadParams, loadOptions, ignorePageChange) {\n if (loadParams === void 0) {\n loadParams = {};\n }\n\n if (loadOptions === void 0) {\n loadOptions = {};\n }\n\n if (!router.allowPageChange && !ignorePageChange) return router;\n var params = loadParams;\n var options = loadOptions;\n var url = params.url,\n content = params.content,\n el = params.el,\n pageName = params.pageName,\n component = params.component,\n componentUrl = params.componentUrl;\n\n if (!options.reloadCurrent && options.route && options.route.route && options.route.route.parentPath && router.currentRoute.route && 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 } // Check for same params\n\n\n var sameParams = Object.keys(options.route.params).length === Object.keys(router.currentRoute.params).length;\n\n if (sameParams) {\n // Check for equal params name\n Object.keys(options.route.params).forEach(function (paramName) {\n if (!(paramName in router.currentRoute.params) || router.currentRoute.params[paramName] !== options.route.params[paramName]) {\n sameParams = false;\n }\n });\n }\n\n if (sameParams) {\n if (options.route.route.tab) {\n return router.tabLoad(options.route.route.tab, options);\n }\n\n return false;\n }\n\n if (!sameParams && options.route.route.tab && router.currentRoute.route.tab && router.currentRoute.parentPath === options.route.parentPath) {\n return router.tabLoad(options.route.route.tab, options);\n }\n }\n\n if (options.route && options.route.url && router.url === options.route.url && !(options.reloadCurrent || options.reloadPrevious) && !router.params.allowDuplicateUrls) {\n router.allowPageChange = true;\n return false;\n }\n\n if (!options.route && url) {\n options.route = router.parseRouteUrl(url);\n extend(options.route, {\n route: {\n url: url,\n path: url\n }\n });\n } // Component Callbacks\n\n\n function resolve(pageEl, newOptions) {\n return forward(router, pageEl, extend(options, newOptions));\n }\n\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (url || componentUrl || component) {\n router.allowPageChange = false;\n } // Proceed\n\n\n if (content) {\n forward(router, router.getPageEl(content), options);\n } else if (el) {\n // Load page from specified HTMLElement or by page name in pages container\n forward(router, router.getPageEl(el), options);\n } else if (pageName) {\n // Load page by page name in pages container\n forward(router, 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({\n routerEl: router.el,\n component: component,\n componentUrl: componentUrl,\n options: options,\n resolve: resolve,\n reject: reject\n });\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (url) {\n // Load using XHR\n if (router.xhrAbortController) {\n router.xhrAbortController.abort();\n router.xhrAbortController = false;\n }\n\n router.xhrRequest(url, options).then(function (pageContent) {\n forward(router, router.getPageEl(pageContent), options);\n }).catch(function () {\n router.allowPageChange = true;\n });\n }\n\n return router;\n}\n\nfunction openIn(router, url, options) {\n var navigateOptions = {\n url: url,\n route: {\n path: url,\n options: _extends({}, options, {\n openIn: undefined\n })\n }\n };\n\n var params = _extends({}, options);\n\n if (options.openIn === 'popup') {\n params.content = \"
\";\n navigateOptions.route.popup = params;\n }\n\n if (options.openIn === 'loginScreen') {\n params.content = \"
\";\n navigateOptions.route.loginScreen = params;\n }\n\n if (options.openIn === 'sheet') {\n params.content = \"
\";\n navigateOptions.route.sheet = params;\n }\n\n if (options.openIn === 'popover') {\n params.targetEl = options.clickedEl || options.targetEl;\n params.content = \"
\";\n navigateOptions.route.popover = params;\n }\n\n if (options.openIn.indexOf('panel') >= 0) {\n var parts = options.openIn.split(':');\n var side = parts[1] || 'left';\n var effect = parts[2] || 'cover';\n params.targetEl = options.clickedEl || options.targetEl;\n params.content = \"
\";\n navigateOptions.route.panel = params;\n }\n\n return router.navigate(navigateOptions);\n}\n\nfunction navigate(navigateParams, navigateOptions) {\n if (navigateOptions === void 0) {\n navigateOptions = {};\n }\n\n var router = this;\n if (router.swipeBackActive) return router;\n var url;\n var createRoute;\n var name;\n var path;\n var query;\n var params;\n var route;\n\n if (typeof navigateParams === 'string') {\n url = navigateParams;\n } else {\n url = navigateParams.url;\n createRoute = navigateParams.route;\n name = navigateParams.name;\n path = navigateParams.path;\n query = navigateParams.query;\n params = navigateParams.params;\n }\n\n if (name || path) {\n url = router.generateUrl({\n path: path,\n name: name,\n params: params,\n query: query\n });\n\n if (url) {\n return router.navigate(url, navigateOptions);\n }\n\n return router;\n }\n\n var app = router.app;\n appRouterCheck(router, 'navigate');\n\n if (url === '#' || url === '') {\n return router;\n }\n\n var navigateUrl = url.replace('./', '');\n\n if (navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) {\n var currentPath = router.currentRoute.parentPath || router.currentRoute.path;\n navigateUrl = ((currentPath ? currentPath + \"/\" : '/') + navigateUrl).replace('///', '/').replace('//', '/');\n }\n\n if (createRoute) {\n route = extend(router.parseRouteUrl(navigateUrl), {\n route: extend({}, createRoute)\n });\n } else {\n route = router.findMatchingRoute(navigateUrl);\n }\n\n if (!route) {\n return router;\n }\n\n if (route.route && route.route.viewName) {\n var anotherViewName = route.route.viewName;\n var anotherView = app.views[anotherViewName];\n\n if (!anotherView) {\n throw new Error(\"Framework7: There is no View with \\\"\" + anotherViewName + \"\\\" name that was specified in this route\");\n }\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, 'forward', route, navigateOptions);\n }\n\n var options = {};\n\n if (route.route.options) {\n extend(options, route.route.options, navigateOptions);\n } else {\n extend(options, navigateOptions);\n }\n\n if (options.openIn && (!router.params.ignoreOpenIn || router.params.ignoreOpenIn && router.history.length > 0)) {\n return openIn(router, navigateUrl, options);\n }\n\n options.route = route;\n\n function resolve() {\n var routerLoaded = false;\n 'popup popover sheet loginScreen actions customModal panel'.split(' ').forEach(function (modalLoadProp) {\n if (route.route[modalLoadProp] && !routerLoaded) {\n routerLoaded = true;\n router.modalLoad(modalLoadProp, route, options, 'forward');\n }\n });\n\n if (route.route.keepAlive && route.route.keepAliveData) {\n load(router, {\n el: route.route.keepAliveData.pageEl\n }, options, false);\n routerLoaded = true;\n }\n\n 'url content component pageName el componentUrl'.split(' ').forEach(function (pageLoadProp) {\n if (route.route[pageLoadProp] && !routerLoaded) {\n var _load;\n\n routerLoaded = true;\n load(router, (_load = {}, _load[pageLoadProp] = route.route[pageLoadProp], _load), options, false);\n }\n });\n if (routerLoaded) return; // Async\n\n function asyncResolve(resolveParams, resolveOptions) {\n router.allowPageChange = false;\n var resolvedAsModal = false;\n 'popup popover sheet loginScreen actions customModal panel'.split(' ').forEach(function (modalLoadProp) {\n if (resolveParams[modalLoadProp]) {\n resolvedAsModal = true;\n var modalRoute = extend({}, route, {\n route: resolveParams\n });\n router.allowPageChange = true;\n router.modalLoad(modalLoadProp, modalRoute, extend(options, resolveOptions), 'forward');\n }\n });\n if (resolvedAsModal) return;\n load(router, resolveParams, extend(options, resolveOptions), true);\n }\n\n function asyncReject() {\n router.allowPageChange = true;\n }\n\n if (route.route.async) {\n router.allowPageChange = false;\n route.route.async.call(router, {\n router: router,\n to: options.route,\n from: router.currentRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n direction: 'forward',\n app: app\n });\n }\n\n if (route.route.asyncComponent) {\n asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject);\n }\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 var preloadMaster = true;\n var masterLoaded = false;\n\n if (router.currentRoute && router.currentRoute.route) {\n if ((router.currentRoute.route.master === true || typeof router.currentRoute.route.master === 'function' && router.currentRoute.route.master(app, router)) && (router.currentRoute.route === route.route.masterRoute || router.currentRoute.route.path === route.route.masterRoute.path)) {\n preloadMaster = false;\n }\n\n if (router.currentRoute.route.masterRoute && (router.currentRoute.route.masterRoute === route.route.masterRoute || router.currentRoute.route.masterRoute.path === route.route.masterRoute.path)) {\n preloadMaster = false;\n masterLoaded = true;\n }\n }\n\n if (preloadMaster || masterLoaded && navigateOptions.reloadAll) {\n router.navigate({\n path: route.route.masterRoute.path,\n params: route.params || {}\n }, {\n animate: false,\n reloadAll: navigateOptions.reloadAll,\n reloadCurrent: navigateOptions.reloadCurrent,\n reloadPrevious: navigateOptions.reloadPrevious,\n browserHistory: !navigateOptions.initial,\n history: !navigateOptions.initial,\n once: {\n pageAfterIn: function pageAfterIn() {\n router.navigate(navigateParams, extend({}, navigateOptions, {\n animate: false,\n reloadAll: false,\n reloadCurrent: false,\n reloadPrevious: false,\n history: !navigateOptions.initial,\n browserHistory: !navigateOptions.initial\n }));\n }\n }\n });\n return router;\n }\n }\n\n processRouteQueue.call(router, route, router.currentRoute, function () {\n if (route.route.modules) {\n app.loadModules(Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules]).then(function () {\n resolve();\n }).catch(function () {\n reject();\n });\n } else {\n resolve();\n }\n }, function () {\n reject();\n }, 'forward'); // Return Router\n\n return router;\n}\n\nexport { refreshPage, navigate };","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7';\nimport { extend, parseUrlQuery } from '../../shared/utils';\nimport { getDevice } from '../../shared/get-device';\nimport History from '../../shared/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(router, el, backwardOptions) {\n var device = getDevice();\n var document = getDocument();\n var $el = $(el);\n var app = router.app;\n var view = router.view;\n var options = extend({\n animate: router.params.animate,\n browserHistory: true,\n replaceState: false\n }, backwardOptions);\n var masterDetailEnabled = router.params.masterDetailBreakpoint > 0;\n var isMaster = masterDetailEnabled && options.route && options.route.route && (options.route.route.master === true || typeof options.route.route.master === 'function' && options.route.route.master(app, router));\n var masterPageEl;\n var masterPageRemoved;\n var dynamicNavbar = router.dynamicNavbar;\n var $newPage = $el;\n var $oldPage = router.$el.children('.page-current');\n var initialPreload = $oldPage.length === 0 && options.preload;\n var currentIsMaster = masterDetailEnabled && $oldPage.hasClass('page-master');\n\n if ($newPage.length) {\n // Remove theme elements\n router.removeThemeElements($newPage);\n }\n\n var $navbarsEl;\n var $newNavbarEl;\n var $oldNavbarEl;\n\n if (dynamicNavbar) {\n $newNavbarEl = $newPage.children('.navbar');\n $navbarsEl = router.$navbarsEl;\n\n if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) {\n // Try from pageData\n $newNavbarEl = $newPage[0].f7Page.$navbarEl;\n }\n\n $oldNavbarEl = $navbarsEl.find('.navbar-current');\n }\n\n router.allowPageChange = false;\n\n if ($newPage.length === 0 || $oldPage.length === 0 && !options.preload) {\n router.allowPageChange = true;\n return router;\n } // Remove theme elements\n\n\n router.removeThemeElements($newPage); // Save Keep Alive Cache\n\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 } // Pages In View\n\n\n var isDetail;\n var isDetailRoot;\n\n if (masterDetailEnabled) {\n var $pagesInView = router.$el.children('.page:not(.stacked)').filter(function (pageInView) {\n return pageInView !== $newPage[0];\n }); // Find Detail' master page\n\n for (var i = 0; i < $pagesInView.length; i += 1) {\n if (!masterPageEl && $pagesInView[i].classList.contains('page-master')) {\n masterPageEl = $pagesInView[i];\n continue; // eslint-disable-line\n }\n }\n\n isDetail = !isMaster && masterPageEl && 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\n if (isDetail && masterPageEl && masterPageEl.f7Page) {\n isDetailRoot = router.history.indexOf(options.route.url) - router.history.indexOf(masterPageEl.f7Page.route.url) === 1;\n } // New Page\n\n\n $newPage.addClass(\"page-\" + (initialPreload ? 'current' : 'previous') + (isMaster ? ' page-master' : '') + (isDetail ? ' page-master-detail' : '') + (isDetailRoot ? ' page-master-detail-root' : '')).removeClass('stacked').removeAttr('aria-hidden').trigger('page:unstack').trigger('page:position', {\n position: initialPreload ? 'current' : 'previous'\n });\n router.emit('pageUnstack', $newPage[0]);\n router.emit('pagePosition', $newPage[0], initialPreload ? 'current' : 'previous');\n\n if (isMaster || isDetail) {\n $newPage.trigger('page:role', {\n role: isMaster ? 'master' : 'detail',\n root: !!isDetailRoot\n });\n router.emit('pageRole', $newPage[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot\n });\n }\n\n if (dynamicNavbar && $newNavbarEl.length > 0) {\n $newNavbarEl.addClass(\"navbar-\" + (initialPreload ? 'current' : 'previous') + (isMaster ? ' navbar-master' : '') + (isDetail ? ' navbar-master-detail' : '') + (isDetailRoot ? ' navbar-master-detail-root' : '')).removeClass('stacked').removeAttr('aria-hidden');\n $newNavbarEl.trigger('navbar:position', {\n position: initialPreload ? 'current' : 'previous'\n });\n router.emit('navbarPosition', $newNavbarEl[0], initialPreload ? 'current' : 'previous');\n\n if (isMaster || isDetailRoot) {\n router.emit('navbarRole', $newNavbarEl[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot\n });\n }\n } // Remove previous page in case of \"forced\"\n\n\n var backIndex;\n\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(function (pageToRemove) {\n var $pageToRemove = $(pageToRemove);\n var $navbarToRemove;\n\n if (dynamicNavbar) {\n // $navbarToRemove = $oldNavbarEl.prevAll('.navbar-previous').eq(index);\n $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));\n }\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\n if (dynamicNavbar) {\n $navbarToRemove.addClass('stacked');\n }\n } else {\n router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined, options);\n\n if ($pageToRemove[0] === masterPageEl) {\n masterPageRemoved = true;\n }\n\n router.removePage($pageToRemove);\n\n if (dynamicNavbar && $navbarToRemove.length > 0) {\n router.removeNavbar($navbarToRemove);\n }\n }\n }\n });\n } else {\n var $pageToRemove = $oldPage.prev('.page-previous:not(.stacked)');\n var $navbarToRemove;\n\n if (dynamicNavbar) {\n // $navbarToRemove = $oldNavbarEl.prev('.navbar-inner:not(.stacked)');\n $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));\n }\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\n if ($pageToRemove[0] === masterPageEl) {\n masterPageRemoved = true;\n }\n\n router.removePage($pageToRemove);\n\n if (dynamicNavbar && $navbarToRemove.length) {\n router.removeNavbar($navbarToRemove);\n }\n }\n }\n }\n } // Insert new page\n\n\n var newPageInDom = $newPage.parents(document).length > 0;\n var f7Component = $newPage[0].f7Component;\n\n function insertPage() {\n if (initialPreload) {\n if (!newPageInDom && f7Component) {\n f7Component.mount(function (componentEl) {\n router.$el.append(componentEl);\n });\n } else {\n router.$el.append($newPage);\n }\n }\n\n if ($newPage.next($oldPage).length === 0) {\n if (!newPageInDom && f7Component) {\n f7Component.mount(function (componentEl) {\n $(componentEl).insertBefore($oldPage);\n });\n } else {\n $newPage.insertBefore($oldPage);\n }\n }\n\n if (dynamicNavbar && $newNavbarEl.length) {\n if ($newNavbarEl.find('.title-large').length) {\n $newNavbarEl.addClass('navbar-large');\n }\n\n $newNavbarEl.insertBefore($oldNavbarEl);\n\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\n $navbarsEl.append($newNavbarEl);\n }\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(); // Tab route\n\n if (options.route.route.tab) {\n router.tabLoad(options.route.route.tab, extend({}, options, {\n history: false,\n browserHistory: false,\n preload: true\n }));\n }\n\n if (isMaster) {\n $newPage.removeClass('page-master-stacked').trigger('page:masterunstack');\n router.emit('pageMasterUnstack', $newPage[0]);\n\n if (dynamicNavbar) {\n $(app.navbar.getElByPage($newPage)).removeClass('navbar-master-stacked');\n router.emit('navbarMasterUnstack', app.navbar.getElByPage($newPage));\n }\n } // Page init and before init events\n\n\n router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);\n\n if (initialPreload) {\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'current', undefined, options);\n router.pageCallback('afterIn', $newPage, $newNavbarEl, 'current', undefined, options);\n }\n\n var $previousPages = $newPage.prevAll('.page-previous:not(.stacked):not(.page-master)');\n\n if ($previousPages.length > 0) {\n $previousPages.each(function (pageToRemove) {\n var $pageToRemove = $(pageToRemove);\n var $navbarToRemove;\n\n if (dynamicNavbar) {\n // $navbarToRemove = $newNavbarEl.prevAll('.navbar-previous:not(.stacked)').eq(index);\n $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));\n }\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\n if (dynamicNavbar) {\n $navbarToRemove.addClass('stacked');\n }\n } else {\n router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined);\n router.removePage($pageToRemove);\n\n if (dynamicNavbar && $navbarToRemove.length) {\n router.removeNavbar($navbarToRemove);\n }\n }\n });\n }\n\n router.allowPageChange = true;\n return router;\n } // History State\n\n\n if (!(device.ie || device.edge || device.firefox && !device.ios)) {\n if (router.params.browserHistory && options.browserHistory) {\n if (options.replaceState) {\n var browserHistoryRoot = router.params.browserHistoryRoot || '';\n History.replace(view.id, {\n url: options.route.url\n }, browserHistoryRoot + router.params.browserHistorySeparator + options.route.url);\n } else if (backIndex) {\n History.go(-backIndex);\n } else {\n History.back();\n }\n }\n } // Update History\n\n\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\n router.history.pop();\n }\n\n router.saveHistory(); // Current Page & Navbar\n\n router.currentPageEl = $newPage[0];\n\n if (dynamicNavbar && $newNavbarEl.length) {\n router.currentNavbarEl = $newNavbarEl[0];\n } else {\n delete router.currentNavbarEl;\n } // Current Route\n\n\n router.currentRoute = options.route; // History State\n\n if (device.ie || device.edge || device.firefox && !device.ios) {\n if (router.params.browserHistory && options.browserHistory) {\n if (options.replaceState) {\n var _browserHistoryRoot = router.params.browserHistoryRoot || '';\n\n History.replace(view.id, {\n url: options.route.url\n }, _browserHistoryRoot + router.params.browserHistorySeparator + options.route.url);\n } else if (backIndex) {\n History.go(-backIndex);\n } else {\n History.back();\n }\n }\n } // Insert Page\n\n\n insertPage(); // Load Tab\n\n if (options.route.route.tab) {\n router.tabLoad(options.route.route.tab, extend({}, options, {\n history: false,\n browserHistory: false\n }));\n } // Check master detail\n\n\n if (masterDetailEnabled && (currentIsMaster || masterPageRemoved)) {\n view.checkMasterDetailBreakpoint(false);\n } // Page init and before init events\n\n\n router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage); // Before animation callback\n\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'next', options);\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'previous', 'current', options); // Animation\n\n function afterAnimation() {\n // Set classes\n router.setPagePosition($newPage, 'current', false);\n router.setPagePosition($oldPage, 'next', true);\n\n if (dynamicNavbar) {\n router.setNavbarPosition($newNavbarEl, 'current', false);\n router.setNavbarPosition($oldNavbarEl, 'next', true);\n } // After animation event\n\n\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'next', options);\n router.pageCallback('afterIn', $newPage, $newNavbarEl, 'previous', 'current', options); // Remove Old Page\n\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\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else {\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'next', undefined, options);\n router.removePage($oldPage);\n\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); // Preload previous page\n\n var preloadPreviousPage = router.params.preloadPreviousPage || router.params[app.theme + \"SwipeBack\"];\n\n if (preloadPreviousPage && router.history[router.history.length - 2] && !isMaster) {\n router.back(router.history[router.history.length - 2], {\n preload: true\n });\n }\n\n if (router.params.browserHistory) {\n History.clearRouterQueue();\n }\n }\n\n function setPositionClasses() {\n router.setPagePosition($oldPage, 'current');\n router.setPagePosition($newPage, 'previous', false);\n\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 var transition = router.params.transition;\n\n if ($oldPage[0] && $oldPage[0].f7PageTransition) {\n transition = $oldPage[0].f7PageTransition;\n delete $oldPage[0].f7PageTransition;\n }\n\n if (options.transition) transition = options.transition;\n\n if (!transition && router.previousRoute && router.previousRoute.route) {\n transition = router.previousRoute.route.transition;\n }\n\n if (!transition && router.previousRoute && router.previousRoute.route && router.previousRoute.route.options) {\n transition = router.previousRoute.route.options.transition;\n }\n\n setPositionClasses();\n router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'backward', transition, function () {\n afterAnimation();\n });\n } else {\n afterAnimation();\n }\n\n return router;\n}\n\nfunction loadBack(router, backParams, backOptions, ignorePageChange) {\n if (!router.allowPageChange && !ignorePageChange) return router;\n var params = backParams;\n var options = backOptions;\n var url = params.url,\n content = params.content,\n el = params.el,\n pageName = params.pageName,\n component = params.component,\n componentUrl = params.componentUrl;\n\n if (options.route.url && router.url === options.route.url && !(options.reloadCurrent || options.reloadPrevious) && !router.params.allowDuplicateUrls) {\n return false;\n }\n\n if (!options.route && url) {\n options.route = router.parseRouteUrl(url);\n } // Component Callbacks\n\n\n function resolve(pageEl, newOptions) {\n return backward(router, pageEl, extend(options, newOptions));\n }\n\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (url || componentUrl || component) {\n router.allowPageChange = false;\n } // Proceed\n\n\n if (content) {\n backward(router, router.getPageEl(content), options);\n } else if (el) {\n // Load page from specified HTMLElement or by page name in pages container\n backward(router, router.getPageEl(el), options);\n } else if (pageName) {\n // Load page by page name in pages container\n backward(router, 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({\n routerEl: router.el,\n component: component,\n componentUrl: componentUrl,\n options: options,\n resolve: resolve,\n reject: reject\n });\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (url) {\n // Load using XHR\n if (router.xhrAbortController) {\n router.xhrAbortController.abort();\n router.xhrAbortController = false;\n }\n\n router.xhrRequest(url, options).then(function (pageContent) {\n backward(router, router.getPageEl(pageContent), options);\n }).catch(function () {\n router.allowPageChange = true;\n });\n }\n\n return router;\n}\n\nfunction back() {\n var router = this;\n var device = getDevice();\n if (router.swipeBackActive) return router;\n var navigateUrl;\n var navigateOptions;\n var route;\n\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'object') {\n navigateOptions = (arguments.length <= 0 ? undefined : arguments[0]) || {};\n } else {\n navigateUrl = arguments.length <= 0 ? undefined : arguments[0];\n navigateOptions = (arguments.length <= 1 ? undefined : arguments[1]) || {};\n }\n\n var _navigateOptions = navigateOptions,\n name = _navigateOptions.name,\n params = _navigateOptions.params,\n query = _navigateOptions.query;\n\n if (name) {\n navigateUrl = router.generateUrl({\n name: name,\n params: params,\n query: query\n });\n\n if (navigateUrl) {\n return router.back(navigateUrl, extend({}, navigateOptions, {\n name: null,\n params: null,\n query: null\n }));\n }\n\n return router;\n }\n\n var app = router.app;\n appRouterCheck(router, 'back');\n var currentRouteIsModal = router.currentRoute.modal;\n var modalType;\n\n if (!currentRouteIsModal) {\n 'popup popover sheet loginScreen actions customModal panel'.split(' ').forEach(function (modalLoadProp) {\n if (router.currentRoute.route[modalLoadProp]) {\n currentRouteIsModal = true;\n modalType = modalLoadProp;\n }\n });\n }\n\n if (currentRouteIsModal && !navigateOptions.preload) {\n var modalToClose = router.currentRoute.modal || router.currentRoute.route.modalInstance || app[modalType].get();\n var previousUrl = router.history[router.history.length - 2];\n var previousRoute; // check if previous route is modal too\n\n if (modalToClose && modalToClose.$el) {\n var prevOpenedModals = modalToClose.$el.prevAll('.modal-in');\n\n if (prevOpenedModals.length && prevOpenedModals[0].f7Modal) {\n var modalEl = prevOpenedModals[0]; // check if current router not inside of the modalEl\n\n if (!router.$el.parents(modalEl).length) {\n previousRoute = modalEl.f7Modal.route;\n }\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: parseUrlQuery(previousUrl),\n route: {\n path: previousUrl.split('?')[0],\n url: previousUrl\n }\n };\n }\n\n if (!navigateUrl || navigateUrl.replace(/[# ]/g, '').trim().length === 0) {\n if (!previousRoute || !modalToClose) {\n return router;\n }\n }\n\n var forceOtherUrl = navigateOptions.force && previousRoute && navigateUrl;\n\n if (previousRoute && modalToClose) {\n var isBrokenBrowserHistory = device.ie || device.edge || device.firefox && !device.ios;\n var needHistoryBack = router.params.browserHistory && navigateOptions.browserHistory !== false;\n var currentRouteWithoutBrowserHistory = router.currentRoute && router.currentRoute.route && router.currentRoute.route.options && router.currentRoute.route.options.browserHistory === false;\n\n if (needHistoryBack && !isBrokenBrowserHistory && !currentRouteWithoutBrowserHistory) {\n History.back();\n }\n\n router.currentRoute = previousRoute;\n router.history.pop();\n router.saveHistory();\n\n if (needHistoryBack && isBrokenBrowserHistory && !currentRouteWithoutBrowserHistory) {\n History.back();\n }\n\n router.modalRemove(modalToClose);\n\n if (forceOtherUrl) {\n router.navigate(navigateUrl, {\n reloadCurrent: true\n });\n }\n } else if (modalToClose) {\n router.modalRemove(modalToClose);\n\n if (navigateUrl) {\n router.navigate(navigateUrl, {\n reloadCurrent: true\n });\n }\n }\n\n return router;\n }\n\n var $previousPage = router.$el.children('.page-current').prevAll('.page-previous:not(.page-master)').eq(0);\n var skipMaster;\n\n if (router.params.masterDetailBreakpoint > 0) {\n var classes = [];\n router.$el.children('.page').each(function (pageEl) {\n classes.push(pageEl.className);\n });\n var $previousMaster = router.$el.children('.page-current').prevAll('.page-master').eq(0);\n\n if ($previousMaster.length) {\n var expectedPreviousPageUrl = router.history[router.history.length - 2];\n var expectedPreviousPageRoute = router.findMatchingRoute(expectedPreviousPageUrl);\n\n if (expectedPreviousPageRoute && $previousMaster[0].f7Page && expectedPreviousPageRoute.route === $previousMaster[0].f7Page.route.route) {\n $previousPage = $previousMaster;\n\n if (!navigateOptions.preload) {\n skipMaster = app.width >= router.params.masterDetailBreakpoint;\n }\n }\n }\n }\n\n if (!navigateOptions.force && $previousPage.length && !skipMaster) {\n if (router.params.browserHistory && $previousPage[0].f7Page && router.history[router.history.length - 2] !== $previousPage[0].f7Page.route.url) {\n router.back(router.history[router.history.length - 2], extend(navigateOptions, {\n force: true\n }));\n return router;\n }\n\n var previousPageRoute = $previousPage[0].f7Page.route;\n processRouteQueue.call(router, previousPageRoute, router.currentRoute, function () {\n loadBack(router, {\n el: $previousPage\n }, extend(navigateOptions, {\n route: previousPageRoute\n }));\n }, function () {}, 'backward');\n return router;\n } // Navigate URL\n\n\n if (navigateUrl === '#') {\n navigateUrl = undefined;\n }\n\n if (navigateUrl && navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) {\n navigateUrl = ((router.path || '/') + navigateUrl).replace('//', '/');\n }\n\n if (!navigateUrl && router.history.length > 1) {\n navigateUrl = router.history[router.history.length - 2];\n }\n\n if (skipMaster && !navigateOptions.force && router.history[router.history.length - 3]) {\n return router.back(router.history[router.history.length - 3], extend({}, navigateOptions || {}, {\n force: true,\n animate: false\n }));\n }\n\n if (skipMaster && !navigateOptions.force) {\n return router;\n } // Find route to load\n\n\n route = router.findMatchingRoute(navigateUrl);\n\n if (!route) {\n if (navigateUrl) {\n route = {\n url: navigateUrl,\n path: navigateUrl.split('?')[0],\n query: parseUrlQuery(navigateUrl),\n route: {\n path: navigateUrl.split('?')[0],\n url: navigateUrl\n }\n };\n }\n }\n\n if (!route) {\n return router;\n }\n\n if (route.route.redirect) {\n return redirect.call(router, 'backward', route, navigateOptions);\n }\n\n var options = {};\n\n if (route.route.options) {\n extend(options, route.route.options, navigateOptions);\n } else {\n extend(options, navigateOptions);\n }\n\n options.route = route;\n var backForceLoaded;\n\n if (options.force && router.params.stackPages) {\n router.$el.children('.page-previous.stacked').each(function (pageEl) {\n if (pageEl.f7Page && pageEl.f7Page.route && pageEl.f7Page.route.url === route.url) {\n backForceLoaded = true;\n loadBack(router, {\n el: pageEl\n }, options);\n }\n });\n\n if (backForceLoaded) {\n return router;\n }\n }\n\n function resolve() {\n var routerLoaded = false;\n\n if (route.route.keepAlive && route.route.keepAliveData) {\n loadBack(router, {\n el: route.route.keepAliveData.pageEl\n }, options);\n routerLoaded = true;\n }\n\n 'url content component pageName el componentUrl'.split(' ').forEach(function (pageLoadProp) {\n if (route.route[pageLoadProp] && !routerLoaded) {\n var _loadBack;\n\n routerLoaded = true;\n loadBack(router, (_loadBack = {}, _loadBack[pageLoadProp] = route.route[pageLoadProp], _loadBack), options);\n }\n });\n if (routerLoaded) return; // Async\n\n function asyncResolve(resolveParams, resolveOptions) {\n router.allowPageChange = false;\n loadBack(router, resolveParams, extend(options, resolveOptions), true);\n }\n\n function asyncReject() {\n router.allowPageChange = true;\n }\n\n if (route.route.async) {\n router.allowPageChange = false;\n route.route.async.call(router, {\n router: router,\n to: route,\n from: router.currentRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n direction: 'backward',\n app: app\n });\n }\n\n if (route.route.asyncComponent) {\n asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject);\n }\n }\n\n function reject() {\n router.allowPageChange = true;\n }\n\n if (options.preload) {\n resolve();\n } else {\n processRouteQueue.call(router, route, router.currentRoute, function () {\n if (route.route.modules) {\n app.loadModules(Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules]).then(function () {\n resolve();\n }).catch(function () {\n reject();\n });\n } else {\n resolve();\n }\n }, function () {\n reject();\n }, 'backward');\n } // Return Router\n\n\n return router;\n}\n\nexport { back };","function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport { getWindow, getDocument } from 'ssr-window';\nimport { pathToRegexp, compile } from 'path-to-regexp';\nimport $ from '../../shared/dom7';\nimport Framework7Class from '../../shared/class';\nimport { extend, nextFrame, parseUrlQuery, serializeObject, now, eventNameToColonCase } from '../../shared/utils';\nimport History from '../../shared/history';\nimport SwipeBack from './swipe-back';\nimport { refreshPage, navigate } from './navigate';\nimport { tabLoad, tabRemove } from './tab';\nimport { modalLoad, modalRemove } from './modal';\nimport { back } from './back';\nimport { clearPreviousHistory } from './clear-previous-history';\nimport appRouterCheck from './app-router-check';\n\nvar Router = /*#__PURE__*/function (_Framework7Class) {\n _inheritsLoose(Router, _Framework7Class);\n\n function Router(app, view) {\n var _this;\n\n _this = _Framework7Class.call(this, {}, [typeof view === 'undefined' ? app : view]) || this;\n\n var router = _assertThisInitialized(_this); // Is App Router\n\n\n router.isAppRouter = typeof view === 'undefined';\n\n if (router.isAppRouter) {\n // App Router\n extend(false, router, {\n app: app,\n params: app.params.view,\n routes: app.routes || [],\n cache: app.cache\n });\n } else {\n // View Router\n extend(false, router, {\n app: app,\n view: view,\n viewId: view.id,\n id: view.params.routerId,\n params: view.params,\n routes: view.routes,\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 } // Install Modules\n\n\n router.useModules(); // AllowPageChage\n\n router.allowPageChange = true; // Current Route\n\n var currentRoute = {};\n var previousRoute = {};\n Object.defineProperty(router, 'currentRoute', {\n enumerable: true,\n configurable: true,\n set: function set(newRoute) {\n if (newRoute === void 0) {\n newRoute = {};\n }\n\n previousRoute = extend({}, currentRoute);\n currentRoute = newRoute;\n if (!currentRoute) return;\n router.url = currentRoute.url;\n router.emit('routeChange', newRoute, previousRoute, router);\n },\n get: function get() {\n return currentRoute;\n }\n });\n Object.defineProperty(router, 'previousRoute', {\n enumerable: true,\n configurable: true,\n get: function get() {\n return previousRoute;\n },\n set: function set(newRoute) {\n previousRoute = newRoute;\n }\n });\n return router || _assertThisInitialized(_this);\n }\n\n var _proto = Router.prototype;\n\n _proto.mount = function mount() {\n var router = this;\n var view = router.view;\n var document = getDocument();\n extend(false, router, {\n tempDom: document.createElement('div'),\n $el: view.$el,\n el: view.el,\n $navbarsEl: view.$navbarsEl,\n navbarsEl: view.navbarsEl\n });\n router.emit('local::mount routerMount', router);\n };\n\n _proto.animatableNavElements = function animatableNavElements($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction) {\n var router = this;\n var dynamicNavbar = router.dynamicNavbar;\n var animateIcon = router.params.iosAnimateNavbarBackIcon;\n var newNavEls;\n var oldNavEls;\n\n function animatableNavEl($el, $navbarInner) {\n var isSliding = $el.hasClass('sliding') || $navbarInner.hasClass('sliding');\n var isSubnavbar = $el.hasClass('subnavbar');\n var needsOpacityTransition = isSliding ? !isSubnavbar : true;\n var $iconEl = $el.find('.back .icon');\n var isIconLabel;\n\n if (isSliding && animateIcon && $el.hasClass('left') && $iconEl.length > 0 && $iconEl.next('span').length) {\n $el = $iconEl.next('span'); // eslint-disable-line\n\n isIconLabel = true;\n }\n\n return {\n $el: $el,\n isIconLabel: isIconLabel,\n leftOffset: $el[0].f7NavbarLeftOffset,\n rightOffset: $el[0].f7NavbarRightOffset,\n isSliding: isSliding,\n isSubnavbar: isSubnavbar,\n needsOpacityTransition: needsOpacityTransition\n };\n }\n\n if (dynamicNavbar) {\n newNavEls = [];\n oldNavEls = [];\n $newNavbarEl.children('.navbar-inner').children('.left, .right, .title, .subnavbar').each(function (navEl) {\n var $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\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(function (navEl) {\n var $navEl = $(navEl);\n if ($navEl.hasClass('left') && toLarge && !fromLarge && direction === 'forward') return;\n if ($navEl.hasClass('left') && toLarge && direction === 'backward') return;\n\n if ($navEl.hasClass('title') && fromLarge) {\n return;\n }\n\n oldNavEls.push(animatableNavEl($navEl, $oldNavbarEl.children('.navbar-inner')));\n });\n }\n\n [oldNavEls, newNavEls].forEach(function (navEls) {\n navEls.forEach(function (navEl) {\n var n = navEl;\n var isSliding = navEl.isSliding,\n $el = navEl.$el;\n var otherEls = navEls === oldNavEls ? newNavEls : oldNavEls;\n if (!(isSliding && $el.hasClass('title') && otherEls)) return;\n otherEls.forEach(function (otherNavEl) {\n if (otherNavEl.isIconLabel) {\n var iconTextEl = otherNavEl.$el[0];\n n.leftOffset += iconTextEl ? iconTextEl.offsetLeft || 0 : 0;\n }\n });\n });\n });\n }\n\n return {\n newNavEls: newNavEls,\n oldNavEls: oldNavEls\n };\n };\n\n _proto.animate = function animate($oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, transition, callback) {\n var router = this;\n\n if (router.params.animateCustom) {\n router.params.animateCustom.apply(router, [$oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, callback]);\n return;\n }\n\n var dynamicNavbar = router.dynamicNavbar;\n var ios = router.app.theme === 'ios';\n\n if (transition) {\n var routerCustomTransitionClass = \"router-transition-custom router-transition-\" + transition + \"-\" + direction; // Animate\n\n var onCustomTransitionDone = function onCustomTransitionDone() {\n router.$el.removeClass(routerCustomTransitionClass);\n\n if (dynamicNavbar && router.$navbarsEl.length) {\n if ($newNavbarEl) {\n router.$navbarsEl.prepend($newNavbarEl);\n }\n\n if ($oldNavbarEl) {\n router.$navbarsEl.prepend($oldNavbarEl);\n }\n }\n\n if (callback) callback();\n };\n\n (direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(onCustomTransitionDone);\n\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\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 } // Router Animation class\n\n\n var routerTransitionClass = \"router-transition-\" + direction + \" router-transition\";\n var newNavEls;\n var oldNavEls;\n var fromLarge;\n var toLarge;\n var toDifferent;\n var oldIsLarge;\n var newIsLarge;\n\n if (ios && dynamicNavbar) {\n var betweenMasterAndDetail = router.params.masterDetailBreakpoint > 0 && router.app.width >= router.params.masterDetailBreakpoint && ($oldNavbarEl.hasClass('navbar-master') && $newNavbarEl.hasClass('navbar-master-detail') || $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 toDifferent = fromLarge && !toLarge || toLarge && !fromLarge;\n }\n\n var 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\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\n if (fromLarge) {\n $newNavbarEl.addClass('router-navbar-transition-from-large');\n $oldNavbarEl.addClass('router-navbar-transition-from-large');\n }\n }\n\n newNavEls.forEach(function (navEl) {\n var $el = navEl.$el;\n var offset = direction === 'forward' ? navEl.rightOffset : navEl.leftOffset;\n\n if (navEl.isSliding) {\n if (navEl.isSubnavbar && newIsLarge) {\n // prettier-ignore\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(function (navEl) {\n var $el = navEl.$el;\n var offset = direction === 'forward' ? navEl.leftOffset : navEl.rightOffset;\n\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 } // AnimationEnd Callback\n\n\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 nextFrame(function () {\n $newNavbarEl.removeClass('navbar-no-title-large-transition');\n });\n }\n\n if ($oldNavbarEl) {\n $oldNavbarEl.removeClass('router-navbar-transition-to-large router-navbar-transition-from-large');\n }\n\n if ($newNavbarEl.hasClass('sliding') || $newNavbarEl.children('.navbar-inner.sliding').length) {\n $newNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform('');\n } else {\n $newNavbarEl.find('.sliding').transform('');\n }\n\n if ($oldNavbarEl.hasClass('sliding') || $oldNavbarEl.children('.navbar-inner.sliding').length) {\n $oldNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform('');\n } else {\n $oldNavbarEl.find('.sliding').transform('');\n }\n }\n\n router.$el.removeClass(routerTransitionClass);\n if (callback) callback();\n }\n\n (direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(function () {\n onDone();\n }); // Animate\n\n if (dynamicNavbar) {\n // Prepare Navbars\n animateNavbars(0);\n nextFrame(function () {\n // Add class, start animation\n router.$el.addClass(routerTransitionClass);\n\n if (toDifferent) {\n // eslint-disable-next-line\n router.el._clientLeft = router.el.clientLeft;\n }\n\n animateNavbars(1);\n });\n } else {\n // Add class, start animation\n router.$el.addClass(routerTransitionClass);\n }\n };\n\n _proto.removeModal = function removeModal(modalEl) {\n var router = this;\n router.removeEl(modalEl);\n } // eslint-disable-next-line\n ;\n\n _proto.removeTabContent = function removeTabContent(tabEl) {\n var $tabEl = $(tabEl);\n $tabEl.html('');\n };\n\n _proto.removeNavbar = function removeNavbar(el) {\n var router = this;\n router.removeEl(el);\n };\n\n _proto.removePage = function removePage(el) {\n var $el = $(el);\n var f7Page = $el && $el[0] && $el[0].f7Page;\n var router = this;\n\n if (f7Page && f7Page.route && f7Page.route.route && f7Page.route.route.keepAlive) {\n $el.remove();\n return;\n }\n\n router.removeEl(el);\n };\n\n _proto.removeEl = function removeEl(el) {\n if (!el) return;\n var router = this;\n var $el = $(el);\n if ($el.length === 0) return;\n $el.find('.tab').each(function (tabEl) {\n $(tabEl).children().each(function (tabChild) {\n if (tabChild.f7Component) {\n $(tabChild).trigger('tab:beforeremove');\n tabChild.f7Component.destroy();\n }\n });\n });\n\n if ($el[0].f7Component && $el[0].f7Component.destroy) {\n $el[0].f7Component.destroy();\n }\n\n if (!router.params.removeElements) {\n return;\n }\n\n if (router.params.removeElementsWithTimeout) {\n setTimeout(function () {\n $el.remove();\n }, router.params.removeElementsTimeout);\n } else {\n $el.remove();\n }\n };\n\n _proto.getPageEl = function getPageEl(content) {\n var router = this;\n\n if (typeof content === 'string') {\n router.tempDom.innerHTML = content;\n } else {\n if ($(content).hasClass('page')) {\n return content;\n }\n\n router.tempDom.innerHTML = '';\n $(router.tempDom).append(content);\n }\n\n return router.findElement('.page', router.tempDom);\n };\n\n _proto.findElement = function findElement(stringSelector, container, notStacked) {\n var router = this;\n var view = router.view;\n var app = router.app; // Modals Selector\n\n var modalsSelector = '.popup, .dialog, .popover, .actions-modal, .sheet-modal, .login-screen, .page';\n var $container = $(container);\n var selector = stringSelector;\n if (notStacked) selector += ':not(.stacked)';\n var found = $container.find(selector).filter(function (el) {\n return $(el).parents(modalsSelector).length === 0;\n });\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\n if (found.length > 1) {\n // Search in main view\n found = $container.find(\".\" + app.params.viewMainClass + \" \" + selector);\n }\n }\n\n if (found.length === 1) return found; // Try to find not stacked\n\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 _proto.flattenRoutes = function flattenRoutes(routes) {\n if (routes === void 0) {\n routes = this.routes;\n }\n\n var router = this;\n var flattenedRoutes = [];\n routes.forEach(function (route) {\n var hasTabRoutes = false;\n\n if ('tabs' in route && route.tabs) {\n var mergedPathsRoutes = route.tabs.map(function (tabRoute) {\n var tRoute = 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\n if ('detailRoutes' in route) {\n var _mergedPathsRoutes = route.detailRoutes.map(function (detailRoute) {\n var dRoute = extend({}, detailRoute);\n dRoute.masterRoute = route;\n dRoute.masterRoutePath = route.path;\n return dRoute;\n });\n\n flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(_mergedPathsRoutes));\n }\n\n if ('routes' in route) {\n var _mergedPathsRoutes2 = route.routes.map(function (childRoute) {\n var cRoute = extend({}, childRoute);\n cRoute.path = (route.path + \"/\" + cRoute.path).replace('///', '/').replace('//', '/');\n return cRoute;\n });\n\n if (hasTabRoutes) {\n flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(_mergedPathsRoutes2));\n } else {\n flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(_mergedPathsRoutes2));\n }\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 } // eslint-disable-next-line\n ;\n\n _proto.parseRouteUrl = function parseRouteUrl(url) {\n if (!url) return {};\n var query = parseUrlQuery(url);\n var hash = url.split('#')[1];\n var params = {};\n var path = url.split('#')[0].split('?')[0];\n return {\n query: query,\n hash: hash,\n params: params,\n url: url,\n path: path\n };\n };\n\n _proto.generateUrl = function generateUrl(parameters) {\n if (parameters === void 0) {\n parameters = {};\n }\n\n if (typeof parameters === 'string') {\n return parameters;\n }\n\n var _parameters = parameters,\n name = _parameters.name,\n path = _parameters.path,\n params = _parameters.params,\n query = _parameters.query;\n\n if (!name && !path) {\n throw new Error('Framework7: \"name\" or \"path\" parameter is required');\n }\n\n var router = this;\n var route = name ? router.findRouteByKey('name', name) : router.findRouteByKey('path', path);\n\n if (!route) {\n if (name) {\n throw new Error(\"Framework7: route with name \\\"\" + name + \"\\\" not found\");\n } else {\n throw new Error(\"Framework7: route with path \\\"\" + path + \"\\\" not found\");\n }\n }\n\n var url = router.constructRouteUrl(route, {\n params: params,\n query: query\n });\n\n if (!url) {\n throw new Error(\"Framework7: can't construct URL for route with name \\\"\" + name + \"\\\"\");\n }\n\n return url;\n } // eslint-disable-next-line\n ;\n\n _proto.constructRouteUrl = function constructRouteUrl(route, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n params = _ref.params,\n query = _ref.query;\n\n var path = route.path;\n var toUrl = compile(path);\n var url;\n\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;else if (Object.keys(query).length) url += \"?\" + serializeObject(query);\n }\n\n return url;\n };\n\n _proto.findTabRouteUrl = function findTabRouteUrl(tabEl) {\n var router = this;\n var $tabEl = $(tabEl);\n var parentPath = router.currentRoute.route.parentPath;\n var tabId = $tabEl.attr('id');\n var flattenedRoutes = router.flattenRoutes(router.routes);\n var foundTabRouteUrl;\n flattenedRoutes.forEach(function (route) {\n if (route.parentPath === parentPath && route.tab && route.tab.id === tabId) {\n if (router.currentRoute.params && Object.keys(router.currentRoute.params).length > 0) {\n foundTabRouteUrl = router.constructRouteUrl(route, {\n params: router.currentRoute.params,\n query: router.currentRoute.query\n });\n } else {\n foundTabRouteUrl = route.path;\n }\n }\n });\n return foundTabRouteUrl;\n };\n\n _proto.findRouteByKey = function findRouteByKey(key, value) {\n var router = this;\n var routes = router.routes;\n var flattenedRoutes = router.flattenRoutes(routes);\n var matchingRoute;\n flattenedRoutes.forEach(function (route) {\n if (matchingRoute) return;\n\n if (route[key] === value) {\n matchingRoute = route;\n }\n });\n return matchingRoute;\n };\n\n _proto.findMatchingRoute = function findMatchingRoute(url) {\n if (!url) return undefined;\n var router = this;\n var routes = router.routes;\n var flattenedRoutes = router.flattenRoutes(routes);\n\n var _router$parseRouteUrl = router.parseRouteUrl(url),\n path = _router$parseRouteUrl.path,\n query = _router$parseRouteUrl.query,\n hash = _router$parseRouteUrl.hash,\n params = _router$parseRouteUrl.params;\n\n var matchingRoute;\n flattenedRoutes.forEach(function (route) {\n if (matchingRoute) return;\n var keys = [];\n var pathsToMatch = [route.path];\n\n if (route.alias) {\n if (typeof route.alias === 'string') pathsToMatch.push(route.alias);else if (Array.isArray(route.alias)) {\n route.alias.forEach(function (aliasPath) {\n pathsToMatch.push(aliasPath);\n });\n }\n }\n\n var matched;\n pathsToMatch.forEach(function (pathToMatch) {\n if (matched) return;\n matched = pathToRegexp(pathToMatch, keys).exec(path);\n });\n\n if (matched) {\n keys.forEach(function (keyObj, index) {\n if (typeof keyObj.name === 'number') return;\n var paramValue = matched[index + 1];\n\n if (typeof paramValue === 'undefined' || paramValue === null) {\n params[keyObj.name] = paramValue;\n } else {\n params[keyObj.name] = decodeURIComponent(paramValue);\n }\n });\n var parentPath;\n\n if (route.parentPath) {\n parentPath = path.split('/').slice(0, route.parentPath.split('/').length - 1).join('/');\n }\n\n matchingRoute = {\n query: query,\n hash: hash,\n params: params,\n url: url,\n path: path,\n parentPath: parentPath,\n route: route,\n name: route.name\n };\n }\n });\n return matchingRoute;\n } // eslint-disable-next-line\n ;\n\n _proto.replaceRequestUrlParams = function replaceRequestUrlParams(url, options) {\n if (url === void 0) {\n url = '';\n }\n\n if (options === void 0) {\n options = {};\n }\n\n var compiledUrl = url;\n\n if (typeof compiledUrl === 'string' && compiledUrl.indexOf('{{') >= 0 && options && options.route && options.route.params && Object.keys(options.route.params).length) {\n Object.keys(options.route.params).forEach(function (paramName) {\n var regExp = new RegExp(\"{{\" + paramName + \"}}\", 'g');\n compiledUrl = compiledUrl.replace(regExp, options.route.params[paramName] || '');\n });\n }\n\n return compiledUrl;\n };\n\n _proto.removeFromXhrCache = function removeFromXhrCache(url) {\n var router = this;\n var xhrCache = router.cache.xhr;\n var index = false;\n\n for (var i = 0; i < xhrCache.length; i += 1) {\n if (xhrCache[i].url === url) index = i;\n }\n\n if (index !== false) xhrCache.splice(index, 1);\n };\n\n _proto.xhrRequest = function xhrRequest(requestUrl, options) {\n var router = this;\n var params = router.params;\n var ignoreCache = options.ignoreCache;\n var url = requestUrl;\n var hasQuery = url.indexOf('?') >= 0;\n\n if (params.passRouteQueryToRequest && options && options.route && options.route.query && Object.keys(options.route.query).length) {\n url += \"\" + (hasQuery ? '&' : '?') + serializeObject(options.route.query);\n hasQuery = true;\n }\n\n if (params.passRouteParamsToRequest && options && options.route && options.route.params && Object.keys(options.route.params).length) {\n url += \"\" + (hasQuery ? '&' : '?') + serializeObject(options.route.params);\n hasQuery = true;\n }\n\n if (url.indexOf('{{') >= 0) {\n url = router.replaceRequestUrlParams(url, options);\n } // should we ignore get params or not\n\n\n if (params.xhrCacheIgnoreGetParameters && url.indexOf('?') >= 0) {\n url = url.split('?')[0];\n }\n\n return new Promise(function (resolve, reject) {\n if (params.xhrCache && !ignoreCache && url.indexOf('nocache') < 0 && params.xhrCacheIgnore.indexOf(url) < 0) {\n for (var i = 0; i < router.cache.xhr.length; i += 1) {\n var cachedUrl = router.cache.xhr[i];\n\n if (cachedUrl.url === url) {\n // Check expiration\n if (now() - cachedUrl.time < params.xhrCacheDuration) {\n // Load from cache\n resolve(cachedUrl.content);\n return;\n }\n }\n }\n }\n\n router.xhrAbortController = router.app.request.abortController();\n router.app.request({\n abortController: router.xhrAbortController,\n url: url,\n method: 'GET',\n beforeSend: function beforeSend(xhr) {\n router.emit('routerAjaxStart', xhr, options);\n },\n complete: function complete(xhr, status) {\n router.emit('routerAjaxComplete', xhr);\n\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: url,\n time: now(),\n content: xhr.responseText\n });\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: function error(xhr) {\n router.emit('routerAjaxError', xhr, options);\n reject(xhr);\n }\n });\n });\n };\n\n _proto.setNavbarPosition = function setNavbarPosition($el, position, ariaHidden) {\n var router = this;\n $el.removeClass('navbar-previous navbar-current navbar-next');\n\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\n $el.trigger('navbar:position', {\n position: position\n });\n router.emit('navbarPosition', $el[0], position);\n };\n\n _proto.setPagePosition = function setPagePosition($el, position, ariaHidden) {\n var router = this;\n $el.removeClass('page-previous page-current page-next');\n $el.addClass(\"page-\" + position);\n\n if (ariaHidden === false) {\n $el.removeAttr('aria-hidden');\n } else if (ariaHidden === true) {\n $el.attr('aria-hidden', 'true');\n }\n\n $el.trigger('page:position', {\n position: position\n });\n router.emit('pagePosition', $el[0], position);\n } // Remove theme elements\n ;\n\n _proto.removeThemeElements = function removeThemeElements(el) {\n var router = this;\n var theme = router.app.theme;\n var toRemove;\n\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\n $(el).find(toRemove).remove();\n };\n\n _proto.getPageData = function getPageData(pageEl, navbarEl, from, to, route, pageFromEl) {\n if (route === void 0) {\n route = {};\n }\n\n var router = this;\n var $pageEl = $(pageEl).eq(0);\n var $navbarEl = $(navbarEl).eq(0);\n var currentPage = $pageEl[0].f7Page || {};\n var direction;\n var 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\n if (currentPage && !currentPage.fromPage) {\n var $pageFromEl = $(pageFromEl);\n\n if ($pageFromEl.length) {\n pageFrom = $pageFromEl[0].f7Page;\n }\n }\n\n pageFrom = currentPage.pageFrom || pageFrom;\n\n if (pageFrom && pageFrom.pageFrom) {\n pageFrom.pageFrom = null;\n }\n\n var page = {\n app: router.app,\n view: router.view,\n router: router,\n $el: $pageEl,\n el: $pageEl[0],\n $pageEl: $pageEl,\n pageEl: $pageEl[0],\n $navbarEl: $navbarEl,\n navbarEl: $navbarEl[0],\n name: $pageEl.attr('data-name'),\n position: from,\n from: from,\n to: to,\n direction: direction,\n route: currentPage.route ? currentPage.route : route,\n pageFrom: pageFrom\n };\n $pageEl[0].f7Page = page;\n return page;\n } // Callbacks\n ;\n\n _proto.pageCallback = function pageCallback(callback, pageEl, navbarEl, from, to, options, pageFromEl) {\n if (options === void 0) {\n options = {};\n }\n\n if (!pageEl) return;\n var router = this;\n var $pageEl = $(pageEl);\n if (!$pageEl.length) return;\n var $navbarEl = $(navbarEl);\n var _options = options,\n route = _options.route;\n var restoreScrollTopOnBack = router.params.restoreScrollTopOnBack && !(router.params.masterDetailBreakpoint > 0 && $pageEl.hasClass('page-master') && router.app.width >= router.params.masterDetailBreakpoint);\n var 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 var camelName = \"page\" + (callback[0].toUpperCase() + callback.slice(1, callback.length));\n var colonName = \"page:\" + callback.toLowerCase();\n var page = {};\n\n if (callback === 'beforeRemove' && $pageEl[0].f7Page) {\n page = extend($pageEl[0].f7Page, {\n from: from,\n to: to,\n position: from\n });\n } else {\n page = router.getPageData($pageEl[0], $navbarEl[0], from, to, route, pageFromEl);\n }\n\n page.swipeBack = !!options.swipeBack;\n\n var _ref2 = options.route ? options.route.route : {},\n _ref2$on = _ref2.on,\n on = _ref2$on === void 0 ? {} : _ref2$on,\n _ref2$once = _ref2.once,\n once = _ref2$once === void 0 ? {} : _ref2$once;\n\n if (options.on) {\n extend(on, options.on);\n }\n\n if (options.once) {\n extend(once, options.once);\n }\n\n function attachEvents() {\n if ($pageEl[0].f7RouteEventsAttached) return;\n $pageEl[0].f7RouteEventsAttached = true;\n\n if (on && Object.keys(on).length > 0) {\n $pageEl[0].f7RouteEventsOn = on;\n Object.keys(on).forEach(function (eventName) {\n on[eventName] = on[eventName].bind(router);\n $pageEl.on(eventNameToColonCase(eventName), on[eventName]);\n });\n }\n\n if (once && Object.keys(once).length > 0) {\n $pageEl[0].f7RouteEventsOnce = once;\n Object.keys(once).forEach(function (eventName) {\n once[eventName] = once[eventName].bind(router);\n $pageEl.once(eventNameToColonCase(eventName), once[eventName]);\n });\n }\n }\n\n function detachEvents() {\n if (!$pageEl[0].f7RouteEventsAttached) return;\n\n if ($pageEl[0].f7RouteEventsOn) {\n Object.keys($pageEl[0].f7RouteEventsOn).forEach(function (eventName) {\n $pageEl.off(eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOn[eventName]);\n });\n }\n\n if ($pageEl[0].f7RouteEventsOnce) {\n Object.keys($pageEl[0].f7RouteEventsOnce).forEach(function (eventName) {\n $pageEl.off(eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOnce[eventName]);\n });\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\n if (callback === 'init') {\n if (restoreScrollTopOnBack && (from === 'previous' || !from) && to === 'current' && router.scrollHistory[page.route.url] && !$pageEl.hasClass('no-restore-scroll')) {\n var $pageContent = $pageEl.find('.page-content');\n\n if ($pageContent.length > 0) {\n // eslint-disable-next-line\n $pageContent = $pageContent.filter(function (pageContentEl) {\n return $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 && !$(pageContentEl).is('.tab:not(.tab-active)');\n });\n }\n\n $pageContent.scrollTop(router.scrollHistory[page.route.url]);\n }\n\n attachEvents();\n\n if ($pageEl[0].f7PageInitialized) {\n $pageEl.trigger('page:reinit', page);\n router.emit('pageReinit', page);\n return;\n }\n\n $pageEl[0].f7PageInitialized = true;\n }\n\n if (restoreScrollTopOnBack && callback === 'beforeOut' && from === 'current' && to === 'previous') {\n // Save scroll position\n var _$pageContent = $pageEl.find('.page-content');\n\n if (_$pageContent.length > 0) {\n // eslint-disable-next-line\n _$pageContent = _$pageContent.filter(function (pageContentEl) {\n return $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 && !$(pageContentEl).is('.tab:not(.tab-active)');\n });\n }\n\n router.scrollHistory[page.route.url] = _$pageContent.scrollTop();\n }\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\n if (!keepAlive) {\n if ($pageEl[0].f7Page && $pageEl[0].f7Page.navbarEl) {\n delete $pageEl[0].f7Page.navbarEl.f7Page;\n }\n\n $pageEl[0].f7Page = null;\n }\n }\n };\n\n _proto.saveHistory = function saveHistory() {\n var router = this;\n var window = getWindow();\n router.view.history = router.history;\n\n if (router.params.browserHistory && router.params.browserHistoryStoreHistory && window.localStorage) {\n window.localStorage[\"f7router-\" + router.view.id + \"-history\"] = JSON.stringify(router.history);\n }\n };\n\n _proto.restoreHistory = function restoreHistory() {\n var router = this;\n var window = getWindow();\n\n if (router.params.browserHistory && router.params.browserHistoryStoreHistory && window.localStorage && 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 _proto.clearHistory = function clearHistory() {\n var router = this;\n router.history = [];\n if (router.view) router.view.history = [];\n router.saveHistory();\n };\n\n _proto.updateCurrentUrl = function updateCurrentUrl(newUrl) {\n var router = this;\n appRouterCheck(router, 'updateCurrentUrl'); // Update history\n\n if (router.history.length) {\n router.history[router.history.length - 1] = newUrl;\n } else {\n router.history.push(newUrl);\n } // Update current route params\n\n\n var _router$parseRouteUrl2 = router.parseRouteUrl(newUrl),\n query = _router$parseRouteUrl2.query,\n hash = _router$parseRouteUrl2.hash,\n params = _router$parseRouteUrl2.params,\n url = _router$parseRouteUrl2.url,\n path = _router$parseRouteUrl2.path;\n\n if (router.currentRoute) {\n extend(router.currentRoute, {\n query: query,\n hash: hash,\n params: params,\n url: url,\n path: path\n });\n }\n\n if (router.params.browserHistory) {\n var browserHistoryRoot = router.params.browserHistoryRoot || '';\n History.replace(router.view.id, {\n url: newUrl\n }, browserHistoryRoot + router.params.browserHistorySeparator + newUrl);\n } // Save History\n\n\n router.saveHistory();\n router.emit('routeUrlUpdate', router.currentRoute, router);\n };\n\n _proto.getInitialUrl = function getInitialUrl() {\n var router = this;\n\n if (router.initialUrl) {\n return {\n initialUrl: router.initialUrl,\n historyRestored: router.historyRestored\n };\n }\n\n var app = router.app,\n view = router.view;\n var document = getDocument();\n var window = getWindow();\n var location = app.params.url && typeof app.params.url === 'string' && typeof URL !== 'undefined' ? new URL(app.params.url) : document.location;\n var initialUrl = router.params.url;\n var documentUrl = location.href.split(location.origin)[1];\n var historyRestored;\n var _router$params = router.params,\n browserHistory = _router$params.browserHistory,\n browserHistoryOnLoad = _router$params.browserHistoryOnLoad,\n browserHistorySeparator = _router$params.browserHistorySeparator;\n var browserHistoryRoot = router.params.browserHistoryRoot;\n\n if ((window.cordova || window.Capacitor && window.Capacitor.isNative) && browserHistory && !browserHistorySeparator && !browserHistoryRoot && location.pathname.indexOf('index.html')) {\n // eslint-disable-next-line\n console.warn('Framework7: wrong or not complete browserHistory configuration, trying to guess browserHistoryRoot');\n browserHistoryRoot = location.pathname.split('index.html')[0];\n }\n\n if (!browserHistory || !browserHistoryOnLoad) {\n if (!initialUrl) {\n initialUrl = documentUrl;\n }\n\n if (location.search && initialUrl.indexOf('?') < 0) {\n initialUrl += location.search;\n }\n\n if (location.hash && initialUrl.indexOf('#') < 0) {\n initialUrl += location.hash;\n }\n } else {\n if (browserHistoryRoot && documentUrl.indexOf(browserHistoryRoot) >= 0) {\n documentUrl = documentUrl.split(browserHistoryRoot)[1];\n if (documentUrl === '') documentUrl = '/';\n }\n\n if (browserHistorySeparator.length > 0 && documentUrl.indexOf(browserHistorySeparator) >= 0) {\n initialUrl = documentUrl.split(browserHistorySeparator)[1];\n } else {\n initialUrl = documentUrl;\n }\n\n router.restoreHistory();\n\n if (router.history.indexOf(initialUrl) >= 0) {\n router.history = router.history.slice(0, router.history.indexOf(initialUrl) + 1);\n } else if (router.params.url === initialUrl) {\n router.history = [initialUrl];\n } else if (History.state && History.state[view.id] && History.state[view.id].url === router.history[router.history.length - 1]) {\n initialUrl = router.history[router.history.length - 1];\n } else {\n router.history = [documentUrl.split(browserHistorySeparator)[0] || '/', initialUrl];\n }\n\n if (router.history.length > 1) {\n historyRestored = true;\n } else {\n router.history = [];\n }\n\n router.saveHistory();\n }\n\n router.initialUrl = initialUrl;\n router.historyRestored = historyRestored;\n return {\n initialUrl: initialUrl,\n historyRestored: historyRestored\n };\n };\n\n _proto.init = function init() {\n var router = this;\n var app = router.app,\n view = router.view;\n var document = getDocument();\n router.mount();\n\n var _router$getInitialUrl = router.getInitialUrl(),\n initialUrl = _router$getInitialUrl.initialUrl,\n historyRestored = _router$getInitialUrl.historyRestored; // Init Swipeback\n\n\n if (view && router.params.iosSwipeBack && app.theme === 'ios' || view && router.params.mdSwipeBack && app.theme === 'md' || view && router.params.auroraSwipeBack && app.theme === 'aurora') {\n SwipeBack(router);\n }\n\n var _router$params2 = router.params,\n browserHistory = _router$params2.browserHistory,\n browserHistoryOnLoad = _router$params2.browserHistoryOnLoad,\n browserHistoryAnimateOnLoad = _router$params2.browserHistoryAnimateOnLoad,\n browserHistoryInitialMatch = _router$params2.browserHistoryInitialMatch;\n var currentRoute;\n\n if (router.history.length > 1) {\n // Will load page\n var initUrl = browserHistoryInitialMatch ? initialUrl : router.history[0];\n currentRoute = router.findMatchingRoute(initUrl);\n\n if (!currentRoute) {\n currentRoute = extend(router.parseRouteUrl(initUrl), {\n route: {\n url: initUrl,\n path: initUrl.split('?')[0]\n }\n });\n }\n } else {\n // Don't load page\n currentRoute = router.findMatchingRoute(initialUrl);\n\n if (!currentRoute) {\n currentRoute = extend(router.parseRouteUrl(initialUrl), {\n route: {\n url: initialUrl,\n path: initialUrl.split('?')[0]\n }\n });\n }\n }\n\n if (router.params.stackPages) {\n router.$el.children('.page').each(function (pageEl) {\n var $pageEl = $(pageEl);\n router.initialPages.push($pageEl[0]);\n\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 && initialUrl && router.params.loadInitialPage) {\n // No pages presented in DOM, reload new page\n router.navigate(initialUrl, {\n initial: true,\n reloadCurrent: true,\n browserHistory: false,\n animate: false,\n once: {\n modalOpen: function modalOpen() {\n if (!historyRestored) return;\n var preloadPreviousPage = router.params.preloadPreviousPage || router.params[app.theme + \"SwipeBack\"];\n\n if (preloadPreviousPage && router.history.length > 1) {\n router.back({\n preload: true\n });\n }\n },\n pageAfterIn: function pageAfterIn() {\n if (!historyRestored) return;\n var preloadPreviousPage = router.params.preloadPreviousPage || router.params[app.theme + \"SwipeBack\"];\n\n if (preloadPreviousPage && router.history.length > 1) {\n router.back({\n preload: true\n });\n }\n }\n }\n });\n } else if (router.$el.children('.page:not(.stacked)').length) {\n // Init current DOM page\n var hasTabRoute;\n router.currentRoute = currentRoute;\n router.$el.children('.page:not(.stacked)').each(function (pageEl) {\n var $pageEl = $(pageEl);\n var $navbarEl;\n router.setPagePosition($pageEl, 'current');\n\n if (router.dynamicNavbar) {\n $navbarEl = $pageEl.children('.navbar');\n\n if ($navbarEl.length > 0) {\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n\n router.setNavbarPosition($navbarEl, 'current');\n router.$navbarsEl.append($navbarEl);\n\n if ($navbarEl.children('.title-large').length) {\n $navbarEl.addClass('navbar-large');\n }\n\n $pageEl.children('.navbar').remove();\n } else {\n router.$navbarsEl.addClass('navbar-hidden');\n\n if ($navbarEl.children('.title-large').length) {\n router.$navbarsEl.addClass('navbar-hidden navbar-large-hidden');\n }\n }\n }\n\n if (router.currentRoute && router.currentRoute.route && (router.currentRoute.route.master === true || typeof router.currentRoute.route.master === 'function' && router.currentRoute.route.master(app, router)) && router.params.masterDetailBreakpoint > 0) {\n $pageEl.addClass('page-master');\n $pageEl.trigger('page:role', {\n role: 'master'\n });\n\n if ($navbarEl && $navbarEl.length) {\n $navbarEl.addClass('navbar-master');\n }\n\n view.checkMasterDetailBreakpoint();\n }\n\n var initOptions = {\n route: router.currentRoute\n };\n\n if (router.currentRoute && router.currentRoute.route && router.currentRoute.route.options) {\n extend(initOptions, router.currentRoute.route.options);\n }\n\n router.currentPageEl = $pageEl[0];\n\n if (router.dynamicNavbar && $navbarEl.length) {\n router.currentNavbarEl = $navbarEl[0];\n }\n\n router.removeThemeElements($pageEl);\n\n if (router.dynamicNavbar && $navbarEl.length) {\n router.removeThemeElements($navbarEl);\n }\n\n if (initOptions.route.route.tab) {\n hasTabRoute = true;\n router.tabLoad(initOptions.route.route.tab, extend({}, initOptions));\n }\n\n router.pageCallback('init', $pageEl, $navbarEl, 'current', undefined, initOptions);\n router.pageCallback('beforeIn', $pageEl, $navbarEl, 'current', undefined, initOptions);\n router.pageCallback('afterIn', $pageEl, $navbarEl, 'current', undefined, initOptions);\n });\n\n if (historyRestored) {\n if (browserHistoryInitialMatch) {\n var preloadPreviousPage = router.params.preloadPreviousPage || router.params[app.theme + \"SwipeBack\"];\n\n if (preloadPreviousPage && router.history.length > 1) {\n router.back({\n preload: true\n });\n }\n } else {\n router.navigate(initialUrl, {\n initial: true,\n browserHistory: false,\n history: false,\n animate: browserHistoryAnimateOnLoad,\n once: {\n pageAfterIn: function pageAfterIn() {\n var preloadPreviousPage = router.params.preloadPreviousPage || router.params[app.theme + \"SwipeBack\"];\n\n if (preloadPreviousPage && router.history.length > 2) {\n router.back({\n preload: true\n });\n }\n }\n }\n });\n }\n }\n\n if (!historyRestored && !hasTabRoute) {\n router.history.push(initialUrl);\n router.saveHistory();\n }\n }\n\n if (initialUrl && browserHistory && browserHistoryOnLoad && (!History.state || !History.state[view.id])) {\n History.initViewState(view.id, {\n url: initialUrl\n });\n }\n\n router.emit('local::init routerInit', router);\n };\n\n _proto.destroy = function destroy() {\n var router = this;\n router.emit('local::destroy routerDestroy', router); // Delete props & methods\n\n Object.keys(router).forEach(function (routerProp) {\n router[routerProp] = null;\n delete router[routerProp];\n });\n router = null;\n };\n\n return Router;\n}(Framework7Class); // Load\n\n\nRouter.prototype.navigate = navigate;\nRouter.prototype.refreshPage = refreshPage; // Tab\n\nRouter.prototype.tabLoad = tabLoad;\nRouter.prototype.tabRemove = tabRemove; // Modal\n\nRouter.prototype.modalLoad = modalLoad;\nRouter.prototype.modalRemove = modalRemove; // Back\n\nRouter.prototype.back = back; // Clear history\n\nRouter.prototype.clearPreviousHistory = clearPreviousHistory;\nexport default Router;","import $ from '../../shared/dom7';\nimport History from '../../shared/history';\nimport { getSupport } from '../../shared/get-support';\nimport { getDevice } from '../../shared/get-device';\nimport { now } from '../../shared/utils';\n\nfunction SwipeBack(r) {\n var router = r;\n var $el = router.$el,\n $navbarsEl = router.$navbarsEl,\n app = router.app,\n params = router.params;\n var support = getSupport();\n var device = getDevice();\n var isTouched = false;\n var isMoved = false;\n var touchesStart = {};\n var isScrolling;\n var $currentPageEl = [];\n var $previousPageEl = [];\n var viewContainerWidth;\n var touchesDiff;\n var allowViewTouchMove = true;\n var touchStartTime;\n var $currentNavbarEl = [];\n var $previousNavbarEl = [];\n var dynamicNavbar;\n var $pageShadowEl;\n var $pageOpacityEl;\n var animatableNavEls;\n var paramsSwipeBackAnimateShadow = params[app.theme + \"SwipeBackAnimateShadow\"];\n var paramsSwipeBackAnimateOpacity = params[app.theme + \"SwipeBackAnimateOpacity\"];\n var paramsSwipeBackActiveArea = params[app.theme + \"SwipeBackActiveArea\"];\n var paramsSwipeBackThreshold = params[app.theme + \"SwipeBackThreshold\"];\n var transformOrigin = app.rtl ? 'right center' : 'left center';\n var transformOriginTitleLarge = app.rtl ? 'calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center' : 'calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center';\n\n function animatableNavElements() {\n var els = [];\n var inverter = app.rtl ? -1 : 1;\n var currentNavIsTransparent = $currentNavbarEl.hasClass('navbar-transparent') && !$currentNavbarEl.hasClass('navbar-large') && !$currentNavbarEl.hasClass('navbar-transparent-visible');\n var currentNavIsLarge = $currentNavbarEl.hasClass('navbar-large');\n var currentNavIsCollapsed = $currentNavbarEl.hasClass('navbar-large-collapsed');\n var currentNavIsLargeTransparent = $currentNavbarEl.hasClass('navbar-large-transparent') || $currentNavbarEl.hasClass('navbar-large') && $currentNavbarEl.hasClass('navbar-transparent');\n var previousNavIsTransparent = $previousNavbarEl.hasClass('navbar-transparent') && !$previousNavbarEl.hasClass('navbar-large') && !$previousNavbarEl.hasClass('navbar-transparent-visible');\n var previousNavIsLarge = $previousNavbarEl.hasClass('navbar-large');\n var previousNavIsCollapsed = $previousNavbarEl.hasClass('navbar-large-collapsed');\n var previousNavIsLargeTransparent = $previousNavbarEl.hasClass('navbar-large-transparent') || $previousNavbarEl.hasClass('navbar-large') && $previousNavbarEl.hasClass('navbar-transparent');\n var fromLarge = currentNavIsLarge && !currentNavIsCollapsed;\n var toLarge = previousNavIsLarge && !previousNavIsCollapsed;\n var $currentNavElements = $currentNavbarEl.find('.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg');\n var $previousNavElements = $previousNavbarEl.find('.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg');\n var activeNavBackIconText;\n var 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\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\n if (activeNavBackIconText.length) {\n $previousNavElements.each(function (el) {\n if (!$(el).hasClass('title')) return;\n el.f7NavbarLeftOffset += activeNavBackIconText.prev('.icon')[0].offsetWidth;\n });\n }\n }\n\n $currentNavElements.each(function (navEl) {\n var $navEl = $(navEl);\n var isSubnavbar = $navEl.hasClass('subnavbar');\n var isLeft = $navEl.hasClass('left');\n var isTitle = $navEl.hasClass('title');\n var isBg = $navEl.hasClass('navbar-bg');\n if ((isTitle || isBg) && currentNavIsTransparent) return;\n if (!fromLarge && $navEl.hasClass('.title-large')) return;\n var el = {\n el: navEl\n };\n\n if (fromLarge) {\n if (isTitle) return;\n\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(function (subNavEl) {\n els.push({\n el: subNavEl,\n transform: function transform(progress) {\n return \"translateX(\" + progress * 100 * inverter + \"%)\";\n }\n });\n });\n return;\n }\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\n if (isLeft) {\n if (els.indexOf(el) < 0) els.push(el);\n\n el.opacity = function (progress) {\n return 1 - Math.pow(progress, 0.33);\n };\n\n $navEl.find('.back span').each(function (subNavEl) {\n els.push({\n el: subNavEl,\n 'transform-origin': transformOrigin,\n transform: function transform(progress) {\n return \"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 });\n return;\n }\n }\n\n if (isBg) {\n if (els.indexOf(el) < 0) els.push(el);\n\n if (!fromLarge && !toLarge) {\n if (currentNavIsCollapsed) {\n if (currentNavIsLargeTransparent) {\n el.className = 'ios-swipeback-navbar-bg-large';\n }\n\n el.transform = function (progress) {\n return \"translateX(\" + 100 * progress * inverter + \"%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))\";\n };\n } else {\n el.transform = function (progress) {\n return \"translateX(\" + 100 * progress * inverter + \"%)\";\n };\n }\n }\n\n if (!fromLarge && toLarge) {\n el.className = 'ios-swipeback-navbar-bg-large';\n\n el.transform = function (progress) {\n return \"translateX(\" + 100 * progress * inverter + \"%) translateY(calc(-1 * \" + (1 - progress) + \" * var(--f7-navbar-large-title-height)))\";\n };\n }\n\n if (fromLarge && toLarge) {\n el.transform = function (progress) {\n return \"translateX(\" + 100 * progress * inverter + \"%)\";\n };\n }\n\n if (fromLarge && !toLarge) {\n el.transform = function (progress) {\n return \"translateX(\" + 100 * progress * inverter + \"%) translateY(calc(-\" + progress + \" * var(--f7-navbar-large-title-height)))\";\n };\n }\n\n return;\n }\n\n if ($navEl.hasClass('title-large')) return;\n var isSliding = $navEl.hasClass('sliding') || $navEl.parents('.navbar-inner.sliding').length;\n if (els.indexOf(el) < 0) els.push(el);\n\n if (!isSubnavbar || isSubnavbar && !isSliding) {\n el.opacity = function (progress) {\n return 1 - Math.pow(progress, 0.33);\n };\n }\n\n if (isSliding) {\n var transformTarget = el;\n\n if (isLeft && activeNavBackIconText.length && params.iosAnimateNavbarBackIcon) {\n var textEl = {\n el: activeNavBackIconText[0]\n };\n transformTarget = textEl;\n els.push(textEl);\n }\n\n transformTarget.transform = function (progress) {\n var activeNavTranslate = progress * transformTarget.el.f7NavbarRightOffset;\n if (device.pixelRatio === 1) activeNavTranslate = Math.round(activeNavTranslate);\n\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\n return \"translate3d(\" + activeNavTranslate + \"px,0,0)\";\n };\n }\n });\n $previousNavElements.each(function (navEl) {\n var $navEl = $(navEl);\n var isSubnavbar = $navEl.hasClass('subnavbar');\n var isLeft = $navEl.hasClass('left');\n var isTitle = $navEl.hasClass('title');\n var isBg = $navEl.hasClass('navbar-bg');\n if ((isTitle || isBg) && previousNavIsTransparent) return;\n var el = {\n el: navEl\n };\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(function (subNavEl) {\n els.push({\n el: subNavEl,\n 'transform-origin': transformOriginTitleLarge,\n opacity: function opacity(progress) {\n return Math.pow(progress, 3);\n },\n transform: function transform(progress) {\n return \"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 });\n return;\n }\n }\n\n if (isBg) {\n if (els.indexOf(el) < 0) els.push(el);\n\n if (!fromLarge && !toLarge) {\n if (previousNavIsCollapsed) {\n if (previousNavIsLargeTransparent) {\n el.className = 'ios-swipeback-navbar-bg-large';\n }\n\n el.transform = function (progress) {\n return \"translateX(\" + (-100 + 100 * progress) * inverter + \"%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))\";\n };\n } else {\n el.transform = function (progress) {\n return \"translateX(\" + (-100 + 100 * progress) * inverter + \"%)\";\n };\n }\n }\n\n if (!fromLarge && toLarge) {\n el.transform = function (progress) {\n return \"translateX(\" + (-100 + 100 * progress) * inverter + \"%) translateY(calc(-1 * \" + (1 - progress) + \" * var(--f7-navbar-large-title-height)))\";\n };\n }\n\n if (fromLarge && !toLarge) {\n el.className = 'ios-swipeback-navbar-bg-large';\n\n el.transform = function (progress) {\n return \"translateX(\" + (-100 + 100 * progress) * inverter + \"%) translateY(calc(-\" + progress + \" * var(--f7-navbar-large-title-height)))\";\n };\n }\n\n if (fromLarge && toLarge) {\n el.transform = function (progress) {\n return \"translateX(\" + (-100 + 100 * progress) * inverter + \"%)\";\n };\n }\n\n return;\n }\n\n if ($navEl.hasClass('title-large')) return;\n var isSliding = $navEl.hasClass('sliding') || $previousNavbarEl.children('.navbar-inner.sliding').length;\n if (els.indexOf(el) < 0) els.push(el);\n\n if (!isSubnavbar || isSubnavbar && !isSliding) {\n el.opacity = function (progress) {\n return Math.pow(progress, 3);\n };\n }\n\n if (isSliding) {\n var transformTarget = el;\n\n if (isLeft && previousNavBackIconText.length && params.iosAnimateNavbarBackIcon) {\n var textEl = {\n el: previousNavBackIconText[0]\n };\n transformTarget = textEl;\n els.push(textEl);\n }\n\n transformTarget.transform = function (progress) {\n var previousNavTranslate = transformTarget.el.f7NavbarLeftOffset * (1 - progress);\n if (device.pixelRatio === 1) previousNavTranslate = Math.round(previousNavTranslate);\n\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\n return \"translate3d(\" + previousNavTranslate + \"px,0,0)\";\n };\n }\n });\n return els;\n }\n\n function setAnimatableNavElements(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n progress = _ref.progress,\n reset = _ref.reset,\n transition = _ref.transition,\n reflow = _ref.reflow;\n\n var styles = ['overflow', 'transform', 'transform-origin', 'opacity'];\n\n if (transition === true || transition === false) {\n for (var i = 0; i < animatableNavEls.length; i += 1) {\n var el = animatableNavEls[i];\n\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 }\n }\n }\n\n if (reflow && animatableNavEls.length && animatableNavEls[0] && animatableNavEls[0].el) {\n // eslint-disable-next-line\n animatableNavEls[0].el._clientLeft = animatableNavEls[0].el.clientLeft;\n }\n\n for (var _i = 0; _i < animatableNavEls.length; _i += 1) {\n var _el = animatableNavEls[_i];\n\n if (_el && _el.el) {\n if (_el.className && !_el.classNameSet && !reset) {\n _el.el.classList.add(_el.className);\n\n _el.classNameSet = true;\n }\n\n if (_el.className && reset) {\n _el.el.classList.remove(_el.className);\n }\n\n for (var j = 0; j < styles.length; j += 1) {\n var styleProp = styles[j];\n\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 var 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 = now();\n dynamicNavbar = router.dynamicNavbar;\n }\n\n function handleTouchMove(e) {\n if (!isTouched) return;\n var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\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\n if (isScrolling || e.f7PreventSwipeBack || app.preventSwipeBack) {\n isTouched = false;\n return;\n }\n\n if (!isMoved) {\n // Calc values during first move fired\n var cancel = false;\n var target = $(e.target);\n var swipeout = target.closest('.swipeout');\n\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\n if ($previousPageEl.length > 1) {\n $previousPageEl = $previousPageEl.eq($previousPageEl.length - 1);\n }\n\n var notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea;\n viewContainerWidth = $el.width();\n\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\n if (notFromBorder) cancel = true;\n if ($previousPageEl.length === 0 || $currentPageEl.length === 0) cancel = true;\n\n if (cancel) {\n isTouched = false;\n return;\n }\n\n if (paramsSwipeBackAnimateShadow) {\n $pageShadowEl = $currentPageEl.find('.page-shadow-effect');\n\n if ($pageShadowEl.length === 0) {\n $pageShadowEl = $('
');\n $currentPageEl.append($pageShadowEl);\n }\n }\n\n if (paramsSwipeBackAnimateOpacity) {\n $pageOpacityEl = $previousPageEl.find('.page-opacity-effect');\n\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\n if ($previousNavbarEl.length > 1) {\n $previousNavbarEl = $previousNavbarEl.eq($previousNavbarEl.length - 1);\n }\n\n animatableNavEls = animatableNavElements($previousNavbarEl, $currentNavbarEl);\n } // Close/Hide Any Picker\n\n\n if ($('.sheet.modal-in').length > 0 && app.sheet) {\n app.sheet.close($('.sheet.modal-in'));\n }\n }\n\n e.f7PreventSwipePanel = true;\n isMoved = true;\n app.preventSwipePanelBySwipeBack = true;\n e.preventDefault(); // RTL inverter\n\n var inverter = app.rtl ? -1 : 1; // Touches diff\n\n touchesDiff = (pageX - touchesStart.x - paramsSwipeBackThreshold) * inverter;\n if (touchesDiff < 0) touchesDiff = 0;\n var percentage = Math.min(Math.max(touchesDiff / viewContainerWidth, 0), 1); // Swipe Back Callback\n\n var callbackData = {\n percentage: 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); // Transform pages\n\n var currentPageTranslate = touchesDiff * inverter;\n var previousPageTranslate = (touchesDiff / 5 - viewContainerWidth / 5) * inverter;\n\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\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 $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\n if (paramsSwipeBackAnimateOpacity) $pageOpacityEl[0].style.opacity = 1 - 1 * percentage; // Dynamic Navbars Animation\n\n if (!dynamicNavbar) return;\n setAnimatableNavElements({\n progress: percentage\n });\n }\n\n function handleTouchEnd() {\n app.preventSwipePanelBySwipeBack = false;\n\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n\n isTouched = false;\n isMoved = false;\n router.swipeBackActive = false;\n var $pages = $([$currentPageEl[0], $previousPageEl[0]]);\n $pages.removeClass('page-swipeback-active');\n\n if (touchesDiff === 0) {\n $pages.transform('');\n if ($pageShadowEl && $pageShadowEl.length > 0) $pageShadowEl.remove();\n if ($pageOpacityEl && $pageOpacityEl.length > 0) $pageOpacityEl.remove();\n\n if (dynamicNavbar) {\n setAnimatableNavElements({\n reset: true\n });\n }\n\n return;\n }\n\n var timeDiff = now() - touchStartTime;\n var pageChanged = false; // Swipe back to previous page\n\n if (timeDiff < 300 && touchesDiff > 10 || timeDiff >= 300 && touchesDiff > viewContainerWidth / 2) {\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\n if (dynamicNavbar) {\n router.setNavbarPosition($currentNavbarEl, 'next');\n router.setNavbarPosition($previousNavbarEl, 'current', false);\n }\n\n pageChanged = true;\n } // Reset custom styles\n // Add transitioning class for transition-duration\n\n\n $pages.addClass('page-transitioning page-transitioning-swipeback');\n\n if (device.ios) {\n // eslint-disable-next-line\n $currentPageEl[0]._clientLeft = $currentPageEl[0].clientLeft;\n }\n\n $pages.transform('');\n\n if (dynamicNavbar) {\n setAnimatableNavElements({\n progress: pageChanged ? 1 : 0,\n transition: true,\n reflow: !!device.ios\n });\n }\n\n allowViewTouchMove = false;\n router.allowPageChange = false; // Swipe Back Callback\n\n var 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]; // Page before animation callback\n\n router.pageCallback('beforeOut', $currentPageEl, $currentNavbarEl, 'current', 'next', {\n route: $currentPageEl[0].f7Page.route,\n swipeBack: true\n });\n router.pageCallback('beforeIn', $previousPageEl, $previousNavbarEl, 'previous', 'current', {\n route: $previousPageEl[0].f7Page.route,\n swipeBack: true\n }, $currentPageEl[0]);\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(function () {\n $pages.removeClass('page-transitioning page-transitioning-swipeback');\n\n if (dynamicNavbar) {\n setAnimatableNavElements({\n reset: true,\n transition: false\n });\n }\n\n allowViewTouchMove = true;\n router.allowPageChange = true;\n\n if (pageChanged) {\n // Update History\n if (router.history.length === 1) {\n router.history.unshift(router.url);\n }\n\n router.history.pop();\n router.saveHistory(); // Update push state\n\n if (params.browserHistory) {\n History.back();\n } // Page after animation callback\n\n\n router.pageCallback('afterOut', $currentPageEl, $currentNavbarEl, 'current', 'next', {\n route: $currentPageEl[0].f7Page.route,\n swipeBack: true\n });\n router.pageCallback('afterIn', $previousPageEl, $previousNavbarEl, 'previous', 'current', {\n route: $previousPageEl[0].f7Page.route,\n swipeBack: true\n }); // Remove Old Page\n\n if (params.stackPages && router.initialPages.indexOf($currentPageEl[0]) >= 0) {\n $currentPageEl.addClass('stacked');\n\n if (dynamicNavbar) {\n $currentNavbarEl.addClass('stacked');\n }\n } else {\n router.pageCallback('beforeRemove', $currentPageEl, $currentNavbarEl, 'next', {\n swipeBack: true\n });\n router.removePage($currentPageEl);\n\n if (dynamicNavbar) {\n router.removeNavbar($currentNavbarEl);\n }\n }\n\n $el.trigger('swipeback:afterchange', callbackData);\n router.emit('swipebackAfterChange', callbackData);\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n\n if (params.preloadPreviousPage) {\n router.back(router.history[router.history.length - 2], {\n preload: true\n });\n }\n } else {\n $el.trigger('swipeback:afterreset', callbackData);\n router.emit('swipebackAfterReset', callbackData);\n }\n\n if ($pageShadowEl && $pageShadowEl.length > 0) $pageShadowEl.remove();\n if ($pageOpacityEl && $pageOpacityEl.length > 0) $pageOpacityEl.remove();\n });\n }\n\n function attachEvents() {\n var passiveListener = app.touchEvents.start === 'touchstart' && support.passiveListener ? {\n passive: true,\n capture: false\n } : false;\n $el.on(app.touchEvents.start, handleTouchStart, passiveListener);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n }\n\n function detachEvents() {\n var passiveListener = app.touchEvents.start === 'touchstart' && support.passiveListener ? {\n passive: true,\n capture: false\n } : 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 router.on('routerDestroy', detachEvents);\n}\n\nexport default SwipeBack;","import $ from '../../shared/dom7';\nimport { extend } from '../../shared/utils';\nimport History from '../../shared/history';\nimport asyncComponent from './async-component';\n\nfunction tabLoad(tabRoute, loadOptions) {\n if (loadOptions === void 0) {\n loadOptions = {};\n }\n\n var router = this;\n var options = extend({\n animate: router.params.animate,\n browserHistory: true,\n history: true,\n parentPageEl: null,\n preload: false,\n on: {}\n }, loadOptions);\n var currentRoute;\n var previousRoute;\n\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\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 } // Update Browser History\n\n\n if (router.params.browserHistory && options.browserHistory && !options.reloadPrevious) {\n History.replace(router.view.id, {\n url: options.route.url\n }, (router.params.browserHistoryRoot || '') + router.params.browserHistorySeparator + options.route.url);\n } // Update Router History\n\n\n if (options.history) {\n router.history[Math.max(router.history.length - 1, 0)] = options.route.url;\n router.saveHistory();\n }\n } // Show Tab\n\n\n var $parentPageEl = $(options.parentPageEl || router.currentPageEl);\n var tabEl;\n\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\n var tabShowResult = router.app.tab.show({\n tabEl: tabEl,\n animate: options.animate,\n tabRoute: options.route\n });\n var $newTabEl = tabShowResult.$newTabEl,\n $oldTabEl = tabShowResult.$oldTabEl,\n animated = tabShowResult.animated,\n onTabsChanged = tabShowResult.onTabsChanged;\n\n if ($newTabEl && $newTabEl.parents('.page').length > 0 && options.route) {\n var tabParentPageData = $newTabEl.parents('.page')[0].f7Page;\n\n if (tabParentPageData && options.route) {\n tabParentPageData.route = options.route;\n }\n } // Tab Content Loaded\n\n\n function onTabLoaded(contentEl) {\n // Remove theme elements\n router.removeThemeElements($newTabEl);\n var tabEventTarget = $newTabEl;\n if (typeof contentEl !== 'string') tabEventTarget = $(contentEl);\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(function () {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n\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\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\n if (animated) {\n onTabsChanged(function () {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n });\n } else {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n }\n\n return router;\n } // Load Tab Content\n\n\n function loadTab(loadTabParams, loadTabOptions) {\n // Load Tab Props\n var url = loadTabParams.url,\n content = loadTabParams.content,\n el = loadTabParams.el,\n component = loadTabParams.component,\n componentUrl = loadTabParams.componentUrl; // Component/Template Callbacks\n\n function resolve(contentEl) {\n router.allowPageChange = true;\n if (!contentEl) return;\n\n if (typeof contentEl === 'string') {\n $newTabEl.html(contentEl);\n } else {\n $newTabEl.html('');\n\n if (contentEl.f7Component) {\n contentEl.f7Component.mount(function (componentEl) {\n $newTabEl.append(componentEl);\n });\n } else {\n $newTabEl.append(contentEl);\n }\n }\n\n $newTabEl[0].f7RouterTabLoaded = true;\n onTabLoaded(contentEl);\n }\n\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (content) {\n resolve(content);\n } else if (el) {\n resolve(el);\n } else if (component || componentUrl) {\n // Load from component (F7/Vue/React/...)\n try {\n router.tabComponentLoader({\n tabEl: $newTabEl[0],\n component: component,\n componentUrl: componentUrl,\n options: loadTabOptions,\n resolve: resolve,\n reject: reject\n });\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (url) {\n // Load using XHR\n if (router.xhrAbortController) {\n router.xhrAbortController.abort();\n router.xhrAbortController = false;\n }\n\n router.xhrRequest(url, loadTabOptions).then(function (tabContent) {\n resolve(tabContent);\n }).catch(function () {\n router.allowPageChange = true;\n });\n }\n }\n\n var hasContentLoadProp;\n 'url content component el componentUrl'.split(' ').forEach(function (tabLoadProp) {\n if (tabRoute[tabLoadProp]) {\n var _loadTab;\n\n hasContentLoadProp = true;\n loadTab((_loadTab = {}, _loadTab[tabLoadProp] = tabRoute[tabLoadProp], _loadTab), options);\n }\n }); // Async\n\n function asyncResolve(resolveParams, resolveOptions) {\n loadTab(resolveParams, extend(options, resolveOptions));\n }\n\n function asyncReject() {\n router.allowPageChange = true;\n }\n\n if (tabRoute.async) {\n tabRoute.async.call(router, {\n router: router,\n to: currentRoute,\n from: previousRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n app: router.app\n });\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}\n\nfunction tabRemove($oldTabEl, $newTabEl, tabRoute) {\n var router = this;\n var hasTabComponentChild;\n\n if ($oldTabEl[0]) {\n $oldTabEl[0].f7RouterTabLoaded = false;\n delete $oldTabEl[0].f7RouterTabLoaded;\n }\n\n $oldTabEl.children().each(function (tabChild) {\n if (tabChild.f7Component) {\n hasTabComponentChild = true;\n $(tabChild).trigger('tab:beforeremove', tabRoute);\n tabChild.f7Component.destroy();\n }\n });\n\n if (!hasTabComponentChild) {\n $oldTabEl.trigger('tab:beforeremove', tabRoute);\n }\n\n router.emit('tabBeforeRemove', $oldTabEl[0], $newTabEl[0], tabRoute);\n router.removeTabContent($oldTabEl[0], tabRoute);\n}\n\nexport { tabLoad, tabRemove };","import { extend, nextTick } from '../../shared/utils';\nimport History from '../../shared/history';\nimport asyncComponent from './async-component';\n\nfunction modalLoad(modalType, route, loadOptions, direction) {\n if (loadOptions === void 0) {\n loadOptions = {};\n }\n\n var router = this;\n var app = router.app;\n var isPanel = modalType === 'panel';\n var modalOrPanel = isPanel ? 'panel' : 'modal';\n var options = extend({\n animate: router.params.animate,\n browserHistory: true,\n history: true,\n on: {},\n once: {}\n }, loadOptions);\n var modalParams = extend({}, route.route[modalType]);\n var modalRoute = route.route;\n\n var routeCallback = function routeCallback(modal, name) {\n var on = options.on,\n once = options.once;\n var callback;\n\n if (name === 'open') {\n callback = on.modalOpen || once.modalOpen || on.panelOpen || once.panelOpen;\n }\n\n if (name === 'close') {\n callback = on.modalClose || once.modalClose || on.panelClose || once.panelClose;\n }\n\n if (name === 'closed') {\n callback = on.modalClosed || once.modalClosed || on.panelClosed || once.panelClosed;\n }\n\n if (callback) callback(modal);\n };\n\n function onModalLoaded() {\n // Create Modal\n var modal = app[modalType].create(modalParams);\n modalRoute.modalInstance = modal;\n var hasEl = modal.el;\n\n function closeOnSwipeBack() {\n modal.close();\n }\n\n modal.on(modalOrPanel + \"Open\", function () {\n if (!hasEl) {\n // Remove theme elements\n router.removeThemeElements(modal.el); // Emit events\n\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\n router.once('swipeBackMove', closeOnSwipeBack);\n routeCallback(modal, 'open');\n });\n modal.on(modalOrPanel + \"Close\", function () {\n router.off('swipeBackMove', closeOnSwipeBack);\n\n if (!modal.closeByRouter) {\n router.back();\n }\n\n routeCallback(modal, 'close');\n });\n modal.on(modalOrPanel + \"Closed\", function () {\n modal.$el.trigger(modalType.toLowerCase() + \":beforeremove\", route, modal);\n modal.emit(\"\" + (!isPanel ? 'modalBeforeRemove ' : '') + modalType + \"BeforeRemove\", modal.el, route, modal);\n var modalComponent = modal.el.f7Component;\n routeCallback(modal, 'closed');\n\n if (modalComponent) {\n modalComponent.destroy();\n }\n\n nextTick(function () {\n if (modalComponent || modalParams.component || modalParams.asyncComponent) {\n router.removeModal(modal.el);\n }\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.browserHistory && options.browserHistory) {\n History.push(router.view.id, {\n url: options.route.url,\n modal: modalType\n }, (router.params.browserHistoryRoot || '') + router.params.browserHistorySeparator + options.route.url);\n } // Set Route\n\n\n if (options.route !== router.currentRoute) {\n modal.route = extend(options.route, {\n modal: modal\n });\n router.currentRoute = modal.route;\n } // Update Router History\n\n\n if (options.history && !options.reloadCurrent) {\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); // Emit events\n\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 } // Open\n\n\n modal.open(options.animate === false || options.animate === true ? options.animate : undefined);\n } // Load Modal Content\n\n\n function loadModal(loadModalParams, loadModalOptions) {\n // Load Modal Props\n var url = loadModalParams.url,\n content = loadModalParams.content,\n component = loadModalParams.component,\n componentUrl = loadModalParams.componentUrl; // Component/Template Callbacks\n\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(function (componentEl) {\n modalParams.el = componentEl;\n app.$el.append(componentEl);\n });\n } else {\n modalParams.el = contentEl;\n }\n\n onModalLoaded();\n }\n }\n\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (content) {\n resolve(content);\n } else if (component || componentUrl) {\n // Load from component (F7/Vue/React/...)\n try {\n router.modalComponentLoader({\n rootEl: app.el,\n component: component,\n componentUrl: componentUrl,\n options: loadModalOptions,\n resolve: resolve,\n reject: reject\n });\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (url) {\n // Load using XHR\n if (router.xhrAbortController) {\n router.xhrAbortController.abort();\n router.xhrAbortController = false;\n }\n\n router.xhrRequest(url, loadModalOptions).then(function (modalContent) {\n modalParams.content = modalContent;\n onModalLoaded();\n }).catch(function () {\n router.allowPageChange = true;\n });\n } else {\n onModalLoaded();\n }\n }\n\n var foundLoadProp;\n 'url content component el componentUrl template'.split(' ').forEach(function (modalLoadProp) {\n if (modalParams[modalLoadProp] && !foundLoadProp) {\n var _loadModal;\n\n foundLoadProp = true;\n loadModal((_loadModal = {}, _loadModal[modalLoadProp] = modalParams[modalLoadProp], _loadModal), options);\n }\n });\n\n if (!foundLoadProp && modalType === 'actions') {\n onModalLoaded();\n } // Async\n\n\n function asyncResolve(resolveParams, resolveOptions) {\n loadModal(resolveParams, extend(options, resolveOptions));\n }\n\n function asyncReject() {\n router.allowPageChange = true;\n }\n\n if (modalParams.async) {\n modalParams.async.call(router, {\n router: router,\n to: options.route,\n from: router.currentRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n direction: direction,\n app: app\n });\n }\n\n if (modalParams.asyncComponent) {\n asyncComponent(router, modalParams.asyncComponent, asyncResolve, asyncReject);\n }\n\n return router;\n}\n\nfunction modalRemove(modal) {\n extend(modal, {\n closeByRouter: true\n });\n modal.close();\n}\n\nexport { modalLoad, modalRemove };","import $ from '../../shared/dom7';\nimport appRouterCheck from './app-router-check';\n\nfunction clearPreviousPages(router) {\n appRouterCheck(router, 'clearPreviousPages');\n var app = router.app;\n var dynamicNavbar = router.dynamicNavbar;\n var $pagesToRemove = router.$el.children('.page').filter(function (pageInView) {\n if (router.currentRoute && (router.currentRoute.modal || router.currentRoute.panel)) return true;\n return pageInView !== router.currentPageEl;\n });\n $pagesToRemove.each(function (pageEl) {\n var $oldPageEl = $(pageEl);\n var $oldNavbarEl = $(app.navbar.getElByPage($oldPageEl));\n\n if (router.params.stackPages && router.initialPages.indexOf($oldPageEl[0]) >= 0) {\n $oldPageEl.addClass('stacked');\n\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\n if (dynamicNavbar && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n });\n}\n\nfunction clearPreviousHistory() {\n var router = this;\n appRouterCheck(router, 'clearPreviousHistory');\n var url = router.history[router.history.length - 1];\n clearPreviousPages(router);\n router.history = [url];\n router.view.history = [url];\n router.saveHistory();\n}\n\nexport { clearPreviousHistory }; // eslint-disable-line","import Router from './router-class';\nexport default {\n name: 'router',\n static: {\n Router: Router\n },\n instance: {\n cache: {\n xhr: [],\n templates: [],\n components: []\n }\n },\n create: function create() {\n var instance = this;\n\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};","function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport $ from '../../shared/dom7';\nimport { extend } from '../../shared/utils';\nimport Router from '../../modules/router/router';\nimport Framework7Class from '../../shared/class';\nimport resizableView from './resizable-view';\n\nvar View = /*#__PURE__*/function (_Framework7Class) {\n _inheritsLoose(View, _Framework7Class);\n\n function View(app, el, viewParams) {\n var _this;\n\n if (viewParams === void 0) {\n viewParams = {};\n }\n\n _this = _Framework7Class.call(this, viewParams, [app]) || this;\n\n var view = _assertThisInitialized(_this);\n\n var ssr = view.params.routerId;\n var defaults = {\n routes: [],\n routesAdd: []\n };\n\n if (!ssr) {\n var $el = $(el);\n\n if (!$el.length) {\n var message = \"Framework7: can't create a View instance because \";\n message += typeof el === 'string' ? \"the selector \\\"\" + el + \"\\\" didn't match any element\" : 'el must be an HTMLElement or Dom7 object';\n throw new Error(message);\n }\n } // Default View params\n\n\n view.params = extend({\n el: el\n }, defaults, app.params.view, viewParams); // Routes\n\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 } // View Props\n\n\n extend(false, view, {\n app: app,\n name: view.params.name,\n main: view.params.main,\n history: [],\n scrollHistory: {}\n }); // Install Modules\n\n view.useModules(); // Add to app\n\n app.views.push(view);\n\n if (view.main) {\n app.views.main = view;\n }\n\n if (view.name) {\n app.views[view.name] = view;\n } // Index\n\n\n view.index = app.views.indexOf(view); // View ID\n\n var viewId;\n\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\n view.id = viewId;\n\n if (!view.params.init) {\n return view || _assertThisInitialized(_this);\n } // Init View\n\n\n if (app.initialized) {\n view.init();\n } else {\n app.on('init', function () {\n view.init();\n });\n }\n\n return view || _assertThisInitialized(_this);\n }\n\n var _proto = View.prototype;\n\n _proto.destroy = function destroy() {\n var view = this;\n var app = view.app;\n view.$el.trigger('view:beforedestroy');\n view.emit('local::beforeDestroy viewBeforeDestroy', view);\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\n view.$el[0].f7View = null;\n delete view.$el[0].f7View;\n app.views.splice(app.views.indexOf(view), 1); // Destroy Router\n\n if (view.params.router && view.router) {\n view.router.destroy();\n }\n\n view.emit('local::destroy viewDestroy', view); // Delete props & methods\n\n Object.keys(view).forEach(function (viewProp) {\n view[viewProp] = null;\n delete view[viewProp];\n });\n view = null;\n };\n\n _proto.checkMasterDetailBreakpoint = function checkMasterDetailBreakpoint(force) {\n var view = this;\n var app = view.app;\n var wasMasterDetail = view.$el.hasClass('view-master-detail');\n var isMasterDetail = app.width >= view.params.masterDetailBreakpoint && view.$el.children('.page-master').length;\n\n if (typeof force === 'undefined' && isMasterDetail || force === true) {\n view.$el.addClass('view-master-detail');\n\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\n if (wasMasterDetail) {\n view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view);\n view.$el.trigger('view:masterDetailBreakpoint');\n }\n }\n };\n\n _proto.initMasterDetail = function initMasterDetail() {\n var view = this;\n var app = view.app;\n view.checkMasterDetailBreakpoint = view.checkMasterDetailBreakpoint.bind(view);\n view.checkMasterDetailBreakpoint();\n\n if (view.params.masterDetailResizable) {\n resizableView(view);\n }\n\n app.on('resize', view.checkMasterDetailBreakpoint);\n };\n\n _proto.mount = function mount(viewEl) {\n var view = this;\n var app = view.app;\n var el = view.params.el || viewEl;\n var $el = $(el); // Selector\n\n var selector;\n if (typeof el === 'string') selector = el;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 } // DynamicNavbar\n\n var $navbarsEl;\n\n if (app.theme === 'ios' && view.params.iosDynamicNavbar) {\n $navbarsEl = $el.children('.navbars').eq(0);\n\n if ($navbarsEl.length === 0) {\n $navbarsEl = $('
');\n }\n }\n\n extend(view, {\n $el: $el,\n el: $el[0],\n main: view.main || $el.hasClass('view-main'),\n $navbarsEl: $navbarsEl,\n navbarsEl: $navbarsEl ? $navbarsEl[0] : undefined,\n selector: selector\n });\n\n if (view.main) {\n app.views.main = view;\n } // Save in DOM\n\n\n if ($el && $el[0]) {\n $el[0].f7View = view;\n }\n\n view.emit('local::mount viewMount', view);\n };\n\n _proto.init = function init(viewEl) {\n var view = this;\n view.mount(viewEl);\n\n if (view.params.router) {\n if (view.params.masterDetailBreakpoint > 0) {\n view.initMasterDetail();\n }\n\n view.router.init();\n view.$el.trigger('view:init');\n view.emit('local::init viewInit', view);\n }\n };\n\n return View;\n}(Framework7Class); // Use Router\n\n\nView.use(Router);\nexport default View;","import $ from '../../shared/dom7';\nimport { extend } from '../../shared/utils';\nimport { getSupport } from '../../shared/get-support';\n\nfunction resizableView(view) {\n var app = view.app;\n var support = getSupport();\n if (view.resizableInitialized) return;\n extend(view, {\n resizable: true,\n resizableWidth: null,\n resizableInitialized: true\n });\n var $htmlEl = $('html');\n var $el = view.$el;\n if (!$el) return;\n var $resizeHandlerEl;\n var isTouched;\n var isMoved;\n var touchesStart = {};\n var touchesDiff;\n var width;\n var minWidth;\n var maxWidth;\n\n function transformCSSWidth(v) {\n if (!v) return null;\n\n if (v.indexOf('%') >= 0 || v.indexOf('vw') >= 0) {\n return parseInt(v, 10) / 100 * app.width;\n }\n\n var 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 var $pageMasterEl = $el.children('.page-master');\n minWidth = transformCSSWidth($pageMasterEl.css('min-width'));\n maxWidth = transformCSSWidth($pageMasterEl.css('max-width'));\n }\n\n function handleTouchMove(e) {\n if (!isTouched) return;\n e.f7PreventSwipePanel = true;\n var 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 e.preventDefault();\n touchesDiff = pageX - touchesStart.x;\n var newWidth = width + touchesDiff;\n\n if (minWidth && !Number.isNaN(minWidth)) {\n newWidth = Math.max(newWidth, minWidth);\n }\n\n if (maxWidth && !Number.isNaN(maxWidth)) {\n newWidth = Math.min(newWidth, maxWidth);\n }\n\n newWidth = Math.min(Math.max(newWidth, 0), app.width);\n view.resizableWidth = newWidth;\n $htmlEl[0].style.setProperty('--f7-page-master-width', newWidth + \"px\");\n $el.trigger('view:resize', newWidth);\n view.emit('local::resize viewResize', view, newWidth);\n }\n\n function handleTouchEnd() {\n $('html').css('cursor', '');\n\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n\n isTouched = false;\n isMoved = false;\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\n if (maxWidth && !Number.isNaN(maxWidth) && view.resizableWidth > maxWidth) {\n view.resizableWidth = Math.min(view.resizableWidth, maxWidth);\n }\n\n view.resizableWidth = Math.min(Math.max(view.resizableWidth, 0), app.width);\n $htmlEl[0].style.setProperty('--f7-page-master-width', view.resizableWidth + \"px\");\n }\n\n $resizeHandlerEl = view.$el.children('.view-resize-handler');\n\n if (!$resizeHandlerEl.length) {\n view.$el.append('
');\n $resizeHandlerEl = view.$el.children('.view-resize-handler');\n }\n\n view.$resizeHandlerEl = $resizeHandlerEl;\n $el.addClass('view-resizable'); // Add Events\n\n var passive = support.passiveListener ? {\n passive: true\n } : false;\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 view.once('viewDestroy', function () {\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;","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom7';\nimport ViewClass from '../../components/view/view-class';\n\nfunction initClicks(app) {\n function handleClicks(e) {\n var window = getWindow();\n var $clickedEl = $(e.target);\n var $clickedLinkEl = $clickedEl.closest('a');\n var isLink = $clickedLinkEl.length > 0;\n var url = isLink && $clickedLinkEl.attr('href'); // Check if link is external\n\n if (isLink) {\n if ($clickedLinkEl.is(app.params.clicks.externalLinks) || // eslint-disable-next-line\n url && url.indexOf('javascript:') >= 0) {\n var target = $clickedLinkEl.attr('target');\n\n if (url && window.cordova && window.cordova.InAppBrowser && (target === '_system' || target === '_blank')) {\n e.preventDefault();\n window.cordova.InAppBrowser.open(url, target);\n } else if (url && window.Capacitor && window.Capacitor.Plugins && window.Capacitor.Plugins.Browser && (target === '_system' || target === '_blank')) {\n e.preventDefault();\n window.Capacitor.Plugins.Browser.open({\n url: url\n });\n }\n\n return;\n }\n } // Modules Clicks\n\n\n Object.keys(app.modules).forEach(function (moduleName) {\n var moduleClicks = app.modules[moduleName].clicks;\n if (!moduleClicks) return;\n if (e.preventF7Router) return;\n Object.keys(moduleClicks).forEach(function (clickSelector) {\n var matchingClickedElement = $clickedEl.closest(clickSelector).eq(0);\n\n if (matchingClickedElement.length > 0) {\n moduleClicks[clickSelector].call(app, matchingClickedElement, matchingClickedElement.dataset(), e);\n }\n });\n }); // Load Page\n\n var clickedLinkData = {};\n\n if (isLink) {\n e.preventDefault();\n clickedLinkData = $clickedLinkEl.dataset();\n }\n\n clickedLinkData.clickedEl = $clickedLinkEl[0]; // Prevent Router\n\n if (e.preventF7Router) return;\n if ($clickedLinkEl.hasClass('prevent-router') || $clickedLinkEl.hasClass('router-prevent')) return;\n var validUrl = url && url.length > 0 && url[0] !== '#';\n\n if (validUrl || $clickedLinkEl.hasClass('back')) {\n var view;\n\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\n if (!$clickedLinkEl.hasClass('back') && view && view.params.linksView) {\n if (typeof view.params.linksView === 'string') view = $(view.params.linksView)[0].f7View;else if (view.params.linksView instanceof ViewClass) view = view.params.linksView;\n }\n }\n\n if (!view) {\n if (app.views.main) view = app.views.main;\n }\n\n if (!view || !view.router) return;\n\n if ($clickedLinkEl[0].f7RouteProps) {\n clickedLinkData.props = $clickedLinkEl[0].f7RouteProps;\n }\n\n if ($clickedLinkEl.hasClass('back')) view.router.back(url, clickedLinkData);else view.router.navigate(url, clickedLinkData);\n }\n }\n\n app.on('click', handleClicks);\n}\n\nexport default {\n name: 'clicks',\n params: {\n clicks: {\n // External Links\n externalLinks: '.external'\n }\n },\n on: {\n init: function init() {\n var app = this;\n initClicks(app);\n }\n }\n};","import { merge } from '../../shared/utils';\nexport default {\n name: 'routerComponentLoader',\n proto: {\n componentLoader: function componentLoader(component, componentUrl, options, resolve, reject) {\n if (options === void 0) {\n options = {};\n }\n\n var router = this;\n var app = router.app;\n var url = typeof component === 'string' ? component : componentUrl;\n var compiledUrl = router.replaceRequestUrlParams(url, options);\n\n function compile(componentFunction) {\n var context = options.context || {};\n if (typeof context === 'function') context = context.call(router);else if (typeof context === 'string') {\n try {\n context = JSON.parse(context);\n } catch (err) {\n reject(err);\n throw err;\n }\n }\n var componentContext = merge({}, context, {\n f7route: options.route,\n f7router: router\n });\n var componentProps = merge(options.route ? options.route.params || {} : {}, options.props || {}, options.routeProps || {});\n var componentEl;\n var componentRoot;\n\n if (options.componentOptions && options.componentOptions.el) {\n componentEl = options.componentOptions.el;\n }\n\n if (options.componentOptions && options.componentOptions.root) {\n componentRoot = options.componentOptions.root;\n }\n\n app.component.create(componentFunction, componentProps, {\n context: componentContext,\n el: componentEl,\n root: componentRoot\n }).then(function (createdComponent) {\n resolve(createdComponent.el);\n }).catch(function (err) {\n reject(err);\n throw new Error(err);\n });\n }\n\n var cachedComponent;\n\n if (compiledUrl && router.params.componentCache) {\n router.cache.components.forEach(function (cached) {\n if (cached.url === compiledUrl) cachedComponent = cached.component;\n });\n }\n\n if (compiledUrl && cachedComponent) {\n compile(cachedComponent);\n } else if (compiledUrl && !cachedComponent) {\n // Load via XHR\n if (router.xhrAbortController) {\n router.xhrAbortController.abort();\n router.xhrAbortController = false;\n }\n\n router.xhrRequest(url, options).then(function (loadedComponent) {\n var parsedComponent = app.component.parse(loadedComponent);\n\n if (router.params.componentCache) {\n router.cache.components.push({\n url: compiledUrl,\n component: parsedComponent\n });\n }\n\n compile(parsedComponent);\n }).catch(function (err) {\n reject();\n throw err;\n });\n } else {\n compile(component);\n }\n },\n modalComponentLoader: function modalComponentLoader(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n component = _ref.component,\n componentUrl = _ref.componentUrl,\n options = _ref.options,\n resolve = _ref.resolve,\n reject = _ref.reject;\n\n var router = this;\n router.componentLoader(component, componentUrl, options, function (el) {\n resolve(el);\n }, reject);\n },\n tabComponentLoader: function tabComponentLoader(_temp2) {\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n component = _ref2.component,\n componentUrl = _ref2.componentUrl,\n options = _ref2.options,\n resolve = _ref2.resolve,\n reject = _ref2.reject;\n\n var router = this;\n router.componentLoader(component, componentUrl, options, function (el) {\n resolve(el);\n }, reject);\n },\n pageComponentLoader: function pageComponentLoader(_temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n component = _ref3.component,\n componentUrl = _ref3.componentUrl,\n options = _ref3.options,\n resolve = _ref3.resolve,\n reject = _ref3.reject;\n\n var router = this;\n router.componentLoader(component, componentUrl, options, function (el, newOptions) {\n if (newOptions === void 0) {\n newOptions = {};\n }\n\n resolve(el, newOptions);\n }, reject);\n }\n }\n};","var n=function(t,s,r,e){var u;s[0]=0;for(var h=1;h=5&&((e||!n&&5===r)&&(h.push(r,0,e,s),r=6),n&&(h.push(r,n,0,s),r=6)),e=\"\"},a=0;a\"===t?(r=1,e=\"\"):e=t+e[0]:u?t===u?u=\"\":e+=t:'\"'===t||\"'\"===t?u=t:\">\"===t?(p(),r=1):r&&(\"=\"===t?(r=5,s=e,e=\"\"):\"/\"===t&&(r<5||\">\"===n[a][l+1])?(p(),3===r&&(h=h[0]),r=h,(h=h[0]).push(2,0,r),r=0):\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t?(p(),r=2):e+=t),3===r&&\"!--\"===e&&(r=4,h=h[0])}return p(),h}(s)),r),arguments,[])).length>1?r:r[0]}\n","import htm from 'htm';\nimport { flattenArray } from '../../shared/utils';\nvar ignoreChildren = [false, null, '', undefined];\n\nvar h = function h(type, props) {\n for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n children[_key - 2] = arguments[_key];\n }\n\n return {\n type: type,\n props: props || {},\n children: flattenArray(children.filter(function (child) {\n return ignoreChildren.indexOf(child) < 0;\n }))\n };\n};\n\nvar $h = htm.bind(h);\nexport default $h;","export function vnode(sel, data, children, text, elm) {\n var key = data === undefined ? undefined : data.key;\n return {\n sel: sel,\n data: data,\n children: children,\n text: text,\n elm: elm,\n key: key\n };\n}\nexport default vnode;","export var array = Array.isArray;\nexport function primitive(s) {\n return typeof s === 'string' || typeof s === 'number';\n}","import { vnode } from './vnode';\nimport * as is from './is';\n\nfunction addNS(data, children, sel) {\n data.ns = 'http://www.w3.org/2000/svg';\n\n if (sel !== 'foreignObject' && children !== undefined) {\n for (var i = 0; i < children.length; ++i) {\n var childData = children[i].data;\n\n if (childData !== undefined) {\n addNS(childData, children[i].children, children[i].sel);\n }\n }\n }\n}\n\nexport function h(sel, b, c) {\n var data = {},\n children,\n text,\n i;\n\n if (c !== undefined) {\n data = b;\n\n if (is.array(c)) {\n children = c;\n } else if (is.primitive(c)) {\n text = c;\n } else if (c && c.sel) {\n children = [c];\n }\n } else if (b !== undefined) {\n if (is.array(b)) {\n children = b;\n } else if (is.primitive(b)) {\n text = b;\n } else if (b && b.sel) {\n children = [b];\n } else {\n data = b;\n }\n }\n\n if (is.array(children)) {\n for (i = 0; i < children.length; ++i) {\n if (is.primitive(children[i])) children[i] = vnode(undefined, undefined, undefined, children[i], undefined);\n }\n }\n\n if (sel[0] === 's' && sel[1] === 'v' && sel[2] === 'g' && (sel.length === 3 || sel[3] === '.' || sel[3] === '#')) {\n addNS(data, children, sel);\n }\n\n return vnode(sel, data, children, text, undefined);\n}\n;\nexport default h;","export default {};","function _readOnlyError(name) { throw new TypeError(\"\\\"\" + name + \"\\\" is read-only\"); }\n\n/* eslint no-use-before-define: \"off\" */\n\n/* eslint import/no-named-as-default: \"off\" */\nimport h from './snabbdom/h';\nimport customComponents from './custom-components';\nimport { isObject, eventNameToColonCase } from '../../shared/utils';\nvar SELF_CLOSING = 'area base br col command embed hr img input keygen link menuitem meta param source track wbr'.split(' ');\nvar PROPS_ATTRS = 'hidden checked disabled readonly selected autofocus autoplay required multiple value indeterminate routeProps innerHTML'.split(' ');\nvar BOOLEAN_PROPS = 'hidden checked disabled readonly selected autofocus autoplay required multiple readOnly indeterminate'.split(' ');\n\nvar getTagName = function getTagName(treeNode) {\n return typeof treeNode.type === 'function' ? treeNode.type.name || 'CustomComponent' : treeNode.type;\n};\n\nvar toCamelCase = function toCamelCase(name) {\n return name.split('-').map(function (word, index) {\n if (index === 0) return word.toLowerCase();\n return word[0].toUpperCase() + word.substr(1);\n }).join('');\n};\n\nvar propsFromAttrs = function propsFromAttrs() {\n var context = {};\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n args.forEach(function (obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n Object.keys(obj).forEach(function (key) {\n context[toCamelCase(key)] = obj[key];\n });\n });\n return context;\n};\n\nvar createCustomComponent = function createCustomComponent(_ref) {\n var f7 = _ref.f7,\n treeNode = _ref.treeNode,\n vnode = _ref.vnode,\n data = _ref.data;\n var component = typeof treeNode.type === 'function' ? treeNode.type : customComponents[treeNode.type];\n f7.component.create(component, propsFromAttrs(data.attrs || {}, data.props || {}), {\n el: vnode.elm,\n children: treeNode.children\n }).then(function (c) {\n if (vnode.data && vnode.data.on && c && c.$el) {\n Object.keys(vnode.data.on).forEach(function (eventName) {\n c.$el.on(eventName, vnode.data.on[eventName]);\n });\n } // eslint-disable-next-line\n\n\n vnode.elm.__component__ = c;\n });\n};\n\nvar updateCustomComponent = function updateCustomComponent(vnode) {\n // eslint-disable-next-line\n var component = vnode && vnode.elm && vnode.elm.__component__;\n if (!component) return;\n var newProps = propsFromAttrs(vnode.data.attrs || {}, vnode.data.props || {});\n component.children = vnode.data.treeNode.children;\n Object.assign(component.props, newProps);\n component.update();\n};\n\nvar destroyCustomComponent = function destroyCustomComponent(vnode) {\n // eslint-disable-next-line\n var component = vnode && vnode.elm && vnode.elm.__component__;\n\n if (component) {\n var el = component.el,\n $el = component.$el;\n\n if (vnode.data && vnode.data.on && $el) {\n Object.keys(vnode.data.on).forEach(function (eventName) {\n $el.off(eventName, vnode.data.on[eventName]);\n });\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\nvar isCustomComponent = function isCustomComponent(treeNodeType) {\n return typeof treeNodeType === 'function' || treeNodeType && treeNodeType.indexOf('-') > 0 && customComponents[treeNodeType];\n};\n\nfunction getHooks(treeNode, data, f7, initial, isRoot) {\n var hooks = {};\n var insert = [];\n var destroy = [];\n var update = [];\n var postpatch = [];\n var isFakeElement = false;\n var tagName = getTagName(treeNode);\n\n if (data && data.attrs && data.attrs.component) {\n // eslint-disable-next-line\n data.attrs.component, _readOnlyError(\"tagName\");\n delete data.attrs.component;\n isFakeElement = true;\n }\n\n var isCustom = isCustomComponent(treeNode.type);\n\n if (isCustom) {\n insert.push(function (vnode) {\n if (vnode.sel !== tagName && !isFakeElement) return;\n createCustomComponent({\n f7: f7,\n treeNode: treeNode,\n vnode: vnode,\n data: data\n });\n });\n destroy.push(function (vnode) {\n destroyCustomComponent(vnode);\n });\n update.push(function (oldVnode, vnode) {\n updateCustomComponent(vnode);\n });\n }\n\n if (!isCustom) {\n if (!data || !data.attrs || !data.attrs.class) return hooks;\n var classNames = data.attrs.class;\n classNames.split(' ').forEach(function (className) {\n if (!initial) {\n insert.push.apply(insert, f7.getVnodeHooks('insert', className));\n }\n\n destroy.push.apply(destroy, f7.getVnodeHooks('destroy', className));\n update.push.apply(update, f7.getVnodeHooks('update', className));\n postpatch.push.apply(postpatch, f7.getVnodeHooks('postpatch', className));\n });\n }\n\n if (isRoot && !initial) {\n postpatch.push(function (oldVnode, vnode) {\n var vn = vnode || oldVnode;\n if (!vn) return;\n\n if (vn.data && vn.data.component) {\n vn.data.component.hook('onUpdated');\n }\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 = function (vnode) {\n insert.forEach(function (f) {\n return f(vnode);\n });\n };\n }\n\n if (destroy.length) {\n hooks.destroy = function (vnode) {\n destroy.forEach(function (f) {\n return f(vnode);\n });\n };\n }\n\n if (update.length) {\n hooks.update = function (oldVnode, vnode) {\n update.forEach(function (f) {\n return f(oldVnode, vnode);\n });\n };\n }\n\n if (postpatch.length) {\n hooks.postpatch = function (oldVnode, vnode) {\n postpatch.forEach(function (f) {\n return f(oldVnode, vnode);\n });\n };\n }\n\n return hooks;\n}\n\nvar getEventHandler = function getEventHandler(eventHandler, _temp) {\n var _ref2 = _temp === void 0 ? {} : _temp,\n stop = _ref2.stop,\n prevent = _ref2.prevent,\n once = _ref2.once;\n\n var fired = false;\n\n function handler() {\n var e = arguments.length <= 0 ? undefined : arguments[0];\n if (once && fired) return;\n if (stop) e.stopPropagation();\n if (prevent) e.preventDefault();\n fired = true;\n eventHandler.apply(void 0, arguments);\n }\n\n return handler;\n};\n\nvar getData = function getData(treeNode, component, f7, initial, isRoot) {\n var data = {\n component: component,\n treeNode: treeNode\n };\n var tagName = getTagName(treeNode);\n Object.keys(treeNode.props).forEach(function (attrName) {\n var attrValue = treeNode.props[attrName];\n if (typeof attrValue === 'undefined') return;\n\n if (PROPS_ATTRS.indexOf(attrName) >= 0) {\n // Props\n if (!data.props) data.props = {};\n\n if (attrName === 'readonly') {\n // eslint-disable-next-line\n attrName = 'readOnly';\n }\n\n if (attrName === 'routeProps') {\n // eslint-disable-next-line\n attrName = 'f7RouteProps';\n }\n\n if (tagName === 'option' && attrName === 'value') {\n if (!data.attrs) data.attrs = {};\n data.attrs.value = attrValue;\n }\n\n if (BOOLEAN_PROPS.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 || attrName.indexOf('on') === 0 && attrName.length > 2) {\n // Events\n if (!data.on) data.on = {};\n var eventName = attrName.indexOf('@') === 0 ? attrName.substr(1) : eventNameToColonCase(attrName.substr(2));\n var stop = false;\n var prevent = false;\n var once = false;\n\n if (eventName.indexOf('.') >= 0) {\n eventName.split('.').forEach(function (eventNamePart, eventNameIndex) {\n if (eventNameIndex === 0) eventName = eventNamePart;else {\n if (eventNamePart === 'stop') stop = true;\n if (eventNamePart === 'prevent') prevent = true;\n if (eventNamePart === 'once') once = true;\n }\n });\n }\n\n data.on[eventName] = getEventHandler(attrValue, {\n stop: stop,\n prevent: prevent,\n once: once\n });\n } else if (attrName === 'style') {\n // Style\n if (typeof attrValue !== 'string') {\n data.style = attrValue;\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; // ID -> Key\n\n if (attrName === 'id' && !data.key && !isRoot) {\n data.key = attrValue;\n }\n }\n });\n var hooks = getHooks(treeNode, data, f7, initial, isRoot);\n\n hooks.prepatch = function (oldVnode, vnode) {\n if (!oldVnode || !vnode) return;\n\n if (oldVnode && oldVnode.data && oldVnode.data.props) {\n Object.keys(oldVnode.data.props).forEach(function (key) {\n if (BOOLEAN_PROPS.indexOf(key) < 0) return;\n if (!vnode.data) vnode.data = {};\n if (!vnode.data.props) vnode.data.props = {};\n\n if (oldVnode.data.props[key] === true && !(key in vnode.data.props)) {\n vnode.data.props[key] = false;\n }\n });\n }\n };\n\n data.hook = hooks;\n return data;\n};\n\nvar getChildren = function getChildren(treeNode, component, f7, initial) {\n if (treeNode && treeNode.type && SELF_CLOSING.indexOf(treeNode.type) >= 0) {\n return [];\n }\n\n var children = [];\n var nodes = treeNode.children;\n\n for (var i = 0; i < nodes.length; i += 1) {\n var childNode = nodes[i];\n var child = treeNodeToVNode(childNode, component, f7, initial, false);\n\n if (Array.isArray(child)) {\n children.push.apply(children, child);\n } else if (child) {\n children.push(child);\n }\n }\n\n return children;\n};\n\nvar getSlots = function getSlots(treeNode, component, f7, initial) {\n var slotName = treeNode.props.name || 'default';\n var slotNodes = (component.children || []).filter(function (childTreeNode) {\n var childSlotName = 'default';\n\n if (childTreeNode.props) {\n childSlotName = childTreeNode.props.slot || 'default';\n }\n\n return childSlotName === slotName;\n });\n\n if (slotNodes.length === 0) {\n return getChildren(treeNode, component, f7, initial);\n }\n\n return slotNodes.map(function (subTreeNode) {\n return treeNodeToVNode(subTreeNode, component, f7, initial);\n });\n};\n\nvar isTreeNode = function isTreeNode(treeNode) {\n return isObject(treeNode) && 'props' in treeNode && 'type' in treeNode && 'children' in treeNode;\n};\n\nvar treeNodeToVNode = function treeNodeToVNode(treeNode, component, f7, initial, isRoot) {\n if (!isTreeNode(treeNode)) {\n return String(treeNode);\n }\n\n if (treeNode.type === 'slot') {\n return getSlots(treeNode, component, f7, initial);\n }\n\n var data = getData(treeNode, component, f7, initial, isRoot);\n var children = isCustomComponent(treeNode.type) ? [] : getChildren(treeNode, component, f7, initial);\n return h(getTagName(treeNode), data, children);\n};\n\nexport default function vdom(tree, component, initial) {\n if (tree === void 0) {\n tree = {};\n }\n\n return treeNodeToVNode(tree, component, component.f7, initial, true);\n}","function createElement(tagName) {\n return document.createElement(tagName);\n}\n\nfunction createElementNS(namespaceURI, qualifiedName) {\n return document.createElementNS(namespaceURI, qualifiedName);\n}\n\nfunction createTextNode(text) {\n return document.createTextNode(text);\n}\n\nfunction createComment(text) {\n return document.createComment(text);\n}\n\nfunction insertBefore(parentNode, newNode, referenceNode) {\n if (referenceNode && referenceNode.parentNode !== parentNode) {\n if (referenceNode.__component__) referenceNode = referenceNode.__component__.el;\n }\n\n parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild(node, child) {\n if (!node) return;\n node.removeChild(child);\n}\n\nfunction appendChild(node, child) {\n node.appendChild(child);\n}\n\nfunction parentNode(node) {\n return node.parentNode;\n}\n\nfunction nextSibling(node) {\n return node.nextSibling;\n}\n\nfunction tagName(elm) {\n return elm.tagName;\n}\n\nfunction setTextContent(node, text) {\n node.textContent = text;\n}\n\nfunction getTextContent(node) {\n return node.textContent;\n}\n\nfunction isElement(node) {\n return node.nodeType === 1;\n}\n\nfunction isText(node) {\n return node.nodeType === 3;\n}\n\nfunction isComment(node) {\n return node.nodeType === 8;\n}\n\nexport var htmlDomApi = {\n createElement: createElement,\n createElementNS: createElementNS,\n createTextNode: createTextNode,\n createComment: createComment,\n insertBefore: insertBefore,\n removeChild: removeChild,\n appendChild: appendChild,\n parentNode: parentNode,\n nextSibling: nextSibling,\n tagName: tagName,\n setTextContent: setTextContent,\n getTextContent: getTextContent,\n isElement: isElement,\n isText: isText,\n isComment: isComment\n};\nexport default htmlDomApi;","import vnode from './vnode';\nimport * as is from './is';\nimport htmlDomApi from './htmldomapi';\n\nfunction isUndef(s) {\n return s === undefined;\n}\n\nfunction isDef(s) {\n return s !== undefined;\n}\n\nvar emptyNode = vnode('', {}, [], undefined, undefined);\n\nfunction sameVnode(vnode1, vnode2) {\n return vnode1.key === vnode2.key && vnode1.sel === vnode2.sel;\n}\n\nfunction isVnode(vnode) {\n return vnode.sel !== undefined;\n}\n\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\n var i,\n map = {},\n key,\n ch;\n\n for (i = beginIdx; i <= endIdx; ++i) {\n ch = children[i];\n\n if (ch != null) {\n key = ch.key;\n if (key !== undefined) map[key] = i;\n }\n }\n\n return map;\n}\n\nvar hooks = ['create', 'update', 'remove', 'destroy', 'pre', 'post'];\nexport { h } from './h';\nexport { thunk } from './thunk';\nexport function init(modules, domApi) {\n var i,\n j,\n cbs = {};\n var api = domApi !== undefined ? domApi : htmlDomApi;\n\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n\n for (j = 0; j < modules.length; ++j) {\n var hook = modules[j][hooks[i]];\n\n if (hook !== undefined) {\n cbs[hooks[i]].push(hook);\n }\n }\n }\n\n function emptyNodeAt(elm) {\n var id = elm.id ? '#' + elm.id : '';\n var c = elm.className ? '.' + elm.className.split(' ').join('.') : '';\n return vnode(api.tagName(elm).toLowerCase() + id + c, {}, [], undefined, elm);\n }\n\n function createRmCb(childElm, listeners) {\n return function rmCb() {\n if (--listeners === 0) {\n var parent_1 = api.parentNode(childElm);\n api.removeChild(parent_1, childElm);\n }\n };\n }\n\n function createElm(vnode, insertedVnodeQueue) {\n var i,\n data = vnode.data;\n\n if (data !== undefined) {\n if (isDef(i = data.hook) && isDef(i = i.init)) {\n i(vnode);\n data = vnode.data;\n }\n }\n\n var children = vnode.children,\n sel = vnode.sel;\n\n if (sel === '!') {\n if (isUndef(vnode.text)) {\n vnode.text = '';\n }\n\n vnode.elm = api.createComment(vnode.text);\n } else if (sel !== undefined) {\n // Parse selector\n var hashIdx = sel.indexOf('#');\n var dotIdx = sel.indexOf('.', hashIdx);\n var hash = hashIdx > 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) : api.createElement(tag);\n if (hash < dot) elm.setAttribute('id', sel.slice(hash + 1, dot));\n if (dotIdx > 0) elm.setAttribute('class', sel.slice(dot + 1).replace(/\\./g, ' '));\n\n for (i = 0; i < cbs.create.length; ++i) {\n cbs.create[i](emptyNode, vnode);\n }\n\n if (is.array(children)) {\n for (i = 0; i < children.length; ++i) {\n var ch = children[i];\n\n if (ch != null) {\n api.appendChild(elm, createElm(ch, insertedVnodeQueue));\n }\n }\n } else if (is.primitive(vnode.text)) {\n api.appendChild(elm, api.createTextNode(vnode.text));\n }\n\n i = vnode.data.hook; // Reuse variable\n\n if (isDef(i)) {\n if (i.create) i.create(emptyNode, vnode);\n if (i.insert) insertedVnodeQueue.push(vnode);\n }\n } else {\n vnode.elm = api.createTextNode(vnode.text);\n }\n\n return vnode.elm;\n }\n\n function addVnodes(parentElm, before, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n\n if (ch != null) {\n api.insertBefore(parentElm, createElm(ch, insertedVnodeQueue), before);\n }\n }\n }\n\n function invokeDestroyHook(vnode) {\n var i,\n j,\n data = vnode.data;\n\n if (data !== undefined) {\n if (isDef(i = data.hook) && isDef(i = i.destroy)) i(vnode);\n\n for (i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](vnode);\n }\n\n if (vnode.children !== undefined) {\n for (j = 0; j < vnode.children.length; ++j) {\n i = vnode.children[j];\n\n if (i != null && typeof i !== \"string\") {\n invokeDestroyHook(i);\n }\n }\n }\n }\n }\n\n function removeVnodes(parentElm, vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var i_1 = void 0,\n listeners = void 0,\n rm = void 0,\n ch = vnodes[startIdx];\n\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\n for (i_1 = 0; i_1 < cbs.remove.length; ++i_1) {\n cbs.remove[i_1](ch, rm);\n }\n\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 } else {\n rm();\n }\n } else {\n api.removeChild(parentElm, ch.elm);\n }\n }\n }\n }\n\n function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue) {\n var oldStartIdx = 0,\n 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\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode might have been moved left\n } else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n } else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\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 } 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 } else {\n if (oldKeyToIdx === undefined) {\n oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n }\n\n idxInOld = oldKeyToIdx[newStartVnode.key];\n\n if (isUndef(idxInOld)) {\n api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm);\n newStartVnode = newCh[++newStartIdx];\n } else {\n elmToMove = oldCh[idxInOld];\n\n if (elmToMove.sel !== newStartVnode.sel) {\n api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm);\n } else {\n patchVnode(elmToMove, newStartVnode, insertedVnodeQueue);\n oldCh[idxInOld] = undefined;\n api.insertBefore(parentElm, elmToMove.elm, oldStartVnode.elm);\n }\n\n newStartVnode = newCh[++newStartIdx];\n }\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 } else {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n }\n }\n }\n\n function patchVnode(oldVnode, vnode, insertedVnodeQueue) {\n var i, hook;\n\n if (isDef(i = vnode.data) && isDef(hook = i.hook) && isDef(i = hook.prepatch)) {\n i(oldVnode, vnode);\n }\n\n var elm = vnode.elm = oldVnode.elm;\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (oldVnode === vnode) return;\n\n if (vnode.data !== undefined) {\n for (i = 0; i < cbs.update.length; ++i) {\n cbs.update[i](oldVnode, vnode);\n }\n\n i = vnode.data.hook;\n if (isDef(i) && isDef(i = i.update)) i(oldVnode, vnode);\n }\n\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) updateChildren(elm, oldCh, ch, insertedVnodeQueue);\n } else if (isDef(ch)) {\n if (isDef(oldVnode.text)) api.setTextContent(elm, '');\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n } else if (isDef(oldCh)) {\n removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n } else if (isDef(oldVnode.text)) {\n api.setTextContent(elm, '');\n }\n } else if (oldVnode.text !== vnode.text) {\n api.setTextContent(elm, vnode.text);\n }\n\n if (isDef(hook) && isDef(i = hook.postpatch)) {\n i(oldVnode, vnode);\n }\n }\n\n return function patch(oldVnode, vnode) {\n var i, elm, parent;\n var insertedVnodeQueue = [];\n\n for (i = 0; i < cbs.pre.length; ++i) {\n cbs.pre[i]();\n }\n\n if (!isVnode(oldVnode)) {\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n if (sameVnode(oldVnode, vnode)) {\n patchVnode(oldVnode, vnode, insertedVnodeQueue);\n } else {\n elm = oldVnode.elm;\n parent = api.parentNode(elm);\n createElm(vnode, insertedVnodeQueue);\n\n if (parent !== null) {\n api.insertBefore(parent, vnode.elm, api.nextSibling(elm));\n removeVnodes(parent, [oldVnode], 0, 0);\n }\n }\n\n for (i = 0; i < insertedVnodeQueue.length; ++i) {\n insertedVnodeQueue[i].data.hook.insert(insertedVnodeQueue[i]);\n }\n\n for (i = 0; i < cbs.post.length; ++i) {\n cbs.post[i]();\n }\n\n return vnode;\n };\n}","var xlinkNS = 'http://www.w3.org/1999/xlink';\nvar xmlNS = 'http://www.w3.org/XML/1998/namespace';\nvar colonChar = 58;\nvar xChar = 120;\n\nfunction updateAttrs(oldVnode, vnode) {\n var key,\n elm = vnode.elm,\n oldAttrs = oldVnode.data.attrs,\n attrs = vnode.data.attrs;\n if (!oldAttrs && !attrs) return;\n if (oldAttrs === attrs) return;\n oldAttrs = oldAttrs || {};\n attrs = attrs || {}; // update modified attributes, add new attributes\n\n for (key in attrs) {\n var cur = attrs[key];\n var old = oldAttrs[key];\n\n if (old !== cur) {\n if (cur === true) {\n elm.setAttribute(key, \"\");\n } else if (cur === false) {\n elm.removeAttribute(key);\n } else {\n if (key.charCodeAt(0) !== xChar) {\n elm.setAttribute(key, cur);\n } else if (key.charCodeAt(3) === colonChar) {\n // Assume xml namespace\n elm.setAttributeNS(xmlNS, key, cur);\n } else if (key.charCodeAt(5) === colonChar) {\n // Assume xlink namespace\n elm.setAttributeNS(xlinkNS, key, cur);\n } else {\n elm.setAttribute(key, cur);\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\n\n for (key in oldAttrs) {\n if (!(key in attrs)) {\n elm.removeAttribute(key);\n }\n }\n}\n\nexport var attributesModule = {\n create: updateAttrs,\n update: updateAttrs\n};\nexport default attributesModule;","function updateProps(oldVnode, vnode) {\n var key,\n cur,\n old,\n elm = vnode.elm,\n oldProps = oldVnode.data.props,\n props = vnode.data.props;\n if (!oldProps && !props) return;\n if (oldProps === props) return;\n oldProps = oldProps || {};\n props = props || {};\n\n for (key in oldProps) {\n if (!props[key]) {\n delete elm[key];\n }\n }\n\n for (key in props) {\n cur = props[key];\n old = oldProps[key];\n\n if (old !== cur && (key !== 'value' || elm[key] !== cur)) {\n elm[key] = cur;\n }\n }\n}\n\nexport var propsModule = {\n create: updateProps,\n update: updateProps\n};\nexport default propsModule;","var raf = typeof window !== 'undefined' && window.requestAnimationFrame || setTimeout;\n\nvar nextFrame = function nextFrame(fn) {\n raf(function () {\n raf(fn);\n });\n};\n\nfunction setNextFrame(obj, prop, val) {\n nextFrame(function () {\n obj[prop] = val;\n });\n}\n\nfunction updateStyle(oldVnode, vnode) {\n var cur,\n name,\n elm = vnode.elm,\n oldStyle = oldVnode.data.style,\n style = vnode.data.style;\n if (!oldStyle && !style) return;\n if (oldStyle === style) return;\n oldStyle = oldStyle || {};\n style = style || {};\n var oldHasDel = ('delayed' in oldStyle);\n\n for (name in oldStyle) {\n if (!style[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.removeProperty(name);\n } else {\n elm.style[name] = '';\n }\n }\n }\n\n for (name in style) {\n cur = style[name];\n\n if (name === 'delayed' && style.delayed) {\n for (var name2 in style.delayed) {\n cur = style.delayed[name2];\n\n if (!oldHasDel || cur !== oldStyle.delayed[name2]) {\n setNextFrame(elm.style, name2, cur);\n }\n }\n } else if (name !== 'remove' && cur !== oldStyle[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.setProperty(name, cur);\n } else {\n elm.style[name] = cur;\n }\n }\n }\n}\n\nfunction applyDestroyStyle(vnode) {\n var style,\n name,\n elm = vnode.elm,\n s = vnode.data.style;\n if (!s || !(style = s.destroy)) return;\n\n for (name in style) {\n elm.style[name] = style[name];\n }\n}\n\nfunction applyRemoveStyle(vnode, rm) {\n var s = vnode.data.style;\n\n if (!s || !s.remove) {\n rm();\n return;\n }\n\n var name,\n elm = vnode.elm,\n i = 0,\n compStyle,\n style = s.remove,\n amount = 0,\n applied = [];\n\n for (name in style) {\n applied.push(name);\n elm.style[name] = style[name];\n }\n\n compStyle = getComputedStyle(elm);\n var props = compStyle['transition-property'].split(', ');\n\n for (; i < props.length; ++i) {\n if (applied.indexOf(props[i]) !== -1) amount++;\n }\n\n elm.addEventListener('transitionend', function (ev) {\n if (ev.target === elm) --amount;\n if (amount === 0) rm();\n });\n}\n\nexport var styleModule = {\n create: updateStyle,\n update: updateStyle,\n destroy: applyDestroyStyle,\n remove: applyRemoveStyle\n};\nexport default styleModule;","import $ from '../../shared/dom7';\n\nfunction invokeHandler(handler, event, args) {\n if (typeof handler === 'function') {\n // call function handler\n handler.apply(void 0, [event].concat(args));\n }\n}\n\nfunction handleEvent(event, args, vnode) {\n var name = event.type;\n var on = vnode.data.on; // call event handler(s) if exists\n\n if (on && on[name]) {\n invokeHandler(on[name], event, args, vnode);\n }\n}\n\nfunction createListener() {\n return function handler(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n handleEvent(event, args, handler.vnode);\n };\n}\n\nfunction updateEvents(oldVnode, vnode) {\n var oldOn = oldVnode.data.on;\n var oldListener = oldVnode.listener;\n var oldElm = oldVnode.elm;\n var on = vnode && vnode.data.on;\n var elm = vnode && vnode.elm; // optimization for reused immutable handlers\n\n if (oldOn === on) {\n return;\n } // remove existing listeners which no longer used\n\n\n if (oldOn && oldListener) {\n // if element changed or deleted we remove all existing listeners unconditionally\n if (!on) {\n Object.keys(oldOn).forEach(function (name) {\n $(oldElm).off(name, oldListener);\n });\n } else {\n Object.keys(oldOn).forEach(function (name) {\n if (!on[name]) {\n $(oldElm).off(name, oldListener);\n }\n });\n }\n } // add new listeners which has not already attached\n\n\n if (on) {\n // reuse existing listener or create new\n var listener = oldVnode.listener || createListener();\n vnode.listener = listener; // update vnode for listener\n\n listener.vnode = vnode; // if element changed or added we add all needed listeners unconditionally\n\n if (!oldOn) {\n Object.keys(on).forEach(function (name) {\n $(elm).on(name, listener);\n });\n } else {\n Object.keys(on).forEach(function (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};","/* 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';\nvar patch = init([attributesModule, propsModule, styleModule, eventListenersModule]);\nexport default patch;","/* eslint no-underscore-dangle: \"off\" */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7';\nimport $h from './$h';\nimport { id as generateId, merge, eventNameToColonCase, deleteProps } from '../../shared/utils';\nimport vdom from './vdom';\nimport patch from './patch';\n\nvar Component = /*#__PURE__*/function () {\n function Component(app, component, props, _temp) {\n var _this = this;\n\n if (props === void 0) {\n props = {};\n }\n\n var _ref = _temp === void 0 ? {} : _temp,\n el = _ref.el,\n context = _ref.context,\n children = _ref.children;\n\n var document = getDocument();\n merge(this, {\n f7: app,\n props: props || {},\n context: context || {},\n id: component.id || generateId(),\n children: children || [],\n theme: {\n ios: app.theme === 'ios',\n md: app.theme === 'md',\n aurora: app.theme === 'aurora'\n },\n style: component.style,\n __updateQueue: [],\n __eventHandlers: [],\n __onceEventHandlers: [],\n __onBeforeMount: [],\n __onMounted: [],\n __onBeforeUpdate: [],\n __onUpdated: [],\n __onBeforeUnmount: [],\n __onUnmounted: []\n });\n\n var createComponent = function createComponent() {\n return component(_this.props, _this.getComponentContext(true));\n };\n\n var getRenderFuncion = function getRenderFuncion(componentResult) {\n return new Promise(function (resolve, reject) {\n if (typeof componentResult === 'function') {\n resolve(componentResult);\n } else if (componentResult instanceof Promise) {\n componentResult.then(function (render) {\n resolve(render);\n }).catch(function (err) {\n reject(err);\n });\n } else {\n reject(new Error('Framework7: Component render function is not a \"function\" type. Didn\\'t you forget to \"return $render\"?'));\n }\n });\n };\n\n return new Promise(function (resolve, reject) {\n var componentResult = createComponent();\n getRenderFuncion(componentResult).then(function (render) {\n _this.renderFunction = render;\n\n var tree = _this.render();\n\n if (el) {\n _this.vnode = vdom(tree, _this, true);\n\n if (_this.style) {\n _this.styleEl = document.createElement('style');\n _this.styleEl.innerHTML = _this.style;\n }\n\n _this.el = el;\n patch(_this.el, _this.vnode);\n _this.el = _this.vnode.elm;\n _this.$el = $(_this.el);\n\n _this.attachEvents();\n\n _this.el.f7Component = _this;\n\n _this.mount();\n\n resolve(_this);\n return;\n } // Make Dom\n\n\n if (tree) {\n _this.vnode = vdom(tree, _this, true);\n _this.el = document.createElement(_this.vnode.sel || 'div');\n patch(_this.el, _this.vnode);\n _this.$el = $(_this.el);\n }\n\n if (_this.style) {\n _this.styleEl = document.createElement('style');\n _this.styleEl.innerHTML = _this.style;\n }\n\n _this.attachEvents();\n\n if (_this.el) {\n _this.el.f7Component = _this;\n }\n\n resolve(_this);\n }).catch(function (err) {\n reject(err);\n });\n });\n }\n\n var _proto = Component.prototype;\n\n _proto.on = function on(eventName, handler) {\n if (!this.__eventHandlers) return;\n\n this.__eventHandlers.push({\n eventName: eventName,\n handler: handler\n });\n };\n\n _proto.once = function once(eventName, handler) {\n if (!this.__eventHandlers) return;\n\n this.__onceEventHandlers.push({\n eventName: eventName,\n handler: handler\n });\n };\n\n _proto.getComponentStore = function getComponentStore() {\n var _this2 = this;\n\n var _this$f7$store = this.f7.store,\n state = _this$f7$store.state,\n _gettersPlain = _this$f7$store._gettersPlain,\n dispatch = _this$f7$store.dispatch;\n var $store = {\n state: state,\n dispatch: dispatch\n };\n $store.getters = new Proxy(_gettersPlain, {\n get: function get(target, prop) {\n var obj = target[prop];\n\n var callback = function callback(v) {\n obj.value = v;\n\n _this2.update();\n };\n\n obj.onUpdated(callback);\n return obj;\n }\n });\n return $store;\n };\n\n _proto.getComponentContext = function getComponentContext(includeHooks) {\n var _this3 = this;\n\n var ctx = {\n $f7route: this.context.f7route,\n $f7router: this.context.f7router,\n $h: $h,\n $: $,\n $id: this.id,\n $f7: this.f7,\n $f7ready: this.f7ready.bind(this),\n $theme: this.theme,\n $tick: this.tick.bind(this),\n $update: this.update.bind(this),\n $emit: this.emit.bind(this),\n $store: this.getComponentStore(),\n $el: {}\n };\n Object.defineProperty(ctx.$el, 'value', {\n get: function get() {\n return _this3.$el;\n }\n });\n if (includeHooks) Object.assign(ctx, {\n $on: this.on.bind(this),\n $once: this.once.bind(this),\n $onBeforeMount: function $onBeforeMount(handler) {\n return _this3.__onBeforeMount.push(handler);\n },\n $onMounted: function $onMounted(handler) {\n return _this3.__onMounted.push(handler);\n },\n $onBeforeUpdate: function $onBeforeUpdate(handler) {\n return _this3.__onBeforeUpdate.push(handler);\n },\n $onUpdated: function $onUpdated(handler) {\n return _this3.__onUpdated.push(handler);\n },\n $onBeforeUnmount: function $onBeforeUnmount(handler) {\n return _this3.__onBeforeUnmount.push(handler);\n },\n $onUnmounted: function $onUnmounted(handler) {\n return _this3.__onUnmounted.push(handler);\n }\n });\n return ctx;\n };\n\n _proto.render = function render() {\n return this.renderFunction(this.getComponentContext());\n };\n\n _proto.emit = function emit(name, data) {\n if (!this.el) return;\n this.$el.trigger(name, data);\n };\n\n _proto.attachEvents = function attachEvents() {\n var $el = this.$el;\n if (!this.__eventHandlers) return;\n\n this.__eventHandlers.forEach(function (_ref2) {\n var eventName = _ref2.eventName,\n handler = _ref2.handler;\n $el.on(eventNameToColonCase(eventName), handler);\n });\n\n this.__onceEventHandlers.forEach(function (_ref3) {\n var eventName = _ref3.eventName,\n handler = _ref3.handler;\n $el.once(eventNameToColonCase(eventName), handler);\n });\n };\n\n _proto.detachEvents = function detachEvents() {\n var $el = this.$el;\n if (!this.__eventHandlers) return;\n\n this.__eventHandlers.forEach(function (_ref4) {\n var eventName = _ref4.eventName,\n handler = _ref4.handler;\n $el.on(eventNameToColonCase(eventName), handler);\n });\n\n this.__onceEventHandlers.forEach(function (_ref5) {\n var eventName = _ref5.eventName,\n handler = _ref5.handler;\n $el.once(eventNameToColonCase(eventName), handler);\n });\n };\n\n _proto.startUpdateQueue = function startUpdateQueue() {\n var _this4 = this;\n\n var window = getWindow();\n if (this.__requestAnimationFrameId) return;\n\n var update = function update() {\n _this4.hook('onBeforeUpdate');\n\n var tree = _this4.render(); // Make Dom\n\n\n if (tree) {\n var newVNode = vdom(tree, _this4, false);\n _this4.vnode = patch(_this4.vnode, newVNode);\n }\n };\n\n this.__requestAnimationFrameId = window.requestAnimationFrame(function () {\n if (_this4.__updateIsPending) update();\n var resolvers = [].concat(_this4.__updateQueue);\n _this4.__updateQueue = [];\n _this4.__updateIsPending = false;\n window.cancelAnimationFrame(_this4.__requestAnimationFrameId);\n delete _this4.__requestAnimationFrameId;\n delete _this4.__updateIsPending;\n resolvers.forEach(function (resolver) {\n return resolver();\n });\n resolvers = [];\n });\n };\n\n _proto.tick = function tick(callback) {\n var _this5 = this;\n\n return new Promise(function (resolve) {\n function resolver() {\n resolve();\n if (callback) callback();\n }\n\n _this5.__updateQueue.push(resolver);\n\n _this5.startUpdateQueue();\n });\n };\n\n _proto.update = function update(callback) {\n var _this6 = this;\n\n if (this.__destroyed) return new Promise(function () {});\n return new Promise(function (resolve) {\n var resolver = function resolver() {\n resolve();\n if (callback) callback();\n };\n\n _this6.__updateIsPending = true;\n\n _this6.__updateQueue.push(resolver);\n\n _this6.startUpdateQueue();\n });\n };\n\n _proto.setState = function setState(callback) {\n return this.update(callback);\n };\n\n _proto.f7ready = function f7ready(callback) {\n var _this7 = this;\n\n if (this.f7.initialized) {\n callback(this.f7);\n return;\n }\n\n this.f7.once('init', function () {\n callback(_this7.f7);\n });\n };\n\n _proto.mount = function mount(mountMethod) {\n this.hook('onBeforeMount', this.$el);\n if (this.styleEl) $('head').append(this.styleEl);\n if (mountMethod) mountMethod(this.el);\n this.hook('onMounted', this.$el);\n };\n\n _proto.destroy = function destroy() {\n if (this.__destroyed) return;\n var window = getWindow();\n this.hook('onBeforeUnmount');\n if (this.styleEl) $(this.styleEl).remove();\n this.detachEvents();\n this.hook('onUnmounted'); // Delete component instance\n\n if (this.el && this.el.f7Component) {\n this.el.f7Component = null;\n delete this.el.f7Component;\n } // Patch with empty node\n\n\n if (this.vnode) {\n this.vnode = patch(this.vnode, {\n sel: this.vnode.sel,\n data: {}\n });\n } // Clear update queue\n\n\n window.cancelAnimationFrame(this.__requestAnimationFrameId);\n this.__updateQueue = [];\n this.__eventHandlers = [];\n this.__onceEventHandlers = [];\n this.__onBeforeMount = [];\n this.__onMounted = [];\n this.__onBeforeUpdate = [];\n this.__onUpdated = [];\n this.__onBeforeUnmount = [];\n this.__onUnmounted = []; // Delete all props\n\n deleteProps(this);\n this.__destroyed = true;\n };\n\n _proto.hook = function hook(name) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.__destroyed) return;\n this[\"__\" + name].forEach(function (handler) {\n handler.apply(void 0, args);\n });\n };\n\n return Component;\n}();\n\nexport default Component;","import Component from './component-class';\nimport parseComponent from './parse-component';\nimport customComponents from './custom-components';\nimport $jsx from './$jsx';\n\nfunction registerComponent(tagName, component) {\n customComponents[tagName] = component;\n}\n\nfunction unregisterComponent(tagName) {\n delete customComponents[tagName];\n}\n\nexport { Component, $jsx };\nexport default {\n name: 'component',\n static: {\n Component: Component,\n registerComponent: registerComponent,\n unregisterComponent: unregisterComponent\n },\n create: function create() {\n var app = this;\n app.component = {\n registerComponent: registerComponent,\n unregisterComponent: unregisterComponent,\n parse: function parse(componentString) {\n return parseComponent(componentString);\n },\n create: function create(component, props, _ref) {\n var root = _ref.root,\n el = _ref.el,\n context = _ref.context,\n children = _ref.children;\n return new Component(app, component, props, {\n root: root,\n el: el,\n context: context,\n children: children\n });\n }\n };\n }\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7';\nimport { id } from '../../shared/utils';\n\nfunction parseComponent(componentString) {\n var window = getWindow();\n var document = getDocument();\n var componentId = id();\n var callbackCreateName = \"f7_component_create_callback_\" + componentId; // Template\n\n var template;\n var hasTemplate = componentString.match(//);\n\n if (hasTemplate) {\n template = componentString.split(//).filter(function (item, index) {\n return index > 0;\n }).join('').filter(function (item, index, arr) {\n return index < arr.length - 1;\n }).join('').replace(/{{#raw}}([ \\n]*)