framework7 7.0.0-beta.11 → 7.0.0-beta.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/components/preloader/preloader-ios.less +3 -0
  2. package/components/preloader/preloader-rtl.css +1 -1
  3. package/components/preloader/preloader.css +1 -1
  4. package/components/statusbar/statusbar.d.ts +9 -9
  5. package/components/view/view-class.js +8 -1
  6. package/components/view/view.d.ts +3 -1
  7. package/components/view/view.js +1 -0
  8. package/components/virtual-list/virtual-list-class.js +44 -7
  9. package/components/virtual-list/virtual-list.d.ts +2 -2
  10. package/components/virtual-list/virtual-list.lazy.js +1 -1
  11. package/framework7-bundle-rtl.css +5 -2
  12. package/framework7-bundle-rtl.min.css +3 -3
  13. package/framework7-bundle.css +5 -2
  14. package/framework7-bundle.esm.js +2 -2
  15. package/framework7-bundle.js +57 -13
  16. package/framework7-bundle.js.map +1 -1
  17. package/framework7-bundle.less +2 -2
  18. package/framework7-bundle.min.css +3 -3
  19. package/framework7-bundle.min.js +3 -3
  20. package/framework7-bundle.min.js.map +1 -1
  21. package/framework7-lite-bundle.esm.js +2 -2
  22. package/framework7-lite.esm.js +2 -2
  23. package/framework7-rtl.css +2 -2
  24. package/framework7-rtl.min.css +2 -2
  25. package/framework7.css +2 -2
  26. package/framework7.esm.js +2 -2
  27. package/framework7.js +13 -6
  28. package/framework7.js.map +1 -1
  29. package/framework7.less +2 -2
  30. package/framework7.min.css +2 -2
  31. package/framework7.min.js +3 -3
  32. package/framework7.min.js.map +1 -1
  33. package/modules/component/component.d.ts +2 -2
  34. package/modules/device/device.js +1 -1
  35. package/package.json +2 -1
  36. package/shared/get-device.d.ts +0 -2
  37. package/shared/get-device.js +1 -2
package/framework7.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"framework7.js.map","sources":["../../node_modules/ssr-window/ssr-window.esm.js","../../node_modules/dom7/dom7.esm.js","../../src/core/shared/dom7.js","../../src/core/shared/utils.js","../../src/core/shared/get-support.js","../../src/core/shared/get-device.js","../../src/core/shared/events-class.js","../../src/core/shared/class.js","../../src/core/shared/constructor-methods.js","../../src/core/shared/modal-methods.js","../../src/core/components/app/load-module.js","../../src/core/components/app/app-class.js","../../src/core/modules/device/device.js","../../src/core/modules/support/support.js","../../src/core/modules/utils/utils.js","../../src/core/modules/resize/resize.js","../../src/core/shared/request.js","../../src/core/modules/request/request.js","../../src/core/modules/touch/touch.js","../../node_modules/path-to-regexp/dist.es2015/index.js","../../src/core/shared/history.js","../../src/core/modules/router/swipe-back.js","../../src/core/modules/router/redirect.js","../../src/core/modules/router/process-route-queue.js","../../src/core/modules/router/app-router-check.js","../../src/core/modules/router/async-component.js","../../src/core/modules/router/navigate.js","../../src/core/modules/router/tab.js","../../src/core/modules/router/modal.js","../../src/core/modules/router/back.js","../../src/core/modules/router/clear-previous-history.js","../../src/core/modules/router/router-class.js","../../src/core/modules/router/router.js","../../src/core/components/view/resizable-view.js","../../src/core/components/view/view-class.js","../../src/core/modules/clicks/clicks.js","../../src/core/modules/router/component-loader.js","../../node_modules/htm/dist/htm.mjs","../../src/core/modules/component/$h.js","../../src/core/modules/component/snabbdom/vnode.js","../../src/core/modules/component/snabbdom/is.js","../../src/core/modules/component/snabbdom/h.js","../../src/core/modules/component/custom-components.js","../../src/core/modules/component/vdom.js","../../src/core/modules/component/snabbdom/htmldomapi.js","../../src/core/modules/component/snabbdom/snabbdom.js","../../src/core/modules/component/snabbdom/modules/attributes.js","../../src/core/modules/component/snabbdom/modules/props.js","../../src/core/modules/component/snabbdom/modules/style.js","../../src/core/modules/component/eventslisteners.js","../../src/core/modules/component/patch.js","../../src/core/modules/component/component-class.js","../../src/core/modules/component/parse-component.js","../../src/core/modules/component/component.js","../../src/core/modules/history/history.js","../../src/core/modules/service-worker/service-worker.js","../../src/core/modules/store/create-store.js","../../src/core/modules/store/store.js","../../src/core/components/statusbar/statusbar.js","../../src/core/components/view/view.js","../../src/core/components/navbar/navbar.js","../../src/core/components/toolbar/toolbar.js","../../src/core/components/subnavbar/subnavbar.js","../../src/core/components/touch-ripple/touch-ripple-class.js","../../src/core/components/touch-ripple/touch-ripple.js","../../src/core/components/modal/modal-class.js","../../src/core/components/modal/custom-modal-class.js","../../src/core/components/modal/modal.js","../../src/core/framework7.js"],"sourcesContent":["/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\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 Object.keys(src).forEach((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\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\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 const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst 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() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...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 const uniqueArray = [];\n\n for (let 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, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let 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 const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf('<li') === 0) toCreate = 'ul';\n if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n if (html.indexOf('<tbody') === 0) toCreate = 'table';\n if (html.indexOf('<option') === 0) toCreate = 'select';\n const tempParent = document.createElement(toCreate);\n tempParent.innerHTML = html;\n\n for (let i = 0; i < tempParent.childNodes.length; i += 1) {\n arr.push(tempParent.childNodes[i]);\n }\n } else {\n arr = qsa(selector.trim(), context || document);\n } // arr = qsa(selector, document);\n\n } else if (selector.nodeType || selector === window || selector === document) {\n arr.push(selector);\n } else if (Array.isArray(selector)) {\n if (selector instanceof Dom7) return selector;\n arr = selector;\n }\n\n return new Dom7(arrayUnique(arr));\n}\n\n$.fn = Dom7.prototype;\n\n// eslint-disable-next-line\n\nfunction addClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 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 (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const 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 (let 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 (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const 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 let 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 const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const 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 const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const 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 (const 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 const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let 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 (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let 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 (let 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(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const 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 const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\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 (let k = handlers.length - 1; k >= 0; k -= 1) {\n const 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(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\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(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const 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 const 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 const 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 const styles = this.styles();\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 const 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 const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.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 const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const 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 const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let 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 (const 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((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const 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 (let 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 (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let 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 let child = this[0];\n let 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 const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\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 const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\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 const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const 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 const 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 const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const 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 const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let 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 let 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 const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let 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 (let 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(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const 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 (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let 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 let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\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(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const 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(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const 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\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\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\n 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\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let 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(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const 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\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst 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","// eslint-disable-next-line\nimport * as methods from 'dom7';\n\nObject.keys(methods).forEach((methodName) => {\n if (methodName === '$') return;\n methods.$.fn[methodName] = methods[methodName];\n});\n\nexport default methods.$;\n","import { getWindow } from 'ssr-window';\n\nlet uniqueNum = 0;\nexport function uniqueNumber() {\n uniqueNum += 1;\n return uniqueNum;\n}\nexport function id(mask = 'xxxxxxxxxx', map = '0123456789abcdef') {\n const length = map.length;\n return mask.replace(/x/g, () => map[Math.floor(Math.random() * length)]);\n}\nexport const mdPreloaderContent = `\n <span class=\"preloader-inner\">\n <svg viewBox=\"0 0 36 36\">\n <circle cx=\"18\" cy=\"18\" r=\"16\"></circle>\n </svg>\n </span>\n`.trim();\n\nexport const iosPreloaderContent = `\n <span class=\"preloader-inner\">\n ${[0, 1, 2, 3, 4, 5, 6, 7].map(() => '<span class=\"preloader-inner-line\"></span>').join('')}\n </span>\n`.trim();\n\nexport const auroraPreloaderContent = `\n <span class=\"preloader-inner\">\n <span class=\"preloader-inner-circle\"></span>\n </span>\n`;\nexport function eventNameToColonCase(eventName) {\n let hasColon;\n return eventName\n .split('')\n .map((char, index) => {\n if (char.match(/[A-Z]/) && index !== 0 && !hasColon) {\n hasColon = true;\n return `:${char.toLowerCase()}`;\n }\n return char.toLowerCase();\n })\n .join('');\n}\nexport function deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no setter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nexport function requestAnimationFrame(callback) {\n const window = getWindow();\n return window.requestAnimationFrame(callback);\n}\nexport function cancelAnimationFrame(frameId) {\n const window = getWindow();\n return window.cancelAnimationFrame(frameId);\n}\nexport function nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\nexport function nextFrame(callback) {\n return requestAnimationFrame(() => {\n requestAnimationFrame(callback);\n });\n}\nexport function now() {\n return Date.now();\n}\n\nexport function parseUrlQuery(url) {\n const window = getWindow();\n const query = {};\n let urlToParse = url || window.location.href;\n let i;\n let params;\n let param;\n let length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter((paramsPart) => paramsPart !== '');\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] =\n typeof param[1] === 'undefined'\n ? undefined\n : decodeURIComponent(param.slice(1).join('=')) || '';\n }\n }\n return query;\n}\nexport function getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform\n .split(', ')\n .map((a) => a.replace(',', '.'))\n .join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix =\n curStyle.MozTransform ||\n curStyle.OTransform ||\n curStyle.MsTransform ||\n curStyle.msTransform ||\n curStyle.transform ||\n curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nexport function serializeObject(obj, parents = []) {\n if (typeof obj === 'string') return obj;\n const resultArray = [];\n const separator = '&';\n let newParents;\n function varName(name) {\n if (parents.length > 0) {\n let parentParts = '';\n for (let j = 0; j < parents.length; j += 1) {\n if (j === 0) parentParts += parents[j];\n else parentParts += `[${encodeURIComponent(parents[j])}]`;\n }\n return `${parentParts}[${encodeURIComponent(name)}]`;\n }\n return encodeURIComponent(name);\n }\n function varValue(value) {\n return encodeURIComponent(value);\n }\n Object.keys(obj).forEach((prop) => {\n let toPush;\n if (Array.isArray(obj[prop])) {\n toPush = [];\n for (let i = 0; i < obj[prop].length; i += 1) {\n if (!Array.isArray(obj[prop][i]) && typeof obj[prop][i] === 'object') {\n newParents = parents.slice();\n newParents.push(prop);\n newParents.push(String(i));\n toPush.push(serializeObject(obj[prop][i], newParents));\n } else {\n toPush.push(`${varName(prop)}[]=${varValue(obj[prop][i])}`);\n }\n }\n if (toPush.length > 0) resultArray.push(toPush.join(separator));\n } else if (obj[prop] === null || obj[prop] === '') {\n resultArray.push(`${varName(prop)}=`);\n } else if (typeof obj[prop] === 'object') {\n // Object, convert to named array\n newParents = parents.slice();\n newParents.push(prop);\n toPush = 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(...args) {\n const to = args[0];\n args.splice(0, 1);\n const from = args;\n\n for (let i = 0; i < from.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n}\nexport function extend(...args) {\n let deep = true;\n let to;\n let from;\n if (typeof args[0] === 'boolean') {\n deep = args[0];\n to = args[1];\n args.splice(0, 2);\n from = args;\n } else {\n to = args[0];\n args.splice(0, 1);\n from = args;\n }\n for (let i = 0; i < from.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (!deep) {\n to[nextKey] = nextSource[nextKey];\n } else if (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 return to;\n}\nexport function colorHexToRgb(hex) {\n const h = hex.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i, (m, r, g, b) => r + r + g + g + b + b);\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(h);\n return result ? result.slice(1).map((n) => parseInt(n, 16)) : null;\n}\nexport function colorRgbToHex(r, g, b) {\n const result = [r, g, b]\n .map((n) => {\n const hex = n.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n })\n .join('');\n return `#${result}`;\n}\nexport function colorRgbToHsl(r, g, b) {\n r /= 255; // eslint-disable-line\n g /= 255; // eslint-disable-line\n b /= 255; // eslint-disable-line\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n let h;\n if (d === 0) h = 0;\n else if (max === r) h = ((g - b) / d) % 6;\n else if (max === g) h = (b - r) / d + 2;\n else if (max === b) h = (r - g) / d + 4;\n const l = (min + max) / 2;\n const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));\n if (h < 0) h = 360 / 60 + h;\n return [h * 60, s, l];\n}\nexport function colorHslToRgb(h, s, l) {\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const hp = h / 60;\n const x = c * (1 - Math.abs((hp % 2) - 1));\n let rgb1;\n if (Number.isNaN(h) || typeof h === 'undefined') {\n rgb1 = [0, 0, 0];\n } else if (hp <= 1) rgb1 = [c, x, 0];\n else if (hp <= 2) rgb1 = [x, c, 0];\n else if (hp <= 3) rgb1 = [0, c, x];\n else if (hp <= 4) rgb1 = [0, x, c];\n else if (hp <= 5) rgb1 = [x, 0, c];\n else if (hp <= 6) rgb1 = [c, 0, x];\n const m = l - c / 2;\n return rgb1.map((n) => Math.max(0, Math.min(255, Math.round(255 * (n + m)))));\n}\nexport function colorHsbToHsl(h, s, b) {\n const HSL = {\n h,\n s: 0,\n l: 0,\n };\n const HSB = { h, s, b };\n\n HSL.l = ((2 - HSB.s) * HSB.b) / 2;\n HSL.s = HSL.l && HSL.l < 1 ? (HSB.s * HSB.b) / (HSL.l < 0.5 ? HSL.l * 2 : 2 - HSL.l * 2) : HSL.s;\n\n return [HSL.h, HSL.s, HSL.l];\n}\nexport function colorHslToHsb(h, s, l) {\n const HSB = {\n h,\n s: 0,\n b: 0,\n };\n const HSL = { h, s, l };\n\n const t = HSL.s * (HSL.l < 0.5 ? HSL.l : 1 - HSL.l);\n HSB.b = HSL.l + t;\n HSB.s = HSL.l > 0 ? (2 * t) / HSB.b : HSB.s;\n\n return [HSB.h, HSB.s, HSB.b];\n}\nexport function colorThemeCSSProperties(...args) {\n let hex;\n let rgb;\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(...rgb);\n }\n if (!rgb) return {};\n const hsl = colorRgbToHsl(...rgb);\n const hslShade = [hsl[0], hsl[1], Math.max(0, hsl[2] - 0.08)];\n const hslTint = [hsl[0], hsl[1], Math.max(0, hsl[2] + 0.08)];\n const shade = colorRgbToHex(...colorHslToRgb(...hslShade));\n const tint = colorRgbToHex(...colorHslToRgb(...hslTint));\n return {\n '--f7-theme-color': hex,\n '--f7-theme-color-rgb': rgb.join(', '),\n '--f7-theme-color-shade': shade,\n '--f7-theme-color-tint': tint,\n };\n}\n\nexport function bindMethods(instance, obj) {\n Object.keys(obj).forEach((key) => {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach((subKey) => {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n instance[key] = obj[key];\n });\n}\n\nexport function flattenArray(...args) {\n const arr = [];\n args.forEach((arg) => {\n if (Array.isArray(arg)) arr.push(...flattenArray(...arg));\n else arr.push(arg);\n });\n return arr;\n}\n","import { getWindow, getDocument } from 'ssr-window';\n\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n\n return {\n touch: !!(\n 'ontouchstart' in window ||\n (window.DocumentTouch && document instanceof window.DocumentTouch)\n ),\n\n pointerEvents:\n !!window.PointerEvent &&\n 'maxTouchPoints' in window.navigator &&\n window.navigator.maxTouchPoints >= 0,\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n })(),\n\n intersectionObserver: (function checkObserver() {\n return 'IntersectionObserver' in window;\n })(),\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nexport { getSupport };\n","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\n\nlet deviceCalculated;\n\nfunction calcDevice({ userAgent } = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n iphone: false,\n ipod: false,\n ipad: false,\n edge: false,\n ie: false,\n firefox: false,\n macos: false,\n windows: false,\n cordova: !!(window.cordova || window.phonegap),\n phonegap: !!(window.cordova || window.phonegap),\n electron: false,\n capacitor: !!window.Capacitor,\n nwjs: false,\n };\n\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS|iPhone;\\sCPU\\sOS)\\s([\\d_]+)/);\n const ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n const edge = ua.indexOf('Edge/') >= 0;\n const firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n const windows = platform === 'Win32';\n const electron = ua.toLowerCase().indexOf('electron') >= 0;\n const nwjs =\n typeof nw !== 'undefined' &&\n typeof process !== 'undefined' &&\n typeof process.versions !== 'undefined' &&\n typeof process.versions.nw !== 'undefined';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = [\n '1024x1366',\n '1366x1024',\n '834x1194',\n '1194x834',\n '834x1112',\n '1112x834',\n '768x1024',\n '1024x768',\n '820x1180',\n '1180x820',\n '810x1080',\n '1080x810',\n ];\n if (\n !ipad &&\n macos &&\n support.touch &&\n iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0\n ) {\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;\n\n // Android\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 if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Webview\n device.webView =\n !!(\n (iphone || ipad || ipod) &&\n (ua.match(/.*AppleWebKit(?!.*Safari)/i) || window.navigator.standalone)\n ) ||\n (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches);\n device.webview = device.webView;\n device.standalone = device.webView;\n\n // Desktop\n device.desktop = !(device.ios || device.android) || electron || nwjs;\n if (device.desktop) {\n device.electron = electron;\n device.nwjs = nwjs;\n device.macos = macos;\n device.windows = windows;\n if (device.macos) {\n device.os = 'macos';\n }\n if (device.windows) {\n device.os = 'windows';\n }\n }\n\n // Pixel Ratio\n device.pixelRatio = window.devicePixelRatio || 1;\n\n // Color Scheme\n const DARK = '(prefers-color-scheme: dark)';\n const LIGHT = '(prefers-color-scheme: light)';\n device.prefersColorScheme = function prefersColorTheme() {\n let theme;\n if (window.matchMedia && window.matchMedia(LIGHT).matches) {\n theme = 'light';\n }\n if (window.matchMedia && window.matchMedia(DARK).matches) {\n theme = 'dark';\n }\n return theme;\n };\n\n // Export object\n return device;\n}\n\nfunction getDevice(overrides = {}, reset) {\n if (!deviceCalculated || reset) {\n deviceCalculated = calcDevice(overrides);\n }\n return deviceCalculated;\n}\n\nexport { getDevice };\n","class EventsClass {\n constructor(parents = []) {\n const self = this;\n self.eventsParents = parents;\n self.eventsListeners = {};\n }\n\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach((event) => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n }\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n handler.apply(self, args);\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n }\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach((event) => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (\n eventHandler === handler ||\n (eventHandler.f7proxy && eventHandler.f7proxy === handler)\n ) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n }\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n let eventsParents;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n eventsParents = self.eventsParents;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n eventsParents = args[0].local ? [] : args[0].parents || self.eventsParents;\n }\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n const localEvents = eventsArray.map((eventName) => eventName.replace('local::', ''));\n const parentEvents = eventsArray.filter((eventName) => eventName.indexOf('local::') < 0);\n\n localEvents.forEach((event) => {\n if (self.eventsListeners && self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach((eventHandler) => {\n handlers.push(eventHandler);\n });\n handlers.forEach((eventHandler) => {\n eventHandler.apply(context, data);\n });\n }\n });\n if (eventsParents && eventsParents.length > 0) {\n eventsParents.forEach((eventsParent) => {\n eventsParent.emit(parentEvents, ...data);\n });\n }\n return self;\n }\n}\n\nexport default EventsClass;\n","import { extend, now } from './utils.js';\nimport EventsClass from './events-class.js';\n\nclass Framework7Class extends EventsClass {\n constructor(params = {}, parents = []) {\n super(parents);\n const self = this;\n self.params = params;\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach((eventName) => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n\n // eslint-disable-next-line\n useModuleParams(module, instanceParams) {\n if (module.params) {\n const originalParams = {};\n Object.keys(module.params).forEach((paramKey) => {\n if (typeof instanceParams[paramKey] === 'undefined') return;\n originalParams[paramKey] = extend({}, instanceParams[paramKey]);\n });\n extend(instanceParams, module.params);\n Object.keys(originalParams).forEach((paramKey) => {\n extend(instanceParams[paramKey], originalParams[paramKey]);\n });\n }\n }\n\n useModulesParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n }\n\n useModule(moduleName = '', moduleParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n const module = typeof moduleName === 'string' ? instance.modules[moduleName] : moduleName;\n if (!module) return;\n\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach((modulePropName) => {\n const moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n // Add vnode hooks\n if (module.vnode) {\n if (!instance.vnodeHooks) instance.vnodeHooks = {};\n Object.keys(module.vnode).forEach((vnodeId) => {\n Object.keys(module.vnode[vnodeId]).forEach((hookName) => {\n const handler = module.vnode[vnodeId][hookName];\n if (!instance.vnodeHooks[hookName]) instance.vnodeHooks[hookName] = {};\n if (!instance.vnodeHooks[hookName][vnodeId]) instance.vnodeHooks[hookName][vnodeId] = [];\n instance.vnodeHooks[hookName][vnodeId].push(handler.bind(instance));\n });\n });\n }\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n }\n\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const moduleParams = modulesParams[moduleName] || {};\n instance.useModule(moduleName, moduleParams);\n });\n }\n\n static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n\n static installModule(module, ...params) {\n const Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n const name = module.name || `${Object.keys(Class.prototype.modules).length}_${now()}`;\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach((key) => {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach((key) => {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n }\n\n static use(module, ...params) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach((m) => Class.installModule(m));\n return Class;\n }\n return Class.installModule(module, ...params);\n }\n}\n\nexport default Framework7Class;\n","import $ from './dom7.js';\n\nexport default function ConstructorMethods(parameters = {}) {\n const { defaultSelector, constructor: Constructor, domProp, app, addMethods } = parameters;\n const methods = {\n create(...args) {\n if (app) return new Constructor(app, ...args);\n return new Constructor(...args);\n },\n get(el = defaultSelector) {\n if (el instanceof Constructor) return el;\n const $el = $(el);\n if ($el.length === 0) return undefined;\n return $el[0][domProp];\n },\n destroy(el) {\n const instance = methods.get(el);\n if (instance && instance.destroy) return instance.destroy();\n return undefined;\n },\n };\n if (addMethods && Array.isArray(addMethods)) {\n addMethods.forEach((methodName) => {\n methods[methodName] = (el = defaultSelector, ...args) => {\n const instance = methods.get(el);\n if (instance && instance[methodName]) return instance[methodName](...args);\n return undefined;\n };\n });\n }\n return methods;\n}\n","import $ from './dom7.js';\nimport { extend } from './utils.js';\nimport ConstructorMethods from './constructor-methods.js';\n\nexport default function ModalMethods(parameters = {}) {\n const { defaultSelector, constructor: Constructor, app } = parameters;\n const methods = extend(\n ConstructorMethods({\n defaultSelector,\n constructor: Constructor,\n app,\n domProp: 'f7Modal',\n }),\n {\n open(el, animate, targetEl) {\n let $el = $(el);\n if ($el.length > 1 && targetEl) {\n // check if same modal in other page\n const $targetPage = $(targetEl).parents('.page');\n if ($targetPage.length) {\n $el.each((modalEl) => {\n const $modalEl = $(modalEl);\n if ($modalEl.parents($targetPage)[0] === $targetPage[0]) {\n $el = $modalEl;\n }\n });\n }\n }\n if ($el.length > 1) {\n $el = $el.eq($el.length - 1);\n }\n if (!$el.length) return undefined;\n let instance = $el[0].f7Modal;\n if (!instance) {\n const params = $el.dataset();\n instance = new Constructor(app, { el: $el, ...params });\n }\n return instance.open(animate);\n },\n close(el = defaultSelector, animate, targetEl) {\n let $el = $(el);\n if (!$el.length) return undefined;\n if ($el.length > 1) {\n // check if close link (targetEl) in this modal\n let $parentEl;\n if (targetEl) {\n const $targetEl = $(targetEl);\n if ($targetEl.length) {\n $parentEl = $targetEl.parents($el);\n }\n }\n if ($parentEl && $parentEl.length > 0) {\n $el = $parentEl;\n } else {\n $el = $el.eq($el.length - 1);\n }\n }\n let instance = $el[0].f7Modal;\n if (!instance) {\n const params = $el.dataset();\n instance = new Constructor(app, { el: $el, ...params });\n }\n return instance.close(animate);\n },\n },\n );\n return methods;\n}\n","import { getWindow, getDocument } from 'ssr-window';\nimport { id } from '../../shared/utils.js';\nimport $ from '../../shared/dom7.js';\n\nconst fetchedModules = [];\nfunction loadModule(moduleToLoad) {\n const Framework7 = this;\n const window = getWindow();\n const document = getDocument();\n return new Promise((resolve, reject) => {\n const app = Framework7.instance;\n let modulePath;\n let moduleObj;\n let moduleFunc;\n if (!moduleToLoad) {\n reject(new Error('Framework7: Lazy module must be specified'));\n return;\n }\n\n function install(module) {\n Framework7.use(module);\n\n if (app) {\n app.useModuleParams(module, app.params);\n app.useModule(module);\n }\n }\n\n if (typeof moduleToLoad === 'string') {\n const matchNamePattern = moduleToLoad.match(/([a-z0-9-]*)/i);\n if (\n moduleToLoad.indexOf('.') < 0 &&\n matchNamePattern &&\n matchNamePattern[0].length === moduleToLoad.length\n ) {\n if (!app || (app && !app.params.lazyModulesPath)) {\n reject(\n new Error(\n 'Framework7: \"lazyModulesPath\" app parameter must be specified to fetch module by name',\n ),\n );\n return;\n }\n modulePath = `${app.params.lazyModulesPath}/${moduleToLoad}/${moduleToLoad}.lazy.js`;\n } else {\n modulePath = moduleToLoad;\n }\n } else if (typeof moduleToLoad === 'function') {\n moduleFunc = moduleToLoad;\n } else {\n // considering F7-Plugin object\n moduleObj = moduleToLoad;\n }\n\n if (moduleFunc) {\n const module = moduleFunc(Framework7, false);\n if (!module) {\n reject(\n new Error(\"Framework7: Can't find Framework7 component in specified component function\"),\n );\n return;\n }\n // Check if it was added\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolve();\n return;\n }\n // Install It\n install(module);\n\n resolve();\n }\n if (moduleObj) {\n const module = moduleObj;\n if (!module) {\n reject(new Error(\"Framework7: Can't find Framework7 component in specified component\"));\n return;\n }\n // Check if it was added\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolve();\n return;\n }\n // Install It\n install(module);\n\n resolve();\n }\n if (modulePath) {\n if (fetchedModules.indexOf(modulePath) >= 0) {\n resolve();\n return;\n }\n fetchedModules.push(modulePath);\n const scriptLoad = new Promise((resolveScript, rejectScript) => {\n Framework7.request.get(\n modulePath,\n (scriptContent) => {\n const callbackId = id();\n const callbackLoadName = `f7_component_loader_callback_${callbackId}`;\n\n const scriptEl = document.createElement('script');\n scriptEl.innerHTML = `window.${callbackLoadName} = function (Framework7, Framework7AutoInstallComponent) {return ${scriptContent.trim()}}`;\n $('head').append(scriptEl);\n\n const componentLoader = window[callbackLoadName];\n delete window[callbackLoadName];\n $(scriptEl).remove();\n\n const module = componentLoader(Framework7, false);\n\n if (!module) {\n rejectScript(\n new Error(`Framework7: Can't find Framework7 component in ${modulePath} file`),\n );\n return;\n }\n\n // Check if it was added\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolveScript();\n return;\n }\n\n // Install It\n install(module);\n\n resolveScript();\n },\n (xhr, status) => {\n rejectScript(xhr, status);\n },\n );\n });\n const styleLoad = new Promise((resolveStyle) => {\n Framework7.request.get(\n modulePath\n .replace('.lazy.js', app.rtl ? '.rtl.css' : '.css')\n .replace('.js', app.rtl ? '.rtl.css' : '.css'),\n (styleContent) => {\n const styleEl = document.createElement('style');\n styleEl.innerHTML = styleContent;\n $('head').append(styleEl);\n\n resolveStyle();\n },\n () => {\n resolveStyle();\n },\n );\n });\n\n Promise.all([scriptLoad, styleLoad])\n .then(() => {\n resolve();\n })\n .catch((err) => {\n reject(err);\n });\n }\n });\n}\n\nexport default loadModule;\n","/* eslint-disable no-underscore-dangle */\n\nimport { getWindow, getDocument } from 'ssr-window';\nimport { extend, nextFrame } from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport Framework7Class from '../../shared/class.js';\nimport EventsClass from '../../shared/events-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\nimport ModalMethods from '../../shared/modal-methods.js';\nimport $ from '../../shared/dom7.js';\nimport loadModule from './load-module.js';\n\nclass Framework7 extends Framework7Class {\n constructor(params = {}) {\n super(params);\n // eslint-disable-next-line\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 const device = getDevice({ userAgent: params.userAgent || undefined });\n const support = getSupport();\n\n const passedParams = extend({}, params);\n\n // App Instance\n const app = this;\n\n app.device = device;\n app.support = support;\n\n const w = getWindow();\n const d = getDocument();\n\n Framework7.instance = app;\n\n // Default\n const 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 autoDarkMode: false,\n iosTranslucentBars: true,\n iosTranslucentModals: true,\n component: undefined,\n componentUrl: undefined,\n userAgent: null,\n url: null,\n };\n\n // Extend defaults with modules params\n app.useModulesParams(defaults);\n\n // Extend defaults with passed params\n app.params = extend(defaults, params);\n\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\n // Theme\n theme: (function getTheme() {\n if (app.params.theme === 'auto') {\n if (device.ios) return 'ios';\n if (device.desktop && device.electron) return 'aurora';\n return 'md';\n }\n return app.params.theme;\n })(),\n\n // Initially passed parameters\n passedParams,\n online: w.navigator.onLine,\n });\n\n if (params.store) app.params.store = params.store;\n\n // Save Root\n if (app.$el && app.$el[0]) {\n app.$el[0].f7 = app;\n }\n\n // Install Modules\n app.useModules();\n\n // Init Store\n app.initStore();\n\n // Init\n if (app.params.init) {\n if (device.cordova && app.params.initOnDeviceReady) {\n $(d).on('deviceready', () => {\n app.init();\n });\n } else {\n app.init();\n }\n }\n\n // Return app instance\n return app;\n }\n\n mount(rootEl) {\n const app = this;\n const window = getWindow();\n const document = getDocument();\n const $rootEl = $(rootEl || app.params.el).eq(0);\n app.$el = $rootEl;\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 }\n\n // Auto Dark Mode\n const DARK = '(prefers-color-scheme: dark)';\n const LIGHT = '(prefers-color-scheme: light)';\n app.mq = {};\n if (window.matchMedia) {\n app.mq.dark = window.matchMedia(DARK);\n app.mq.light = window.matchMedia(LIGHT);\n }\n app.colorSchemeListener = function colorSchemeListener({ matches, media }) {\n if (!matches) {\n return;\n }\n const html = document.querySelector('html');\n if (media === DARK) {\n html.classList.add('dark');\n app.darkMode = true;\n app.emit('darkModeChange', true);\n } else if (media === LIGHT) {\n html.classList.remove('dark');\n app.darkMode = false;\n app.emit('darkModeChange', false);\n }\n };\n app.emit('mount');\n }\n\n initStore() {\n const app = this;\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 enableAutoDarkMode() {\n const window = getWindow();\n const document = getDocument();\n if (!window.matchMedia) return;\n const app = this;\n const html = document.querySelector('html');\n if (app.mq.dark && app.mq.light) {\n app.mq.dark.addListener(app.colorSchemeListener);\n app.mq.light.addListener(app.colorSchemeListener);\n }\n if (app.mq.dark && app.mq.dark.matches) {\n html.classList.add('dark');\n app.darkMode = true;\n app.emit('darkModeChange', true);\n } else if (app.mq.light && app.mq.light.matches) {\n html.classList.remove('dark');\n app.darkMode = false;\n app.emit('darkModeChange', false);\n }\n }\n\n disableAutoDarkMode() {\n const window = getWindow();\n if (!window.matchMedia) return;\n const app = this;\n if (app.mq.dark) app.mq.dark.removeListener(app.colorSchemeListener);\n if (app.mq.light) app.mq.light.removeListener(app.colorSchemeListener);\n }\n\n initAppComponent(callback) {\n const app = this;\n app.router.componentLoader(\n app.params.component,\n app.params.componentUrl,\n { componentOptions: { el: app.$el[0] } },\n (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 },\n () => {},\n );\n }\n\n init(rootEl) {\n const app = this;\n\n app.mount(rootEl);\n\n const init = () => {\n if (app.initialized) return;\n\n app.$el.addClass('framework7-initializing');\n\n // RTL attr\n if (app.rtl) {\n $('html').attr('dir', 'rtl');\n }\n\n // Auto Dark Mode\n if (app.params.autoDarkMode) {\n app.enableAutoDarkMode();\n }\n\n // Watch for online/offline state\n const window = getWindow();\n window.addEventListener('offline', () => {\n app.online = false;\n app.emit('offline');\n app.emit('connection', false);\n });\n window.addEventListener('online', () => {\n app.online = true;\n app.emit('online');\n app.emit('connection', true);\n });\n\n // Root class\n app.$el.addClass('framework7-root');\n\n // Theme class\n $('html').removeClass('ios md aurora').addClass(app.theme);\n\n // iOS Translucent\n const device = app.device;\n if (app.params.iosTranslucentBars && app.theme === 'ios' && device.ios) {\n $('html').addClass('ios-translucent-bars');\n }\n if (app.params.iosTranslucentModals && app.theme === 'ios' && device.ios) {\n $('html').addClass('ios-translucent-modals');\n }\n\n // Init class\n nextFrame(() => {\n app.$el.removeClass('framework7-initializing');\n });\n // Emit, init other modules\n app.initialized = true;\n app.emit('init');\n };\n if (app.params.component || app.params.componentUrl) {\n app.initAppComponent(() => {\n init();\n });\n } else {\n init();\n }\n return app;\n }\n\n // eslint-disable-next-line\n loadModule(...args) {\n return Framework7.loadModule(...args);\n }\n\n // eslint-disable-next-line\n loadModules(...args) {\n return Framework7.loadModules(...args);\n }\n\n getVnodeHooks(hook, id) {\n const app = this;\n if (!app.vnodeHooks || !app.vnodeHooks[hook]) return [];\n return app.vnodeHooks[hook][id] || [];\n }\n\n // eslint-disable-next-line\n get $() {\n return $;\n }\n\n static get Dom7() {\n return $;\n }\n\n static get $() {\n return $;\n }\n\n static get device() {\n return getDevice();\n }\n\n static get support() {\n return getSupport();\n }\n\n static get Class() {\n return Framework7Class;\n }\n\n static get Events() {\n return EventsClass;\n }\n}\n\nFramework7.ModalMethods = ModalMethods;\nFramework7.ConstructorMethods = ConstructorMethods;\n\nFramework7.loadModule = loadModule;\nFramework7.loadModules = function loadModules(modules) {\n return Promise.all(modules.map((module) => Framework7.loadModule(module)));\n};\n\nexport default Framework7;\n","import { getDocument } from 'ssr-window';\nimport { getDevice } from '../../shared/get-device.js';\n\nexport default {\n name: 'device',\n static: {\n getDevice,\n },\n on: {\n init() {\n const document = getDocument();\n const device = getDevice();\n const classNames = [];\n const html = document.querySelector('html');\n const metaStatusbar = document.querySelector(\n 'meta[name=\"apple-mobile-web-app-status-bar-style\"]',\n );\n if (!html) return;\n if (\n device.standalone &&\n device.ios &&\n metaStatusbar &&\n metaStatusbar.content === 'black-translucent'\n ) {\n classNames.push('device-full-viewport');\n }\n\n // Pixel Ratio\n classNames.push(`device-pixel-ratio-${Math.floor(device.pixelRatio)}`);\n // OS classes\n if (device.os && !device.desktop) {\n classNames.push(`device-${device.os}`);\n } else if (device.desktop) {\n classNames.push('device-desktop');\n if (device.os) {\n classNames.push(`device-${device.os}`);\n }\n }\n if (device.cordova || device.phonegap) {\n classNames.push('device-cordova');\n }\n if (device.capacitor) {\n classNames.push('device-capacitor');\n }\n\n // Add html classes\n classNames.forEach((className) => {\n html.classList.add(className);\n });\n },\n },\n};\n","import { getSupport } from '../../shared/get-support.js';\n\nexport default {\n name: 'support',\n static: {\n getSupport,\n },\n};\n","import * as utils from '../../shared/utils.js';\n\nexport default {\n name: 'utils',\n proto: {\n utils,\n },\n static: {\n utils,\n },\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport { getDevice } from '../../shared/get-device.js';\n\nexport default {\n name: 'resize',\n create() {\n const app = this;\n app.getSize = () => {\n if (!app.el) return { width: 0, height: 0, left: 0, top: 0 };\n const offset = app.$el.offset();\n const [width, height, left, top] = [\n app.el.offsetWidth,\n app.el.offsetHeight,\n offset.left,\n offset.top,\n ];\n app.width = width;\n app.height = height;\n app.left = left;\n app.top = top;\n return { width, height, left, top };\n };\n },\n on: {\n init() {\n const app = this;\n const window = getWindow();\n\n // Get Size\n app.getSize();\n\n // Emit resize\n window.addEventListener(\n 'resize',\n () => {\n app.emit('resize');\n },\n false,\n );\n\n // Emit orientationchange\n window.addEventListener('orientationchange', () => {\n app.emit('orientationchange');\n });\n },\n orientationchange() {\n const document = getDocument();\n const device = getDevice();\n // Fix iPad weird body scroll\n if (device.ipad) {\n document.body.scrollLeft = 0;\n setTimeout(() => {\n document.body.scrollLeft = 0;\n }, 0);\n }\n },\n resize() {\n const app = this;\n app.getSize();\n },\n },\n};\n","/* eslint-disable max-classes-per-file */\nimport { getWindow, getDocument } from 'ssr-window';\nimport { extend, serializeObject } from './utils.js';\n\nconst globals = {};\nlet jsonpRequests = 0;\n\nclass RequestResponse {\n constructor(obj) {\n Object.assign(this, obj);\n }\n}\n\nclass RequestError extends Error {\n constructor(obj) {\n super();\n Object.assign(this, obj);\n }\n}\n\nconst request = (requestOptions) =>\n new Promise((resolve, reject) => {\n const window = getWindow();\n const document = getDocument();\n const globalsNoCallbacks = extend({}, globals);\n 'beforeCreate beforeOpen beforeSend error complete success statusCode'\n .split(' ')\n .forEach((callbackName) => {\n delete globalsNoCallbacks[callbackName];\n });\n const defaults = extend(\n {\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 },\n globalsNoCallbacks,\n );\n\n let proceedRequest;\n\n const options = extend({}, defaults, requestOptions);\n if (requestOptions.abortController) {\n options.abortController = requestOptions.abortController;\n }\n\n if (options.abortController && options.abortController.canceled) {\n reject(new RequestError({ options, status: 'canceled', message: 'canceled' }));\n return;\n }\n\n // Function to run XHR callbacks and events\n function fireCallback(callbackName, ...data) {\n /*\n Callbacks:\n beforeCreate (options),\n beforeOpen (xhr, options),\n beforeSend (xhr, options),\n error (xhr, status, message),\n complete (xhr, status),\n success (response, status, xhr),\n statusCode ()\n */\n let globalCallbackValue;\n let optionCallbackValue;\n if (globals[callbackName]) {\n globalCallbackValue = globals[callbackName](...data);\n }\n if (options[callbackName]) {\n optionCallbackValue = options[callbackName](...data);\n }\n if (typeof globalCallbackValue !== 'boolean') globalCallbackValue = true;\n if (typeof optionCallbackValue !== 'boolean') optionCallbackValue = true;\n if (\n options.abortController &&\n options.abortController.canceled &&\n (callbackName === 'beforeCreate' ||\n callbackName === 'beforeOpen' ||\n callbackName === 'beforeSend')\n ) {\n return false;\n }\n return globalCallbackValue && optionCallbackValue;\n }\n\n // Before create callback\n proceedRequest = fireCallback('beforeCreate', options);\n if (proceedRequest === false) {\n reject(new RequestError({ options, status: 'canceled', message: 'canceled' }));\n return;\n }\n\n // For jQuery guys\n if (options.type) options.method = options.type;\n\n // Parameters Prefix\n let paramsPrefix = options.url.indexOf('?') >= 0 ? '&' : '?';\n\n // UC method\n const method = options.method.toUpperCase();\n\n // Data to modify GET URL\n if (\n (method === 'GET' || method === 'HEAD' || method === 'OPTIONS' || method === 'DELETE') &&\n options.data\n ) {\n let stringData;\n if (typeof options.data === 'string') {\n // Should be key=value string\n if (options.data.indexOf('?') >= 0) stringData = options.data.split('?')[1];\n else stringData = options.data;\n } else {\n // Should be key=value object\n stringData = serializeObject(options.data);\n }\n if (stringData.length) {\n options.url += paramsPrefix + stringData;\n if (paramsPrefix === '?') paramsPrefix = '&';\n }\n }\n\n // JSONP\n if (options.dataType === 'json' && options.url.indexOf('callback=') >= 0) {\n const callbackName = `f7jsonp_${Date.now() + (jsonpRequests += 1)}`;\n let abortTimeout;\n const callbackSplit = options.url.split('callback=');\n let requestUrl = `${callbackSplit[0]}callback=${callbackName}`;\n if (callbackSplit[1].indexOf('&') >= 0) {\n const addVars = callbackSplit[1]\n .split('&')\n .filter((el) => el.indexOf('=') > 0)\n .join('&');\n if (addVars.length > 0) requestUrl += `&${addVars}`;\n }\n\n // Create script\n let script = document.createElement('script');\n script.type = 'text/javascript';\n script.onerror = function onerror() {\n clearTimeout(abortTimeout);\n fireCallback('error', null, 'scripterror', 'scripterror');\n reject(new RequestError({ options, status: 'scripterror', message: 'scripterror' }));\n fireCallback('complete', null, 'scripterror');\n };\n script.src = requestUrl;\n\n // Handler\n window[callbackName] = function jsonpCallback(data) {\n clearTimeout(abortTimeout);\n fireCallback('success', data);\n script.parentNode.removeChild(script);\n script = null;\n delete window[callbackName];\n resolve(new RequestResponse({ options, data }));\n };\n document.querySelector('head').appendChild(script);\n\n if (options.timeout > 0) {\n abortTimeout = setTimeout(() => {\n script.parentNode.removeChild(script);\n script = null;\n fireCallback('error', null, 'timeout', 'timeout');\n reject(new RequestError({ options, status: 'timeout', message: 'timeout' }));\n }, options.timeout);\n }\n\n return;\n }\n\n // Cache for GET/HEAD requests\n if (method === 'GET' || method === 'HEAD' || method === 'OPTIONS' || method === 'DELETE') {\n if (options.cache === false) {\n options.url += `${paramsPrefix}_nocache${Date.now()}`;\n }\n }\n\n // Create XHR\n const xhr = new XMLHttpRequest();\n\n if (options.abortController) {\n let aborted = false;\n options.abortController.onAbort = () => {\n if (aborted) return;\n aborted = true;\n xhr.abort();\n reject(new RequestError({ options, xhr, status: 'canceled', message: 'canceled' }));\n };\n }\n\n // Save Request URL\n xhr.requestUrl = options.url;\n xhr.requestParameters = options;\n\n // Before open callback\n proceedRequest = fireCallback('beforeOpen', xhr, options);\n if (proceedRequest === false) {\n reject(new RequestError({ options, xhr, status: 'canceled', message: 'canceled' }));\n return;\n }\n\n // Open XHR\n xhr.open(method, options.url, options.async, options.user, options.password);\n\n // Create POST Data\n let postData = null;\n\n if ((method === 'POST' || method === 'PUT' || method === 'PATCH') && options.data) {\n if (options.processData) {\n const postDataInstances = [ArrayBuffer, Blob, Document, FormData];\n // Post Data\n if (postDataInstances.indexOf(options.data.constructor) >= 0) {\n postData = options.data;\n } else {\n // POST Headers\n const boundary = `---------------------------${Date.now().toString(16)}`;\n\n if (options.contentType === 'multipart/form-data') {\n xhr.setRequestHeader('Content-Type', `multipart/form-data; boundary=${boundary}`);\n } else {\n xhr.setRequestHeader('Content-Type', options.contentType);\n }\n postData = '';\n let data = serializeObject(options.data);\n if (options.contentType === 'multipart/form-data') {\n data = data.split('&');\n const newData = [];\n for (let i = 0; i < data.length; i += 1) {\n newData.push(\n `Content-Disposition: form-data; name=\"${data[i].split('=')[0]}\"\\r\\n\\r\\n${\n data[i].split('=')[1]\n }\\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 if (options.dataType === 'json' && (!options.headers || !options.headers.Accept)) {\n xhr.setRequestHeader('Accept', 'application/json');\n }\n\n // Additional headers\n if (options.headers) {\n Object.keys(options.headers).forEach((headerName) => {\n if (typeof options.headers[headerName] === 'undefined') return;\n xhr.setRequestHeader(headerName, options.headers[headerName]);\n });\n }\n\n // Check for crossDomain\n if (typeof options.crossDomain === 'undefined') {\n options.crossDomain =\n // 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 }\n\n // Handle XHR\n xhr.onload = function onload() {\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 0) {\n let responseData;\n if (options.dataType === 'json') {\n let parseError;\n try {\n responseData = JSON.parse(xhr.responseText);\n } catch (err) {\n parseError = true;\n }\n if (!parseError) {\n fireCallback('success', responseData, xhr.status, xhr);\n resolve(new RequestResponse({ options, data: responseData, status: xhr.status, xhr }));\n } else {\n fireCallback('error', xhr, 'parseerror', 'parseerror');\n reject(new RequestError({ options, xhr, status: 'parseerror', message: 'parseerror' }));\n }\n } else {\n responseData =\n xhr.responseType === 'text' || xhr.responseType === ''\n ? xhr.responseText\n : xhr.response;\n fireCallback('success', responseData, xhr.status, xhr);\n resolve(new RequestResponse({ options, data: responseData, status: xhr.status, xhr }));\n }\n } else {\n fireCallback('error', xhr, xhr.status, xhr.statusText);\n reject(new RequestError({ options, xhr, status: xhr.status, message: xhr.statusText }));\n }\n if (options.statusCode) {\n if (globals.statusCode && globals.statusCode[xhr.status])\n globals.statusCode[xhr.status](xhr);\n if (options.statusCode[xhr.status]) options.statusCode[xhr.status](xhr);\n }\n fireCallback('complete', xhr, xhr.status);\n };\n\n xhr.onerror = function onerror() {\n fireCallback('error', xhr, xhr.status, xhr.status);\n reject(new RequestError({ options, xhr, status: xhr.status, message: xhr.statusText }));\n fireCallback('complete', xhr, 'error');\n };\n\n // Timeout\n if (options.timeout > 0) {\n xhr.timeout = options.timeout;\n xhr.ontimeout = () => {\n fireCallback('error', xhr, 'timeout', 'timeout');\n reject(new RequestError({ options, xhr, status: 'timeout', message: 'timeout' }));\n fireCallback('complete', xhr, 'timeout');\n };\n }\n\n // Ajax start callback\n proceedRequest = fireCallback('beforeSend', xhr, options);\n if (proceedRequest === false) {\n reject(new RequestError({ options, xhr, status: 'canceled', message: 'canceled' }));\n return;\n }\n\n // Send XHR\n xhr.send(postData);\n });\n\nfunction requestShortcut(method, ...args) {\n let [url, data, success, error, dataType] = [];\n if (typeof args[1] === 'function') {\n [url, success, error, dataType] = args;\n } else {\n [url, data, success, error, dataType] = args;\n }\n [success, error].forEach((callback) => {\n if (typeof callback === 'string') {\n dataType = callback;\n if (callback === success) success = undefined;\n else error = undefined;\n }\n });\n dataType = dataType || (method === 'json' || method === 'postJSON' ? 'json' : undefined);\n const requestOptions = {\n url,\n method: method === 'post' || method === 'postJSON' ? 'POST' : 'GET',\n data,\n success,\n error,\n dataType,\n };\n if (method === 'postJSON') {\n extend(requestOptions, {\n contentType: 'application/json',\n processData: false,\n crossDomain: true,\n data: typeof data === 'string' ? data : JSON.stringify(data),\n });\n }\n return request(requestOptions);\n}\n\nObject.assign(request, {\n get: (...args) => requestShortcut('get', ...args),\n post: (...args) => requestShortcut('post', ...args),\n json: (...args) => requestShortcut('json', ...args),\n getJSON: (...args) => requestShortcut('json', ...args),\n postJSON: (...args) => requestShortcut('postJSON', ...args),\n});\n\nrequest.abortController = () => {\n const contoller = {\n canceled: false,\n onAbort: null,\n 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, { method: options.type });\n }\n extend(globals, options);\n};\n\nexport default request;\n","/* eslint no-param-reassign: \"off\" */\nimport request from '../../shared/request.js';\n\nexport default {\n name: 'request',\n proto: {\n request,\n },\n static: {\n request,\n },\n};\n","/* eslint-disable no-nested-ternary */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport { extend } from '../../shared/utils.js';\n\nfunction initTouch() {\n const app = this;\n const device = getDevice();\n const support = getSupport();\n const window = getWindow();\n const document = getDocument();\n const params = app.params.touch;\n const useRipple = params[`${app.theme}TouchRipple`];\n\n if (device.ios && device.webView) {\n // Strange hack required for iOS 8 webview to work on inputs\n window.addEventListener('touchstart', () => {});\n }\n\n let touchStartX;\n let touchStartY;\n let targetElement;\n let isMoved;\n let tapHoldFired;\n let tapHoldTimeout;\n let preventClick;\n\n let activableElement;\n let activeTimeout;\n\n let rippleWave;\n let rippleTarget;\n let rippleTimeout;\n\n function findActivableElement(el) {\n const target = $(el);\n const parents = target.parents(params.activeStateElements);\n if (target.closest('.no-active-state').length) {\n return null;\n }\n let activable;\n if (target.is(params.activeStateElements)) {\n activable = target;\n }\n if (parents.length > 0) {\n activable = activable ? activable.add(parents) : parents;\n }\n if (activable && activable.length > 1) {\n const newActivable = [];\n let preventPropagation;\n for (let i = 0; i < activable.length; i += 1) {\n if (!preventPropagation) {\n newActivable.push(activable[i]);\n if (\n activable.eq(i).hasClass('prevent-active-state-propagation') ||\n activable.eq(i).hasClass('no-active-state-propagation')\n ) {\n preventPropagation = true;\n }\n }\n }\n activable = $(newActivable);\n }\n return activable || target;\n }\n\n function isInsideScrollableView(el) {\n const pageContent = el.parents('.page-content');\n return pageContent.length > 0;\n }\n\n function addActive() {\n if (!activableElement) return;\n activableElement.addClass('active-state');\n }\n function removeActive() {\n if (!activableElement) return;\n activableElement.removeClass('active-state');\n activableElement = null;\n }\n\n // Ripple handlers\n function findRippleElement(el) {\n const rippleElements = params.touchRippleElements;\n const $el = $(el);\n if ($el.is(rippleElements)) {\n if ($el.hasClass('no-ripple')) {\n return false;\n }\n return $el;\n }\n if ($el.parents(rippleElements).length > 0) {\n const rippleParent = $el.parents(rippleElements).eq(0);\n if (rippleParent.hasClass('no-ripple')) {\n return false;\n }\n return rippleParent;\n }\n return false;\n }\n function createRipple($el, x, y) {\n if (!$el) return;\n rippleWave = app.touchRipple.create(app, $el, x, y);\n }\n\n function removeRipple() {\n if (!rippleWave) return;\n rippleWave.remove();\n rippleWave = undefined;\n rippleTarget = undefined;\n }\n function rippleTouchStart(el) {\n rippleTarget = findRippleElement(el);\n if (!rippleTarget || rippleTarget.length === 0) {\n rippleTarget = undefined;\n return;\n }\n const inScrollable = isInsideScrollableView(rippleTarget);\n\n if (!inScrollable) {\n removeRipple();\n createRipple(rippleTarget, touchStartX, touchStartY);\n } else {\n clearTimeout(rippleTimeout);\n rippleTimeout = setTimeout(() => {\n removeRipple();\n createRipple(rippleTarget, touchStartX, touchStartY);\n }, 80);\n }\n }\n function rippleTouchMove() {\n clearTimeout(rippleTimeout);\n removeRipple();\n }\n function rippleTouchEnd() {\n if (!rippleWave && rippleTarget && !isMoved) {\n clearTimeout(rippleTimeout);\n createRipple(rippleTarget, touchStartX, touchStartY);\n setTimeout(removeRipple, 0);\n } else {\n removeRipple();\n }\n }\n\n // Mouse Handlers\n function handleMouseDown(e) {\n const $activableEl = findActivableElement(e.target);\n if ($activableEl) {\n $activableEl.addClass('active-state');\n if ('which' in e && e.which === 3) {\n setTimeout(() => {\n $('.active-state').removeClass('active-state');\n }, 0);\n }\n }\n\n if (useRipple) {\n touchStartX = e.pageX;\n touchStartY = e.pageY;\n rippleTouchStart(e.target, e.pageX, e.pageY);\n }\n }\n function handleMouseMove() {\n if (!params.activeStateOnMouseMove) {\n $('.active-state').removeClass('active-state');\n }\n if (useRipple) {\n rippleTouchMove();\n }\n }\n function handleMouseUp() {\n $('.active-state').removeClass('active-state');\n if (useRipple) {\n rippleTouchEnd();\n }\n }\n\n function handleTouchCancel() {\n targetElement = null;\n\n // Remove Active State\n clearTimeout(activeTimeout);\n clearTimeout(tapHoldTimeout);\n if (params.activeState) {\n removeActive();\n }\n\n // Remove Ripple\n if (useRipple) {\n rippleTouchEnd();\n }\n }\n\n let isScrolling;\n let isSegmentedStrong = false;\n let segmentedStrongEl = null;\n\n const touchMoveActivableIos = '.dialog-button, .actions-button';\n let isTouchMoveActivable = false;\n let touchmoveActivableEl = null;\n\n function handleTouchStart(e) {\n isMoved = false;\n tapHoldFired = false;\n preventClick = false;\n isScrolling = undefined;\n if (e.targetTouches.length > 1) {\n if (activableElement) removeActive();\n return true;\n }\n if (e.touches.length > 1 && activableElement) {\n removeActive();\n }\n if (params.tapHold) {\n if (tapHoldTimeout) clearTimeout(tapHoldTimeout);\n tapHoldTimeout = setTimeout(() => {\n if (e && e.touches && e.touches.length > 1) return;\n tapHoldFired = true;\n e.preventDefault();\n preventClick = true;\n $(e.target).trigger('taphold', e);\n app.emit('taphold', e);\n }, params.tapHoldDelay);\n }\n targetElement = e.target;\n touchStartX = e.targetTouches[0].pageX;\n touchStartY = e.targetTouches[0].pageY;\n isSegmentedStrong = e.target.closest(\n '.segmented-strong .button-active, .segmented-strong .tab-link-active',\n );\n isTouchMoveActivable = app.theme === 'ios' && e.target.closest(touchMoveActivableIos);\n if (isSegmentedStrong) {\n segmentedStrongEl = isSegmentedStrong.closest('.segmented-strong');\n }\n\n if (params.activeState) {\n activableElement = findActivableElement(targetElement);\n if (activableElement && !isInsideScrollableView(activableElement)) {\n addActive();\n } else if (activableElement) {\n activeTimeout = setTimeout(addActive, 80);\n }\n }\n if (useRipple) {\n rippleTouchStart(targetElement, touchStartX, touchStartY);\n }\n return true;\n }\n function handleTouchMove(e) {\n let touch;\n let distance;\n let shouldRemoveActive = true;\n\n if (e.type === 'touchmove') {\n touch = e.targetTouches[0];\n distance = params.touchClicksDistanceThreshold;\n }\n\n const touchCurrentX = e.targetTouches[0].pageX;\n const touchCurrentY = e.targetTouches[0].pageY;\n\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(\n isScrolling || Math.abs(touchCurrentY - touchStartY) > Math.abs(touchCurrentX - touchStartX)\n );\n }\n\n if (isTouchMoveActivable || (!isScrolling && isSegmentedStrong && segmentedStrongEl)) {\n if (e.cancelable) e.preventDefault();\n }\n\n if (!isScrolling && isSegmentedStrong && segmentedStrongEl) {\n const elementFromPoint = document.elementFromPoint(\n e.targetTouches[0].clientX,\n e.targetTouches[0].clientY,\n );\n const buttonEl = elementFromPoint.closest(\n '.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 const pageX = touch.pageX;\n const pageY = touch.pageY;\n if (Math.abs(pageX - touchStartX) > distance || Math.abs(pageY - touchStartY) > distance) {\n isMoved = true;\n }\n } else {\n isMoved = true;\n }\n if (isMoved) {\n preventClick = true;\n // Keep active state on touchMove (for dialog and actions buttons)\n if (isTouchMoveActivable) {\n const elementFromPoint = document.elementFromPoint(\n e.targetTouches[0].clientX,\n e.targetTouches[0].clientY,\n );\n touchmoveActivableEl = elementFromPoint.closest(touchMoveActivableIos);\n if (\n touchmoveActivableEl &&\n activableElement &&\n activableElement[0] === touchmoveActivableEl\n ) {\n shouldRemoveActive = false;\n } else if (touchmoveActivableEl) {\n setTimeout(() => {\n activableElement = findActivableElement(touchmoveActivableEl);\n addActive();\n });\n }\n }\n if (params.tapHold) {\n clearTimeout(tapHoldTimeout);\n }\n if (params.activeState && shouldRemoveActive) {\n clearTimeout(activeTimeout);\n removeActive();\n }\n if (useRipple) {\n rippleTouchMove();\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 if (touchmoveActivableEl) {\n $(touchmoveActivableEl).trigger('click', 'f7TouchMoveActivable');\n touchmoveActivableEl = null;\n }\n if (document.activeElement === e.target) {\n if (params.activeState) removeActive();\n if (useRipple) {\n rippleTouchEnd();\n }\n return true;\n }\n if (params.activeState) {\n addActive();\n setTimeout(removeActive, 0);\n }\n if (useRipple) {\n rippleTouchEnd();\n }\n if ((params.tapHoldPreventClicks && tapHoldFired) || preventClick) {\n if (e.cancelable) e.preventDefault();\n preventClick = true;\n return false;\n }\n return true;\n }\n function handleClick(e) {\n const isOverswipe = e && e.detail && e.detail === 'f7Overswipe';\n const isSegmented = e && e.detail && e.detail === 'f7Segmented';\n // eslint-disable-next-line\n const isTouchMoveActivable = e && e.detail && e.detail === 'f7TouchMoveActivable';\n let localPreventClick = preventClick;\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 if (params.tapHold && params.tapHoldPreventClicks && tapHoldFired) {\n localPreventClick = true;\n }\n if (localPreventClick) {\n e.stopImmediatePropagation();\n e.stopPropagation();\n e.preventDefault();\n }\n\n if (params.tapHold) {\n tapHoldTimeout = setTimeout(\n () => {\n tapHoldFired = false;\n },\n device.ios || device.androidChrome ? 100 : 400,\n );\n }\n preventClick = false;\n targetElement = null;\n\n return !localPreventClick;\n }\n\n function emitAppTouchEvent(name, e) {\n app.emit({\n events: name,\n data: [e],\n });\n }\n function appClick(e) {\n emitAppTouchEvent('click', e);\n }\n function appTouchStartActive(e) {\n emitAppTouchEvent('touchstart touchstart:active', e);\n }\n function appTouchMoveActive(e) {\n emitAppTouchEvent('touchmove touchmove:active', e);\n }\n function appTouchEndActive(e) {\n emitAppTouchEvent('touchend touchend:active', e);\n }\n function appTouchStartPassive(e) {\n emitAppTouchEvent('touchstart:passive', e);\n }\n function appTouchMovePassive(e) {\n emitAppTouchEvent('touchmove:passive', e);\n }\n function appTouchEndPassive(e) {\n emitAppTouchEvent('touchend:passive', e);\n }\n\n const passiveListener = support.passiveListener ? { passive: true } : false;\n const passiveListenerCapture = support.passiveListener ? { passive: true, capture: true } : true;\n const activeListener = support.passiveListener ? { passive: false } : false;\n const activeListenerCapture = support.passiveListener ? { passive: false, capture: true } : true;\n\n document.addEventListener('click', appClick, true);\n\n if (support.passiveListener) {\n document.addEventListener(app.touchEvents.start, appTouchStartActive, activeListenerCapture);\n document.addEventListener(app.touchEvents.move, appTouchMoveActive, activeListener);\n document.addEventListener(app.touchEvents.end, appTouchEndActive, activeListener);\n\n document.addEventListener(app.touchEvents.start, appTouchStartPassive, passiveListenerCapture);\n document.addEventListener(app.touchEvents.move, appTouchMovePassive, passiveListener);\n document.addEventListener(app.touchEvents.end, appTouchEndPassive, passiveListener);\n } else {\n document.addEventListener(\n app.touchEvents.start,\n (e) => {\n appTouchStartActive(e);\n appTouchStartPassive(e);\n },\n true,\n );\n document.addEventListener(\n app.touchEvents.move,\n (e) => {\n appTouchMoveActive(e);\n appTouchMovePassive(e);\n },\n false,\n );\n document.addEventListener(\n app.touchEvents.end,\n (e) => {\n appTouchEndActive(e);\n appTouchEndPassive(e);\n },\n false,\n );\n }\n\n if (support.touch) {\n app.on('click', handleClick);\n app.on('touchstart', handleTouchStart);\n app.on('touchmove', handleTouchMove);\n app.on('touchend', handleTouchEnd);\n document.addEventListener('touchcancel', handleTouchCancel, { passive: true });\n } else if (params.activeState) {\n app.on('touchstart', handleMouseDown);\n app.on('touchmove', handleMouseMove);\n app.on('touchend', handleMouseUp);\n document.addEventListener('pointercancel', handleMouseUp, { passive: true });\n }\n document.addEventListener('contextmenu', (e) => {\n if (\n params.disableContextMenu &&\n (device.ios ||\n device.android ||\n device.cordova ||\n (window.Capacitor && window.Capacitor.isNative))\n ) {\n e.preventDefault();\n }\n if (useRipple) {\n if (activableElement) removeActive();\n rippleTouchEnd();\n }\n });\n}\n\nexport default {\n name: 'touch',\n params: {\n touch: {\n // Clicks\n touchClicksDistanceThreshold: 5,\n // ContextMenu\n disableContextMenu: false,\n // Tap Hold\n tapHold: false,\n tapHoldDelay: 750,\n tapHoldPreventClicks: true,\n // Active State\n activeState: true,\n activeStateElements:\n '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:\n '.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:\n '.ripple-inset, .icon-only, .searchbar-disable-button, .input-clear-button, .notification-close-button, .md .navbar .link.back',\n },\n },\n create() {\n const app = this;\n const 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","/**\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.js';\nimport { extend } from './utils.js';\n\nconst History = {\n queue: [],\n clearQueue() {\n if (History.queue.length === 0) return;\n const currentQueue = History.queue.shift();\n currentQueue();\n },\n routerQueue: [],\n clearRouterQueue() {\n if (History.routerQueue.length === 0) return;\n const currentQueue = History.routerQueue.pop();\n const { router, stateUrl, action } = currentQueue;\n\n let animate = router.params.animate;\n if (router.params.browserHistoryAnimate === false) animate = false;\n\n if (action === 'back') {\n router.back({ animate, browserHistory: false });\n }\n if (action === 'load') {\n router.navigate(stateUrl, { animate, browserHistory: false });\n }\n },\n handle(e) {\n if (History.blockPopstate) return;\n const app = this;\n // const mainView = app.views.main;\n let state = e.state;\n History.previousState = History.state;\n History.state = state;\n\n History.allowChange = true;\n History.clearQueue();\n\n state = History.state;\n if (!state) state = {};\n\n app.views.forEach((view) => {\n const router = view.router;\n let viewState = state[view.id];\n if (!viewState && view.params.browserHistory) {\n viewState = {\n url: view.router.history[0],\n };\n }\n if (!viewState) return;\n const stateUrl = viewState.url || undefined;\n\n let animate = router.params.animate;\n if (router.params.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({ animate, browserHistory: false });\n } else {\n History.routerQueue.push({\n action: 'back',\n router,\n });\n }\n } else if (router.allowPageChange) {\n // Load page\n router.navigate(stateUrl, { animate, browserHistory: false });\n } else {\n History.routerQueue.unshift({\n action: 'load',\n stateUrl,\n router,\n });\n }\n }\n });\n },\n initViewState(viewId, viewState) {\n const window = getWindow();\n const newState = extend({}, History.state || {}, {\n [viewId]: viewState,\n });\n History.state = newState;\n window.history.replaceState(newState, '');\n },\n push(viewId, viewState, url) {\n const window = getWindow();\n if (url.substr(-3) === '#!/') {\n // eslint-disable-next-line\n url = url.replace('#!/', '');\n }\n if (!History.allowChange) {\n History.queue.push(() => {\n History.push(viewId, viewState, url);\n });\n return;\n }\n History.previousState = History.state;\n const newState = extend({}, History.previousState || {}, {\n [viewId]: viewState,\n });\n History.state = newState;\n window.history.pushState(newState, '', url);\n },\n replace(viewId, viewState, url) {\n const window = getWindow();\n if (url.substr(-3) === '#!/') {\n // eslint-disable-next-line\n url = url.replace('#!/', '');\n }\n if (!History.allowChange) {\n History.queue.push(() => {\n History.replace(viewId, viewState, url);\n });\n return;\n }\n History.previousState = History.state;\n const newState = extend({}, History.previousState || {}, {\n [viewId]: viewState,\n });\n History.state = newState;\n window.history.replaceState(newState, '', url);\n },\n go(index) {\n const window = getWindow();\n History.allowChange = false;\n window.history.go(index);\n },\n back() {\n const window = getWindow();\n History.allowChange = false;\n window.history.back();\n },\n allowChange: true,\n previousState: {},\n state: {},\n blockPopstate: true,\n init(app) {\n const window = getWindow();\n const document = getDocument();\n History.state = window.history.state;\n $(window).on('load', () => {\n setTimeout(() => {\n History.blockPopstate = false;\n }, 0);\n });\n\n if (document.readyState && document.readyState === 'complete') {\n History.blockPopstate = false;\n }\n\n $(window).on('popstate', History.handle.bind(app));\n },\n};\n\nexport default History;\n","import $ from '../../shared/dom7.js';\nimport History from '../../shared/history.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport { now } from '../../shared/utils.js';\n\nfunction SwipeBack(r) {\n const router = r;\n const { $el, $navbarsEl, app, params } = router;\n const support = getSupport();\n const device = getDevice();\n let isTouched = false;\n let isMoved = false;\n const touchesStart = {};\n let isScrolling;\n let $currentPageEl = [];\n let $previousPageEl = [];\n let viewContainerWidth;\n let touchesDiff;\n let allowViewTouchMove = true;\n let touchStartTime;\n let $currentNavbarEl = [];\n let $previousNavbarEl = [];\n let dynamicNavbar;\n let $pageShadowEl;\n let $pageOpacityEl;\n\n let animatableNavEls;\n\n const paramsSwipeBackAnimateShadow = params[`${app.theme}SwipeBackAnimateShadow`];\n const paramsSwipeBackAnimateOpacity = params[`${app.theme}SwipeBackAnimateOpacity`];\n const paramsSwipeBackActiveArea = params[`${app.theme}SwipeBackActiveArea`];\n const paramsSwipeBackThreshold = params[`${app.theme}SwipeBackThreshold`];\n\n const transformOrigin = app.rtl ? 'right center' : 'left center';\n const transformOriginTitleLarge = app.rtl\n ? 'calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center'\n : 'calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center';\n\n function animatableNavElements() {\n const els = [];\n const inverter = app.rtl ? -1 : 1;\n const currentNavIsTransparent =\n $currentNavbarEl.hasClass('navbar-transparent') &&\n !$currentNavbarEl.hasClass('navbar-large') &&\n !$currentNavbarEl.hasClass('navbar-transparent-visible');\n const currentNavIsLarge = $currentNavbarEl.hasClass('navbar-large');\n const currentNavIsCollapsed = $currentNavbarEl.hasClass('navbar-large-collapsed');\n const currentNavIsLargeTransparent =\n $currentNavbarEl.hasClass('navbar-large-transparent') ||\n ($currentNavbarEl.hasClass('navbar-large') &&\n $currentNavbarEl.hasClass('navbar-transparent'));\n const previousNavIsTransparent =\n $previousNavbarEl.hasClass('navbar-transparent') &&\n !$previousNavbarEl.hasClass('navbar-large') &&\n !$previousNavbarEl.hasClass('navbar-transparent-visible');\n const previousNavIsLarge = $previousNavbarEl.hasClass('navbar-large');\n const previousNavIsCollapsed = $previousNavbarEl.hasClass('navbar-large-collapsed');\n const previousNavIsLargeTransparent =\n $previousNavbarEl.hasClass('navbar-large-transparent') ||\n ($previousNavbarEl.hasClass('navbar-large') &&\n $previousNavbarEl.hasClass('navbar-transparent'));\n const fromLarge = currentNavIsLarge && !currentNavIsCollapsed;\n const toLarge = previousNavIsLarge && !previousNavIsCollapsed;\n const $currentNavElements = $currentNavbarEl.find(\n '.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg',\n );\n const $previousNavElements = $previousNavbarEl.find(\n '.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg',\n );\n let activeNavBackIconText;\n let previousNavBackIconText;\n\n if (params.iosAnimateNavbarBackIcon) {\n if (\n $currentNavbarEl.hasClass('sliding') ||\n $currentNavbarEl.find('.navbar-inner.sliding').length\n ) {\n activeNavBackIconText = $currentNavbarEl.find('.left').find('.back .icon + span').eq(0);\n } else {\n activeNavBackIconText = $currentNavbarEl\n .find('.left.sliding')\n .find('.back .icon + span')\n .eq(0);\n }\n if (\n $previousNavbarEl.hasClass('sliding') ||\n $previousNavbarEl.find('.navbar-inner.sliding').length\n ) {\n previousNavBackIconText = $previousNavbarEl.find('.left').find('.back .icon + span').eq(0);\n } else {\n previousNavBackIconText = $previousNavbarEl\n .find('.left.sliding')\n .find('.back .icon + span')\n .eq(0);\n }\n if (activeNavBackIconText.length) {\n $previousNavElements.each((el) => {\n if (!$(el).hasClass('title')) return;\n el.f7NavbarLeftOffset += activeNavBackIconText.prev('.icon')[0].offsetWidth;\n });\n }\n }\n $currentNavElements.each((navEl) => {\n const $navEl = $(navEl);\n const isSubnavbar = $navEl.hasClass('subnavbar');\n const isLeft = $navEl.hasClass('left');\n const isTitle = $navEl.hasClass('title');\n const isBg = $navEl.hasClass('navbar-bg');\n if ((isTitle || isBg) && currentNavIsTransparent) return;\n if (!fromLarge && $navEl.hasClass('.title-large')) return;\n const el = {\n el: navEl,\n };\n if (fromLarge) {\n if (isTitle) return;\n if ($navEl.hasClass('title-large')) {\n if (els.indexOf(el) < 0) els.push(el);\n el.overflow = 'visible';\n $navEl.find('.title-large-text').each((subNavEl) => {\n els.push({\n el: subNavEl,\n transform: (progress) => `translateX(${progress * 100 * inverter}%)`,\n });\n });\n return;\n }\n }\n if (toLarge) {\n if (!fromLarge) {\n if ($navEl.hasClass('title-large')) {\n if (els.indexOf(el) < 0) els.push(el);\n el.opacity = 0;\n }\n }\n if (isLeft) {\n if (els.indexOf(el) < 0) els.push(el);\n el.opacity = (progress) => 1 - progress ** 0.33;\n $navEl.find('.back span').each((subNavEl) => {\n els.push({\n el: subNavEl,\n 'transform-origin': transformOrigin,\n transform: (progress) =>\n `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(${\n 1 + 1 * progress\n })`,\n });\n });\n return;\n }\n }\n if (isBg) {\n if (els.indexOf(el) < 0) els.push(el);\n if (!fromLarge && !toLarge) {\n if (currentNavIsCollapsed) {\n if (currentNavIsLargeTransparent) {\n el.className = 'ios-swipeback-navbar-bg-large';\n }\n el.transform = (progress) =>\n `translateX(${\n 100 * progress * inverter\n }%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))`;\n } else {\n el.transform = (progress) => `translateX(${100 * progress * inverter}%)`;\n }\n }\n if (!fromLarge && toLarge) {\n el.className = 'ios-swipeback-navbar-bg-large';\n el.transform = (progress) =>\n `translateX(${100 * progress * inverter}%) translateY(calc(-1 * ${\n 1 - progress\n } * var(--f7-navbar-large-title-height)))`;\n }\n if (fromLarge && toLarge) {\n el.transform = (progress) => `translateX(${100 * progress * inverter}%)`;\n }\n if (fromLarge && !toLarge) {\n el.transform = (progress) =>\n `translateX(${\n 100 * progress * inverter\n }%) translateY(calc(-${progress} * var(--f7-navbar-large-title-height)))`;\n }\n return;\n }\n if ($navEl.hasClass('title-large')) return;\n const isSliding =\n $navEl.hasClass('sliding') || $navEl.parents('.navbar-inner.sliding').length;\n if (els.indexOf(el) < 0) els.push(el);\n if (!isSubnavbar || (isSubnavbar && !isSliding)) {\n el.opacity = (progress) => 1 - progress ** 0.33;\n }\n if (isSliding) {\n let transformTarget = el;\n if (isLeft && activeNavBackIconText.length && params.iosAnimateNavbarBackIcon) {\n const textEl = { el: activeNavBackIconText[0] };\n transformTarget = textEl;\n els.push(textEl);\n }\n transformTarget.transform = (progress) => {\n let activeNavTranslate = progress * transformTarget.el.f7NavbarRightOffset;\n if (device.pixelRatio === 1) activeNavTranslate = Math.round(activeNavTranslate);\n if (isSubnavbar && currentNavIsLarge) {\n return `translate3d(${activeNavTranslate}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`;\n }\n return `translate3d(${activeNavTranslate}px,0,0)`;\n };\n }\n });\n $previousNavElements.each((navEl) => {\n const $navEl = $(navEl);\n const isSubnavbar = $navEl.hasClass('subnavbar');\n const isLeft = $navEl.hasClass('left');\n const isTitle = $navEl.hasClass('title');\n const isBg = $navEl.hasClass('navbar-bg');\n if ((isTitle || isBg) && previousNavIsTransparent) return;\n const el = {\n el: navEl,\n };\n if (toLarge) {\n if (isTitle) return;\n if (els.indexOf(el) < 0) els.push(el);\n\n if ($navEl.hasClass('title-large')) {\n el.opacity = 1;\n el.overflow = 'visible';\n $navEl.find('.title-large-text').each((subNavEl) => {\n els.push({\n el: subNavEl,\n 'transform-origin': transformOriginTitleLarge,\n opacity: (progress) => progress ** 3,\n transform: (progress) =>\n `translateX(calc(${\n 1 - progress\n } * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(${\n progress - 1\n } * var(--f7-navbar-large-title-height) + ${\n 1 - progress\n } * var(--f7-navbar-large-title-padding-vertical))) scale(${0.5 + progress * 0.5})`,\n });\n });\n return;\n }\n }\n if (isBg) {\n if (els.indexOf(el) < 0) els.push(el);\n if (!fromLarge && !toLarge) {\n if (previousNavIsCollapsed) {\n if (previousNavIsLargeTransparent) {\n el.className = 'ios-swipeback-navbar-bg-large';\n }\n el.transform = (progress) =>\n `translateX(${\n (-100 + 100 * progress) * inverter\n }%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))`;\n } else {\n el.transform = (progress) => `translateX(${(-100 + 100 * progress) * inverter}%)`;\n }\n }\n if (!fromLarge && toLarge) {\n el.transform = (progress) =>\n `translateX(${(-100 + 100 * progress) * inverter}%) translateY(calc(-1 * ${\n 1 - progress\n } * var(--f7-navbar-large-title-height)))`;\n }\n if (fromLarge && !toLarge) {\n el.className = 'ios-swipeback-navbar-bg-large';\n el.transform = (progress) =>\n `translateX(${\n (-100 + 100 * progress) * inverter\n }%) translateY(calc(-${progress} * var(--f7-navbar-large-title-height)))`;\n }\n if (fromLarge && toLarge) {\n el.transform = (progress) => `translateX(${(-100 + 100 * progress) * inverter}%)`;\n }\n\n return;\n }\n if ($navEl.hasClass('title-large')) return;\n const isSliding =\n $navEl.hasClass('sliding') || $previousNavbarEl.children('.navbar-inner.sliding').length;\n if (els.indexOf(el) < 0) els.push(el);\n if (!isSubnavbar || (isSubnavbar && !isSliding)) {\n el.opacity = (progress) => progress ** 3;\n }\n if (isSliding) {\n let transformTarget = el;\n if (isLeft && previousNavBackIconText.length && params.iosAnimateNavbarBackIcon) {\n const textEl = { el: previousNavBackIconText[0] };\n transformTarget = textEl;\n els.push(textEl);\n }\n transformTarget.transform = (progress) => {\n let previousNavTranslate = transformTarget.el.f7NavbarLeftOffset * (1 - progress);\n if (device.pixelRatio === 1) previousNavTranslate = Math.round(previousNavTranslate);\n if (isSubnavbar && previousNavIsLarge) {\n return `translate3d(${previousNavTranslate}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`;\n }\n return `translate3d(${previousNavTranslate}px,0,0)`;\n };\n }\n });\n return els;\n }\n\n function setAnimatableNavElements({ progress, reset, transition, reflow } = {}) {\n const styles = ['overflow', 'transform', 'transform-origin', 'opacity'];\n if (transition === true || transition === false) {\n for (let i = 0; i < animatableNavEls.length; i += 1) {\n const el = animatableNavEls[i];\n if (el && el.el) {\n if (transition === true) el.el.classList.add('navbar-page-transitioning');\n if (transition === false) el.el.classList.remove('navbar-page-transitioning');\n }\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 for (let i = 0; i < animatableNavEls.length; i += 1) {\n const el = animatableNavEls[i];\n if (el && el.el) {\n if (el.className && !el.classNameSet && !reset) {\n el.el.classList.add(el.className);\n el.classNameSet = true;\n }\n if (el.className && reset) {\n el.el.classList.remove(el.className);\n }\n for (let j = 0; j < styles.length; j += 1) {\n const styleProp = styles[j];\n if (el[styleProp]) {\n if (reset) {\n el.el.style[styleProp] = '';\n } else if (typeof el[styleProp] === 'function') {\n el.el.style[styleProp] = el[styleProp](progress);\n } else {\n el.el.style[styleProp] = el[styleProp];\n }\n }\n }\n }\n }\n }\n\n function handleTouchStart(e) {\n const swipeBackEnabled = params[`${app.theme}SwipeBack`];\n if (\n !allowViewTouchMove ||\n !swipeBackEnabled ||\n isTouched ||\n (app.swipeout && app.swipeout.el) ||\n !router.allowPageChange\n )\n return;\n if ($(e.target).closest('.range-slider, .calendar-months').length > 0) return;\n if (\n $(e.target).closest('.page-master, .page-master-detail').length > 0 &&\n params.masterDetailBreakpoint > 0 &&\n app.width >= params.masterDetailBreakpoint\n )\n 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 function handleTouchMove(e) {\n if (!isTouched) return;\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (typeof isScrolling === 'undefined') {\n isScrolling =\n !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)) ||\n (pageX < touchesStart.x && !app.rtl) ||\n (pageX > touchesStart.x && app.rtl);\n }\n if (isScrolling || e.f7PreventSwipeBack || app.preventSwipeBack) {\n isTouched = false;\n return;\n }\n if (!isMoved) {\n // Calc values during first move fired\n let cancel = false;\n const target = $(e.target);\n\n const swipeout = target.closest('.swipeout');\n if (swipeout.length > 0) {\n if (!app.rtl && swipeout.find('.swipeout-actions-left').length > 0) cancel = true;\n if (app.rtl && swipeout.find('.swipeout-actions-right').length > 0) cancel = true;\n }\n\n $currentPageEl = target.closest('.page');\n if (\n $currentPageEl.hasClass('no-swipeback') ||\n target.closest('.no-swipeback, .card-opened').length > 0\n )\n cancel = true;\n $previousPageEl = $el.find('.page-previous:not(.stacked)');\n if ($previousPageEl.length > 1) {\n $previousPageEl = $previousPageEl.eq($previousPageEl.length - 1);\n }\n let notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea;\n viewContainerWidth = $el.width();\n if (app.rtl) {\n notFromBorder =\n touchesStart.x <\n $el.offset().left - $el[0].scrollLeft + (viewContainerWidth - paramsSwipeBackActiveArea);\n } else {\n notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea;\n }\n if (notFromBorder) cancel = true;\n if ($previousPageEl.length === 0 || $currentPageEl.length === 0) cancel = true;\n if (cancel) {\n isTouched = false;\n return;\n }\n\n if (paramsSwipeBackAnimateShadow) {\n $pageShadowEl = $currentPageEl.find('.page-shadow-effect');\n if ($pageShadowEl.length === 0) {\n $pageShadowEl = $('<div class=\"page-shadow-effect\"></div>');\n $currentPageEl.append($pageShadowEl);\n }\n }\n if (paramsSwipeBackAnimateOpacity) {\n $pageOpacityEl = $previousPageEl.find('.page-opacity-effect');\n if ($pageOpacityEl.length === 0) {\n $pageOpacityEl = $('<div class=\"page-opacity-effect\"></div>');\n $previousPageEl.append($pageOpacityEl);\n }\n }\n\n if (dynamicNavbar) {\n $currentNavbarEl = $navbarsEl.find('.navbar-current:not(.stacked)');\n $previousNavbarEl = $navbarsEl.find('.navbar-previous:not(.stacked)');\n if ($previousNavbarEl.length > 1) {\n $previousNavbarEl = $previousNavbarEl.eq($previousNavbarEl.length - 1);\n }\n\n animatableNavEls = animatableNavElements($previousNavbarEl, $currentNavbarEl);\n }\n\n // Close/Hide Any Picker\n if ($('.sheet.modal-in').length > 0 && app.sheet) {\n app.sheet.close($('.sheet.modal-in'));\n }\n }\n e.f7PreventSwipePanel = true;\n isMoved = true;\n app.preventSwipePanelBySwipeBack = true;\n e.preventDefault();\n\n // RTL inverter\n const inverter = app.rtl ? -1 : 1;\n\n // Touches diff\n touchesDiff = (pageX - touchesStart.x - paramsSwipeBackThreshold) * inverter;\n if (touchesDiff < 0) touchesDiff = 0;\n const percentage = Math.min(Math.max(touchesDiff / viewContainerWidth, 0), 1);\n\n // Swipe Back Callback\n const callbackData = {\n percentage,\n progress: percentage,\n currentPageEl: $currentPageEl[0],\n previousPageEl: $previousPageEl[0],\n currentNavbarEl: $currentNavbarEl[0],\n previousNavbarEl: $previousNavbarEl[0],\n };\n $el.trigger('swipeback:move', callbackData);\n router.emit('swipebackMove', callbackData);\n\n // Transform pages\n let currentPageTranslate = touchesDiff * inverter;\n let previousPageTranslate = (touchesDiff / 5 - viewContainerWidth / 5) * inverter;\n if (!app.rtl) {\n currentPageTranslate = Math.min(currentPageTranslate, viewContainerWidth);\n previousPageTranslate = Math.min(previousPageTranslate, 0);\n } else {\n currentPageTranslate = Math.max(currentPageTranslate, -viewContainerWidth);\n previousPageTranslate = Math.max(previousPageTranslate, 0);\n }\n if (device.pixelRatio === 1) {\n currentPageTranslate = Math.round(currentPageTranslate);\n previousPageTranslate = Math.round(previousPageTranslate);\n }\n\n router.swipeBackActive = true;\n $([$currentPageEl[0], $previousPageEl[0]]).addClass('page-swipeback-active');\n\n $currentPageEl.transform(`translate3d(${currentPageTranslate}px,0,0)`);\n if (paramsSwipeBackAnimateShadow) $pageShadowEl[0].style.opacity = 1 - 1 * percentage;\n\n if (app.theme === 'ios') {\n $previousPageEl.transform(`translate3d(${previousPageTranslate}px,0,0)`);\n }\n if (paramsSwipeBackAnimateOpacity) $pageOpacityEl[0].style.opacity = 1 - 1 * percentage;\n\n // Dynamic Navbars Animation\n if (!dynamicNavbar) return;\n\n setAnimatableNavElements({ progress: percentage });\n }\n function handleTouchEnd() {\n app.preventSwipePanelBySwipeBack = false;\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n isTouched = false;\n isMoved = false;\n router.swipeBackActive = false;\n const $pages = $([$currentPageEl[0], $previousPageEl[0]]);\n $pages.removeClass('page-swipeback-active');\n if (touchesDiff === 0) {\n $pages.transform('');\n if ($pageShadowEl && $pageShadowEl.length > 0) $pageShadowEl.remove();\n if ($pageOpacityEl && $pageOpacityEl.length > 0) $pageOpacityEl.remove();\n if (dynamicNavbar) {\n setAnimatableNavElements({ reset: true });\n }\n return;\n }\n const timeDiff = now() - touchStartTime;\n let pageChanged = false;\n // Swipe back to previous page\n if (\n (timeDiff < 300 && touchesDiff > 10) ||\n (timeDiff >= 300 && touchesDiff > viewContainerWidth / 2)\n ) {\n $currentPageEl\n .removeClass('page-current')\n .addClass(`page-next${app.theme !== 'ios' ? ' page-next-on-right' : ''}`);\n $previousPageEl\n .removeClass('page-previous')\n .addClass('page-current')\n .removeAttr('aria-hidden');\n if ($pageShadowEl) $pageShadowEl[0].style.opacity = '';\n if ($pageOpacityEl) $pageOpacityEl[0].style.opacity = '';\n if (dynamicNavbar) {\n router.setNavbarPosition($currentNavbarEl, 'next');\n router.setNavbarPosition($previousNavbarEl, 'current', false);\n }\n pageChanged = true;\n }\n // Reset custom styles\n // Add transitioning class for transition-duration\n $pages.addClass('page-transitioning page-transitioning-swipeback');\n if (device.ios) {\n // eslint-disable-next-line\n $currentPageEl[0]._clientLeft = $currentPageEl[0].clientLeft;\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 allowViewTouchMove = false;\n router.allowPageChange = false;\n\n // Swipe Back Callback\n const callbackData = {\n currentPageEl: $currentPageEl[0],\n previousPageEl: $previousPageEl[0],\n currentNavbarEl: $currentNavbarEl[0],\n previousNavbarEl: $previousNavbarEl[0],\n };\n\n if (pageChanged) {\n // Update Route\n router.currentRoute = $previousPageEl[0].f7Page.route;\n router.currentPage = $previousPageEl[0];\n\n // Page before animation callback\n router.pageCallback('beforeOut', $currentPageEl, $currentNavbarEl, 'current', 'next', {\n route: $currentPageEl[0].f7Page.route,\n swipeBack: true,\n });\n router.pageCallback(\n 'beforeIn',\n $previousPageEl,\n $previousNavbarEl,\n 'previous',\n 'current',\n { route: $previousPageEl[0].f7Page.route, swipeBack: true },\n $currentPageEl[0],\n );\n\n $el.trigger('swipeback:beforechange', callbackData);\n router.emit('swipebackBeforeChange', callbackData);\n } else {\n $el.trigger('swipeback:beforereset', callbackData);\n router.emit('swipebackBeforeReset', callbackData);\n }\n\n $currentPageEl.transitionEnd(() => {\n $pages.removeClass('page-transitioning page-transitioning-swipeback');\n if (dynamicNavbar) {\n setAnimatableNavElements({ reset: true, transition: false });\n }\n allowViewTouchMove = true;\n router.allowPageChange = true;\n if (pageChanged) {\n // Update History\n if (router.history.length === 1) {\n router.history.unshift(router.url);\n }\n router.history.pop();\n router.saveHistory();\n\n // Update push state\n if (params.browserHistory) {\n History.back();\n }\n\n // Page after animation callback\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 });\n\n // Remove Old Page\n if (params.stackPages && router.initialPages.indexOf($currentPageEl[0]) >= 0) {\n $currentPageEl.addClass('stacked');\n if (dynamicNavbar) {\n $currentNavbarEl.addClass('stacked');\n }\n } else {\n router.pageCallback('beforeRemove', $currentPageEl, $currentNavbarEl, 'next', {\n swipeBack: true,\n });\n router.removePage($currentPageEl);\n if (dynamicNavbar) {\n router.removeNavbar($currentNavbarEl);\n }\n }\n\n $el.trigger('swipeback:afterchange', callbackData);\n router.emit('swipebackAfterChange', callbackData);\n\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n\n if (params.preloadPreviousPage) {\n router.back(router.history[router.history.length - 2], { preload: true });\n }\n } else {\n $el.trigger('swipeback:afterreset', callbackData);\n router.emit('swipebackAfterReset', callbackData);\n }\n if ($pageShadowEl && $pageShadowEl.length > 0) $pageShadowEl.remove();\n if ($pageOpacityEl && $pageOpacityEl.length > 0) $pageOpacityEl.remove();\n });\n }\n\n function attachEvents() {\n const passiveListener =\n app.touchEvents.start === 'touchstart' && support.passiveListener\n ? { passive: true, 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 function detachEvents() {\n const passiveListener =\n app.touchEvents.start === 'touchstart' && support.passiveListener\n ? { passive: true, 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\n router.on('routerDestroy', detachEvents);\n}\n\nexport default SwipeBack;\n","import { extend } from '../../shared/utils.js';\n\nexport default function redirect(direction, route, options) {\n const router = this;\n const r = route.route.redirect;\n const method = direction === 'forward' ? 'navigate' : 'back';\n if (options.initial && router.params.browserHistory) {\n options.replaceState = true; // eslint-disable-line\n options.history = true; // eslint-disable-line\n }\n function redirectResolve(redirectUrl, redirectOptions = {}) {\n router.allowPageChange = true;\n router[method](redirectUrl, extend({}, options, redirectOptions));\n }\n function redirectReject() {\n router.allowPageChange = true;\n }\n if (typeof r === 'function') {\n router.allowPageChange = false;\n const redirectUrl = r.call(router, {\n router,\n to: route,\n resolve: redirectResolve,\n reject: redirectReject,\n direction,\n app: router.app,\n });\n if (redirectUrl && typeof redirectUrl === 'string') {\n router.allowPageChange = true;\n return router[method](redirectUrl, options);\n }\n return router;\n }\n return router[method](r, options);\n}\n","function processQueue(router, routerQueue, routeQueue, to, from, resolve, reject, direction) {\n const queue = [];\n\n if (Array.isArray(routeQueue)) {\n queue.push(...routeQueue);\n } else if (routeQueue && typeof routeQueue === 'function') {\n queue.push(routeQueue);\n }\n if (routerQueue) {\n if (Array.isArray(routerQueue)) {\n queue.push(...routerQueue);\n } else {\n queue.push(routerQueue);\n }\n }\n\n function next() {\n if (queue.length === 0) {\n resolve();\n return;\n }\n const queueItem = queue.shift();\n\n queueItem.call(router, {\n router,\n to,\n from,\n resolve() {\n next();\n },\n reject() {\n reject();\n },\n direction,\n app: router.app,\n });\n }\n next();\n}\n\nexport default function processRouteQueue(to, from, resolve, reject, direction) {\n const router = this;\n function enterNextRoute() {\n if (to && to.route && (router.params.routesBeforeEnter || to.route.beforeEnter)) {\n router.allowPageChange = false;\n processQueue(\n router,\n router.params.routesBeforeEnter,\n to.route.beforeEnter,\n to,\n from,\n () => {\n router.allowPageChange = true;\n resolve();\n },\n () => {\n reject();\n },\n direction,\n );\n } else {\n resolve();\n }\n }\n function leaveCurrentRoute() {\n if (from && from.route && (router.params.routesBeforeLeave || from.route.beforeLeave)) {\n router.allowPageChange = false;\n processQueue(\n router,\n router.params.routesBeforeLeave,\n from.route.beforeLeave,\n to,\n from,\n () => {\n router.allowPageChange = true;\n enterNextRoute();\n },\n () => {\n reject();\n },\n direction,\n );\n } else {\n enterNextRoute();\n }\n }\n leaveCurrentRoute();\n}\n","export default function appRouterCheck(router, method) {\n if (!router.view) {\n throw new Error(\n `Framework7: it is not allowed to use router methods on global app router. Use router methods only on related View, e.g. app.views.main.router.${method}(...)`,\n );\n }\n}\n","export default function asyncComponent(router, component, resolve, reject) {\n function resolvePromise(componentPromise) {\n componentPromise\n .then((c) => {\n // eslint-disable-next-line\n resolve({ component: c.default || c._default || c });\n })\n .catch((err) => {\n reject();\n throw new Error(err);\n });\n }\n if (component instanceof Promise) {\n resolvePromise(component);\n return;\n }\n const asyncComponentResult = component.call(router);\n if (asyncComponentResult instanceof Promise) {\n resolvePromise(asyncComponentResult);\n } else {\n resolve({ component: asyncComponentResult });\n }\n}\n","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, parseUrlQuery } from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport redirect from './redirect.js';\nimport processRouteQueue from './process-route-queue.js';\nimport appRouterCheck from './app-router-check.js';\nimport asyncComponent from './async-component.js';\n\nfunction refreshPage() {\n const router = this;\n appRouterCheck(router, 'refreshPage');\n return router.navigate(router.currentRoute.url, {\n ignoreCache: true,\n reloadCurrent: true,\n });\n}\n\nfunction forward(router, el, forwardOptions = {}) {\n const document = getDocument();\n const $el = $(el);\n const app = router.app;\n const view = router.view;\n const options = extend(\n false,\n {\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 },\n forwardOptions,\n );\n\n const masterDetailEnabled = router.params.masterDetailBreakpoint > 0;\n const isMaster =\n masterDetailEnabled &&\n options.route &&\n options.route.route &&\n (options.route.route.master === true ||\n (typeof options.route.route.master === 'function' &&\n options.route.route.master(app, router)));\n\n let masterPageEl;\n let otherDetailPageEl;\n let detailsInBetweenRemoved = 0;\n\n let currentRouteIsModal = router.currentRoute.modal;\n let modalType;\n if (!currentRouteIsModal) {\n 'popup popover sheet loginScreen actions customModal panel'\n .split(' ')\n .forEach((modalLoadProp) => {\n if (\n router.currentRoute &&\n router.currentRoute.route &&\n router.currentRoute.route[modalLoadProp]\n ) {\n currentRouteIsModal = true;\n modalType = modalLoadProp;\n }\n });\n }\n\n if (currentRouteIsModal) {\n const modalToClose =\n router.currentRoute.modal || router.currentRoute.route.modalInstance || app[modalType].get();\n const previousUrl = router.history[router.history.length - 2];\n let previousRoute = router.findMatchingRoute(previousUrl);\n if (!previousRoute && previousUrl) {\n previousRoute = {\n url: previousUrl,\n path: previousUrl.split('?')[0],\n query: parseUrlQuery(previousUrl),\n route: {\n path: previousUrl.split('?')[0],\n url: previousUrl,\n },\n };\n }\n\n router.modalRemove(modalToClose);\n }\n\n const dynamicNavbar = router.dynamicNavbar;\n\n const $viewEl = router.$el;\n const $newPage = $el;\n const reload = options.reloadPrevious || options.reloadCurrent || options.reloadAll;\n let $oldPage;\n\n let $navbarsEl;\n let $newNavbarEl;\n let $oldNavbarEl;\n\n router.allowPageChange = false;\n if ($newPage.length === 0) {\n router.allowPageChange = true;\n return router;\n }\n\n if ($newPage.length) {\n // Remove theme elements\n router.removeThemeElements($newPage);\n }\n\n if (dynamicNavbar) {\n $newNavbarEl = $newPage.children('.navbar');\n $navbarsEl = router.$navbarsEl;\n if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) {\n // Try from pageData\n $newNavbarEl = $newPage[0].f7Page.$navbarEl;\n }\n }\n\n // Save Keep Alive Cache\n if (\n options.route &&\n options.route.route &&\n options.route.route.keepAlive &&\n !options.route.route.keepAliveData\n ) {\n options.route.route.keepAliveData = {\n pageEl: $el[0],\n };\n }\n\n // Pages In View\n const $pagesInView = $viewEl\n .children('.page:not(.stacked)')\n .filter((pageInView) => pageInView !== $newPage[0]);\n\n // Navbars In View\n let $navbarsInView;\n if (dynamicNavbar) {\n $navbarsInView = $navbarsEl\n .children('.navbar:not(.stacked)')\n .filter((navbarInView) => navbarInView !== $newNavbarEl[0]);\n }\n\n // Exit when reload previous and only 1 page in view so nothing ro reload\n if (options.reloadPrevious && $pagesInView.length < 2) {\n router.allowPageChange = true;\n return router;\n }\n\n // Find Detail' master page\n let isDetail;\n let reloadDetail;\n let isDetailRoot;\n if (masterDetailEnabled && !options.reloadAll) {\n for (let i = 0; i < $pagesInView.length; i += 1) {\n if (!masterPageEl && $pagesInView[i].classList.contains('page-master')) {\n masterPageEl = $pagesInView[i];\n continue; // eslint-disable-line\n }\n }\n isDetail = !isMaster && masterPageEl;\n\n if (isDetail) {\n // Find Other Detail\n if (masterPageEl) {\n for (let i = 0; i < $pagesInView.length; i += 1) {\n if ($pagesInView[i].classList.contains('page-master-detail')) {\n otherDetailPageEl = $pagesInView[i];\n continue; // eslint-disable-line\n }\n }\n }\n }\n reloadDetail =\n isDetail &&\n options.reloadDetail &&\n app.width >= router.params.masterDetailBreakpoint &&\n masterPageEl;\n }\n if (isDetail) {\n isDetailRoot = !otherDetailPageEl || reloadDetail || options.reloadAll || options.reloadCurrent;\n }\n\n // New Page\n let newPagePosition = 'next';\n if (options.reloadCurrent || options.reloadAll || reloadDetail) {\n newPagePosition = 'current';\n } else if (options.reloadPrevious) {\n newPagePosition = 'previous';\n }\n $newPage\n .removeClass('page-previous page-current page-next')\n .addClass(\n `page-${newPagePosition}${isMaster ? ' page-master' : ''}${\n isDetail ? ' page-master-detail' : ''\n }${isDetailRoot ? ' page-master-detail-root' : ''}`,\n )\n .removeClass('stacked')\n .trigger('page:unstack')\n .trigger('page:position', { position: newPagePosition });\n router.emit('pageUnstack', $newPage[0]);\n router.emit('pagePosition', $newPage[0], newPagePosition);\n\n if (isMaster || isDetail) {\n $newPage.trigger('page:role', { role: isMaster ? 'master' : 'detail', root: !!isDetailRoot });\n router.emit('pageRole', $newPage[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot,\n });\n }\n\n if (dynamicNavbar && $newNavbarEl.length) {\n $newNavbarEl\n .removeClass('navbar-previous navbar-current navbar-next')\n .addClass(\n `navbar-${newPagePosition}${isMaster ? ' navbar-master' : ''}${\n isDetail ? ' navbar-master-detail' : ''\n }${isDetailRoot ? ' navbar-master-detail-root' : ''}`,\n )\n .removeClass('stacked');\n $newNavbarEl.trigger('navbar:position', { position: newPagePosition });\n router.emit('navbarPosition', $newNavbarEl[0], newPagePosition);\n if (isMaster || isDetail) {\n router.emit('navbarRole', $newNavbarEl[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot,\n });\n }\n }\n\n // Find Old Page\n if (options.reloadCurrent || reloadDetail) {\n if (reloadDetail) {\n $oldPage = $pagesInView.filter((pageEl) => !pageEl.classList.contains('page-master'));\n if (dynamicNavbar) {\n $oldNavbarEl = $($oldPage.map((pageEl) => app.navbar.getElByPage(pageEl)));\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 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 if (dynamicNavbar) {\n $oldNavbarEl = $(app.navbar.getElByPage($oldPage));\n }\n }\n } else if (options.reloadPrevious) {\n $oldPage = $pagesInView.eq($pagesInView.length - 2);\n if (dynamicNavbar) {\n // $oldNavbarEl = $navbarsInView.eq($pagesInView.length - 2);\n $oldNavbarEl = $(app.navbar.getElByPage($oldPage));\n }\n } else if (options.reloadAll) {\n $oldPage = $pagesInView.filter((pageEl) => pageEl !== $newPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl = $navbarsInView.filter((navbarEl) => navbarEl !== $newNavbarEl[0]);\n }\n } else {\n let removedPageEls = [];\n let removedNavbarEls = [];\n if ($pagesInView.length > 1) {\n let i = 0;\n for (i = 0; i < $pagesInView.length - 1; i += 1) {\n if (masterPageEl && $pagesInView[i] === masterPageEl) {\n $pagesInView.eq(i).addClass('page-master-stacked');\n $pagesInView.eq(i).trigger('page:masterstack');\n router.emit('pageMasterStack', $pagesInView[i]);\n if (dynamicNavbar) {\n $(app.navbar.getElByPage(masterPageEl)).addClass('navbar-master-stacked');\n router.emit('navbarMasterStack', app.navbar.getElByPage(masterPageEl));\n }\n continue; // eslint-disable-line\n }\n const oldNavbarEl = app.navbar.getElByPage($pagesInView.eq(i));\n if (router.params.stackPages) {\n $pagesInView.eq(i).addClass('stacked');\n $pagesInView.eq(i).trigger('page:stack');\n router.emit('pageStack', $pagesInView[i]);\n if (dynamicNavbar) {\n $(oldNavbarEl).addClass('stacked');\n }\n } else {\n // Page remove event\n removedPageEls.push($pagesInView[i]);\n router.pageCallback(\n 'beforeRemove',\n $pagesInView[i],\n $navbarsInView && $navbarsInView[i],\n 'previous',\n undefined,\n options,\n );\n router.removePage($pagesInView[i]);\n if (dynamicNavbar && oldNavbarEl) {\n removedNavbarEls.push(oldNavbarEl);\n router.removeNavbar(oldNavbarEl);\n }\n }\n }\n }\n $oldPage = $viewEl\n .children('.page:not(.stacked)')\n .filter((pageEl) => pageEl !== $newPage[0] && removedPageEls.indexOf(pageEl) < 0);\n if (dynamicNavbar) {\n $oldNavbarEl = $navbarsEl\n .children('.navbar:not(.stacked)')\n .filter(\n (navbarEl) =>\n navbarEl !== $newNavbarEl[0] && removedNavbarEls.indexOf(removedNavbarEls) < 0,\n );\n }\n removedPageEls = [];\n removedNavbarEls = [];\n }\n\n if (isDetail && !options.reloadAll) {\n if ($oldPage.length > 1 || reloadDetail) {\n $oldPage = $oldPage.filter((pageEl) => !pageEl.classList.contains('page-master'));\n }\n if ($oldNavbarEl && ($oldNavbarEl.length > 1 || reloadDetail)) {\n $oldNavbarEl = $oldNavbarEl.filter(\n (navbarEl) => !navbarEl.classList.contains('navbar-master'),\n );\n }\n }\n\n // Push State\n if (\n router.params.browserHistory &&\n (options.browserHistory || options.replaceState) &&\n !options.reloadPrevious\n ) {\n const browserHistoryRoot = router.params.browserHistoryRoot || '';\n History[\n options.reloadCurrent ||\n (reloadDetail && otherDetailPageEl) ||\n options.reloadAll ||\n options.replaceState\n ? 'replace'\n : 'push'\n ](\n view.id,\n {\n url: options.route.url,\n },\n browserHistoryRoot + router.params.browserHistorySeparator + options.route.url,\n );\n }\n\n if (!options.reloadPrevious) {\n // Current Page & Navbar\n router.currentPageEl = $newPage[0];\n if (dynamicNavbar && $newNavbarEl.length) {\n router.currentNavbarEl = $newNavbarEl[0];\n } else {\n delete router.currentNavbarEl;\n }\n\n // Current Route\n router.currentRoute = options.route;\n }\n\n // Update router history\n const url = options.route.url;\n\n if (options.history) {\n if (\n ((options.reloadCurrent || (reloadDetail && otherDetailPageEl)) && router.history.length) >\n 0 ||\n options.replaceState\n ) {\n if (reloadDetail && detailsInBetweenRemoved > 0) {\n router.history = router.history.slice(0, router.history.length - detailsInBetweenRemoved);\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 router.saveHistory();\n\n // Insert new page and navbar\n const newPageInDom = $newPage.parents(document).length > 0;\n const f7Component = $newPage[0].f7Component;\n if (options.reloadPrevious) {\n if (f7Component && !newPageInDom) {\n f7Component.mount((componentEl) => {\n $(componentEl).insertBefore($oldPage);\n });\n } else {\n $newPage.insertBefore($oldPage);\n }\n if (dynamicNavbar && $newNavbarEl.length) {\n if ($newNavbarEl.find('.title-large').length) {\n $newNavbarEl.addClass('navbar-large');\n }\n if ($oldNavbarEl.length) {\n $newNavbarEl.insertBefore($oldNavbarEl);\n } else {\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n $navbarsEl.append($newNavbarEl);\n }\n }\n } else {\n if ($oldPage.next('.page')[0] !== $newPage[0]) {\n if (f7Component && !newPageInDom) {\n f7Component.mount((componentEl) => {\n $viewEl.append(componentEl);\n });\n } else {\n $viewEl.append($newPage[0]);\n }\n }\n if (dynamicNavbar && $newNavbarEl.length) {\n if ($newNavbarEl.find('.title-large').length) {\n $newNavbarEl.addClass('navbar-large');\n }\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n $navbarsEl.append($newNavbarEl[0]);\n }\n }\n if (!newPageInDom) {\n router.pageCallback(\n 'mounted',\n $newPage,\n $newNavbarEl,\n newPagePosition,\n reload ? newPagePosition : 'current',\n options,\n $oldPage,\n );\n } else if (\n options.route &&\n options.route.route &&\n options.route.route.keepAlive &&\n !$newPage[0].f7PageMounted\n ) {\n $newPage[0].f7PageMounted = true;\n router.pageCallback(\n 'mounted',\n $newPage,\n $newNavbarEl,\n newPagePosition,\n reload ? newPagePosition : 'current',\n options,\n $oldPage,\n );\n }\n\n // Remove old page\n if ((options.reloadCurrent || reloadDetail) && $oldPage.length > 0) {\n if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) {\n $oldPage.addClass('stacked');\n $oldPage.trigger('page:stack');\n router.emit('pageStack', $oldPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else {\n // Page remove event\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', undefined, options);\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', undefined, options);\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'current', undefined, options);\n router.removePage($oldPage);\n if (dynamicNavbar && $oldNavbarEl && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n } else if (options.reloadAll) {\n $oldPage.each((pageEl, index) => {\n const $oldPageEl = $(pageEl);\n const $oldNavbarElEl = $(app.navbar.getElByPage($oldPageEl));\n if (router.params.stackPages && router.initialPages.indexOf($oldPageEl[0]) >= 0) {\n $oldPageEl.addClass('stacked');\n $oldPageEl.trigger('page:stack');\n router.emit('pageStack', $oldPageEl[0]);\n if (dynamicNavbar) {\n $oldNavbarElEl.addClass('stacked');\n }\n } else {\n // Page remove event\n if ($oldPageEl.hasClass('page-current')) {\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', undefined, options);\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', undefined, options);\n }\n router.pageCallback(\n 'beforeRemove',\n $oldPageEl,\n $oldNavbarEl && $oldNavbarEl.eq(index),\n 'previous',\n undefined,\n options,\n );\n router.removePage($oldPageEl);\n if (dynamicNavbar && $oldNavbarElEl.length) {\n router.removeNavbar($oldNavbarElEl);\n }\n }\n });\n } else if (options.reloadPrevious) {\n if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) {\n $oldPage.addClass('stacked');\n $oldPage.trigger('page:stack');\n router.emit('pageStack', $oldPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else {\n // Page remove event\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'previous', undefined, options);\n router.removePage($oldPage);\n if (dynamicNavbar && $oldNavbarEl && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n }\n\n // Load Tab\n if (options.route.route.tab) {\n router.tabLoad(\n options.route.route.tab,\n extend({}, options, {\n history: false,\n browserHistory: false,\n }),\n );\n }\n\n // Check master detail\n if (masterDetailEnabled) {\n view.checkMasterDetailBreakpoint();\n }\n\n // Page init and before init events\n router.pageCallback(\n 'init',\n $newPage,\n $newNavbarEl,\n newPagePosition,\n reload ? newPagePosition : 'current',\n options,\n $oldPage,\n );\n\n if (options.reloadCurrent || options.reloadAll || reloadDetail) {\n router.allowPageChange = true;\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, newPagePosition, 'current', options);\n $newPage.removeAttr('aria-hidden');\n if (dynamicNavbar && $newNavbarEl) {\n $newNavbarEl.removeAttr('aria-hidden');\n }\n router.pageCallback('afterIn', $newPage, $newNavbarEl, newPagePosition, 'current', options);\n if (options.reloadCurrent && options.clearPreviousHistory) router.clearPreviousHistory();\n if (reloadDetail) {\n router.setPagePosition($(masterPageEl), 'previous');\n if (masterPageEl.f7Page && masterPageEl.f7Page.navbarEl) {\n router.setNavbarPosition($(masterPageEl.f7Page.navbarEl), 'previous');\n }\n }\n return router;\n }\n if (options.reloadPrevious) {\n router.allowPageChange = true;\n return router;\n }\n\n // Before animation event\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'previous', options);\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'next', 'current', options);\n\n // Animation\n function afterAnimation() {\n router.setPagePosition($newPage, 'current', false);\n router.setPagePosition($oldPage, 'previous', !$oldPage.hasClass('page-master'));\n if (dynamicNavbar) {\n router.setNavbarPosition($newNavbarEl, 'current', false);\n router.setNavbarPosition($oldNavbarEl, 'previous', !$oldNavbarEl.hasClass('navbar-master'));\n }\n // After animation event\n router.allowPageChange = true;\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'previous', options);\n router.pageCallback('afterIn', $newPage, $newNavbarEl, 'next', 'current', options);\n\n let keepOldPage =\n (router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`]) && !isMaster;\n if (!keepOldPage) {\n if (\n $newPage.hasClass('smart-select-page') ||\n $newPage.hasClass('photo-browser-page') ||\n $newPage.hasClass('autocomplete-page') ||\n $newPage.hasClass('color-picker-page')\n ) {\n keepOldPage = true;\n }\n }\n if (!keepOldPage) {\n if (router.params.stackPages) {\n $oldPage.addClass('stacked');\n $oldPage.trigger('page:stack');\n router.emit('pageStack', $oldPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else if (\n !($newPage.attr('data-name') && $newPage.attr('data-name') === 'smart-select-page')\n ) {\n // Remove event\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'previous', undefined, options);\n router.removePage($oldPage);\n if (dynamicNavbar && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n }\n if (options.clearPreviousHistory) router.clearPreviousHistory();\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n\n if (router.params.browserHistory) {\n History.clearRouterQueue();\n }\n }\n function setPositionClasses() {\n router.setPagePosition($oldPage, 'current', false);\n router.setPagePosition($newPage, 'next', false);\n if (dynamicNavbar) {\n router.setNavbarPosition($oldNavbarEl, 'current', false);\n router.setNavbarPosition($newNavbarEl, 'next', false);\n }\n }\n if (options.animate && !(isMaster && app.width >= router.params.masterDetailBreakpoint)) {\n const delay = router.params[`${router.app.theme}PageLoadDelay`];\n let transition = router.params.transition;\n if (options.transition) transition = options.transition;\n if (!transition && router.currentRoute && router.currentRoute.route) {\n transition = router.currentRoute.route.transition;\n }\n if (!transition && router.currentRoute && router.currentRoute.route.options) {\n transition = router.currentRoute.route.options.transition;\n }\n if (transition) {\n $newPage[0].f7PageTransition = transition;\n }\n\n if (delay) {\n setTimeout(() => {\n setPositionClasses();\n router.animate(\n $oldPage,\n $newPage,\n $oldNavbarEl,\n $newNavbarEl,\n 'forward',\n transition,\n () => {\n afterAnimation();\n },\n );\n }, delay);\n } else {\n setPositionClasses();\n router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'forward', transition, () => {\n afterAnimation();\n });\n }\n } else {\n afterAnimation();\n }\n return router;\n}\nfunction load(router, loadParams = {}, loadOptions = {}, ignorePageChange) {\n if (!router.allowPageChange && !ignorePageChange) return router;\n const params = loadParams;\n const options = loadOptions;\n const { url, content, el, pageName, component, componentUrl } = params;\n\n if (\n !options.reloadCurrent &&\n options.route &&\n options.route.route &&\n options.route.route.parentPath &&\n router.currentRoute.route &&\n router.currentRoute.route.parentPath === options.route.route.parentPath\n ) {\n // Do something nested\n if (options.route.url === router.url) {\n router.allowPageChange = true;\n return false;\n }\n // Check for same params\n let sameParams =\n Object.keys(options.route.params).length === Object.keys(router.currentRoute.params).length;\n if (sameParams) {\n // Check for equal params name\n Object.keys(options.route.params).forEach((paramName) => {\n if (\n !(paramName in router.currentRoute.params) ||\n router.currentRoute.params[paramName] !== options.route.params[paramName]\n ) {\n sameParams = false;\n }\n });\n }\n if (sameParams) {\n if (options.route.route.tab) {\n return router.tabLoad(options.route.route.tab, options);\n }\n return false;\n }\n if (\n !sameParams &&\n options.route.route.tab &&\n router.currentRoute.route.tab &&\n router.currentRoute.parentPath === options.route.parentPath\n ) {\n return router.tabLoad(options.route.route.tab, options);\n }\n }\n\n if (\n options.route &&\n options.route.url &&\n router.url === options.route.url &&\n !(options.reloadCurrent || options.reloadPrevious) &&\n !router.params.allowDuplicateUrls\n ) {\n router.allowPageChange = true;\n return false;\n }\n\n if (!options.route && url) {\n options.route = router.parseRouteUrl(url);\n extend(options.route, { route: { url, path: url } });\n }\n\n // Component Callbacks\n function resolve(pageEl, newOptions) {\n return forward(router, pageEl, extend(options, newOptions));\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (url || componentUrl || component) {\n router.allowPageChange = false;\n }\n\n // Proceed\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,\n componentUrl,\n options,\n resolve,\n 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 router\n .xhrRequest(url, options)\n .then((pageContent) => {\n forward(router, router.getPageEl(pageContent), options);\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n }\n return router;\n}\n\nfunction navigate(navigateParams, navigateOptions = {}) {\n const router = this;\n\n if (router.swipeBackActive) return router;\n let url;\n let createRoute;\n let name;\n let path;\n let query;\n let params;\n let route;\n if (typeof navigateParams === 'string') {\n url = navigateParams;\n } else {\n url = navigateParams.url;\n createRoute = navigateParams.route;\n name = navigateParams.name;\n path = navigateParams.path;\n query = navigateParams.query;\n params = navigateParams.params;\n }\n if (name || path) {\n url = router.generateUrl({ path, name, params, query });\n if (url) {\n return router.navigate(url, navigateOptions);\n }\n return router;\n }\n const app = router.app;\n appRouterCheck(router, 'navigate');\n if (url === '#' || url === '') {\n return router;\n }\n\n let navigateUrl = url.replace('./', '');\n if (navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) {\n const currentPath = router.currentRoute.parentPath || router.currentRoute.path;\n navigateUrl = ((currentPath ? `${currentPath}/` : '/') + navigateUrl)\n .replace('///', '/')\n .replace('//', '/');\n }\n if (createRoute) {\n route = 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 if (route.route && route.route.viewName) {\n const anotherViewName = route.route.viewName;\n const anotherView = app.views[anotherViewName];\n if (!anotherView) {\n throw new Error(\n `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 const options = {};\n if (route.route.options) {\n extend(options, route.route.options, navigateOptions);\n } else {\n extend(options, navigateOptions);\n }\n\n if (\n options.openIn &&\n (!router.params.ignoreOpenIn || (router.params.ignoreOpenIn && router.history.length > 0))\n ) {\n return router.openIn(router, navigateUrl, options);\n }\n\n options.route = route;\n\n function resolve() {\n let routerLoaded = false;\n 'popup popover sheet loginScreen actions customModal panel'\n .split(' ')\n .forEach((modalLoadProp) => {\n if (route.route[modalLoadProp] && !routerLoaded) {\n routerLoaded = true;\n router.modalLoad(modalLoadProp, route, options, 'forward');\n }\n });\n if (route.route.keepAlive && route.route.keepAliveData) {\n load(router, { el: route.route.keepAliveData.pageEl }, options, false);\n routerLoaded = true;\n }\n 'url content component pageName el componentUrl'.split(' ').forEach((pageLoadProp) => {\n if (route.route[pageLoadProp] && !routerLoaded) {\n routerLoaded = true;\n load(router, { [pageLoadProp]: route.route[pageLoadProp] }, options, false);\n }\n });\n if (routerLoaded) return;\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n router.allowPageChange = false;\n let resolvedAsModal = false;\n\n 'popup popover sheet loginScreen actions customModal panel'\n .split(' ')\n .forEach((modalLoadProp) => {\n if (resolveParams[modalLoadProp]) {\n resolvedAsModal = true;\n const modalRoute = extend({}, route, { route: resolveParams });\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 function asyncReject() {\n router.allowPageChange = true;\n }\n if (route.route.async) {\n router.allowPageChange = false;\n route.route.async.call(router, {\n router,\n to: options.route,\n from: router.currentRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n direction: 'forward',\n app,\n });\n }\n if (route.route.asyncComponent) {\n asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject);\n }\n }\n function reject() {\n router.allowPageChange = true;\n }\n\n if (router.params.masterDetailBreakpoint > 0 && route.route.masterRoute) {\n // load detail route\n let preloadMaster = true;\n let masterLoaded = false;\n if (router.currentRoute && router.currentRoute.route) {\n if (\n (router.currentRoute.route.master === true ||\n (typeof router.currentRoute.route.master === 'function' &&\n router.currentRoute.route.master(app, router))) &&\n (router.currentRoute.route === route.route.masterRoute ||\n router.currentRoute.route.path === route.route.masterRoute.path)\n ) {\n preloadMaster = false;\n }\n if (\n router.currentRoute.route.masterRoute &&\n (router.currentRoute.route.masterRoute === route.route.masterRoute ||\n router.currentRoute.route.masterRoute.path === route.route.masterRoute.path)\n ) {\n preloadMaster = false;\n masterLoaded = true;\n }\n }\n if (preloadMaster || (masterLoaded && navigateOptions.reloadAll)) {\n router.navigate(\n { path: route.route.masterRoute.path, 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() {\n router.navigate(\n navigateParams,\n 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 },\n );\n return router;\n }\n }\n\n processRouteQueue.call(\n router,\n route,\n router.currentRoute,\n () => {\n if (route.route.modules) {\n app\n .loadModules(\n Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules],\n )\n .then(() => {\n resolve();\n })\n .catch(() => {\n reject();\n });\n } else {\n resolve();\n }\n },\n () => {\n reject();\n },\n 'forward',\n );\n\n // Return Router\n return router;\n}\nexport { refreshPage, navigate };\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport asyncComponent from './async-component.js';\n\nfunction tabLoad(tabRoute, loadOptions = {}) {\n const router = this;\n const options = extend(\n {\n animate: router.params.animate,\n browserHistory: true,\n history: true,\n parentPageEl: null,\n preload: false,\n on: {},\n },\n loadOptions,\n );\n\n let currentRoute;\n let previousRoute;\n if (options.route) {\n // Set Route\n if (!options.preload && options.route !== router.currentRoute) {\n previousRoute = router.previousRoute;\n router.currentRoute = options.route;\n }\n if (options.preload) {\n currentRoute = options.route;\n previousRoute = router.currentRoute;\n } else {\n currentRoute = router.currentRoute;\n if (!previousRoute) previousRoute = router.previousRoute;\n }\n\n // Update Browser History\n if (router.params.browserHistory && options.browserHistory && !options.reloadPrevious) {\n History[router.params.browserHistoryTabs](\n router.view.id,\n {\n url: options.route.url,\n },\n (router.params.browserHistoryRoot || '') +\n router.params.browserHistorySeparator +\n options.route.url,\n );\n }\n\n // Update Router History\n if (options.history) {\n router.history[Math.max(router.history.length - 1, 0)] = options.route.url;\n router.saveHistory();\n }\n }\n\n // Show Tab\n const $parentPageEl = $(options.parentPageEl || router.currentPageEl);\n let tabEl;\n if ($parentPageEl.length && $parentPageEl.find(`#${tabRoute.id}`).length) {\n tabEl = $parentPageEl.find(`#${tabRoute.id}`).eq(0);\n } else if (router.view.selector) {\n tabEl = `${router.view.selector} #${tabRoute.id}`;\n } else {\n tabEl = `#${tabRoute.id}`;\n }\n const tabShowResult = router.app.tab.show({\n tabEl,\n animate: options.animate,\n tabRoute: options.route,\n });\n\n const { $newTabEl, $oldTabEl, animated, onTabsChanged } = tabShowResult;\n\n if ($newTabEl && $newTabEl.parents('.page').length > 0 && options.route) {\n const tabParentPageData = $newTabEl.parents('.page')[0].f7Page;\n if (tabParentPageData && options.route) {\n tabParentPageData.route = options.route;\n }\n }\n\n // Tab Content Loaded\n function onTabLoaded(contentEl) {\n // Remove theme elements\n router.removeThemeElements($newTabEl);\n\n let tabEventTarget = $newTabEl;\n if (typeof contentEl !== 'string') tabEventTarget = $(contentEl);\n\n tabEventTarget.trigger('tab:init tab:mounted', tabRoute);\n router.emit('tabInit tabMounted', $newTabEl[0], tabRoute);\n\n if ($oldTabEl && $oldTabEl.length) {\n if (animated) {\n onTabsChanged(() => {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n if (router.params.unloadTabContent) {\n router.tabRemove($oldTabEl, $newTabEl, tabRoute);\n }\n });\n } else {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n if (router.params.unloadTabContent) {\n router.tabRemove($oldTabEl, $newTabEl, tabRoute);\n }\n }\n }\n }\n\n if ($newTabEl[0].f7RouterTabLoaded) {\n if (!$oldTabEl || !$oldTabEl.length) return router;\n if (animated) {\n onTabsChanged(() => {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n });\n } else {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n }\n return router;\n }\n\n // Load Tab Content\n function loadTab(loadTabParams, loadTabOptions) {\n // Load Tab Props\n const { url, content, el, component, componentUrl } = loadTabParams;\n // Component/Template Callbacks\n function resolve(contentEl) {\n router.allowPageChange = true;\n if (!contentEl) return;\n if (typeof contentEl === 'string') {\n $newTabEl.html(contentEl);\n } else {\n $newTabEl.html('');\n if (contentEl.f7Component) {\n contentEl.f7Component.mount((componentEl) => {\n $newTabEl.append(componentEl);\n });\n } else {\n $newTabEl.append(contentEl);\n }\n }\n $newTabEl[0].f7RouterTabLoaded = true;\n onTabLoaded(contentEl);\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (content) {\n resolve(content);\n } else if (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,\n componentUrl,\n options: loadTabOptions,\n resolve,\n 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 router\n .xhrRequest(url, loadTabOptions)\n .then((tabContent) => {\n resolve(tabContent);\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n }\n }\n\n let hasContentLoadProp;\n 'url content component el componentUrl'.split(' ').forEach((tabLoadProp) => {\n if (tabRoute[tabLoadProp]) {\n hasContentLoadProp = true;\n loadTab({ [tabLoadProp]: tabRoute[tabLoadProp] }, options);\n }\n });\n\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n loadTab(resolveParams, extend(options, resolveOptions));\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (tabRoute.async) {\n tabRoute.async.call(router, {\n 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}\nfunction tabRemove($oldTabEl, $newTabEl, tabRoute) {\n const router = this;\n\n let hasTabComponentChild;\n if ($oldTabEl[0]) {\n $oldTabEl[0].f7RouterTabLoaded = false;\n delete $oldTabEl[0].f7RouterTabLoaded;\n }\n $oldTabEl.children().each((tabChild) => {\n if (tabChild.f7Component) {\n hasTabComponentChild = true;\n $(tabChild).trigger('tab:beforeremove', tabRoute);\n tabChild.f7Component.destroy();\n }\n });\n if (!hasTabComponentChild) {\n $oldTabEl.trigger('tab:beforeremove', tabRoute);\n }\n router.emit('tabBeforeRemove', $oldTabEl[0], $newTabEl[0], tabRoute);\n router.removeTabContent($oldTabEl[0], tabRoute);\n}\n\nexport { tabLoad, tabRemove };\n","import { extend, nextTick } from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport asyncComponent from './async-component.js';\n\nfunction modalLoad(modalType, route, loadOptions = {}, direction) {\n const router = this;\n const app = router.app;\n const isPanel = modalType === 'panel';\n const modalOrPanel = isPanel ? 'panel' : 'modal';\n\n const options = extend(\n {\n animate: router.params.animate,\n browserHistory: true,\n history: true,\n on: {},\n once: {},\n },\n loadOptions,\n );\n\n const modalParams = extend({}, route.route[modalType]);\n const modalRoute = route.route;\n\n const routeCallback = (modal, name) => {\n const { on, once } = options;\n let callback;\n if (name === 'open') {\n callback = on.modalOpen || once.modalOpen || on.panelOpen || once.panelOpen;\n }\n if (name === 'close') {\n callback = on.modalClose || once.modalClose || on.panelClose || once.panelClose;\n }\n if (name === 'closed') {\n callback = on.modalClosed || once.modalClosed || on.panelClosed || once.panelClosed;\n }\n if (callback) callback(modal);\n };\n\n function onModalLoaded() {\n // Create Modal\n const modal = app[modalType].create(modalParams);\n modalRoute.modalInstance = modal;\n\n const hasEl = modal.el;\n\n function closeOnSwipeBack() {\n modal.close();\n }\n modal.on(`${modalOrPanel}Open`, () => {\n if (!hasEl) {\n // Remove theme elements\n router.removeThemeElements(modal.el);\n\n // Emit events\n modal.$el.trigger(\n `${modalType.toLowerCase()}:init ${modalType.toLowerCase()}:mounted`,\n route,\n modal,\n );\n router.emit(\n `${!isPanel ? 'modalInit' : ''} ${modalType}Init ${modalType}Mounted`,\n modal.el,\n route,\n modal,\n );\n }\n router.once('swipeBackMove', closeOnSwipeBack);\n routeCallback(modal, 'open');\n });\n modal.on(`${modalOrPanel}Close`, () => {\n router.off('swipeBackMove', closeOnSwipeBack);\n if (!modal.closeByRouter) {\n router.back();\n }\n routeCallback(modal, 'close');\n });\n\n modal.on(`${modalOrPanel}Closed`, () => {\n modal.$el.trigger(`${modalType.toLowerCase()}:beforeremove`, route, modal);\n modal.emit(\n `${!isPanel ? 'modalBeforeRemove ' : ''}${modalType}BeforeRemove`,\n modal.el,\n route,\n modal,\n );\n const modalComponent = modal.el.f7Component;\n routeCallback(modal, 'closed');\n if (modalComponent) {\n modalComponent.destroy();\n }\n nextTick(() => {\n if (modalComponent || modalParams.component || modalParams.asyncComponent) {\n router.removeModal(modal.el);\n }\n modal.destroy();\n delete modal.route;\n delete modalRoute.modalInstance;\n });\n });\n\n if (options.route) {\n // Update Browser History\n if (router.params.browserHistory && options.browserHistory) {\n History.push(\n router.view.id,\n {\n url: options.route.url,\n modal: modalType,\n },\n (router.params.browserHistoryRoot || '') +\n router.params.browserHistorySeparator +\n options.route.url,\n );\n }\n\n // Set Route\n if (options.route !== router.currentRoute) {\n modal.route = extend(options.route, { modal });\n router.currentRoute = modal.route;\n }\n\n // Update Router History\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);\n\n // Emit events\n modal.$el.trigger(\n `${modalType.toLowerCase()}:init ${modalType.toLowerCase()}:mounted`,\n route,\n modal,\n );\n router.emit(\n `${modalOrPanel}Init ${modalType}Init ${modalType}Mounted`,\n modal.el,\n route,\n modal,\n );\n }\n\n // Open\n modal.open(options.animate === false || options.animate === true ? options.animate : undefined);\n }\n\n // Load Modal Content\n function loadModal(loadModalParams, loadModalOptions) {\n // Load Modal Props\n const { url, content, component, componentUrl } = loadModalParams;\n\n // Component/Template Callbacks\n function resolve(contentEl) {\n if (contentEl) {\n if (typeof contentEl === 'string') {\n modalParams.content = contentEl;\n } else if (contentEl.f7Component) {\n contentEl.f7Component.mount((componentEl) => {\n modalParams.el = componentEl;\n app.$el.append(componentEl);\n });\n } else {\n modalParams.el = contentEl;\n }\n onModalLoaded();\n }\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (content) {\n resolve(content);\n } else if (component || componentUrl) {\n // Load from component (F7/Vue/React/...)\n try {\n router.modalComponentLoader({\n rootEl: app.el,\n component,\n componentUrl,\n options: loadModalOptions,\n resolve,\n 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 router\n .xhrRequest(url, loadModalOptions)\n .then((modalContent) => {\n modalParams.content = modalContent;\n onModalLoaded();\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n } else {\n onModalLoaded();\n }\n }\n\n let foundLoadProp;\n 'url content component el componentUrl template'.split(' ').forEach((modalLoadProp) => {\n if (modalParams[modalLoadProp] && !foundLoadProp) {\n foundLoadProp = true;\n loadModal({ [modalLoadProp]: modalParams[modalLoadProp] }, options);\n }\n });\n if (!foundLoadProp && modalType === 'actions') {\n onModalLoaded();\n }\n\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n loadModal(resolveParams, extend(options, resolveOptions));\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (modalParams.async) {\n modalParams.async.call(router, {\n router,\n to: options.route,\n from: router.currentRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n direction,\n app,\n });\n }\n if (modalParams.asyncComponent) {\n asyncComponent(router, modalParams.asyncComponent, asyncResolve, asyncReject);\n }\n return router;\n}\nfunction modalRemove(modal) {\n extend(modal, { closeByRouter: true });\n modal.close();\n}\n\nexport { modalLoad, modalRemove };\n","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, parseUrlQuery } from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport History from '../../shared/history.js';\nimport redirect from './redirect.js';\nimport processRouteQueue from './process-route-queue.js';\nimport appRouterCheck from './app-router-check.js';\nimport asyncComponent from './async-component.js';\n\nfunction backward(router, el, backwardOptions) {\n const device = getDevice();\n const document = getDocument();\n const $el = $(el);\n const app = router.app;\n const view = router.view;\n\n const options = extend(\n false,\n {\n animate: router.params.animate,\n browserHistory: true,\n replaceState: false,\n },\n backwardOptions,\n );\n\n const masterDetailEnabled = router.params.masterDetailBreakpoint > 0;\n const isMaster =\n masterDetailEnabled &&\n options.route &&\n options.route.route &&\n (options.route.route.master === true ||\n (typeof options.route.route.master === 'function' &&\n options.route.route.master(app, router)));\n let masterPageEl;\n let masterPageRemoved;\n\n const dynamicNavbar = router.dynamicNavbar;\n\n const $newPage = $el;\n const $oldPage = router.$el.children('.page-current');\n const initialPreload = $oldPage.length === 0 && options.preload;\n const currentIsMaster = masterDetailEnabled && $oldPage.hasClass('page-master');\n\n if ($newPage.length) {\n // Remove theme elements\n router.removeThemeElements($newPage);\n }\n\n let $navbarsEl;\n let $newNavbarEl;\n let $oldNavbarEl;\n\n if (dynamicNavbar) {\n $newNavbarEl = $newPage.children('.navbar');\n $navbarsEl = router.$navbarsEl;\n if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) {\n // Try from pageData\n $newNavbarEl = $newPage[0].f7Page.$navbarEl;\n }\n $oldNavbarEl = $navbarsEl.find('.navbar-current');\n }\n\n router.allowPageChange = false;\n if ($newPage.length === 0 || ($oldPage.length === 0 && !options.preload)) {\n router.allowPageChange = true;\n return router;\n }\n\n // Remove theme elements\n router.removeThemeElements($newPage);\n\n // Save Keep Alive Cache\n if (\n options.route &&\n options.route.route &&\n options.route.route.keepAlive &&\n !options.route.route.keepAliveData\n ) {\n options.route.route.keepAliveData = {\n pageEl: $el[0],\n };\n }\n\n // Pages In View\n let isDetail;\n let isDetailRoot;\n if (masterDetailEnabled) {\n const $pagesInView = router.$el\n .children('.page:not(.stacked)')\n .filter((pageInView) => pageInView !== $newPage[0]);\n\n // Find Detail' master page\n for (let 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 =\n !isMaster &&\n masterPageEl &&\n router.history.indexOf(options.route.url) >\n router.history.indexOf(masterPageEl.f7Page.route.url);\n\n if (\n !isDetail &&\n !isMaster &&\n masterPageEl &&\n masterPageEl.f7Page &&\n options.route.route.masterRoute\n ) {\n isDetail = options.route.route.masterRoute.path === masterPageEl.f7Page.route.route.path;\n }\n }\n if (isDetail && masterPageEl && masterPageEl.f7Page) {\n isDetailRoot =\n router.history.indexOf(options.route.url) -\n router.history.indexOf(masterPageEl.f7Page.route.url) ===\n 1;\n }\n\n // New Page\n $newPage\n .addClass(\n `page-${initialPreload ? 'current' : 'previous'}${isMaster ? ' page-master' : ''}${\n isDetail ? ' page-master-detail' : ''\n }${isDetailRoot ? ' page-master-detail-root' : ''}`,\n )\n .removeClass('stacked')\n .removeAttr('aria-hidden')\n .trigger('page:unstack')\n .trigger('page:position', { position: initialPreload ? 'current' : 'previous' });\n router.emit('pageUnstack', $newPage[0]);\n router.emit('pagePosition', $newPage[0], initialPreload ? 'current' : 'previous');\n if (isMaster || isDetail) {\n $newPage.trigger('page:role', { role: isMaster ? 'master' : 'detail', root: !!isDetailRoot });\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\n .addClass(\n `navbar-${initialPreload ? 'current' : 'previous'}${isMaster ? ' navbar-master' : ''}${\n isDetail ? ' navbar-master-detail' : ''\n }${isDetailRoot ? ' navbar-master-detail-root' : ''}`,\n )\n .removeClass('stacked')\n .removeAttr('aria-hidden');\n $newNavbarEl.trigger('navbar:position', { position: initialPreload ? 'current' : 'previous' });\n router.emit('navbarPosition', $newNavbarEl[0], initialPreload ? 'current' : 'previous');\n if (isMaster || isDetailRoot) {\n router.emit('navbarRole', $newNavbarEl[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot,\n });\n }\n }\n\n // Remove previous page in case of \"forced\"\n let backIndex;\n if (options.force) {\n if (\n $oldPage.prev('.page-previous:not(.stacked)').length > 0 ||\n $oldPage.prev('.page-previous').length === 0\n ) {\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((pageToRemove) => {\n const $pageToRemove = $(pageToRemove);\n let $navbarToRemove;\n if (dynamicNavbar) {\n // $navbarToRemove = $oldNavbarEl.prevAll('.navbar-previous').eq(index);\n $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));\n }\n if ($pageToRemove[0] !== $newPage[0] && $pageToRemove.index() > $newPage.index()) {\n if (router.initialPages.indexOf($pageToRemove[0]) >= 0) {\n $pageToRemove.addClass('stacked');\n $pageToRemove.trigger('page:stack');\n router.emit('pageStack', $pageToRemove[0]);\n if (dynamicNavbar) {\n $navbarToRemove.addClass('stacked');\n }\n } else {\n router.pageCallback(\n 'beforeRemove',\n $pageToRemove,\n $navbarToRemove,\n 'previous',\n undefined,\n options,\n );\n if ($pageToRemove[0] === masterPageEl) {\n masterPageRemoved = true;\n }\n router.removePage($pageToRemove);\n if (dynamicNavbar && $navbarToRemove.length > 0) {\n router.removeNavbar($navbarToRemove);\n }\n }\n }\n });\n } else {\n const $pageToRemove = $oldPage.prev('.page-previous:not(.stacked)');\n let $navbarToRemove;\n if (dynamicNavbar) {\n // $navbarToRemove = $oldNavbarEl.prev('.navbar-inner:not(.stacked)');\n $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));\n }\n if (router.params.stackPages && router.initialPages.indexOf($pageToRemove[0]) >= 0) {\n $pageToRemove.addClass('stacked');\n $pageToRemove.trigger('page:stack');\n router.emit('pageStack', $pageToRemove[0]);\n $navbarToRemove.addClass('stacked');\n } else if ($pageToRemove.length > 0) {\n router.pageCallback(\n 'beforeRemove',\n $pageToRemove,\n $navbarToRemove,\n 'previous',\n undefined,\n options,\n );\n if ($pageToRemove[0] === masterPageEl) {\n masterPageRemoved = true;\n }\n router.removePage($pageToRemove);\n if (dynamicNavbar && $navbarToRemove.length) {\n router.removeNavbar($navbarToRemove);\n }\n }\n }\n }\n }\n\n // Insert new page\n const newPageInDom = $newPage.parents(document).length > 0;\n const f7Component = $newPage[0].f7Component;\n\n function insertPage() {\n if (initialPreload) {\n if (!newPageInDom && f7Component) {\n f7Component.mount((componentEl) => {\n router.$el.append(componentEl);\n });\n } else {\n router.$el.append($newPage);\n }\n }\n if ($newPage.next($oldPage).length === 0) {\n if (!newPageInDom && f7Component) {\n f7Component.mount((componentEl) => {\n $(componentEl).insertBefore($oldPage);\n });\n } else {\n $newPage.insertBefore($oldPage);\n }\n }\n if (dynamicNavbar && $newNavbarEl.length) {\n if ($newNavbarEl.find('.title-large').length) {\n $newNavbarEl.addClass('navbar-large');\n }\n $newNavbarEl.insertBefore($oldNavbarEl);\n if ($oldNavbarEl.length > 0) {\n $newNavbarEl.insertBefore($oldNavbarEl);\n } else {\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n $navbarsEl.append($newNavbarEl);\n }\n }\n if (!newPageInDom) {\n router.pageCallback(\n 'mounted',\n $newPage,\n $newNavbarEl,\n 'previous',\n 'current',\n options,\n $oldPage,\n );\n } else if (\n options.route &&\n options.route.route &&\n options.route.route.keepAlive &&\n !$newPage[0].f7PageMounted\n ) {\n $newPage[0].f7PageMounted = true;\n router.pageCallback(\n 'mounted',\n $newPage,\n $newNavbarEl,\n 'previous',\n 'current',\n options,\n $oldPage,\n );\n }\n }\n\n if (options.preload) {\n // Insert Page\n insertPage();\n // Tab route\n if (options.route.route.tab) {\n router.tabLoad(\n options.route.route.tab,\n 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 if (dynamicNavbar) {\n $(app.navbar.getElByPage($newPage)).removeClass('navbar-master-stacked');\n router.emit('navbarMasterUnstack', app.navbar.getElByPage($newPage));\n }\n }\n // Page init and before init events\n router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);\n if (initialPreload) {\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'current', undefined, options);\n router.pageCallback('afterIn', $newPage, $newNavbarEl, 'current', undefined, options);\n }\n const $previousPages = $newPage.prevAll('.page-previous:not(.stacked):not(.page-master)');\n if ($previousPages.length > 0) {\n $previousPages.each((pageToRemove) => {\n const $pageToRemove = $(pageToRemove);\n let $navbarToRemove;\n if (dynamicNavbar) {\n // $navbarToRemove = $newNavbarEl.prevAll('.navbar-previous:not(.stacked)').eq(index);\n $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));\n }\n if (router.params.stackPages && router.initialPages.indexOf(pageToRemove) >= 0) {\n $pageToRemove.addClass('stacked');\n $pageToRemove.trigger('page:stack');\n router.emit('pageStack', $pageToRemove[0]);\n if (dynamicNavbar) {\n $navbarToRemove.addClass('stacked');\n }\n } else {\n router.pageCallback(\n 'beforeRemove',\n $pageToRemove,\n $navbarToRemove,\n 'previous',\n undefined,\n );\n router.removePage($pageToRemove);\n if (dynamicNavbar && $navbarToRemove.length) {\n router.removeNavbar($navbarToRemove);\n }\n }\n });\n }\n router.allowPageChange = true;\n return router;\n }\n\n // History State\n if (!(device.ie || device.edge || (device.firefox && !device.ios))) {\n if (router.params.browserHistory && options.browserHistory) {\n if (options.replaceState) {\n const browserHistoryRoot = router.params.browserHistoryRoot || '';\n History.replace(\n view.id,\n {\n url: options.route.url,\n },\n browserHistoryRoot + router.params.browserHistorySeparator + options.route.url,\n );\n } else if (backIndex) {\n History.go(-backIndex);\n } else {\n History.back();\n }\n }\n }\n\n // Update History\n if (options.replaceState) {\n router.history[router.history.length - 1] = options.route.url;\n } else {\n if (router.history.length === 1) {\n router.history.unshift(router.url);\n }\n router.history.pop();\n }\n router.saveHistory();\n\n // Current Page & Navbar\n router.currentPageEl = $newPage[0];\n if (dynamicNavbar && $newNavbarEl.length) {\n router.currentNavbarEl = $newNavbarEl[0];\n } else {\n delete router.currentNavbarEl;\n }\n\n // Current Route\n router.currentRoute = options.route;\n\n // History State\n if (device.ie || device.edge || (device.firefox && !device.ios)) {\n if (router.params.browserHistory && options.browserHistory) {\n if (options.replaceState) {\n const browserHistoryRoot = router.params.browserHistoryRoot || '';\n History.replace(\n view.id,\n {\n url: options.route.url,\n },\n browserHistoryRoot + router.params.browserHistorySeparator + options.route.url,\n );\n } else if (backIndex) {\n History.go(-backIndex);\n } else {\n History.back();\n }\n }\n }\n\n // Insert Page\n insertPage();\n\n // Load Tab\n if (options.route.route.tab) {\n router.tabLoad(\n options.route.route.tab,\n extend({}, options, {\n history: false,\n browserHistory: false,\n }),\n );\n }\n\n // Check master detail\n\n if (masterDetailEnabled && (currentIsMaster || masterPageRemoved)) {\n view.checkMasterDetailBreakpoint(false);\n }\n\n // Page init and before init events\n router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);\n\n // Before animation callback\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'next', options);\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'previous', 'current', options);\n\n // Animation\n function afterAnimation() {\n // Set classes\n router.setPagePosition($newPage, 'current', false);\n router.setPagePosition($oldPage, 'next', true);\n if (dynamicNavbar) {\n router.setNavbarPosition($newNavbarEl, 'current', false);\n router.setNavbarPosition($oldNavbarEl, 'next', true);\n }\n\n // After animation event\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'next', options);\n router.pageCallback('afterIn', $newPage, $newNavbarEl, 'previous', 'current', options);\n\n // Remove Old Page\n if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) {\n $oldPage.addClass('stacked');\n $oldPage.trigger('page:stack');\n router.emit('pageStack', $oldPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else {\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'next', undefined, options);\n router.removePage($oldPage);\n if (dynamicNavbar && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n\n router.allowPageChange = true;\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n\n // Preload previous page\n const preloadPreviousPage =\n router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history[router.history.length - 2] && !isMaster) {\n router.back(router.history[router.history.length - 2], { preload: true });\n }\n if (router.params.browserHistory) {\n History.clearRouterQueue();\n }\n }\n\n function setPositionClasses() {\n router.setPagePosition($oldPage, 'current');\n router.setPagePosition($newPage, 'previous', false);\n if (dynamicNavbar) {\n router.setNavbarPosition($oldNavbarEl, 'current');\n router.setNavbarPosition($newNavbarEl, 'previous', false);\n }\n }\n\n if (options.animate && !(currentIsMaster && app.width >= router.params.masterDetailBreakpoint)) {\n let transition = router.params.transition;\n if ($oldPage[0] && $oldPage[0].f7PageTransition) {\n transition = $oldPage[0].f7PageTransition;\n delete $oldPage[0].f7PageTransition;\n }\n if (options.transition) transition = options.transition;\n if (!transition && router.previousRoute && router.previousRoute.route) {\n transition = router.previousRoute.route.transition;\n }\n if (\n !transition &&\n router.previousRoute &&\n router.previousRoute.route &&\n router.previousRoute.route.options\n ) {\n transition = router.previousRoute.route.options.transition;\n }\n setPositionClasses();\n router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'backward', transition, () => {\n afterAnimation();\n });\n } else {\n afterAnimation();\n }\n\n return router;\n}\nfunction loadBack(router, backParams, backOptions, ignorePageChange) {\n if (!router.allowPageChange && !ignorePageChange) return router;\n const params = backParams;\n const options = backOptions;\n const { url, content, el, pageName, component, componentUrl } = params;\n\n if (\n options.route.url &&\n router.url === options.route.url &&\n !(options.reloadCurrent || options.reloadPrevious) &&\n !router.params.allowDuplicateUrls\n ) {\n return false;\n }\n\n if (!options.route && url) {\n options.route = router.parseRouteUrl(url);\n }\n\n // Component Callbacks\n function resolve(pageEl, newOptions) {\n return backward(router, pageEl, extend(options, newOptions));\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (url || componentUrl || component) {\n router.allowPageChange = false;\n }\n\n // Proceed\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,\n componentUrl,\n options,\n resolve,\n 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 router\n .xhrRequest(url, options)\n .then((pageContent) => {\n backward(router, router.getPageEl(pageContent), options);\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n }\n return router;\n}\nfunction back(...args) {\n const router = this;\n const device = getDevice();\n if (router.swipeBackActive) return router;\n let navigateUrl;\n let navigateOptions;\n let route;\n if (typeof args[0] === 'object') {\n navigateOptions = args[0] || {};\n } else {\n navigateUrl = args[0];\n navigateOptions = args[1] || {};\n }\n\n const { name, params, query } = navigateOptions;\n if (name) {\n navigateUrl = router.generateUrl({ name, params, query });\n if (navigateUrl) {\n return router.back(\n navigateUrl,\n extend({}, navigateOptions, {\n name: null,\n params: null,\n query: null,\n }),\n );\n }\n return router;\n }\n\n const app = router.app;\n appRouterCheck(router, 'back');\n\n let currentRouteIsModal = router.currentRoute.modal;\n let modalType;\n if (!currentRouteIsModal) {\n 'popup popover sheet loginScreen actions customModal panel'\n .split(' ')\n .forEach((modalLoadProp) => {\n if (router.currentRoute.route[modalLoadProp]) {\n currentRouteIsModal = true;\n modalType = modalLoadProp;\n }\n });\n }\n if (currentRouteIsModal && !navigateOptions.preload) {\n const modalToClose =\n router.currentRoute.modal || router.currentRoute.route.modalInstance || app[modalType].get();\n const previousUrl = router.history[router.history.length - 2];\n let previousRoute;\n // check if previous route is modal too\n if (modalToClose && modalToClose.$el) {\n const prevOpenedModals = modalToClose.$el.prevAll('.modal-in');\n if (prevOpenedModals.length && prevOpenedModals[0].f7Modal) {\n const modalEl = prevOpenedModals[0];\n // check if current router not inside of the modalEl\n if (!router.$el.parents(modalEl).length) {\n previousRoute = modalEl.f7Modal.route;\n }\n }\n }\n if (!previousRoute) {\n previousRoute = router.findMatchingRoute(previousUrl);\n }\n\n if (!previousRoute && previousUrl) {\n previousRoute = {\n url: previousUrl,\n path: previousUrl.split('?')[0],\n query: parseUrlQuery(previousUrl),\n route: {\n path: previousUrl.split('?')[0],\n url: previousUrl,\n },\n };\n }\n if (!navigateUrl || navigateUrl.replace(/[# ]/g, '').trim().length === 0) {\n if (!previousRoute || !modalToClose) {\n return router;\n }\n }\n const forceOtherUrl = navigateOptions.force && previousRoute && navigateUrl;\n if (previousRoute && modalToClose) {\n const isBrokenBrowserHistory = device.ie || device.edge || (device.firefox && !device.ios);\n const needHistoryBack =\n router.params.browserHistory && navigateOptions.browserHistory !== false;\n const currentRouteWithoutBrowserHistory =\n router.currentRoute &&\n router.currentRoute.route &&\n router.currentRoute.route.options &&\n router.currentRoute.route.options.browserHistory === false;\n if (needHistoryBack && !isBrokenBrowserHistory && !currentRouteWithoutBrowserHistory) {\n History.back();\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 if (forceOtherUrl) {\n router.navigate(navigateUrl, { reloadCurrent: true });\n }\n } else if (modalToClose) {\n router.modalRemove(modalToClose);\n if (navigateUrl) {\n router.navigate(navigateUrl, { reloadCurrent: true });\n }\n }\n return router;\n }\n let $previousPage = router.$el\n .children('.page-current')\n .prevAll('.page-previous:not(.page-master)')\n .eq(0);\n\n let skipMaster;\n if (router.params.masterDetailBreakpoint > 0) {\n const classes = [];\n router.$el.children('.page').each((pageEl) => {\n classes.push(pageEl.className);\n });\n\n const $previousMaster = router.$el.children('.page-current').prevAll('.page-master').eq(0);\n if ($previousMaster.length) {\n const expectedPreviousPageUrl = router.history[router.history.length - 2];\n const expectedPreviousPageRoute = router.findMatchingRoute(expectedPreviousPageUrl);\n if (\n expectedPreviousPageRoute &&\n $previousMaster[0].f7Page &&\n expectedPreviousPageRoute.route === $previousMaster[0].f7Page.route.route\n ) {\n $previousPage = $previousMaster;\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 (\n router.params.browserHistory &&\n $previousPage[0].f7Page &&\n router.history[router.history.length - 2] !== $previousPage[0].f7Page.route.url\n ) {\n router.back(\n router.history[router.history.length - 2],\n extend(navigateOptions, { force: true }),\n );\n return router;\n }\n const previousPageRoute = $previousPage[0].f7Page.route;\n if (navigateOptions.preload && $previousPage.hasClass('stacked')) {\n loadBack(\n router,\n { el: $previousPage },\n extend(navigateOptions, {\n route: previousPageRoute,\n }),\n );\n return router;\n }\n processRouteQueue.call(\n router,\n previousPageRoute,\n router.currentRoute,\n () => {\n loadBack(\n router,\n { el: $previousPage },\n extend(navigateOptions, {\n route: previousPageRoute,\n }),\n );\n },\n () => {},\n 'backward',\n );\n\n return router;\n }\n\n // Navigate URL\n if (navigateUrl === '#') {\n navigateUrl = undefined;\n }\n if (navigateUrl && navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) {\n navigateUrl = ((router.path || '/') + navigateUrl).replace('//', '/');\n }\n if (!navigateUrl && router.history.length > 1) {\n navigateUrl = router.history[router.history.length - 2];\n }\n if (skipMaster && !navigateOptions.force && router.history[router.history.length - 3]) {\n return router.back(\n router.history[router.history.length - 3],\n extend({}, navigateOptions || {}, {\n force: true,\n animate: false,\n }),\n );\n }\n if (skipMaster && !navigateOptions.force) {\n return router;\n }\n\n // Find route to load\n route = router.findMatchingRoute(navigateUrl);\n if (!route) {\n if (navigateUrl) {\n route = {\n url: navigateUrl,\n path: navigateUrl.split('?')[0],\n query: parseUrlQuery(navigateUrl),\n route: {\n path: navigateUrl.split('?')[0],\n url: navigateUrl,\n },\n };\n }\n }\n if (!route) {\n return router;\n }\n\n if (route.route.redirect) {\n return redirect.call(router, 'backward', route, navigateOptions);\n }\n\n const options = {};\n if (route.route.options) {\n extend(options, route.route.options, navigateOptions);\n } else {\n extend(options, navigateOptions);\n }\n options.route = route;\n\n let backForceLoaded;\n if (options.force && router.params.stackPages) {\n router.$el.children('.page-previous.stacked').each((pageEl) => {\n if (pageEl.f7Page && pageEl.f7Page.route && pageEl.f7Page.route.url === route.url) {\n backForceLoaded = true;\n loadBack(router, { el: pageEl }, options);\n }\n });\n if (backForceLoaded) {\n return router;\n }\n }\n function resolve() {\n let routerLoaded = false;\n if (route.route.keepAlive && route.route.keepAliveData) {\n loadBack(router, { el: route.route.keepAliveData.pageEl }, options);\n routerLoaded = true;\n }\n 'url content component pageName el componentUrl'.split(' ').forEach((pageLoadProp) => {\n if (route.route[pageLoadProp] && !routerLoaded) {\n routerLoaded = true;\n loadBack(router, { [pageLoadProp]: route.route[pageLoadProp] }, options);\n }\n });\n if (routerLoaded) return;\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n router.allowPageChange = false;\n loadBack(router, resolveParams, extend(options, resolveOptions), true);\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (route.route.async) {\n router.allowPageChange = false;\n route.route.async.call(router, {\n router,\n to: route,\n from: router.currentRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n direction: 'backward',\n app,\n });\n }\n if (route.route.asyncComponent) {\n asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject);\n }\n }\n function reject() {\n router.allowPageChange = true;\n }\n\n if (options.preload) {\n resolve();\n } else {\n processRouteQueue.call(\n router,\n route,\n router.currentRoute,\n () => {\n if (route.route.modules) {\n app\n .loadModules(\n Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules],\n )\n .then(() => {\n resolve();\n })\n .catch(() => {\n reject();\n });\n } else {\n resolve();\n }\n },\n () => {\n reject();\n },\n 'backward',\n );\n }\n\n // Return Router\n return router;\n}\nexport { back };\n","import $ from '../../shared/dom7.js';\nimport appRouterCheck from './app-router-check.js';\n\nfunction clearPreviousPages(router) {\n appRouterCheck(router, 'clearPreviousPages');\n const app = router.app;\n const dynamicNavbar = router.dynamicNavbar;\n\n const $pagesToRemove = router.$el.children('.page').filter((pageInView) => {\n if (router.currentRoute && (router.currentRoute.modal || router.currentRoute.panel))\n return true;\n return pageInView !== router.currentPageEl;\n });\n\n $pagesToRemove.each((pageEl) => {\n const $oldPageEl = $(pageEl);\n const $oldNavbarEl = $(app.navbar.getElByPage($oldPageEl));\n if (router.params.stackPages && router.initialPages.indexOf($oldPageEl[0]) >= 0) {\n $oldPageEl.addClass('stacked');\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else {\n // Page remove event\n router.pageCallback('beforeRemove', $oldPageEl, $oldNavbarEl, 'previous', undefined, {});\n router.removePage($oldPageEl);\n if (dynamicNavbar && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n });\n}\n\nfunction clearPreviousHistory() {\n const router = this;\n appRouterCheck(router, 'clearPreviousHistory');\n const url = router.history[router.history.length - 1];\n\n clearPreviousPages(router);\n\n router.history = [url];\n router.view.history = [url];\n router.saveHistory();\n}\n\nexport { clearPreviousHistory }; // eslint-disable-line\n","import { getWindow, getDocument } from 'ssr-window';\nimport { pathToRegexp, compile } from 'path-to-regexp';\nimport $ from '../../shared/dom7.js';\nimport Framework7Class from '../../shared/class.js';\nimport {\n extend,\n nextFrame,\n parseUrlQuery,\n serializeObject,\n now,\n eventNameToColonCase,\n} from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport SwipeBack from './swipe-back.js';\n\nimport { refreshPage, navigate } from './navigate.js';\nimport { tabLoad, tabRemove } from './tab.js';\nimport { modalLoad, modalRemove } from './modal.js';\nimport { back } from './back.js';\nimport { clearPreviousHistory } from './clear-previous-history.js';\nimport appRouterCheck from './app-router-check.js';\n\nclass Router extends Framework7Class {\n constructor(app, view) {\n super({}, [typeof view === 'undefined' ? app : view]);\n const router = this;\n\n // Is App Router\n router.isAppRouter = typeof view === 'undefined';\n\n if (router.isAppRouter) {\n // App Router\n extend(false, router, {\n app,\n params: app.params.view,\n routes: app.routes || [],\n cache: app.cache,\n });\n } else {\n // View Router\n extend(false, router, {\n app,\n 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 }\n\n // Install Modules\n router.useModules();\n\n // AllowPageChage\n router.allowPageChange = true;\n\n // Current Route\n let currentRoute = {};\n let previousRoute = {};\n Object.defineProperty(router, 'currentRoute', {\n enumerable: true,\n configurable: true,\n set(newRoute = {}) {\n previousRoute = extend({}, currentRoute);\n currentRoute = newRoute;\n if (!currentRoute) return;\n router.url = currentRoute.url;\n router.emit('routeChange', newRoute, previousRoute, router);\n },\n get() {\n return currentRoute;\n },\n });\n Object.defineProperty(router, 'previousRoute', {\n enumerable: true,\n configurable: true,\n get() {\n return previousRoute;\n },\n set(newRoute) {\n previousRoute = newRoute;\n },\n });\n\n return router;\n }\n\n mount() {\n const router = this;\n const view = router.view;\n const document = getDocument();\n\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\n router.emit('local::mount routerMount', router);\n }\n\n animatableNavElements($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction) {\n const router = this;\n const dynamicNavbar = router.dynamicNavbar;\n const animateIcon = router.params.iosAnimateNavbarBackIcon;\n\n let newNavEls;\n let oldNavEls;\n function animatableNavEl($el, $navbarInner) {\n const isSliding = $el.hasClass('sliding') || $navbarInner.hasClass('sliding');\n const isSubnavbar = $el.hasClass('subnavbar');\n const needsOpacityTransition = isSliding ? !isSubnavbar : true;\n const $iconEl = $el.find('.back .icon');\n let isIconLabel;\n if (\n isSliding &&\n animateIcon &&\n $el.hasClass('left') &&\n $iconEl.length > 0 &&\n $iconEl.next('span').length\n ) {\n $el = $iconEl.next('span'); // eslint-disable-line\n isIconLabel = true;\n }\n return {\n $el,\n isIconLabel,\n leftOffset: $el[0].f7NavbarLeftOffset,\n rightOffset: $el[0].f7NavbarRightOffset,\n isSliding,\n isSubnavbar,\n needsOpacityTransition,\n };\n }\n if (dynamicNavbar) {\n newNavEls = [];\n oldNavEls = [];\n $newNavbarEl\n .children('.navbar-inner')\n .children('.left, .right, .title, .subnavbar')\n .each((navEl) => {\n const $navEl = $(navEl);\n if ($navEl.hasClass('left') && fromLarge && direction === 'forward') return;\n if ($navEl.hasClass('title') && toLarge) return;\n newNavEls.push(animatableNavEl($navEl, $newNavbarEl.children('.navbar-inner')));\n });\n if (\n !(\n $oldNavbarEl.hasClass('navbar-master') &&\n router.params.masterDetailBreakpoint > 0 &&\n router.app.width >= router.params.masterDetailBreakpoint\n )\n ) {\n $oldNavbarEl\n .children('.navbar-inner')\n .children('.left, .right, .title, .subnavbar')\n .each((navEl) => {\n const $navEl = $(navEl);\n if ($navEl.hasClass('left') && toLarge && !fromLarge && direction === 'forward') return;\n if ($navEl.hasClass('left') && toLarge && direction === 'backward') return;\n if ($navEl.hasClass('title') && fromLarge) {\n return;\n }\n oldNavEls.push(animatableNavEl($navEl, $oldNavbarEl.children('.navbar-inner')));\n });\n }\n [oldNavEls, newNavEls].forEach((navEls) => {\n navEls.forEach((navEl) => {\n const n = navEl;\n const { isSliding, $el } = navEl;\n const otherEls = navEls === oldNavEls ? newNavEls : oldNavEls;\n if (!(isSliding && $el.hasClass('title') && otherEls)) return;\n otherEls.forEach((otherNavEl) => {\n if (otherNavEl.isIconLabel) {\n const iconTextEl = otherNavEl.$el[0];\n n.leftOffset += iconTextEl ? iconTextEl.offsetLeft || 0 : 0;\n }\n });\n });\n });\n }\n\n return { newNavEls, oldNavEls };\n }\n\n animate($oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, transition, callback) {\n const router = this;\n if (router.params.animateCustom) {\n router.params.animateCustom.apply(router, [\n $oldPageEl,\n $newPageEl,\n $oldNavbarEl,\n $newNavbarEl,\n direction,\n callback,\n ]);\n return;\n }\n const dynamicNavbar = router.dynamicNavbar;\n const ios = router.app.theme === 'ios';\n if (transition) {\n const routerCustomTransitionClass = `router-transition-custom router-transition-${transition}-${direction}`;\n // Animate\n const onCustomTransitionDone = () => {\n router.$el.removeClass(routerCustomTransitionClass);\n if (dynamicNavbar && router.$navbarsEl.length) {\n if ($newNavbarEl) {\n router.$navbarsEl.prepend($newNavbarEl);\n }\n if ($oldNavbarEl) {\n router.$navbarsEl.prepend($oldNavbarEl);\n }\n }\n if (callback) callback();\n };\n\n (direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(onCustomTransitionDone);\n if (dynamicNavbar) {\n if ($newNavbarEl && $newPageEl) {\n router.setNavbarPosition($newNavbarEl, '');\n $newNavbarEl.removeClass('navbar-next navbar-previous navbar-current');\n $newPageEl.prepend($newNavbarEl);\n }\n if ($oldNavbarEl && $oldPageEl) {\n router.setNavbarPosition($oldNavbarEl, '');\n $oldNavbarEl.removeClass('navbar-next navbar-previous navbar-current');\n $oldPageEl.prepend($oldNavbarEl);\n }\n }\n\n router.$el.addClass(routerCustomTransitionClass);\n return;\n }\n\n // Router Animation class\n const routerTransitionClass = `router-transition-${direction} router-transition`;\n\n let newNavEls;\n let oldNavEls;\n\n let fromLarge;\n let toLarge;\n let toDifferent;\n\n let oldIsLarge;\n let newIsLarge;\n\n if (ios && dynamicNavbar) {\n const betweenMasterAndDetail =\n router.params.masterDetailBreakpoint > 0 &&\n router.app.width >= router.params.masterDetailBreakpoint &&\n (($oldNavbarEl.hasClass('navbar-master') &&\n $newNavbarEl.hasClass('navbar-master-detail')) ||\n ($oldNavbarEl.hasClass('navbar-master-detail') &&\n $newNavbarEl.hasClass('navbar-master')));\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 const navEls = router.animatableNavElements(\n $newNavbarEl,\n $oldNavbarEl,\n toLarge,\n fromLarge,\n direction,\n );\n newNavEls = navEls.newNavEls;\n oldNavEls = navEls.oldNavEls;\n }\n\n function animateNavbars(progress) {\n if (!(ios && dynamicNavbar)) return;\n if (progress === 1) {\n if (toLarge) {\n $newNavbarEl.addClass('router-navbar-transition-to-large');\n $oldNavbarEl.addClass('router-navbar-transition-to-large');\n }\n if (fromLarge) {\n $newNavbarEl.addClass('router-navbar-transition-from-large');\n $oldNavbarEl.addClass('router-navbar-transition-from-large');\n }\n }\n newNavEls.forEach((navEl) => {\n const $el = navEl.$el;\n const offset = direction === 'forward' ? navEl.rightOffset : navEl.leftOffset;\n if (navEl.isSliding) {\n if (navEl.isSubnavbar && newIsLarge) {\n // prettier-ignore\n $el[0].style.setProperty(\n 'transform',\n `translate3d(${offset * (1 - progress)}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`,\n 'important',\n );\n } else {\n $el.transform(`translate3d(${offset * (1 - progress)}px,0,0)`);\n }\n }\n });\n oldNavEls.forEach((navEl) => {\n const $el = navEl.$el;\n const offset = direction === 'forward' ? navEl.leftOffset : navEl.rightOffset;\n if (navEl.isSliding) {\n if (navEl.isSubnavbar && oldIsLarge) {\n $el.transform(\n `translate3d(${\n offset * progress\n }px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`,\n );\n } else {\n $el.transform(`translate3d(${offset * progress}px,0,0)`);\n }\n }\n });\n }\n\n // AnimationEnd Callback\n function onDone() {\n if (router.dynamicNavbar) {\n if ($newNavbarEl) {\n $newNavbarEl.removeClass(\n 'router-navbar-transition-to-large router-navbar-transition-from-large',\n );\n $newNavbarEl.addClass('navbar-no-title-large-transition');\n nextFrame(() => {\n $newNavbarEl.removeClass('navbar-no-title-large-transition');\n });\n }\n if ($oldNavbarEl) {\n $oldNavbarEl.removeClass(\n 'router-navbar-transition-to-large router-navbar-transition-from-large',\n );\n }\n if (\n $newNavbarEl.hasClass('sliding') ||\n $newNavbarEl.children('.navbar-inner.sliding').length\n ) {\n $newNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform('');\n } else {\n $newNavbarEl.find('.sliding').transform('');\n }\n if (\n $oldNavbarEl.hasClass('sliding') ||\n $oldNavbarEl.children('.navbar-inner.sliding').length\n ) {\n $oldNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform('');\n } else {\n $oldNavbarEl.find('.sliding').transform('');\n }\n }\n router.$el.removeClass(routerTransitionClass);\n if (callback) callback();\n }\n\n (direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(() => {\n onDone();\n });\n\n // Animate\n if (dynamicNavbar) {\n // Prepare Navbars\n animateNavbars(0);\n nextFrame(() => {\n // Add class, start animation\n router.$el.addClass(routerTransitionClass);\n if (toDifferent) {\n // eslint-disable-next-line\n router.el._clientLeft = router.el.clientLeft;\n }\n animateNavbars(1);\n });\n } else {\n // Add class, start animation\n router.$el.addClass(routerTransitionClass);\n }\n }\n\n removeModal(modalEl) {\n const router = this;\n router.removeEl(modalEl);\n }\n // eslint-disable-next-line\n removeTabContent(tabEl) {\n const $tabEl = $(tabEl);\n $tabEl.html('');\n }\n\n removeNavbar(el) {\n const router = this;\n router.removeEl(el);\n }\n\n removePage(el) {\n const $el = $(el);\n const f7Page = $el && $el[0] && $el[0].f7Page;\n const router = this;\n if (f7Page && f7Page.route && f7Page.route.route && f7Page.route.route.keepAlive) {\n $el.remove();\n return;\n }\n router.removeEl(el);\n }\n\n removeEl(el) {\n if (!el) return;\n const router = this;\n const $el = $(el);\n if ($el.length === 0) return;\n $el.find('.tab').each((tabEl) => {\n $(tabEl)\n .children()\n .each((tabChild) => {\n if (tabChild.f7Component) {\n $(tabChild).trigger('tab:beforeremove');\n tabChild.f7Component.destroy();\n }\n });\n });\n if ($el[0].f7Component && $el[0].f7Component.destroy) {\n $el[0].f7Component.destroy();\n }\n if (!router.params.removeElements) {\n return;\n }\n if (router.params.removeElementsWithTimeout) {\n setTimeout(() => {\n $el.remove();\n }, router.params.removeElementsTimeout);\n } else {\n $el.remove();\n }\n }\n\n getPageEl(content) {\n const router = this;\n if (typeof content === 'string') {\n router.tempDom.innerHTML = content;\n } else {\n if ($(content).hasClass('page')) {\n return content;\n }\n router.tempDom.innerHTML = '';\n $(router.tempDom).append(content);\n }\n\n return router.findElement('.page', router.tempDom);\n }\n\n findElement(stringSelector, container, notStacked) {\n const router = this;\n const view = router.view;\n const app = router.app;\n\n // Modals Selector\n const modalsSelector =\n '.popup, .dialog, .popover, .actions-modal, .sheet-modal, .login-screen, .page';\n\n const $container = $(container);\n let selector = stringSelector;\n if (notStacked) selector += ':not(.stacked)';\n\n let found = $container\n .find(selector)\n .filter((el) => $(el).parents(modalsSelector).length === 0);\n\n if (found.length > 1) {\n if (typeof view.selector === 'string') {\n // Search in related view\n found = $container.find(`${view.selector} ${selector}`);\n }\n if (found.length > 1) {\n // Search in main view\n found = $container.find(`.${app.params.viewMainClass} ${selector}`);\n }\n }\n if (found.length === 1) return found;\n\n // Try to find not stacked\n if (!notStacked) found = router.findElement(selector, $container, true);\n if (found && found.length === 1) return found;\n if (found && found.length > 1) return $(found[0]);\n return undefined;\n }\n\n flattenRoutes(routes = this.routes) {\n const router = this;\n let flattenedRoutes = [];\n routes.forEach((route) => {\n let hasTabRoutes = false;\n if ('tabs' in route && route.tabs) {\n const mergedPathsRoutes = route.tabs.map((tabRoute) => {\n const tRoute = extend({}, route, {\n path: `${route.path}/${tabRoute.path}`.replace('///', '/').replace('//', '/'),\n parentPath: route.path,\n tab: tabRoute,\n });\n delete tRoute.tabs;\n delete tRoute.routes;\n return tRoute;\n });\n hasTabRoutes = true;\n flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes));\n }\n if ('detailRoutes' in route) {\n const mergedPathsRoutes = route.detailRoutes.map((detailRoute) => {\n const dRoute = extend({}, detailRoute);\n dRoute.masterRoute = route;\n dRoute.masterRoutePath = route.path;\n return dRoute;\n });\n flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes));\n }\n if ('routes' in route) {\n const mergedPathsRoutes = route.routes.map((childRoute) => {\n const cRoute = extend({}, childRoute);\n cRoute.path = `${route.path}/${cRoute.path}`.replace('///', '/').replace('//', '/');\n return cRoute;\n });\n if (hasTabRoutes) {\n flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes));\n } else {\n flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes));\n }\n }\n if (!('routes' in route) && !('tabs' in route && route.tabs) && !('detailRoutes' in route)) {\n flattenedRoutes.push(route);\n }\n });\n return flattenedRoutes;\n }\n\n // eslint-disable-next-line\n parseRouteUrl(url) {\n if (!url) return {};\n const query = parseUrlQuery(url);\n const hash = url.split('#')[1];\n const params = {};\n const path = url.split('#')[0].split('?')[0];\n return {\n query,\n hash,\n params,\n url,\n path,\n };\n }\n\n generateUrl(parameters = {}) {\n if (typeof parameters === 'string') {\n return parameters;\n }\n const { name, path, params, query } = parameters;\n if (!name && !path) {\n throw new Error('Framework7: \"name\" or \"path\" parameter is required');\n }\n const router = this;\n const 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 const url = router.constructRouteUrl(route, { params, query });\n if (!url) {\n throw new Error(`Framework7: can't construct URL for route with name \"${name}\"`);\n }\n return url;\n }\n\n // eslint-disable-next-line\n constructRouteUrl(route, { params, query } = {}) {\n const { path } = route;\n const toUrl = compile(path);\n let url;\n try {\n url = toUrl(params || {});\n } catch (error) {\n throw new Error(\n `Framework7: error constructing route URL from passed params:\\nRoute: ${path}\\n${error.toString()}`,\n );\n }\n\n if (query) {\n if (typeof query === 'string') url += `?${query}`;\n else if (Object.keys(query).length) url += `?${serializeObject(query)}`;\n }\n\n return url;\n }\n\n findTabRouteUrl(tabEl) {\n const router = this;\n const $tabEl = $(tabEl);\n const parentPath = router.currentRoute.route.parentPath;\n const tabId = $tabEl.attr('id');\n const flattenedRoutes = router.flattenRoutes(router.routes);\n let foundTabRouteUrl;\n flattenedRoutes.forEach((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 findRouteByKey(key, value) {\n const router = this;\n const routes = router.routes;\n const flattenedRoutes = router.flattenRoutes(routes);\n let matchingRoute;\n\n flattenedRoutes.forEach((route) => {\n if (matchingRoute) return;\n if (route[key] === value) {\n matchingRoute = route;\n }\n });\n return matchingRoute;\n }\n\n findMatchingRoute(url) {\n if (!url) return undefined;\n const router = this;\n const routes = router.routes;\n const flattenedRoutes = router.flattenRoutes(routes);\n const { path, query, hash, params } = router.parseRouteUrl(url);\n let matchingRoute;\n flattenedRoutes.forEach((route) => {\n if (matchingRoute) return;\n const keys = [];\n\n const pathsToMatch = [route.path];\n if (route.alias) {\n if (typeof route.alias === 'string') pathsToMatch.push(route.alias);\n else if (Array.isArray(route.alias)) {\n route.alias.forEach((aliasPath) => {\n pathsToMatch.push(aliasPath);\n });\n }\n }\n\n let matched;\n pathsToMatch.forEach((pathToMatch) => {\n if (matched) return;\n matched = pathToRegexp(pathToMatch, keys).exec(path);\n });\n\n if (matched) {\n keys.forEach((keyObj, index) => {\n if (typeof keyObj.name === 'number') return;\n const paramValue = matched[index + 1];\n if (typeof paramValue === 'undefined' || paramValue === null) {\n params[keyObj.name] = paramValue;\n } else {\n params[keyObj.name] = decodeURIComponent(paramValue);\n }\n });\n\n let parentPath;\n if (route.parentPath) {\n parentPath = path\n .split('/')\n .slice(0, route.parentPath.split('/').length - 1)\n .join('/');\n }\n\n matchingRoute = {\n query,\n hash,\n params,\n url,\n path,\n parentPath,\n route,\n name: route.name,\n };\n }\n });\n return matchingRoute;\n }\n\n // eslint-disable-next-line\n replaceRequestUrlParams(url = '', options = {}) {\n let compiledUrl = url;\n if (\n typeof compiledUrl === 'string' &&\n compiledUrl.indexOf('{{') >= 0 &&\n options &&\n options.route &&\n options.route.params &&\n Object.keys(options.route.params).length\n ) {\n Object.keys(options.route.params).forEach((paramName) => {\n const regExp = new RegExp(`{{${paramName}}}`, 'g');\n compiledUrl = compiledUrl.replace(regExp, options.route.params[paramName] || '');\n });\n }\n return compiledUrl;\n }\n\n removeFromXhrCache(url) {\n const router = this;\n const xhrCache = router.cache.xhr;\n let index = false;\n for (let i = 0; i < xhrCache.length; i += 1) {\n if (xhrCache[i].url === url) index = i;\n }\n if (index !== false) xhrCache.splice(index, 1);\n }\n\n xhrRequest(requestUrl, options) {\n const router = this;\n const params = router.params;\n const { ignoreCache } = options;\n let url = requestUrl;\n\n let hasQuery = url.indexOf('?') >= 0;\n if (\n params.passRouteQueryToRequest &&\n options &&\n options.route &&\n options.route.query &&\n Object.keys(options.route.query).length\n ) {\n url += `${hasQuery ? '&' : '?'}${serializeObject(options.route.query)}`;\n hasQuery = true;\n }\n\n if (\n params.passRouteParamsToRequest &&\n options &&\n options.route &&\n options.route.params &&\n Object.keys(options.route.params).length\n ) {\n url += `${hasQuery ? '&' : '?'}${serializeObject(options.route.params)}`;\n hasQuery = true;\n }\n\n if (url.indexOf('{{') >= 0) {\n url = router.replaceRequestUrlParams(url, options);\n }\n // should we ignore get params or not\n if (params.xhrCacheIgnoreGetParameters && url.indexOf('?') >= 0) {\n url = url.split('?')[0];\n }\n return new Promise((resolve, reject) => {\n if (\n params.xhrCache &&\n !ignoreCache &&\n url.indexOf('nocache') < 0 &&\n params.xhrCacheIgnore.indexOf(url) < 0\n ) {\n for (let i = 0; i < router.cache.xhr.length; i += 1) {\n const cachedUrl = router.cache.xhr[i];\n if (cachedUrl.url === url) {\n // Check expiration\n if (now() - cachedUrl.time < params.xhrCacheDuration) {\n // Load from cache\n resolve(cachedUrl.content);\n return;\n }\n }\n }\n }\n router.xhrAbortController = router.app.request.abortController();\n router.app.request({\n abortController: router.xhrAbortController,\n url,\n method: 'GET',\n beforeSend(xhr) {\n router.emit('routerAjaxStart', xhr, options);\n },\n complete(xhr, status) {\n router.emit('routerAjaxComplete', xhr);\n if (\n (status !== 'error' && status !== 'timeout' && xhr.status >= 200 && xhr.status < 300) ||\n xhr.status === 0\n ) {\n if (params.xhrCache && xhr.responseText !== '') {\n router.removeFromXhrCache(url);\n router.cache.xhr.push({\n url,\n time: now(),\n content: xhr.responseText,\n });\n }\n router.emit('routerAjaxSuccess', xhr, options);\n resolve(xhr.responseText);\n } else {\n router.emit('routerAjaxError', xhr, options);\n reject(xhr);\n }\n },\n error(xhr) {\n router.emit('routerAjaxError', xhr, options);\n reject(xhr);\n },\n });\n });\n }\n\n setNavbarPosition($el, position, ariaHidden) {\n const router = this;\n $el.removeClass('navbar-previous navbar-current navbar-next');\n if (position) {\n $el.addClass(`navbar-${position}`);\n }\n\n if (ariaHidden === false) {\n $el.removeAttr('aria-hidden');\n } else if (ariaHidden === true) {\n $el.attr('aria-hidden', 'true');\n }\n $el.trigger('navbar:position', { position });\n router.emit('navbarPosition', $el[0], position);\n }\n\n setPagePosition($el, position, ariaHidden) {\n const router = this;\n $el.removeClass('page-previous page-current page-next');\n $el.addClass(`page-${position}`);\n if (ariaHidden === false) {\n $el.removeAttr('aria-hidden');\n } else if (ariaHidden === true) {\n $el.attr('aria-hidden', 'true');\n }\n $el.trigger('page:position', { position });\n router.emit('pagePosition', $el[0], position);\n }\n\n // Remove theme elements\n removeThemeElements(el) {\n const router = this;\n const theme = router.app.theme;\n let toRemove;\n if (theme === 'ios') {\n toRemove = '.md-only, .aurora-only, .if-md, .if-aurora, .if-not-ios, .not-ios';\n } else if (theme === 'md') {\n toRemove = '.ios-only, .aurora-only, .if-ios, .if-aurora, .if-not-md, .not-md';\n } else if (theme === 'aurora') {\n toRemove = '.ios-only, .md-only, .if-ios, .if-md, .if-not-aurora, .not-aurora';\n }\n $(el).find(toRemove).remove();\n }\n\n getPageData(pageEl, navbarEl, from, to, route = {}, pageFromEl) {\n const router = this;\n const $pageEl = $(pageEl).eq(0);\n const $navbarEl = $(navbarEl).eq(0);\n const currentPage = $pageEl[0].f7Page || {};\n let direction;\n let pageFrom;\n if ((from === 'next' && to === 'current') || (from === 'current' && to === 'previous'))\n direction = 'forward';\n if ((from === 'current' && to === 'next') || (from === 'previous' && to === 'current'))\n direction = 'backward';\n if (currentPage && !currentPage.fromPage) {\n const $pageFromEl = $(pageFromEl);\n if ($pageFromEl.length) {\n pageFrom = $pageFromEl[0].f7Page;\n }\n }\n pageFrom = currentPage.pageFrom || pageFrom;\n if (pageFrom && pageFrom.pageFrom) {\n pageFrom.pageFrom = null;\n }\n const page = {\n app: router.app,\n view: router.view,\n router,\n $el: $pageEl,\n el: $pageEl[0],\n $pageEl,\n pageEl: $pageEl[0],\n $navbarEl,\n navbarEl: $navbarEl[0],\n name: $pageEl.attr('data-name'),\n position: from,\n from,\n to,\n direction,\n route: currentPage.route ? currentPage.route : route,\n pageFrom,\n };\n\n $pageEl[0].f7Page = page;\n return page;\n }\n\n // Callbacks\n pageCallback(callback, pageEl, navbarEl, from, to, options = {}, pageFromEl) {\n if (!pageEl) return;\n const router = this;\n const $pageEl = $(pageEl);\n if (!$pageEl.length) return;\n const $navbarEl = $(navbarEl);\n const { route } = options;\n const restoreScrollTopOnBack =\n router.params.restoreScrollTopOnBack &&\n !(\n router.params.masterDetailBreakpoint > 0 &&\n $pageEl.hasClass('page-master') &&\n router.app.width >= router.params.masterDetailBreakpoint\n );\n const keepAlive =\n $pageEl[0].f7Page &&\n $pageEl[0].f7Page.route &&\n $pageEl[0].f7Page.route.route &&\n $pageEl[0].f7Page.route.route.keepAlive;\n\n if (callback === 'beforeRemove' && keepAlive) {\n callback = 'beforeUnmount'; // eslint-disable-line\n }\n\n const camelName = `page${callback[0].toUpperCase() + callback.slice(1, callback.length)}`;\n const colonName = `page:${callback.toLowerCase()}`;\n\n let page = {};\n if (callback === 'beforeRemove' && $pageEl[0].f7Page) {\n page = extend($pageEl[0].f7Page, { from, to, position: from });\n } else {\n page = router.getPageData($pageEl[0], $navbarEl[0], from, to, route, pageFromEl);\n }\n page.swipeBack = !!options.swipeBack;\n\n const { on = {}, once = {} } = options.route ? options.route.route : {};\n if (options.on) {\n extend(on, options.on);\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 if (on && Object.keys(on).length > 0) {\n $pageEl[0].f7RouteEventsOn = on;\n Object.keys(on).forEach((eventName) => {\n on[eventName] = on[eventName].bind(router);\n $pageEl.on(eventNameToColonCase(eventName), on[eventName]);\n });\n }\n if (once && Object.keys(once).length > 0) {\n $pageEl[0].f7RouteEventsOnce = once;\n Object.keys(once).forEach((eventName) => {\n once[eventName] = once[eventName].bind(router);\n $pageEl.once(eventNameToColonCase(eventName), once[eventName]);\n });\n }\n }\n\n function detachEvents() {\n if (!$pageEl[0].f7RouteEventsAttached) return;\n if ($pageEl[0].f7RouteEventsOn) {\n Object.keys($pageEl[0].f7RouteEventsOn).forEach((eventName) => {\n $pageEl.off(eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOn[eventName]);\n });\n }\n if ($pageEl[0].f7RouteEventsOnce) {\n Object.keys($pageEl[0].f7RouteEventsOnce).forEach((eventName) => {\n $pageEl.off(eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOnce[eventName]);\n });\n }\n $pageEl[0].f7RouteEventsAttached = null;\n $pageEl[0].f7RouteEventsOn = null;\n $pageEl[0].f7RouteEventsOnce = null;\n delete $pageEl[0].f7RouteEventsAttached;\n delete $pageEl[0].f7RouteEventsOn;\n delete $pageEl[0].f7RouteEventsOnce;\n }\n\n if (callback === 'mounted') {\n attachEvents();\n }\n if (callback === 'init') {\n if (\n restoreScrollTopOnBack &&\n (from === 'previous' || !from) &&\n to === 'current' &&\n router.scrollHistory[page.route.url] &&\n !$pageEl.hasClass('no-restore-scroll')\n ) {\n let $pageContent = $pageEl.find('.page-content');\n if ($pageContent.length > 0) {\n // eslint-disable-next-line\n $pageContent = $pageContent.filter((pageContentEl) => {\n return (\n $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 &&\n !$(pageContentEl).is('.tab:not(.tab-active)')\n );\n });\n }\n $pageContent.scrollTop(router.scrollHistory[page.route.url]);\n }\n attachEvents();\n if ($pageEl[0].f7PageInitialized) {\n $pageEl.trigger('page:reinit', page);\n router.emit('pageReinit', page);\n return;\n }\n $pageEl[0].f7PageInitialized = true;\n }\n if (\n restoreScrollTopOnBack &&\n callback === 'beforeOut' &&\n from === 'current' &&\n to === 'previous'\n ) {\n // Save scroll position\n let $pageContent = $pageEl.find('.page-content');\n if ($pageContent.length > 0) {\n // eslint-disable-next-line\n $pageContent = $pageContent.filter((pageContentEl) => {\n return (\n $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 &&\n !$(pageContentEl).is('.tab:not(.tab-active)')\n );\n });\n }\n router.scrollHistory[page.route.url] = $pageContent.scrollTop();\n }\n if (restoreScrollTopOnBack && callback === 'beforeOut' && from === 'current' && to === 'next') {\n // Delete scroll position\n delete router.scrollHistory[page.route.url];\n }\n\n $pageEl.trigger(colonName, page);\n router.emit(camelName, page);\n\n if (callback === 'beforeRemove' || callback === 'beforeUnmount') {\n detachEvents();\n if (!keepAlive) {\n if ($pageEl[0].f7Page && $pageEl[0].f7Page.navbarEl) {\n delete $pageEl[0].f7Page.navbarEl.f7Page;\n }\n $pageEl[0].f7Page = null;\n }\n }\n }\n\n saveHistory() {\n const router = this;\n const window = getWindow();\n router.view.history = router.history;\n if (\n router.params.browserHistory &&\n router.params.browserHistoryStoreHistory &&\n window.localStorage\n ) {\n window.localStorage[`f7router-${router.view.id}-history`] = JSON.stringify(router.history);\n }\n }\n\n restoreHistory() {\n const router = this;\n const window = getWindow();\n if (\n router.params.browserHistory &&\n router.params.browserHistoryStoreHistory &&\n window.localStorage &&\n window.localStorage[`f7router-${router.view.id}-history`]\n ) {\n router.history = JSON.parse(window.localStorage[`f7router-${router.view.id}-history`]);\n router.view.history = router.history;\n }\n }\n\n clearHistory() {\n const router = this;\n router.history = [];\n if (router.view) router.view.history = [];\n router.saveHistory();\n }\n\n updateCurrentUrl(newUrl) {\n const router = this;\n appRouterCheck(router, 'updateCurrentUrl');\n // Update history\n if (router.history.length) {\n router.history[router.history.length - 1] = newUrl;\n } else {\n router.history.push(newUrl);\n }\n\n // Update current route params\n const { query, hash, params, url, path } = router.parseRouteUrl(newUrl);\n if (router.currentRoute) {\n extend(router.currentRoute, {\n query,\n hash,\n params,\n url,\n path,\n });\n }\n\n if (router.params.browserHistory) {\n const browserHistoryRoot = router.params.browserHistoryRoot || '';\n History.replace(\n router.view.id,\n {\n url: newUrl,\n },\n browserHistoryRoot + router.params.browserHistorySeparator + newUrl,\n );\n }\n\n // Save History\n router.saveHistory();\n\n router.emit('routeUrlUpdate', router.currentRoute, router);\n }\n\n getInitialUrl() {\n const router = this;\n if (router.initialUrl) {\n return {\n initialUrl: router.initialUrl,\n historyRestored: router.historyRestored,\n };\n }\n const { app, view } = router;\n const document = getDocument();\n const window = getWindow();\n\n const location =\n app.params.url && typeof app.params.url === 'string' && typeof URL !== 'undefined'\n ? new URL(app.params.url)\n : document.location;\n\n let initialUrl = router.params.url;\n let documentUrl = location.href.split(location.origin)[1];\n let historyRestored;\n const { browserHistory, browserHistoryOnLoad, browserHistorySeparator } = router.params;\n let { browserHistoryRoot } = router.params;\n if (\n (window.cordova || (window.Capacitor && window.Capacitor.isNative)) &&\n browserHistory &&\n !browserHistorySeparator &&\n !browserHistoryRoot &&\n location.pathname.indexOf('index.html')\n ) {\n // eslint-disable-next-line\n console.warn(\n 'Framework7: wrong or not complete browserHistory configuration, trying to guess browserHistoryRoot',\n );\n browserHistoryRoot = location.pathname.split('index.html')[0];\n }\n if (!browserHistory || !browserHistoryOnLoad) {\n if (!initialUrl) {\n initialUrl = documentUrl;\n }\n if (location.search && initialUrl.indexOf('?') < 0) {\n initialUrl += location.search;\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 if (browserHistorySeparator.length > 0 && documentUrl.indexOf(browserHistorySeparator) >= 0) {\n initialUrl = documentUrl.split(browserHistorySeparator)[1];\n } else {\n initialUrl = documentUrl;\n }\n router.restoreHistory();\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 (\n History.state &&\n History.state[view.id] &&\n History.state[view.id].url === router.history[router.history.length - 1]\n ) {\n initialUrl = router.history[router.history.length - 1];\n } else {\n router.history = [documentUrl.split(browserHistorySeparator)[0] || '/', initialUrl];\n }\n if (router.history.length > 1) {\n historyRestored = true;\n } else {\n router.history = [];\n }\n router.saveHistory();\n }\n\n router.initialUrl = initialUrl;\n router.historyRestored = historyRestored;\n\n return { initialUrl, historyRestored };\n }\n\n init() {\n const router = this;\n const { app, view } = router;\n const document = getDocument();\n\n router.mount();\n\n const { initialUrl, historyRestored } = router.getInitialUrl();\n\n // Init Swipeback\n if (\n (view && router.params.iosSwipeBack && app.theme === 'ios') ||\n (view && router.params.mdSwipeBack && app.theme === 'md') ||\n (view && router.params.auroraSwipeBack && app.theme === 'aurora')\n ) {\n SwipeBack(router);\n }\n\n const {\n browserHistory,\n browserHistoryOnLoad,\n browserHistoryAnimateOnLoad,\n browserHistoryInitialMatch,\n } = router.params;\n\n let currentRoute;\n if (router.history.length > 1) {\n // Will load page\n const initUrl = browserHistoryInitialMatch ? initialUrl : router.history[0];\n currentRoute = router.findMatchingRoute(initUrl);\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 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((pageEl) => {\n const $pageEl = $(pageEl);\n router.initialPages.push($pageEl[0]);\n if (router.dynamicNavbar && $pageEl.children('.navbar').length > 0) {\n router.initialNavbars.push($pageEl.children('.navbar')[0]);\n }\n });\n }\n\n if (\n router.$el.children('.page:not(.stacked)').length === 0 &&\n initialUrl &&\n router.params.loadInitialPage\n ) {\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() {\n if (!historyRestored) return;\n const preloadPreviousPage =\n router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 1) {\n router.back({ preload: true });\n }\n },\n pageAfterIn() {\n if (!historyRestored) return;\n const preloadPreviousPage =\n router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 1) {\n router.back({ preload: true });\n }\n },\n },\n });\n } else if (router.$el.children('.page:not(.stacked)').length) {\n // Init current DOM page\n let hasTabRoute;\n router.currentRoute = currentRoute;\n router.$el.children('.page:not(.stacked)').each((pageEl) => {\n const $pageEl = $(pageEl);\n let $navbarEl;\n router.setPagePosition($pageEl, 'current');\n if (router.dynamicNavbar) {\n $navbarEl = $pageEl.children('.navbar');\n if ($navbarEl.length > 0) {\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n router.setNavbarPosition($navbarEl, 'current');\n router.$navbarsEl.append($navbarEl);\n if ($navbarEl.children('.title-large').length) {\n $navbarEl.addClass('navbar-large');\n }\n $pageEl.children('.navbar').remove();\n } else {\n router.$navbarsEl.addClass('navbar-hidden');\n if ($navbarEl.children('.title-large').length) {\n router.$navbarsEl.addClass('navbar-hidden navbar-large-hidden');\n }\n }\n }\n if (\n router.currentRoute &&\n router.currentRoute.route &&\n (router.currentRoute.route.master === true ||\n (typeof router.currentRoute.route.master === 'function' &&\n router.currentRoute.route.master(app, router))) &&\n router.params.masterDetailBreakpoint > 0\n ) {\n $pageEl.addClass('page-master');\n $pageEl.trigger('page:role', { role: 'master' });\n if ($navbarEl && $navbarEl.length) {\n $navbarEl.addClass('navbar-master');\n }\n view.checkMasterDetailBreakpoint();\n }\n const initOptions = {\n route: router.currentRoute,\n };\n if (router.currentRoute && router.currentRoute.route && router.currentRoute.route.options) {\n extend(initOptions, router.currentRoute.route.options);\n }\n router.currentPageEl = $pageEl[0];\n if (router.dynamicNavbar && $navbarEl.length) {\n router.currentNavbarEl = $navbarEl[0];\n }\n router.removeThemeElements($pageEl);\n if (router.dynamicNavbar && $navbarEl.length) {\n router.removeThemeElements($navbarEl);\n }\n if (initOptions.route.route.tab) {\n hasTabRoute = true;\n router.tabLoad(initOptions.route.route.tab, extend({}, initOptions));\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 if (historyRestored) {\n if (browserHistoryInitialMatch) {\n const preloadPreviousPage =\n router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 1) {\n router.back({ preload: true });\n }\n } else {\n router.navigate(initialUrl, {\n initial: true,\n browserHistory: false,\n history: false,\n animate: browserHistoryAnimateOnLoad,\n once: {\n pageAfterIn() {\n const preloadPreviousPage =\n router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 2) {\n router.back({ preload: true });\n }\n },\n },\n });\n }\n }\n if (!historyRestored && !hasTabRoute) {\n router.history.push(initialUrl);\n router.saveHistory();\n }\n }\n if (\n initialUrl &&\n browserHistory &&\n browserHistoryOnLoad &&\n (!History.state || !History.state[view.id])\n ) {\n History.initViewState(view.id, {\n url: initialUrl,\n });\n }\n router.emit('local::init routerInit', router);\n }\n\n destroy() {\n let router = this;\n\n router.emit('local::destroy routerDestroy', router);\n\n // Delete props & methods\n Object.keys(router).forEach((routerProp) => {\n router[routerProp] = null;\n delete router[routerProp];\n });\n\n router = null;\n }\n}\n\n// Load\nRouter.prototype.navigate = navigate;\nRouter.prototype.refreshPage = refreshPage;\n// Tab\nRouter.prototype.tabLoad = tabLoad;\nRouter.prototype.tabRemove = tabRemove;\n// Modal\nRouter.prototype.modalLoad = modalLoad;\nRouter.prototype.modalRemove = modalRemove;\n// Back\nRouter.prototype.back = back;\n// Clear history\nRouter.prototype.clearPreviousHistory = clearPreviousHistory;\n\nexport default Router;\n","import Router from './router-class.js';\n\nexport default {\n name: 'router',\n static: {\n Router,\n },\n instance: {\n cache: {\n xhr: [],\n templates: [],\n components: [],\n },\n },\n create() {\n const instance = this;\n if (instance.app) {\n // View Router\n if (instance.params.router) {\n instance.router = new Router(instance.app, instance);\n }\n } else {\n // App Router\n instance.router = new Router(instance);\n }\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport { getSupport } from '../../shared/get-support.js';\n\nfunction resizableView(view) {\n const app = view.app;\n const support = getSupport();\n if (view.resizableInitialized) return;\n extend(view, {\n resizable: true,\n resizableWidth: null,\n resizableInitialized: true,\n });\n const $htmlEl = $('html');\n const { $el } = view;\n if (!$el) return;\n\n let $resizeHandlerEl;\n\n let isTouched;\n let isMoved;\n const touchesStart = {};\n let touchesDiff;\n let width;\n\n let minWidth;\n let maxWidth;\n\n function transformCSSWidth(v) {\n if (!v) return null;\n if (v.indexOf('%') >= 0 || v.indexOf('vw') >= 0) {\n return (parseInt(v, 10) / 100) * app.width;\n }\n const newV = parseInt(v, 10);\n if (Number.isNaN(newV)) return null;\n return newV;\n }\n\n function isResizable() {\n return view.resizable && $el.hasClass('view-resizable') && $el.hasClass('view-master-detail');\n }\n\n function handleTouchStart(e) {\n if (!isResizable()) return;\n touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n isMoved = false;\n isTouched = true;\n const $pageMasterEl = $el.children('.page-master');\n minWidth = transformCSSWidth($pageMasterEl.css('min-width'));\n maxWidth = transformCSSWidth($pageMasterEl.css('max-width'));\n }\n function handleTouchMove(e) {\n if (!isTouched) return;\n e.f7PreventSwipePanel = true;\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n\n if (!isMoved) {\n width = $resizeHandlerEl[0].offsetLeft + $resizeHandlerEl[0].offsetWidth;\n $el.addClass('view-resizing');\n $htmlEl.css('cursor', 'col-resize');\n }\n\n isMoved = true;\n\n e.preventDefault();\n\n touchesDiff = pageX - touchesStart.x;\n\n let newWidth = width + touchesDiff;\n if (minWidth && !Number.isNaN(minWidth)) {\n newWidth = Math.max(newWidth, minWidth);\n }\n if (maxWidth && !Number.isNaN(maxWidth)) {\n newWidth = Math.min(newWidth, maxWidth);\n }\n newWidth = Math.min(Math.max(newWidth, 0), app.width);\n\n view.resizableWidth = newWidth;\n $htmlEl[0].style.setProperty('--f7-page-master-width', `${newWidth}px`);\n\n $el.trigger('view:resize', newWidth);\n view.emit('local::resize viewResize', view, newWidth);\n }\n function handleTouchEnd() {\n $('html').css('cursor', '');\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n isTouched = false;\n isMoved = false;\n\n $htmlEl[0].style.setProperty('--f7-page-master-width', `${view.resizableWidth}px`);\n $el.removeClass('view-resizing');\n }\n\n function handleResize() {\n if (!view.resizableWidth) return;\n minWidth = transformCSSWidth($resizeHandlerEl.css('min-width'));\n maxWidth = transformCSSWidth($resizeHandlerEl.css('max-width'));\n\n if (minWidth && !Number.isNaN(minWidth) && view.resizableWidth < minWidth) {\n view.resizableWidth = Math.max(view.resizableWidth, minWidth);\n }\n if (maxWidth && !Number.isNaN(maxWidth) && view.resizableWidth > maxWidth) {\n view.resizableWidth = Math.min(view.resizableWidth, maxWidth);\n }\n view.resizableWidth = Math.min(Math.max(view.resizableWidth, 0), app.width);\n\n $htmlEl[0].style.setProperty('--f7-page-master-width', `${view.resizableWidth}px`);\n }\n\n $resizeHandlerEl = view.$el.children('.view-resize-handler');\n if (!$resizeHandlerEl.length) {\n view.$el.append('<div class=\"view-resize-handler\"></div>');\n $resizeHandlerEl = view.$el.children('.view-resize-handler');\n }\n view.$resizeHandlerEl = $resizeHandlerEl;\n\n $el.addClass('view-resizable');\n\n // Add Events\n const passive = support.passiveListener ? { passive: true } : false;\n\n view.$el.on(app.touchEvents.start, '.view-resize-handler', handleTouchStart, passive);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n app.on('resize', handleResize);\n view.on('beforeOpen', handleResize);\n\n view.once('viewDestroy', () => {\n $el.removeClass('view-resizable');\n view.$resizeHandlerEl.remove();\n view.$el.off(app.touchEvents.start, '.view-resize-handler', handleTouchStart, passive);\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n app.off('resize', handleResize);\n view.off('beforeOpen', handleResize);\n });\n}\n\nexport default resizableView;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Router from '../../modules/router/router.js';\nimport Framework7Class from '../../shared/class.js';\nimport resizableView from './resizable-view.js';\n\nclass View extends Framework7Class {\n constructor(app, el, viewParams = {}) {\n super(viewParams, [app]);\n\n const view = this;\n\n const ssr = view.params.routerId;\n\n const defaults = {\n routes: [],\n routesAdd: [],\n };\n\n if (!ssr) {\n const $el = $(el);\n if (!$el.length) {\n let message = \"Framework7: can't create a View instance because \";\n message +=\n typeof el === 'string'\n ? `the selector \"${el}\" didn't match any element`\n : 'el must be an HTMLElement or Dom7 object';\n\n throw new Error(message);\n }\n }\n\n // Default View params\n view.params = extend({ el }, defaults, app.params.view, viewParams);\n\n // Routes\n if (view.params.routes.length > 0) {\n view.routes = view.params.routes;\n } else {\n view.routes = [].concat(app.routes, view.params.routesAdd);\n }\n\n // View Props\n extend(false, view, {\n app,\n name: view.params.name,\n main: view.params.main,\n history: [],\n scrollHistory: {},\n });\n\n // Install Modules\n view.useModules();\n\n // Add to app\n app.views.push(view);\n if (view.main) {\n app.views.main = view;\n }\n if (view.name) {\n app.views[view.name] = view;\n }\n\n // Index\n view.index = app.views.indexOf(view);\n\n // View ID\n let viewId;\n if (view.name) {\n viewId = `view_${view.name}`;\n } else if (view.main) {\n viewId = 'view_main';\n } else {\n viewId = `view_${view.index}`;\n }\n view.id = viewId;\n\n if (!view.params.init) {\n return view;\n }\n // Init View\n if (app.initialized) {\n view.init();\n } else {\n app.on('init', () => {\n view.init();\n });\n }\n\n return view;\n }\n\n destroy() {\n let view = this;\n const app = view.app;\n\n view.$el.trigger('view:beforedestroy');\n view.emit('local::beforeDestroy viewBeforeDestroy', view);\n\n app.off('resize', view.checkMasterDetailBreakpoint);\n\n if (view.main) {\n app.views.main = null;\n delete app.views.main;\n } else if (view.name) {\n app.views[view.name] = null;\n delete app.views[view.name];\n }\n view.$el[0].f7View = null;\n delete view.$el[0].f7View;\n\n app.views.splice(app.views.indexOf(view), 1);\n\n // Destroy Router\n if (view.params.router && view.router) {\n view.router.destroy();\n }\n\n view.emit('local::destroy viewDestroy', view);\n\n // Delete props & methods\n Object.keys(view).forEach((viewProp) => {\n view[viewProp] = null;\n delete view[viewProp];\n });\n\n view = null;\n }\n\n checkMasterDetailBreakpoint(force) {\n const view = this;\n const app = view.app;\n const wasMasterDetail = view.$el.hasClass('view-master-detail');\n const isMasterDetail =\n app.width >= view.params.masterDetailBreakpoint && view.$el.children('.page-master').length;\n if ((typeof force === 'undefined' && isMasterDetail) || force === true) {\n view.$el.addClass('view-master-detail');\n if (!wasMasterDetail) {\n view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view);\n view.$el.trigger('view:masterDetailBreakpoint');\n }\n } else {\n view.$el.removeClass('view-master-detail');\n if (wasMasterDetail) {\n view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view);\n view.$el.trigger('view:masterDetailBreakpoint');\n }\n }\n }\n\n initMasterDetail() {\n const view = this;\n const app = view.app;\n view.checkMasterDetailBreakpoint = view.checkMasterDetailBreakpoint.bind(view);\n view.checkMasterDetailBreakpoint();\n if (view.params.masterDetailResizable) {\n resizableView(view);\n }\n app.on('resize', view.checkMasterDetailBreakpoint);\n }\n\n mount(viewEl) {\n const view = this;\n const app = view.app;\n const el = view.params.el || viewEl;\n const $el = $(el);\n\n // Selector\n let selector;\n if (typeof el === 'string') selector = el;\n else {\n // Supposed to be HTMLElement or Dom7\n selector =\n ($el.attr('id') ? `#${$el.attr('id')}` : '') +\n ($el.attr('class')\n ? `.${$el.attr('class').replace(/ /g, '.').replace('.active', '')}`\n : '');\n }\n\n // DynamicNavbar\n let $navbarsEl;\n if (app.theme === 'ios' && view.params.iosDynamicNavbar) {\n $navbarsEl = $el.children('.navbars').eq(0);\n if ($navbarsEl.length === 0) {\n $navbarsEl = $('<div class=\"navbars\"></div>');\n }\n }\n\n extend(view, {\n $el,\n el: $el[0],\n main: view.main || $el.hasClass('view-main'),\n $navbarsEl,\n navbarsEl: $navbarsEl ? $navbarsEl[0] : undefined,\n selector,\n });\n\n if (view.main) {\n app.views.main = view;\n }\n\n // Save in DOM\n if ($el && $el[0]) {\n $el[0].f7View = view;\n }\n\n view.emit('local::mount viewMount', view);\n }\n\n init(viewEl) {\n const view = this;\n view.mount(viewEl);\n if (view.params.router) {\n if (view.params.masterDetailBreakpoint > 0) {\n view.initMasterDetail();\n }\n view.router.init();\n view.$el.trigger('view:init');\n view.emit('local::init viewInit', view);\n }\n }\n}\n\n// Use Router\nView.use(Router);\n\nexport default View;\n","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport ViewClass from '../../components/view/view-class.js';\n\nfunction initClicks(app) {\n function handleClicks(e) {\n const window = getWindow();\n const $clickedEl = $(e.target);\n const $clickedLinkEl = $clickedEl.closest('a');\n const isLink = $clickedLinkEl.length > 0;\n const url = isLink && $clickedLinkEl.attr('href');\n\n // Check if link is external\n if (isLink) {\n if (\n $clickedLinkEl.is(app.params.clicks.externalLinks) ||\n // eslint-disable-next-line\n (url && url.indexOf('javascript:') >= 0)\n ) {\n const target = $clickedLinkEl.attr('target');\n if (\n url &&\n window.cordova &&\n window.cordova.InAppBrowser &&\n (target === '_system' || target === '_blank')\n ) {\n e.preventDefault();\n window.cordova.InAppBrowser.open(url, target);\n } else if (\n url &&\n window.Capacitor &&\n window.Capacitor.Plugins &&\n window.Capacitor.Plugins.Browser &&\n (target === '_system' || target === '_blank')\n ) {\n e.preventDefault();\n window.Capacitor.Plugins.Browser.open({ url });\n }\n return;\n }\n }\n\n // Modules Clicks\n Object.keys(app.modules).forEach((moduleName) => {\n const moduleClicks = app.modules[moduleName].clicks;\n if (!moduleClicks) return;\n if (e.preventF7Router) return;\n Object.keys(moduleClicks).forEach((clickSelector) => {\n const matchingClickedElement = $clickedEl.closest(clickSelector).eq(0);\n if (matchingClickedElement.length > 0) {\n moduleClicks[clickSelector].call(\n app,\n matchingClickedElement,\n matchingClickedElement.dataset(),\n e,\n );\n }\n });\n });\n\n // Load Page\n let clickedLinkData = {};\n if (isLink) {\n e.preventDefault();\n clickedLinkData = $clickedLinkEl.dataset();\n }\n clickedLinkData.clickedEl = $clickedLinkEl[0];\n\n // Prevent Router\n if (e.preventF7Router) return;\n if ($clickedLinkEl.hasClass('prevent-router') || $clickedLinkEl.hasClass('router-prevent'))\n return;\n\n const validUrl = url && url.length > 0 && url[0] !== '#';\n if (validUrl || $clickedLinkEl.hasClass('back')) {\n let view;\n if (clickedLinkData.view && clickedLinkData.view === 'current') {\n view = app.views.current;\n } else if (clickedLinkData.view) {\n view = $(clickedLinkData.view)[0].f7View;\n } else {\n view = $clickedEl.parents('.view')[0] && $clickedEl.parents('.view')[0].f7View;\n if (!$clickedLinkEl.hasClass('back') && view && view.params.linksView) {\n if (typeof view.params.linksView === 'string') view = $(view.params.linksView)[0].f7View;\n else if (view.params.linksView instanceof ViewClass) view = view.params.linksView;\n }\n }\n if (!view) {\n if (app.views.main) view = app.views.main;\n }\n if (!view || !view.router) return;\n if ($clickedLinkEl[0].f7RouteProps) {\n clickedLinkData.props = $clickedLinkEl[0].f7RouteProps;\n }\n if ($clickedLinkEl.hasClass('back')) view.router.back(url, clickedLinkData);\n else view.router.navigate(url, clickedLinkData);\n }\n }\n\n app.on('click', handleClicks);\n}\nexport default {\n name: 'clicks',\n params: {\n clicks: {\n // External Links\n externalLinks: '.external',\n },\n },\n on: {\n init() {\n const app = this;\n initClicks(app);\n },\n },\n};\n","import { merge } from '../../shared/utils.js';\n\nexport default {\n name: 'routerComponentLoader',\n proto: {\n openIn(router, url, options) {\n const navigateOptions = {\n url,\n route: {\n path: url,\n options: {\n ...options,\n openIn: undefined,\n },\n },\n };\n const params = {\n ...options,\n };\n if (options.openIn === 'popup') {\n params.content = `<div class=\"popup popup-router-open-in\" data-url=\"${url}\"><div class=\"view view-init\" data-links-view=\"${router.view.selector}\" data-url=\"${url}\" data-ignore-open-in=\"true\"></div></div>`;\n navigateOptions.route.popup = params;\n }\n if (options.openIn === 'loginScreen') {\n params.content = `<div class=\"login-screen login-screen-router-open-in\" data-url=\"${url}\"><div class=\"view view-init\" data-links-view=\"${router.view.selector}\" data-url=\"${url}\" data-ignore-open-in=\"true\"></div></div>`;\n navigateOptions.route.loginScreen = params;\n }\n if (options.openIn === 'sheet') {\n params.content = `<div class=\"sheet-modal sheet-modal-router-open-in\" data-url=\"${url}\"><div class=\"sheet-modal-inner\"><div class=\"view view-init\" data-links-view=\"${router.view.selector}\" data-url=\"${url}\" data-ignore-open-in=\"true\"></div></div></div>`;\n navigateOptions.route.sheet = params;\n }\n if (options.openIn === 'popover') {\n params.targetEl = options.clickedEl || options.targetEl;\n params.content = `<div class=\"popover popover-router-open-in\" data-url=\"${url}\"><div class=\"popover-inner\"><div class=\"view view-init\" data-links-view=\"${router.view.selector}\" data-url=\"${url}\" data-ignore-open-in=\"true\"></div></div></div>`;\n navigateOptions.route.popover = params;\n }\n if (options.openIn.indexOf('panel') >= 0) {\n const parts = options.openIn.split(':');\n const side = parts[1] || 'left';\n const effect = parts[2] || 'cover';\n params.targetEl = options.clickedEl || options.targetEl;\n params.content = `<div class=\"panel panel-router-open-in panel-${side} panel-${effect}\" data-url=\"${url}\"><div class=\"view view-init\" data-links-view=\"${router.view.selector}\" data-url=\"${url}\" data-ignore-open-in=\"true\"></div></div>`;\n navigateOptions.route.panel = params;\n }\n return router.navigate(navigateOptions);\n },\n componentLoader(component, componentUrl, options = {}, resolve, reject) {\n const router = this;\n const { app } = router;\n const url = typeof component === 'string' ? component : componentUrl;\n const compiledUrl = router.replaceRequestUrlParams(url, options);\n function compile(componentFunction) {\n let context = options.context || {};\n if (typeof context === 'function') context = context.call(router);\n else if (typeof context === 'string') {\n try {\n context = JSON.parse(context);\n } catch (err) {\n reject(err);\n throw err;\n }\n }\n const componentContext = merge({}, context, {\n f7route: options.route,\n f7router: router,\n });\n const componentProps = merge(\n options.route ? options.route.params || {} : {},\n options.props || {},\n options.routeProps || {},\n );\n let componentEl;\n let componentRoot;\n if (options.componentOptions && options.componentOptions.el) {\n componentEl = options.componentOptions.el;\n }\n if (options.componentOptions && options.componentOptions.root) {\n componentRoot = options.componentOptions.root;\n }\n app.component\n .create(componentFunction, componentProps, {\n context: componentContext,\n el: componentEl,\n root: componentRoot,\n })\n .then((createdComponent) => {\n resolve(createdComponent.el);\n })\n .catch((err) => {\n reject(err);\n throw new Error(err);\n });\n }\n let cachedComponent;\n if (compiledUrl && router.params.componentCache) {\n router.cache.components.forEach((cached) => {\n if (cached.url === compiledUrl) cachedComponent = cached.component;\n });\n }\n if (compiledUrl && cachedComponent) {\n compile(cachedComponent);\n } else if (compiledUrl && !cachedComponent) {\n // Load via XHR\n if (router.xhrAbortController) {\n router.xhrAbortController.abort();\n router.xhrAbortController = false;\n }\n router\n .xhrRequest(url, options)\n .then((loadedComponent) => {\n const parsedComponent = app.component.parse(loadedComponent);\n if (router.params.componentCache) {\n router.cache.components.push({\n url: compiledUrl,\n component: parsedComponent,\n });\n }\n compile(parsedComponent);\n })\n .catch((err) => {\n reject();\n throw err;\n });\n } else {\n compile(component);\n }\n },\n\n modalComponentLoader({ component, componentUrl, options, resolve, reject } = {}) {\n const router = this;\n router.componentLoader(\n component,\n componentUrl,\n options,\n (el) => {\n resolve(el);\n },\n reject,\n );\n },\n\n tabComponentLoader({ component, componentUrl, options, resolve, reject } = {}) {\n const router = this;\n router.componentLoader(\n component,\n componentUrl,\n options,\n (el) => {\n resolve(el);\n },\n reject,\n );\n },\n\n pageComponentLoader({ component, componentUrl, options, resolve, reject } = {}) {\n const router = this;\n router.componentLoader(\n component,\n componentUrl,\n options,\n (el, newOptions = {}) => {\n resolve(el, newOptions);\n },\n reject,\n );\n },\n },\n};\n","var n=function(t,s,r,e){var u;s[0]=0;for(var h=1;h<s.length;h++){var p=s[h++],a=s[h]?(s[0]|=p?1:2,r[s[h++]]):s[++h];3===p?e[0]=a:4===p?e[1]=Object.assign(e[1]||{},a):5===p?(e[1]=e[1]||{})[s[++h]]=a:6===p?e[1][s[++h]]+=a+\"\":p?(u=t.apply(a,n(t,a,r,[\"\",null])),e.push(u),a[0]?s[0]|=2:(s[h-2]=0,s[h]=u)):e.push(a)}return e},t=new Map;export default function(s){var r=t.get(this);return r||(r=new Map,t.set(this,r)),(r=n(this,r.get(s)||(r.set(s,r=function(n){for(var t,s,r=1,e=\"\",u=\"\",h=[0],p=function(n){1===r&&(n||(e=e.replace(/^\\s*\\n\\s*|\\s*\\n\\s*$/g,\"\")))?h.push(0,n,e):3===r&&(n||e)?(h.push(3,n,e),r=2):2===r&&\"...\"===e&&n?h.push(4,n,0):2===r&&e&&!n?h.push(5,0,!0,e):r>=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<n.length;a++){a&&(1===r&&p(),p(a));for(var l=0;l<n[a].length;l++)t=n[a][l],1===r?\"<\"===t?(p(),h=[h],r=3):e+=t:4===r?\"--\"===e&&\">\"===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.js';\n\nconst ignoreChildren = [false, null, '', undefined];\n\nconst h = (type, props, ...children) => {\n return {\n type,\n props: props || {},\n children: flattenArray(children.filter((child) => ignoreChildren.indexOf(child) < 0)),\n };\n};\n\nconst $h = htm.bind(h);\n\nexport default $h;\n","export function vnode(sel, data, children, text, elm) {\n var key = data === undefined ? undefined : data.key;\n return { sel: sel, data: data, children: children,\n text: text, elm: elm, key: key };\n}\nexport default vnode;\n//# sourceMappingURL=vnode.js.map","export var array = Array.isArray;\nexport function primitive(s) {\n return typeof s === 'string' || typeof s === 'number';\n}\n//# sourceMappingURL=is.js.map","import { vnode } from './vnode.js';\nimport * as is from './is';\nfunction addNS(data, children, sel) {\n data.ns = 'http://www.w3.org/2000/svg';\n if (sel !== 'foreignObject' && children !== undefined) {\n for (var i = 0; i < children.length; ++i) {\n var childData = children[i].data;\n if (childData !== undefined) {\n addNS(childData, children[i].children, children[i].sel);\n }\n }\n }\n}\nexport function h(sel, b, c) {\n var data = {}, children, text, i;\n if (c !== undefined) {\n data = b;\n if (is.array(c)) {\n children = c;\n }\n else if (is.primitive(c)) {\n text = c;\n }\n else if (c && c.sel) {\n children = [c];\n }\n }\n else if (b !== undefined) {\n if (is.array(b)) {\n children = b;\n }\n else if (is.primitive(b)) {\n text = b;\n }\n else if (b && b.sel) {\n children = [b];\n }\n else {\n data = b;\n }\n }\n if (is.array(children)) {\n for (i = 0; i < children.length; ++i) {\n if (is.primitive(children[i]))\n children[i] = vnode(undefined, undefined, undefined, children[i], undefined);\n }\n }\n if (sel[0] === 's' && sel[1] === 'v' && sel[2] === 'g' &&\n (sel.length === 3 || sel[3] === '.' || sel[3] === '#')) {\n addNS(data, children, sel);\n }\n return vnode(sel, data, children, text, undefined);\n}\n;\nexport default h;\n//# sourceMappingURL=h.js.map\n","export default {};\n","/* eslint no-use-before-define: \"off\" */\n/* eslint import/no-named-as-default: \"off\" */\nimport h from './snabbdom/h.js';\nimport customComponents from './custom-components.js';\nimport { isObject, eventNameToColonCase } from '../../shared/utils.js';\n\nconst SELF_CLOSING =\n 'area base br col command embed hr img input keygen link menuitem meta param source track wbr'.split(\n ' ',\n );\nconst PROPS_ATTRS =\n 'hidden checked disabled readonly selected autofocus autoplay required multiple value indeterminate routeProps innerHTML'.split(\n ' ',\n );\nconst BOOLEAN_PROPS =\n 'hidden checked disabled readonly selected autofocus autoplay required multiple readOnly indeterminate'.split(\n ' ',\n );\n\nconst getTagName = (treeNode) => {\n return typeof treeNode.type === 'function'\n ? treeNode.type.name || 'CustomComponent'\n : treeNode.type;\n};\n\nconst toCamelCase = (name) => {\n return name\n .split('-')\n .map((word, index) => {\n if (index === 0) return word.toLowerCase();\n return word[0].toUpperCase() + word.substr(1);\n })\n .join('');\n};\nconst propsFromAttrs = (...args) => {\n const context = {};\n args.forEach((obj = {}) => {\n Object.keys(obj).forEach((key) => {\n context[toCamelCase(key)] = obj[key];\n });\n });\n\n return context;\n};\n\nconst createCustomComponent = ({ f7, treeNode, vnode, data }) => {\n const component =\n typeof treeNode.type === 'function' ? treeNode.type : customComponents[treeNode.type];\n f7.component\n .create(component, propsFromAttrs(data.attrs || {}, data.props || {}), {\n el: vnode.elm,\n children: treeNode.children,\n })\n .then((c) => {\n if (vnode.data && vnode.data.on && c && c.$el) {\n Object.keys(vnode.data.on).forEach((eventName) => {\n c.$el.on(eventName, vnode.data.on[eventName]);\n });\n }\n // eslint-disable-next-line\n vnode.elm.__component__ = c;\n });\n};\nconst updateCustomComponent = (vnode) => {\n // eslint-disable-next-line\n const component = vnode && vnode.elm && vnode.elm.__component__;\n if (!component) return;\n const 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};\nconst destroyCustomComponent = (vnode) => {\n // eslint-disable-next-line\n const component = vnode && vnode.elm && vnode.elm.__component__;\n\n if (component) {\n const { el, $el } = component;\n if (vnode.data && vnode.data.on && $el) {\n Object.keys(vnode.data.on).forEach((eventName) => {\n $el.off(eventName, vnode.data.on[eventName]);\n });\n }\n if (component.destroy) component.destroy();\n if (el && el.parentNode) el.parentNode.removeChild(el);\n delete vnode.elm.__component__; // eslint-disable-line\n }\n};\n\nconst isCustomComponent = (treeNodeType) => {\n return (\n typeof treeNodeType === 'function' ||\n (treeNodeType && treeNodeType.indexOf('-') > 0 && customComponents[treeNodeType])\n );\n};\n\nfunction getHooks(treeNode, data, f7, initial, isRoot) {\n const hooks = {};\n const insert = [];\n const destroy = [];\n const update = [];\n const postpatch = [];\n let isFakeElement = false;\n let tagName = getTagName(treeNode);\n if (data && data.attrs && data.attrs.component) {\n tagName = data.attrs.component;\n delete data.attrs.component;\n isFakeElement = true;\n }\n\n const isCustom = isCustomComponent(treeNode.type);\n\n if (isCustom) {\n insert.push((vnode) => {\n if (vnode.sel !== tagName && !isFakeElement) return;\n createCustomComponent({ f7, treeNode, vnode, data });\n });\n destroy.push((vnode) => {\n destroyCustomComponent(vnode);\n });\n update.push((oldVnode, vnode) => {\n updateCustomComponent(vnode);\n });\n }\n\n if (!isCustom) {\n if (!data || !data.attrs || !data.attrs.class) return hooks;\n\n const classNames = data.attrs.class;\n classNames.split(' ').forEach((className) => {\n if (!initial) {\n insert.push(...f7.getVnodeHooks('insert', className));\n }\n destroy.push(...f7.getVnodeHooks('destroy', className));\n update.push(...f7.getVnodeHooks('update', className));\n postpatch.push(...f7.getVnodeHooks('postpatch', className));\n });\n }\n\n if (isRoot && !initial) {\n postpatch.push((oldVnode, vnode) => {\n const vn = vnode || oldVnode;\n if (!vn) return;\n if (vn.data && vn.data.component) {\n vn.data.component.hook('onUpdated');\n }\n });\n }\n if (\n insert.length === 0 &&\n destroy.length === 0 &&\n update.length === 0 &&\n postpatch.length === 0\n ) {\n return hooks;\n }\n\n if (insert.length) {\n hooks.insert = (vnode) => {\n insert.forEach((f) => f(vnode));\n };\n }\n if (destroy.length) {\n hooks.destroy = (vnode) => {\n destroy.forEach((f) => f(vnode));\n };\n }\n if (update.length) {\n hooks.update = (oldVnode, vnode) => {\n update.forEach((f) => f(oldVnode, vnode));\n };\n }\n if (postpatch.length) {\n hooks.postpatch = (oldVnode, vnode) => {\n postpatch.forEach((f) => f(oldVnode, vnode));\n };\n }\n\n return hooks;\n}\nconst getEventHandler = (eventHandler, { stop, prevent, once } = {}) => {\n let fired = false;\n\n function handler(...args) {\n const e = args[0];\n if (once && fired) return;\n if (stop) e.stopPropagation();\n if (prevent) e.preventDefault();\n fired = true;\n\n eventHandler(...args);\n }\n\n return handler;\n};\n\nconst getData = (treeNode, component, f7, initial, isRoot) => {\n const data = { component, treeNode };\n const tagName = getTagName(treeNode);\n Object.keys(treeNode.props).forEach((attrName) => {\n const attrValue = treeNode.props[attrName];\n if (typeof attrValue === 'undefined') return;\n if (PROPS_ATTRS.indexOf(attrName) >= 0) {\n // Props\n if (!data.props) data.props = {};\n if (attrName === 'readonly') {\n // eslint-disable-next-line\n attrName = 'readOnly';\n }\n if (attrName === 'routeProps') {\n // eslint-disable-next-line\n attrName = 'f7RouteProps';\n }\n if (tagName === 'option' && attrName === 'value') {\n if (!data.attrs) data.attrs = {};\n data.attrs.value = attrValue;\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 (\n attrName.indexOf('@') === 0 ||\n (attrName.indexOf('on') === 0 && attrName.length > 2)\n ) {\n // Events\n if (!data.on) data.on = {};\n let eventName =\n attrName.indexOf('@') === 0 ? attrName.substr(1) : eventNameToColonCase(attrName.substr(2));\n let stop = false;\n let prevent = false;\n let once = false;\n if (eventName.indexOf('.') >= 0) {\n eventName.split('.').forEach((eventNamePart, eventNameIndex) => {\n if (eventNameIndex === 0) eventName = eventNamePart;\n else {\n if (eventNamePart === 'stop') stop = true;\n if (eventNamePart === 'prevent') prevent = true;\n if (eventNamePart === 'once') once = true;\n }\n });\n }\n data.on[eventName] = getEventHandler(attrValue, { stop, prevent, once });\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;\n\n // ID -> Key\n if (attrName === 'id' && !data.key && !isRoot) {\n data.key = attrValue;\n }\n }\n });\n\n const hooks = getHooks(treeNode, data, f7, initial, isRoot);\n\n hooks.prepatch = (oldVnode, vnode) => {\n if (!oldVnode || !vnode) return;\n if (oldVnode && oldVnode.data && oldVnode.data.props) {\n Object.keys(oldVnode.data.props).forEach((key) => {\n if (BOOLEAN_PROPS.indexOf(key) < 0) return;\n if (!vnode.data) vnode.data = {};\n if (!vnode.data.props) vnode.data.props = {};\n if (oldVnode.data.props[key] === true && !(key in vnode.data.props)) {\n vnode.data.props[key] = false;\n }\n });\n }\n };\n\n data.hook = hooks;\n\n return data;\n};\n\nconst getChildren = (treeNode, component, f7, initial) => {\n if (treeNode && treeNode.type && SELF_CLOSING.indexOf(treeNode.type) >= 0) {\n return [];\n }\n const children = [];\n const nodes = treeNode.children;\n for (let i = 0; i < nodes.length; i += 1) {\n const childNode = nodes[i];\n const child = treeNodeToVNode(childNode, component, f7, initial, false);\n if (Array.isArray(child)) {\n children.push(...child);\n } else if (child) {\n children.push(child);\n }\n }\n return children;\n};\n\nconst getSlots = (treeNode, component, f7, initial) => {\n const slotName = treeNode.props.name || 'default';\n const slotNodes = (component.children || []).filter((childTreeNode) => {\n let childSlotName = 'default';\n if (childTreeNode.props) {\n childSlotName = childTreeNode.props.slot || 'default';\n }\n return childSlotName === slotName;\n });\n if (slotNodes.length === 0) {\n return getChildren(treeNode, component, f7, initial);\n }\n return slotNodes.map((subTreeNode) => treeNodeToVNode(subTreeNode, component, f7, initial));\n};\n\nconst isTreeNode = (treeNode) => {\n return isObject(treeNode) && 'props' in treeNode && 'type' in treeNode && 'children' in treeNode;\n};\n\nconst treeNodeToVNode = (treeNode, component, f7, initial, isRoot) => {\n if (!isTreeNode(treeNode)) {\n return String(treeNode);\n }\n if (treeNode.type === 'slot') {\n return getSlots(treeNode, component, f7, initial);\n }\n const data = getData(treeNode, component, f7, initial, isRoot);\n const children = isCustomComponent(treeNode.type)\n ? []\n : getChildren(treeNode, component, f7, initial);\n\n return h(getTagName(treeNode), data, children);\n};\n\nexport default function vdom(tree = {}, component, initial) {\n return treeNodeToVNode(tree, component, component.f7, initial, true);\n}\n","function createElement(tagName) {\n return document.createElement(tagName);\n}\nfunction createElementNS(namespaceURI, qualifiedName) {\n return document.createElementNS(namespaceURI, qualifiedName);\n}\nfunction createTextNode(text) {\n return document.createTextNode(text);\n}\nfunction createComment(text) {\n return document.createComment(text);\n}\nfunction insertBefore(parentNode, newNode, referenceNode) {\n if (referenceNode && referenceNode.parentNode !== parentNode) {\n if (referenceNode.__component__) referenceNode = referenceNode.__component__.el;\n }\n parentNode.insertBefore(newNode, referenceNode);\n}\nfunction removeChild(node, child) {\n if (!node) return;\n node.removeChild(child);\n}\nfunction appendChild(node, child) {\n node.appendChild(child);\n}\nfunction parentNode(node) {\n return node.parentNode;\n}\nfunction nextSibling(node) {\n return node.nextSibling;\n}\nfunction tagName(elm) {\n return elm.tagName;\n}\nfunction setTextContent(node, text) {\n node.textContent = text;\n}\nfunction getTextContent(node) {\n return node.textContent;\n}\nfunction isElement(node) {\n return node.nodeType === 1;\n}\nfunction isText(node) {\n return node.nodeType === 3;\n}\nfunction isComment(node) {\n return node.nodeType === 8;\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;\n//# sourceMappingURL=htmldomapi.js.map\n","import vnode from './vnode.js';\nimport * as is from './is.js';\nimport htmlDomApi from './htmldomapi.js';\nfunction isUndef(s) { return s === undefined; }\nfunction isDef(s) { return s !== undefined; }\nvar emptyNode = vnode('', {}, [], undefined, undefined);\nfunction sameVnode(vnode1, vnode2) {\n return vnode1.key === vnode2.key && vnode1.sel === vnode2.sel;\n}\nfunction isVnode(vnode) {\n return vnode.sel !== undefined;\n}\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\n var i, map = {}, key, ch;\n for (i = beginIdx; i <= endIdx; ++i) {\n ch = children[i];\n if (ch != null) {\n key = ch.key;\n if (key !== undefined)\n map[key] = i;\n }\n }\n return map;\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, j, cbs = {};\n var api = domApi !== undefined ? domApi : htmlDomApi;\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n var hook = modules[j][hooks[i]];\n if (hook !== undefined) {\n cbs[hooks[i]].push(hook);\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 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 function createElm(vnode, insertedVnodeQueue) {\n var i, data = vnode.data;\n if (data !== undefined) {\n if (isDef(i = data.hook) && isDef(i = i.init)) {\n i(vnode);\n data = vnode.data;\n }\n }\n var children = vnode.children, sel = vnode.sel;\n if (sel === '!') {\n if (isUndef(vnode.text)) {\n vnode.text = '';\n }\n vnode.elm = api.createComment(vnode.text);\n }\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)\n : api.createElement(tag);\n if (hash < dot)\n elm.setAttribute('id', sel.slice(hash + 1, dot));\n if (dotIdx > 0)\n elm.setAttribute('class', sel.slice(dot + 1).replace(/\\./g, ' '));\n for (i = 0; i < cbs.create.length; ++i)\n cbs.create[i](emptyNode, vnode);\n if (is.array(children)) {\n for (i = 0; i < children.length; ++i) {\n var ch = children[i];\n if (ch != null) {\n api.appendChild(elm, createElm(ch, insertedVnodeQueue));\n }\n }\n }\n else if (is.primitive(vnode.text)) {\n api.appendChild(elm, api.createTextNode(vnode.text));\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (i.create)\n i.create(emptyNode, vnode);\n if (i.insert)\n insertedVnodeQueue.push(vnode);\n }\n }\n else {\n vnode.elm = api.createTextNode(vnode.text);\n }\n return vnode.elm;\n }\n function addVnodes(parentElm, before, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (ch != null) {\n api.insertBefore(parentElm, createElm(ch, insertedVnodeQueue), before);\n }\n }\n }\n function invokeDestroyHook(vnode) {\n var i, j, data = vnode.data;\n if (data !== undefined) {\n if (isDef(i = data.hook) && isDef(i = i.destroy))\n i(vnode);\n for (i = 0; i < cbs.destroy.length; ++i)\n cbs.destroy[i](vnode);\n if (vnode.children !== undefined) {\n for (j = 0; j < vnode.children.length; ++j) {\n i = vnode.children[j];\n if (i != null && typeof i !== \"string\") {\n invokeDestroyHook(i);\n }\n }\n }\n }\n }\n function removeVnodes(parentElm, vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var i_1 = void 0, listeners = void 0, rm = void 0, ch = vnodes[startIdx];\n if (ch != null) {\n if (isDef(ch.sel)) {\n invokeDestroyHook(ch);\n listeners = cbs.remove.length + 1;\n rm = createRmCb(ch.elm, listeners);\n for (i_1 = 0; i_1 < cbs.remove.length; ++i_1)\n cbs.remove[i_1](ch, rm);\n if (isDef(i_1 = ch.data) && isDef(i_1 = i_1.hook) && isDef(i_1 = i_1.remove)) {\n i_1(ch, rm);\n }\n else {\n rm();\n }\n }\n else {\n api.removeChild(parentElm, ch.elm);\n }\n }\n }\n }\n function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue) {\n var oldStartIdx = 0, newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx;\n var idxInOld;\n var elmToMove;\n var before;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode might have been moved left\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldStartVnode, newEndVnode)) {\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);\n api.insertBefore(parentElm, oldStartVnode.elm, api.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldEndVnode, newStartVnode)) {\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);\n api.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n if (oldKeyToIdx === undefined) {\n oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n }\n idxInOld = oldKeyToIdx[newStartVnode.key];\n if (isUndef(idxInOld)) {\n api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm);\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n elmToMove = oldCh[idxInOld];\n if (elmToMove.sel !== newStartVnode.sel) {\n api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm);\n }\n else {\n patchVnode(elmToMove, newStartVnode, insertedVnodeQueue);\n oldCh[idxInOld] = undefined;\n api.insertBefore(parentElm, elmToMove.elm, oldStartVnode.elm);\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n }\n if (oldStartIdx <= oldEndIdx || newStartIdx <= newEndIdx) {\n if (oldStartIdx > oldEndIdx) {\n before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n }\n else {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n }\n }\n }\n function patchVnode(oldVnode, vnode, insertedVnodeQueue) {\n var i, hook;\n if (isDef(i = vnode.data) && isDef(hook = i.hook) && isDef(i = hook.prepatch)) {\n i(oldVnode, vnode);\n }\n var elm = vnode.elm = oldVnode.elm;\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (oldVnode === vnode)\n return;\n if (vnode.data !== undefined) {\n for (i = 0; i < cbs.update.length; ++i)\n cbs.update[i](oldVnode, vnode);\n i = vnode.data.hook;\n if (isDef(i) && isDef(i = i.update))\n i(oldVnode, vnode);\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch)\n updateChildren(elm, oldCh, ch, insertedVnodeQueue);\n }\n else if (isDef(ch)) {\n if (isDef(oldVnode.text))\n api.setTextContent(elm, '');\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n }\n else if (isDef(oldCh)) {\n removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n }\n else if (isDef(oldVnode.text)) {\n api.setTextContent(elm, '');\n }\n }\n else if (oldVnode.text !== vnode.text) {\n api.setTextContent(elm, vnode.text);\n }\n if (isDef(hook) && isDef(i = hook.postpatch)) {\n i(oldVnode, vnode);\n }\n }\n return function patch(oldVnode, vnode) {\n var i, elm, parent;\n var insertedVnodeQueue = [];\n for (i = 0; i < cbs.pre.length; ++i)\n cbs.pre[i]();\n if (!isVnode(oldVnode)) {\n oldVnode = emptyNodeAt(oldVnode);\n }\n if (sameVnode(oldVnode, vnode)) {\n patchVnode(oldVnode, vnode, insertedVnodeQueue);\n }\n else {\n elm = oldVnode.elm;\n parent = api.parentNode(elm);\n createElm(vnode, insertedVnodeQueue);\n if (parent !== null) {\n api.insertBefore(parent, vnode.elm, api.nextSibling(elm));\n removeVnodes(parent, [oldVnode], 0, 0);\n }\n }\n for (i = 0; i < insertedVnodeQueue.length; ++i) {\n insertedVnodeQueue[i].data.hook.insert(insertedVnodeQueue[i]);\n }\n for (i = 0; i < cbs.post.length; ++i)\n cbs.post[i]();\n return vnode;\n };\n}\n//# sourceMappingURL=snabbdom.js.map\n","var xlinkNS = 'http://www.w3.org/1999/xlink';\nvar xmlNS = 'http://www.w3.org/XML/1998/namespace';\nvar colonChar = 58;\nvar xChar = 120;\nfunction updateAttrs(oldVnode, vnode) {\n var key, elm = vnode.elm, oldAttrs = oldVnode.data.attrs, attrs = vnode.data.attrs;\n if (!oldAttrs && !attrs)\n return;\n if (oldAttrs === attrs)\n return;\n oldAttrs = oldAttrs || {};\n attrs = attrs || {};\n // update modified attributes, add new attributes\n for (key in attrs) {\n var cur = attrs[key];\n var old = oldAttrs[key];\n if (old !== cur) {\n if (cur === true) {\n elm.setAttribute(key, \"\");\n }\n else if (cur === false) {\n elm.removeAttribute(key);\n }\n else {\n if (key.charCodeAt(0) !== xChar) {\n elm.setAttribute(key, cur);\n }\n else if (key.charCodeAt(3) === colonChar) {\n // Assume xml namespace\n elm.setAttributeNS(xmlNS, key, cur);\n }\n else if (key.charCodeAt(5) === colonChar) {\n // Assume xlink namespace\n elm.setAttributeNS(xlinkNS, key, cur);\n }\n else {\n elm.setAttribute(key, cur);\n }\n }\n }\n }\n // remove removed attributes\n // use `in` operator since the previous `for` iteration uses it (.i.e. add even attributes with undefined value)\n // the other option is to remove all attributes with value == undefined\n for (key in oldAttrs) {\n if (!(key in attrs)) {\n elm.removeAttribute(key);\n }\n }\n}\nexport var attributesModule = { create: updateAttrs, update: updateAttrs };\nexport default attributesModule;\n//# sourceMappingURL=attributes.js.map","function updateProps(oldVnode, vnode) {\n var key, cur, old, elm = vnode.elm, oldProps = oldVnode.data.props, props = vnode.data.props;\n if (!oldProps && !props)\n return;\n if (oldProps === props)\n return;\n oldProps = oldProps || {};\n props = props || {};\n for (key in oldProps) {\n if (!props[key]) {\n delete elm[key];\n }\n }\n for (key in props) {\n cur = props[key];\n old = oldProps[key];\n if (old !== cur && (key !== 'value' || elm[key] !== cur)) {\n elm[key] = cur;\n }\n }\n}\nexport var propsModule = { create: updateProps, update: updateProps };\nexport default propsModule;\n//# sourceMappingURL=props.js.map","var raf = (typeof window !== 'undefined' && window.requestAnimationFrame) || setTimeout;\nvar nextFrame = function (fn) { raf(function () { raf(fn); }); };\nfunction setNextFrame(obj, prop, val) {\n nextFrame(function () { obj[prop] = val; });\n}\nfunction updateStyle(oldVnode, vnode) {\n var cur, name, elm = vnode.elm, oldStyle = oldVnode.data.style, style = vnode.data.style;\n if (!oldStyle && !style)\n return;\n if (oldStyle === style)\n return;\n oldStyle = oldStyle || {};\n style = style || {};\n var oldHasDel = 'delayed' in oldStyle;\n for (name in oldStyle) {\n if (!style[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.removeProperty(name);\n }\n else {\n elm.style[name] = '';\n }\n }\n }\n for (name in style) {\n cur = style[name];\n if (name === 'delayed' && style.delayed) {\n for (var name2 in style.delayed) {\n cur = style.delayed[name2];\n if (!oldHasDel || cur !== oldStyle.delayed[name2]) {\n setNextFrame(elm.style, name2, cur);\n }\n }\n }\n else if (name !== 'remove' && cur !== oldStyle[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.setProperty(name, cur);\n }\n else {\n elm.style[name] = cur;\n }\n }\n }\n}\nfunction applyDestroyStyle(vnode) {\n var style, name, elm = vnode.elm, s = vnode.data.style;\n if (!s || !(style = s.destroy))\n return;\n for (name in style) {\n elm.style[name] = style[name];\n }\n}\nfunction applyRemoveStyle(vnode, rm) {\n var s = vnode.data.style;\n if (!s || !s.remove) {\n rm();\n return;\n }\n var name, elm = vnode.elm, i = 0, compStyle, style = s.remove, amount = 0, applied = [];\n for (name in style) {\n applied.push(name);\n elm.style[name] = style[name];\n }\n compStyle = getComputedStyle(elm);\n var props = compStyle['transition-property'].split(', ');\n for (; i < props.length; ++i) {\n if (applied.indexOf(props[i]) !== -1)\n amount++;\n }\n elm.addEventListener('transitionend', function (ev) {\n if (ev.target === elm)\n --amount;\n if (amount === 0)\n rm();\n });\n}\nexport var styleModule = {\n create: updateStyle,\n update: updateStyle,\n destroy: applyDestroyStyle,\n remove: applyRemoveStyle\n};\nexport default styleModule;\n//# sourceMappingURL=style.js.map","import $ from '../../shared/dom7.js';\n\nfunction invokeHandler(handler, event, args) {\n if (typeof handler === 'function') {\n // call function handler\n handler(event, ...args);\n }\n}\nfunction handleEvent(event, args, vnode) {\n const name = event.type;\n const on = vnode.data.on;\n // call event handler(s) if exists\n if (on && on[name]) {\n invokeHandler(on[name], event, args, vnode);\n }\n}\nfunction createListener() {\n return function handler(event, ...args) {\n handleEvent(event, args, handler.vnode);\n };\n}\nfunction updateEvents(oldVnode, vnode) {\n const oldOn = oldVnode.data.on;\n const oldListener = oldVnode.listener;\n const oldElm = oldVnode.elm;\n const on = vnode && vnode.data.on;\n const elm = vnode && vnode.elm;\n // optimization for reused immutable handlers\n if (oldOn === on) {\n return;\n }\n // remove existing listeners which no longer used\n if (oldOn && oldListener) {\n // if element changed or deleted we remove all existing listeners unconditionally\n if (!on) {\n Object.keys(oldOn).forEach((name) => {\n $(oldElm).off(name, oldListener);\n });\n } else {\n Object.keys(oldOn).forEach((name) => {\n if (!on[name]) {\n $(oldElm).off(name, oldListener);\n }\n });\n }\n }\n // add new listeners which has not already attached\n if (on) {\n // reuse existing listener or create new\n const listener = oldVnode.listener || createListener();\n vnode.listener = listener;\n // update vnode for listener\n listener.vnode = vnode;\n // if element changed or added we add all needed listeners unconditionally\n if (!oldOn) {\n Object.keys(on).forEach((name) => {\n $(elm).on(name, listener);\n });\n } else {\n Object.keys(on).forEach((name) => {\n if (!oldOn[name]) {\n $(elm).on(name, listener);\n }\n });\n }\n }\n}\n\nexport default {\n create: updateEvents,\n update: updateEvents,\n destroy: updateEvents,\n};\n","/* eslint import/no-named-as-default: off */\nimport { init } from './snabbdom/snabbdom.js';\nimport attributesModule from './snabbdom/modules/attributes.js';\nimport propsModule from './snabbdom/modules/props.js';\nimport styleModule from './snabbdom/modules/style.js';\nimport eventListenersModule from './eventslisteners.js';\n\nconst patch = init([attributesModule, propsModule, styleModule, eventListenersModule]);\n\nexport default patch;\n","/* eslint no-underscore-dangle: \"off\" */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport $h from './$h.js';\nimport { id as generateId, merge, eventNameToColonCase, deleteProps } from '../../shared/utils.js';\nimport vdom from './vdom.js';\nimport patch from './patch.js';\n\nclass Component {\n constructor(app, component, props = {}, { el, context, children } = {}) {\n const 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 const createComponent = () => {\n return component(this.props, this.getComponentContext(true));\n };\n\n const getRenderFuncion = (componentResult) =>\n new Promise((resolve, reject) => {\n if (typeof componentResult === 'function') {\n resolve(componentResult);\n } else if (componentResult instanceof Promise) {\n componentResult\n .then((render) => {\n resolve(render);\n })\n .catch((err) => {\n reject(err);\n });\n } else {\n reject(\n new Error(\n 'Framework7: Component render function is not a \"function\" type. Didn\\'t you forget to \"return $render\"?',\n ),\n );\n }\n });\n\n return new Promise((resolve, reject) => {\n const componentResult = createComponent();\n getRenderFuncion(componentResult)\n .then((render) => {\n this.renderFunction = render;\n\n const tree = this.render();\n\n if (el) {\n this.vnode = vdom(tree, this, true);\n if (this.style) {\n this.styleEl = document.createElement('style');\n this.styleEl.innerHTML = this.style;\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 this.el.f7Component = this;\n this.mount();\n resolve(this);\n return;\n }\n // Make Dom\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 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 })\n .catch((err) => {\n reject(err);\n });\n });\n }\n\n on(eventName, handler) {\n if (!this.__eventHandlers) return;\n this.__eventHandlers.push({ eventName, handler });\n }\n\n once(eventName, handler) {\n if (!this.__eventHandlers) return;\n this.__onceEventHandlers.push({ eventName, handler });\n }\n\n getComponentRef() {\n const self = this;\n return (initialValue) => {\n let value = initialValue;\n const obj = {};\n Object.defineProperty(obj, 'value', {\n get() {\n return value;\n },\n set(v) {\n value = v;\n self.update();\n },\n });\n return obj;\n };\n }\n\n getComponentStore() {\n const { state, _gettersPlain, dispatch } = this.f7.store;\n const $store = {\n state,\n dispatch,\n };\n $store.getters = new Proxy(_gettersPlain, {\n get: (target, prop) => {\n const obj = target[prop];\n const callback = (v) => {\n obj.value = v;\n this.update();\n };\n obj.onUpdated(callback);\n return obj;\n },\n });\n\n return $store;\n }\n\n getComponentContext(includeHooks) {\n const ctx = {\n $f7route: this.context.f7route,\n $f7router: this.context.f7router,\n $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 $ref: this.getComponentRef(),\n $el: {},\n };\n Object.defineProperty(ctx.$el, 'value', {\n get: () => {\n return this.$el;\n },\n });\n if (includeHooks)\n Object.assign(ctx, {\n $on: this.on.bind(this),\n $once: this.once.bind(this),\n $onBeforeMount: (handler) => this.__onBeforeMount.push(handler),\n $onMounted: (handler) => this.__onMounted.push(handler),\n $onBeforeUpdate: (handler) => this.__onBeforeUpdate.push(handler),\n $onUpdated: (handler) => this.__onUpdated.push(handler),\n $onBeforeUnmount: (handler) => this.__onBeforeUnmount.push(handler),\n $onUnmounted: (handler) => this.__onUnmounted.push(handler),\n });\n\n return ctx;\n }\n\n render() {\n return this.renderFunction(this.getComponentContext());\n }\n\n emit(name, data) {\n if (!this.el) return;\n this.$el.trigger(name, data);\n }\n\n attachEvents() {\n const { $el } = this;\n if (!this.__eventHandlers) return;\n this.__eventHandlers.forEach(({ eventName, handler }) => {\n $el.on(eventNameToColonCase(eventName), handler);\n });\n this.__onceEventHandlers.forEach(({ eventName, handler }) => {\n $el.once(eventNameToColonCase(eventName), handler);\n });\n }\n\n detachEvents() {\n const { $el } = this;\n if (!this.__eventHandlers) return;\n this.__eventHandlers.forEach(({ eventName, handler }) => {\n $el.on(eventNameToColonCase(eventName), handler);\n });\n this.__onceEventHandlers.forEach(({ eventName, handler }) => {\n $el.once(eventNameToColonCase(eventName), handler);\n });\n }\n\n startUpdateQueue() {\n const window = getWindow();\n if (this.__requestAnimationFrameId) return;\n const update = () => {\n this.hook('onBeforeUpdate');\n const tree = this.render();\n\n // Make Dom\n if (tree) {\n const newVNode = vdom(tree, this, false);\n this.vnode = patch(this.vnode, newVNode);\n }\n };\n this.__requestAnimationFrameId = window.requestAnimationFrame(() => {\n if (this.__updateIsPending) update();\n let resolvers = [...this.__updateQueue];\n this.__updateQueue = [];\n this.__updateIsPending = false;\n window.cancelAnimationFrame(this.__requestAnimationFrameId);\n delete this.__requestAnimationFrameId;\n delete this.__updateIsPending;\n resolvers.forEach((resolver) => resolver());\n resolvers = [];\n });\n }\n\n tick(callback) {\n return new Promise((resolve) => {\n function resolver() {\n resolve();\n if (callback) callback();\n }\n this.__updateQueue.push(resolver);\n this.startUpdateQueue();\n });\n }\n\n update(callback) {\n if (this.__destroyed) return new Promise(() => {});\n return new Promise((resolve) => {\n const resolver = () => {\n resolve();\n if (callback) callback();\n };\n this.__updateIsPending = true;\n this.__updateQueue.push(resolver);\n this.startUpdateQueue();\n });\n }\n\n setState(callback) {\n return this.update(callback);\n }\n\n f7ready(callback) {\n if (this.f7.initialized) {\n callback(this.f7);\n return;\n }\n this.f7.once('init', () => {\n callback(this.f7);\n });\n }\n\n mount(mountMethod) {\n 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 destroy() {\n if (this.__destroyed) return;\n const window = getWindow();\n this.hook('onBeforeUnmount');\n\n if (this.styleEl) $(this.styleEl).remove();\n\n this.detachEvents();\n this.hook('onUnmounted');\n // Delete component instance\n if (this.el && this.el.f7Component) {\n this.el.f7Component = null;\n delete this.el.f7Component;\n }\n // Patch with empty node\n if (this.vnode) {\n this.vnode = patch(this.vnode, { sel: this.vnode.sel, data: {} });\n }\n // Clear update queue\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 = [];\n // Delete all props\n deleteProps(this);\n this.__destroyed = true;\n }\n\n hook(name, ...args) {\n if (this.__destroyed) return;\n this[`__${name}`].forEach((handler) => {\n handler(...args);\n });\n }\n}\n\nexport default Component;\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { id } from '../../shared/utils.js';\n\nfunction parseComponent(componentString) {\n const window = getWindow();\n const document = getDocument();\n const componentId = id();\n const callbackCreateName = `f7_component_create_callback_${componentId}`;\n\n // Template\n let template;\n const hasTemplate = componentString.match(/<template([ ]?)([a-z0-9-]*)>/);\n if (hasTemplate) {\n template = componentString\n .split(/<template[ ]?[a-z0-9-]*>/)\n .filter((item, index) => index > 0)\n .join('<template>')\n .split('</template>')\n .filter((item, index, arr) => index < arr.length - 1)\n .join('</template>')\n .replace(/{{#raw}}([ \\n]*)<template/g, '{{#raw}}<template')\n .replace(/\\/template>([ \\n]*){{\\/raw}}/g, '/template>{{/raw}}')\n .replace(/([ \\n])<template/g, '$1{{#raw}}<template')\n .replace(/\\/template>([ \\n])/g, '/template>{{/raw}}$1');\n }\n\n // Parse Styles\n let style = null;\n\n if (componentString.indexOf('<style>') >= 0) {\n style = componentString.split('<style>')[1].split('</style>')[0];\n }\n if (componentString.indexOf('<style scoped>') >= 0) {\n style = componentString.split('<style scoped>')[1].split('</style>')[0];\n }\n\n // Parse Script\n let scriptContent;\n if (componentString.indexOf('<script>') >= 0) {\n const scripts = componentString.split('<script>');\n scriptContent = scripts[scripts.length - 1].split('</script>')[0].trim();\n } else {\n scriptContent = 'return () => {return $render}';\n }\n if (!scriptContent || !scriptContent.trim()) scriptContent = 'return () => {return $render}';\n\n // Parse Template\n if (template) {\n scriptContent = scriptContent\n .replace(\n '$render',\n `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 var $ref = $$ctx.$ref;\n\n return $h\\`${template}\\`\n }\n `,\n )\n .replace(/export default/g, 'return');\n }\n\n // Execute Script\n scriptContent = `window.${callbackCreateName} = function () {${scriptContent}}`;\n\n // Insert Script El\n const scriptEl = document.createElement('script');\n scriptEl.innerHTML = scriptContent;\n $('head').append(scriptEl);\n\n const component = window[callbackCreateName]();\n\n // Remove Script El\n $(scriptEl).remove();\n window[callbackCreateName] = null;\n delete window[callbackCreateName];\n\n // Assign Style\n if (style) {\n component.style = style;\n }\n\n // Component ID\n component.id = componentId;\n return component;\n}\n\nexport default parseComponent;\n","import Component from './component-class.js';\nimport parseComponent from './parse-component.js';\nimport customComponents from './custom-components.js';\nimport $jsx from './$jsx.js';\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,\n registerComponent,\n unregisterComponent,\n },\n create() {\n const app = this;\n app.component = {\n registerComponent,\n unregisterComponent,\n parse(componentString) {\n return parseComponent(componentString);\n },\n create(component, props, { root, el, context, children }) {\n return new Component(app, component, props, { root, el, context, children });\n },\n };\n },\n};\n","import History from '../../shared/history.js';\n\nexport default {\n name: 'history',\n static: {\n history: History,\n },\n on: {\n init() {\n History.init(this);\n },\n },\n};\n","import { getWindow } from 'ssr-window';\nimport { extend } from '../../shared/utils.js';\n\nconst SW = {\n registrations: [],\n register(path, scope) {\n const app = this;\n const window = getWindow();\n\n if (!('serviceWorker' in window.navigator) || !app.serviceWorker.container) {\n return new Promise((resolve, reject) => {\n reject(new Error('Service worker is not supported'));\n });\n }\n return new Promise((resolve, reject) => {\n app.serviceWorker.container\n .register(path, scope ? { scope } : {})\n .then((reg) => {\n SW.registrations.push(reg);\n app.emit('serviceWorkerRegisterSuccess', reg);\n resolve(reg);\n })\n .catch((error) => {\n app.emit('serviceWorkerRegisterError', error);\n reject(error);\n });\n });\n },\n unregister(registration) {\n const app = this;\n const window = getWindow();\n if (!('serviceWorker' in window.navigator) || !app.serviceWorker.container) {\n return new Promise((resolve, reject) => {\n reject(new Error('Service worker is not supported'));\n });\n }\n let registrations;\n if (!registration) registrations = SW.registrations;\n else if (Array.isArray(registration)) registrations = registration;\n else registrations = [registration];\n return Promise.all(\n registrations.map(\n (reg) =>\n new Promise((resolve, reject) => {\n reg\n .unregister()\n .then(() => {\n if (SW.registrations.indexOf(reg) >= 0) {\n SW.registrations.splice(SW.registrations.indexOf(reg), 1);\n }\n app.emit('serviceWorkerUnregisterSuccess', reg);\n resolve();\n })\n .catch((error) => {\n app.emit('serviceWorkerUnregisterError', reg, error);\n reject(error);\n });\n }),\n ),\n );\n },\n};\n\nexport default {\n name: 'sw',\n params: {\n serviceWorker: {\n path: undefined,\n scope: undefined,\n },\n },\n create() {\n const app = this;\n const 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() {\n const window = getWindow();\n if (!('serviceWorker' in window.navigator)) return;\n const app = this;\n if (app.device.cordova || (window.Capacitor && window.Capacitor.isNative)) return;\n if (!app.serviceWorker.container) return;\n const paths = app.params.serviceWorker.path;\n const scope = app.params.serviceWorker.scope;\n if (!paths || (Array.isArray(paths) && !paths.length)) return;\n const toRegister = Array.isArray(paths) ? paths : [paths];\n toRegister.forEach((path) => {\n app.serviceWorker.register(path, scope);\n });\n },\n },\n};\n","/* eslint-disable no-underscore-dangle */\nimport { extend } from '../../shared/utils.js';\n\nfunction createStore(storeParams = {}) {\n const store = {\n __store: true,\n };\n const originalState = { ...(storeParams.state || {}) };\n const actions = { ...(storeParams.actions || {}) };\n const getters = { ...(storeParams.getters || {}) };\n const state = extend({}, originalState);\n\n let propsQueue = [];\n const gettersDependencies = {};\n const gettersCallbacks = {};\n\n Object.keys(getters).forEach((getterKey) => {\n gettersDependencies[getterKey] = [];\n gettersCallbacks[getterKey] = [];\n });\n\n const getGetterValue = (getterKey) => {\n return getters[getterKey]({ state: store.state });\n };\n\n const addGetterDependencies = (getterKey, deps) => {\n if (!gettersDependencies[getterKey]) gettersDependencies[getterKey] = [];\n deps.forEach((dep) => {\n if (gettersDependencies[getterKey].indexOf(dep) < 0) {\n gettersDependencies[getterKey].push(dep);\n }\n });\n };\n\n const addGetterCallback = (getterKey, callback) => {\n if (!gettersCallbacks[getterKey]) gettersCallbacks[getterKey] = [];\n gettersCallbacks[getterKey].push(callback);\n };\n\n const runGetterCallbacks = (stateKey) => {\n const keys = Object.keys(gettersDependencies).filter((getterKey) => {\n return gettersDependencies[getterKey].indexOf(stateKey) >= 0;\n });\n keys.forEach((getterKey) => {\n if (!gettersCallbacks[getterKey] || !gettersCallbacks[getterKey].length) return;\n gettersCallbacks[getterKey].forEach((callback) => {\n callback(getGetterValue(getterKey));\n });\n });\n };\n\n const removeGetterCallback = (callback) => {\n Object.keys(gettersCallbacks).forEach((stateKey) => {\n const callbacks = gettersCallbacks[stateKey];\n\n if (callbacks.indexOf(callback) >= 0) {\n callbacks.splice(callbacks.indexOf(callback), 1);\n }\n });\n };\n\n // eslint-disable-next-line\n store.__removeCallback = (callback) => {\n removeGetterCallback(callback);\n };\n\n const getterValue = (getterKey, addCallback = true) => {\n if (getterKey === 'constructor') return undefined;\n propsQueue = [];\n const value = getGetterValue(getterKey);\n addGetterDependencies(getterKey, propsQueue);\n const onUpdated = (callback) => {\n addGetterCallback(getterKey, callback);\n };\n\n const obj = {\n value,\n onUpdated,\n };\n\n if (!addCallback) {\n return obj;\n }\n\n const callback = (v) => {\n obj.value = v;\n };\n\n obj.__callback = callback;\n addGetterCallback(getterKey, callback);\n // eslint-disable-next-line\n return obj;\n };\n\n store.state = new Proxy(state, {\n set: (target, prop, value) => {\n target[prop] = value;\n runGetterCallbacks(prop);\n return true;\n },\n get: (target, prop) => {\n propsQueue.push(prop);\n return target[prop];\n },\n });\n\n store.getters = new Proxy(getters, {\n set: () => false,\n get: (target, prop) => {\n if (!target[prop]) {\n return undefined;\n }\n return getterValue(prop, true);\n },\n });\n\n store._gettersPlain = new Proxy(getters, {\n set: () => false,\n get: (target, prop) => {\n if (!target[prop]) {\n return undefined;\n }\n return getterValue(prop, false);\n },\n });\n\n store.dispatch = (actionName, data) => {\n return new Promise((resolve, reject) => {\n if (!actions[actionName]) {\n reject();\n throw new Error(`Framework7: Store action \"${actionName}\" is not found`);\n }\n const result = actions[actionName]({ state: store.state, dispatch: store.dispatch }, data);\n resolve(result);\n });\n };\n\n return store;\n}\n\nexport default createStore;\n","import createStore from './create-store.js';\n\nexport { createStore };\nexport default {\n name: 'store',\n static: { createStore },\n proto: { createStore },\n};\n","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { bindMethods } from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\n\nconst isCapacitor = () => {\n const window = getWindow();\n return (\n window.Capacitor &&\n window.Capacitor.isNative &&\n window.Capacitor.Plugins &&\n window.Capacitor.Plugins.StatusBar\n );\n};\n\nconst Statusbar = {\n hide() {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.hide();\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.hide();\n }\n },\n show() {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.show();\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.show();\n }\n },\n onClick() {\n const app = this;\n let pageContent;\n if ($('.popup.modal-in').length > 0) {\n // Check for opened popup\n pageContent = $('.popup.modal-in')\n .find('.page:not(.page-previous):not(.page-next):not(.cached)')\n .find('.page-content');\n } else if ($('.panel.panel-in').length > 0) {\n // Check for opened panel\n pageContent = $('.panel.panel-in')\n .find('.page:not(.page-previous):not(.page-next):not(.cached)')\n .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')\n .find('.page:not(.page-previous):not(.page-next):not(.cached)')\n .find('.page-content');\n } else if ($('.views').length > 0) {\n pageContent = $('.views')\n .find('.page:not(.page-previous):not(.page-next):not(.cached)')\n .find('.page-content');\n } else {\n pageContent = app.$el\n .children('.view')\n .find('.page:not(.page-previous):not(.page-next):not(.cached)')\n .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 if (pageContent.length > 0) pageContent.scrollTop(0, 300);\n }\n },\n setTextColor(color) {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n if (color === 'white') {\n window.StatusBar.styleLightContent();\n } else {\n window.StatusBar.styleDefault();\n }\n }\n if (isCapacitor()) {\n if (color === 'white') {\n window.Capacitor.Plugins.StatusBar.setStyle({ style: 'DARK' });\n } else {\n window.Capacitor.Plugins.StatusBar.setStyle({ style: 'LIGHT' });\n }\n }\n },\n setBackgroundColor(color) {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.backgroundColorByHexString(color);\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.setBackgroundColor({ color });\n }\n },\n isVisible() {\n const window = getWindow();\n const device = getDevice();\n return new Promise((resolve) => {\n if (device.cordova && window.StatusBar) {\n resolve(window.StatusBar.isVisible);\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.getInfo().then((info) => {\n resolve(info.visible);\n });\n }\n resolve(false);\n });\n },\n overlaysWebView(overlays = true) {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.overlaysWebView(overlays);\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.setOverlaysWebView({ overlay: overlays });\n }\n },\n init() {\n const app = this;\n const window = getWindow();\n const device = getDevice();\n const params = app.params.statusbar;\n if (!params.enabled) return;\n const isCordova = device.cordova && window.StatusBar;\n const isCap = isCapacitor();\n\n if (isCordova || isCap) {\n if (params.scrollTopOnClick) {\n $(window).on('statusTap', Statusbar.onClick.bind(app));\n }\n if (device.ios) {\n if (params.iosOverlaysWebView) {\n Statusbar.overlaysWebView(true);\n } else {\n Statusbar.overlaysWebView(false);\n }\n if (params.iosTextColor === 'white') {\n Statusbar.setTextColor('white');\n } else {\n Statusbar.setTextColor('black');\n }\n }\n if (device.android) {\n if (params.androidOverlaysWebView) {\n Statusbar.overlaysWebView(true);\n } else {\n Statusbar.overlaysWebView(false);\n }\n if (params.androidTextColor === 'white') {\n Statusbar.setTextColor('white');\n } else {\n Statusbar.setTextColor('black');\n }\n }\n }\n if (params.iosBackgroundColor && device.ios) {\n Statusbar.setBackgroundColor(params.iosBackgroundColor);\n }\n if (params.androidBackgroundColor && device.android) {\n Statusbar.setBackgroundColor(params.androidBackgroundColor);\n }\n },\n};\n\nexport default {\n name: 'statusbar',\n params: {\n statusbar: {\n enabled: true,\n\n scrollTopOnClick: true,\n\n iosOverlaysWebView: true,\n iosTextColor: 'black',\n iosBackgroundColor: null,\n\n androidOverlaysWebView: false,\n androidTextColor: 'black',\n androidBackgroundColor: null,\n },\n },\n create() {\n const app = this;\n bindMethods(app, {\n statusbar: Statusbar,\n });\n },\n on: {\n init() {\n const app = this;\n Statusbar.init.call(app);\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport View from './view-class.js';\n\nfunction getCurrentView(app) {\n const $popoverView = $('.popover.modal-in .view');\n const $popupView = $('.popup.modal-in .view');\n const $panelView = $('.panel.panel-in .view');\n let $viewsEl = $('.views');\n if ($viewsEl.length === 0) $viewsEl = app.$el;\n // Find active view as tab\n let $viewEl = $viewsEl.children('.view');\n if ($viewEl.length === 0) {\n $viewEl = $viewsEl.children('.tabs').children('.view');\n }\n // Propably in tabs or split view\n if ($viewEl.length > 1) {\n if ($viewEl.hasClass('tab')) {\n // Tabs\n $viewEl = $viewsEl.children('.view.tab-active');\n if ($viewEl.length === 0) {\n $viewEl = $viewsEl.children('.tabs').children('.view.tab-active');\n }\n } else {\n // Split View, leave appView intact\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 if ($viewEl.length > 0) {\n if ($viewEl.length === 1 && $viewEl[0].f7View) return $viewEl[0].f7View;\n if ($viewEl.length > 1) {\n return app.views.main;\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, // 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 browserHistoryTabs: 'replace',\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,\n },\n create() {\n const app = this;\n extend(app, {\n views: extend([], {\n create(el, params) {\n return new View(app, el, params);\n },\n get(viewEl) {\n const $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() {\n return getCurrentView(app);\n },\n });\n // Alias\n app.view = app.views;\n },\n on: {\n init() {\n const app = this;\n $('.view-init').each((viewEl) => {\n if (viewEl.f7View) return;\n const viewParams = $(viewEl).dataset();\n app.views.create(viewEl, viewParams);\n });\n },\n 'modalOpen panelOpen': function onOpen(instance) {\n const app = this;\n instance.$el.find('.view-init').each((viewEl) => {\n if (viewEl.f7View) return;\n const 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((viewEl) => {\n const view = viewEl.f7View;\n if (!view) return;\n view.destroy();\n });\n },\n },\n vnode: {\n 'view-init': {\n insert(vnode) {\n const app = this;\n const viewEl = vnode.elm;\n if (viewEl.f7View) return;\n const viewParams = $(viewEl).dataset();\n app.views.create(viewEl, viewParams);\n },\n destroy(vnode) {\n const viewEl = vnode.elm;\n const view = viewEl.f7View;\n if (!view) return;\n view.destroy();\n },\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { bindMethods } from '../../shared/utils.js';\nimport { getSupport } from '../../shared/get-support.js';\n\nconst Navbar = {\n size(el) {\n const app = this;\n\n let $el = $(el);\n\n if ($el.hasClass('navbars')) {\n $el = $el.children('.navbar').each((navbarEl) => {\n app.navbar.size(navbarEl);\n });\n return;\n }\n\n const $innerEl = $el.children('.navbar-inner');\n if (!$innerEl.length) return;\n\n const needCenterTitle =\n $innerEl.hasClass('navbar-inner-centered-title') ||\n app.params.navbar[`${app.theme}CenterTitle`];\n const needLeftTitle = app.theme === 'ios' && !app.params.navbar[`${app.theme}CenterTitle`];\n\n if (!needCenterTitle && !needLeftTitle) return;\n\n if (\n $el.hasClass('stacked') ||\n $el.parents('.stacked').length > 0 ||\n $el.parents('.tab:not(.tab-active)').length > 0 ||\n $el.parents('.popup:not(.modal-in)').length > 0\n ) {\n return;\n }\n\n if (app.theme !== 'ios' && app.params.navbar[`${app.theme}CenterTitle`]) {\n $innerEl.addClass('navbar-inner-centered-title');\n }\n if (app.theme === 'ios' && !app.params.navbar.iosCenterTitle) {\n $innerEl.addClass('navbar-inner-left-title');\n }\n\n const $viewEl = $el.parents('.view').eq(0);\n const left = app.rtl ? $innerEl.children('.right') : $innerEl.children('.left');\n const right = app.rtl ? $innerEl.children('.left') : $innerEl.children('.right');\n const title = $innerEl.children('.title');\n const subnavbar = $innerEl.children('.subnavbar');\n const noLeft = left.length === 0;\n const noRight = right.length === 0;\n const leftWidth = noLeft ? 0 : left.outerWidth(true);\n const rightWidth = noRight ? 0 : right.outerWidth(true);\n const titleWidth = title.outerWidth(true);\n const navbarStyles = $innerEl.styles();\n const navbarWidth = $innerEl[0].offsetWidth;\n const navbarInnerWidth =\n navbarWidth -\n parseInt(navbarStyles.paddingLeft, 10) -\n parseInt(navbarStyles.paddingRight, 10);\n const isPrevious = $el.hasClass('navbar-previous');\n const sliding = $innerEl.hasClass('sliding');\n\n let router;\n let dynamicNavbar;\n\n if ($viewEl.length > 0 && $viewEl[0].f7View) {\n router = $viewEl[0].f7View.router;\n dynamicNavbar = router && router.dynamicNavbar;\n }\n\n let currLeft;\n let diff;\n if (noRight) {\n currLeft = navbarInnerWidth - titleWidth;\n }\n if (noLeft) {\n currLeft = 0;\n }\n if (!noLeft && !noRight) {\n currLeft = (navbarInnerWidth - rightWidth - titleWidth + leftWidth) / 2;\n }\n let requiredLeft = (navbarInnerWidth - titleWidth) / 2;\n if (navbarInnerWidth - leftWidth - rightWidth > titleWidth) {\n if (requiredLeft < leftWidth) {\n requiredLeft = leftWidth;\n }\n if (requiredLeft + titleWidth > navbarInnerWidth - rightWidth) {\n requiredLeft = navbarInnerWidth - rightWidth - titleWidth;\n }\n diff = requiredLeft - currLeft;\n } else {\n diff = 0;\n }\n\n // RTL inverter\n const inverter = app.rtl ? -1 : 1;\n\n if (dynamicNavbar && app.theme === 'ios') {\n if (title.hasClass('sliding') || (title.length > 0 && sliding)) {\n let titleLeftOffset = -(currLeft + diff) * inverter;\n const titleRightOffset = (navbarInnerWidth - currLeft - diff - titleWidth) * inverter;\n\n if (isPrevious) {\n if (router && router.params.iosAnimateNavbarBackIcon) {\n const activeNavbarBackLink = $el\n .parent()\n .find('.navbar-current')\n .children('.left.sliding')\n .find('.back .icon ~ span');\n if (activeNavbarBackLink.length > 0) {\n titleLeftOffset += activeNavbarBackLink[0].offsetLeft;\n }\n }\n }\n title[0].f7NavbarLeftOffset = titleLeftOffset;\n title[0].f7NavbarRightOffset = titleRightOffset;\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 if (\n router &&\n router.params.iosAnimateNavbarBackIcon &&\n left.find('.back .icon').length > 0\n ) {\n if (left.find('.back .icon ~ span').length) {\n const leftOffset = left[0].f7NavbarLeftOffset;\n const 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 =\n rightOffset - left.find('.back .icon')[0].offsetWidth;\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 if (subnavbar.length && (subnavbar.hasClass('sliding') || sliding)) {\n subnavbar[0].f7NavbarLeftOffset = app.rtl\n ? subnavbar[0].offsetWidth\n : -subnavbar[0].offsetWidth;\n subnavbar[0].f7NavbarRightOffset = -subnavbar[0].f7NavbarLeftOffset;\n }\n }\n\n // Center title\n if (needCenterTitle) {\n let titleLeft = diff;\n if (app.rtl && noLeft && noRight && title.length > 0) titleLeft = -titleLeft;\n title.css({ left: `${titleLeft}px` });\n }\n },\n hide(el, animate = true, hideStatusbar = false, hideOnlyCurrent = false) {\n const app = this;\n let $el = $(el);\n const 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 let className = `navbar-hidden${animate ? ' navbar-transitioning' : ''}`;\n const currentIsLarge = isDynamic\n ? $el.find('.navbar-current .title-large').length\n : $el.find('.title-large').length;\n if (currentIsLarge) {\n className += ' navbar-large-hidden';\n }\n if (hideStatusbar) {\n className += ' navbar-hidden-statusbar';\n }\n $el.transitionEnd(() => {\n $el.removeClass('navbar-transitioning');\n });\n $el.addClass(className);\n if (isDynamic) {\n $el.children('.navbar').each((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(el = '.navbar-hidden', animate = true, hideOnlyCurrent = false) {\n const app = this;\n let $el = $(el);\n const 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 if (animate) {\n $el.addClass('navbar-transitioning');\n $el.transitionEnd(() => {\n $el.removeClass('navbar-transitioning');\n });\n }\n $el.removeClass('navbar-hidden navbar-large-hidden navbar-hidden-statusbar');\n if (isDynamic) {\n $el.children('.navbar').each((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(page) {\n let $pageEl;\n let $navbarEl;\n let pageData;\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 if (pageData && pageData.$navbarEl && pageData.$navbarEl.length > 0) {\n $navbarEl = pageData.$navbarEl;\n } else if ($pageEl) {\n $navbarEl = $pageEl.children('.navbar');\n }\n if (!$navbarEl || ($navbarEl && $navbarEl.length === 0)) return undefined;\n return $navbarEl[0];\n },\n getPageByEl(navbarEl) {\n const $navbarEl = $(navbarEl);\n if ($navbarEl.parents('.page').length) {\n return $navbarEl.parents('.page')[0];\n }\n let pageEl;\n $navbarEl\n .parents('.view')\n .find('.page')\n .each((el) => {\n if (el && el.f7Page && el.f7Page.navbarEl && $navbarEl[0] === el.f7Page.navbarEl) {\n pageEl = el;\n }\n });\n return pageEl;\n },\n\n collapseLargeTitle(navbarEl) {\n const app = this;\n let $navbarEl = $(navbarEl);\n if ($navbarEl.hasClass('navbars')) {\n $navbarEl = $navbarEl.find('.navbar');\n if ($navbarEl.length > 1) {\n $navbarEl = $(navbarEl).find('.navbar-large.navbar-current');\n }\n if ($navbarEl.length > 1 || !$navbarEl.length) {\n return;\n }\n }\n const $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(navbarEl) {\n const app = this;\n let $navbarEl = $(navbarEl);\n if ($navbarEl.hasClass('navbars')) {\n $navbarEl = $navbarEl.find('.navbar-large');\n if ($navbarEl.length > 1) {\n $navbarEl = $(navbarEl).find('.navbar-large.navbar-current');\n }\n if ($navbarEl.length > 1 || !$navbarEl.length) {\n return;\n }\n }\n const $pageEl = $(app.navbar.getPageByEl($navbarEl));\n $navbarEl.removeClass('navbar-large-collapsed');\n $pageEl\n .eq(0)\n .removeClass('page-with-navbar-large-collapsed')\n .trigger('page:navbarlargeexpanded');\n app.emit('pageNavbarLargeExpanded', $pageEl[0]);\n $navbarEl.trigger('navbar:expand');\n app.emit('navbarExpand', $navbarEl[0]);\n },\n toggleLargeTitle(navbarEl) {\n const app = this;\n let $navbarEl = $(navbarEl);\n if ($navbarEl.hasClass('navbars')) {\n $navbarEl = $navbarEl.find('.navbar-large');\n if ($navbarEl.length > 1) {\n $navbarEl = $(navbarEl).find('.navbar-large.navbar-current');\n }\n if ($navbarEl.length > 1 || !$navbarEl.length) {\n return;\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(pageEl, navbarEl, needHide, needCollapse, needTransparent) {\n const app = this;\n const support = getSupport();\n const $pageEl = $(pageEl);\n const $navbarEl = $(navbarEl);\n const $titleLargeEl = $navbarEl.find('.title-large');\n const isLarge = $titleLargeEl.length || $navbarEl.hasClass('.navbar-large');\n let navbarHideHeight = 44;\n const snapPageScrollToLargeTitle = app.params.navbar.snapPageScrollToLargeTitle;\n const snapPageScrollToTransparentNavbar = app.params.navbar.snapPageScrollToTransparentNavbar;\n\n let previousScrollTop;\n let currentScrollTop;\n\n let scrollHeight;\n let offsetHeight;\n let reachEnd;\n let action;\n let navbarHidden;\n\n let navbarCollapsed;\n let navbarTitleLargeHeight;\n\n let 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 if (Number.isNaN(navbarTitleLargeHeight) && $titleLargeEl.length) {\n navbarTitleLargeHeight = $titleLargeEl[0].offsetHeight;\n } else if (Number.isNaN(navbarTitleLargeHeight)) {\n if (app.theme === 'ios') navbarTitleLargeHeight = 52;\n else if (app.theme === 'md') navbarTitleLargeHeight = 48;\n 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;\n else if (app.theme === 'md') navbarTitleLargeHeight = 48;\n else if (app.theme === 'aurora') navbarTitleLargeHeight = 38;\n }\n }\n\n if (needHide && isLarge) {\n navbarHideHeight += navbarTitleLargeHeight;\n }\n\n let scrollChanged;\n let scrollContent;\n let scrollTimeoutId;\n let touchEndTimeoutId;\n const touchSnapTimeout = 70;\n const desktopSnapTimeout = 300;\n\n function calcScrollableDistance() {\n $pageEl.find('.page-content').each((pageContentEl) => {\n pageContentEl.f7ScrollableDistance =\n pageContentEl.scrollHeight - pageContentEl.offsetHeight;\n });\n }\n\n function snapLargeNavbar() {\n const inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded) return;\n if (!scrollContent || currentScrollTop < 0) return;\n if (\n currentScrollTop >= navbarTitleLargeHeight / 2 &&\n currentScrollTop < navbarTitleLargeHeight\n ) {\n $(scrollContent).scrollTop(navbarTitleLargeHeight, 100);\n } else if (currentScrollTop < navbarTitleLargeHeight) {\n $(scrollContent).scrollTop(0, 200);\n }\n }\n\n function snapTransparentNavbar() {\n const inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded) return;\n if (!scrollContent || currentScrollTop < 0) return;\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 const isHidden =\n $navbarEl.hasClass('navbar-hidden') ||\n $navbarEl.parent('.navbars').hasClass('navbar-hidden');\n const inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded || isHidden) return;\n if (!navbarOffsetHeight) {\n navbarOffsetHeight = navbarEl.offsetHeight;\n }\n let opacity = currentScrollTop / navbarOffsetHeight;\n const 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 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 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(() => {\n snapTransparentNavbar();\n }, desktopSnapTimeout);\n } else if (touchEndTimeoutId) {\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n touchEndTimeoutId = setTimeout(() => {\n snapTransparentNavbar();\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n }, touchSnapTimeout);\n }\n }\n }\n\n let previousCollapseProgress = null;\n let collapseProgress = null;\n function handleLargeNavbarCollapse(pageContentEl) {\n const isHidden =\n $navbarEl.hasClass('navbar-hidden') ||\n $navbarEl.parent('.navbars').hasClass('navbar-hidden');\n if (isHidden) return;\n const isLargeTransparent =\n $navbarEl.hasClass('navbar-large-transparent') ||\n ($navbarEl.hasClass('navbar-large') && $navbarEl.hasClass('navbar-transparent'));\n previousCollapseProgress = collapseProgress;\n const scrollableDistance = Math.min(\n navbarTitleLargeHeight,\n pageContentEl.f7ScrollableDistance || navbarTitleLargeHeight,\n );\n collapseProgress = Math.min(Math.max(currentScrollTop / scrollableDistance, 0), 1);\n const previousCollapseWasInMiddle =\n previousCollapseProgress > 0 && previousCollapseProgress < 1;\n const inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded) return;\n navbarCollapsed = $navbarEl.hasClass('navbar-large-collapsed');\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 if (\n (collapseProgress === 0 && navbarCollapsed) ||\n (collapseProgress === 0 && previousCollapseWasInMiddle) ||\n (collapseProgress === 1 && !navbarCollapsed) ||\n (collapseProgress === 1 && previousCollapseWasInMiddle)\n ) {\n if (app.theme === 'md') {\n $navbarEl.find('.navbar-inner').css('overflow', '');\n }\n $navbarEl.find('.title').css('opacity', '');\n $navbarEl.find('.title-large-text, .subnavbar').css('transform', '');\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 $navbarEl.find('.title').css('opacity', collapseProgress);\n $navbarEl\n .find('.title-large-text, .subnavbar')\n .css(\n 'transform',\n `translate3d(0px, ${-1 * collapseProgress * navbarTitleLargeHeight}px, 0)`,\n );\n if (isLargeTransparent) {\n $navbarEl.find('.navbar-bg').css('opacity', collapseProgress);\n } else {\n $navbarEl\n .find('.navbar-bg')\n .css(\n 'transform',\n `translate3d(0px, ${-1 * collapseProgress * navbarTitleLargeHeight}px, 0)`,\n );\n }\n }\n\n if (snapPageScrollToLargeTitle) {\n if (!support.touch) {\n clearTimeout(scrollTimeoutId);\n scrollTimeoutId = setTimeout(() => {\n snapLargeNavbar();\n }, desktopSnapTimeout);\n } else if (touchEndTimeoutId) {\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n touchEndTimeoutId = setTimeout(() => {\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 =\n $navbarEl.hasClass('navbar-hidden') ||\n $navbarEl.parent('.navbars').hasClass('navbar-hidden');\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 previousScrollTop = currentScrollTop;\n }\n\n function handleScroll(e) {\n scrollContent = this;\n if (e && e.target && e.target !== scrollContent) {\n return;\n }\n currentScrollTop = scrollContent.scrollTop;\n scrollChanged = currentScrollTop;\n if (needCollapse) {\n handleLargeNavbarCollapse(scrollContent);\n } else if (needTransparent) {\n handleNavbarTransparent();\n }\n if ($pageEl.hasClass('page-previous')) return;\n if (needHide) {\n handleTitleHideShow();\n }\n }\n function handeTouchStart() {\n scrollChanged = false;\n }\n function handleTouchEnd() {\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n touchEndTimeoutId = setTimeout(() => {\n if (scrollChanged !== false) {\n if (needTransparent && !needCollapse) {\n snapTransparentNavbar();\n } else {\n snapLargeNavbar();\n }\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n }\n }, touchSnapTimeout);\n }\n $pageEl.on('scroll', '.page-content', handleScroll, true);\n\n if (\n support.touch &&\n ((needCollapse && snapPageScrollToLargeTitle) ||\n (needTransparent && snapPageScrollToTransparentNavbar))\n ) {\n app.on('touchstart:passive', handeTouchStart);\n app.on('touchend:passive', handleTouchEnd);\n }\n calcScrollableDistance();\n if (needCollapse || needTransparent) {\n $pageEl.find('.page-content').each((pageContentEl) => {\n if (pageContentEl.scrollTop > 0) handleScroll.call(pageContentEl);\n });\n }\n app.on('resize', calcScrollableDistance);\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 if (\n support.touch &&\n ((needCollapse && snapPageScrollToLargeTitle) ||\n (needTransparent && snapPageScrollToTransparentNavbar))\n ) {\n app.off('touchstart:passive', handeTouchStart);\n app.off('touchend:passive', handleTouchEnd);\n }\n };\n },\n};\nexport default {\n name: 'navbar',\n create() {\n const 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':\n function onPanelResize() {\n const app = this;\n $('.navbar').each((navbarEl) => {\n app.navbar.size(navbarEl);\n });\n },\n pageBeforeRemove(page) {\n if (page.$el[0].f7DetachNavbarScrollHandlers) {\n page.$el[0].f7DetachNavbarScrollHandlers();\n }\n },\n pageBeforeIn(page) {\n const app = this;\n if (app.theme !== 'ios') return;\n let $navbarsEl;\n const view = page.$el.parents('.view')[0].f7View;\n const navbarEl = app.navbar.getElByPage(page);\n if (!navbarEl) {\n $navbarsEl = page.$el.parents('.view').children('.navbars');\n } else {\n $navbarsEl = $(navbarEl).parents('.navbars');\n }\n if (page.$el.hasClass('no-navbar') || (view.router.dynamicNavbar && !navbarEl)) {\n const 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(page) {\n const app = this;\n const $navbarEl = $(app.navbar.getElByPage(page));\n if (!$navbarEl || $navbarEl.length === 0) return;\n app.navbar.size($navbarEl);\n },\n pageInit(page) {\n const app = this;\n const $navbarEl = $(app.navbar.getElByPage(page));\n if (!$navbarEl || $navbarEl.length === 0) return;\n\n // Size\n app.navbar.size($navbarEl);\n\n // Need Collapse On Scroll\n let needCollapseOnScrollHandler;\n if ($navbarEl.find('.title-large').length > 0) {\n $navbarEl.addClass('navbar-large');\n }\n if ($navbarEl.hasClass('navbar-large')) {\n if (app.params.navbar.collapseLargeTitleOnScroll) needCollapseOnScrollHandler = true;\n page.$el.addClass('page-with-navbar-large');\n }\n\n // Need transparent on scroll\n let needTransparentOnScroll;\n if (!needCollapseOnScrollHandler && $navbarEl.hasClass('navbar-transparent')) {\n needTransparentOnScroll = true;\n }\n\n // Need Hide On Scroll\n let needHideOnScrollHandler;\n if (\n app.params.navbar.hideOnPageScroll ||\n page.$el.find('.hide-navbar-on-scroll').length ||\n page.$el.hasClass('hide-navbar-on-scroll') ||\n page.$el.find('.hide-bars-on-scroll').length ||\n page.$el.hasClass('hide-bars-on-scroll')\n ) {\n if (\n page.$el.find('.keep-navbar-on-scroll').length ||\n page.$el.hasClass('keep-navbar-on-scroll') ||\n page.$el.find('.keep-bars-on-scroll').length ||\n page.$el.hasClass('keep-bars-on-scroll')\n ) {\n needHideOnScrollHandler = false;\n } else {\n needHideOnScrollHandler = true;\n }\n }\n\n if (needCollapseOnScrollHandler || needHideOnScrollHandler || needTransparentOnScroll) {\n app.navbar.initNavbarOnScroll(\n page.el,\n $navbarEl[0],\n needHideOnScrollHandler,\n needCollapseOnScrollHandler,\n needTransparentOnScroll,\n );\n }\n },\n 'panelOpen panelSwipeOpen modalOpen': function onPanelModalOpen(instance) {\n const app = this;\n instance.$el.find('.navbar:not(.navbar-previous):not(.stacked)').each((navbarEl) => {\n app.navbar.size(navbarEl);\n });\n },\n tabShow(tabEl) {\n const app = this;\n $(tabEl)\n .find('.navbar:not(.navbar-previous):not(.stacked)')\n .each((navbarEl) => {\n app.navbar.size(navbarEl);\n });\n },\n },\n clicks: {\n '.navbar .title': function onTitleClick($clickedEl, clickedData, e) {\n const app = this;\n if (!app.params.navbar.scrollTopOnTitleClick) return;\n if ($(e.target).closest('a, button').length > 0) {\n return;\n }\n let $pageContentEl;\n\n // Find active page\n const $navbarEl = $clickedEl.parents('.navbar');\n const $navbarsEl = $navbarEl.parents('.navbars');\n\n // Static Layout\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 }\n // Through Layout iOS\n if ($pageContentEl.length === 0 && $navbarsEl.length) {\n if ($navbarsEl.nextAll('.page-current:not(.stacked)').length > 0) {\n $pageContentEl = $navbarsEl\n .nextAll('.page-current:not(.stacked)')\n .find('.page-content');\n }\n }\n // Through Layout\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 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 if ($pageContentEl.length > 0) $pageContentEl.scrollTop(0, 300);\n }\n },\n },\n vnode: {\n navbar: {\n postpatch(vnode) {\n const app = this;\n app.navbar.size(vnode.elm);\n },\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { nextFrame, bindMethods } from '../../shared/utils.js';\n\nconst Toolbar = {\n setHighlight(tabbarEl) {\n const app = this;\n const $tabbarEl = $(tabbarEl);\n if (app.theme === 'ios' && !$tabbarEl.hasClass('tabbar-highlight')) return;\n\n if (\n $tabbarEl.length === 0 ||\n !($tabbarEl.hasClass('tabbar') || $tabbarEl.hasClass('tabbar-labels'))\n )\n return;\n\n let $highlightEl = $tabbarEl.find('.tab-link-highlight');\n const tabLinksCount = $tabbarEl.find('.tab-link').length;\n if (tabLinksCount === 0) {\n $highlightEl.remove();\n return;\n }\n\n if ($highlightEl.length === 0) {\n $tabbarEl.children('.toolbar-inner').append('<span class=\"tab-link-highlight\"></span>');\n $highlightEl = $tabbarEl.find('.tab-link-highlight');\n } else if ($highlightEl.next().length) {\n $tabbarEl.children('.toolbar-inner').append($highlightEl);\n }\n\n const $activeLink = $tabbarEl.find('.tab-link-active');\n let highlightWidth;\n let 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 const activeIndex = $activeLink.index();\n highlightWidth = `${100 / tabLinksCount}%`;\n highlightTranslate = `${(app.rtl ? -activeIndex : activeIndex) * 100}%`;\n }\n\n nextFrame(() => {\n $highlightEl.css('width', highlightWidth).transform(`translate3d(${highlightTranslate},0,0)`);\n });\n },\n init(tabbarEl) {\n const app = this;\n app.toolbar.setHighlight(tabbarEl);\n },\n hide(el, animate = true) {\n const app = this;\n const $el = $(el);\n if ($el.hasClass('toolbar-hidden')) return;\n const className = `toolbar-hidden${animate ? ' toolbar-transitioning' : ''}`;\n $el.transitionEnd(() => {\n $el.removeClass('toolbar-transitioning');\n });\n $el.addClass(className);\n $el.trigger('toolbar:hide');\n app.emit('toolbarHide', $el[0]);\n },\n show(el, animate = true) {\n const app = this;\n const $el = $(el);\n if (!$el.hasClass('toolbar-hidden')) return;\n if (animate) {\n $el.addClass('toolbar-transitioning');\n $el.transitionEnd(() => {\n $el.removeClass('toolbar-transitioning');\n });\n }\n $el.removeClass('toolbar-hidden');\n $el.trigger('toolbar:show');\n app.emit('toolbarShow', $el[0]);\n },\n initToolbarOnScroll(pageEl) {\n const app = this;\n const $pageEl = $(pageEl);\n let $toolbarEl = $pageEl.parents('.view').children('.toolbar');\n if ($toolbarEl.length === 0) {\n $toolbarEl = $pageEl.find('.toolbar');\n }\n if ($toolbarEl.length === 0) {\n $toolbarEl = $pageEl.parents('.views').children('.tabbar, .tabbar-labels');\n }\n if ($toolbarEl.length === 0) {\n return;\n }\n\n let previousScrollTop;\n let currentScrollTop;\n\n let scrollHeight;\n let offsetHeight;\n let reachEnd;\n let action;\n let toolbarHidden;\n function handleScroll(e) {\n if ($pageEl.hasClass('page-with-card-opened')) return;\n if ($pageEl.hasClass('page-previous')) return;\n const scrollContent = this;\n if (e && e.target && e.target !== scrollContent) {\n return;\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 $pageEl.on('scroll', '.page-content', handleScroll, true);\n $pageEl[0].f7ScrollToolbarHandler = handleScroll;\n },\n};\nexport default {\n name: 'toolbar',\n create() {\n const 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(page) {\n if (page.$el[0].f7ScrollToolbarHandler) {\n page.$el.off('scroll', '.page-content', page.$el[0].f7ScrollToolbarHandler, true);\n }\n },\n pageBeforeIn(page) {\n const app = this;\n let $toolbarEl = page.$el.parents('.view').children('.toolbar');\n if ($toolbarEl.length === 0) {\n $toolbarEl = page.$el.parents('.views').children('.tabbar, .tabbar-labels');\n }\n if ($toolbarEl.length === 0) {\n $toolbarEl = page.$el.find('.toolbar');\n }\n if ($toolbarEl.length === 0) {\n return;\n }\n if (page.$el.hasClass('no-toolbar')) {\n app.toolbar.hide($toolbarEl);\n } else {\n app.toolbar.show($toolbarEl);\n }\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.tabbar, .tabbar-labels').each((tabbarEl) => {\n app.toolbar.init(tabbarEl);\n });\n if (\n app.params.toolbar.hideOnPageScroll ||\n page.$el.find('.hide-toolbar-on-scroll').length ||\n page.$el.hasClass('hide-toolbar-on-scroll') ||\n page.$el.find('.hide-bars-on-scroll').length ||\n page.$el.hasClass('hide-bars-on-scroll')\n ) {\n if (\n page.$el.find('.keep-toolbar-on-scroll').length ||\n page.$el.hasClass('keep-toolbar-on-scroll') ||\n page.$el.find('.keep-bars-on-scroll').length ||\n page.$el.hasClass('keep-bars-on-scroll')\n ) {\n return;\n }\n app.toolbar.initToolbarOnScroll(page.el);\n }\n },\n init() {\n const app = this;\n app.$el.find('.tabbar, .tabbar-labels').each((tabbarEl) => {\n app.toolbar.init(tabbarEl);\n });\n },\n },\n vnode: {\n tabbar: {\n insert(vnode) {\n const app = this;\n app.toolbar.init(vnode.elm);\n },\n },\n },\n};\n","import $ from '../../shared/dom7.js';\n\nexport default {\n name: 'subnavbar',\n on: {\n pageInit(page) {\n if (page.$navbarEl && page.$navbarEl.length && page.$navbarEl.find('.subnavbar').length) {\n page.$el.addClass('page-with-subnavbar');\n }\n const $innerSubnavbars = page.$el.find('.subnavbar').filter((subnavbarEl) => {\n return $(subnavbarEl).parents('.page')[0] === page.$el[0];\n });\n if ($innerSubnavbars.length) {\n page.$el.addClass('page-with-subnavbar');\n }\n },\n },\n};\n","import $ from '../../shared/dom7.js';\n\nexport default class TouchRipple {\n constructor(app, $el, x, y) {\n const ripple = this;\n\n if (!$el) return undefined;\n\n const { left, top, width, height } = $el[0].getBoundingClientRect();\n const center = {\n x: x - left,\n y: y - top,\n };\n let diameter = Math.max((height ** 2 + width ** 2) ** 0.5, 48);\n\n let isInset = false;\n const insetElements = app.params.touch.touchRippleInsetElements || '';\n if (insetElements && $el.is(insetElements)) {\n isInset = true;\n }\n if (isInset) {\n diameter = Math.max(Math.min(width, height), 48);\n }\n\n if (!isInset && $el.css('overflow') === 'hidden') {\n const distanceFromCenter =\n ((center.x - width / 2) ** 2 + (center.y - height / 2) ** 2) ** 0.5;\n const 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 if (isInset) {\n $el.addClass('ripple-inset');\n }\n\n ripple.$rippleWaveEl = $(\n `<div class=\"ripple-wave\" style=\"width: ${diameter}px; height: ${diameter}px; margin-top:-${\n diameter / 2\n }px; margin-left:-${diameter / 2}px; left:${center.x}px; top:${\n center.y\n }px; --f7-ripple-transform: ${ripple.rippleTransform}\"></div>`,\n );\n\n $el.prepend(ripple.$rippleWaveEl);\n\n ripple.$rippleWaveEl.animationEnd(() => {\n if (!ripple.$rippleWaveEl) return;\n if (ripple.$rippleWaveEl.hasClass('ripple-wave-out')) return;\n ripple.$rippleWaveEl.addClass('ripple-wave-in');\n if (ripple.shouldBeRemoved) {\n ripple.out();\n }\n });\n\n return ripple;\n }\n\n destroy() {\n let ripple = this;\n if (ripple.$rippleWaveEl) {\n ripple.$rippleWaveEl.remove();\n }\n Object.keys(ripple).forEach((key) => {\n ripple[key] = null;\n delete ripple[key];\n });\n ripple = null;\n }\n\n out() {\n const ripple = this;\n const { $rippleWaveEl } = this;\n clearTimeout(ripple.removeTimeout);\n $rippleWaveEl.addClass('ripple-wave-out');\n\n ripple.removeTimeout = setTimeout(() => {\n ripple.destroy();\n }, 300);\n\n $rippleWaveEl.animationEnd(() => {\n clearTimeout(ripple.removeTimeout);\n ripple.destroy();\n });\n }\n\n remove() {\n const ripple = this;\n if (ripple.shouldBeRemoved) return;\n ripple.removeTimeout = setTimeout(() => {\n ripple.destroy();\n }, 400);\n ripple.shouldBeRemoved = true;\n if (ripple.$rippleWaveEl.hasClass('ripple-wave-in')) {\n ripple.out();\n }\n }\n}\n","import TouchRipple from './touch-ripple-class.js';\n\nexport default {\n name: 'touch-ripple',\n static: {\n TouchRipple,\n },\n create() {\n const app = this;\n app.touchRipple = {\n create(...args) {\n return new TouchRipple(...args);\n },\n };\n },\n};\n","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\n\nconst openedModals = [];\nconst dialogsQueue = [];\nfunction clearDialogsQueue() {\n if (dialogsQueue.length === 0) return;\n const dialog = dialogsQueue.shift();\n dialog.open();\n}\nclass Modal extends Framework7Class {\n constructor(app, params) {\n super(params, [app]);\n\n const modal = this;\n\n const defaults = {};\n\n // Extend defaults with modules params\n modal.useModulesParams(defaults);\n\n modal.params = extend(defaults, params);\n modal.opened = false;\n\n let $containerEl = modal.params.containerEl ? $(modal.params.containerEl).eq(0) : app.$el;\n if (!$containerEl.length) $containerEl = app.$el;\n\n modal.$containerEl = $containerEl;\n modal.containerEl = $containerEl[0];\n\n // Install Modules\n modal.useModules();\n\n return this;\n }\n\n onOpen() {\n const 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 onOpened() {\n const 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 onClose() {\n const 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 onClosed() {\n const modal = this;\n if (!modal.type || !modal.$el) return;\n modal.$el.removeClass('modal-out');\n modal.$el.hide();\n if (\n modal.params.backdrop &&\n (modal.params.backdropUnique || modal.forceBackdropUnique) &&\n modal.$backdropEl\n ) {\n modal.$backdropEl.remove();\n }\n modal.$el.trigger(`modal:closed ${modal.type.toLowerCase()}:closed`);\n modal.emit(`local::closed modalClosed ${modal.type}Closed`, modal);\n }\n\n open(animateModal) {\n const modal = this;\n const document = getDocument();\n const app = modal.app;\n const $el = modal.$el;\n const $backdropEl = modal.$backdropEl;\n const type = modal.type;\n let animate = true;\n if (typeof animateModal !== 'undefined') animate = animateModal;\n 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 return modal;\n }\n\n if (type === 'dialog' && app.params.modal.queueDialogs) {\n let pushToQueue;\n if ($('.dialog.modal-in').length > 0) {\n pushToQueue = true;\n } else if (openedModals.length > 0) {\n openedModals.forEach((openedModal) => {\n if (openedModal.type === 'dialog') pushToQueue = true;\n });\n }\n if (pushToQueue) {\n dialogsQueue.push(modal);\n return modal;\n }\n }\n\n const $modalParentEl = $el.parent();\n const wasInDom = $el.parents(document).length > 0;\n if (!$modalParentEl.is(modal.$containerEl)) {\n modal.$containerEl.append($el);\n modal.once(`${type}Closed`, () => {\n if (wasInDom) {\n $modalParentEl.append($el);\n } else {\n $el.remove();\n }\n });\n }\n // Show Modal\n $el.show();\n\n if (\n modal.params.backdrop &&\n (modal.params.backdropUnique || modal.forceBackdropUnique) &&\n modal.$backdropEl\n ) {\n modal.$backdropEl.insertBefore($el);\n }\n\n /* eslint no-underscore-dangle: [\"error\", { \"allow\": [\"_clientLeft\"] }] */\n modal._clientLeft = $el[0].clientLeft;\n\n // Modal\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 if (animate) {\n if ($backdropEl) {\n $backdropEl.removeClass('not-animated');\n $backdropEl.addClass('backdrop-in');\n }\n $el.animationEnd(() => {\n transitionEnd();\n });\n $el.transitionEnd(() => {\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 $el.removeClass('modal-out').addClass('modal-in not-animated');\n modal.onOpen();\n modal.onOpened();\n }\n\n return modal;\n }\n\n close(animateModal) {\n const modal = this;\n const $el = modal.$el;\n const $backdropEl = modal.$backdropEl;\n\n let animate = true;\n if (typeof animateModal !== 'undefined') animate = animateModal;\n 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 return modal;\n }\n\n // backdrop\n if ($backdropEl) {\n let needToHideBackdrop = true;\n if (modal.type === 'popup') {\n modal.$el\n .prevAll('.popup.modal-in')\n .add(modal.$el.nextAll('.popup.modal-in'))\n .each((popupEl) => {\n const popupInstance = popupEl.f7Modal;\n if (!popupInstance) return;\n if (\n popupInstance.params.closeByBackdropClick &&\n popupInstance.params.backdrop &&\n popupInstance.backdropEl === modal.backdropEl\n ) {\n needToHideBackdrop = false;\n }\n });\n }\n if (needToHideBackdrop) {\n $backdropEl[animate ? 'removeClass' : 'addClass']('not-animated');\n $backdropEl.removeClass('backdrop-in');\n }\n }\n\n // Modal\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 if (animate) {\n $el.animationEnd(() => {\n transitionEnd();\n });\n $el.transitionEnd(() => {\n transitionEnd();\n });\n $el.removeClass('modal-in').addClass('modal-out');\n // Emit close\n modal.onClose();\n } else {\n $el.addClass('not-animated').removeClass('modal-in').addClass('modal-out');\n // Emit close\n modal.onClose();\n modal.onClosed();\n }\n\n if (modal.type === 'dialog') {\n clearDialogsQueue();\n }\n\n return modal;\n }\n\n destroy() {\n const modal = this;\n if (modal.destroyed) return;\n modal.emit(`local::beforeDestroy modalBeforeDestroy ${modal.type}BeforeDestroy`, modal);\n if (modal.$el) {\n modal.$el.trigger(`modal:beforedestroy ${modal.type.toLowerCase()}:beforedestroy`);\n if (modal.$el.length && modal.$el[0].f7Modal) {\n delete modal.$el[0].f7Modal;\n }\n }\n deleteProps(modal);\n modal.destroyed = true;\n }\n}\n\nexport default Modal;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Modal from './modal-class.js';\n\nclass CustomModal extends Modal {\n constructor(app, params) {\n const extendedParams = extend(\n {\n backdrop: true,\n closeByBackdropClick: true,\n on: {},\n },\n params,\n );\n\n // Extends with open/close Modal methods;\n super(app, extendedParams);\n\n const customModal = this;\n\n customModal.params = extendedParams;\n\n // Find Element\n let $el;\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;\n }\n\n if ($el.length === 0) {\n return customModal.destroy();\n }\n let $backdropEl;\n if (customModal.params.backdrop) {\n $backdropEl = app.$el.children('.custom-modal-backdrop');\n if ($backdropEl.length === 0) {\n $backdropEl = $('<div class=\"custom-modal-backdrop\"></div>');\n app.$el.append($backdropEl);\n }\n }\n\n function handleClick(e) {\n if (!customModal || customModal.destroyed) return;\n if ($backdropEl && e.target === $backdropEl[0]) {\n customModal.close();\n }\n }\n\n customModal.on('customModalOpened', () => {\n if (customModal.params.closeByBackdropClick && customModal.params.backdrop) {\n app.on('click', handleClick);\n }\n });\n customModal.on('customModalClose', () => {\n if (customModal.params.closeByBackdropClick && customModal.params.backdrop) {\n app.off('click', handleClick);\n }\n });\n\n extend(customModal, {\n app,\n $el,\n el: $el[0],\n $backdropEl,\n backdropEl: $backdropEl && $backdropEl[0],\n type: 'customModal',\n });\n\n $el[0].f7Modal = customModal;\n\n return customModal;\n }\n}\nexport default CustomModal;\n","import Modal from './modal-class.js';\nimport CustomModal from './custom-modal-class.js';\n\nexport default {\n name: 'modal',\n static: {\n Modal,\n CustomModal,\n },\n create() {\n const app = this;\n app.customModal = {\n create(params) {\n return new CustomModal(app, params);\n },\n };\n },\n params: {\n modal: {\n queueDialogs: true,\n },\n },\n};\n","import $ from './shared/dom7.js';\n\nimport Framework7 from './components/app/app-class.js';\n\n//IMPORT_HELPERS\n\nimport DeviceModule from './modules/device/device.js';\nimport SupportModule from './modules/support/support.js';\nimport UtilsModule from './modules/utils/utils.js';\nimport ResizeModule from './modules/resize/resize.js';\nimport RequestModule from './modules/request/request.js';\nimport TouchModule from './modules/touch/touch.js';\nimport ClicksModule from './modules/clicks/clicks.js';\nimport RouterModule from './modules/router/router.js';\nimport RouterComponentLoaderModule from './modules/router/component-loader.js';\nimport ComponentModule, { Component, $jsx } from './modules/component/component.js';\nimport HistoryModule from './modules/history/history.js';\nimport ServiceWorkerModule from './modules/service-worker/service-worker.js';\nimport StoreModule, { createStore } from './modules/store/store.js';\n\nimport Statusbar from './components/statusbar/statusbar.js';\nimport View from './components/view/view.js';\nimport Navbar from './components/navbar/navbar.js';\nimport Toolbar from './components/toolbar/toolbar.js';\nimport Subnavbar from './components/subnavbar/subnavbar.js';\nimport TouchRipple from './components/touch-ripple/touch-ripple.js';\nimport Modal from './components/modal/modal.js';\nimport Router from './modules/router/router-class.js';\n\n//IMPORT_COMPONENTS\n\n// UMD_ONLY_START\nif (typeof window !== 'undefined') {\n // Dom7\n if (!window.Dom7) window.Dom7 = $;\n}\n// UMD_ONLY_END\n\nRouter.use([RouterComponentLoaderModule]);\n\nFramework7.use([\n DeviceModule,\n SupportModule,\n UtilsModule,\n ResizeModule,\n RequestModule,\n TouchModule,\n ClicksModule,\n RouterModule,\n HistoryModule,\n ComponentModule,\n ServiceWorkerModule,\n StoreModule,\n Statusbar,\n View,\n Navbar,\n Toolbar,\n Subnavbar,\n TouchRipple,\n Modal,\n //INSTALL_COMPONENTS\n]);\n\n//NAMED_EXPORT\nexport default Framework7;\n"],"names":["isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","makeReactive","proto","__proto__","defineProperty","get","set","value","Dom7","Array","items","arrayFlat","arr","res","el","isArray","push","arrayFilter","prototype","filter","call","arrayUnique","uniqueArray","i","indexOf","toCamelCase","string","toLowerCase","replace","match","group","toUpperCase","qsa","selector","context","a","$","html","trim","toCreate","tempParent","innerHTML","nodeType","fn","addClass","classes","classNames","map","c","split","classList","add","removeClass","remove","toggleClass","className","toggle","hasClass","contains","attr","attrs","arguments","getAttribute","undefined","attrName","removeAttr","removeAttribute","prop","props","propName","data","dom7ElementDataStorage","dataKey","removeData","dataset","attributes","name","parseFloat","val","multiple","values","selectedOptions","j","options","selected","transform","transition","duration","transitionDuration","on","args","eventType","targetSelector","listener","capture","handleLiveEvent","e","eventData","dom7EventData","unshift","is","apply","parents","k","handleEvent","events","event","dom7Listeners","proxyListener","dom7LiveListeners","off","handlers","handler","splice","dom7proxy","once","dom","eventName","onceHandler","eventArgs","trigger","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","fireCallBack","animationEnd","width","innerWidth","css","outerWidth","includeMargins","styles","offsetWidth","height","innerHeight","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","hide","display","show","each","index","result","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","els","newChild","tempDiv","firstChild","appendChild","appendTo","parent","prepend","insertBefore","prependTo","before","parentNode","cloneNode","insertAfter","after","nextSibling","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","siblings","closest","find","foundElements","found","removeChild","detach","toAdd","empty","scrollTo","easing","animate","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","scrollHeight","Math","max","min","scrollWidth","startTime","render","time","getTime","progress","easeProgress","cos","PI","done","initialProps","initialParams","assign","params","elements","animating","que","easingProgress","stop","frameId","element","dom7AnimateInstance","complete","shift","initialFullValue","initialValue","unit","finalValue","finalFullValue","container","currentValue","elementsDone","propsDone","began","begin","animateInstance","noTrigger","shortcut","eventHandler","click","focus","focusin","focusout","keyup","keydown","keypress","submit","change","mousedown","mousemove","mouseup","mouseenter","mouseleave","mouseout","mouseover","touchstart","touchend","touchmove","resize","scroll","methods","methodName","uniqueNum","uniqueNumber","mask","floor","random","mdPreloaderContent","iosPreloaderContent","join","auroraPreloaderContent","eventNameToColonCase","hasColon","char","deleteProps","object","nextTick","delay","nextFrame","now","parseUrlQuery","url","query","urlToParse","param","paramsPart","decodeURIComponent","slice","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","serializeObject","resultArray","separator","newParents","varName","parentParts","encodeURIComponent","varValue","toPush","String","o","merge","to","from","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","deep","colorHexToRgb","hex","h","m","r","g","b","exec","n","parseInt","colorRgbToHex","colorRgbToHsl","d","l","s","abs","colorHslToRgb","hp","x","rgb1","Number","isNaN","round","colorHsbToHsl","HSL","HSB","colorHslToHsb","t","colorThemeCSSProperties","rgb","hsl","hslShade","hslTint","shade","tint","bindMethods","instance","subKey","bind","flattenArray","arg","support","calcSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","passiveListener","checkPassiveListener","supportsPassive","opts","intersectionObserver","checkObserver","getSupport","deviceCalculated","calcDevice","platform","ua","device","ios","android","androidChrome","desktop","iphone","ipod","ipad","edge","ie","firefox","macos","windows","cordova","phonegap","electron","capacitor","Capacitor","nwjs","screenWidth","screenHeight","nw","process","versions","iPadScreens","os","osVersion","webView","standalone","webview","pixelRatio","devicePixelRatio","DARK","LIGHT","prefersColorScheme","prefersColorTheme","theme","getDevice","overrides","reset","EventsClass","self","eventsParents","eventsListeners","priority","method","f7proxy","emit","local","eventsArray","localEvents","parentEvents","eventsParent","Framework7Class","useModuleParams","module","instanceParams","originalParams","paramKey","useModulesParams","modules","moduleName","useModule","moduleParams","modulePropName","moduleProp","moduleEventName","vnode","vnodeHooks","vnodeId","hookName","create","useModules","modulesParams","components","Class","use","installModule","static","install","ConstructorMethods","parameters","defaultSelector","Constructor","domProp","app","addMethods","$el","destroy","ModalMethods","open","targetEl","$targetPage","modalEl","$modalEl","f7Modal","close","$parentEl","$targetEl","fetchedModules","loadModule","moduleToLoad","Framework7","Promise","resolve","reject","modulePath","moduleObj","moduleFunc","Error","matchNamePattern","lazyModulesPath","scriptLoad","resolveScript","rejectScript","request","scriptContent","callbackId","callbackLoadName","scriptEl","componentLoader","xhr","status","styleLoad","resolveStyle","rtl","styleContent","styleEl","all","then","catch","err","passedParams","w","defaults","version","language","routes","initOnDeviceReady","init","autoDarkMode","iosTranslucentBars","iosTranslucentModals","component","componentUrl","getTheme","online","onLine","store","f7","initStore","mount","rootEl","$rootEl","mq","dark","light","colorSchemeListener","media","darkMode","__store","createStore","enableAutoDarkMode","addListener","disableAutoDarkMode","removeListener","initAppComponent","router","componentOptions","$elComponent","f7Component","initialized","loadModules","getVnodeHooks","hook","Events","metaStatusbar","content","utils","getSize","orientationchange","globals","jsonpRequests","RequestResponse","RequestError","requestOptions","globalsNoCallbacks","callbackName","async","cache","user","password","headers","xhrFields","statusCode","processData","dataType","contentType","timeout","proceedRequest","abortController","canceled","message","fireCallback","globalCallbackValue","optionCallbackValue","type","paramsPrefix","stringData","abortTimeout","callbackSplit","requestUrl","addVars","script","onerror","jsonpCallback","XMLHttpRequest","aborted","onAbort","abort","requestParameters","postData","postDataInstances","ArrayBuffer","Blob","Document","FormData","boundary","setRequestHeader","newData","JSON","stringify","Accept","headerName","crossDomain","test","RegExp","$2","onload","responseData","parseError","parse","responseText","responseType","response","statusText","ontimeout","send","requestShortcut","success","error","post","json","getJSON","postJSON","contoller","setup","initTouch","useRipple","touchStartX","touchStartY","targetElement","isMoved","tapHoldFired","tapHoldTimeout","preventClick","activableElement","activeTimeout","rippleWave","rippleTarget","rippleTimeout","findActivableElement","activeStateElements","activable","newActivable","preventPropagation","isInsideScrollableView","pageContent","addActive","removeActive","findRippleElement","rippleElements","touchRippleElements","rippleParent","createRipple","y","touchRipple","removeRipple","rippleTouchStart","inScrollable","rippleTouchMove","rippleTouchEnd","handleMouseDown","$activableEl","which","pageX","pageY","handleMouseMove","activeStateOnMouseMove","handleMouseUp","handleTouchCancel","activeState","isScrolling","isSegmentedStrong","segmentedStrongEl","touchMoveActivableIos","isTouchMoveActivable","touchmoveActivableEl","handleTouchStart","targetTouches","touches","tapHold","preventDefault","tapHoldDelay","handleTouchMove","distance","shouldRemoveActive","touchClicksDistanceThreshold","touchCurrentX","touchCurrentY","elementFromPoint","clientX","clientY","buttonEl","handleTouchEnd","tapHoldPreventClicks","handleClick","isOverswipe","isSegmented","localPreventClick","stopImmediatePropagation","stopPropagation","emitAppTouchEvent","appClick","appTouchStartActive","appTouchMoveActive","appTouchEndActive","appTouchStartPassive","appTouchMovePassive","appTouchEndPassive","passive","passiveListenerCapture","activeListener","activeListenerCapture","touchEvents","start","move","end","disableContextMenu","isNative","mdTouchRipple","iosTouchRipple","auroraTouchRipple","touchRippleInsetElements","History","queue","clearQueue","currentQueue","routerQueue","clearRouterQueue","pop","stateUrl","action","browserHistoryAnimate","browserHistory","navigate","handle","blockPopstate","state","previousState","allowChange","views","view","viewState","allowPageChange","initViewState","viewId","newState","substr","readyState","SwipeBack","$navbarsEl","isTouched","touchesStart","$currentPageEl","$previousPageEl","viewContainerWidth","touchesDiff","allowViewTouchMove","touchStartTime","$currentNavbarEl","$previousNavbarEl","dynamicNavbar","$pageShadowEl","$pageOpacityEl","animatableNavEls","paramsSwipeBackAnimateShadow","paramsSwipeBackAnimateOpacity","paramsSwipeBackActiveArea","paramsSwipeBackThreshold","transformOrigin","transformOriginTitleLarge","animatableNavElements","inverter","currentNavIsTransparent","currentNavIsLarge","currentNavIsCollapsed","currentNavIsLargeTransparent","previousNavIsTransparent","previousNavIsLarge","previousNavIsCollapsed","previousNavIsLargeTransparent","fromLarge","toLarge","$currentNavElements","$previousNavElements","activeNavBackIconText","previousNavBackIconText","iosAnimateNavbarBackIcon","f7NavbarLeftOffset","navEl","$navEl","isSubnavbar","isLeft","isTitle","isBg","overflow","subNavEl","opacity","isSliding","transformTarget","textEl","activeNavTranslate","f7NavbarRightOffset","previousNavTranslate","setAnimatableNavElements","reflow","_clientLeft","classNameSet","styleProp","swipeBackEnabled","swipeout","masterDetailBreakpoint","f7PreventSwipeBack","preventSwipeBack","cancel","notFromBorder","sheet","f7PreventSwipePanel","preventSwipePanelBySwipeBack","percentage","callbackData","currentPageEl","previousPageEl","currentNavbarEl","previousNavbarEl","currentPageTranslate","previousPageTranslate","swipeBackActive","$pages","timeDiff","pageChanged","setNavbarPosition","currentRoute","f7Page","route","currentPage","pageCallback","swipeBack","saveHistory","stackPages","initialPages","removePage","removeNavbar","previousRoute","preloadPreviousPage","preload","attachEvents","detachEvents","redirect","direction","initial","redirectResolve","redirectUrl","redirectOptions","redirectReject","processQueue","routeQueue","queueItem","processRouteQueue","enterNextRoute","routesBeforeEnter","beforeEnter","leaveCurrentRoute","routesBeforeLeave","beforeLeave","appRouterCheck","asyncComponent","resolvePromise","componentPromise","default","_default","asyncComponentResult","refreshPage","ignoreCache","reloadCurrent","forward","forwardOptions","reloadPages","reloadPrevious","reloadAll","clearPreviousHistory","reloadDetail","masterDetailEnabled","isMaster","master","masterPageEl","otherDetailPageEl","detailsInBetweenRemoved","currentRouteIsModal","modal","modalType","modalLoadProp","modalToClose","modalInstance","previousUrl","findMatchingRoute","path","modalRemove","$viewEl","$newPage","reload","$oldPage","$newNavbarEl","$oldNavbarEl","removeThemeElements","$navbarEl","keepAlive","keepAliveData","pageEl","$pagesInView","pageInView","$navbarsInView","navbarInView","isDetail","isDetailRoot","newPagePosition","position","role","root","detailRoot","navbar","getElByPage","navbarEl","removedPageEls","removedNavbarEls","oldNavbarEl","browserHistoryRoot","browserHistorySeparator","newPageInDom","componentEl","f7PageMounted","$oldPageEl","$oldNavbarElEl","tab","tabLoad","checkMasterDetailBreakpoint","setPagePosition","afterAnimation","keepOldPage","setPositionClasses","f7PageTransition","load","loadParams","loadOptions","ignorePageChange","pageName","parentPath","sameParams","paramName","allowDuplicateUrls","parseRouteUrl","newOptions","getPageEl","pageComponentLoader","routerEl","xhrAbortController","xhrRequest","navigateParams","navigateOptions","createRoute","generateUrl","navigateUrl","currentPath","viewName","anotherViewName","anotherView","openIn","ignoreOpenIn","routerLoaded","modalLoad","pageLoadProp","asyncResolve","resolveParams","resolveOptions","resolvedAsModal","modalRoute","asyncReject","masterRoute","preloadMaster","masterLoaded","pageAfterIn","tabRoute","parentPageEl","browserHistoryTabs","$parentPageEl","tabEl","tabShowResult","$newTabEl","$oldTabEl","animated","onTabsChanged","tabParentPageData","onTabLoaded","contentEl","tabEventTarget","unloadTabContent","tabRemove","f7RouterTabLoaded","loadTab","loadTabParams","loadTabOptions","tabComponentLoader","tabContent","hasContentLoadProp","tabLoadProp","hasTabComponentChild","tabChild","removeTabContent","isPanel","modalOrPanel","modalParams","routeCallback","modalOpen","panelOpen","modalClose","panelClose","modalClosed","panelClosed","onModalLoaded","hasEl","closeOnSwipeBack","closeByRouter","modalComponent","removeModal","loadModal","loadModalParams","loadModalOptions","modalComponentLoader","modalContent","foundLoadProp","backward","backwardOptions","masterPageRemoved","initialPreload","currentIsMaster","backIndex","force","pageToRemove","$pageToRemove","$navbarToRemove","insertPage","$previousPages","loadBack","backParams","backOptions","prevOpenedModals","forceOtherUrl","isBrokenBrowserHistory","needHistoryBack","currentRouteWithoutBrowserHistory","$previousPage","skipMaster","$previousMaster","expectedPreviousPageUrl","expectedPreviousPageRoute","previousPageRoute","backForceLoaded","clearPreviousPages","$pagesToRemove","panel","Router","isAppRouter","routerId","scrollHistory","iosDynamicNavbar","initialNavbars","configurable","newRoute","tempDom","navbarsEl","animateIcon","newNavEls","oldNavEls","animatableNavEl","$navbarInner","needsOpacityTransition","$iconEl","isIconLabel","leftOffset","rightOffset","navEls","otherEls","otherNavEl","iconTextEl","offsetLeft","$newPageEl","animateCustom","routerCustomTransitionClass","onCustomTransitionDone","routerTransitionClass","toDifferent","oldIsLarge","newIsLarge","betweenMasterAndDetail","animateNavbars","setProperty","onDone","removeEl","$tabEl","removeElements","removeElementsWithTimeout","removeElementsTimeout","findElement","stringSelector","notStacked","modalsSelector","$container","viewMainClass","flattenRoutes","flattenedRoutes","hasTabRoutes","tabs","mergedPathsRoutes","tRoute","concat","detailRoutes","detailRoute","dRoute","masterRoutePath","childRoute","cRoute","findRouteByKey","constructRouteUrl","toUrl","compile","findTabRouteUrl","tabId","foundTabRouteUrl","matchingRoute","pathsToMatch","alias","aliasPath","matched","pathToMatch","pathToRegexp","keyObj","paramValue","replaceRequestUrlParams","compiledUrl","regExp","removeFromXhrCache","xhrCache","hasQuery","passRouteQueryToRequest","passRouteParamsToRequest","xhrCacheIgnoreGetParameters","xhrCacheIgnore","cachedUrl","xhrCacheDuration","beforeSend","ariaHidden","toRemove","getPageData","pageFromEl","$pageEl","pageFrom","fromPage","$pageFromEl","page","restoreScrollTopOnBack","camelName","colonName","f7RouteEventsAttached","f7RouteEventsOn","f7RouteEventsOnce","$pageContent","pageContentEl","f7PageInitialized","browserHistoryStoreHistory","localStorage","restoreHistory","clearHistory","updateCurrentUrl","newUrl","getInitialUrl","initialUrl","historyRestored","URL","documentUrl","browserHistoryOnLoad","console","warn","iosSwipeBack","mdSwipeBack","auroraSwipeBack","browserHistoryAnimateOnLoad","browserHistoryInitialMatch","initUrl","loadInitialPage","hasTabRoute","initOptions","routerProp","templates","resizableView","resizableInitialized","resizable","resizableWidth","$htmlEl","$resizeHandlerEl","minWidth","maxWidth","transformCSSWidth","v","newV","isResizable","$pageMasterEl","newWidth","handleResize","View","viewParams","ssr","routesAdd","main","f7View","viewProp","wasMasterDetail","isMasterDetail","initMasterDetail","masterDetailResizable","viewEl","initClicks","handleClicks","$clickedEl","$clickedLinkEl","isLink","clicks","externalLinks","InAppBrowser","Plugins","Browser","moduleClicks","preventF7Router","clickSelector","matchingClickedElement","clickedLinkData","clickedEl","validUrl","current","linksView","ViewClass","f7RouteProps","popup","loginScreen","popover","parts","side","effect","componentFunction","componentContext","f7route","f7router","componentProps","routeProps","componentRoot","createdComponent","cachedComponent","componentCache","cached","loadedComponent","parsedComponent","u","p","Map","ignoreChildren","$h","htm","is.array","is.primitive","SELF_CLOSING","PROPS_ATTRS","BOOLEAN_PROPS","getTagName","treeNode","word","propsFromAttrs","createCustomComponent","customComponents","elm","__component__","updateCustomComponent","newProps","update","destroyCustomComponent","isCustomComponent","treeNodeType","getHooks","isRoot","hooks","insert","postpatch","isFakeElement","tagName","isCustom","sel","oldVnode","class","vn","f","getEventHandler","prevent","fired","getData","attrValue","eventNamePart","eventNameIndex","prepatch","getChildren","nodes","childNode","treeNodeToVNode","getSlots","slotName","slotNodes","childTreeNode","childSlotName","slot","subTreeNode","isTreeNode","vdom","tree","invokeHandler","createListener","updateEvents","oldOn","oldListener","oldElm","patch","attributesModule","propsModule","styleModule","eventListenersModule","Component","generateId","md","aurora","__updateQueue","__eventHandlers","__onceEventHandlers","__onBeforeMount","__onMounted","__onBeforeUpdate","__onUpdated","__onBeforeUnmount","__onUnmounted","createComponent","getComponentContext","getRenderFuncion","componentResult","renderFunction","getComponentRef","getComponentStore","_gettersPlain","dispatch","$store","getters","Proxy","onUpdated","includeHooks","ctx","$f7route","$f7router","$id","$f7","$f7ready","f7ready","$theme","$tick","tick","$update","$emit","$ref","$on","$once","$onBeforeMount","$onMounted","$onBeforeUpdate","$onUpdated","$onBeforeUnmount","$onUnmounted","startUpdateQueue","__requestAnimationFrameId","newVNode","__updateIsPending","resolvers","resolver","__destroyed","setState","mountMethod","parseComponent","componentString","componentId","callbackCreateName","template","hasTemplate","item","scripts","registerComponent","unregisterComponent","SW","registrations","register","scope","serviceWorker","reg","unregister","registration","paths","toRegister","storeParams","originalState","actions","propsQueue","gettersDependencies","gettersCallbacks","getterKey","getGetterValue","addGetterDependencies","deps","dep","addGetterCallback","runGetterCallbacks","stateKey","removeGetterCallback","callbacks","__removeCallback","getterValue","addCallback","__callback","actionName","isCapacitor","StatusBar","Statusbar","onClick","setTextColor","color","styleLightContent","styleDefault","setStyle","setBackgroundColor","backgroundColorByHexString","isVisible","getInfo","info","visible","overlaysWebView","overlays","setOverlaysWebView","overlay","statusbar","enabled","isCordova","isCap","scrollTopOnClick","iosOverlaysWebView","iosTextColor","androidOverlaysWebView","androidTextColor","iosBackgroundColor","androidBackgroundColor","getCurrentView","$popoverView","$popupView","$panelView","$viewsEl","iosSwipeBackAnimateShadow","iosSwipeBackAnimateOpacity","iosSwipeBackActiveArea","iosSwipeBackThreshold","mdSwipeBackAnimateShadow","mdSwipeBackAnimateOpacity","mdSwipeBackActiveArea","mdSwipeBackThreshold","auroraSwipeBackAnimateShadow","auroraSwipeBackAnimateOpacity","auroraSwipeBackActiveArea","auroraSwipeBackThreshold","iosPageLoadDelay","mdPageLoadDelay","auroraPageLoadDelay","onOpen","onClose","Navbar","size","$innerEl","needCenterTitle","needLeftTitle","iosCenterTitle","right","title","subnavbar","noLeft","noRight","leftWidth","rightWidth","titleWidth","navbarStyles","navbarWidth","navbarInnerWidth","paddingLeft","paddingRight","isPrevious","sliding","currLeft","diff","requiredLeft","titleLeftOffset","titleRightOffset","activeNavbarBackLink","titleLeft","hideStatusbar","hideOnlyCurrent","isDynamic","currentIsLarge","subEl","pageData","getPageByEl","collapseLargeTitle","expandLargeTitle","toggleLargeTitle","initNavbarOnScroll","needHide","needCollapse","needTransparent","$titleLargeEl","isLarge","navbarHideHeight","snapPageScrollToLargeTitle","snapPageScrollToTransparentNavbar","previousScrollTop","currentScrollTop","reachEnd","navbarHidden","navbarCollapsed","navbarTitleLargeHeight","navbarOffsetHeight","scrollChanged","scrollContent","scrollTimeoutId","touchEndTimeoutId","touchSnapTimeout","desktopSnapTimeout","calcScrollableDistance","f7ScrollableDistance","snapLargeNavbar","inSearchbarExpanded","snapTransparentNavbar","handleNavbarTransparent","isHidden","notTransparent","previousCollapseProgress","collapseProgress","handleLargeNavbarCollapse","isLargeTransparent","scrollableDistance","previousCollapseWasInMiddle","handleTitleHideShow","showOnPageScrollEnd","showOnPageScrollTop","handleScroll","handeTouchStart","f7DetachNavbarScrollHandlers","scrollTopOnTitleClick","mdCenterTitle","auroraCenterTitle","hideOnPageScroll","collapseLargeTitleOnScroll","onPanelResize","pageBeforeRemove","pageBeforeIn","pageReinit","pageInit","needCollapseOnScrollHandler","needTransparentOnScroll","needHideOnScrollHandler","onPanelModalOpen","tabShow","onTitleClick","clickedData","$pageContentEl","Toolbar","setHighlight","tabbarEl","$tabbarEl","$highlightEl","tabLinksCount","$activeLink","highlightWidth","highlightTranslate","activeIndex","toolbar","initToolbarOnScroll","$toolbarEl","toolbarHidden","f7ScrollToolbarHandler","tabbar","$innerSubnavbars","subnavbarEl","TouchRipple","ripple","center","diameter","isInset","insetElements","distanceFromCenter","scale","rippleTransform","$rippleWaveEl","shouldBeRemoved","out","removeTimeout","openedModals","dialogsQueue","clearDialogsQueue","dialog","Modal","opened","$containerEl","containerEl","onOpened","onClosed","backdrop","backdropUnique","forceBackdropUnique","$backdropEl","animateModal","queueDialogs","pushToQueue","openedModal","$modalParentEl","wasInDom","needToHideBackdrop","popupEl","popupInstance","closeByBackdropClick","backdropEl","destroyed","CustomModal","extendedParams","customModal","RouterComponentLoaderModule","DeviceModule","SupportModule","UtilsModule","ResizeModule","RequestModule","TouchModule","ClicksModule","RouterModule","HistoryModule","ComponentModule","ServiceWorkerModule","StoreModule","Subnavbar"],"mappings":"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"}
1
+ {"version":3,"file":"framework7.js.map","sources":["../../node_modules/ssr-window/ssr-window.esm.js","../../node_modules/dom7/dom7.esm.js","../../src/core/shared/dom7.js","../../src/core/shared/utils.js","../../src/core/shared/get-support.js","../../src/core/shared/get-device.js","../../src/core/shared/events-class.js","../../src/core/shared/class.js","../../src/core/shared/constructor-methods.js","../../src/core/shared/modal-methods.js","../../src/core/components/app/load-module.js","../../src/core/components/app/app-class.js","../../src/core/modules/device/device.js","../../src/core/modules/support/support.js","../../src/core/modules/utils/utils.js","../../src/core/modules/resize/resize.js","../../src/core/shared/request.js","../../src/core/modules/request/request.js","../../src/core/modules/touch/touch.js","../../node_modules/path-to-regexp/dist.es2015/index.js","../../src/core/shared/history.js","../../src/core/modules/router/swipe-back.js","../../src/core/modules/router/redirect.js","../../src/core/modules/router/process-route-queue.js","../../src/core/modules/router/app-router-check.js","../../src/core/modules/router/async-component.js","../../src/core/modules/router/navigate.js","../../src/core/modules/router/tab.js","../../src/core/modules/router/modal.js","../../src/core/modules/router/back.js","../../src/core/modules/router/clear-previous-history.js","../../src/core/modules/router/router-class.js","../../src/core/modules/router/router.js","../../src/core/components/view/resizable-view.js","../../src/core/components/view/view-class.js","../../src/core/modules/clicks/clicks.js","../../src/core/modules/router/component-loader.js","../../node_modules/htm/dist/htm.mjs","../../src/core/modules/component/$h.js","../../src/core/modules/component/snabbdom/vnode.js","../../src/core/modules/component/snabbdom/is.js","../../src/core/modules/component/snabbdom/h.js","../../src/core/modules/component/custom-components.js","../../src/core/modules/component/vdom.js","../../src/core/modules/component/snabbdom/htmldomapi.js","../../src/core/modules/component/snabbdom/snabbdom.js","../../src/core/modules/component/snabbdom/modules/attributes.js","../../src/core/modules/component/snabbdom/modules/props.js","../../src/core/modules/component/snabbdom/modules/style.js","../../src/core/modules/component/eventslisteners.js","../../src/core/modules/component/patch.js","../../src/core/modules/component/component-class.js","../../src/core/modules/component/parse-component.js","../../src/core/modules/component/component.js","../../src/core/modules/history/history.js","../../src/core/modules/service-worker/service-worker.js","../../src/core/modules/store/create-store.js","../../src/core/modules/store/store.js","../../src/core/components/statusbar/statusbar.js","../../src/core/components/view/view.js","../../src/core/components/navbar/navbar.js","../../src/core/components/toolbar/toolbar.js","../../src/core/components/subnavbar/subnavbar.js","../../src/core/components/touch-ripple/touch-ripple-class.js","../../src/core/components/touch-ripple/touch-ripple.js","../../src/core/components/modal/modal-class.js","../../src/core/components/modal/custom-modal-class.js","../../src/core/components/modal/modal.js","../../src/core/framework7.js"],"sourcesContent":["/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\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 Object.keys(src).forEach((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\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\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 const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst 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() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...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 const uniqueArray = [];\n\n for (let 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, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let 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 const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf('<li') === 0) toCreate = 'ul';\n if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n if (html.indexOf('<tbody') === 0) toCreate = 'table';\n if (html.indexOf('<option') === 0) toCreate = 'select';\n const tempParent = document.createElement(toCreate);\n tempParent.innerHTML = html;\n\n for (let i = 0; i < tempParent.childNodes.length; i += 1) {\n arr.push(tempParent.childNodes[i]);\n }\n } else {\n arr = qsa(selector.trim(), context || document);\n } // arr = qsa(selector, document);\n\n } else if (selector.nodeType || selector === window || selector === document) {\n arr.push(selector);\n } else if (Array.isArray(selector)) {\n if (selector instanceof Dom7) return selector;\n arr = selector;\n }\n\n return new Dom7(arrayUnique(arr));\n}\n\n$.fn = Dom7.prototype;\n\n// eslint-disable-next-line\n\nfunction addClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 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 (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const 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 (let 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 (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const 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 let 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 const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const 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 const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const 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 (const 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 const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let 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 (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let 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 (let 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(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const 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 const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\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 (let k = handlers.length - 1; k >= 0; k -= 1) {\n const 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(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\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(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const 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 const 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 const 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 const styles = this.styles();\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 const 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 const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.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 const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const 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 const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let 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 (const 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((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const 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 (let 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 (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let 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 let child = this[0];\n let 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 const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\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 const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\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 const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const 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 const 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 const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const 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 const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let 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 let 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 const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let 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 (let 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(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const 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 (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let 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 let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\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(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const 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(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const 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\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\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\n 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\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let 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(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const 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\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst 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","// eslint-disable-next-line\nimport * as methods from 'dom7';\n\nObject.keys(methods).forEach((methodName) => {\n if (methodName === '$') return;\n methods.$.fn[methodName] = methods[methodName];\n});\n\nexport default methods.$;\n","import { getWindow } from 'ssr-window';\n\nlet uniqueNum = 0;\nexport function uniqueNumber() {\n uniqueNum += 1;\n return uniqueNum;\n}\nexport function id(mask = 'xxxxxxxxxx', map = '0123456789abcdef') {\n const length = map.length;\n return mask.replace(/x/g, () => map[Math.floor(Math.random() * length)]);\n}\nexport const mdPreloaderContent = `\n <span class=\"preloader-inner\">\n <svg viewBox=\"0 0 36 36\">\n <circle cx=\"18\" cy=\"18\" r=\"16\"></circle>\n </svg>\n </span>\n`.trim();\n\nexport const iosPreloaderContent = `\n <span class=\"preloader-inner\">\n ${[0, 1, 2, 3, 4, 5, 6, 7].map(() => '<span class=\"preloader-inner-line\"></span>').join('')}\n </span>\n`.trim();\n\nexport const auroraPreloaderContent = `\n <span class=\"preloader-inner\">\n <span class=\"preloader-inner-circle\"></span>\n </span>\n`;\nexport function eventNameToColonCase(eventName) {\n let hasColon;\n return eventName\n .split('')\n .map((char, index) => {\n if (char.match(/[A-Z]/) && index !== 0 && !hasColon) {\n hasColon = true;\n return `:${char.toLowerCase()}`;\n }\n return char.toLowerCase();\n })\n .join('');\n}\nexport function deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no setter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nexport function requestAnimationFrame(callback) {\n const window = getWindow();\n return window.requestAnimationFrame(callback);\n}\nexport function cancelAnimationFrame(frameId) {\n const window = getWindow();\n return window.cancelAnimationFrame(frameId);\n}\nexport function nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\nexport function nextFrame(callback) {\n return requestAnimationFrame(() => {\n requestAnimationFrame(callback);\n });\n}\nexport function now() {\n return Date.now();\n}\n\nexport function parseUrlQuery(url) {\n const window = getWindow();\n const query = {};\n let urlToParse = url || window.location.href;\n let i;\n let params;\n let param;\n let length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter((paramsPart) => paramsPart !== '');\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] =\n typeof param[1] === 'undefined'\n ? undefined\n : decodeURIComponent(param.slice(1).join('=')) || '';\n }\n }\n return query;\n}\nexport function getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform\n .split(', ')\n .map((a) => a.replace(',', '.'))\n .join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix =\n curStyle.MozTransform ||\n curStyle.OTransform ||\n curStyle.MsTransform ||\n curStyle.msTransform ||\n curStyle.transform ||\n curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nexport function serializeObject(obj, parents = []) {\n if (typeof obj === 'string') return obj;\n const resultArray = [];\n const separator = '&';\n let newParents;\n function varName(name) {\n if (parents.length > 0) {\n let parentParts = '';\n for (let j = 0; j < parents.length; j += 1) {\n if (j === 0) parentParts += parents[j];\n else parentParts += `[${encodeURIComponent(parents[j])}]`;\n }\n return `${parentParts}[${encodeURIComponent(name)}]`;\n }\n return encodeURIComponent(name);\n }\n function varValue(value) {\n return encodeURIComponent(value);\n }\n Object.keys(obj).forEach((prop) => {\n let toPush;\n if (Array.isArray(obj[prop])) {\n toPush = [];\n for (let i = 0; i < obj[prop].length; i += 1) {\n if (!Array.isArray(obj[prop][i]) && typeof obj[prop][i] === 'object') {\n newParents = parents.slice();\n newParents.push(prop);\n newParents.push(String(i));\n toPush.push(serializeObject(obj[prop][i], newParents));\n } else {\n toPush.push(`${varName(prop)}[]=${varValue(obj[prop][i])}`);\n }\n }\n if (toPush.length > 0) resultArray.push(toPush.join(separator));\n } else if (obj[prop] === null || obj[prop] === '') {\n resultArray.push(`${varName(prop)}=`);\n } else if (typeof obj[prop] === 'object') {\n // Object, convert to named array\n newParents = parents.slice();\n newParents.push(prop);\n toPush = 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(...args) {\n const to = args[0];\n args.splice(0, 1);\n const from = args;\n\n for (let i = 0; i < from.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n}\nexport function extend(...args) {\n let deep = true;\n let to;\n let from;\n if (typeof args[0] === 'boolean') {\n deep = args[0];\n to = args[1];\n args.splice(0, 2);\n from = args;\n } else {\n to = args[0];\n args.splice(0, 1);\n from = args;\n }\n for (let i = 0; i < from.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (!deep) {\n to[nextKey] = nextSource[nextKey];\n } else if (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 return to;\n}\nexport function colorHexToRgb(hex) {\n const h = hex.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i, (m, r, g, b) => r + r + g + g + b + b);\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(h);\n return result ? result.slice(1).map((n) => parseInt(n, 16)) : null;\n}\nexport function colorRgbToHex(r, g, b) {\n const result = [r, g, b]\n .map((n) => {\n const hex = n.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n })\n .join('');\n return `#${result}`;\n}\nexport function colorRgbToHsl(r, g, b) {\n r /= 255; // eslint-disable-line\n g /= 255; // eslint-disable-line\n b /= 255; // eslint-disable-line\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n let h;\n if (d === 0) h = 0;\n else if (max === r) h = ((g - b) / d) % 6;\n else if (max === g) h = (b - r) / d + 2;\n else if (max === b) h = (r - g) / d + 4;\n const l = (min + max) / 2;\n const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));\n if (h < 0) h = 360 / 60 + h;\n return [h * 60, s, l];\n}\nexport function colorHslToRgb(h, s, l) {\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const hp = h / 60;\n const x = c * (1 - Math.abs((hp % 2) - 1));\n let rgb1;\n if (Number.isNaN(h) || typeof h === 'undefined') {\n rgb1 = [0, 0, 0];\n } else if (hp <= 1) rgb1 = [c, x, 0];\n else if (hp <= 2) rgb1 = [x, c, 0];\n else if (hp <= 3) rgb1 = [0, c, x];\n else if (hp <= 4) rgb1 = [0, x, c];\n else if (hp <= 5) rgb1 = [x, 0, c];\n else if (hp <= 6) rgb1 = [c, 0, x];\n const m = l - c / 2;\n return rgb1.map((n) => Math.max(0, Math.min(255, Math.round(255 * (n + m)))));\n}\nexport function colorHsbToHsl(h, s, b) {\n const HSL = {\n h,\n s: 0,\n l: 0,\n };\n const HSB = { h, s, b };\n\n HSL.l = ((2 - HSB.s) * HSB.b) / 2;\n HSL.s = HSL.l && HSL.l < 1 ? (HSB.s * HSB.b) / (HSL.l < 0.5 ? HSL.l * 2 : 2 - HSL.l * 2) : HSL.s;\n\n return [HSL.h, HSL.s, HSL.l];\n}\nexport function colorHslToHsb(h, s, l) {\n const HSB = {\n h,\n s: 0,\n b: 0,\n };\n const HSL = { h, s, l };\n\n const t = HSL.s * (HSL.l < 0.5 ? HSL.l : 1 - HSL.l);\n HSB.b = HSL.l + t;\n HSB.s = HSL.l > 0 ? (2 * t) / HSB.b : HSB.s;\n\n return [HSB.h, HSB.s, HSB.b];\n}\nexport function colorThemeCSSProperties(...args) {\n let hex;\n let rgb;\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(...rgb);\n }\n if (!rgb) return {};\n const hsl = colorRgbToHsl(...rgb);\n const hslShade = [hsl[0], hsl[1], Math.max(0, hsl[2] - 0.08)];\n const hslTint = [hsl[0], hsl[1], Math.max(0, hsl[2] + 0.08)];\n const shade = colorRgbToHex(...colorHslToRgb(...hslShade));\n const tint = colorRgbToHex(...colorHslToRgb(...hslTint));\n return {\n '--f7-theme-color': hex,\n '--f7-theme-color-rgb': rgb.join(', '),\n '--f7-theme-color-shade': shade,\n '--f7-theme-color-tint': tint,\n };\n}\n\nexport function bindMethods(instance, obj) {\n Object.keys(obj).forEach((key) => {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach((subKey) => {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n instance[key] = obj[key];\n });\n}\n\nexport function flattenArray(...args) {\n const arr = [];\n args.forEach((arg) => {\n if (Array.isArray(arg)) arr.push(...flattenArray(...arg));\n else arr.push(arg);\n });\n return arr;\n}\n","import { getWindow, getDocument } from 'ssr-window';\n\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n\n return {\n touch: !!(\n 'ontouchstart' in window ||\n (window.DocumentTouch && document instanceof window.DocumentTouch)\n ),\n\n pointerEvents:\n !!window.PointerEvent &&\n 'maxTouchPoints' in window.navigator &&\n window.navigator.maxTouchPoints >= 0,\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n })(),\n\n intersectionObserver: (function checkObserver() {\n return 'IntersectionObserver' in window;\n })(),\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nexport { getSupport };\n","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\n\nlet deviceCalculated;\n\nfunction calcDevice({ userAgent } = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n iphone: false,\n ipod: false,\n ipad: false,\n edge: false,\n ie: false,\n firefox: false,\n macos: false,\n windows: false,\n cordova: !!window.cordova,\n electron: false,\n capacitor: !!window.Capacitor,\n nwjs: false,\n };\n\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS|iPhone;\\sCPU\\sOS)\\s([\\d_]+)/);\n const ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n const edge = ua.indexOf('Edge/') >= 0;\n const firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n const windows = platform === 'Win32';\n const electron = ua.toLowerCase().indexOf('electron') >= 0;\n const nwjs =\n typeof nw !== 'undefined' &&\n typeof process !== 'undefined' &&\n typeof process.versions !== 'undefined' &&\n typeof process.versions.nw !== 'undefined';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = [\n '1024x1366',\n '1366x1024',\n '834x1194',\n '1194x834',\n '834x1112',\n '1112x834',\n '768x1024',\n '1024x768',\n '820x1180',\n '1180x820',\n '810x1080',\n '1080x810',\n ];\n if (\n !ipad &&\n macos &&\n support.touch &&\n iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0\n ) {\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;\n\n // Android\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 if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Webview\n device.webView =\n !!(\n (iphone || ipad || ipod) &&\n (ua.match(/.*AppleWebKit(?!.*Safari)/i) || window.navigator.standalone)\n ) ||\n (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches);\n device.webview = device.webView;\n device.standalone = device.webView;\n\n // Desktop\n device.desktop = !(device.ios || device.android) || electron || nwjs;\n if (device.desktop) {\n device.electron = electron;\n device.nwjs = nwjs;\n device.macos = macos;\n device.windows = windows;\n if (device.macos) {\n device.os = 'macos';\n }\n if (device.windows) {\n device.os = 'windows';\n }\n }\n\n // Pixel Ratio\n device.pixelRatio = window.devicePixelRatio || 1;\n\n // Color Scheme\n const DARK = '(prefers-color-scheme: dark)';\n const LIGHT = '(prefers-color-scheme: light)';\n device.prefersColorScheme = function prefersColorTheme() {\n let theme;\n if (window.matchMedia && window.matchMedia(LIGHT).matches) {\n theme = 'light';\n }\n if (window.matchMedia && window.matchMedia(DARK).matches) {\n theme = 'dark';\n }\n return theme;\n };\n\n // Export object\n return device;\n}\n\nfunction getDevice(overrides = {}, reset) {\n if (!deviceCalculated || reset) {\n deviceCalculated = calcDevice(overrides);\n }\n return deviceCalculated;\n}\n\nexport { getDevice };\n","class EventsClass {\n constructor(parents = []) {\n const self = this;\n self.eventsParents = parents;\n self.eventsListeners = {};\n }\n\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach((event) => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n }\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n handler.apply(self, args);\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n }\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach((event) => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (\n eventHandler === handler ||\n (eventHandler.f7proxy && eventHandler.f7proxy === handler)\n ) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n }\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n let eventsParents;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n eventsParents = self.eventsParents;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n eventsParents = args[0].local ? [] : args[0].parents || self.eventsParents;\n }\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n const localEvents = eventsArray.map((eventName) => eventName.replace('local::', ''));\n const parentEvents = eventsArray.filter((eventName) => eventName.indexOf('local::') < 0);\n\n localEvents.forEach((event) => {\n if (self.eventsListeners && self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach((eventHandler) => {\n handlers.push(eventHandler);\n });\n handlers.forEach((eventHandler) => {\n eventHandler.apply(context, data);\n });\n }\n });\n if (eventsParents && eventsParents.length > 0) {\n eventsParents.forEach((eventsParent) => {\n eventsParent.emit(parentEvents, ...data);\n });\n }\n return self;\n }\n}\n\nexport default EventsClass;\n","import { extend, now } from './utils.js';\nimport EventsClass from './events-class.js';\n\nclass Framework7Class extends EventsClass {\n constructor(params = {}, parents = []) {\n super(parents);\n const self = this;\n self.params = params;\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach((eventName) => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n\n // eslint-disable-next-line\n useModuleParams(module, instanceParams) {\n if (module.params) {\n const originalParams = {};\n Object.keys(module.params).forEach((paramKey) => {\n if (typeof instanceParams[paramKey] === 'undefined') return;\n originalParams[paramKey] = extend({}, instanceParams[paramKey]);\n });\n extend(instanceParams, module.params);\n Object.keys(originalParams).forEach((paramKey) => {\n extend(instanceParams[paramKey], originalParams[paramKey]);\n });\n }\n }\n\n useModulesParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n }\n\n useModule(moduleName = '', moduleParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n const module = typeof moduleName === 'string' ? instance.modules[moduleName] : moduleName;\n if (!module) return;\n\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach((modulePropName) => {\n const moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n // Add vnode hooks\n if (module.vnode) {\n if (!instance.vnodeHooks) instance.vnodeHooks = {};\n Object.keys(module.vnode).forEach((vnodeId) => {\n Object.keys(module.vnode[vnodeId]).forEach((hookName) => {\n const handler = module.vnode[vnodeId][hookName];\n if (!instance.vnodeHooks[hookName]) instance.vnodeHooks[hookName] = {};\n if (!instance.vnodeHooks[hookName][vnodeId]) instance.vnodeHooks[hookName][vnodeId] = [];\n instance.vnodeHooks[hookName][vnodeId].push(handler.bind(instance));\n });\n });\n }\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n }\n\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const moduleParams = modulesParams[moduleName] || {};\n instance.useModule(moduleName, moduleParams);\n });\n }\n\n static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n\n static installModule(module, ...params) {\n const Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n const name = module.name || `${Object.keys(Class.prototype.modules).length}_${now()}`;\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach((key) => {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach((key) => {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n }\n\n static use(module, ...params) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach((m) => Class.installModule(m));\n return Class;\n }\n return Class.installModule(module, ...params);\n }\n}\n\nexport default Framework7Class;\n","import $ from './dom7.js';\n\nexport default function ConstructorMethods(parameters = {}) {\n const { defaultSelector, constructor: Constructor, domProp, app, addMethods } = parameters;\n const methods = {\n create(...args) {\n if (app) return new Constructor(app, ...args);\n return new Constructor(...args);\n },\n get(el = defaultSelector) {\n if (el instanceof Constructor) return el;\n const $el = $(el);\n if ($el.length === 0) return undefined;\n return $el[0][domProp];\n },\n destroy(el) {\n const instance = methods.get(el);\n if (instance && instance.destroy) return instance.destroy();\n return undefined;\n },\n };\n if (addMethods && Array.isArray(addMethods)) {\n addMethods.forEach((methodName) => {\n methods[methodName] = (el = defaultSelector, ...args) => {\n const instance = methods.get(el);\n if (instance && instance[methodName]) return instance[methodName](...args);\n return undefined;\n };\n });\n }\n return methods;\n}\n","import $ from './dom7.js';\nimport { extend } from './utils.js';\nimport ConstructorMethods from './constructor-methods.js';\n\nexport default function ModalMethods(parameters = {}) {\n const { defaultSelector, constructor: Constructor, app } = parameters;\n const methods = extend(\n ConstructorMethods({\n defaultSelector,\n constructor: Constructor,\n app,\n domProp: 'f7Modal',\n }),\n {\n open(el, animate, targetEl) {\n let $el = $(el);\n if ($el.length > 1 && targetEl) {\n // check if same modal in other page\n const $targetPage = $(targetEl).parents('.page');\n if ($targetPage.length) {\n $el.each((modalEl) => {\n const $modalEl = $(modalEl);\n if ($modalEl.parents($targetPage)[0] === $targetPage[0]) {\n $el = $modalEl;\n }\n });\n }\n }\n if ($el.length > 1) {\n $el = $el.eq($el.length - 1);\n }\n if (!$el.length) return undefined;\n let instance = $el[0].f7Modal;\n if (!instance) {\n const params = $el.dataset();\n instance = new Constructor(app, { el: $el, ...params });\n }\n return instance.open(animate);\n },\n close(el = defaultSelector, animate, targetEl) {\n let $el = $(el);\n if (!$el.length) return undefined;\n if ($el.length > 1) {\n // check if close link (targetEl) in this modal\n let $parentEl;\n if (targetEl) {\n const $targetEl = $(targetEl);\n if ($targetEl.length) {\n $parentEl = $targetEl.parents($el);\n }\n }\n if ($parentEl && $parentEl.length > 0) {\n $el = $parentEl;\n } else {\n $el = $el.eq($el.length - 1);\n }\n }\n let instance = $el[0].f7Modal;\n if (!instance) {\n const params = $el.dataset();\n instance = new Constructor(app, { el: $el, ...params });\n }\n return instance.close(animate);\n },\n },\n );\n return methods;\n}\n","import { getWindow, getDocument } from 'ssr-window';\nimport { id } from '../../shared/utils.js';\nimport $ from '../../shared/dom7.js';\n\nconst fetchedModules = [];\nfunction loadModule(moduleToLoad) {\n const Framework7 = this;\n const window = getWindow();\n const document = getDocument();\n return new Promise((resolve, reject) => {\n const app = Framework7.instance;\n let modulePath;\n let moduleObj;\n let moduleFunc;\n if (!moduleToLoad) {\n reject(new Error('Framework7: Lazy module must be specified'));\n return;\n }\n\n function install(module) {\n Framework7.use(module);\n\n if (app) {\n app.useModuleParams(module, app.params);\n app.useModule(module);\n }\n }\n\n if (typeof moduleToLoad === 'string') {\n const matchNamePattern = moduleToLoad.match(/([a-z0-9-]*)/i);\n if (\n moduleToLoad.indexOf('.') < 0 &&\n matchNamePattern &&\n matchNamePattern[0].length === moduleToLoad.length\n ) {\n if (!app || (app && !app.params.lazyModulesPath)) {\n reject(\n new Error(\n 'Framework7: \"lazyModulesPath\" app parameter must be specified to fetch module by name',\n ),\n );\n return;\n }\n modulePath = `${app.params.lazyModulesPath}/${moduleToLoad}/${moduleToLoad}.lazy.js`;\n } else {\n modulePath = moduleToLoad;\n }\n } else if (typeof moduleToLoad === 'function') {\n moduleFunc = moduleToLoad;\n } else {\n // considering F7-Plugin object\n moduleObj = moduleToLoad;\n }\n\n if (moduleFunc) {\n const module = moduleFunc(Framework7, false);\n if (!module) {\n reject(\n new Error(\"Framework7: Can't find Framework7 component in specified component function\"),\n );\n return;\n }\n // Check if it was added\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolve();\n return;\n }\n // Install It\n install(module);\n\n resolve();\n }\n if (moduleObj) {\n const module = moduleObj;\n if (!module) {\n reject(new Error(\"Framework7: Can't find Framework7 component in specified component\"));\n return;\n }\n // Check if it was added\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolve();\n return;\n }\n // Install It\n install(module);\n\n resolve();\n }\n if (modulePath) {\n if (fetchedModules.indexOf(modulePath) >= 0) {\n resolve();\n return;\n }\n fetchedModules.push(modulePath);\n const scriptLoad = new Promise((resolveScript, rejectScript) => {\n Framework7.request.get(\n modulePath,\n (scriptContent) => {\n const callbackId = id();\n const callbackLoadName = `f7_component_loader_callback_${callbackId}`;\n\n const scriptEl = document.createElement('script');\n scriptEl.innerHTML = `window.${callbackLoadName} = function (Framework7, Framework7AutoInstallComponent) {return ${scriptContent.trim()}}`;\n $('head').append(scriptEl);\n\n const componentLoader = window[callbackLoadName];\n delete window[callbackLoadName];\n $(scriptEl).remove();\n\n const module = componentLoader(Framework7, false);\n\n if (!module) {\n rejectScript(\n new Error(`Framework7: Can't find Framework7 component in ${modulePath} file`),\n );\n return;\n }\n\n // Check if it was added\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolveScript();\n return;\n }\n\n // Install It\n install(module);\n\n resolveScript();\n },\n (xhr, status) => {\n rejectScript(xhr, status);\n },\n );\n });\n const styleLoad = new Promise((resolveStyle) => {\n Framework7.request.get(\n modulePath\n .replace('.lazy.js', app.rtl ? '.rtl.css' : '.css')\n .replace('.js', app.rtl ? '.rtl.css' : '.css'),\n (styleContent) => {\n const styleEl = document.createElement('style');\n styleEl.innerHTML = styleContent;\n $('head').append(styleEl);\n\n resolveStyle();\n },\n () => {\n resolveStyle();\n },\n );\n });\n\n Promise.all([scriptLoad, styleLoad])\n .then(() => {\n resolve();\n })\n .catch((err) => {\n reject(err);\n });\n }\n });\n}\n\nexport default loadModule;\n","/* eslint-disable no-underscore-dangle */\n\nimport { getWindow, getDocument } from 'ssr-window';\nimport { extend, nextFrame } from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport Framework7Class from '../../shared/class.js';\nimport EventsClass from '../../shared/events-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\nimport ModalMethods from '../../shared/modal-methods.js';\nimport $ from '../../shared/dom7.js';\nimport loadModule from './load-module.js';\n\nclass Framework7 extends Framework7Class {\n constructor(params = {}) {\n super(params);\n // eslint-disable-next-line\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 const device = getDevice({ userAgent: params.userAgent || undefined });\n const support = getSupport();\n\n const passedParams = extend({}, params);\n\n // App Instance\n const app = this;\n\n app.device = device;\n app.support = support;\n\n const w = getWindow();\n const d = getDocument();\n\n Framework7.instance = app;\n\n // Default\n const 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 autoDarkMode: false,\n iosTranslucentBars: true,\n iosTranslucentModals: true,\n component: undefined,\n componentUrl: undefined,\n userAgent: null,\n url: null,\n };\n\n // Extend defaults with modules params\n app.useModulesParams(defaults);\n\n // Extend defaults with passed params\n app.params = extend(defaults, params);\n\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\n // Theme\n theme: (function getTheme() {\n if (app.params.theme === 'auto') {\n if (device.ios) return 'ios';\n if (device.desktop && device.electron) return 'aurora';\n return 'md';\n }\n return app.params.theme;\n })(),\n\n // Initially passed parameters\n passedParams,\n online: w.navigator.onLine,\n });\n\n if (params.store) app.params.store = params.store;\n\n // Save Root\n if (app.$el && app.$el[0]) {\n app.$el[0].f7 = app;\n }\n\n // Install Modules\n app.useModules();\n\n // Init Store\n app.initStore();\n\n // Init\n if (app.params.init) {\n if (device.cordova && app.params.initOnDeviceReady) {\n $(d).on('deviceready', () => {\n app.init();\n });\n } else {\n app.init();\n }\n }\n\n // Return app instance\n return app;\n }\n\n mount(rootEl) {\n const app = this;\n const window = getWindow();\n const document = getDocument();\n const $rootEl = $(rootEl || app.params.el).eq(0);\n app.$el = $rootEl;\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 }\n\n // Auto Dark Mode\n const DARK = '(prefers-color-scheme: dark)';\n const LIGHT = '(prefers-color-scheme: light)';\n app.mq = {};\n if (window.matchMedia) {\n app.mq.dark = window.matchMedia(DARK);\n app.mq.light = window.matchMedia(LIGHT);\n }\n app.colorSchemeListener = function colorSchemeListener({ matches, media }) {\n if (!matches) {\n return;\n }\n const html = document.querySelector('html');\n if (media === DARK) {\n html.classList.add('dark');\n app.darkMode = true;\n app.emit('darkModeChange', true);\n } else if (media === LIGHT) {\n html.classList.remove('dark');\n app.darkMode = false;\n app.emit('darkModeChange', false);\n }\n };\n app.emit('mount');\n }\n\n initStore() {\n const app = this;\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 enableAutoDarkMode() {\n const window = getWindow();\n const document = getDocument();\n if (!window.matchMedia) return;\n const app = this;\n const html = document.querySelector('html');\n if (app.mq.dark && app.mq.light) {\n app.mq.dark.addListener(app.colorSchemeListener);\n app.mq.light.addListener(app.colorSchemeListener);\n }\n if (app.mq.dark && app.mq.dark.matches) {\n html.classList.add('dark');\n app.darkMode = true;\n app.emit('darkModeChange', true);\n } else if (app.mq.light && app.mq.light.matches) {\n html.classList.remove('dark');\n app.darkMode = false;\n app.emit('darkModeChange', false);\n }\n }\n\n disableAutoDarkMode() {\n const window = getWindow();\n if (!window.matchMedia) return;\n const app = this;\n if (app.mq.dark) app.mq.dark.removeListener(app.colorSchemeListener);\n if (app.mq.light) app.mq.light.removeListener(app.colorSchemeListener);\n }\n\n initAppComponent(callback) {\n const app = this;\n app.router.componentLoader(\n app.params.component,\n app.params.componentUrl,\n { componentOptions: { el: app.$el[0] } },\n (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 },\n () => {},\n );\n }\n\n init(rootEl) {\n const app = this;\n\n app.mount(rootEl);\n\n const init = () => {\n if (app.initialized) return;\n\n app.$el.addClass('framework7-initializing');\n\n // RTL attr\n if (app.rtl) {\n $('html').attr('dir', 'rtl');\n }\n\n // Auto Dark Mode\n if (app.params.autoDarkMode) {\n app.enableAutoDarkMode();\n }\n\n // Watch for online/offline state\n const window = getWindow();\n window.addEventListener('offline', () => {\n app.online = false;\n app.emit('offline');\n app.emit('connection', false);\n });\n window.addEventListener('online', () => {\n app.online = true;\n app.emit('online');\n app.emit('connection', true);\n });\n\n // Root class\n app.$el.addClass('framework7-root');\n\n // Theme class\n $('html').removeClass('ios md aurora').addClass(app.theme);\n\n // iOS Translucent\n const device = app.device;\n if (app.params.iosTranslucentBars && app.theme === 'ios' && device.ios) {\n $('html').addClass('ios-translucent-bars');\n }\n if (app.params.iosTranslucentModals && app.theme === 'ios' && device.ios) {\n $('html').addClass('ios-translucent-modals');\n }\n\n // Init class\n nextFrame(() => {\n app.$el.removeClass('framework7-initializing');\n });\n // Emit, init other modules\n app.initialized = true;\n app.emit('init');\n };\n if (app.params.component || app.params.componentUrl) {\n app.initAppComponent(() => {\n init();\n });\n } else {\n init();\n }\n return app;\n }\n\n // eslint-disable-next-line\n loadModule(...args) {\n return Framework7.loadModule(...args);\n }\n\n // eslint-disable-next-line\n loadModules(...args) {\n return Framework7.loadModules(...args);\n }\n\n getVnodeHooks(hook, id) {\n const app = this;\n if (!app.vnodeHooks || !app.vnodeHooks[hook]) return [];\n return app.vnodeHooks[hook][id] || [];\n }\n\n // eslint-disable-next-line\n get $() {\n return $;\n }\n\n static get Dom7() {\n return $;\n }\n\n static get $() {\n return $;\n }\n\n static get device() {\n return getDevice();\n }\n\n static get support() {\n return getSupport();\n }\n\n static get Class() {\n return Framework7Class;\n }\n\n static get Events() {\n return EventsClass;\n }\n}\n\nFramework7.ModalMethods = ModalMethods;\nFramework7.ConstructorMethods = ConstructorMethods;\n\nFramework7.loadModule = loadModule;\nFramework7.loadModules = function loadModules(modules) {\n return Promise.all(modules.map((module) => Framework7.loadModule(module)));\n};\n\nexport default Framework7;\n","import { getDocument } from 'ssr-window';\nimport { getDevice } from '../../shared/get-device.js';\n\nexport default {\n name: 'device',\n static: {\n getDevice,\n },\n on: {\n init() {\n const document = getDocument();\n const device = getDevice();\n const classNames = [];\n const html = document.querySelector('html');\n const metaStatusbar = document.querySelector(\n 'meta[name=\"apple-mobile-web-app-status-bar-style\"]',\n );\n if (!html) return;\n if (\n device.standalone &&\n device.ios &&\n metaStatusbar &&\n metaStatusbar.content === 'black-translucent'\n ) {\n classNames.push('device-full-viewport');\n }\n\n // Pixel Ratio\n classNames.push(`device-pixel-ratio-${Math.floor(device.pixelRatio)}`);\n // OS classes\n if (device.os && !device.desktop) {\n classNames.push(`device-${device.os}`);\n } else if (device.desktop) {\n classNames.push('device-desktop');\n if (device.os) {\n classNames.push(`device-${device.os}`);\n }\n }\n if (device.cordova) {\n classNames.push('device-cordova');\n }\n if (device.capacitor) {\n classNames.push('device-capacitor');\n }\n\n // Add html classes\n classNames.forEach((className) => {\n html.classList.add(className);\n });\n },\n },\n};\n","import { getSupport } from '../../shared/get-support.js';\n\nexport default {\n name: 'support',\n static: {\n getSupport,\n },\n};\n","import * as utils from '../../shared/utils.js';\n\nexport default {\n name: 'utils',\n proto: {\n utils,\n },\n static: {\n utils,\n },\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport { getDevice } from '../../shared/get-device.js';\n\nexport default {\n name: 'resize',\n create() {\n const app = this;\n app.getSize = () => {\n if (!app.el) return { width: 0, height: 0, left: 0, top: 0 };\n const offset = app.$el.offset();\n const [width, height, left, top] = [\n app.el.offsetWidth,\n app.el.offsetHeight,\n offset.left,\n offset.top,\n ];\n app.width = width;\n app.height = height;\n app.left = left;\n app.top = top;\n return { width, height, left, top };\n };\n },\n on: {\n init() {\n const app = this;\n const window = getWindow();\n\n // Get Size\n app.getSize();\n\n // Emit resize\n window.addEventListener(\n 'resize',\n () => {\n app.emit('resize');\n },\n false,\n );\n\n // Emit orientationchange\n window.addEventListener('orientationchange', () => {\n app.emit('orientationchange');\n });\n },\n orientationchange() {\n const document = getDocument();\n const device = getDevice();\n // Fix iPad weird body scroll\n if (device.ipad) {\n document.body.scrollLeft = 0;\n setTimeout(() => {\n document.body.scrollLeft = 0;\n }, 0);\n }\n },\n resize() {\n const app = this;\n app.getSize();\n },\n },\n};\n","/* eslint-disable max-classes-per-file */\nimport { getWindow, getDocument } from 'ssr-window';\nimport { extend, serializeObject } from './utils.js';\n\nconst globals = {};\nlet jsonpRequests = 0;\n\nclass RequestResponse {\n constructor(obj) {\n Object.assign(this, obj);\n }\n}\n\nclass RequestError extends Error {\n constructor(obj) {\n super();\n Object.assign(this, obj);\n }\n}\n\nconst request = (requestOptions) =>\n new Promise((resolve, reject) => {\n const window = getWindow();\n const document = getDocument();\n const globalsNoCallbacks = extend({}, globals);\n 'beforeCreate beforeOpen beforeSend error complete success statusCode'\n .split(' ')\n .forEach((callbackName) => {\n delete globalsNoCallbacks[callbackName];\n });\n const defaults = extend(\n {\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 },\n globalsNoCallbacks,\n );\n\n let proceedRequest;\n\n const options = extend({}, defaults, requestOptions);\n if (requestOptions.abortController) {\n options.abortController = requestOptions.abortController;\n }\n\n if (options.abortController && options.abortController.canceled) {\n reject(new RequestError({ options, status: 'canceled', message: 'canceled' }));\n return;\n }\n\n // Function to run XHR callbacks and events\n function fireCallback(callbackName, ...data) {\n /*\n Callbacks:\n beforeCreate (options),\n beforeOpen (xhr, options),\n beforeSend (xhr, options),\n error (xhr, status, message),\n complete (xhr, status),\n success (response, status, xhr),\n statusCode ()\n */\n let globalCallbackValue;\n let optionCallbackValue;\n if (globals[callbackName]) {\n globalCallbackValue = globals[callbackName](...data);\n }\n if (options[callbackName]) {\n optionCallbackValue = options[callbackName](...data);\n }\n if (typeof globalCallbackValue !== 'boolean') globalCallbackValue = true;\n if (typeof optionCallbackValue !== 'boolean') optionCallbackValue = true;\n if (\n options.abortController &&\n options.abortController.canceled &&\n (callbackName === 'beforeCreate' ||\n callbackName === 'beforeOpen' ||\n callbackName === 'beforeSend')\n ) {\n return false;\n }\n return globalCallbackValue && optionCallbackValue;\n }\n\n // Before create callback\n proceedRequest = fireCallback('beforeCreate', options);\n if (proceedRequest === false) {\n reject(new RequestError({ options, status: 'canceled', message: 'canceled' }));\n return;\n }\n\n // For jQuery guys\n if (options.type) options.method = options.type;\n\n // Parameters Prefix\n let paramsPrefix = options.url.indexOf('?') >= 0 ? '&' : '?';\n\n // UC method\n const method = options.method.toUpperCase();\n\n // Data to modify GET URL\n if (\n (method === 'GET' || method === 'HEAD' || method === 'OPTIONS' || method === 'DELETE') &&\n options.data\n ) {\n let stringData;\n if (typeof options.data === 'string') {\n // Should be key=value string\n if (options.data.indexOf('?') >= 0) stringData = options.data.split('?')[1];\n else stringData = options.data;\n } else {\n // Should be key=value object\n stringData = serializeObject(options.data);\n }\n if (stringData.length) {\n options.url += paramsPrefix + stringData;\n if (paramsPrefix === '?') paramsPrefix = '&';\n }\n }\n\n // JSONP\n if (options.dataType === 'json' && options.url.indexOf('callback=') >= 0) {\n const callbackName = `f7jsonp_${Date.now() + (jsonpRequests += 1)}`;\n let abortTimeout;\n const callbackSplit = options.url.split('callback=');\n let requestUrl = `${callbackSplit[0]}callback=${callbackName}`;\n if (callbackSplit[1].indexOf('&') >= 0) {\n const addVars = callbackSplit[1]\n .split('&')\n .filter((el) => el.indexOf('=') > 0)\n .join('&');\n if (addVars.length > 0) requestUrl += `&${addVars}`;\n }\n\n // Create script\n let script = document.createElement('script');\n script.type = 'text/javascript';\n script.onerror = function onerror() {\n clearTimeout(abortTimeout);\n fireCallback('error', null, 'scripterror', 'scripterror');\n reject(new RequestError({ options, status: 'scripterror', message: 'scripterror' }));\n fireCallback('complete', null, 'scripterror');\n };\n script.src = requestUrl;\n\n // Handler\n window[callbackName] = function jsonpCallback(data) {\n clearTimeout(abortTimeout);\n fireCallback('success', data);\n script.parentNode.removeChild(script);\n script = null;\n delete window[callbackName];\n resolve(new RequestResponse({ options, data }));\n };\n document.querySelector('head').appendChild(script);\n\n if (options.timeout > 0) {\n abortTimeout = setTimeout(() => {\n script.parentNode.removeChild(script);\n script = null;\n fireCallback('error', null, 'timeout', 'timeout');\n reject(new RequestError({ options, status: 'timeout', message: 'timeout' }));\n }, options.timeout);\n }\n\n return;\n }\n\n // Cache for GET/HEAD requests\n if (method === 'GET' || method === 'HEAD' || method === 'OPTIONS' || method === 'DELETE') {\n if (options.cache === false) {\n options.url += `${paramsPrefix}_nocache${Date.now()}`;\n }\n }\n\n // Create XHR\n const xhr = new XMLHttpRequest();\n\n if (options.abortController) {\n let aborted = false;\n options.abortController.onAbort = () => {\n if (aborted) return;\n aborted = true;\n xhr.abort();\n reject(new RequestError({ options, xhr, status: 'canceled', message: 'canceled' }));\n };\n }\n\n // Save Request URL\n xhr.requestUrl = options.url;\n xhr.requestParameters = options;\n\n // Before open callback\n proceedRequest = fireCallback('beforeOpen', xhr, options);\n if (proceedRequest === false) {\n reject(new RequestError({ options, xhr, status: 'canceled', message: 'canceled' }));\n return;\n }\n\n // Open XHR\n xhr.open(method, options.url, options.async, options.user, options.password);\n\n // Create POST Data\n let postData = null;\n\n if ((method === 'POST' || method === 'PUT' || method === 'PATCH') && options.data) {\n if (options.processData) {\n const postDataInstances = [ArrayBuffer, Blob, Document, FormData];\n // Post Data\n if (postDataInstances.indexOf(options.data.constructor) >= 0) {\n postData = options.data;\n } else {\n // POST Headers\n const boundary = `---------------------------${Date.now().toString(16)}`;\n\n if (options.contentType === 'multipart/form-data') {\n xhr.setRequestHeader('Content-Type', `multipart/form-data; boundary=${boundary}`);\n } else {\n xhr.setRequestHeader('Content-Type', options.contentType);\n }\n postData = '';\n let data = serializeObject(options.data);\n if (options.contentType === 'multipart/form-data') {\n data = data.split('&');\n const newData = [];\n for (let i = 0; i < data.length; i += 1) {\n newData.push(\n `Content-Disposition: form-data; name=\"${data[i].split('=')[0]}\"\\r\\n\\r\\n${\n data[i].split('=')[1]\n }\\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 if (options.dataType === 'json' && (!options.headers || !options.headers.Accept)) {\n xhr.setRequestHeader('Accept', 'application/json');\n }\n\n // Additional headers\n if (options.headers) {\n Object.keys(options.headers).forEach((headerName) => {\n if (typeof options.headers[headerName] === 'undefined') return;\n xhr.setRequestHeader(headerName, options.headers[headerName]);\n });\n }\n\n // Check for crossDomain\n if (typeof options.crossDomain === 'undefined') {\n options.crossDomain =\n // 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 }\n\n // Handle XHR\n xhr.onload = function onload() {\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 0) {\n let responseData;\n if (options.dataType === 'json') {\n let parseError;\n try {\n responseData = JSON.parse(xhr.responseText);\n } catch (err) {\n parseError = true;\n }\n if (!parseError) {\n fireCallback('success', responseData, xhr.status, xhr);\n resolve(new RequestResponse({ options, data: responseData, status: xhr.status, xhr }));\n } else {\n fireCallback('error', xhr, 'parseerror', 'parseerror');\n reject(new RequestError({ options, xhr, status: 'parseerror', message: 'parseerror' }));\n }\n } else {\n responseData =\n xhr.responseType === 'text' || xhr.responseType === ''\n ? xhr.responseText\n : xhr.response;\n fireCallback('success', responseData, xhr.status, xhr);\n resolve(new RequestResponse({ options, data: responseData, status: xhr.status, xhr }));\n }\n } else {\n fireCallback('error', xhr, xhr.status, xhr.statusText);\n reject(new RequestError({ options, xhr, status: xhr.status, message: xhr.statusText }));\n }\n if (options.statusCode) {\n if (globals.statusCode && globals.statusCode[xhr.status])\n globals.statusCode[xhr.status](xhr);\n if (options.statusCode[xhr.status]) options.statusCode[xhr.status](xhr);\n }\n fireCallback('complete', xhr, xhr.status);\n };\n\n xhr.onerror = function onerror() {\n fireCallback('error', xhr, xhr.status, xhr.status);\n reject(new RequestError({ options, xhr, status: xhr.status, message: xhr.statusText }));\n fireCallback('complete', xhr, 'error');\n };\n\n // Timeout\n if (options.timeout > 0) {\n xhr.timeout = options.timeout;\n xhr.ontimeout = () => {\n fireCallback('error', xhr, 'timeout', 'timeout');\n reject(new RequestError({ options, xhr, status: 'timeout', message: 'timeout' }));\n fireCallback('complete', xhr, 'timeout');\n };\n }\n\n // Ajax start callback\n proceedRequest = fireCallback('beforeSend', xhr, options);\n if (proceedRequest === false) {\n reject(new RequestError({ options, xhr, status: 'canceled', message: 'canceled' }));\n return;\n }\n\n // Send XHR\n xhr.send(postData);\n });\n\nfunction requestShortcut(method, ...args) {\n let [url, data, success, error, dataType] = [];\n if (typeof args[1] === 'function') {\n [url, success, error, dataType] = args;\n } else {\n [url, data, success, error, dataType] = args;\n }\n [success, error].forEach((callback) => {\n if (typeof callback === 'string') {\n dataType = callback;\n if (callback === success) success = undefined;\n else error = undefined;\n }\n });\n dataType = dataType || (method === 'json' || method === 'postJSON' ? 'json' : undefined);\n const requestOptions = {\n url,\n method: method === 'post' || method === 'postJSON' ? 'POST' : 'GET',\n data,\n success,\n error,\n dataType,\n };\n if (method === 'postJSON') {\n extend(requestOptions, {\n contentType: 'application/json',\n processData: false,\n crossDomain: true,\n data: typeof data === 'string' ? data : JSON.stringify(data),\n });\n }\n return request(requestOptions);\n}\n\nObject.assign(request, {\n get: (...args) => requestShortcut('get', ...args),\n post: (...args) => requestShortcut('post', ...args),\n json: (...args) => requestShortcut('json', ...args),\n getJSON: (...args) => requestShortcut('json', ...args),\n postJSON: (...args) => requestShortcut('postJSON', ...args),\n});\n\nrequest.abortController = () => {\n const contoller = {\n canceled: false,\n onAbort: null,\n 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, { method: options.type });\n }\n extend(globals, options);\n};\n\nexport default request;\n","/* eslint no-param-reassign: \"off\" */\nimport request from '../../shared/request.js';\n\nexport default {\n name: 'request',\n proto: {\n request,\n },\n static: {\n request,\n },\n};\n","/* eslint-disable no-nested-ternary */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport { extend } from '../../shared/utils.js';\n\nfunction initTouch() {\n const app = this;\n const device = getDevice();\n const support = getSupport();\n const window = getWindow();\n const document = getDocument();\n const params = app.params.touch;\n const useRipple = params[`${app.theme}TouchRipple`];\n\n if (device.ios && device.webView) {\n // Strange hack required for iOS 8 webview to work on inputs\n window.addEventListener('touchstart', () => {});\n }\n\n let touchStartX;\n let touchStartY;\n let targetElement;\n let isMoved;\n let tapHoldFired;\n let tapHoldTimeout;\n let preventClick;\n\n let activableElement;\n let activeTimeout;\n\n let rippleWave;\n let rippleTarget;\n let rippleTimeout;\n\n function findActivableElement(el) {\n const target = $(el);\n const parents = target.parents(params.activeStateElements);\n if (target.closest('.no-active-state').length) {\n return null;\n }\n let activable;\n if (target.is(params.activeStateElements)) {\n activable = target;\n }\n if (parents.length > 0) {\n activable = activable ? activable.add(parents) : parents;\n }\n if (activable && activable.length > 1) {\n const newActivable = [];\n let preventPropagation;\n for (let i = 0; i < activable.length; i += 1) {\n if (!preventPropagation) {\n newActivable.push(activable[i]);\n if (\n activable.eq(i).hasClass('prevent-active-state-propagation') ||\n activable.eq(i).hasClass('no-active-state-propagation')\n ) {\n preventPropagation = true;\n }\n }\n }\n activable = $(newActivable);\n }\n return activable || target;\n }\n\n function isInsideScrollableView(el) {\n const pageContent = el.parents('.page-content');\n return pageContent.length > 0;\n }\n\n function addActive() {\n if (!activableElement) return;\n activableElement.addClass('active-state');\n }\n function removeActive() {\n if (!activableElement) return;\n activableElement.removeClass('active-state');\n activableElement = null;\n }\n\n // Ripple handlers\n function findRippleElement(el) {\n const rippleElements = params.touchRippleElements;\n const $el = $(el);\n if ($el.is(rippleElements)) {\n if ($el.hasClass('no-ripple')) {\n return false;\n }\n return $el;\n }\n if ($el.parents(rippleElements).length > 0) {\n const rippleParent = $el.parents(rippleElements).eq(0);\n if (rippleParent.hasClass('no-ripple')) {\n return false;\n }\n return rippleParent;\n }\n return false;\n }\n function createRipple($el, x, y) {\n if (!$el) return;\n rippleWave = app.touchRipple.create(app, $el, x, y);\n }\n\n function removeRipple() {\n if (!rippleWave) return;\n rippleWave.remove();\n rippleWave = undefined;\n rippleTarget = undefined;\n }\n function rippleTouchStart(el) {\n rippleTarget = findRippleElement(el);\n if (!rippleTarget || rippleTarget.length === 0) {\n rippleTarget = undefined;\n return;\n }\n const inScrollable = isInsideScrollableView(rippleTarget);\n\n if (!inScrollable) {\n removeRipple();\n createRipple(rippleTarget, touchStartX, touchStartY);\n } else {\n clearTimeout(rippleTimeout);\n rippleTimeout = setTimeout(() => {\n removeRipple();\n createRipple(rippleTarget, touchStartX, touchStartY);\n }, 80);\n }\n }\n function rippleTouchMove() {\n clearTimeout(rippleTimeout);\n removeRipple();\n }\n function rippleTouchEnd() {\n if (!rippleWave && rippleTarget && !isMoved) {\n clearTimeout(rippleTimeout);\n createRipple(rippleTarget, touchStartX, touchStartY);\n setTimeout(removeRipple, 0);\n } else {\n removeRipple();\n }\n }\n\n // Mouse Handlers\n function handleMouseDown(e) {\n const $activableEl = findActivableElement(e.target);\n if ($activableEl) {\n $activableEl.addClass('active-state');\n if ('which' in e && e.which === 3) {\n setTimeout(() => {\n $('.active-state').removeClass('active-state');\n }, 0);\n }\n }\n\n if (useRipple) {\n touchStartX = e.pageX;\n touchStartY = e.pageY;\n rippleTouchStart(e.target, e.pageX, e.pageY);\n }\n }\n function handleMouseMove() {\n if (!params.activeStateOnMouseMove) {\n $('.active-state').removeClass('active-state');\n }\n if (useRipple) {\n rippleTouchMove();\n }\n }\n function handleMouseUp() {\n $('.active-state').removeClass('active-state');\n if (useRipple) {\n rippleTouchEnd();\n }\n }\n\n function handleTouchCancel() {\n targetElement = null;\n\n // Remove Active State\n clearTimeout(activeTimeout);\n clearTimeout(tapHoldTimeout);\n if (params.activeState) {\n removeActive();\n }\n\n // Remove Ripple\n if (useRipple) {\n rippleTouchEnd();\n }\n }\n\n let isScrolling;\n let isSegmentedStrong = false;\n let segmentedStrongEl = null;\n\n const touchMoveActivableIos = '.dialog-button, .actions-button';\n let isTouchMoveActivable = false;\n let touchmoveActivableEl = null;\n\n function handleTouchStart(e) {\n isMoved = false;\n tapHoldFired = false;\n preventClick = false;\n isScrolling = undefined;\n if (e.targetTouches.length > 1) {\n if (activableElement) removeActive();\n return true;\n }\n if (e.touches.length > 1 && activableElement) {\n removeActive();\n }\n if (params.tapHold) {\n if (tapHoldTimeout) clearTimeout(tapHoldTimeout);\n tapHoldTimeout = setTimeout(() => {\n if (e && e.touches && e.touches.length > 1) return;\n tapHoldFired = true;\n e.preventDefault();\n preventClick = true;\n $(e.target).trigger('taphold', e);\n app.emit('taphold', e);\n }, params.tapHoldDelay);\n }\n targetElement = e.target;\n touchStartX = e.targetTouches[0].pageX;\n touchStartY = e.targetTouches[0].pageY;\n isSegmentedStrong = e.target.closest(\n '.segmented-strong .button-active, .segmented-strong .tab-link-active',\n );\n isTouchMoveActivable = app.theme === 'ios' && e.target.closest(touchMoveActivableIos);\n if (isSegmentedStrong) {\n segmentedStrongEl = isSegmentedStrong.closest('.segmented-strong');\n }\n\n if (params.activeState) {\n activableElement = findActivableElement(targetElement);\n if (activableElement && !isInsideScrollableView(activableElement)) {\n addActive();\n } else if (activableElement) {\n activeTimeout = setTimeout(addActive, 80);\n }\n }\n if (useRipple) {\n rippleTouchStart(targetElement, touchStartX, touchStartY);\n }\n return true;\n }\n function handleTouchMove(e) {\n let touch;\n let distance;\n let shouldRemoveActive = true;\n\n if (e.type === 'touchmove') {\n touch = e.targetTouches[0];\n distance = params.touchClicksDistanceThreshold;\n }\n\n const touchCurrentX = e.targetTouches[0].pageX;\n const touchCurrentY = e.targetTouches[0].pageY;\n\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(\n isScrolling || Math.abs(touchCurrentY - touchStartY) > Math.abs(touchCurrentX - touchStartX)\n );\n }\n\n if (isTouchMoveActivable || (!isScrolling && isSegmentedStrong && segmentedStrongEl)) {\n if (e.cancelable) e.preventDefault();\n }\n\n if (!isScrolling && isSegmentedStrong && segmentedStrongEl) {\n const elementFromPoint = document.elementFromPoint(\n e.targetTouches[0].clientX,\n e.targetTouches[0].clientY,\n );\n const buttonEl = elementFromPoint.closest(\n '.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 const pageX = touch.pageX;\n const pageY = touch.pageY;\n if (Math.abs(pageX - touchStartX) > distance || Math.abs(pageY - touchStartY) > distance) {\n isMoved = true;\n }\n } else {\n isMoved = true;\n }\n if (isMoved) {\n preventClick = true;\n // Keep active state on touchMove (for dialog and actions buttons)\n if (isTouchMoveActivable) {\n const elementFromPoint = document.elementFromPoint(\n e.targetTouches[0].clientX,\n e.targetTouches[0].clientY,\n );\n touchmoveActivableEl = elementFromPoint.closest(touchMoveActivableIos);\n if (\n touchmoveActivableEl &&\n activableElement &&\n activableElement[0] === touchmoveActivableEl\n ) {\n shouldRemoveActive = false;\n } else if (touchmoveActivableEl) {\n setTimeout(() => {\n activableElement = findActivableElement(touchmoveActivableEl);\n addActive();\n });\n }\n }\n if (params.tapHold) {\n clearTimeout(tapHoldTimeout);\n }\n if (params.activeState && shouldRemoveActive) {\n clearTimeout(activeTimeout);\n removeActive();\n }\n if (useRipple) {\n rippleTouchMove();\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 if (touchmoveActivableEl) {\n $(touchmoveActivableEl).trigger('click', 'f7TouchMoveActivable');\n touchmoveActivableEl = null;\n }\n if (document.activeElement === e.target) {\n if (params.activeState) removeActive();\n if (useRipple) {\n rippleTouchEnd();\n }\n return true;\n }\n if (params.activeState) {\n addActive();\n setTimeout(removeActive, 0);\n }\n if (useRipple) {\n rippleTouchEnd();\n }\n if ((params.tapHoldPreventClicks && tapHoldFired) || preventClick) {\n if (e.cancelable) e.preventDefault();\n preventClick = true;\n return false;\n }\n return true;\n }\n function handleClick(e) {\n const isOverswipe = e && e.detail && e.detail === 'f7Overswipe';\n const isSegmented = e && e.detail && e.detail === 'f7Segmented';\n // eslint-disable-next-line\n const isTouchMoveActivable = e && e.detail && e.detail === 'f7TouchMoveActivable';\n let localPreventClick = preventClick;\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 if (params.tapHold && params.tapHoldPreventClicks && tapHoldFired) {\n localPreventClick = true;\n }\n if (localPreventClick) {\n e.stopImmediatePropagation();\n e.stopPropagation();\n e.preventDefault();\n }\n\n if (params.tapHold) {\n tapHoldTimeout = setTimeout(\n () => {\n tapHoldFired = false;\n },\n device.ios || device.androidChrome ? 100 : 400,\n );\n }\n preventClick = false;\n targetElement = null;\n\n return !localPreventClick;\n }\n\n function emitAppTouchEvent(name, e) {\n app.emit({\n events: name,\n data: [e],\n });\n }\n function appClick(e) {\n emitAppTouchEvent('click', e);\n }\n function appTouchStartActive(e) {\n emitAppTouchEvent('touchstart touchstart:active', e);\n }\n function appTouchMoveActive(e) {\n emitAppTouchEvent('touchmove touchmove:active', e);\n }\n function appTouchEndActive(e) {\n emitAppTouchEvent('touchend touchend:active', e);\n }\n function appTouchStartPassive(e) {\n emitAppTouchEvent('touchstart:passive', e);\n }\n function appTouchMovePassive(e) {\n emitAppTouchEvent('touchmove:passive', e);\n }\n function appTouchEndPassive(e) {\n emitAppTouchEvent('touchend:passive', e);\n }\n\n const passiveListener = support.passiveListener ? { passive: true } : false;\n const passiveListenerCapture = support.passiveListener ? { passive: true, capture: true } : true;\n const activeListener = support.passiveListener ? { passive: false } : false;\n const activeListenerCapture = support.passiveListener ? { passive: false, capture: true } : true;\n\n document.addEventListener('click', appClick, true);\n\n if (support.passiveListener) {\n document.addEventListener(app.touchEvents.start, appTouchStartActive, activeListenerCapture);\n document.addEventListener(app.touchEvents.move, appTouchMoveActive, activeListener);\n document.addEventListener(app.touchEvents.end, appTouchEndActive, activeListener);\n\n document.addEventListener(app.touchEvents.start, appTouchStartPassive, passiveListenerCapture);\n document.addEventListener(app.touchEvents.move, appTouchMovePassive, passiveListener);\n document.addEventListener(app.touchEvents.end, appTouchEndPassive, passiveListener);\n } else {\n document.addEventListener(\n app.touchEvents.start,\n (e) => {\n appTouchStartActive(e);\n appTouchStartPassive(e);\n },\n true,\n );\n document.addEventListener(\n app.touchEvents.move,\n (e) => {\n appTouchMoveActive(e);\n appTouchMovePassive(e);\n },\n false,\n );\n document.addEventListener(\n app.touchEvents.end,\n (e) => {\n appTouchEndActive(e);\n appTouchEndPassive(e);\n },\n false,\n );\n }\n\n if (support.touch) {\n app.on('click', handleClick);\n app.on('touchstart', handleTouchStart);\n app.on('touchmove', handleTouchMove);\n app.on('touchend', handleTouchEnd);\n document.addEventListener('touchcancel', handleTouchCancel, { passive: true });\n } else if (params.activeState) {\n app.on('touchstart', handleMouseDown);\n app.on('touchmove', handleMouseMove);\n app.on('touchend', handleMouseUp);\n document.addEventListener('pointercancel', handleMouseUp, { passive: true });\n }\n document.addEventListener('contextmenu', (e) => {\n if (\n params.disableContextMenu &&\n (device.ios ||\n device.android ||\n device.cordova ||\n (window.Capacitor && window.Capacitor.isNative))\n ) {\n e.preventDefault();\n }\n if (useRipple) {\n if (activableElement) removeActive();\n rippleTouchEnd();\n }\n });\n}\n\nexport default {\n name: 'touch',\n params: {\n touch: {\n // Clicks\n touchClicksDistanceThreshold: 5,\n // ContextMenu\n disableContextMenu: false,\n // Tap Hold\n tapHold: false,\n tapHoldDelay: 750,\n tapHoldPreventClicks: true,\n // Active State\n activeState: true,\n activeStateElements:\n '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:\n '.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:\n '.ripple-inset, .icon-only, .searchbar-disable-button, .input-clear-button, .notification-close-button, .md .navbar .link.back',\n },\n },\n create() {\n const app = this;\n const 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","/**\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.js';\nimport { extend } from './utils.js';\n\nconst History = {\n queue: [],\n clearQueue() {\n if (History.queue.length === 0) return;\n const currentQueue = History.queue.shift();\n currentQueue();\n },\n routerQueue: [],\n clearRouterQueue() {\n if (History.routerQueue.length === 0) return;\n const currentQueue = History.routerQueue.pop();\n const { router, stateUrl, action } = currentQueue;\n\n let animate = router.params.animate;\n if (router.params.browserHistoryAnimate === false) animate = false;\n\n if (action === 'back') {\n router.back({ animate, browserHistory: false });\n }\n if (action === 'load') {\n router.navigate(stateUrl, { animate, browserHistory: false });\n }\n },\n handle(e) {\n if (History.blockPopstate) return;\n const app = this;\n // const mainView = app.views.main;\n let state = e.state;\n History.previousState = History.state;\n History.state = state;\n\n History.allowChange = true;\n History.clearQueue();\n\n state = History.state;\n if (!state) state = {};\n\n app.views.forEach((view) => {\n const router = view.router;\n let viewState = state[view.id];\n if (!viewState && view.params.browserHistory) {\n viewState = {\n url: view.router.history[0],\n };\n }\n if (!viewState) return;\n const stateUrl = viewState.url || undefined;\n\n let animate = router.params.animate;\n if (router.params.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({ animate, browserHistory: false });\n } else {\n History.routerQueue.push({\n action: 'back',\n router,\n });\n }\n } else if (router.allowPageChange) {\n // Load page\n router.navigate(stateUrl, { animate, browserHistory: false });\n } else {\n History.routerQueue.unshift({\n action: 'load',\n stateUrl,\n router,\n });\n }\n }\n });\n },\n initViewState(viewId, viewState) {\n const window = getWindow();\n const newState = extend({}, History.state || {}, {\n [viewId]: viewState,\n });\n History.state = newState;\n window.history.replaceState(newState, '');\n },\n push(viewId, viewState, url) {\n const window = getWindow();\n if (url.substr(-3) === '#!/') {\n // eslint-disable-next-line\n url = url.replace('#!/', '');\n }\n if (!History.allowChange) {\n History.queue.push(() => {\n History.push(viewId, viewState, url);\n });\n return;\n }\n History.previousState = History.state;\n const newState = extend({}, History.previousState || {}, {\n [viewId]: viewState,\n });\n History.state = newState;\n window.history.pushState(newState, '', url);\n },\n replace(viewId, viewState, url) {\n const window = getWindow();\n if (url.substr(-3) === '#!/') {\n // eslint-disable-next-line\n url = url.replace('#!/', '');\n }\n if (!History.allowChange) {\n History.queue.push(() => {\n History.replace(viewId, viewState, url);\n });\n return;\n }\n History.previousState = History.state;\n const newState = extend({}, History.previousState || {}, {\n [viewId]: viewState,\n });\n History.state = newState;\n window.history.replaceState(newState, '', url);\n },\n go(index) {\n const window = getWindow();\n History.allowChange = false;\n window.history.go(index);\n },\n back() {\n const window = getWindow();\n History.allowChange = false;\n window.history.back();\n },\n allowChange: true,\n previousState: {},\n state: {},\n blockPopstate: true,\n init(app) {\n const window = getWindow();\n const document = getDocument();\n History.state = window.history.state;\n $(window).on('load', () => {\n setTimeout(() => {\n History.blockPopstate = false;\n }, 0);\n });\n\n if (document.readyState && document.readyState === 'complete') {\n History.blockPopstate = false;\n }\n\n $(window).on('popstate', History.handle.bind(app));\n },\n};\n\nexport default History;\n","import $ from '../../shared/dom7.js';\nimport History from '../../shared/history.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport { now } from '../../shared/utils.js';\n\nfunction SwipeBack(r) {\n const router = r;\n const { $el, $navbarsEl, app, params } = router;\n const support = getSupport();\n const device = getDevice();\n let isTouched = false;\n let isMoved = false;\n const touchesStart = {};\n let isScrolling;\n let $currentPageEl = [];\n let $previousPageEl = [];\n let viewContainerWidth;\n let touchesDiff;\n let allowViewTouchMove = true;\n let touchStartTime;\n let $currentNavbarEl = [];\n let $previousNavbarEl = [];\n let dynamicNavbar;\n let $pageShadowEl;\n let $pageOpacityEl;\n\n let animatableNavEls;\n\n const paramsSwipeBackAnimateShadow = params[`${app.theme}SwipeBackAnimateShadow`];\n const paramsSwipeBackAnimateOpacity = params[`${app.theme}SwipeBackAnimateOpacity`];\n const paramsSwipeBackActiveArea = params[`${app.theme}SwipeBackActiveArea`];\n const paramsSwipeBackThreshold = params[`${app.theme}SwipeBackThreshold`];\n\n const transformOrigin = app.rtl ? 'right center' : 'left center';\n const transformOriginTitleLarge = app.rtl\n ? 'calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center'\n : 'calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center';\n\n function animatableNavElements() {\n const els = [];\n const inverter = app.rtl ? -1 : 1;\n const currentNavIsTransparent =\n $currentNavbarEl.hasClass('navbar-transparent') &&\n !$currentNavbarEl.hasClass('navbar-large') &&\n !$currentNavbarEl.hasClass('navbar-transparent-visible');\n const currentNavIsLarge = $currentNavbarEl.hasClass('navbar-large');\n const currentNavIsCollapsed = $currentNavbarEl.hasClass('navbar-large-collapsed');\n const currentNavIsLargeTransparent =\n $currentNavbarEl.hasClass('navbar-large-transparent') ||\n ($currentNavbarEl.hasClass('navbar-large') &&\n $currentNavbarEl.hasClass('navbar-transparent'));\n const previousNavIsTransparent =\n $previousNavbarEl.hasClass('navbar-transparent') &&\n !$previousNavbarEl.hasClass('navbar-large') &&\n !$previousNavbarEl.hasClass('navbar-transparent-visible');\n const previousNavIsLarge = $previousNavbarEl.hasClass('navbar-large');\n const previousNavIsCollapsed = $previousNavbarEl.hasClass('navbar-large-collapsed');\n const previousNavIsLargeTransparent =\n $previousNavbarEl.hasClass('navbar-large-transparent') ||\n ($previousNavbarEl.hasClass('navbar-large') &&\n $previousNavbarEl.hasClass('navbar-transparent'));\n const fromLarge = currentNavIsLarge && !currentNavIsCollapsed;\n const toLarge = previousNavIsLarge && !previousNavIsCollapsed;\n const $currentNavElements = $currentNavbarEl.find(\n '.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg',\n );\n const $previousNavElements = $previousNavbarEl.find(\n '.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg',\n );\n let activeNavBackIconText;\n let previousNavBackIconText;\n\n if (params.iosAnimateNavbarBackIcon) {\n if (\n $currentNavbarEl.hasClass('sliding') ||\n $currentNavbarEl.find('.navbar-inner.sliding').length\n ) {\n activeNavBackIconText = $currentNavbarEl.find('.left').find('.back .icon + span').eq(0);\n } else {\n activeNavBackIconText = $currentNavbarEl\n .find('.left.sliding')\n .find('.back .icon + span')\n .eq(0);\n }\n if (\n $previousNavbarEl.hasClass('sliding') ||\n $previousNavbarEl.find('.navbar-inner.sliding').length\n ) {\n previousNavBackIconText = $previousNavbarEl.find('.left').find('.back .icon + span').eq(0);\n } else {\n previousNavBackIconText = $previousNavbarEl\n .find('.left.sliding')\n .find('.back .icon + span')\n .eq(0);\n }\n if (activeNavBackIconText.length) {\n $previousNavElements.each((el) => {\n if (!$(el).hasClass('title')) return;\n el.f7NavbarLeftOffset += activeNavBackIconText.prev('.icon')[0].offsetWidth;\n });\n }\n }\n $currentNavElements.each((navEl) => {\n const $navEl = $(navEl);\n const isSubnavbar = $navEl.hasClass('subnavbar');\n const isLeft = $navEl.hasClass('left');\n const isTitle = $navEl.hasClass('title');\n const isBg = $navEl.hasClass('navbar-bg');\n if ((isTitle || isBg) && currentNavIsTransparent) return;\n if (!fromLarge && $navEl.hasClass('.title-large')) return;\n const el = {\n el: navEl,\n };\n if (fromLarge) {\n if (isTitle) return;\n if ($navEl.hasClass('title-large')) {\n if (els.indexOf(el) < 0) els.push(el);\n el.overflow = 'visible';\n $navEl.find('.title-large-text').each((subNavEl) => {\n els.push({\n el: subNavEl,\n transform: (progress) => `translateX(${progress * 100 * inverter}%)`,\n });\n });\n return;\n }\n }\n if (toLarge) {\n if (!fromLarge) {\n if ($navEl.hasClass('title-large')) {\n if (els.indexOf(el) < 0) els.push(el);\n el.opacity = 0;\n }\n }\n if (isLeft) {\n if (els.indexOf(el) < 0) els.push(el);\n el.opacity = (progress) => 1 - progress ** 0.33;\n $navEl.find('.back span').each((subNavEl) => {\n els.push({\n el: subNavEl,\n 'transform-origin': transformOrigin,\n transform: (progress) =>\n `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(${\n 1 + 1 * progress\n })`,\n });\n });\n return;\n }\n }\n if (isBg) {\n if (els.indexOf(el) < 0) els.push(el);\n if (!fromLarge && !toLarge) {\n if (currentNavIsCollapsed) {\n if (currentNavIsLargeTransparent) {\n el.className = 'ios-swipeback-navbar-bg-large';\n }\n el.transform = (progress) =>\n `translateX(${\n 100 * progress * inverter\n }%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))`;\n } else {\n el.transform = (progress) => `translateX(${100 * progress * inverter}%)`;\n }\n }\n if (!fromLarge && toLarge) {\n el.className = 'ios-swipeback-navbar-bg-large';\n el.transform = (progress) =>\n `translateX(${100 * progress * inverter}%) translateY(calc(-1 * ${\n 1 - progress\n } * var(--f7-navbar-large-title-height)))`;\n }\n if (fromLarge && toLarge) {\n el.transform = (progress) => `translateX(${100 * progress * inverter}%)`;\n }\n if (fromLarge && !toLarge) {\n el.transform = (progress) =>\n `translateX(${\n 100 * progress * inverter\n }%) translateY(calc(-${progress} * var(--f7-navbar-large-title-height)))`;\n }\n return;\n }\n if ($navEl.hasClass('title-large')) return;\n const isSliding =\n $navEl.hasClass('sliding') || $navEl.parents('.navbar-inner.sliding').length;\n if (els.indexOf(el) < 0) els.push(el);\n if (!isSubnavbar || (isSubnavbar && !isSliding)) {\n el.opacity = (progress) => 1 - progress ** 0.33;\n }\n if (isSliding) {\n let transformTarget = el;\n if (isLeft && activeNavBackIconText.length && params.iosAnimateNavbarBackIcon) {\n const textEl = { el: activeNavBackIconText[0] };\n transformTarget = textEl;\n els.push(textEl);\n }\n transformTarget.transform = (progress) => {\n let activeNavTranslate = progress * transformTarget.el.f7NavbarRightOffset;\n if (device.pixelRatio === 1) activeNavTranslate = Math.round(activeNavTranslate);\n if (isSubnavbar && currentNavIsLarge) {\n return `translate3d(${activeNavTranslate}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`;\n }\n return `translate3d(${activeNavTranslate}px,0,0)`;\n };\n }\n });\n $previousNavElements.each((navEl) => {\n const $navEl = $(navEl);\n const isSubnavbar = $navEl.hasClass('subnavbar');\n const isLeft = $navEl.hasClass('left');\n const isTitle = $navEl.hasClass('title');\n const isBg = $navEl.hasClass('navbar-bg');\n if ((isTitle || isBg) && previousNavIsTransparent) return;\n const el = {\n el: navEl,\n };\n if (toLarge) {\n if (isTitle) return;\n if (els.indexOf(el) < 0) els.push(el);\n\n if ($navEl.hasClass('title-large')) {\n el.opacity = 1;\n el.overflow = 'visible';\n $navEl.find('.title-large-text').each((subNavEl) => {\n els.push({\n el: subNavEl,\n 'transform-origin': transformOriginTitleLarge,\n opacity: (progress) => progress ** 3,\n transform: (progress) =>\n `translateX(calc(${\n 1 - progress\n } * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(${\n progress - 1\n } * var(--f7-navbar-large-title-height) + ${\n 1 - progress\n } * var(--f7-navbar-large-title-padding-vertical))) scale(${0.5 + progress * 0.5})`,\n });\n });\n return;\n }\n }\n if (isBg) {\n if (els.indexOf(el) < 0) els.push(el);\n if (!fromLarge && !toLarge) {\n if (previousNavIsCollapsed) {\n if (previousNavIsLargeTransparent) {\n el.className = 'ios-swipeback-navbar-bg-large';\n }\n el.transform = (progress) =>\n `translateX(${\n (-100 + 100 * progress) * inverter\n }%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))`;\n } else {\n el.transform = (progress) => `translateX(${(-100 + 100 * progress) * inverter}%)`;\n }\n }\n if (!fromLarge && toLarge) {\n el.transform = (progress) =>\n `translateX(${(-100 + 100 * progress) * inverter}%) translateY(calc(-1 * ${\n 1 - progress\n } * var(--f7-navbar-large-title-height)))`;\n }\n if (fromLarge && !toLarge) {\n el.className = 'ios-swipeback-navbar-bg-large';\n el.transform = (progress) =>\n `translateX(${\n (-100 + 100 * progress) * inverter\n }%) translateY(calc(-${progress} * var(--f7-navbar-large-title-height)))`;\n }\n if (fromLarge && toLarge) {\n el.transform = (progress) => `translateX(${(-100 + 100 * progress) * inverter}%)`;\n }\n\n return;\n }\n if ($navEl.hasClass('title-large')) return;\n const isSliding =\n $navEl.hasClass('sliding') || $previousNavbarEl.children('.navbar-inner.sliding').length;\n if (els.indexOf(el) < 0) els.push(el);\n if (!isSubnavbar || (isSubnavbar && !isSliding)) {\n el.opacity = (progress) => progress ** 3;\n }\n if (isSliding) {\n let transformTarget = el;\n if (isLeft && previousNavBackIconText.length && params.iosAnimateNavbarBackIcon) {\n const textEl = { el: previousNavBackIconText[0] };\n transformTarget = textEl;\n els.push(textEl);\n }\n transformTarget.transform = (progress) => {\n let previousNavTranslate = transformTarget.el.f7NavbarLeftOffset * (1 - progress);\n if (device.pixelRatio === 1) previousNavTranslate = Math.round(previousNavTranslate);\n if (isSubnavbar && previousNavIsLarge) {\n return `translate3d(${previousNavTranslate}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`;\n }\n return `translate3d(${previousNavTranslate}px,0,0)`;\n };\n }\n });\n return els;\n }\n\n function setAnimatableNavElements({ progress, reset, transition, reflow } = {}) {\n const styles = ['overflow', 'transform', 'transform-origin', 'opacity'];\n if (transition === true || transition === false) {\n for (let i = 0; i < animatableNavEls.length; i += 1) {\n const el = animatableNavEls[i];\n if (el && el.el) {\n if (transition === true) el.el.classList.add('navbar-page-transitioning');\n if (transition === false) el.el.classList.remove('navbar-page-transitioning');\n }\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 for (let i = 0; i < animatableNavEls.length; i += 1) {\n const el = animatableNavEls[i];\n if (el && el.el) {\n if (el.className && !el.classNameSet && !reset) {\n el.el.classList.add(el.className);\n el.classNameSet = true;\n }\n if (el.className && reset) {\n el.el.classList.remove(el.className);\n }\n for (let j = 0; j < styles.length; j += 1) {\n const styleProp = styles[j];\n if (el[styleProp]) {\n if (reset) {\n el.el.style[styleProp] = '';\n } else if (typeof el[styleProp] === 'function') {\n el.el.style[styleProp] = el[styleProp](progress);\n } else {\n el.el.style[styleProp] = el[styleProp];\n }\n }\n }\n }\n }\n }\n\n function handleTouchStart(e) {\n const swipeBackEnabled = params[`${app.theme}SwipeBack`];\n if (\n !allowViewTouchMove ||\n !swipeBackEnabled ||\n isTouched ||\n (app.swipeout && app.swipeout.el) ||\n !router.allowPageChange\n )\n return;\n if ($(e.target).closest('.range-slider, .calendar-months').length > 0) return;\n if (\n $(e.target).closest('.page-master, .page-master-detail').length > 0 &&\n params.masterDetailBreakpoint > 0 &&\n app.width >= params.masterDetailBreakpoint\n )\n 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 function handleTouchMove(e) {\n if (!isTouched) return;\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (typeof isScrolling === 'undefined') {\n isScrolling =\n !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)) ||\n (pageX < touchesStart.x && !app.rtl) ||\n (pageX > touchesStart.x && app.rtl);\n }\n if (isScrolling || e.f7PreventSwipeBack || app.preventSwipeBack) {\n isTouched = false;\n return;\n }\n if (!isMoved) {\n // Calc values during first move fired\n let cancel = false;\n const target = $(e.target);\n\n const swipeout = target.closest('.swipeout');\n if (swipeout.length > 0) {\n if (!app.rtl && swipeout.find('.swipeout-actions-left').length > 0) cancel = true;\n if (app.rtl && swipeout.find('.swipeout-actions-right').length > 0) cancel = true;\n }\n\n $currentPageEl = target.closest('.page');\n if (\n $currentPageEl.hasClass('no-swipeback') ||\n target.closest('.no-swipeback, .card-opened').length > 0\n )\n cancel = true;\n $previousPageEl = $el.find('.page-previous:not(.stacked)');\n if ($previousPageEl.length > 1) {\n $previousPageEl = $previousPageEl.eq($previousPageEl.length - 1);\n }\n let notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea;\n viewContainerWidth = $el.width();\n if (app.rtl) {\n notFromBorder =\n touchesStart.x <\n $el.offset().left - $el[0].scrollLeft + (viewContainerWidth - paramsSwipeBackActiveArea);\n } else {\n notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea;\n }\n if (notFromBorder) cancel = true;\n if ($previousPageEl.length === 0 || $currentPageEl.length === 0) cancel = true;\n if (cancel) {\n isTouched = false;\n return;\n }\n\n if (paramsSwipeBackAnimateShadow) {\n $pageShadowEl = $currentPageEl.find('.page-shadow-effect');\n if ($pageShadowEl.length === 0) {\n $pageShadowEl = $('<div class=\"page-shadow-effect\"></div>');\n $currentPageEl.append($pageShadowEl);\n }\n }\n if (paramsSwipeBackAnimateOpacity) {\n $pageOpacityEl = $previousPageEl.find('.page-opacity-effect');\n if ($pageOpacityEl.length === 0) {\n $pageOpacityEl = $('<div class=\"page-opacity-effect\"></div>');\n $previousPageEl.append($pageOpacityEl);\n }\n }\n\n if (dynamicNavbar) {\n $currentNavbarEl = $navbarsEl.find('.navbar-current:not(.stacked)');\n $previousNavbarEl = $navbarsEl.find('.navbar-previous:not(.stacked)');\n if ($previousNavbarEl.length > 1) {\n $previousNavbarEl = $previousNavbarEl.eq($previousNavbarEl.length - 1);\n }\n\n animatableNavEls = animatableNavElements($previousNavbarEl, $currentNavbarEl);\n }\n\n // Close/Hide Any Picker\n if ($('.sheet.modal-in').length > 0 && app.sheet) {\n app.sheet.close($('.sheet.modal-in'));\n }\n }\n e.f7PreventSwipePanel = true;\n isMoved = true;\n app.preventSwipePanelBySwipeBack = true;\n e.preventDefault();\n\n // RTL inverter\n const inverter = app.rtl ? -1 : 1;\n\n // Touches diff\n touchesDiff = (pageX - touchesStart.x - paramsSwipeBackThreshold) * inverter;\n if (touchesDiff < 0) touchesDiff = 0;\n const percentage = Math.min(Math.max(touchesDiff / viewContainerWidth, 0), 1);\n\n // Swipe Back Callback\n const callbackData = {\n percentage,\n progress: percentage,\n currentPageEl: $currentPageEl[0],\n previousPageEl: $previousPageEl[0],\n currentNavbarEl: $currentNavbarEl[0],\n previousNavbarEl: $previousNavbarEl[0],\n };\n $el.trigger('swipeback:move', callbackData);\n router.emit('swipebackMove', callbackData);\n\n // Transform pages\n let currentPageTranslate = touchesDiff * inverter;\n let previousPageTranslate = (touchesDiff / 5 - viewContainerWidth / 5) * inverter;\n if (!app.rtl) {\n currentPageTranslate = Math.min(currentPageTranslate, viewContainerWidth);\n previousPageTranslate = Math.min(previousPageTranslate, 0);\n } else {\n currentPageTranslate = Math.max(currentPageTranslate, -viewContainerWidth);\n previousPageTranslate = Math.max(previousPageTranslate, 0);\n }\n if (device.pixelRatio === 1) {\n currentPageTranslate = Math.round(currentPageTranslate);\n previousPageTranslate = Math.round(previousPageTranslate);\n }\n\n router.swipeBackActive = true;\n $([$currentPageEl[0], $previousPageEl[0]]).addClass('page-swipeback-active');\n\n $currentPageEl.transform(`translate3d(${currentPageTranslate}px,0,0)`);\n if (paramsSwipeBackAnimateShadow) $pageShadowEl[0].style.opacity = 1 - 1 * percentage;\n\n if (app.theme === 'ios') {\n $previousPageEl.transform(`translate3d(${previousPageTranslate}px,0,0)`);\n }\n if (paramsSwipeBackAnimateOpacity) $pageOpacityEl[0].style.opacity = 1 - 1 * percentage;\n\n // Dynamic Navbars Animation\n if (!dynamicNavbar) return;\n\n setAnimatableNavElements({ progress: percentage });\n }\n function handleTouchEnd() {\n app.preventSwipePanelBySwipeBack = false;\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n isTouched = false;\n isMoved = false;\n router.swipeBackActive = false;\n const $pages = $([$currentPageEl[0], $previousPageEl[0]]);\n $pages.removeClass('page-swipeback-active');\n if (touchesDiff === 0) {\n $pages.transform('');\n if ($pageShadowEl && $pageShadowEl.length > 0) $pageShadowEl.remove();\n if ($pageOpacityEl && $pageOpacityEl.length > 0) $pageOpacityEl.remove();\n if (dynamicNavbar) {\n setAnimatableNavElements({ reset: true });\n }\n return;\n }\n const timeDiff = now() - touchStartTime;\n let pageChanged = false;\n // Swipe back to previous page\n if (\n (timeDiff < 300 && touchesDiff > 10) ||\n (timeDiff >= 300 && touchesDiff > viewContainerWidth / 2)\n ) {\n $currentPageEl\n .removeClass('page-current')\n .addClass(`page-next${app.theme !== 'ios' ? ' page-next-on-right' : ''}`);\n $previousPageEl\n .removeClass('page-previous')\n .addClass('page-current')\n .removeAttr('aria-hidden');\n if ($pageShadowEl) $pageShadowEl[0].style.opacity = '';\n if ($pageOpacityEl) $pageOpacityEl[0].style.opacity = '';\n if (dynamicNavbar) {\n router.setNavbarPosition($currentNavbarEl, 'next');\n router.setNavbarPosition($previousNavbarEl, 'current', false);\n }\n pageChanged = true;\n }\n // Reset custom styles\n // Add transitioning class for transition-duration\n $pages.addClass('page-transitioning page-transitioning-swipeback');\n if (device.ios) {\n // eslint-disable-next-line\n $currentPageEl[0]._clientLeft = $currentPageEl[0].clientLeft;\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 allowViewTouchMove = false;\n router.allowPageChange = false;\n\n // Swipe Back Callback\n const callbackData = {\n currentPageEl: $currentPageEl[0],\n previousPageEl: $previousPageEl[0],\n currentNavbarEl: $currentNavbarEl[0],\n previousNavbarEl: $previousNavbarEl[0],\n };\n\n if (pageChanged) {\n // Update Route\n router.currentRoute = $previousPageEl[0].f7Page.route;\n router.currentPage = $previousPageEl[0];\n\n // Page before animation callback\n router.pageCallback('beforeOut', $currentPageEl, $currentNavbarEl, 'current', 'next', {\n route: $currentPageEl[0].f7Page.route,\n swipeBack: true,\n });\n router.pageCallback(\n 'beforeIn',\n $previousPageEl,\n $previousNavbarEl,\n 'previous',\n 'current',\n { route: $previousPageEl[0].f7Page.route, swipeBack: true },\n $currentPageEl[0],\n );\n\n $el.trigger('swipeback:beforechange', callbackData);\n router.emit('swipebackBeforeChange', callbackData);\n } else {\n $el.trigger('swipeback:beforereset', callbackData);\n router.emit('swipebackBeforeReset', callbackData);\n }\n\n $currentPageEl.transitionEnd(() => {\n $pages.removeClass('page-transitioning page-transitioning-swipeback');\n if (dynamicNavbar) {\n setAnimatableNavElements({ reset: true, transition: false });\n }\n allowViewTouchMove = true;\n router.allowPageChange = true;\n if (pageChanged) {\n // Update History\n if (router.history.length === 1) {\n router.history.unshift(router.url);\n }\n router.history.pop();\n router.saveHistory();\n\n // Update push state\n if (params.browserHistory) {\n History.back();\n }\n\n // Page after animation callback\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 });\n\n // Remove Old Page\n if (params.stackPages && router.initialPages.indexOf($currentPageEl[0]) >= 0) {\n $currentPageEl.addClass('stacked');\n if (dynamicNavbar) {\n $currentNavbarEl.addClass('stacked');\n }\n } else {\n router.pageCallback('beforeRemove', $currentPageEl, $currentNavbarEl, 'next', {\n swipeBack: true,\n });\n router.removePage($currentPageEl);\n if (dynamicNavbar) {\n router.removeNavbar($currentNavbarEl);\n }\n }\n\n $el.trigger('swipeback:afterchange', callbackData);\n router.emit('swipebackAfterChange', callbackData);\n\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n\n if (params.preloadPreviousPage) {\n router.back(router.history[router.history.length - 2], { preload: true });\n }\n } else {\n $el.trigger('swipeback:afterreset', callbackData);\n router.emit('swipebackAfterReset', callbackData);\n }\n if ($pageShadowEl && $pageShadowEl.length > 0) $pageShadowEl.remove();\n if ($pageOpacityEl && $pageOpacityEl.length > 0) $pageOpacityEl.remove();\n });\n }\n\n function attachEvents() {\n const passiveListener =\n app.touchEvents.start === 'touchstart' && support.passiveListener\n ? { passive: true, 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 function detachEvents() {\n const passiveListener =\n app.touchEvents.start === 'touchstart' && support.passiveListener\n ? { passive: true, 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\n router.on('routerDestroy', detachEvents);\n}\n\nexport default SwipeBack;\n","import { extend } from '../../shared/utils.js';\n\nexport default function redirect(direction, route, options) {\n const router = this;\n const r = route.route.redirect;\n const method = direction === 'forward' ? 'navigate' : 'back';\n if (options.initial && router.params.browserHistory) {\n options.replaceState = true; // eslint-disable-line\n options.history = true; // eslint-disable-line\n }\n function redirectResolve(redirectUrl, redirectOptions = {}) {\n router.allowPageChange = true;\n router[method](redirectUrl, extend({}, options, redirectOptions));\n }\n function redirectReject() {\n router.allowPageChange = true;\n }\n if (typeof r === 'function') {\n router.allowPageChange = false;\n const redirectUrl = r.call(router, {\n router,\n to: route,\n resolve: redirectResolve,\n reject: redirectReject,\n direction,\n app: router.app,\n });\n if (redirectUrl && typeof redirectUrl === 'string') {\n router.allowPageChange = true;\n return router[method](redirectUrl, options);\n }\n return router;\n }\n return router[method](r, options);\n}\n","function processQueue(router, routerQueue, routeQueue, to, from, resolve, reject, direction) {\n const queue = [];\n\n if (Array.isArray(routeQueue)) {\n queue.push(...routeQueue);\n } else if (routeQueue && typeof routeQueue === 'function') {\n queue.push(routeQueue);\n }\n if (routerQueue) {\n if (Array.isArray(routerQueue)) {\n queue.push(...routerQueue);\n } else {\n queue.push(routerQueue);\n }\n }\n\n function next() {\n if (queue.length === 0) {\n resolve();\n return;\n }\n const queueItem = queue.shift();\n\n queueItem.call(router, {\n router,\n to,\n from,\n resolve() {\n next();\n },\n reject() {\n reject();\n },\n direction,\n app: router.app,\n });\n }\n next();\n}\n\nexport default function processRouteQueue(to, from, resolve, reject, direction) {\n const router = this;\n function enterNextRoute() {\n if (to && to.route && (router.params.routesBeforeEnter || to.route.beforeEnter)) {\n router.allowPageChange = false;\n processQueue(\n router,\n router.params.routesBeforeEnter,\n to.route.beforeEnter,\n to,\n from,\n () => {\n router.allowPageChange = true;\n resolve();\n },\n () => {\n reject();\n },\n direction,\n );\n } else {\n resolve();\n }\n }\n function leaveCurrentRoute() {\n if (from && from.route && (router.params.routesBeforeLeave || from.route.beforeLeave)) {\n router.allowPageChange = false;\n processQueue(\n router,\n router.params.routesBeforeLeave,\n from.route.beforeLeave,\n to,\n from,\n () => {\n router.allowPageChange = true;\n enterNextRoute();\n },\n () => {\n reject();\n },\n direction,\n );\n } else {\n enterNextRoute();\n }\n }\n leaveCurrentRoute();\n}\n","export default function appRouterCheck(router, method) {\n if (!router.view) {\n throw new Error(\n `Framework7: it is not allowed to use router methods on global app router. Use router methods only on related View, e.g. app.views.main.router.${method}(...)`,\n );\n }\n}\n","export default function asyncComponent(router, component, resolve, reject) {\n function resolvePromise(componentPromise) {\n componentPromise\n .then((c) => {\n // eslint-disable-next-line\n resolve({ component: c.default || c._default || c });\n })\n .catch((err) => {\n reject();\n throw new Error(err);\n });\n }\n if (component instanceof Promise) {\n resolvePromise(component);\n return;\n }\n const asyncComponentResult = component.call(router);\n if (asyncComponentResult instanceof Promise) {\n resolvePromise(asyncComponentResult);\n } else {\n resolve({ component: asyncComponentResult });\n }\n}\n","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, parseUrlQuery } from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport redirect from './redirect.js';\nimport processRouteQueue from './process-route-queue.js';\nimport appRouterCheck from './app-router-check.js';\nimport asyncComponent from './async-component.js';\n\nfunction refreshPage() {\n const router = this;\n appRouterCheck(router, 'refreshPage');\n return router.navigate(router.currentRoute.url, {\n ignoreCache: true,\n reloadCurrent: true,\n });\n}\n\nfunction forward(router, el, forwardOptions = {}) {\n const document = getDocument();\n const $el = $(el);\n const app = router.app;\n const view = router.view;\n const options = extend(\n false,\n {\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 },\n forwardOptions,\n );\n\n const masterDetailEnabled = router.params.masterDetailBreakpoint > 0;\n const isMaster =\n masterDetailEnabled &&\n options.route &&\n options.route.route &&\n (options.route.route.master === true ||\n (typeof options.route.route.master === 'function' &&\n options.route.route.master(app, router)));\n\n let masterPageEl;\n let otherDetailPageEl;\n let detailsInBetweenRemoved = 0;\n\n let currentRouteIsModal = router.currentRoute.modal;\n let modalType;\n if (!currentRouteIsModal) {\n 'popup popover sheet loginScreen actions customModal panel'\n .split(' ')\n .forEach((modalLoadProp) => {\n if (\n router.currentRoute &&\n router.currentRoute.route &&\n router.currentRoute.route[modalLoadProp]\n ) {\n currentRouteIsModal = true;\n modalType = modalLoadProp;\n }\n });\n }\n\n if (currentRouteIsModal) {\n const modalToClose =\n router.currentRoute.modal || router.currentRoute.route.modalInstance || app[modalType].get();\n const previousUrl = router.history[router.history.length - 2];\n let previousRoute = router.findMatchingRoute(previousUrl);\n if (!previousRoute && previousUrl) {\n previousRoute = {\n url: previousUrl,\n path: previousUrl.split('?')[0],\n query: parseUrlQuery(previousUrl),\n route: {\n path: previousUrl.split('?')[0],\n url: previousUrl,\n },\n };\n }\n\n router.modalRemove(modalToClose);\n }\n\n const dynamicNavbar = router.dynamicNavbar;\n\n const $viewEl = router.$el;\n const $newPage = $el;\n const reload = options.reloadPrevious || options.reloadCurrent || options.reloadAll;\n let $oldPage;\n\n let $navbarsEl;\n let $newNavbarEl;\n let $oldNavbarEl;\n\n router.allowPageChange = false;\n if ($newPage.length === 0) {\n router.allowPageChange = true;\n return router;\n }\n\n if ($newPage.length) {\n // Remove theme elements\n router.removeThemeElements($newPage);\n }\n\n if (dynamicNavbar) {\n $newNavbarEl = $newPage.children('.navbar');\n $navbarsEl = router.$navbarsEl;\n if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) {\n // Try from pageData\n $newNavbarEl = $newPage[0].f7Page.$navbarEl;\n }\n }\n\n // Save Keep Alive Cache\n if (\n options.route &&\n options.route.route &&\n options.route.route.keepAlive &&\n !options.route.route.keepAliveData\n ) {\n options.route.route.keepAliveData = {\n pageEl: $el[0],\n };\n }\n\n // Pages In View\n const $pagesInView = $viewEl\n .children('.page:not(.stacked)')\n .filter((pageInView) => pageInView !== $newPage[0]);\n\n // Navbars In View\n let $navbarsInView;\n if (dynamicNavbar) {\n $navbarsInView = $navbarsEl\n .children('.navbar:not(.stacked)')\n .filter((navbarInView) => navbarInView !== $newNavbarEl[0]);\n }\n\n // Exit when reload previous and only 1 page in view so nothing ro reload\n if (options.reloadPrevious && $pagesInView.length < 2) {\n router.allowPageChange = true;\n return router;\n }\n\n // Find Detail' master page\n let isDetail;\n let reloadDetail;\n let isDetailRoot;\n if (masterDetailEnabled && !options.reloadAll) {\n for (let i = 0; i < $pagesInView.length; i += 1) {\n if (!masterPageEl && $pagesInView[i].classList.contains('page-master')) {\n masterPageEl = $pagesInView[i];\n continue; // eslint-disable-line\n }\n }\n isDetail = !isMaster && masterPageEl;\n\n if (isDetail) {\n // Find Other Detail\n if (masterPageEl) {\n for (let i = 0; i < $pagesInView.length; i += 1) {\n if ($pagesInView[i].classList.contains('page-master-detail')) {\n otherDetailPageEl = $pagesInView[i];\n continue; // eslint-disable-line\n }\n }\n }\n }\n reloadDetail =\n isDetail &&\n options.reloadDetail &&\n app.width >= router.params.masterDetailBreakpoint &&\n masterPageEl;\n }\n if (isDetail) {\n isDetailRoot = !otherDetailPageEl || reloadDetail || options.reloadAll || options.reloadCurrent;\n }\n\n // New Page\n let newPagePosition = 'next';\n if (options.reloadCurrent || options.reloadAll || reloadDetail) {\n newPagePosition = 'current';\n } else if (options.reloadPrevious) {\n newPagePosition = 'previous';\n }\n $newPage\n .removeClass('page-previous page-current page-next')\n .addClass(\n `page-${newPagePosition}${isMaster ? ' page-master' : ''}${\n isDetail ? ' page-master-detail' : ''\n }${isDetailRoot ? ' page-master-detail-root' : ''}`,\n )\n .removeClass('stacked')\n .trigger('page:unstack')\n .trigger('page:position', { position: newPagePosition });\n router.emit('pageUnstack', $newPage[0]);\n router.emit('pagePosition', $newPage[0], newPagePosition);\n\n if (isMaster || isDetail) {\n $newPage.trigger('page:role', { role: isMaster ? 'master' : 'detail', root: !!isDetailRoot });\n router.emit('pageRole', $newPage[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot,\n });\n }\n\n if (dynamicNavbar && $newNavbarEl.length) {\n $newNavbarEl\n .removeClass('navbar-previous navbar-current navbar-next')\n .addClass(\n `navbar-${newPagePosition}${isMaster ? ' navbar-master' : ''}${\n isDetail ? ' navbar-master-detail' : ''\n }${isDetailRoot ? ' navbar-master-detail-root' : ''}`,\n )\n .removeClass('stacked');\n $newNavbarEl.trigger('navbar:position', { position: newPagePosition });\n router.emit('navbarPosition', $newNavbarEl[0], newPagePosition);\n if (isMaster || isDetail) {\n router.emit('navbarRole', $newNavbarEl[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot,\n });\n }\n }\n\n // Find Old Page\n if (options.reloadCurrent || reloadDetail) {\n if (reloadDetail) {\n $oldPage = $pagesInView.filter((pageEl) => !pageEl.classList.contains('page-master'));\n if (dynamicNavbar) {\n $oldNavbarEl = $($oldPage.map((pageEl) => app.navbar.getElByPage(pageEl)));\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 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 if (dynamicNavbar) {\n $oldNavbarEl = $(app.navbar.getElByPage($oldPage));\n }\n }\n } else if (options.reloadPrevious) {\n $oldPage = $pagesInView.eq($pagesInView.length - 2);\n if (dynamicNavbar) {\n // $oldNavbarEl = $navbarsInView.eq($pagesInView.length - 2);\n $oldNavbarEl = $(app.navbar.getElByPage($oldPage));\n }\n } else if (options.reloadAll) {\n $oldPage = $pagesInView.filter((pageEl) => pageEl !== $newPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl = $navbarsInView.filter((navbarEl) => navbarEl !== $newNavbarEl[0]);\n }\n } else {\n let removedPageEls = [];\n let removedNavbarEls = [];\n if ($pagesInView.length > 1) {\n let i = 0;\n for (i = 0; i < $pagesInView.length - 1; i += 1) {\n if (masterPageEl && $pagesInView[i] === masterPageEl) {\n $pagesInView.eq(i).addClass('page-master-stacked');\n $pagesInView.eq(i).trigger('page:masterstack');\n router.emit('pageMasterStack', $pagesInView[i]);\n if (dynamicNavbar) {\n $(app.navbar.getElByPage(masterPageEl)).addClass('navbar-master-stacked');\n router.emit('navbarMasterStack', app.navbar.getElByPage(masterPageEl));\n }\n continue; // eslint-disable-line\n }\n const oldNavbarEl = app.navbar.getElByPage($pagesInView.eq(i));\n if (router.params.stackPages) {\n $pagesInView.eq(i).addClass('stacked');\n $pagesInView.eq(i).trigger('page:stack');\n router.emit('pageStack', $pagesInView[i]);\n if (dynamicNavbar) {\n $(oldNavbarEl).addClass('stacked');\n }\n } else {\n // Page remove event\n removedPageEls.push($pagesInView[i]);\n router.pageCallback(\n 'beforeRemove',\n $pagesInView[i],\n $navbarsInView && $navbarsInView[i],\n 'previous',\n undefined,\n options,\n );\n router.removePage($pagesInView[i]);\n if (dynamicNavbar && oldNavbarEl) {\n removedNavbarEls.push(oldNavbarEl);\n router.removeNavbar(oldNavbarEl);\n }\n }\n }\n }\n $oldPage = $viewEl\n .children('.page:not(.stacked)')\n .filter((pageEl) => pageEl !== $newPage[0] && removedPageEls.indexOf(pageEl) < 0);\n if (dynamicNavbar) {\n $oldNavbarEl = $navbarsEl\n .children('.navbar:not(.stacked)')\n .filter(\n (navbarEl) =>\n navbarEl !== $newNavbarEl[0] && removedNavbarEls.indexOf(removedNavbarEls) < 0,\n );\n }\n removedPageEls = [];\n removedNavbarEls = [];\n }\n\n if (isDetail && !options.reloadAll) {\n if ($oldPage.length > 1 || reloadDetail) {\n $oldPage = $oldPage.filter((pageEl) => !pageEl.classList.contains('page-master'));\n }\n if ($oldNavbarEl && ($oldNavbarEl.length > 1 || reloadDetail)) {\n $oldNavbarEl = $oldNavbarEl.filter(\n (navbarEl) => !navbarEl.classList.contains('navbar-master'),\n );\n }\n }\n\n // Push State\n if (\n router.params.browserHistory &&\n (options.browserHistory || options.replaceState) &&\n !options.reloadPrevious\n ) {\n const browserHistoryRoot = router.params.browserHistoryRoot || '';\n History[\n options.reloadCurrent ||\n (reloadDetail && otherDetailPageEl) ||\n options.reloadAll ||\n options.replaceState\n ? 'replace'\n : 'push'\n ](\n view.id,\n {\n url: options.route.url,\n },\n browserHistoryRoot + router.params.browserHistorySeparator + options.route.url,\n );\n }\n\n if (!options.reloadPrevious) {\n // Current Page & Navbar\n router.currentPageEl = $newPage[0];\n if (dynamicNavbar && $newNavbarEl.length) {\n router.currentNavbarEl = $newNavbarEl[0];\n } else {\n delete router.currentNavbarEl;\n }\n\n // Current Route\n router.currentRoute = options.route;\n }\n\n // Update router history\n const url = options.route.url;\n\n if (options.history) {\n if (\n ((options.reloadCurrent || (reloadDetail && otherDetailPageEl)) && router.history.length) >\n 0 ||\n options.replaceState\n ) {\n if (reloadDetail && detailsInBetweenRemoved > 0) {\n router.history = router.history.slice(0, router.history.length - detailsInBetweenRemoved);\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 router.saveHistory();\n\n // Insert new page and navbar\n const newPageInDom = $newPage.parents(document).length > 0;\n const f7Component = $newPage[0].f7Component;\n if (options.reloadPrevious) {\n if (f7Component && !newPageInDom) {\n f7Component.mount((componentEl) => {\n $(componentEl).insertBefore($oldPage);\n });\n } else {\n $newPage.insertBefore($oldPage);\n }\n if (dynamicNavbar && $newNavbarEl.length) {\n if ($newNavbarEl.find('.title-large').length) {\n $newNavbarEl.addClass('navbar-large');\n }\n if ($oldNavbarEl.length) {\n $newNavbarEl.insertBefore($oldNavbarEl);\n } else {\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n $navbarsEl.append($newNavbarEl);\n }\n }\n } else {\n if ($oldPage.next('.page')[0] !== $newPage[0]) {\n if (f7Component && !newPageInDom) {\n f7Component.mount((componentEl) => {\n $viewEl.append(componentEl);\n });\n } else {\n $viewEl.append($newPage[0]);\n }\n }\n if (dynamicNavbar && $newNavbarEl.length) {\n if ($newNavbarEl.find('.title-large').length) {\n $newNavbarEl.addClass('navbar-large');\n }\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n $navbarsEl.append($newNavbarEl[0]);\n }\n }\n if (!newPageInDom) {\n router.pageCallback(\n 'mounted',\n $newPage,\n $newNavbarEl,\n newPagePosition,\n reload ? newPagePosition : 'current',\n options,\n $oldPage,\n );\n } else if (\n options.route &&\n options.route.route &&\n options.route.route.keepAlive &&\n !$newPage[0].f7PageMounted\n ) {\n $newPage[0].f7PageMounted = true;\n router.pageCallback(\n 'mounted',\n $newPage,\n $newNavbarEl,\n newPagePosition,\n reload ? newPagePosition : 'current',\n options,\n $oldPage,\n );\n }\n\n // Remove old page\n if ((options.reloadCurrent || reloadDetail) && $oldPage.length > 0) {\n if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) {\n $oldPage.addClass('stacked');\n $oldPage.trigger('page:stack');\n router.emit('pageStack', $oldPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else {\n // Page remove event\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', undefined, options);\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', undefined, options);\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'current', undefined, options);\n router.removePage($oldPage);\n if (dynamicNavbar && $oldNavbarEl && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n } else if (options.reloadAll) {\n $oldPage.each((pageEl, index) => {\n const $oldPageEl = $(pageEl);\n const $oldNavbarElEl = $(app.navbar.getElByPage($oldPageEl));\n if (router.params.stackPages && router.initialPages.indexOf($oldPageEl[0]) >= 0) {\n $oldPageEl.addClass('stacked');\n $oldPageEl.trigger('page:stack');\n router.emit('pageStack', $oldPageEl[0]);\n if (dynamicNavbar) {\n $oldNavbarElEl.addClass('stacked');\n }\n } else {\n // Page remove event\n if ($oldPageEl.hasClass('page-current')) {\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', undefined, options);\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', undefined, options);\n }\n router.pageCallback(\n 'beforeRemove',\n $oldPageEl,\n $oldNavbarEl && $oldNavbarEl.eq(index),\n 'previous',\n undefined,\n options,\n );\n router.removePage($oldPageEl);\n if (dynamicNavbar && $oldNavbarElEl.length) {\n router.removeNavbar($oldNavbarElEl);\n }\n }\n });\n } else if (options.reloadPrevious) {\n if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) {\n $oldPage.addClass('stacked');\n $oldPage.trigger('page:stack');\n router.emit('pageStack', $oldPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else {\n // Page remove event\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'previous', undefined, options);\n router.removePage($oldPage);\n if (dynamicNavbar && $oldNavbarEl && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n }\n\n // Load Tab\n if (options.route.route.tab) {\n router.tabLoad(\n options.route.route.tab,\n extend({}, options, {\n history: false,\n browserHistory: false,\n }),\n );\n }\n\n // Check master detail\n if (masterDetailEnabled) {\n view.checkMasterDetailBreakpoint();\n }\n\n // Page init and before init events\n router.pageCallback(\n 'init',\n $newPage,\n $newNavbarEl,\n newPagePosition,\n reload ? newPagePosition : 'current',\n options,\n $oldPage,\n );\n\n if (options.reloadCurrent || options.reloadAll || reloadDetail) {\n router.allowPageChange = true;\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, newPagePosition, 'current', options);\n $newPage.removeAttr('aria-hidden');\n if (dynamicNavbar && $newNavbarEl) {\n $newNavbarEl.removeAttr('aria-hidden');\n }\n router.pageCallback('afterIn', $newPage, $newNavbarEl, newPagePosition, 'current', options);\n if (options.reloadCurrent && options.clearPreviousHistory) router.clearPreviousHistory();\n if (reloadDetail) {\n router.setPagePosition($(masterPageEl), 'previous');\n if (masterPageEl.f7Page && masterPageEl.f7Page.navbarEl) {\n router.setNavbarPosition($(masterPageEl.f7Page.navbarEl), 'previous');\n }\n }\n return router;\n }\n if (options.reloadPrevious) {\n router.allowPageChange = true;\n return router;\n }\n\n // Before animation event\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'previous', options);\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'next', 'current', options);\n\n // Animation\n function afterAnimation() {\n router.setPagePosition($newPage, 'current', false);\n router.setPagePosition($oldPage, 'previous', !$oldPage.hasClass('page-master'));\n if (dynamicNavbar) {\n router.setNavbarPosition($newNavbarEl, 'current', false);\n router.setNavbarPosition($oldNavbarEl, 'previous', !$oldNavbarEl.hasClass('navbar-master'));\n }\n // After animation event\n router.allowPageChange = true;\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'previous', options);\n router.pageCallback('afterIn', $newPage, $newNavbarEl, 'next', 'current', options);\n\n let keepOldPage =\n (router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`]) && !isMaster;\n if (!keepOldPage) {\n if (\n $newPage.hasClass('smart-select-page') ||\n $newPage.hasClass('photo-browser-page') ||\n $newPage.hasClass('autocomplete-page') ||\n $newPage.hasClass('color-picker-page')\n ) {\n keepOldPage = true;\n }\n }\n if (!keepOldPage) {\n if (router.params.stackPages) {\n $oldPage.addClass('stacked');\n $oldPage.trigger('page:stack');\n router.emit('pageStack', $oldPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else if (\n !($newPage.attr('data-name') && $newPage.attr('data-name') === 'smart-select-page')\n ) {\n // Remove event\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'previous', undefined, options);\n router.removePage($oldPage);\n if (dynamicNavbar && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n }\n if (options.clearPreviousHistory) router.clearPreviousHistory();\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n\n if (router.params.browserHistory) {\n History.clearRouterQueue();\n }\n }\n function setPositionClasses() {\n router.setPagePosition($oldPage, 'current', false);\n router.setPagePosition($newPage, 'next', false);\n if (dynamicNavbar) {\n router.setNavbarPosition($oldNavbarEl, 'current', false);\n router.setNavbarPosition($newNavbarEl, 'next', false);\n }\n }\n if (options.animate && !(isMaster && app.width >= router.params.masterDetailBreakpoint)) {\n const delay = router.params[`${router.app.theme}PageLoadDelay`];\n let transition = router.params.transition;\n if (options.transition) transition = options.transition;\n if (!transition && router.currentRoute && router.currentRoute.route) {\n transition = router.currentRoute.route.transition;\n }\n if (!transition && router.currentRoute && router.currentRoute.route.options) {\n transition = router.currentRoute.route.options.transition;\n }\n if (transition) {\n $newPage[0].f7PageTransition = transition;\n }\n\n if (delay) {\n setTimeout(() => {\n setPositionClasses();\n router.animate(\n $oldPage,\n $newPage,\n $oldNavbarEl,\n $newNavbarEl,\n 'forward',\n transition,\n () => {\n afterAnimation();\n },\n );\n }, delay);\n } else {\n setPositionClasses();\n router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'forward', transition, () => {\n afterAnimation();\n });\n }\n } else {\n afterAnimation();\n }\n return router;\n}\nfunction load(router, loadParams = {}, loadOptions = {}, ignorePageChange) {\n if (!router.allowPageChange && !ignorePageChange) return router;\n const params = loadParams;\n const options = loadOptions;\n const { url, content, el, pageName, component, componentUrl } = params;\n\n if (\n !options.reloadCurrent &&\n options.route &&\n options.route.route &&\n options.route.route.parentPath &&\n router.currentRoute.route &&\n router.currentRoute.route.parentPath === options.route.route.parentPath\n ) {\n // Do something nested\n if (options.route.url === router.url) {\n router.allowPageChange = true;\n return false;\n }\n // Check for same params\n let sameParams =\n Object.keys(options.route.params).length === Object.keys(router.currentRoute.params).length;\n if (sameParams) {\n // Check for equal params name\n Object.keys(options.route.params).forEach((paramName) => {\n if (\n !(paramName in router.currentRoute.params) ||\n router.currentRoute.params[paramName] !== options.route.params[paramName]\n ) {\n sameParams = false;\n }\n });\n }\n if (sameParams) {\n if (options.route.route.tab) {\n return router.tabLoad(options.route.route.tab, options);\n }\n return false;\n }\n if (\n !sameParams &&\n options.route.route.tab &&\n router.currentRoute.route.tab &&\n router.currentRoute.parentPath === options.route.parentPath\n ) {\n return router.tabLoad(options.route.route.tab, options);\n }\n }\n\n if (\n options.route &&\n options.route.url &&\n router.url === options.route.url &&\n !(options.reloadCurrent || options.reloadPrevious) &&\n !router.params.allowDuplicateUrls\n ) {\n router.allowPageChange = true;\n return false;\n }\n\n if (!options.route && url) {\n options.route = router.parseRouteUrl(url);\n extend(options.route, { route: { url, path: url } });\n }\n\n // Component Callbacks\n function resolve(pageEl, newOptions) {\n return forward(router, pageEl, extend(options, newOptions));\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (url || componentUrl || component) {\n router.allowPageChange = false;\n }\n\n // Proceed\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,\n componentUrl,\n options,\n resolve,\n 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 router\n .xhrRequest(url, options)\n .then((pageContent) => {\n forward(router, router.getPageEl(pageContent), options);\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n }\n return router;\n}\n\nfunction navigate(navigateParams, navigateOptions = {}) {\n const router = this;\n\n if (router.swipeBackActive) return router;\n let url;\n let createRoute;\n let name;\n let path;\n let query;\n let params;\n let route;\n if (typeof navigateParams === 'string') {\n url = navigateParams;\n } else {\n url = navigateParams.url;\n createRoute = navigateParams.route;\n name = navigateParams.name;\n path = navigateParams.path;\n query = navigateParams.query;\n params = navigateParams.params;\n }\n if (name || path) {\n url = router.generateUrl({ path, name, params, query });\n if (url) {\n return router.navigate(url, navigateOptions);\n }\n return router;\n }\n const app = router.app;\n appRouterCheck(router, 'navigate');\n if (url === '#' || url === '') {\n return router;\n }\n\n let navigateUrl = url.replace('./', '');\n if (navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) {\n const currentPath = router.currentRoute.parentPath || router.currentRoute.path;\n navigateUrl = ((currentPath ? `${currentPath}/` : '/') + navigateUrl)\n .replace('///', '/')\n .replace('//', '/');\n }\n if (createRoute) {\n route = 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 if (route.route && route.route.viewName) {\n const anotherViewName = route.route.viewName;\n const anotherView = app.views[anotherViewName];\n if (!anotherView) {\n throw new Error(\n `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 const options = {};\n if (route.route.options) {\n extend(options, route.route.options, navigateOptions);\n } else {\n extend(options, navigateOptions);\n }\n\n if (\n options.openIn &&\n (!router.params.ignoreOpenIn || (router.params.ignoreOpenIn && router.history.length > 0))\n ) {\n return router.openIn(router, navigateUrl, options);\n }\n\n options.route = route;\n\n function resolve() {\n let routerLoaded = false;\n 'popup popover sheet loginScreen actions customModal panel'\n .split(' ')\n .forEach((modalLoadProp) => {\n if (route.route[modalLoadProp] && !routerLoaded) {\n routerLoaded = true;\n router.modalLoad(modalLoadProp, route, options, 'forward');\n }\n });\n if (route.route.keepAlive && route.route.keepAliveData) {\n load(router, { el: route.route.keepAliveData.pageEl }, options, false);\n routerLoaded = true;\n }\n 'url content component pageName el componentUrl'.split(' ').forEach((pageLoadProp) => {\n if (route.route[pageLoadProp] && !routerLoaded) {\n routerLoaded = true;\n load(router, { [pageLoadProp]: route.route[pageLoadProp] }, options, false);\n }\n });\n if (routerLoaded) return;\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n router.allowPageChange = false;\n let resolvedAsModal = false;\n\n 'popup popover sheet loginScreen actions customModal panel'\n .split(' ')\n .forEach((modalLoadProp) => {\n if (resolveParams[modalLoadProp]) {\n resolvedAsModal = true;\n const modalRoute = extend({}, route, { route: resolveParams });\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 function asyncReject() {\n router.allowPageChange = true;\n }\n if (route.route.async) {\n router.allowPageChange = false;\n route.route.async.call(router, {\n router,\n to: options.route,\n from: router.currentRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n direction: 'forward',\n app,\n });\n }\n if (route.route.asyncComponent) {\n asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject);\n }\n }\n function reject() {\n router.allowPageChange = true;\n }\n\n if (router.params.masterDetailBreakpoint > 0 && route.route.masterRoute) {\n // load detail route\n let preloadMaster = true;\n let masterLoaded = false;\n if (router.currentRoute && router.currentRoute.route) {\n if (\n (router.currentRoute.route.master === true ||\n (typeof router.currentRoute.route.master === 'function' &&\n router.currentRoute.route.master(app, router))) &&\n (router.currentRoute.route === route.route.masterRoute ||\n router.currentRoute.route.path === route.route.masterRoute.path)\n ) {\n preloadMaster = false;\n }\n if (\n router.currentRoute.route.masterRoute &&\n (router.currentRoute.route.masterRoute === route.route.masterRoute ||\n router.currentRoute.route.masterRoute.path === route.route.masterRoute.path)\n ) {\n preloadMaster = false;\n masterLoaded = true;\n }\n }\n if (preloadMaster || (masterLoaded && navigateOptions.reloadAll)) {\n router.navigate(\n { path: route.route.masterRoute.path, 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() {\n router.navigate(\n navigateParams,\n 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 },\n );\n return router;\n }\n }\n\n processRouteQueue.call(\n router,\n route,\n router.currentRoute,\n () => {\n if (route.route.modules) {\n app\n .loadModules(\n Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules],\n )\n .then(() => {\n resolve();\n })\n .catch(() => {\n reject();\n });\n } else {\n resolve();\n }\n },\n () => {\n reject();\n },\n 'forward',\n );\n\n // Return Router\n return router;\n}\nexport { refreshPage, navigate };\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport asyncComponent from './async-component.js';\n\nfunction tabLoad(tabRoute, loadOptions = {}) {\n const router = this;\n const options = extend(\n {\n animate: router.params.animate,\n browserHistory: true,\n history: true,\n parentPageEl: null,\n preload: false,\n on: {},\n },\n loadOptions,\n );\n\n let currentRoute;\n let previousRoute;\n if (options.route) {\n // Set Route\n if (!options.preload && options.route !== router.currentRoute) {\n previousRoute = router.previousRoute;\n router.currentRoute = options.route;\n }\n if (options.preload) {\n currentRoute = options.route;\n previousRoute = router.currentRoute;\n } else {\n currentRoute = router.currentRoute;\n if (!previousRoute) previousRoute = router.previousRoute;\n }\n\n // Update Browser History\n if (router.params.browserHistory && options.browserHistory && !options.reloadPrevious) {\n History[router.params.browserHistoryTabs](\n router.view.id,\n {\n url: options.route.url,\n },\n (router.params.browserHistoryRoot || '') +\n router.params.browserHistorySeparator +\n options.route.url,\n );\n }\n\n // Update Router History\n if (options.history) {\n router.history[Math.max(router.history.length - 1, 0)] = options.route.url;\n router.saveHistory();\n }\n }\n\n // Show Tab\n const $parentPageEl = $(options.parentPageEl || router.currentPageEl);\n let tabEl;\n if ($parentPageEl.length && $parentPageEl.find(`#${tabRoute.id}`).length) {\n tabEl = $parentPageEl.find(`#${tabRoute.id}`).eq(0);\n } else if (router.view.selector) {\n tabEl = `${router.view.selector} #${tabRoute.id}`;\n } else {\n tabEl = `#${tabRoute.id}`;\n }\n const tabShowResult = router.app.tab.show({\n tabEl,\n animate: options.animate,\n tabRoute: options.route,\n });\n\n const { $newTabEl, $oldTabEl, animated, onTabsChanged } = tabShowResult;\n\n if ($newTabEl && $newTabEl.parents('.page').length > 0 && options.route) {\n const tabParentPageData = $newTabEl.parents('.page')[0].f7Page;\n if (tabParentPageData && options.route) {\n tabParentPageData.route = options.route;\n }\n }\n\n // Tab Content Loaded\n function onTabLoaded(contentEl) {\n // Remove theme elements\n router.removeThemeElements($newTabEl);\n\n let tabEventTarget = $newTabEl;\n if (typeof contentEl !== 'string') tabEventTarget = $(contentEl);\n\n tabEventTarget.trigger('tab:init tab:mounted', tabRoute);\n router.emit('tabInit tabMounted', $newTabEl[0], tabRoute);\n\n if ($oldTabEl && $oldTabEl.length) {\n if (animated) {\n onTabsChanged(() => {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n if (router.params.unloadTabContent) {\n router.tabRemove($oldTabEl, $newTabEl, tabRoute);\n }\n });\n } else {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n if (router.params.unloadTabContent) {\n router.tabRemove($oldTabEl, $newTabEl, tabRoute);\n }\n }\n }\n }\n\n if ($newTabEl[0].f7RouterTabLoaded) {\n if (!$oldTabEl || !$oldTabEl.length) return router;\n if (animated) {\n onTabsChanged(() => {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n });\n } else {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n }\n return router;\n }\n\n // Load Tab Content\n function loadTab(loadTabParams, loadTabOptions) {\n // Load Tab Props\n const { url, content, el, component, componentUrl } = loadTabParams;\n // Component/Template Callbacks\n function resolve(contentEl) {\n router.allowPageChange = true;\n if (!contentEl) return;\n if (typeof contentEl === 'string') {\n $newTabEl.html(contentEl);\n } else {\n $newTabEl.html('');\n if (contentEl.f7Component) {\n contentEl.f7Component.mount((componentEl) => {\n $newTabEl.append(componentEl);\n });\n } else {\n $newTabEl.append(contentEl);\n }\n }\n $newTabEl[0].f7RouterTabLoaded = true;\n onTabLoaded(contentEl);\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (content) {\n resolve(content);\n } else if (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,\n componentUrl,\n options: loadTabOptions,\n resolve,\n 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 router\n .xhrRequest(url, loadTabOptions)\n .then((tabContent) => {\n resolve(tabContent);\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n }\n }\n\n let hasContentLoadProp;\n 'url content component el componentUrl'.split(' ').forEach((tabLoadProp) => {\n if (tabRoute[tabLoadProp]) {\n hasContentLoadProp = true;\n loadTab({ [tabLoadProp]: tabRoute[tabLoadProp] }, options);\n }\n });\n\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n loadTab(resolveParams, extend(options, resolveOptions));\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (tabRoute.async) {\n tabRoute.async.call(router, {\n 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}\nfunction tabRemove($oldTabEl, $newTabEl, tabRoute) {\n const router = this;\n\n let hasTabComponentChild;\n if ($oldTabEl[0]) {\n $oldTabEl[0].f7RouterTabLoaded = false;\n delete $oldTabEl[0].f7RouterTabLoaded;\n }\n $oldTabEl.children().each((tabChild) => {\n if (tabChild.f7Component) {\n hasTabComponentChild = true;\n $(tabChild).trigger('tab:beforeremove', tabRoute);\n tabChild.f7Component.destroy();\n }\n });\n if (!hasTabComponentChild) {\n $oldTabEl.trigger('tab:beforeremove', tabRoute);\n }\n router.emit('tabBeforeRemove', $oldTabEl[0], $newTabEl[0], tabRoute);\n router.removeTabContent($oldTabEl[0], tabRoute);\n}\n\nexport { tabLoad, tabRemove };\n","import { extend, nextTick } from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport asyncComponent from './async-component.js';\n\nfunction modalLoad(modalType, route, loadOptions = {}, direction) {\n const router = this;\n const app = router.app;\n const isPanel = modalType === 'panel';\n const modalOrPanel = isPanel ? 'panel' : 'modal';\n\n const options = extend(\n {\n animate: router.params.animate,\n browserHistory: true,\n history: true,\n on: {},\n once: {},\n },\n loadOptions,\n );\n\n const modalParams = extend({}, route.route[modalType]);\n const modalRoute = route.route;\n\n const routeCallback = (modal, name) => {\n const { on, once } = options;\n let callback;\n if (name === 'open') {\n callback = on.modalOpen || once.modalOpen || on.panelOpen || once.panelOpen;\n }\n if (name === 'close') {\n callback = on.modalClose || once.modalClose || on.panelClose || once.panelClose;\n }\n if (name === 'closed') {\n callback = on.modalClosed || once.modalClosed || on.panelClosed || once.panelClosed;\n }\n if (callback) callback(modal);\n };\n\n function onModalLoaded() {\n // Create Modal\n const modal = app[modalType].create(modalParams);\n modalRoute.modalInstance = modal;\n\n const hasEl = modal.el;\n\n function closeOnSwipeBack() {\n modal.close();\n }\n modal.on(`${modalOrPanel}Open`, () => {\n if (!hasEl) {\n // Remove theme elements\n router.removeThemeElements(modal.el);\n\n // Emit events\n modal.$el.trigger(\n `${modalType.toLowerCase()}:init ${modalType.toLowerCase()}:mounted`,\n route,\n modal,\n );\n router.emit(\n `${!isPanel ? 'modalInit' : ''} ${modalType}Init ${modalType}Mounted`,\n modal.el,\n route,\n modal,\n );\n }\n router.once('swipeBackMove', closeOnSwipeBack);\n routeCallback(modal, 'open');\n });\n modal.on(`${modalOrPanel}Close`, () => {\n router.off('swipeBackMove', closeOnSwipeBack);\n if (!modal.closeByRouter) {\n router.back();\n }\n routeCallback(modal, 'close');\n });\n\n modal.on(`${modalOrPanel}Closed`, () => {\n modal.$el.trigger(`${modalType.toLowerCase()}:beforeremove`, route, modal);\n modal.emit(\n `${!isPanel ? 'modalBeforeRemove ' : ''}${modalType}BeforeRemove`,\n modal.el,\n route,\n modal,\n );\n const modalComponent = modal.el.f7Component;\n routeCallback(modal, 'closed');\n if (modalComponent) {\n modalComponent.destroy();\n }\n nextTick(() => {\n if (modalComponent || modalParams.component || modalParams.asyncComponent) {\n router.removeModal(modal.el);\n }\n modal.destroy();\n delete modal.route;\n delete modalRoute.modalInstance;\n });\n });\n\n if (options.route) {\n // Update Browser History\n if (router.params.browserHistory && options.browserHistory) {\n History.push(\n router.view.id,\n {\n url: options.route.url,\n modal: modalType,\n },\n (router.params.browserHistoryRoot || '') +\n router.params.browserHistorySeparator +\n options.route.url,\n );\n }\n\n // Set Route\n if (options.route !== router.currentRoute) {\n modal.route = extend(options.route, { modal });\n router.currentRoute = modal.route;\n }\n\n // Update Router History\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);\n\n // Emit events\n modal.$el.trigger(\n `${modalType.toLowerCase()}:init ${modalType.toLowerCase()}:mounted`,\n route,\n modal,\n );\n router.emit(\n `${modalOrPanel}Init ${modalType}Init ${modalType}Mounted`,\n modal.el,\n route,\n modal,\n );\n }\n\n // Open\n modal.open(options.animate === false || options.animate === true ? options.animate : undefined);\n }\n\n // Load Modal Content\n function loadModal(loadModalParams, loadModalOptions) {\n // Load Modal Props\n const { url, content, component, componentUrl } = loadModalParams;\n\n // Component/Template Callbacks\n function resolve(contentEl) {\n if (contentEl) {\n if (typeof contentEl === 'string') {\n modalParams.content = contentEl;\n } else if (contentEl.f7Component) {\n contentEl.f7Component.mount((componentEl) => {\n modalParams.el = componentEl;\n app.$el.append(componentEl);\n });\n } else {\n modalParams.el = contentEl;\n }\n onModalLoaded();\n }\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (content) {\n resolve(content);\n } else if (component || componentUrl) {\n // Load from component (F7/Vue/React/...)\n try {\n router.modalComponentLoader({\n rootEl: app.el,\n component,\n componentUrl,\n options: loadModalOptions,\n resolve,\n 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 router\n .xhrRequest(url, loadModalOptions)\n .then((modalContent) => {\n modalParams.content = modalContent;\n onModalLoaded();\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n } else {\n onModalLoaded();\n }\n }\n\n let foundLoadProp;\n 'url content component el componentUrl template'.split(' ').forEach((modalLoadProp) => {\n if (modalParams[modalLoadProp] && !foundLoadProp) {\n foundLoadProp = true;\n loadModal({ [modalLoadProp]: modalParams[modalLoadProp] }, options);\n }\n });\n if (!foundLoadProp && modalType === 'actions') {\n onModalLoaded();\n }\n\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n loadModal(resolveParams, extend(options, resolveOptions));\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (modalParams.async) {\n modalParams.async.call(router, {\n router,\n to: options.route,\n from: router.currentRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n direction,\n app,\n });\n }\n if (modalParams.asyncComponent) {\n asyncComponent(router, modalParams.asyncComponent, asyncResolve, asyncReject);\n }\n return router;\n}\nfunction modalRemove(modal) {\n extend(modal, { closeByRouter: true });\n modal.close();\n}\n\nexport { modalLoad, modalRemove };\n","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, parseUrlQuery } from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport History from '../../shared/history.js';\nimport redirect from './redirect.js';\nimport processRouteQueue from './process-route-queue.js';\nimport appRouterCheck from './app-router-check.js';\nimport asyncComponent from './async-component.js';\n\nfunction backward(router, el, backwardOptions) {\n const device = getDevice();\n const document = getDocument();\n const $el = $(el);\n const app = router.app;\n const view = router.view;\n\n const options = extend(\n false,\n {\n animate: router.params.animate,\n browserHistory: true,\n replaceState: false,\n },\n backwardOptions,\n );\n\n const masterDetailEnabled = router.params.masterDetailBreakpoint > 0;\n const isMaster =\n masterDetailEnabled &&\n options.route &&\n options.route.route &&\n (options.route.route.master === true ||\n (typeof options.route.route.master === 'function' &&\n options.route.route.master(app, router)));\n let masterPageEl;\n let masterPageRemoved;\n\n const dynamicNavbar = router.dynamicNavbar;\n\n const $newPage = $el;\n const $oldPage = router.$el.children('.page-current');\n const initialPreload = $oldPage.length === 0 && options.preload;\n const currentIsMaster = masterDetailEnabled && $oldPage.hasClass('page-master');\n\n if ($newPage.length) {\n // Remove theme elements\n router.removeThemeElements($newPage);\n }\n\n let $navbarsEl;\n let $newNavbarEl;\n let $oldNavbarEl;\n\n if (dynamicNavbar) {\n $newNavbarEl = $newPage.children('.navbar');\n $navbarsEl = router.$navbarsEl;\n if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) {\n // Try from pageData\n $newNavbarEl = $newPage[0].f7Page.$navbarEl;\n }\n $oldNavbarEl = $navbarsEl.find('.navbar-current');\n }\n\n router.allowPageChange = false;\n if ($newPage.length === 0 || ($oldPage.length === 0 && !options.preload)) {\n router.allowPageChange = true;\n return router;\n }\n\n // Remove theme elements\n router.removeThemeElements($newPage);\n\n // Save Keep Alive Cache\n if (\n options.route &&\n options.route.route &&\n options.route.route.keepAlive &&\n !options.route.route.keepAliveData\n ) {\n options.route.route.keepAliveData = {\n pageEl: $el[0],\n };\n }\n\n // Pages In View\n let isDetail;\n let isDetailRoot;\n if (masterDetailEnabled) {\n const $pagesInView = router.$el\n .children('.page:not(.stacked)')\n .filter((pageInView) => pageInView !== $newPage[0]);\n\n // Find Detail' master page\n for (let 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 =\n !isMaster &&\n masterPageEl &&\n router.history.indexOf(options.route.url) >\n router.history.indexOf(masterPageEl.f7Page.route.url);\n\n if (\n !isDetail &&\n !isMaster &&\n masterPageEl &&\n masterPageEl.f7Page &&\n options.route.route.masterRoute\n ) {\n isDetail = options.route.route.masterRoute.path === masterPageEl.f7Page.route.route.path;\n }\n }\n if (isDetail && masterPageEl && masterPageEl.f7Page) {\n isDetailRoot =\n router.history.indexOf(options.route.url) -\n router.history.indexOf(masterPageEl.f7Page.route.url) ===\n 1;\n }\n\n // New Page\n $newPage\n .addClass(\n `page-${initialPreload ? 'current' : 'previous'}${isMaster ? ' page-master' : ''}${\n isDetail ? ' page-master-detail' : ''\n }${isDetailRoot ? ' page-master-detail-root' : ''}`,\n )\n .removeClass('stacked')\n .removeAttr('aria-hidden')\n .trigger('page:unstack')\n .trigger('page:position', { position: initialPreload ? 'current' : 'previous' });\n router.emit('pageUnstack', $newPage[0]);\n router.emit('pagePosition', $newPage[0], initialPreload ? 'current' : 'previous');\n if (isMaster || isDetail) {\n $newPage.trigger('page:role', { role: isMaster ? 'master' : 'detail', root: !!isDetailRoot });\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\n .addClass(\n `navbar-${initialPreload ? 'current' : 'previous'}${isMaster ? ' navbar-master' : ''}${\n isDetail ? ' navbar-master-detail' : ''\n }${isDetailRoot ? ' navbar-master-detail-root' : ''}`,\n )\n .removeClass('stacked')\n .removeAttr('aria-hidden');\n $newNavbarEl.trigger('navbar:position', { position: initialPreload ? 'current' : 'previous' });\n router.emit('navbarPosition', $newNavbarEl[0], initialPreload ? 'current' : 'previous');\n if (isMaster || isDetailRoot) {\n router.emit('navbarRole', $newNavbarEl[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot,\n });\n }\n }\n\n // Remove previous page in case of \"forced\"\n let backIndex;\n if (options.force) {\n if (\n $oldPage.prev('.page-previous:not(.stacked)').length > 0 ||\n $oldPage.prev('.page-previous').length === 0\n ) {\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((pageToRemove) => {\n const $pageToRemove = $(pageToRemove);\n let $navbarToRemove;\n if (dynamicNavbar) {\n // $navbarToRemove = $oldNavbarEl.prevAll('.navbar-previous').eq(index);\n $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));\n }\n if ($pageToRemove[0] !== $newPage[0] && $pageToRemove.index() > $newPage.index()) {\n if (router.initialPages.indexOf($pageToRemove[0]) >= 0) {\n $pageToRemove.addClass('stacked');\n $pageToRemove.trigger('page:stack');\n router.emit('pageStack', $pageToRemove[0]);\n if (dynamicNavbar) {\n $navbarToRemove.addClass('stacked');\n }\n } else {\n router.pageCallback(\n 'beforeRemove',\n $pageToRemove,\n $navbarToRemove,\n 'previous',\n undefined,\n options,\n );\n if ($pageToRemove[0] === masterPageEl) {\n masterPageRemoved = true;\n }\n router.removePage($pageToRemove);\n if (dynamicNavbar && $navbarToRemove.length > 0) {\n router.removeNavbar($navbarToRemove);\n }\n }\n }\n });\n } else {\n const $pageToRemove = $oldPage.prev('.page-previous:not(.stacked)');\n let $navbarToRemove;\n if (dynamicNavbar) {\n // $navbarToRemove = $oldNavbarEl.prev('.navbar-inner:not(.stacked)');\n $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));\n }\n if (router.params.stackPages && router.initialPages.indexOf($pageToRemove[0]) >= 0) {\n $pageToRemove.addClass('stacked');\n $pageToRemove.trigger('page:stack');\n router.emit('pageStack', $pageToRemove[0]);\n $navbarToRemove.addClass('stacked');\n } else if ($pageToRemove.length > 0) {\n router.pageCallback(\n 'beforeRemove',\n $pageToRemove,\n $navbarToRemove,\n 'previous',\n undefined,\n options,\n );\n if ($pageToRemove[0] === masterPageEl) {\n masterPageRemoved = true;\n }\n router.removePage($pageToRemove);\n if (dynamicNavbar && $navbarToRemove.length) {\n router.removeNavbar($navbarToRemove);\n }\n }\n }\n }\n }\n\n // Insert new page\n const newPageInDom = $newPage.parents(document).length > 0;\n const f7Component = $newPage[0].f7Component;\n\n function insertPage() {\n if (initialPreload) {\n if (!newPageInDom && f7Component) {\n f7Component.mount((componentEl) => {\n router.$el.append(componentEl);\n });\n } else {\n router.$el.append($newPage);\n }\n }\n if ($newPage.next($oldPage).length === 0) {\n if (!newPageInDom && f7Component) {\n f7Component.mount((componentEl) => {\n $(componentEl).insertBefore($oldPage);\n });\n } else {\n $newPage.insertBefore($oldPage);\n }\n }\n if (dynamicNavbar && $newNavbarEl.length) {\n if ($newNavbarEl.find('.title-large').length) {\n $newNavbarEl.addClass('navbar-large');\n }\n $newNavbarEl.insertBefore($oldNavbarEl);\n if ($oldNavbarEl.length > 0) {\n $newNavbarEl.insertBefore($oldNavbarEl);\n } else {\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n $navbarsEl.append($newNavbarEl);\n }\n }\n if (!newPageInDom) {\n router.pageCallback(\n 'mounted',\n $newPage,\n $newNavbarEl,\n 'previous',\n 'current',\n options,\n $oldPage,\n );\n } else if (\n options.route &&\n options.route.route &&\n options.route.route.keepAlive &&\n !$newPage[0].f7PageMounted\n ) {\n $newPage[0].f7PageMounted = true;\n router.pageCallback(\n 'mounted',\n $newPage,\n $newNavbarEl,\n 'previous',\n 'current',\n options,\n $oldPage,\n );\n }\n }\n\n if (options.preload) {\n // Insert Page\n insertPage();\n // Tab route\n if (options.route.route.tab) {\n router.tabLoad(\n options.route.route.tab,\n 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 if (dynamicNavbar) {\n $(app.navbar.getElByPage($newPage)).removeClass('navbar-master-stacked');\n router.emit('navbarMasterUnstack', app.navbar.getElByPage($newPage));\n }\n }\n // Page init and before init events\n router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);\n if (initialPreload) {\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'current', undefined, options);\n router.pageCallback('afterIn', $newPage, $newNavbarEl, 'current', undefined, options);\n }\n const $previousPages = $newPage.prevAll('.page-previous:not(.stacked):not(.page-master)');\n if ($previousPages.length > 0) {\n $previousPages.each((pageToRemove) => {\n const $pageToRemove = $(pageToRemove);\n let $navbarToRemove;\n if (dynamicNavbar) {\n // $navbarToRemove = $newNavbarEl.prevAll('.navbar-previous:not(.stacked)').eq(index);\n $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));\n }\n if (router.params.stackPages && router.initialPages.indexOf(pageToRemove) >= 0) {\n $pageToRemove.addClass('stacked');\n $pageToRemove.trigger('page:stack');\n router.emit('pageStack', $pageToRemove[0]);\n if (dynamicNavbar) {\n $navbarToRemove.addClass('stacked');\n }\n } else {\n router.pageCallback(\n 'beforeRemove',\n $pageToRemove,\n $navbarToRemove,\n 'previous',\n undefined,\n );\n router.removePage($pageToRemove);\n if (dynamicNavbar && $navbarToRemove.length) {\n router.removeNavbar($navbarToRemove);\n }\n }\n });\n }\n router.allowPageChange = true;\n return router;\n }\n\n // History State\n if (!(device.ie || device.edge || (device.firefox && !device.ios))) {\n if (router.params.browserHistory && options.browserHistory) {\n if (options.replaceState) {\n const browserHistoryRoot = router.params.browserHistoryRoot || '';\n History.replace(\n view.id,\n {\n url: options.route.url,\n },\n browserHistoryRoot + router.params.browserHistorySeparator + options.route.url,\n );\n } else if (backIndex) {\n History.go(-backIndex);\n } else {\n History.back();\n }\n }\n }\n\n // Update History\n if (options.replaceState) {\n router.history[router.history.length - 1] = options.route.url;\n } else {\n if (router.history.length === 1) {\n router.history.unshift(router.url);\n }\n router.history.pop();\n }\n router.saveHistory();\n\n // Current Page & Navbar\n router.currentPageEl = $newPage[0];\n if (dynamicNavbar && $newNavbarEl.length) {\n router.currentNavbarEl = $newNavbarEl[0];\n } else {\n delete router.currentNavbarEl;\n }\n\n // Current Route\n router.currentRoute = options.route;\n\n // History State\n if (device.ie || device.edge || (device.firefox && !device.ios)) {\n if (router.params.browserHistory && options.browserHistory) {\n if (options.replaceState) {\n const browserHistoryRoot = router.params.browserHistoryRoot || '';\n History.replace(\n view.id,\n {\n url: options.route.url,\n },\n browserHistoryRoot + router.params.browserHistorySeparator + options.route.url,\n );\n } else if (backIndex) {\n History.go(-backIndex);\n } else {\n History.back();\n }\n }\n }\n\n // Insert Page\n insertPage();\n\n // Load Tab\n if (options.route.route.tab) {\n router.tabLoad(\n options.route.route.tab,\n extend({}, options, {\n history: false,\n browserHistory: false,\n }),\n );\n }\n\n // Check master detail\n\n if (masterDetailEnabled && (currentIsMaster || masterPageRemoved)) {\n view.checkMasterDetailBreakpoint(false);\n }\n\n // Page init and before init events\n router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);\n\n // Before animation callback\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'next', options);\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'previous', 'current', options);\n\n // Animation\n function afterAnimation() {\n // Set classes\n router.setPagePosition($newPage, 'current', false);\n router.setPagePosition($oldPage, 'next', true);\n if (dynamicNavbar) {\n router.setNavbarPosition($newNavbarEl, 'current', false);\n router.setNavbarPosition($oldNavbarEl, 'next', true);\n }\n\n // After animation event\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'next', options);\n router.pageCallback('afterIn', $newPage, $newNavbarEl, 'previous', 'current', options);\n\n // Remove Old Page\n if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) {\n $oldPage.addClass('stacked');\n $oldPage.trigger('page:stack');\n router.emit('pageStack', $oldPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else {\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'next', undefined, options);\n router.removePage($oldPage);\n if (dynamicNavbar && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n\n router.allowPageChange = true;\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n\n // Preload previous page\n const preloadPreviousPage =\n router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history[router.history.length - 2] && !isMaster) {\n router.back(router.history[router.history.length - 2], { preload: true });\n }\n if (router.params.browserHistory) {\n History.clearRouterQueue();\n }\n }\n\n function setPositionClasses() {\n router.setPagePosition($oldPage, 'current');\n router.setPagePosition($newPage, 'previous', false);\n if (dynamicNavbar) {\n router.setNavbarPosition($oldNavbarEl, 'current');\n router.setNavbarPosition($newNavbarEl, 'previous', false);\n }\n }\n\n if (options.animate && !(currentIsMaster && app.width >= router.params.masterDetailBreakpoint)) {\n let transition = router.params.transition;\n if ($oldPage[0] && $oldPage[0].f7PageTransition) {\n transition = $oldPage[0].f7PageTransition;\n delete $oldPage[0].f7PageTransition;\n }\n if (options.transition) transition = options.transition;\n if (!transition && router.previousRoute && router.previousRoute.route) {\n transition = router.previousRoute.route.transition;\n }\n if (\n !transition &&\n router.previousRoute &&\n router.previousRoute.route &&\n router.previousRoute.route.options\n ) {\n transition = router.previousRoute.route.options.transition;\n }\n setPositionClasses();\n router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'backward', transition, () => {\n afterAnimation();\n });\n } else {\n afterAnimation();\n }\n\n return router;\n}\nfunction loadBack(router, backParams, backOptions, ignorePageChange) {\n if (!router.allowPageChange && !ignorePageChange) return router;\n const params = backParams;\n const options = backOptions;\n const { url, content, el, pageName, component, componentUrl } = params;\n\n if (\n options.route.url &&\n router.url === options.route.url &&\n !(options.reloadCurrent || options.reloadPrevious) &&\n !router.params.allowDuplicateUrls\n ) {\n return false;\n }\n\n if (!options.route && url) {\n options.route = router.parseRouteUrl(url);\n }\n\n // Component Callbacks\n function resolve(pageEl, newOptions) {\n return backward(router, pageEl, extend(options, newOptions));\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (url || componentUrl || component) {\n router.allowPageChange = false;\n }\n\n // Proceed\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,\n componentUrl,\n options,\n resolve,\n 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 router\n .xhrRequest(url, options)\n .then((pageContent) => {\n backward(router, router.getPageEl(pageContent), options);\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n }\n return router;\n}\nfunction back(...args) {\n const router = this;\n const device = getDevice();\n if (router.swipeBackActive) return router;\n let navigateUrl;\n let navigateOptions;\n let route;\n if (typeof args[0] === 'object') {\n navigateOptions = args[0] || {};\n } else {\n navigateUrl = args[0];\n navigateOptions = args[1] || {};\n }\n\n const { name, params, query } = navigateOptions;\n if (name) {\n navigateUrl = router.generateUrl({ name, params, query });\n if (navigateUrl) {\n return router.back(\n navigateUrl,\n extend({}, navigateOptions, {\n name: null,\n params: null,\n query: null,\n }),\n );\n }\n return router;\n }\n\n const app = router.app;\n appRouterCheck(router, 'back');\n\n let currentRouteIsModal = router.currentRoute.modal;\n let modalType;\n if (!currentRouteIsModal) {\n 'popup popover sheet loginScreen actions customModal panel'\n .split(' ')\n .forEach((modalLoadProp) => {\n if (router.currentRoute.route[modalLoadProp]) {\n currentRouteIsModal = true;\n modalType = modalLoadProp;\n }\n });\n }\n if (currentRouteIsModal && !navigateOptions.preload) {\n const modalToClose =\n router.currentRoute.modal || router.currentRoute.route.modalInstance || app[modalType].get();\n const previousUrl = router.history[router.history.length - 2];\n let previousRoute;\n // check if previous route is modal too\n if (modalToClose && modalToClose.$el) {\n const prevOpenedModals = modalToClose.$el.prevAll('.modal-in');\n if (prevOpenedModals.length && prevOpenedModals[0].f7Modal) {\n const modalEl = prevOpenedModals[0];\n // check if current router not inside of the modalEl\n if (!router.$el.parents(modalEl).length) {\n previousRoute = modalEl.f7Modal.route;\n }\n }\n }\n if (!previousRoute) {\n previousRoute = router.findMatchingRoute(previousUrl);\n }\n\n if (!previousRoute && previousUrl) {\n previousRoute = {\n url: previousUrl,\n path: previousUrl.split('?')[0],\n query: parseUrlQuery(previousUrl),\n route: {\n path: previousUrl.split('?')[0],\n url: previousUrl,\n },\n };\n }\n if (!navigateUrl || navigateUrl.replace(/[# ]/g, '').trim().length === 0) {\n if (!previousRoute || !modalToClose) {\n return router;\n }\n }\n const forceOtherUrl = navigateOptions.force && previousRoute && navigateUrl;\n if (previousRoute && modalToClose) {\n const isBrokenBrowserHistory = device.ie || device.edge || (device.firefox && !device.ios);\n const needHistoryBack =\n router.params.browserHistory && navigateOptions.browserHistory !== false;\n const currentRouteWithoutBrowserHistory =\n router.currentRoute &&\n router.currentRoute.route &&\n router.currentRoute.route.options &&\n router.currentRoute.route.options.browserHistory === false;\n if (needHistoryBack && !isBrokenBrowserHistory && !currentRouteWithoutBrowserHistory) {\n History.back();\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 if (forceOtherUrl) {\n router.navigate(navigateUrl, { reloadCurrent: true });\n }\n } else if (modalToClose) {\n router.modalRemove(modalToClose);\n if (navigateUrl) {\n router.navigate(navigateUrl, { reloadCurrent: true });\n }\n }\n return router;\n }\n let $previousPage = router.$el\n .children('.page-current')\n .prevAll('.page-previous:not(.page-master)')\n .eq(0);\n\n let skipMaster;\n if (router.params.masterDetailBreakpoint > 0) {\n const classes = [];\n router.$el.children('.page').each((pageEl) => {\n classes.push(pageEl.className);\n });\n\n const $previousMaster = router.$el.children('.page-current').prevAll('.page-master').eq(0);\n if ($previousMaster.length) {\n const expectedPreviousPageUrl = router.history[router.history.length - 2];\n const expectedPreviousPageRoute = router.findMatchingRoute(expectedPreviousPageUrl);\n if (\n expectedPreviousPageRoute &&\n $previousMaster[0].f7Page &&\n expectedPreviousPageRoute.route === $previousMaster[0].f7Page.route.route\n ) {\n $previousPage = $previousMaster;\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 (\n router.params.browserHistory &&\n $previousPage[0].f7Page &&\n router.history[router.history.length - 2] !== $previousPage[0].f7Page.route.url\n ) {\n router.back(\n router.history[router.history.length - 2],\n extend(navigateOptions, { force: true }),\n );\n return router;\n }\n const previousPageRoute = $previousPage[0].f7Page.route;\n if (navigateOptions.preload && $previousPage.hasClass('stacked')) {\n loadBack(\n router,\n { el: $previousPage },\n extend(navigateOptions, {\n route: previousPageRoute,\n }),\n );\n return router;\n }\n processRouteQueue.call(\n router,\n previousPageRoute,\n router.currentRoute,\n () => {\n loadBack(\n router,\n { el: $previousPage },\n extend(navigateOptions, {\n route: previousPageRoute,\n }),\n );\n },\n () => {},\n 'backward',\n );\n\n return router;\n }\n\n // Navigate URL\n if (navigateUrl === '#') {\n navigateUrl = undefined;\n }\n if (navigateUrl && navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) {\n navigateUrl = ((router.path || '/') + navigateUrl).replace('//', '/');\n }\n if (!navigateUrl && router.history.length > 1) {\n navigateUrl = router.history[router.history.length - 2];\n }\n if (skipMaster && !navigateOptions.force && router.history[router.history.length - 3]) {\n return router.back(\n router.history[router.history.length - 3],\n extend({}, navigateOptions || {}, {\n force: true,\n animate: false,\n }),\n );\n }\n if (skipMaster && !navigateOptions.force) {\n return router;\n }\n\n // Find route to load\n route = router.findMatchingRoute(navigateUrl);\n if (!route) {\n if (navigateUrl) {\n route = {\n url: navigateUrl,\n path: navigateUrl.split('?')[0],\n query: parseUrlQuery(navigateUrl),\n route: {\n path: navigateUrl.split('?')[0],\n url: navigateUrl,\n },\n };\n }\n }\n if (!route) {\n return router;\n }\n\n if (route.route.redirect) {\n return redirect.call(router, 'backward', route, navigateOptions);\n }\n\n const options = {};\n if (route.route.options) {\n extend(options, route.route.options, navigateOptions);\n } else {\n extend(options, navigateOptions);\n }\n options.route = route;\n\n let backForceLoaded;\n if (options.force && router.params.stackPages) {\n router.$el.children('.page-previous.stacked').each((pageEl) => {\n if (pageEl.f7Page && pageEl.f7Page.route && pageEl.f7Page.route.url === route.url) {\n backForceLoaded = true;\n loadBack(router, { el: pageEl }, options);\n }\n });\n if (backForceLoaded) {\n return router;\n }\n }\n function resolve() {\n let routerLoaded = false;\n if (route.route.keepAlive && route.route.keepAliveData) {\n loadBack(router, { el: route.route.keepAliveData.pageEl }, options);\n routerLoaded = true;\n }\n 'url content component pageName el componentUrl'.split(' ').forEach((pageLoadProp) => {\n if (route.route[pageLoadProp] && !routerLoaded) {\n routerLoaded = true;\n loadBack(router, { [pageLoadProp]: route.route[pageLoadProp] }, options);\n }\n });\n if (routerLoaded) return;\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n router.allowPageChange = false;\n loadBack(router, resolveParams, extend(options, resolveOptions), true);\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (route.route.async) {\n router.allowPageChange = false;\n route.route.async.call(router, {\n router,\n to: route,\n from: router.currentRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n direction: 'backward',\n app,\n });\n }\n if (route.route.asyncComponent) {\n asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject);\n }\n }\n function reject() {\n router.allowPageChange = true;\n }\n\n if (options.preload) {\n resolve();\n } else {\n processRouteQueue.call(\n router,\n route,\n router.currentRoute,\n () => {\n if (route.route.modules) {\n app\n .loadModules(\n Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules],\n )\n .then(() => {\n resolve();\n })\n .catch(() => {\n reject();\n });\n } else {\n resolve();\n }\n },\n () => {\n reject();\n },\n 'backward',\n );\n }\n\n // Return Router\n return router;\n}\nexport { back };\n","import $ from '../../shared/dom7.js';\nimport appRouterCheck from './app-router-check.js';\n\nfunction clearPreviousPages(router) {\n appRouterCheck(router, 'clearPreviousPages');\n const app = router.app;\n const dynamicNavbar = router.dynamicNavbar;\n\n const $pagesToRemove = router.$el.children('.page').filter((pageInView) => {\n if (router.currentRoute && (router.currentRoute.modal || router.currentRoute.panel))\n return true;\n return pageInView !== router.currentPageEl;\n });\n\n $pagesToRemove.each((pageEl) => {\n const $oldPageEl = $(pageEl);\n const $oldNavbarEl = $(app.navbar.getElByPage($oldPageEl));\n if (router.params.stackPages && router.initialPages.indexOf($oldPageEl[0]) >= 0) {\n $oldPageEl.addClass('stacked');\n if (dynamicNavbar) {\n $oldNavbarEl.addClass('stacked');\n }\n } else {\n // Page remove event\n router.pageCallback('beforeRemove', $oldPageEl, $oldNavbarEl, 'previous', undefined, {});\n router.removePage($oldPageEl);\n if (dynamicNavbar && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n });\n}\n\nfunction clearPreviousHistory() {\n const router = this;\n appRouterCheck(router, 'clearPreviousHistory');\n const url = router.history[router.history.length - 1];\n\n clearPreviousPages(router);\n\n router.history = [url];\n router.view.history = [url];\n router.saveHistory();\n}\n\nexport { clearPreviousHistory }; // eslint-disable-line\n","import { getWindow, getDocument } from 'ssr-window';\nimport { pathToRegexp, compile } from 'path-to-regexp';\nimport $ from '../../shared/dom7.js';\nimport Framework7Class from '../../shared/class.js';\nimport {\n extend,\n nextFrame,\n parseUrlQuery,\n serializeObject,\n now,\n eventNameToColonCase,\n} from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport SwipeBack from './swipe-back.js';\n\nimport { refreshPage, navigate } from './navigate.js';\nimport { tabLoad, tabRemove } from './tab.js';\nimport { modalLoad, modalRemove } from './modal.js';\nimport { back } from './back.js';\nimport { clearPreviousHistory } from './clear-previous-history.js';\nimport appRouterCheck from './app-router-check.js';\n\nclass Router extends Framework7Class {\n constructor(app, view) {\n super({}, [typeof view === 'undefined' ? app : view]);\n const router = this;\n\n // Is App Router\n router.isAppRouter = typeof view === 'undefined';\n\n if (router.isAppRouter) {\n // App Router\n extend(false, router, {\n app,\n params: app.params.view,\n routes: app.routes || [],\n cache: app.cache,\n });\n } else {\n // View Router\n extend(false, router, {\n app,\n 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 }\n\n // Install Modules\n router.useModules();\n\n // AllowPageChage\n router.allowPageChange = true;\n\n // Current Route\n let currentRoute = {};\n let previousRoute = {};\n Object.defineProperty(router, 'currentRoute', {\n enumerable: true,\n configurable: true,\n set(newRoute = {}) {\n previousRoute = extend({}, currentRoute);\n currentRoute = newRoute;\n if (!currentRoute) return;\n router.url = currentRoute.url;\n router.emit('routeChange', newRoute, previousRoute, router);\n },\n get() {\n return currentRoute;\n },\n });\n Object.defineProperty(router, 'previousRoute', {\n enumerable: true,\n configurable: true,\n get() {\n return previousRoute;\n },\n set(newRoute) {\n previousRoute = newRoute;\n },\n });\n\n return router;\n }\n\n mount() {\n const router = this;\n const view = router.view;\n const document = getDocument();\n\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\n router.emit('local::mount routerMount', router);\n }\n\n animatableNavElements($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction) {\n const router = this;\n const dynamicNavbar = router.dynamicNavbar;\n const animateIcon = router.params.iosAnimateNavbarBackIcon;\n\n let newNavEls;\n let oldNavEls;\n function animatableNavEl($el, $navbarInner) {\n const isSliding = $el.hasClass('sliding') || $navbarInner.hasClass('sliding');\n const isSubnavbar = $el.hasClass('subnavbar');\n const needsOpacityTransition = isSliding ? !isSubnavbar : true;\n const $iconEl = $el.find('.back .icon');\n let isIconLabel;\n if (\n isSliding &&\n animateIcon &&\n $el.hasClass('left') &&\n $iconEl.length > 0 &&\n $iconEl.next('span').length\n ) {\n $el = $iconEl.next('span'); // eslint-disable-line\n isIconLabel = true;\n }\n return {\n $el,\n isIconLabel,\n leftOffset: $el[0].f7NavbarLeftOffset,\n rightOffset: $el[0].f7NavbarRightOffset,\n isSliding,\n isSubnavbar,\n needsOpacityTransition,\n };\n }\n if (dynamicNavbar) {\n newNavEls = [];\n oldNavEls = [];\n $newNavbarEl\n .children('.navbar-inner')\n .children('.left, .right, .title, .subnavbar')\n .each((navEl) => {\n const $navEl = $(navEl);\n if ($navEl.hasClass('left') && fromLarge && direction === 'forward') return;\n if ($navEl.hasClass('title') && toLarge) return;\n newNavEls.push(animatableNavEl($navEl, $newNavbarEl.children('.navbar-inner')));\n });\n if (\n !(\n $oldNavbarEl.hasClass('navbar-master') &&\n router.params.masterDetailBreakpoint > 0 &&\n router.app.width >= router.params.masterDetailBreakpoint\n )\n ) {\n $oldNavbarEl\n .children('.navbar-inner')\n .children('.left, .right, .title, .subnavbar')\n .each((navEl) => {\n const $navEl = $(navEl);\n if ($navEl.hasClass('left') && toLarge && !fromLarge && direction === 'forward') return;\n if ($navEl.hasClass('left') && toLarge && direction === 'backward') return;\n if ($navEl.hasClass('title') && fromLarge) {\n return;\n }\n oldNavEls.push(animatableNavEl($navEl, $oldNavbarEl.children('.navbar-inner')));\n });\n }\n [oldNavEls, newNavEls].forEach((navEls) => {\n navEls.forEach((navEl) => {\n const n = navEl;\n const { isSliding, $el } = navEl;\n const otherEls = navEls === oldNavEls ? newNavEls : oldNavEls;\n if (!(isSliding && $el.hasClass('title') && otherEls)) return;\n otherEls.forEach((otherNavEl) => {\n if (otherNavEl.isIconLabel) {\n const iconTextEl = otherNavEl.$el[0];\n n.leftOffset += iconTextEl ? iconTextEl.offsetLeft || 0 : 0;\n }\n });\n });\n });\n }\n\n return { newNavEls, oldNavEls };\n }\n\n animate($oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, transition, callback) {\n const router = this;\n if (router.params.animateCustom) {\n router.params.animateCustom.apply(router, [\n $oldPageEl,\n $newPageEl,\n $oldNavbarEl,\n $newNavbarEl,\n direction,\n callback,\n ]);\n return;\n }\n const dynamicNavbar = router.dynamicNavbar;\n const ios = router.app.theme === 'ios';\n if (transition) {\n const routerCustomTransitionClass = `router-transition-custom router-transition-${transition}-${direction}`;\n // Animate\n const onCustomTransitionDone = () => {\n router.$el.removeClass(routerCustomTransitionClass);\n if (dynamicNavbar && router.$navbarsEl.length) {\n if ($newNavbarEl) {\n router.$navbarsEl.prepend($newNavbarEl);\n }\n if ($oldNavbarEl) {\n router.$navbarsEl.prepend($oldNavbarEl);\n }\n }\n if (callback) callback();\n };\n\n (direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(onCustomTransitionDone);\n if (dynamicNavbar) {\n if ($newNavbarEl && $newPageEl) {\n router.setNavbarPosition($newNavbarEl, '');\n $newNavbarEl.removeClass('navbar-next navbar-previous navbar-current');\n $newPageEl.prepend($newNavbarEl);\n }\n if ($oldNavbarEl && $oldPageEl) {\n router.setNavbarPosition($oldNavbarEl, '');\n $oldNavbarEl.removeClass('navbar-next navbar-previous navbar-current');\n $oldPageEl.prepend($oldNavbarEl);\n }\n }\n\n router.$el.addClass(routerCustomTransitionClass);\n return;\n }\n\n // Router Animation class\n const routerTransitionClass = `router-transition-${direction} router-transition`;\n\n let newNavEls;\n let oldNavEls;\n\n let fromLarge;\n let toLarge;\n let toDifferent;\n\n let oldIsLarge;\n let newIsLarge;\n\n if (ios && dynamicNavbar) {\n const betweenMasterAndDetail =\n router.params.masterDetailBreakpoint > 0 &&\n router.app.width >= router.params.masterDetailBreakpoint &&\n (($oldNavbarEl.hasClass('navbar-master') &&\n $newNavbarEl.hasClass('navbar-master-detail')) ||\n ($oldNavbarEl.hasClass('navbar-master-detail') &&\n $newNavbarEl.hasClass('navbar-master')));\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 const navEls = router.animatableNavElements(\n $newNavbarEl,\n $oldNavbarEl,\n toLarge,\n fromLarge,\n direction,\n );\n newNavEls = navEls.newNavEls;\n oldNavEls = navEls.oldNavEls;\n }\n\n function animateNavbars(progress) {\n if (!(ios && dynamicNavbar)) return;\n if (progress === 1) {\n if (toLarge) {\n $newNavbarEl.addClass('router-navbar-transition-to-large');\n $oldNavbarEl.addClass('router-navbar-transition-to-large');\n }\n if (fromLarge) {\n $newNavbarEl.addClass('router-navbar-transition-from-large');\n $oldNavbarEl.addClass('router-navbar-transition-from-large');\n }\n }\n newNavEls.forEach((navEl) => {\n const $el = navEl.$el;\n const offset = direction === 'forward' ? navEl.rightOffset : navEl.leftOffset;\n if (navEl.isSliding) {\n if (navEl.isSubnavbar && newIsLarge) {\n // prettier-ignore\n $el[0].style.setProperty(\n 'transform',\n `translate3d(${offset * (1 - progress)}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`,\n 'important',\n );\n } else {\n $el.transform(`translate3d(${offset * (1 - progress)}px,0,0)`);\n }\n }\n });\n oldNavEls.forEach((navEl) => {\n const $el = navEl.$el;\n const offset = direction === 'forward' ? navEl.leftOffset : navEl.rightOffset;\n if (navEl.isSliding) {\n if (navEl.isSubnavbar && oldIsLarge) {\n $el.transform(\n `translate3d(${\n offset * progress\n }px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`,\n );\n } else {\n $el.transform(`translate3d(${offset * progress}px,0,0)`);\n }\n }\n });\n }\n\n // AnimationEnd Callback\n function onDone() {\n if (router.dynamicNavbar) {\n if ($newNavbarEl) {\n $newNavbarEl.removeClass(\n 'router-navbar-transition-to-large router-navbar-transition-from-large',\n );\n $newNavbarEl.addClass('navbar-no-title-large-transition');\n nextFrame(() => {\n $newNavbarEl.removeClass('navbar-no-title-large-transition');\n });\n }\n if ($oldNavbarEl) {\n $oldNavbarEl.removeClass(\n 'router-navbar-transition-to-large router-navbar-transition-from-large',\n );\n }\n if (\n $newNavbarEl.hasClass('sliding') ||\n $newNavbarEl.children('.navbar-inner.sliding').length\n ) {\n $newNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform('');\n } else {\n $newNavbarEl.find('.sliding').transform('');\n }\n if (\n $oldNavbarEl.hasClass('sliding') ||\n $oldNavbarEl.children('.navbar-inner.sliding').length\n ) {\n $oldNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform('');\n } else {\n $oldNavbarEl.find('.sliding').transform('');\n }\n }\n router.$el.removeClass(routerTransitionClass);\n if (callback) callback();\n }\n\n (direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(() => {\n onDone();\n });\n\n // Animate\n if (dynamicNavbar) {\n // Prepare Navbars\n animateNavbars(0);\n nextFrame(() => {\n // Add class, start animation\n router.$el.addClass(routerTransitionClass);\n if (toDifferent) {\n // eslint-disable-next-line\n router.el._clientLeft = router.el.clientLeft;\n }\n animateNavbars(1);\n });\n } else {\n // Add class, start animation\n router.$el.addClass(routerTransitionClass);\n }\n }\n\n removeModal(modalEl) {\n const router = this;\n router.removeEl(modalEl);\n }\n // eslint-disable-next-line\n removeTabContent(tabEl) {\n const $tabEl = $(tabEl);\n $tabEl.html('');\n }\n\n removeNavbar(el) {\n const router = this;\n router.removeEl(el);\n }\n\n removePage(el) {\n const $el = $(el);\n const f7Page = $el && $el[0] && $el[0].f7Page;\n const router = this;\n if (f7Page && f7Page.route && f7Page.route.route && f7Page.route.route.keepAlive) {\n $el.remove();\n return;\n }\n router.removeEl(el);\n }\n\n removeEl(el) {\n if (!el) return;\n const router = this;\n const $el = $(el);\n if ($el.length === 0) return;\n $el.find('.tab').each((tabEl) => {\n $(tabEl)\n .children()\n .each((tabChild) => {\n if (tabChild.f7Component) {\n $(tabChild).trigger('tab:beforeremove');\n tabChild.f7Component.destroy();\n }\n });\n });\n if ($el[0].f7Component && $el[0].f7Component.destroy) {\n $el[0].f7Component.destroy();\n }\n if (!router.params.removeElements) {\n return;\n }\n if (router.params.removeElementsWithTimeout) {\n setTimeout(() => {\n $el.remove();\n }, router.params.removeElementsTimeout);\n } else {\n $el.remove();\n }\n }\n\n getPageEl(content) {\n const router = this;\n if (typeof content === 'string') {\n router.tempDom.innerHTML = content;\n } else {\n if ($(content).hasClass('page')) {\n return content;\n }\n router.tempDom.innerHTML = '';\n $(router.tempDom).append(content);\n }\n\n return router.findElement('.page', router.tempDom);\n }\n\n findElement(stringSelector, container, notStacked) {\n const router = this;\n const view = router.view;\n const app = router.app;\n\n // Modals Selector\n const modalsSelector =\n '.popup, .dialog, .popover, .actions-modal, .sheet-modal, .login-screen, .page';\n\n const $container = $(container);\n let selector = stringSelector;\n if (notStacked) selector += ':not(.stacked)';\n\n let found = $container\n .find(selector)\n .filter((el) => $(el).parents(modalsSelector).length === 0);\n\n if (found.length > 1) {\n if (typeof view.selector === 'string') {\n // Search in related view\n found = $container.find(`${view.selector} ${selector}`);\n }\n if (found.length > 1) {\n // Search in main view\n found = $container.find(`.${app.params.viewMainClass} ${selector}`);\n }\n }\n if (found.length === 1) return found;\n\n // Try to find not stacked\n if (!notStacked) found = router.findElement(selector, $container, true);\n if (found && found.length === 1) return found;\n if (found && found.length > 1) return $(found[0]);\n return undefined;\n }\n\n flattenRoutes(routes = this.routes) {\n const router = this;\n let flattenedRoutes = [];\n routes.forEach((route) => {\n let hasTabRoutes = false;\n if ('tabs' in route && route.tabs) {\n const mergedPathsRoutes = route.tabs.map((tabRoute) => {\n const tRoute = extend({}, route, {\n path: `${route.path}/${tabRoute.path}`.replace('///', '/').replace('//', '/'),\n parentPath: route.path,\n tab: tabRoute,\n });\n delete tRoute.tabs;\n delete tRoute.routes;\n return tRoute;\n });\n hasTabRoutes = true;\n flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes));\n }\n if ('detailRoutes' in route) {\n const mergedPathsRoutes = route.detailRoutes.map((detailRoute) => {\n const dRoute = extend({}, detailRoute);\n dRoute.masterRoute = route;\n dRoute.masterRoutePath = route.path;\n return dRoute;\n });\n flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes));\n }\n if ('routes' in route) {\n const mergedPathsRoutes = route.routes.map((childRoute) => {\n const cRoute = extend({}, childRoute);\n cRoute.path = `${route.path}/${cRoute.path}`.replace('///', '/').replace('//', '/');\n return cRoute;\n });\n if (hasTabRoutes) {\n flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes));\n } else {\n flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes));\n }\n }\n if (!('routes' in route) && !('tabs' in route && route.tabs) && !('detailRoutes' in route)) {\n flattenedRoutes.push(route);\n }\n });\n return flattenedRoutes;\n }\n\n // eslint-disable-next-line\n parseRouteUrl(url) {\n if (!url) return {};\n const query = parseUrlQuery(url);\n const hash = url.split('#')[1];\n const params = {};\n const path = url.split('#')[0].split('?')[0];\n return {\n query,\n hash,\n params,\n url,\n path,\n };\n }\n\n generateUrl(parameters = {}) {\n if (typeof parameters === 'string') {\n return parameters;\n }\n const { name, path, params, query } = parameters;\n if (!name && !path) {\n throw new Error('Framework7: \"name\" or \"path\" parameter is required');\n }\n const router = this;\n const 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 const url = router.constructRouteUrl(route, { params, query });\n if (!url) {\n throw new Error(`Framework7: can't construct URL for route with name \"${name}\"`);\n }\n return url;\n }\n\n // eslint-disable-next-line\n constructRouteUrl(route, { params, query } = {}) {\n const { path } = route;\n const toUrl = compile(path);\n let url;\n try {\n url = toUrl(params || {});\n } catch (error) {\n throw new Error(\n `Framework7: error constructing route URL from passed params:\\nRoute: ${path}\\n${error.toString()}`,\n );\n }\n\n if (query) {\n if (typeof query === 'string') url += `?${query}`;\n else if (Object.keys(query).length) url += `?${serializeObject(query)}`;\n }\n\n return url;\n }\n\n findTabRouteUrl(tabEl) {\n const router = this;\n const $tabEl = $(tabEl);\n const parentPath = router.currentRoute.route.parentPath;\n const tabId = $tabEl.attr('id');\n const flattenedRoutes = router.flattenRoutes(router.routes);\n let foundTabRouteUrl;\n flattenedRoutes.forEach((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 findRouteByKey(key, value) {\n const router = this;\n const routes = router.routes;\n const flattenedRoutes = router.flattenRoutes(routes);\n let matchingRoute;\n\n flattenedRoutes.forEach((route) => {\n if (matchingRoute) return;\n if (route[key] === value) {\n matchingRoute = route;\n }\n });\n return matchingRoute;\n }\n\n findMatchingRoute(url) {\n if (!url) return undefined;\n const router = this;\n const routes = router.routes;\n const flattenedRoutes = router.flattenRoutes(routes);\n const { path, query, hash, params } = router.parseRouteUrl(url);\n let matchingRoute;\n flattenedRoutes.forEach((route) => {\n if (matchingRoute) return;\n const keys = [];\n\n const pathsToMatch = [route.path];\n if (route.alias) {\n if (typeof route.alias === 'string') pathsToMatch.push(route.alias);\n else if (Array.isArray(route.alias)) {\n route.alias.forEach((aliasPath) => {\n pathsToMatch.push(aliasPath);\n });\n }\n }\n\n let matched;\n pathsToMatch.forEach((pathToMatch) => {\n if (matched) return;\n matched = pathToRegexp(pathToMatch, keys).exec(path);\n });\n\n if (matched) {\n keys.forEach((keyObj, index) => {\n if (typeof keyObj.name === 'number') return;\n const paramValue = matched[index + 1];\n if (typeof paramValue === 'undefined' || paramValue === null) {\n params[keyObj.name] = paramValue;\n } else {\n params[keyObj.name] = decodeURIComponent(paramValue);\n }\n });\n\n let parentPath;\n if (route.parentPath) {\n parentPath = path\n .split('/')\n .slice(0, route.parentPath.split('/').length - 1)\n .join('/');\n }\n\n matchingRoute = {\n query,\n hash,\n params,\n url,\n path,\n parentPath,\n route,\n name: route.name,\n };\n }\n });\n return matchingRoute;\n }\n\n // eslint-disable-next-line\n replaceRequestUrlParams(url = '', options = {}) {\n let compiledUrl = url;\n if (\n typeof compiledUrl === 'string' &&\n compiledUrl.indexOf('{{') >= 0 &&\n options &&\n options.route &&\n options.route.params &&\n Object.keys(options.route.params).length\n ) {\n Object.keys(options.route.params).forEach((paramName) => {\n const regExp = new RegExp(`{{${paramName}}}`, 'g');\n compiledUrl = compiledUrl.replace(regExp, options.route.params[paramName] || '');\n });\n }\n return compiledUrl;\n }\n\n removeFromXhrCache(url) {\n const router = this;\n const xhrCache = router.cache.xhr;\n let index = false;\n for (let i = 0; i < xhrCache.length; i += 1) {\n if (xhrCache[i].url === url) index = i;\n }\n if (index !== false) xhrCache.splice(index, 1);\n }\n\n xhrRequest(requestUrl, options) {\n const router = this;\n const params = router.params;\n const { ignoreCache } = options;\n let url = requestUrl;\n\n let hasQuery = url.indexOf('?') >= 0;\n if (\n params.passRouteQueryToRequest &&\n options &&\n options.route &&\n options.route.query &&\n Object.keys(options.route.query).length\n ) {\n url += `${hasQuery ? '&' : '?'}${serializeObject(options.route.query)}`;\n hasQuery = true;\n }\n\n if (\n params.passRouteParamsToRequest &&\n options &&\n options.route &&\n options.route.params &&\n Object.keys(options.route.params).length\n ) {\n url += `${hasQuery ? '&' : '?'}${serializeObject(options.route.params)}`;\n hasQuery = true;\n }\n\n if (url.indexOf('{{') >= 0) {\n url = router.replaceRequestUrlParams(url, options);\n }\n // should we ignore get params or not\n if (params.xhrCacheIgnoreGetParameters && url.indexOf('?') >= 0) {\n url = url.split('?')[0];\n }\n return new Promise((resolve, reject) => {\n if (\n params.xhrCache &&\n !ignoreCache &&\n url.indexOf('nocache') < 0 &&\n params.xhrCacheIgnore.indexOf(url) < 0\n ) {\n for (let i = 0; i < router.cache.xhr.length; i += 1) {\n const cachedUrl = router.cache.xhr[i];\n if (cachedUrl.url === url) {\n // Check expiration\n if (now() - cachedUrl.time < params.xhrCacheDuration) {\n // Load from cache\n resolve(cachedUrl.content);\n return;\n }\n }\n }\n }\n router.xhrAbortController = router.app.request.abortController();\n router.app.request({\n abortController: router.xhrAbortController,\n url,\n method: 'GET',\n beforeSend(xhr) {\n router.emit('routerAjaxStart', xhr, options);\n },\n complete(xhr, status) {\n router.emit('routerAjaxComplete', xhr);\n if (\n (status !== 'error' && status !== 'timeout' && xhr.status >= 200 && xhr.status < 300) ||\n xhr.status === 0\n ) {\n if (params.xhrCache && xhr.responseText !== '') {\n router.removeFromXhrCache(url);\n router.cache.xhr.push({\n url,\n time: now(),\n content: xhr.responseText,\n });\n }\n router.emit('routerAjaxSuccess', xhr, options);\n resolve(xhr.responseText);\n } else {\n router.emit('routerAjaxError', xhr, options);\n reject(xhr);\n }\n },\n error(xhr) {\n router.emit('routerAjaxError', xhr, options);\n reject(xhr);\n },\n });\n });\n }\n\n setNavbarPosition($el, position, ariaHidden) {\n const router = this;\n $el.removeClass('navbar-previous navbar-current navbar-next');\n if (position) {\n $el.addClass(`navbar-${position}`);\n }\n\n if (ariaHidden === false) {\n $el.removeAttr('aria-hidden');\n } else if (ariaHidden === true) {\n $el.attr('aria-hidden', 'true');\n }\n $el.trigger('navbar:position', { position });\n router.emit('navbarPosition', $el[0], position);\n }\n\n setPagePosition($el, position, ariaHidden) {\n const router = this;\n $el.removeClass('page-previous page-current page-next');\n $el.addClass(`page-${position}`);\n if (ariaHidden === false) {\n $el.removeAttr('aria-hidden');\n } else if (ariaHidden === true) {\n $el.attr('aria-hidden', 'true');\n }\n $el.trigger('page:position', { position });\n router.emit('pagePosition', $el[0], position);\n }\n\n // Remove theme elements\n removeThemeElements(el) {\n const router = this;\n const theme = router.app.theme;\n let toRemove;\n if (theme === 'ios') {\n toRemove = '.md-only, .aurora-only, .if-md, .if-aurora, .if-not-ios, .not-ios';\n } else if (theme === 'md') {\n toRemove = '.ios-only, .aurora-only, .if-ios, .if-aurora, .if-not-md, .not-md';\n } else if (theme === 'aurora') {\n toRemove = '.ios-only, .md-only, .if-ios, .if-md, .if-not-aurora, .not-aurora';\n }\n $(el).find(toRemove).remove();\n }\n\n getPageData(pageEl, navbarEl, from, to, route = {}, pageFromEl) {\n const router = this;\n const $pageEl = $(pageEl).eq(0);\n const $navbarEl = $(navbarEl).eq(0);\n const currentPage = $pageEl[0].f7Page || {};\n let direction;\n let pageFrom;\n if ((from === 'next' && to === 'current') || (from === 'current' && to === 'previous'))\n direction = 'forward';\n if ((from === 'current' && to === 'next') || (from === 'previous' && to === 'current'))\n direction = 'backward';\n if (currentPage && !currentPage.fromPage) {\n const $pageFromEl = $(pageFromEl);\n if ($pageFromEl.length) {\n pageFrom = $pageFromEl[0].f7Page;\n }\n }\n pageFrom = currentPage.pageFrom || pageFrom;\n if (pageFrom && pageFrom.pageFrom) {\n pageFrom.pageFrom = null;\n }\n const page = {\n app: router.app,\n view: router.view,\n router,\n $el: $pageEl,\n el: $pageEl[0],\n $pageEl,\n pageEl: $pageEl[0],\n $navbarEl,\n navbarEl: $navbarEl[0],\n name: $pageEl.attr('data-name'),\n position: from,\n from,\n to,\n direction,\n route: currentPage.route ? currentPage.route : route,\n pageFrom,\n };\n\n $pageEl[0].f7Page = page;\n return page;\n }\n\n // Callbacks\n pageCallback(callback, pageEl, navbarEl, from, to, options = {}, pageFromEl) {\n if (!pageEl) return;\n const router = this;\n const $pageEl = $(pageEl);\n if (!$pageEl.length) return;\n const $navbarEl = $(navbarEl);\n const { route } = options;\n const restoreScrollTopOnBack =\n router.params.restoreScrollTopOnBack &&\n !(\n router.params.masterDetailBreakpoint > 0 &&\n $pageEl.hasClass('page-master') &&\n router.app.width >= router.params.masterDetailBreakpoint\n );\n const keepAlive =\n $pageEl[0].f7Page &&\n $pageEl[0].f7Page.route &&\n $pageEl[0].f7Page.route.route &&\n $pageEl[0].f7Page.route.route.keepAlive;\n\n if (callback === 'beforeRemove' && keepAlive) {\n callback = 'beforeUnmount'; // eslint-disable-line\n }\n\n const camelName = `page${callback[0].toUpperCase() + callback.slice(1, callback.length)}`;\n const colonName = `page:${callback.toLowerCase()}`;\n\n let page = {};\n if (callback === 'beforeRemove' && $pageEl[0].f7Page) {\n page = extend($pageEl[0].f7Page, { from, to, position: from });\n } else {\n page = router.getPageData($pageEl[0], $navbarEl[0], from, to, route, pageFromEl);\n }\n page.swipeBack = !!options.swipeBack;\n\n const { on = {}, once = {} } = options.route ? options.route.route : {};\n if (options.on) {\n extend(on, options.on);\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 if (on && Object.keys(on).length > 0) {\n $pageEl[0].f7RouteEventsOn = on;\n Object.keys(on).forEach((eventName) => {\n on[eventName] = on[eventName].bind(router);\n $pageEl.on(eventNameToColonCase(eventName), on[eventName]);\n });\n }\n if (once && Object.keys(once).length > 0) {\n $pageEl[0].f7RouteEventsOnce = once;\n Object.keys(once).forEach((eventName) => {\n once[eventName] = once[eventName].bind(router);\n $pageEl.once(eventNameToColonCase(eventName), once[eventName]);\n });\n }\n }\n\n function detachEvents() {\n if (!$pageEl[0].f7RouteEventsAttached) return;\n if ($pageEl[0].f7RouteEventsOn) {\n Object.keys($pageEl[0].f7RouteEventsOn).forEach((eventName) => {\n $pageEl.off(eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOn[eventName]);\n });\n }\n if ($pageEl[0].f7RouteEventsOnce) {\n Object.keys($pageEl[0].f7RouteEventsOnce).forEach((eventName) => {\n $pageEl.off(eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOnce[eventName]);\n });\n }\n $pageEl[0].f7RouteEventsAttached = null;\n $pageEl[0].f7RouteEventsOn = null;\n $pageEl[0].f7RouteEventsOnce = null;\n delete $pageEl[0].f7RouteEventsAttached;\n delete $pageEl[0].f7RouteEventsOn;\n delete $pageEl[0].f7RouteEventsOnce;\n }\n\n if (callback === 'mounted') {\n attachEvents();\n }\n if (callback === 'init') {\n if (\n restoreScrollTopOnBack &&\n (from === 'previous' || !from) &&\n to === 'current' &&\n router.scrollHistory[page.route.url] &&\n !$pageEl.hasClass('no-restore-scroll')\n ) {\n let $pageContent = $pageEl.find('.page-content');\n if ($pageContent.length > 0) {\n // eslint-disable-next-line\n $pageContent = $pageContent.filter((pageContentEl) => {\n return (\n $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 &&\n !$(pageContentEl).is('.tab:not(.tab-active)')\n );\n });\n }\n $pageContent.scrollTop(router.scrollHistory[page.route.url]);\n }\n attachEvents();\n if ($pageEl[0].f7PageInitialized) {\n $pageEl.trigger('page:reinit', page);\n router.emit('pageReinit', page);\n return;\n }\n $pageEl[0].f7PageInitialized = true;\n }\n if (\n restoreScrollTopOnBack &&\n callback === 'beforeOut' &&\n from === 'current' &&\n to === 'previous'\n ) {\n // Save scroll position\n let $pageContent = $pageEl.find('.page-content');\n if ($pageContent.length > 0) {\n // eslint-disable-next-line\n $pageContent = $pageContent.filter((pageContentEl) => {\n return (\n $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 &&\n !$(pageContentEl).is('.tab:not(.tab-active)')\n );\n });\n }\n router.scrollHistory[page.route.url] = $pageContent.scrollTop();\n }\n if (restoreScrollTopOnBack && callback === 'beforeOut' && from === 'current' && to === 'next') {\n // Delete scroll position\n delete router.scrollHistory[page.route.url];\n }\n\n $pageEl.trigger(colonName, page);\n router.emit(camelName, page);\n\n if (callback === 'beforeRemove' || callback === 'beforeUnmount') {\n detachEvents();\n if (!keepAlive) {\n if ($pageEl[0].f7Page && $pageEl[0].f7Page.navbarEl) {\n delete $pageEl[0].f7Page.navbarEl.f7Page;\n }\n $pageEl[0].f7Page = null;\n }\n }\n }\n\n saveHistory() {\n const router = this;\n const window = getWindow();\n router.view.history = router.history;\n if (\n router.params.browserHistory &&\n router.params.browserHistoryStoreHistory &&\n window.localStorage\n ) {\n window.localStorage[`f7router-${router.view.id}-history`] = JSON.stringify(router.history);\n }\n }\n\n restoreHistory() {\n const router = this;\n const window = getWindow();\n if (\n router.params.browserHistory &&\n router.params.browserHistoryStoreHistory &&\n window.localStorage &&\n window.localStorage[`f7router-${router.view.id}-history`]\n ) {\n router.history = JSON.parse(window.localStorage[`f7router-${router.view.id}-history`]);\n router.view.history = router.history;\n }\n }\n\n clearHistory() {\n const router = this;\n router.history = [];\n if (router.view) router.view.history = [];\n router.saveHistory();\n }\n\n updateCurrentUrl(newUrl) {\n const router = this;\n appRouterCheck(router, 'updateCurrentUrl');\n // Update history\n if (router.history.length) {\n router.history[router.history.length - 1] = newUrl;\n } else {\n router.history.push(newUrl);\n }\n\n // Update current route params\n const { query, hash, params, url, path } = router.parseRouteUrl(newUrl);\n if (router.currentRoute) {\n extend(router.currentRoute, {\n query,\n hash,\n params,\n url,\n path,\n });\n }\n\n if (router.params.browserHistory) {\n const browserHistoryRoot = router.params.browserHistoryRoot || '';\n History.replace(\n router.view.id,\n {\n url: newUrl,\n },\n browserHistoryRoot + router.params.browserHistorySeparator + newUrl,\n );\n }\n\n // Save History\n router.saveHistory();\n\n router.emit('routeUrlUpdate', router.currentRoute, router);\n }\n\n getInitialUrl() {\n const router = this;\n if (router.initialUrl) {\n return {\n initialUrl: router.initialUrl,\n historyRestored: router.historyRestored,\n };\n }\n const { app, view } = router;\n const document = getDocument();\n const window = getWindow();\n\n const location =\n app.params.url && typeof app.params.url === 'string' && typeof URL !== 'undefined'\n ? new URL(app.params.url)\n : document.location;\n\n let initialUrl = router.params.url;\n let documentUrl = location.href.split(location.origin)[1];\n let historyRestored;\n const { browserHistory, browserHistoryOnLoad, browserHistorySeparator } = router.params;\n let { browserHistoryRoot } = router.params;\n if (\n (window.cordova || (window.Capacitor && window.Capacitor.isNative)) &&\n browserHistory &&\n !browserHistorySeparator &&\n !browserHistoryRoot &&\n location.pathname.indexOf('index.html')\n ) {\n // eslint-disable-next-line\n console.warn(\n 'Framework7: wrong or not complete browserHistory configuration, trying to guess browserHistoryRoot',\n );\n browserHistoryRoot = location.pathname.split('index.html')[0];\n }\n if (!browserHistory || !browserHistoryOnLoad) {\n if (!initialUrl) {\n initialUrl = documentUrl;\n }\n if (location.search && initialUrl.indexOf('?') < 0) {\n initialUrl += location.search;\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 if (browserHistorySeparator.length > 0 && documentUrl.indexOf(browserHistorySeparator) >= 0) {\n initialUrl = documentUrl.split(browserHistorySeparator)[1];\n } else {\n initialUrl = documentUrl;\n }\n router.restoreHistory();\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 (\n History.state &&\n History.state[view.id] &&\n History.state[view.id].url === router.history[router.history.length - 1]\n ) {\n initialUrl = router.history[router.history.length - 1];\n } else {\n router.history = [documentUrl.split(browserHistorySeparator)[0] || '/', initialUrl];\n }\n if (router.history.length > 1) {\n historyRestored = true;\n } else {\n router.history = [];\n }\n router.saveHistory();\n }\n\n router.initialUrl = initialUrl;\n router.historyRestored = historyRestored;\n\n return { initialUrl, historyRestored };\n }\n\n init() {\n const router = this;\n const { app, view } = router;\n const document = getDocument();\n\n router.mount();\n\n const { initialUrl, historyRestored } = router.getInitialUrl();\n\n // Init Swipeback\n if (\n (view && router.params.iosSwipeBack && app.theme === 'ios') ||\n (view && router.params.mdSwipeBack && app.theme === 'md') ||\n (view && router.params.auroraSwipeBack && app.theme === 'aurora')\n ) {\n SwipeBack(router);\n }\n\n const {\n browserHistory,\n browserHistoryOnLoad,\n browserHistoryAnimateOnLoad,\n browserHistoryInitialMatch,\n } = router.params;\n\n let currentRoute;\n if (router.history.length > 1) {\n // Will load page\n const initUrl = browserHistoryInitialMatch ? initialUrl : router.history[0];\n currentRoute = router.findMatchingRoute(initUrl);\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 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((pageEl) => {\n const $pageEl = $(pageEl);\n router.initialPages.push($pageEl[0]);\n if (router.dynamicNavbar && $pageEl.children('.navbar').length > 0) {\n router.initialNavbars.push($pageEl.children('.navbar')[0]);\n }\n });\n }\n\n if (\n router.$el.children('.page:not(.stacked)').length === 0 &&\n initialUrl &&\n router.params.loadInitialPage\n ) {\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() {\n if (!historyRestored) return;\n const preloadPreviousPage =\n router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 1) {\n router.back({ preload: true });\n }\n },\n pageAfterIn() {\n if (!historyRestored) return;\n const preloadPreviousPage =\n router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 1) {\n router.back({ preload: true });\n }\n },\n },\n });\n } else if (router.$el.children('.page:not(.stacked)').length) {\n // Init current DOM page\n let hasTabRoute;\n router.currentRoute = currentRoute;\n router.$el.children('.page:not(.stacked)').each((pageEl) => {\n const $pageEl = $(pageEl);\n let $navbarEl;\n router.setPagePosition($pageEl, 'current');\n if (router.dynamicNavbar) {\n $navbarEl = $pageEl.children('.navbar');\n if ($navbarEl.length > 0) {\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n router.setNavbarPosition($navbarEl, 'current');\n router.$navbarsEl.append($navbarEl);\n if ($navbarEl.children('.title-large').length) {\n $navbarEl.addClass('navbar-large');\n }\n $pageEl.children('.navbar').remove();\n } else {\n router.$navbarsEl.addClass('navbar-hidden');\n if ($navbarEl.children('.title-large').length) {\n router.$navbarsEl.addClass('navbar-hidden navbar-large-hidden');\n }\n }\n }\n if (\n router.currentRoute &&\n router.currentRoute.route &&\n (router.currentRoute.route.master === true ||\n (typeof router.currentRoute.route.master === 'function' &&\n router.currentRoute.route.master(app, router))) &&\n router.params.masterDetailBreakpoint > 0\n ) {\n $pageEl.addClass('page-master');\n $pageEl.trigger('page:role', { role: 'master' });\n if ($navbarEl && $navbarEl.length) {\n $navbarEl.addClass('navbar-master');\n }\n view.checkMasterDetailBreakpoint();\n }\n const initOptions = {\n route: router.currentRoute,\n };\n if (router.currentRoute && router.currentRoute.route && router.currentRoute.route.options) {\n extend(initOptions, router.currentRoute.route.options);\n }\n router.currentPageEl = $pageEl[0];\n if (router.dynamicNavbar && $navbarEl.length) {\n router.currentNavbarEl = $navbarEl[0];\n }\n router.removeThemeElements($pageEl);\n if (router.dynamicNavbar && $navbarEl.length) {\n router.removeThemeElements($navbarEl);\n }\n if (initOptions.route.route.tab) {\n hasTabRoute = true;\n router.tabLoad(initOptions.route.route.tab, extend({}, initOptions));\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 if (historyRestored) {\n if (browserHistoryInitialMatch) {\n const preloadPreviousPage =\n router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 1) {\n router.back({ preload: true });\n }\n } else {\n router.navigate(initialUrl, {\n initial: true,\n browserHistory: false,\n history: false,\n animate: browserHistoryAnimateOnLoad,\n once: {\n pageAfterIn() {\n const preloadPreviousPage =\n router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 2) {\n router.back({ preload: true });\n }\n },\n },\n });\n }\n }\n if (!historyRestored && !hasTabRoute) {\n router.history.push(initialUrl);\n router.saveHistory();\n }\n }\n if (\n initialUrl &&\n browserHistory &&\n browserHistoryOnLoad &&\n (!History.state || !History.state[view.id])\n ) {\n History.initViewState(view.id, {\n url: initialUrl,\n });\n }\n router.emit('local::init routerInit', router);\n }\n\n destroy() {\n let router = this;\n\n router.emit('local::destroy routerDestroy', router);\n\n // Delete props & methods\n Object.keys(router).forEach((routerProp) => {\n router[routerProp] = null;\n delete router[routerProp];\n });\n\n router = null;\n }\n}\n\n// Load\nRouter.prototype.navigate = navigate;\nRouter.prototype.refreshPage = refreshPage;\n// Tab\nRouter.prototype.tabLoad = tabLoad;\nRouter.prototype.tabRemove = tabRemove;\n// Modal\nRouter.prototype.modalLoad = modalLoad;\nRouter.prototype.modalRemove = modalRemove;\n// Back\nRouter.prototype.back = back;\n// Clear history\nRouter.prototype.clearPreviousHistory = clearPreviousHistory;\n\nexport default Router;\n","import Router from './router-class.js';\n\nexport default {\n name: 'router',\n static: {\n Router,\n },\n instance: {\n cache: {\n xhr: [],\n templates: [],\n components: [],\n },\n },\n create() {\n const instance = this;\n if (instance.app) {\n // View Router\n if (instance.params.router) {\n instance.router = new Router(instance.app, instance);\n }\n } else {\n // App Router\n instance.router = new Router(instance);\n }\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport { getSupport } from '../../shared/get-support.js';\n\nfunction resizableView(view) {\n const app = view.app;\n const support = getSupport();\n if (view.resizableInitialized) return;\n extend(view, {\n resizable: true,\n resizableWidth: null,\n resizableInitialized: true,\n });\n const $htmlEl = $('html');\n const { $el } = view;\n if (!$el) return;\n\n let $resizeHandlerEl;\n\n let isTouched;\n let isMoved;\n const touchesStart = {};\n let touchesDiff;\n let width;\n\n let minWidth;\n let maxWidth;\n\n function transformCSSWidth(v) {\n if (!v) return null;\n if (v.indexOf('%') >= 0 || v.indexOf('vw') >= 0) {\n return (parseInt(v, 10) / 100) * app.width;\n }\n const newV = parseInt(v, 10);\n if (Number.isNaN(newV)) return null;\n return newV;\n }\n\n function isResizable() {\n return view.resizable && $el.hasClass('view-resizable') && $el.hasClass('view-master-detail');\n }\n\n function handleTouchStart(e) {\n if (!isResizable()) return;\n touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n isMoved = false;\n isTouched = true;\n const $pageMasterEl = $el.children('.page-master');\n minWidth = transformCSSWidth($pageMasterEl.css('min-width'));\n maxWidth = transformCSSWidth($pageMasterEl.css('max-width'));\n }\n function handleTouchMove(e) {\n if (!isTouched) return;\n e.f7PreventSwipePanel = true;\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n\n if (!isMoved) {\n width = $resizeHandlerEl[0].offsetLeft + $resizeHandlerEl[0].offsetWidth;\n $el.addClass('view-resizing');\n $htmlEl.css('cursor', 'col-resize');\n }\n\n isMoved = true;\n\n e.preventDefault();\n\n touchesDiff = pageX - touchesStart.x;\n\n let newWidth = width + touchesDiff;\n if (minWidth && !Number.isNaN(minWidth)) {\n newWidth = Math.max(newWidth, minWidth);\n }\n if (maxWidth && !Number.isNaN(maxWidth)) {\n newWidth = Math.min(newWidth, maxWidth);\n }\n newWidth = Math.min(Math.max(newWidth, 0), app.width);\n\n view.resizableWidth = newWidth;\n $htmlEl[0].style.setProperty('--f7-page-master-width', `${newWidth}px`);\n\n $el.trigger('view:resize', newWidth);\n view.emit('local::resize viewResize', view, newWidth);\n }\n function handleTouchEnd() {\n $('html').css('cursor', '');\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n isTouched = false;\n isMoved = false;\n\n $htmlEl[0].style.setProperty('--f7-page-master-width', `${view.resizableWidth}px`);\n $el.removeClass('view-resizing');\n }\n\n function handleResize() {\n if (!view.resizableWidth) return;\n minWidth = transformCSSWidth($resizeHandlerEl.css('min-width'));\n maxWidth = transformCSSWidth($resizeHandlerEl.css('max-width'));\n\n if (minWidth && !Number.isNaN(minWidth) && view.resizableWidth < minWidth) {\n view.resizableWidth = Math.max(view.resizableWidth, minWidth);\n }\n if (maxWidth && !Number.isNaN(maxWidth) && view.resizableWidth > maxWidth) {\n view.resizableWidth = Math.min(view.resizableWidth, maxWidth);\n }\n view.resizableWidth = Math.min(Math.max(view.resizableWidth, 0), app.width);\n\n $htmlEl[0].style.setProperty('--f7-page-master-width', `${view.resizableWidth}px`);\n }\n\n $resizeHandlerEl = view.$el.children('.view-resize-handler');\n if (!$resizeHandlerEl.length) {\n view.$el.append('<div class=\"view-resize-handler\"></div>');\n $resizeHandlerEl = view.$el.children('.view-resize-handler');\n }\n view.$resizeHandlerEl = $resizeHandlerEl;\n\n $el.addClass('view-resizable');\n\n // Add Events\n const passive = support.passiveListener ? { passive: true } : false;\n\n view.$el.on(app.touchEvents.start, '.view-resize-handler', handleTouchStart, passive);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n app.on('resize', handleResize);\n view.on('beforeOpen', handleResize);\n\n view.once('viewDestroy', () => {\n $el.removeClass('view-resizable');\n view.$resizeHandlerEl.remove();\n view.$el.off(app.touchEvents.start, '.view-resize-handler', handleTouchStart, passive);\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n app.off('resize', handleResize);\n view.off('beforeOpen', handleResize);\n });\n}\n\nexport default resizableView;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Router from '../../modules/router/router.js';\nimport Framework7Class from '../../shared/class.js';\nimport resizableView from './resizable-view.js';\n\nclass View extends Framework7Class {\n constructor(app, el, viewParams = {}) {\n super(viewParams, [app]);\n\n const view = this;\n\n const ssr = view.params.routerId;\n\n const defaults = {\n routes: [],\n routesAdd: [],\n };\n\n if (!ssr) {\n const $el = $(el);\n if (!$el.length) {\n let message = \"Framework7: can't create a View instance because \";\n message +=\n typeof el === 'string'\n ? `the selector \"${el}\" didn't match any element`\n : 'el must be an HTMLElement or Dom7 object';\n\n throw new Error(message);\n }\n }\n\n // Default View params\n view.params = extend({ el }, defaults, app.params.view, viewParams);\n\n // Routes\n if (view.params.routes.length > 0) {\n view.routes = view.params.routes;\n } else {\n view.routes = [].concat(app.routes, view.params.routesAdd);\n }\n\n // View Props\n extend(false, view, {\n app,\n name: view.params.name,\n main: view.params.main,\n history: [],\n scrollHistory: {},\n });\n\n // Install Modules\n view.useModules();\n\n // Add to app\n app.views.push(view);\n if (view.main) {\n app.views.main = view;\n }\n if (view.name) {\n app.views[view.name] = view;\n }\n\n // Index\n view.index = app.views.indexOf(view);\n\n // View ID\n let viewId;\n if (view.name) {\n viewId = `view_${view.name}`;\n } else if (view.main) {\n viewId = 'view_main';\n } else {\n viewId = `view_${view.index}`;\n }\n view.id = viewId;\n\n if (!view.params.init) {\n return view;\n }\n // Init View\n if (app.initialized) {\n view.init();\n } else {\n app.on('init', () => {\n view.init();\n });\n }\n\n return view;\n }\n\n destroy() {\n let view = this;\n const app = view.app;\n\n view.$el.trigger('view:beforedestroy');\n view.emit('local::beforeDestroy viewBeforeDestroy', view);\n\n app.off('resize', view.checkMasterDetailBreakpoint);\n\n if (view.main) {\n app.views.main = null;\n delete app.views.main;\n } else if (view.name) {\n app.views[view.name] = null;\n delete app.views[view.name];\n }\n view.$el[0].f7View = null;\n delete view.$el[0].f7View;\n\n app.views.splice(app.views.indexOf(view), 1);\n\n // Destroy Router\n if (view.params.router && view.router) {\n view.router.destroy();\n }\n\n view.emit('local::destroy viewDestroy', view);\n\n // Delete props & methods\n Object.keys(view).forEach((viewProp) => {\n view[viewProp] = null;\n delete view[viewProp];\n });\n\n view = null;\n }\n\n checkMasterDetailBreakpoint(force) {\n const view = this;\n const app = view.app;\n const wasMasterDetail = view.$el.hasClass('view-master-detail');\n const isMasterDetail =\n app.width >= view.params.masterDetailBreakpoint && view.$el.children('.page-master').length;\n if ((typeof force === 'undefined' && isMasterDetail) || force === true) {\n view.$el.addClass('view-master-detail');\n if (!wasMasterDetail) {\n view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view);\n view.$el.trigger('view:masterDetailBreakpoint');\n }\n } else {\n view.$el.removeClass('view-master-detail');\n if (wasMasterDetail) {\n view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view);\n view.$el.trigger('view:masterDetailBreakpoint');\n }\n }\n }\n\n initMasterDetail() {\n const view = this;\n const app = view.app;\n view.checkMasterDetailBreakpoint = view.checkMasterDetailBreakpoint.bind(view);\n view.checkMasterDetailBreakpoint();\n if (view.params.masterDetailResizable) {\n resizableView(view);\n }\n app.on('resize', view.checkMasterDetailBreakpoint);\n }\n\n mount(viewEl) {\n const view = this;\n const app = view.app;\n const el = view.params.el || viewEl;\n const $el = $(el);\n\n // Selector\n let selector;\n if (typeof el === 'string') selector = el;\n else {\n // Supposed to be HTMLElement or Dom7\n selector =\n ($el.attr('id') ? `#${$el.attr('id')}` : '') +\n ($el.attr('class')\n ? `.${$el.attr('class').replace(/ /g, '.').replace('.active', '')}`\n : '');\n }\n\n // DynamicNavbar\n let $navbarsEl;\n if (app.theme === 'ios' && view.params.iosDynamicNavbar) {\n $navbarsEl = $el.children('.navbars').eq(0);\n if ($navbarsEl.length === 0) {\n $navbarsEl = $('<div class=\"navbars\"></div>');\n }\n }\n\n extend(view, {\n $el,\n el: $el[0],\n main: view.main || $el.hasClass('view-main'),\n $navbarsEl,\n navbarsEl: $navbarsEl ? $navbarsEl[0] : undefined,\n selector,\n });\n\n if (view.main) {\n app.views.main = view;\n }\n\n // Save in DOM\n if ($el && $el[0]) {\n $el[0].f7View = view;\n }\n\n view.emit('local::mount viewMount', view);\n }\n\n init(viewEl) {\n const view = this;\n view.mount(viewEl);\n if (view.params.router) {\n if (view.params.masterDetailBreakpoint > 0) {\n view.initMasterDetail();\n }\n if (\n view.params.initRouterOnTabShow &&\n view.$el.hasClass('tab') &&\n !view.$el.hasClass('tab-active')\n ) {\n view.$el.once('tab:show', () => {\n view.router.init();\n });\n } else {\n view.router.init();\n }\n\n view.$el.trigger('view:init');\n view.emit('local::init viewInit', view);\n }\n }\n}\n\n// Use Router\nView.use(Router);\n\nexport default View;\n","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport ViewClass from '../../components/view/view-class.js';\n\nfunction initClicks(app) {\n function handleClicks(e) {\n const window = getWindow();\n const $clickedEl = $(e.target);\n const $clickedLinkEl = $clickedEl.closest('a');\n const isLink = $clickedLinkEl.length > 0;\n const url = isLink && $clickedLinkEl.attr('href');\n\n // Check if link is external\n if (isLink) {\n if (\n $clickedLinkEl.is(app.params.clicks.externalLinks) ||\n // eslint-disable-next-line\n (url && url.indexOf('javascript:') >= 0)\n ) {\n const target = $clickedLinkEl.attr('target');\n if (\n url &&\n window.cordova &&\n window.cordova.InAppBrowser &&\n (target === '_system' || target === '_blank')\n ) {\n e.preventDefault();\n window.cordova.InAppBrowser.open(url, target);\n } else if (\n url &&\n window.Capacitor &&\n window.Capacitor.Plugins &&\n window.Capacitor.Plugins.Browser &&\n (target === '_system' || target === '_blank')\n ) {\n e.preventDefault();\n window.Capacitor.Plugins.Browser.open({ url });\n }\n return;\n }\n }\n\n // Modules Clicks\n Object.keys(app.modules).forEach((moduleName) => {\n const moduleClicks = app.modules[moduleName].clicks;\n if (!moduleClicks) return;\n if (e.preventF7Router) return;\n Object.keys(moduleClicks).forEach((clickSelector) => {\n const matchingClickedElement = $clickedEl.closest(clickSelector).eq(0);\n if (matchingClickedElement.length > 0) {\n moduleClicks[clickSelector].call(\n app,\n matchingClickedElement,\n matchingClickedElement.dataset(),\n e,\n );\n }\n });\n });\n\n // Load Page\n let clickedLinkData = {};\n if (isLink) {\n e.preventDefault();\n clickedLinkData = $clickedLinkEl.dataset();\n }\n clickedLinkData.clickedEl = $clickedLinkEl[0];\n\n // Prevent Router\n if (e.preventF7Router) return;\n if ($clickedLinkEl.hasClass('prevent-router') || $clickedLinkEl.hasClass('router-prevent'))\n return;\n\n const validUrl = url && url.length > 0 && url[0] !== '#';\n if (validUrl || $clickedLinkEl.hasClass('back')) {\n let view;\n if (clickedLinkData.view && clickedLinkData.view === 'current') {\n view = app.views.current;\n } else if (clickedLinkData.view) {\n view = $(clickedLinkData.view)[0].f7View;\n } else {\n view = $clickedEl.parents('.view')[0] && $clickedEl.parents('.view')[0].f7View;\n if (!$clickedLinkEl.hasClass('back') && view && view.params.linksView) {\n if (typeof view.params.linksView === 'string') view = $(view.params.linksView)[0].f7View;\n else if (view.params.linksView instanceof ViewClass) view = view.params.linksView;\n }\n }\n if (!view) {\n if (app.views.main) view = app.views.main;\n }\n if (!view || !view.router) return;\n if ($clickedLinkEl[0].f7RouteProps) {\n clickedLinkData.props = $clickedLinkEl[0].f7RouteProps;\n }\n if ($clickedLinkEl.hasClass('back')) view.router.back(url, clickedLinkData);\n else view.router.navigate(url, clickedLinkData);\n }\n }\n\n app.on('click', handleClicks);\n}\nexport default {\n name: 'clicks',\n params: {\n clicks: {\n // External Links\n externalLinks: '.external',\n },\n },\n on: {\n init() {\n const app = this;\n initClicks(app);\n },\n },\n};\n","import { merge } from '../../shared/utils.js';\n\nexport default {\n name: 'routerComponentLoader',\n proto: {\n openIn(router, url, options) {\n const navigateOptions = {\n url,\n route: {\n path: url,\n options: {\n ...options,\n openIn: undefined,\n },\n },\n };\n const params = {\n ...options,\n };\n if (options.openIn === 'popup') {\n params.content = `<div class=\"popup popup-router-open-in\" data-url=\"${url}\"><div class=\"view view-init\" data-links-view=\"${router.view.selector}\" data-url=\"${url}\" data-ignore-open-in=\"true\"></div></div>`;\n navigateOptions.route.popup = params;\n }\n if (options.openIn === 'loginScreen') {\n params.content = `<div class=\"login-screen login-screen-router-open-in\" data-url=\"${url}\"><div class=\"view view-init\" data-links-view=\"${router.view.selector}\" data-url=\"${url}\" data-ignore-open-in=\"true\"></div></div>`;\n navigateOptions.route.loginScreen = params;\n }\n if (options.openIn === 'sheet') {\n params.content = `<div class=\"sheet-modal sheet-modal-router-open-in\" data-url=\"${url}\"><div class=\"sheet-modal-inner\"><div class=\"view view-init\" data-links-view=\"${router.view.selector}\" data-url=\"${url}\" data-ignore-open-in=\"true\"></div></div></div>`;\n navigateOptions.route.sheet = params;\n }\n if (options.openIn === 'popover') {\n params.targetEl = options.clickedEl || options.targetEl;\n params.content = `<div class=\"popover popover-router-open-in\" data-url=\"${url}\"><div class=\"popover-inner\"><div class=\"view view-init\" data-links-view=\"${router.view.selector}\" data-url=\"${url}\" data-ignore-open-in=\"true\"></div></div></div>`;\n navigateOptions.route.popover = params;\n }\n if (options.openIn.indexOf('panel') >= 0) {\n const parts = options.openIn.split(':');\n const side = parts[1] || 'left';\n const effect = parts[2] || 'cover';\n params.targetEl = options.clickedEl || options.targetEl;\n params.content = `<div class=\"panel panel-router-open-in panel-${side} panel-${effect}\" data-url=\"${url}\"><div class=\"view view-init\" data-links-view=\"${router.view.selector}\" data-url=\"${url}\" data-ignore-open-in=\"true\"></div></div>`;\n navigateOptions.route.panel = params;\n }\n return router.navigate(navigateOptions);\n },\n componentLoader(component, componentUrl, options = {}, resolve, reject) {\n const router = this;\n const { app } = router;\n const url = typeof component === 'string' ? component : componentUrl;\n const compiledUrl = router.replaceRequestUrlParams(url, options);\n function compile(componentFunction) {\n let context = options.context || {};\n if (typeof context === 'function') context = context.call(router);\n else if (typeof context === 'string') {\n try {\n context = JSON.parse(context);\n } catch (err) {\n reject(err);\n throw err;\n }\n }\n const componentContext = merge({}, context, {\n f7route: options.route,\n f7router: router,\n });\n const componentProps = merge(\n options.route ? options.route.params || {} : {},\n options.props || {},\n options.routeProps || {},\n );\n let componentEl;\n let componentRoot;\n if (options.componentOptions && options.componentOptions.el) {\n componentEl = options.componentOptions.el;\n }\n if (options.componentOptions && options.componentOptions.root) {\n componentRoot = options.componentOptions.root;\n }\n app.component\n .create(componentFunction, componentProps, {\n context: componentContext,\n el: componentEl,\n root: componentRoot,\n })\n .then((createdComponent) => {\n resolve(createdComponent.el);\n })\n .catch((err) => {\n reject(err);\n throw new Error(err);\n });\n }\n let cachedComponent;\n if (compiledUrl && router.params.componentCache) {\n router.cache.components.forEach((cached) => {\n if (cached.url === compiledUrl) cachedComponent = cached.component;\n });\n }\n if (compiledUrl && cachedComponent) {\n compile(cachedComponent);\n } else if (compiledUrl && !cachedComponent) {\n // Load via XHR\n if (router.xhrAbortController) {\n router.xhrAbortController.abort();\n router.xhrAbortController = false;\n }\n router\n .xhrRequest(url, options)\n .then((loadedComponent) => {\n const parsedComponent = app.component.parse(loadedComponent);\n if (router.params.componentCache) {\n router.cache.components.push({\n url: compiledUrl,\n component: parsedComponent,\n });\n }\n compile(parsedComponent);\n })\n .catch((err) => {\n reject();\n throw err;\n });\n } else {\n compile(component);\n }\n },\n\n modalComponentLoader({ component, componentUrl, options, resolve, reject } = {}) {\n const router = this;\n router.componentLoader(\n component,\n componentUrl,\n options,\n (el) => {\n resolve(el);\n },\n reject,\n );\n },\n\n tabComponentLoader({ component, componentUrl, options, resolve, reject } = {}) {\n const router = this;\n router.componentLoader(\n component,\n componentUrl,\n options,\n (el) => {\n resolve(el);\n },\n reject,\n );\n },\n\n pageComponentLoader({ component, componentUrl, options, resolve, reject } = {}) {\n const router = this;\n router.componentLoader(\n component,\n componentUrl,\n options,\n (el, newOptions = {}) => {\n resolve(el, newOptions);\n },\n reject,\n );\n },\n },\n};\n","var n=function(t,s,r,e){var u;s[0]=0;for(var h=1;h<s.length;h++){var p=s[h++],a=s[h]?(s[0]|=p?1:2,r[s[h++]]):s[++h];3===p?e[0]=a:4===p?e[1]=Object.assign(e[1]||{},a):5===p?(e[1]=e[1]||{})[s[++h]]=a:6===p?e[1][s[++h]]+=a+\"\":p?(u=t.apply(a,n(t,a,r,[\"\",null])),e.push(u),a[0]?s[0]|=2:(s[h-2]=0,s[h]=u)):e.push(a)}return e},t=new Map;export default function(s){var r=t.get(this);return r||(r=new Map,t.set(this,r)),(r=n(this,r.get(s)||(r.set(s,r=function(n){for(var t,s,r=1,e=\"\",u=\"\",h=[0],p=function(n){1===r&&(n||(e=e.replace(/^\\s*\\n\\s*|\\s*\\n\\s*$/g,\"\")))?h.push(0,n,e):3===r&&(n||e)?(h.push(3,n,e),r=2):2===r&&\"...\"===e&&n?h.push(4,n,0):2===r&&e&&!n?h.push(5,0,!0,e):r>=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<n.length;a++){a&&(1===r&&p(),p(a));for(var l=0;l<n[a].length;l++)t=n[a][l],1===r?\"<\"===t?(p(),h=[h],r=3):e+=t:4===r?\"--\"===e&&\">\"===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.js';\n\nconst ignoreChildren = [false, null, '', undefined];\n\nconst h = (type, props, ...children) => {\n return {\n type,\n props: props || {},\n children: flattenArray(children.filter((child) => ignoreChildren.indexOf(child) < 0)),\n };\n};\n\nconst $h = htm.bind(h);\n\nexport default $h;\n","export function vnode(sel, data, children, text, elm) {\n var key = data === undefined ? undefined : data.key;\n return { sel: sel, data: data, children: children,\n text: text, elm: elm, key: key };\n}\nexport default vnode;\n//# sourceMappingURL=vnode.js.map","export var array = Array.isArray;\nexport function primitive(s) {\n return typeof s === 'string' || typeof s === 'number';\n}\n//# sourceMappingURL=is.js.map","import { vnode } from './vnode.js';\nimport * as is from './is';\nfunction addNS(data, children, sel) {\n data.ns = 'http://www.w3.org/2000/svg';\n if (sel !== 'foreignObject' && children !== undefined) {\n for (var i = 0; i < children.length; ++i) {\n var childData = children[i].data;\n if (childData !== undefined) {\n addNS(childData, children[i].children, children[i].sel);\n }\n }\n }\n}\nexport function h(sel, b, c) {\n var data = {}, children, text, i;\n if (c !== undefined) {\n data = b;\n if (is.array(c)) {\n children = c;\n }\n else if (is.primitive(c)) {\n text = c;\n }\n else if (c && c.sel) {\n children = [c];\n }\n }\n else if (b !== undefined) {\n if (is.array(b)) {\n children = b;\n }\n else if (is.primitive(b)) {\n text = b;\n }\n else if (b && b.sel) {\n children = [b];\n }\n else {\n data = b;\n }\n }\n if (is.array(children)) {\n for (i = 0; i < children.length; ++i) {\n if (is.primitive(children[i]))\n children[i] = vnode(undefined, undefined, undefined, children[i], undefined);\n }\n }\n if (sel[0] === 's' && sel[1] === 'v' && sel[2] === 'g' &&\n (sel.length === 3 || sel[3] === '.' || sel[3] === '#')) {\n addNS(data, children, sel);\n }\n return vnode(sel, data, children, text, undefined);\n}\n;\nexport default h;\n//# sourceMappingURL=h.js.map\n","export default {};\n","/* eslint no-use-before-define: \"off\" */\n/* eslint import/no-named-as-default: \"off\" */\nimport h from './snabbdom/h.js';\nimport customComponents from './custom-components.js';\nimport { isObject, eventNameToColonCase } from '../../shared/utils.js';\n\nconst SELF_CLOSING =\n 'area base br col command embed hr img input keygen link menuitem meta param source track wbr'.split(\n ' ',\n );\nconst PROPS_ATTRS =\n 'hidden checked disabled readonly selected autofocus autoplay required multiple value indeterminate routeProps innerHTML'.split(\n ' ',\n );\nconst BOOLEAN_PROPS =\n 'hidden checked disabled readonly selected autofocus autoplay required multiple readOnly indeterminate'.split(\n ' ',\n );\n\nconst getTagName = (treeNode) => {\n return typeof treeNode.type === 'function'\n ? treeNode.type.name || 'CustomComponent'\n : treeNode.type;\n};\n\nconst toCamelCase = (name) => {\n return name\n .split('-')\n .map((word, index) => {\n if (index === 0) return word.toLowerCase();\n return word[0].toUpperCase() + word.substr(1);\n })\n .join('');\n};\nconst propsFromAttrs = (...args) => {\n const context = {};\n args.forEach((obj = {}) => {\n Object.keys(obj).forEach((key) => {\n context[toCamelCase(key)] = obj[key];\n });\n });\n\n return context;\n};\n\nconst createCustomComponent = ({ f7, treeNode, vnode, data }) => {\n const component =\n typeof treeNode.type === 'function' ? treeNode.type : customComponents[treeNode.type];\n f7.component\n .create(component, propsFromAttrs(data.attrs || {}, data.props || {}), {\n el: vnode.elm,\n children: treeNode.children,\n })\n .then((c) => {\n if (vnode.data && vnode.data.on && c && c.$el) {\n Object.keys(vnode.data.on).forEach((eventName) => {\n c.$el.on(eventName, vnode.data.on[eventName]);\n });\n }\n // eslint-disable-next-line\n vnode.elm.__component__ = c;\n });\n};\nconst updateCustomComponent = (vnode) => {\n // eslint-disable-next-line\n const component = vnode && vnode.elm && vnode.elm.__component__;\n if (!component) return;\n const 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};\nconst destroyCustomComponent = (vnode) => {\n // eslint-disable-next-line\n const component = vnode && vnode.elm && vnode.elm.__component__;\n\n if (component) {\n const { el, $el } = component;\n if (vnode.data && vnode.data.on && $el) {\n Object.keys(vnode.data.on).forEach((eventName) => {\n $el.off(eventName, vnode.data.on[eventName]);\n });\n }\n if (component.destroy) component.destroy();\n if (el && el.parentNode) el.parentNode.removeChild(el);\n delete vnode.elm.__component__; // eslint-disable-line\n }\n};\n\nconst isCustomComponent = (treeNodeType) => {\n return (\n typeof treeNodeType === 'function' ||\n (treeNodeType && treeNodeType.indexOf('-') > 0 && customComponents[treeNodeType])\n );\n};\n\nfunction getHooks(treeNode, data, f7, initial, isRoot) {\n const hooks = {};\n const insert = [];\n const destroy = [];\n const update = [];\n const postpatch = [];\n let isFakeElement = false;\n let tagName = getTagName(treeNode);\n if (data && data.attrs && data.attrs.component) {\n tagName = data.attrs.component;\n delete data.attrs.component;\n isFakeElement = true;\n }\n\n const isCustom = isCustomComponent(treeNode.type);\n\n if (isCustom) {\n insert.push((vnode) => {\n if (vnode.sel !== tagName && !isFakeElement) return;\n createCustomComponent({ f7, treeNode, vnode, data });\n });\n destroy.push((vnode) => {\n destroyCustomComponent(vnode);\n });\n update.push((oldVnode, vnode) => {\n updateCustomComponent(vnode);\n });\n }\n\n if (!isCustom) {\n if (!data || !data.attrs || !data.attrs.class) return hooks;\n\n const classNames = data.attrs.class;\n classNames.split(' ').forEach((className) => {\n if (!initial) {\n insert.push(...f7.getVnodeHooks('insert', className));\n }\n destroy.push(...f7.getVnodeHooks('destroy', className));\n update.push(...f7.getVnodeHooks('update', className));\n postpatch.push(...f7.getVnodeHooks('postpatch', className));\n });\n }\n\n if (isRoot && !initial) {\n postpatch.push((oldVnode, vnode) => {\n const vn = vnode || oldVnode;\n if (!vn) return;\n if (vn.data && vn.data.component) {\n vn.data.component.hook('onUpdated');\n }\n });\n }\n if (\n insert.length === 0 &&\n destroy.length === 0 &&\n update.length === 0 &&\n postpatch.length === 0\n ) {\n return hooks;\n }\n\n if (insert.length) {\n hooks.insert = (vnode) => {\n insert.forEach((f) => f(vnode));\n };\n }\n if (destroy.length) {\n hooks.destroy = (vnode) => {\n destroy.forEach((f) => f(vnode));\n };\n }\n if (update.length) {\n hooks.update = (oldVnode, vnode) => {\n update.forEach((f) => f(oldVnode, vnode));\n };\n }\n if (postpatch.length) {\n hooks.postpatch = (oldVnode, vnode) => {\n postpatch.forEach((f) => f(oldVnode, vnode));\n };\n }\n\n return hooks;\n}\nconst getEventHandler = (eventHandler, { stop, prevent, once } = {}) => {\n let fired = false;\n\n function handler(...args) {\n const e = args[0];\n if (once && fired) return;\n if (stop) e.stopPropagation();\n if (prevent) e.preventDefault();\n fired = true;\n\n eventHandler(...args);\n }\n\n return handler;\n};\n\nconst getData = (treeNode, component, f7, initial, isRoot) => {\n const data = { component, treeNode };\n const tagName = getTagName(treeNode);\n Object.keys(treeNode.props).forEach((attrName) => {\n const attrValue = treeNode.props[attrName];\n if (typeof attrValue === 'undefined') return;\n if (PROPS_ATTRS.indexOf(attrName) >= 0) {\n // Props\n if (!data.props) data.props = {};\n if (attrName === 'readonly') {\n // eslint-disable-next-line\n attrName = 'readOnly';\n }\n if (attrName === 'routeProps') {\n // eslint-disable-next-line\n attrName = 'f7RouteProps';\n }\n if (tagName === 'option' && attrName === 'value') {\n if (!data.attrs) data.attrs = {};\n data.attrs.value = attrValue;\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 (\n attrName.indexOf('@') === 0 ||\n (attrName.indexOf('on') === 0 && attrName.length > 2)\n ) {\n // Events\n if (!data.on) data.on = {};\n let eventName =\n attrName.indexOf('@') === 0 ? attrName.substr(1) : eventNameToColonCase(attrName.substr(2));\n let stop = false;\n let prevent = false;\n let once = false;\n if (eventName.indexOf('.') >= 0) {\n eventName.split('.').forEach((eventNamePart, eventNameIndex) => {\n if (eventNameIndex === 0) eventName = eventNamePart;\n else {\n if (eventNamePart === 'stop') stop = true;\n if (eventNamePart === 'prevent') prevent = true;\n if (eventNamePart === 'once') once = true;\n }\n });\n }\n data.on[eventName] = getEventHandler(attrValue, { stop, prevent, once });\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;\n\n // ID -> Key\n if (attrName === 'id' && !data.key && !isRoot) {\n data.key = attrValue;\n }\n }\n });\n\n const hooks = getHooks(treeNode, data, f7, initial, isRoot);\n\n hooks.prepatch = (oldVnode, vnode) => {\n if (!oldVnode || !vnode) return;\n if (oldVnode && oldVnode.data && oldVnode.data.props) {\n Object.keys(oldVnode.data.props).forEach((key) => {\n if (BOOLEAN_PROPS.indexOf(key) < 0) return;\n if (!vnode.data) vnode.data = {};\n if (!vnode.data.props) vnode.data.props = {};\n if (oldVnode.data.props[key] === true && !(key in vnode.data.props)) {\n vnode.data.props[key] = false;\n }\n });\n }\n };\n\n data.hook = hooks;\n\n return data;\n};\n\nconst getChildren = (treeNode, component, f7, initial) => {\n if (treeNode && treeNode.type && SELF_CLOSING.indexOf(treeNode.type) >= 0) {\n return [];\n }\n const children = [];\n const nodes = treeNode.children;\n for (let i = 0; i < nodes.length; i += 1) {\n const childNode = nodes[i];\n const child = treeNodeToVNode(childNode, component, f7, initial, false);\n if (Array.isArray(child)) {\n children.push(...child);\n } else if (child) {\n children.push(child);\n }\n }\n return children;\n};\n\nconst getSlots = (treeNode, component, f7, initial) => {\n const slotName = treeNode.props.name || 'default';\n const slotNodes = (component.children || []).filter((childTreeNode) => {\n let childSlotName = 'default';\n if (childTreeNode.props) {\n childSlotName = childTreeNode.props.slot || 'default';\n }\n return childSlotName === slotName;\n });\n if (slotNodes.length === 0) {\n return getChildren(treeNode, component, f7, initial);\n }\n return slotNodes.map((subTreeNode) => treeNodeToVNode(subTreeNode, component, f7, initial));\n};\n\nconst isTreeNode = (treeNode) => {\n return isObject(treeNode) && 'props' in treeNode && 'type' in treeNode && 'children' in treeNode;\n};\n\nconst treeNodeToVNode = (treeNode, component, f7, initial, isRoot) => {\n if (!isTreeNode(treeNode)) {\n return String(treeNode);\n }\n if (treeNode.type === 'slot') {\n return getSlots(treeNode, component, f7, initial);\n }\n const data = getData(treeNode, component, f7, initial, isRoot);\n const children = isCustomComponent(treeNode.type)\n ? []\n : getChildren(treeNode, component, f7, initial);\n\n return h(getTagName(treeNode), data, children);\n};\n\nexport default function vdom(tree = {}, component, initial) {\n return treeNodeToVNode(tree, component, component.f7, initial, true);\n}\n","function createElement(tagName) {\n return document.createElement(tagName);\n}\nfunction createElementNS(namespaceURI, qualifiedName) {\n return document.createElementNS(namespaceURI, qualifiedName);\n}\nfunction createTextNode(text) {\n return document.createTextNode(text);\n}\nfunction createComment(text) {\n return document.createComment(text);\n}\nfunction insertBefore(parentNode, newNode, referenceNode) {\n if (referenceNode && referenceNode.parentNode !== parentNode) {\n if (referenceNode.__component__) referenceNode = referenceNode.__component__.el;\n }\n parentNode.insertBefore(newNode, referenceNode);\n}\nfunction removeChild(node, child) {\n if (!node) return;\n node.removeChild(child);\n}\nfunction appendChild(node, child) {\n node.appendChild(child);\n}\nfunction parentNode(node) {\n return node.parentNode;\n}\nfunction nextSibling(node) {\n return node.nextSibling;\n}\nfunction tagName(elm) {\n return elm.tagName;\n}\nfunction setTextContent(node, text) {\n node.textContent = text;\n}\nfunction getTextContent(node) {\n return node.textContent;\n}\nfunction isElement(node) {\n return node.nodeType === 1;\n}\nfunction isText(node) {\n return node.nodeType === 3;\n}\nfunction isComment(node) {\n return node.nodeType === 8;\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;\n//# sourceMappingURL=htmldomapi.js.map\n","import vnode from './vnode.js';\nimport * as is from './is.js';\nimport htmlDomApi from './htmldomapi.js';\nfunction isUndef(s) { return s === undefined; }\nfunction isDef(s) { return s !== undefined; }\nvar emptyNode = vnode('', {}, [], undefined, undefined);\nfunction sameVnode(vnode1, vnode2) {\n return vnode1.key === vnode2.key && vnode1.sel === vnode2.sel;\n}\nfunction isVnode(vnode) {\n return vnode.sel !== undefined;\n}\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\n var i, map = {}, key, ch;\n for (i = beginIdx; i <= endIdx; ++i) {\n ch = children[i];\n if (ch != null) {\n key = ch.key;\n if (key !== undefined)\n map[key] = i;\n }\n }\n return map;\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, j, cbs = {};\n var api = domApi !== undefined ? domApi : htmlDomApi;\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n var hook = modules[j][hooks[i]];\n if (hook !== undefined) {\n cbs[hooks[i]].push(hook);\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 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 function createElm(vnode, insertedVnodeQueue) {\n var i, data = vnode.data;\n if (data !== undefined) {\n if (isDef(i = data.hook) && isDef(i = i.init)) {\n i(vnode);\n data = vnode.data;\n }\n }\n var children = vnode.children, sel = vnode.sel;\n if (sel === '!') {\n if (isUndef(vnode.text)) {\n vnode.text = '';\n }\n vnode.elm = api.createComment(vnode.text);\n }\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)\n : api.createElement(tag);\n if (hash < dot)\n elm.setAttribute('id', sel.slice(hash + 1, dot));\n if (dotIdx > 0)\n elm.setAttribute('class', sel.slice(dot + 1).replace(/\\./g, ' '));\n for (i = 0; i < cbs.create.length; ++i)\n cbs.create[i](emptyNode, vnode);\n if (is.array(children)) {\n for (i = 0; i < children.length; ++i) {\n var ch = children[i];\n if (ch != null) {\n api.appendChild(elm, createElm(ch, insertedVnodeQueue));\n }\n }\n }\n else if (is.primitive(vnode.text)) {\n api.appendChild(elm, api.createTextNode(vnode.text));\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (i.create)\n i.create(emptyNode, vnode);\n if (i.insert)\n insertedVnodeQueue.push(vnode);\n }\n }\n else {\n vnode.elm = api.createTextNode(vnode.text);\n }\n return vnode.elm;\n }\n function addVnodes(parentElm, before, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (ch != null) {\n api.insertBefore(parentElm, createElm(ch, insertedVnodeQueue), before);\n }\n }\n }\n function invokeDestroyHook(vnode) {\n var i, j, data = vnode.data;\n if (data !== undefined) {\n if (isDef(i = data.hook) && isDef(i = i.destroy))\n i(vnode);\n for (i = 0; i < cbs.destroy.length; ++i)\n cbs.destroy[i](vnode);\n if (vnode.children !== undefined) {\n for (j = 0; j < vnode.children.length; ++j) {\n i = vnode.children[j];\n if (i != null && typeof i !== \"string\") {\n invokeDestroyHook(i);\n }\n }\n }\n }\n }\n function removeVnodes(parentElm, vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var i_1 = void 0, listeners = void 0, rm = void 0, ch = vnodes[startIdx];\n if (ch != null) {\n if (isDef(ch.sel)) {\n invokeDestroyHook(ch);\n listeners = cbs.remove.length + 1;\n rm = createRmCb(ch.elm, listeners);\n for (i_1 = 0; i_1 < cbs.remove.length; ++i_1)\n cbs.remove[i_1](ch, rm);\n if (isDef(i_1 = ch.data) && isDef(i_1 = i_1.hook) && isDef(i_1 = i_1.remove)) {\n i_1(ch, rm);\n }\n else {\n rm();\n }\n }\n else {\n api.removeChild(parentElm, ch.elm);\n }\n }\n }\n }\n function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue) {\n var oldStartIdx = 0, newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx;\n var idxInOld;\n var elmToMove;\n var before;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode might have been moved left\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldStartVnode, newEndVnode)) {\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);\n api.insertBefore(parentElm, oldStartVnode.elm, api.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldEndVnode, newStartVnode)) {\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);\n api.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n if (oldKeyToIdx === undefined) {\n oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n }\n idxInOld = oldKeyToIdx[newStartVnode.key];\n if (isUndef(idxInOld)) {\n api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm);\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n elmToMove = oldCh[idxInOld];\n if (elmToMove.sel !== newStartVnode.sel) {\n api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm);\n }\n else {\n patchVnode(elmToMove, newStartVnode, insertedVnodeQueue);\n oldCh[idxInOld] = undefined;\n api.insertBefore(parentElm, elmToMove.elm, oldStartVnode.elm);\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n }\n if (oldStartIdx <= oldEndIdx || newStartIdx <= newEndIdx) {\n if (oldStartIdx > oldEndIdx) {\n before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n }\n else {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n }\n }\n }\n function patchVnode(oldVnode, vnode, insertedVnodeQueue) {\n var i, hook;\n if (isDef(i = vnode.data) && isDef(hook = i.hook) && isDef(i = hook.prepatch)) {\n i(oldVnode, vnode);\n }\n var elm = vnode.elm = oldVnode.elm;\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (oldVnode === vnode)\n return;\n if (vnode.data !== undefined) {\n for (i = 0; i < cbs.update.length; ++i)\n cbs.update[i](oldVnode, vnode);\n i = vnode.data.hook;\n if (isDef(i) && isDef(i = i.update))\n i(oldVnode, vnode);\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch)\n updateChildren(elm, oldCh, ch, insertedVnodeQueue);\n }\n else if (isDef(ch)) {\n if (isDef(oldVnode.text))\n api.setTextContent(elm, '');\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n }\n else if (isDef(oldCh)) {\n removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n }\n else if (isDef(oldVnode.text)) {\n api.setTextContent(elm, '');\n }\n }\n else if (oldVnode.text !== vnode.text) {\n api.setTextContent(elm, vnode.text);\n }\n if (isDef(hook) && isDef(i = hook.postpatch)) {\n i(oldVnode, vnode);\n }\n }\n return function patch(oldVnode, vnode) {\n var i, elm, parent;\n var insertedVnodeQueue = [];\n for (i = 0; i < cbs.pre.length; ++i)\n cbs.pre[i]();\n if (!isVnode(oldVnode)) {\n oldVnode = emptyNodeAt(oldVnode);\n }\n if (sameVnode(oldVnode, vnode)) {\n patchVnode(oldVnode, vnode, insertedVnodeQueue);\n }\n else {\n elm = oldVnode.elm;\n parent = api.parentNode(elm);\n createElm(vnode, insertedVnodeQueue);\n if (parent !== null) {\n api.insertBefore(parent, vnode.elm, api.nextSibling(elm));\n removeVnodes(parent, [oldVnode], 0, 0);\n }\n }\n for (i = 0; i < insertedVnodeQueue.length; ++i) {\n insertedVnodeQueue[i].data.hook.insert(insertedVnodeQueue[i]);\n }\n for (i = 0; i < cbs.post.length; ++i)\n cbs.post[i]();\n return vnode;\n };\n}\n//# sourceMappingURL=snabbdom.js.map\n","var xlinkNS = 'http://www.w3.org/1999/xlink';\nvar xmlNS = 'http://www.w3.org/XML/1998/namespace';\nvar colonChar = 58;\nvar xChar = 120;\nfunction updateAttrs(oldVnode, vnode) {\n var key, elm = vnode.elm, oldAttrs = oldVnode.data.attrs, attrs = vnode.data.attrs;\n if (!oldAttrs && !attrs)\n return;\n if (oldAttrs === attrs)\n return;\n oldAttrs = oldAttrs || {};\n attrs = attrs || {};\n // update modified attributes, add new attributes\n for (key in attrs) {\n var cur = attrs[key];\n var old = oldAttrs[key];\n if (old !== cur) {\n if (cur === true) {\n elm.setAttribute(key, \"\");\n }\n else if (cur === false) {\n elm.removeAttribute(key);\n }\n else {\n if (key.charCodeAt(0) !== xChar) {\n elm.setAttribute(key, cur);\n }\n else if (key.charCodeAt(3) === colonChar) {\n // Assume xml namespace\n elm.setAttributeNS(xmlNS, key, cur);\n }\n else if (key.charCodeAt(5) === colonChar) {\n // Assume xlink namespace\n elm.setAttributeNS(xlinkNS, key, cur);\n }\n else {\n elm.setAttribute(key, cur);\n }\n }\n }\n }\n // remove removed attributes\n // use `in` operator since the previous `for` iteration uses it (.i.e. add even attributes with undefined value)\n // the other option is to remove all attributes with value == undefined\n for (key in oldAttrs) {\n if (!(key in attrs)) {\n elm.removeAttribute(key);\n }\n }\n}\nexport var attributesModule = { create: updateAttrs, update: updateAttrs };\nexport default attributesModule;\n//# sourceMappingURL=attributes.js.map","function updateProps(oldVnode, vnode) {\n var key, cur, old, elm = vnode.elm, oldProps = oldVnode.data.props, props = vnode.data.props;\n if (!oldProps && !props)\n return;\n if (oldProps === props)\n return;\n oldProps = oldProps || {};\n props = props || {};\n for (key in oldProps) {\n if (!props[key]) {\n delete elm[key];\n }\n }\n for (key in props) {\n cur = props[key];\n old = oldProps[key];\n if (old !== cur && (key !== 'value' || elm[key] !== cur)) {\n elm[key] = cur;\n }\n }\n}\nexport var propsModule = { create: updateProps, update: updateProps };\nexport default propsModule;\n//# sourceMappingURL=props.js.map","var raf = (typeof window !== 'undefined' && window.requestAnimationFrame) || setTimeout;\nvar nextFrame = function (fn) { raf(function () { raf(fn); }); };\nfunction setNextFrame(obj, prop, val) {\n nextFrame(function () { obj[prop] = val; });\n}\nfunction updateStyle(oldVnode, vnode) {\n var cur, name, elm = vnode.elm, oldStyle = oldVnode.data.style, style = vnode.data.style;\n if (!oldStyle && !style)\n return;\n if (oldStyle === style)\n return;\n oldStyle = oldStyle || {};\n style = style || {};\n var oldHasDel = 'delayed' in oldStyle;\n for (name in oldStyle) {\n if (!style[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.removeProperty(name);\n }\n else {\n elm.style[name] = '';\n }\n }\n }\n for (name in style) {\n cur = style[name];\n if (name === 'delayed' && style.delayed) {\n for (var name2 in style.delayed) {\n cur = style.delayed[name2];\n if (!oldHasDel || cur !== oldStyle.delayed[name2]) {\n setNextFrame(elm.style, name2, cur);\n }\n }\n }\n else if (name !== 'remove' && cur !== oldStyle[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.setProperty(name, cur);\n }\n else {\n elm.style[name] = cur;\n }\n }\n }\n}\nfunction applyDestroyStyle(vnode) {\n var style, name, elm = vnode.elm, s = vnode.data.style;\n if (!s || !(style = s.destroy))\n return;\n for (name in style) {\n elm.style[name] = style[name];\n }\n}\nfunction applyRemoveStyle(vnode, rm) {\n var s = vnode.data.style;\n if (!s || !s.remove) {\n rm();\n return;\n }\n var name, elm = vnode.elm, i = 0, compStyle, style = s.remove, amount = 0, applied = [];\n for (name in style) {\n applied.push(name);\n elm.style[name] = style[name];\n }\n compStyle = getComputedStyle(elm);\n var props = compStyle['transition-property'].split(', ');\n for (; i < props.length; ++i) {\n if (applied.indexOf(props[i]) !== -1)\n amount++;\n }\n elm.addEventListener('transitionend', function (ev) {\n if (ev.target === elm)\n --amount;\n if (amount === 0)\n rm();\n });\n}\nexport var styleModule = {\n create: updateStyle,\n update: updateStyle,\n destroy: applyDestroyStyle,\n remove: applyRemoveStyle\n};\nexport default styleModule;\n//# sourceMappingURL=style.js.map","import $ from '../../shared/dom7.js';\n\nfunction invokeHandler(handler, event, args) {\n if (typeof handler === 'function') {\n // call function handler\n handler(event, ...args);\n }\n}\nfunction handleEvent(event, args, vnode) {\n const name = event.type;\n const on = vnode.data.on;\n // call event handler(s) if exists\n if (on && on[name]) {\n invokeHandler(on[name], event, args, vnode);\n }\n}\nfunction createListener() {\n return function handler(event, ...args) {\n handleEvent(event, args, handler.vnode);\n };\n}\nfunction updateEvents(oldVnode, vnode) {\n const oldOn = oldVnode.data.on;\n const oldListener = oldVnode.listener;\n const oldElm = oldVnode.elm;\n const on = vnode && vnode.data.on;\n const elm = vnode && vnode.elm;\n // optimization for reused immutable handlers\n if (oldOn === on) {\n return;\n }\n // remove existing listeners which no longer used\n if (oldOn && oldListener) {\n // if element changed or deleted we remove all existing listeners unconditionally\n if (!on) {\n Object.keys(oldOn).forEach((name) => {\n $(oldElm).off(name, oldListener);\n });\n } else {\n Object.keys(oldOn).forEach((name) => {\n if (!on[name]) {\n $(oldElm).off(name, oldListener);\n }\n });\n }\n }\n // add new listeners which has not already attached\n if (on) {\n // reuse existing listener or create new\n const listener = oldVnode.listener || createListener();\n vnode.listener = listener;\n // update vnode for listener\n listener.vnode = vnode;\n // if element changed or added we add all needed listeners unconditionally\n if (!oldOn) {\n Object.keys(on).forEach((name) => {\n $(elm).on(name, listener);\n });\n } else {\n Object.keys(on).forEach((name) => {\n if (!oldOn[name]) {\n $(elm).on(name, listener);\n }\n });\n }\n }\n}\n\nexport default {\n create: updateEvents,\n update: updateEvents,\n destroy: updateEvents,\n};\n","/* eslint import/no-named-as-default: off */\nimport { init } from './snabbdom/snabbdom.js';\nimport attributesModule from './snabbdom/modules/attributes.js';\nimport propsModule from './snabbdom/modules/props.js';\nimport styleModule from './snabbdom/modules/style.js';\nimport eventListenersModule from './eventslisteners.js';\n\nconst patch = init([attributesModule, propsModule, styleModule, eventListenersModule]);\n\nexport default patch;\n","/* eslint no-underscore-dangle: \"off\" */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport $h from './$h.js';\nimport { id as generateId, merge, eventNameToColonCase, deleteProps } from '../../shared/utils.js';\nimport vdom from './vdom.js';\nimport patch from './patch.js';\n\nclass Component {\n constructor(app, component, props = {}, { el, context, children } = {}) {\n const 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 const createComponent = () => {\n return component(this.props, this.getComponentContext(true));\n };\n\n const getRenderFuncion = (componentResult) =>\n new Promise((resolve, reject) => {\n if (typeof componentResult === 'function') {\n resolve(componentResult);\n } else if (componentResult instanceof Promise) {\n componentResult\n .then((render) => {\n resolve(render);\n })\n .catch((err) => {\n reject(err);\n });\n } else {\n reject(\n new Error(\n 'Framework7: Component render function is not a \"function\" type. Didn\\'t you forget to \"return $render\"?',\n ),\n );\n }\n });\n\n return new Promise((resolve, reject) => {\n const componentResult = createComponent();\n getRenderFuncion(componentResult)\n .then((render) => {\n this.renderFunction = render;\n\n const tree = this.render();\n\n if (el) {\n this.vnode = vdom(tree, this, true);\n if (this.style) {\n this.styleEl = document.createElement('style');\n this.styleEl.innerHTML = this.style;\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 this.el.f7Component = this;\n this.mount();\n resolve(this);\n return;\n }\n // Make Dom\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 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 })\n .catch((err) => {\n reject(err);\n });\n });\n }\n\n on(eventName, handler) {\n if (!this.__eventHandlers) return;\n this.__eventHandlers.push({ eventName, handler });\n }\n\n once(eventName, handler) {\n if (!this.__eventHandlers) return;\n this.__onceEventHandlers.push({ eventName, handler });\n }\n\n getComponentRef() {\n const self = this;\n return (initialValue) => {\n let value = initialValue;\n const obj = {};\n Object.defineProperty(obj, 'value', {\n get() {\n return value;\n },\n set(v) {\n value = v;\n self.update();\n },\n });\n return obj;\n };\n }\n\n getComponentStore() {\n const { state, _gettersPlain, dispatch } = this.f7.store;\n const $store = {\n state,\n dispatch,\n };\n $store.getters = new Proxy(_gettersPlain, {\n get: (target, prop) => {\n const obj = target[prop];\n const callback = (v) => {\n obj.value = v;\n this.update();\n };\n obj.onUpdated(callback);\n return obj;\n },\n });\n\n return $store;\n }\n\n getComponentContext(includeHooks) {\n const ctx = {\n $f7route: this.context.f7route,\n $f7router: this.context.f7router,\n $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 $ref: this.getComponentRef(),\n $el: {},\n };\n Object.defineProperty(ctx.$el, 'value', {\n get: () => {\n return this.$el;\n },\n });\n if (includeHooks)\n Object.assign(ctx, {\n $on: this.on.bind(this),\n $once: this.once.bind(this),\n $onBeforeMount: (handler) => this.__onBeforeMount.push(handler),\n $onMounted: (handler) => this.__onMounted.push(handler),\n $onBeforeUpdate: (handler) => this.__onBeforeUpdate.push(handler),\n $onUpdated: (handler) => this.__onUpdated.push(handler),\n $onBeforeUnmount: (handler) => this.__onBeforeUnmount.push(handler),\n $onUnmounted: (handler) => this.__onUnmounted.push(handler),\n });\n\n return ctx;\n }\n\n render() {\n return this.renderFunction(this.getComponentContext());\n }\n\n emit(name, data) {\n if (!this.el) return;\n this.$el.trigger(name, data);\n }\n\n attachEvents() {\n const { $el } = this;\n if (!this.__eventHandlers) return;\n this.__eventHandlers.forEach(({ eventName, handler }) => {\n $el.on(eventNameToColonCase(eventName), handler);\n });\n this.__onceEventHandlers.forEach(({ eventName, handler }) => {\n $el.once(eventNameToColonCase(eventName), handler);\n });\n }\n\n detachEvents() {\n const { $el } = this;\n if (!this.__eventHandlers) return;\n this.__eventHandlers.forEach(({ eventName, handler }) => {\n $el.on(eventNameToColonCase(eventName), handler);\n });\n this.__onceEventHandlers.forEach(({ eventName, handler }) => {\n $el.once(eventNameToColonCase(eventName), handler);\n });\n }\n\n startUpdateQueue() {\n const window = getWindow();\n if (this.__requestAnimationFrameId) return;\n const update = () => {\n this.hook('onBeforeUpdate');\n const tree = this.render();\n\n // Make Dom\n if (tree) {\n const newVNode = vdom(tree, this, false);\n this.vnode = patch(this.vnode, newVNode);\n }\n };\n this.__requestAnimationFrameId = window.requestAnimationFrame(() => {\n if (this.__updateIsPending) update();\n let resolvers = [...this.__updateQueue];\n this.__updateQueue = [];\n this.__updateIsPending = false;\n window.cancelAnimationFrame(this.__requestAnimationFrameId);\n delete this.__requestAnimationFrameId;\n delete this.__updateIsPending;\n resolvers.forEach((resolver) => resolver());\n resolvers = [];\n });\n }\n\n tick(callback) {\n return new Promise((resolve) => {\n function resolver() {\n resolve();\n if (callback) callback();\n }\n this.__updateQueue.push(resolver);\n this.startUpdateQueue();\n });\n }\n\n update(callback) {\n if (this.__destroyed) return new Promise(() => {});\n return new Promise((resolve) => {\n const resolver = () => {\n resolve();\n if (callback) callback();\n };\n this.__updateIsPending = true;\n this.__updateQueue.push(resolver);\n this.startUpdateQueue();\n });\n }\n\n setState(callback) {\n return this.update(callback);\n }\n\n f7ready(callback) {\n if (this.f7.initialized) {\n callback(this.f7);\n return;\n }\n this.f7.once('init', () => {\n callback(this.f7);\n });\n }\n\n mount(mountMethod) {\n 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 destroy() {\n if (this.__destroyed) return;\n const window = getWindow();\n this.hook('onBeforeUnmount');\n\n if (this.styleEl) $(this.styleEl).remove();\n\n this.detachEvents();\n this.hook('onUnmounted');\n // Delete component instance\n if (this.el && this.el.f7Component) {\n this.el.f7Component = null;\n delete this.el.f7Component;\n }\n // Patch with empty node\n if (this.vnode) {\n this.vnode = patch(this.vnode, { sel: this.vnode.sel, data: {} });\n }\n // Clear update queue\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 = [];\n // Delete all props\n deleteProps(this);\n this.__destroyed = true;\n }\n\n hook(name, ...args) {\n if (this.__destroyed) return;\n this[`__${name}`].forEach((handler) => {\n handler(...args);\n });\n }\n}\n\nexport default Component;\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { id } from '../../shared/utils.js';\n\nfunction parseComponent(componentString) {\n const window = getWindow();\n const document = getDocument();\n const componentId = id();\n const callbackCreateName = `f7_component_create_callback_${componentId}`;\n\n // Template\n let template;\n const hasTemplate = componentString.match(/<template([ ]?)([a-z0-9-]*)>/);\n if (hasTemplate) {\n template = componentString\n .split(/<template[ ]?[a-z0-9-]*>/)\n .filter((item, index) => index > 0)\n .join('<template>')\n .split('</template>')\n .filter((item, index, arr) => index < arr.length - 1)\n .join('</template>')\n .replace(/{{#raw}}([ \\n]*)<template/g, '{{#raw}}<template')\n .replace(/\\/template>([ \\n]*){{\\/raw}}/g, '/template>{{/raw}}')\n .replace(/([ \\n])<template/g, '$1{{#raw}}<template')\n .replace(/\\/template>([ \\n])/g, '/template>{{/raw}}$1');\n }\n\n // Parse Styles\n let style = null;\n\n if (componentString.indexOf('<style>') >= 0) {\n style = componentString.split('<style>')[1].split('</style>')[0];\n }\n if (componentString.indexOf('<style scoped>') >= 0) {\n style = componentString.split('<style scoped>')[1].split('</style>')[0];\n }\n\n // Parse Script\n let scriptContent;\n if (componentString.indexOf('<script>') >= 0) {\n const scripts = componentString.split('<script>');\n scriptContent = scripts[scripts.length - 1].split('</script>')[0].trim();\n } else {\n scriptContent = 'return () => {return $render}';\n }\n if (!scriptContent || !scriptContent.trim()) scriptContent = 'return () => {return $render}';\n\n // Parse Template\n if (template) {\n scriptContent = scriptContent\n .replace(\n '$render',\n `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 var $ref = $$ctx.$ref;\n\n return $h\\`${template}\\`\n }\n `,\n )\n .replace(/export default/g, 'return');\n }\n\n // Execute Script\n scriptContent = `window.${callbackCreateName} = function () {${scriptContent}}`;\n\n // Insert Script El\n const scriptEl = document.createElement('script');\n scriptEl.innerHTML = scriptContent;\n $('head').append(scriptEl);\n\n const component = window[callbackCreateName]();\n\n // Remove Script El\n $(scriptEl).remove();\n window[callbackCreateName] = null;\n delete window[callbackCreateName];\n\n // Assign Style\n if (style) {\n component.style = style;\n }\n\n // Component ID\n component.id = componentId;\n return component;\n}\n\nexport default parseComponent;\n","import Component from './component-class.js';\nimport parseComponent from './parse-component.js';\nimport customComponents from './custom-components.js';\nimport $jsx from './$jsx.js';\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,\n registerComponent,\n unregisterComponent,\n },\n create() {\n const app = this;\n app.component = {\n registerComponent,\n unregisterComponent,\n parse(componentString) {\n return parseComponent(componentString);\n },\n create(component, props, { root, el, context, children }) {\n return new Component(app, component, props, { root, el, context, children });\n },\n };\n },\n};\n","import History from '../../shared/history.js';\n\nexport default {\n name: 'history',\n static: {\n history: History,\n },\n on: {\n init() {\n History.init(this);\n },\n },\n};\n","import { getWindow } from 'ssr-window';\nimport { extend } from '../../shared/utils.js';\n\nconst SW = {\n registrations: [],\n register(path, scope) {\n const app = this;\n const window = getWindow();\n\n if (!('serviceWorker' in window.navigator) || !app.serviceWorker.container) {\n return new Promise((resolve, reject) => {\n reject(new Error('Service worker is not supported'));\n });\n }\n return new Promise((resolve, reject) => {\n app.serviceWorker.container\n .register(path, scope ? { scope } : {})\n .then((reg) => {\n SW.registrations.push(reg);\n app.emit('serviceWorkerRegisterSuccess', reg);\n resolve(reg);\n })\n .catch((error) => {\n app.emit('serviceWorkerRegisterError', error);\n reject(error);\n });\n });\n },\n unregister(registration) {\n const app = this;\n const window = getWindow();\n if (!('serviceWorker' in window.navigator) || !app.serviceWorker.container) {\n return new Promise((resolve, reject) => {\n reject(new Error('Service worker is not supported'));\n });\n }\n let registrations;\n if (!registration) registrations = SW.registrations;\n else if (Array.isArray(registration)) registrations = registration;\n else registrations = [registration];\n return Promise.all(\n registrations.map(\n (reg) =>\n new Promise((resolve, reject) => {\n reg\n .unregister()\n .then(() => {\n if (SW.registrations.indexOf(reg) >= 0) {\n SW.registrations.splice(SW.registrations.indexOf(reg), 1);\n }\n app.emit('serviceWorkerUnregisterSuccess', reg);\n resolve();\n })\n .catch((error) => {\n app.emit('serviceWorkerUnregisterError', reg, error);\n reject(error);\n });\n }),\n ),\n );\n },\n};\n\nexport default {\n name: 'sw',\n params: {\n serviceWorker: {\n path: undefined,\n scope: undefined,\n },\n },\n create() {\n const app = this;\n const 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() {\n const window = getWindow();\n if (!('serviceWorker' in window.navigator)) return;\n const app = this;\n if (app.device.cordova || (window.Capacitor && window.Capacitor.isNative)) return;\n if (!app.serviceWorker.container) return;\n const paths = app.params.serviceWorker.path;\n const scope = app.params.serviceWorker.scope;\n if (!paths || (Array.isArray(paths) && !paths.length)) return;\n const toRegister = Array.isArray(paths) ? paths : [paths];\n toRegister.forEach((path) => {\n app.serviceWorker.register(path, scope);\n });\n },\n },\n};\n","/* eslint-disable no-underscore-dangle */\nimport { extend } from '../../shared/utils.js';\n\nfunction createStore(storeParams = {}) {\n const store = {\n __store: true,\n };\n const originalState = { ...(storeParams.state || {}) };\n const actions = { ...(storeParams.actions || {}) };\n const getters = { ...(storeParams.getters || {}) };\n const state = extend({}, originalState);\n\n let propsQueue = [];\n const gettersDependencies = {};\n const gettersCallbacks = {};\n\n Object.keys(getters).forEach((getterKey) => {\n gettersDependencies[getterKey] = [];\n gettersCallbacks[getterKey] = [];\n });\n\n const getGetterValue = (getterKey) => {\n return getters[getterKey]({ state: store.state });\n };\n\n const addGetterDependencies = (getterKey, deps) => {\n if (!gettersDependencies[getterKey]) gettersDependencies[getterKey] = [];\n deps.forEach((dep) => {\n if (gettersDependencies[getterKey].indexOf(dep) < 0) {\n gettersDependencies[getterKey].push(dep);\n }\n });\n };\n\n const addGetterCallback = (getterKey, callback) => {\n if (!gettersCallbacks[getterKey]) gettersCallbacks[getterKey] = [];\n gettersCallbacks[getterKey].push(callback);\n };\n\n const runGetterCallbacks = (stateKey) => {\n const keys = Object.keys(gettersDependencies).filter((getterKey) => {\n return gettersDependencies[getterKey].indexOf(stateKey) >= 0;\n });\n keys.forEach((getterKey) => {\n if (!gettersCallbacks[getterKey] || !gettersCallbacks[getterKey].length) return;\n gettersCallbacks[getterKey].forEach((callback) => {\n callback(getGetterValue(getterKey));\n });\n });\n };\n\n const removeGetterCallback = (callback) => {\n Object.keys(gettersCallbacks).forEach((stateKey) => {\n const callbacks = gettersCallbacks[stateKey];\n\n if (callbacks.indexOf(callback) >= 0) {\n callbacks.splice(callbacks.indexOf(callback), 1);\n }\n });\n };\n\n // eslint-disable-next-line\n store.__removeCallback = (callback) => {\n removeGetterCallback(callback);\n };\n\n const getterValue = (getterKey, addCallback = true) => {\n if (getterKey === 'constructor') return undefined;\n propsQueue = [];\n const value = getGetterValue(getterKey);\n addGetterDependencies(getterKey, propsQueue);\n const onUpdated = (callback) => {\n addGetterCallback(getterKey, callback);\n };\n\n const obj = {\n value,\n onUpdated,\n };\n\n if (!addCallback) {\n return obj;\n }\n\n const callback = (v) => {\n obj.value = v;\n };\n\n obj.__callback = callback;\n addGetterCallback(getterKey, callback);\n // eslint-disable-next-line\n return obj;\n };\n\n store.state = new Proxy(state, {\n set: (target, prop, value) => {\n target[prop] = value;\n runGetterCallbacks(prop);\n return true;\n },\n get: (target, prop) => {\n propsQueue.push(prop);\n return target[prop];\n },\n });\n\n store.getters = new Proxy(getters, {\n set: () => false,\n get: (target, prop) => {\n if (!target[prop]) {\n return undefined;\n }\n return getterValue(prop, true);\n },\n });\n\n store._gettersPlain = new Proxy(getters, {\n set: () => false,\n get: (target, prop) => {\n if (!target[prop]) {\n return undefined;\n }\n return getterValue(prop, false);\n },\n });\n\n store.dispatch = (actionName, data) => {\n return new Promise((resolve, reject) => {\n if (!actions[actionName]) {\n reject();\n throw new Error(`Framework7: Store action \"${actionName}\" is not found`);\n }\n const result = actions[actionName]({ state: store.state, dispatch: store.dispatch }, data);\n resolve(result);\n });\n };\n\n return store;\n}\n\nexport default createStore;\n","import createStore from './create-store.js';\n\nexport { createStore };\nexport default {\n name: 'store',\n static: { createStore },\n proto: { createStore },\n};\n","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { bindMethods } from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\n\nconst isCapacitor = () => {\n const window = getWindow();\n return (\n window.Capacitor &&\n window.Capacitor.isNative &&\n window.Capacitor.Plugins &&\n window.Capacitor.Plugins.StatusBar\n );\n};\n\nconst Statusbar = {\n hide() {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.hide();\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.hide();\n }\n },\n show() {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.show();\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.show();\n }\n },\n onClick() {\n const app = this;\n let pageContent;\n if ($('.popup.modal-in').length > 0) {\n // Check for opened popup\n pageContent = $('.popup.modal-in')\n .find('.page:not(.page-previous):not(.page-next):not(.cached)')\n .find('.page-content');\n } else if ($('.panel.panel-in').length > 0) {\n // Check for opened panel\n pageContent = $('.panel.panel-in')\n .find('.page:not(.page-previous):not(.page-next):not(.cached)')\n .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')\n .find('.page:not(.page-previous):not(.page-next):not(.cached)')\n .find('.page-content');\n } else if ($('.views').length > 0) {\n pageContent = $('.views')\n .find('.page:not(.page-previous):not(.page-next):not(.cached)')\n .find('.page-content');\n } else {\n pageContent = app.$el\n .children('.view')\n .find('.page:not(.page-previous):not(.page-next):not(.cached)')\n .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 if (pageContent.length > 0) pageContent.scrollTop(0, 300);\n }\n },\n setTextColor(color) {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n if (color === 'white') {\n window.StatusBar.styleLightContent();\n } else {\n window.StatusBar.styleDefault();\n }\n }\n if (isCapacitor()) {\n if (color === 'white') {\n window.Capacitor.Plugins.StatusBar.setStyle({ style: 'DARK' });\n } else {\n window.Capacitor.Plugins.StatusBar.setStyle({ style: 'LIGHT' });\n }\n }\n },\n setBackgroundColor(color) {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.backgroundColorByHexString(color);\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.setBackgroundColor({ color });\n }\n },\n isVisible() {\n const window = getWindow();\n const device = getDevice();\n return new Promise((resolve) => {\n if (device.cordova && window.StatusBar) {\n resolve(window.StatusBar.isVisible);\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.getInfo().then((info) => {\n resolve(info.visible);\n });\n }\n resolve(false);\n });\n },\n overlaysWebView(overlays = true) {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.overlaysWebView(overlays);\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.setOverlaysWebView({ overlay: overlays });\n }\n },\n init() {\n const app = this;\n const window = getWindow();\n const device = getDevice();\n const params = app.params.statusbar;\n if (!params.enabled) return;\n const isCordova = device.cordova && window.StatusBar;\n const isCap = isCapacitor();\n\n if (isCordova || isCap) {\n if (params.scrollTopOnClick) {\n $(window).on('statusTap', Statusbar.onClick.bind(app));\n }\n if (device.ios) {\n if (params.iosOverlaysWebView) {\n Statusbar.overlaysWebView(true);\n } else {\n Statusbar.overlaysWebView(false);\n }\n if (params.iosTextColor === 'white') {\n Statusbar.setTextColor('white');\n } else {\n Statusbar.setTextColor('black');\n }\n }\n if (device.android) {\n if (params.androidOverlaysWebView) {\n Statusbar.overlaysWebView(true);\n } else {\n Statusbar.overlaysWebView(false);\n }\n if (params.androidTextColor === 'white') {\n Statusbar.setTextColor('white');\n } else {\n Statusbar.setTextColor('black');\n }\n }\n }\n if (params.iosBackgroundColor && device.ios) {\n Statusbar.setBackgroundColor(params.iosBackgroundColor);\n }\n if (params.androidBackgroundColor && device.android) {\n Statusbar.setBackgroundColor(params.androidBackgroundColor);\n }\n },\n};\n\nexport default {\n name: 'statusbar',\n params: {\n statusbar: {\n enabled: true,\n\n scrollTopOnClick: true,\n\n iosOverlaysWebView: true,\n iosTextColor: 'black',\n iosBackgroundColor: null,\n\n androidOverlaysWebView: false,\n androidTextColor: 'black',\n androidBackgroundColor: null,\n },\n },\n create() {\n const app = this;\n bindMethods(app, {\n statusbar: Statusbar,\n });\n },\n on: {\n init() {\n const app = this;\n Statusbar.init.call(app);\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport View from './view-class.js';\n\nfunction getCurrentView(app) {\n const $popoverView = $('.popover.modal-in .view');\n const $popupView = $('.popup.modal-in .view');\n const $panelView = $('.panel.panel-in .view');\n let $viewsEl = $('.views');\n if ($viewsEl.length === 0) $viewsEl = app.$el;\n // Find active view as tab\n let $viewEl = $viewsEl.children('.view');\n if ($viewEl.length === 0) {\n $viewEl = $viewsEl.children('.tabs').children('.view');\n }\n // Propably in tabs or split view\n if ($viewEl.length > 1) {\n if ($viewEl.hasClass('tab')) {\n // Tabs\n $viewEl = $viewsEl.children('.view.tab-active');\n if ($viewEl.length === 0) {\n $viewEl = $viewsEl.children('.tabs').children('.view.tab-active');\n }\n } else {\n // Split View, leave appView intact\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 if ($viewEl.length > 0) {\n if ($viewEl.length === 1 && $viewEl[0].f7View) return $viewEl[0].f7View;\n if ($viewEl.length > 1) {\n return app.views.main;\n }\n }\n return undefined;\n}\n\nexport default {\n name: 'view',\n params: {\n view: {\n init: true,\n initRouterOnTabShow: false,\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, // 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 browserHistoryTabs: 'replace',\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,\n },\n create() {\n const app = this;\n extend(app, {\n views: extend([], {\n create(el, params) {\n return new View(app, el, params);\n },\n get(viewEl) {\n const $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() {\n return getCurrentView(app);\n },\n });\n // Alias\n app.view = app.views;\n },\n on: {\n init() {\n const app = this;\n $('.view-init').each((viewEl) => {\n if (viewEl.f7View) return;\n const viewParams = $(viewEl).dataset();\n app.views.create(viewEl, viewParams);\n });\n },\n 'modalOpen panelOpen': function onOpen(instance) {\n const app = this;\n instance.$el.find('.view-init').each((viewEl) => {\n if (viewEl.f7View) return;\n const 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((viewEl) => {\n const view = viewEl.f7View;\n if (!view) return;\n view.destroy();\n });\n },\n },\n vnode: {\n 'view-init': {\n insert(vnode) {\n const app = this;\n const viewEl = vnode.elm;\n if (viewEl.f7View) return;\n const viewParams = $(viewEl).dataset();\n app.views.create(viewEl, viewParams);\n },\n destroy(vnode) {\n const viewEl = vnode.elm;\n const view = viewEl.f7View;\n if (!view) return;\n view.destroy();\n },\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { bindMethods } from '../../shared/utils.js';\nimport { getSupport } from '../../shared/get-support.js';\n\nconst Navbar = {\n size(el) {\n const app = this;\n\n let $el = $(el);\n\n if ($el.hasClass('navbars')) {\n $el = $el.children('.navbar').each((navbarEl) => {\n app.navbar.size(navbarEl);\n });\n return;\n }\n\n const $innerEl = $el.children('.navbar-inner');\n if (!$innerEl.length) return;\n\n const needCenterTitle =\n $innerEl.hasClass('navbar-inner-centered-title') ||\n app.params.navbar[`${app.theme}CenterTitle`];\n const needLeftTitle = app.theme === 'ios' && !app.params.navbar[`${app.theme}CenterTitle`];\n\n if (!needCenterTitle && !needLeftTitle) return;\n\n if (\n $el.hasClass('stacked') ||\n $el.parents('.stacked').length > 0 ||\n $el.parents('.tab:not(.tab-active)').length > 0 ||\n $el.parents('.popup:not(.modal-in)').length > 0\n ) {\n return;\n }\n\n if (app.theme !== 'ios' && app.params.navbar[`${app.theme}CenterTitle`]) {\n $innerEl.addClass('navbar-inner-centered-title');\n }\n if (app.theme === 'ios' && !app.params.navbar.iosCenterTitle) {\n $innerEl.addClass('navbar-inner-left-title');\n }\n\n const $viewEl = $el.parents('.view').eq(0);\n const left = app.rtl ? $innerEl.children('.right') : $innerEl.children('.left');\n const right = app.rtl ? $innerEl.children('.left') : $innerEl.children('.right');\n const title = $innerEl.children('.title');\n const subnavbar = $innerEl.children('.subnavbar');\n const noLeft = left.length === 0;\n const noRight = right.length === 0;\n const leftWidth = noLeft ? 0 : left.outerWidth(true);\n const rightWidth = noRight ? 0 : right.outerWidth(true);\n const titleWidth = title.outerWidth(true);\n const navbarStyles = $innerEl.styles();\n const navbarWidth = $innerEl[0].offsetWidth;\n const navbarInnerWidth =\n navbarWidth -\n parseInt(navbarStyles.paddingLeft, 10) -\n parseInt(navbarStyles.paddingRight, 10);\n const isPrevious = $el.hasClass('navbar-previous');\n const sliding = $innerEl.hasClass('sliding');\n\n let router;\n let dynamicNavbar;\n\n if ($viewEl.length > 0 && $viewEl[0].f7View) {\n router = $viewEl[0].f7View.router;\n dynamicNavbar = router && router.dynamicNavbar;\n }\n\n let currLeft;\n let diff;\n if (noRight) {\n currLeft = navbarInnerWidth - titleWidth;\n }\n if (noLeft) {\n currLeft = 0;\n }\n if (!noLeft && !noRight) {\n currLeft = (navbarInnerWidth - rightWidth - titleWidth + leftWidth) / 2;\n }\n let requiredLeft = (navbarInnerWidth - titleWidth) / 2;\n if (navbarInnerWidth - leftWidth - rightWidth > titleWidth) {\n if (requiredLeft < leftWidth) {\n requiredLeft = leftWidth;\n }\n if (requiredLeft + titleWidth > navbarInnerWidth - rightWidth) {\n requiredLeft = navbarInnerWidth - rightWidth - titleWidth;\n }\n diff = requiredLeft - currLeft;\n } else {\n diff = 0;\n }\n\n // RTL inverter\n const inverter = app.rtl ? -1 : 1;\n\n if (dynamicNavbar && app.theme === 'ios') {\n if (title.hasClass('sliding') || (title.length > 0 && sliding)) {\n let titleLeftOffset = -(currLeft + diff) * inverter;\n const titleRightOffset = (navbarInnerWidth - currLeft - diff - titleWidth) * inverter;\n\n if (isPrevious) {\n if (router && router.params.iosAnimateNavbarBackIcon) {\n const activeNavbarBackLink = $el\n .parent()\n .find('.navbar-current')\n .children('.left.sliding')\n .find('.back .icon ~ span');\n if (activeNavbarBackLink.length > 0) {\n titleLeftOffset += activeNavbarBackLink[0].offsetLeft;\n }\n }\n }\n title[0].f7NavbarLeftOffset = titleLeftOffset;\n title[0].f7NavbarRightOffset = titleRightOffset;\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 if (\n router &&\n router.params.iosAnimateNavbarBackIcon &&\n left.find('.back .icon').length > 0\n ) {\n if (left.find('.back .icon ~ span').length) {\n const leftOffset = left[0].f7NavbarLeftOffset;\n const 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 =\n rightOffset - left.find('.back .icon')[0].offsetWidth;\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 if (subnavbar.length && (subnavbar.hasClass('sliding') || sliding)) {\n subnavbar[0].f7NavbarLeftOffset = app.rtl\n ? subnavbar[0].offsetWidth\n : -subnavbar[0].offsetWidth;\n subnavbar[0].f7NavbarRightOffset = -subnavbar[0].f7NavbarLeftOffset;\n }\n }\n\n // Center title\n if (needCenterTitle) {\n let titleLeft = diff;\n if (app.rtl && noLeft && noRight && title.length > 0) titleLeft = -titleLeft;\n title.css({ left: `${titleLeft}px` });\n }\n },\n hide(el, animate = true, hideStatusbar = false, hideOnlyCurrent = false) {\n const app = this;\n let $el = $(el);\n const 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 let className = `navbar-hidden${animate ? ' navbar-transitioning' : ''}`;\n const currentIsLarge = isDynamic\n ? $el.find('.navbar-current .title-large').length\n : $el.find('.title-large').length;\n if (currentIsLarge) {\n className += ' navbar-large-hidden';\n }\n if (hideStatusbar) {\n className += ' navbar-hidden-statusbar';\n }\n $el.transitionEnd(() => {\n $el.removeClass('navbar-transitioning');\n });\n $el.addClass(className);\n if (isDynamic) {\n $el.children('.navbar').each((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(el = '.navbar-hidden', animate = true, hideOnlyCurrent = false) {\n const app = this;\n let $el = $(el);\n const 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 if (animate) {\n $el.addClass('navbar-transitioning');\n $el.transitionEnd(() => {\n $el.removeClass('navbar-transitioning');\n });\n }\n $el.removeClass('navbar-hidden navbar-large-hidden navbar-hidden-statusbar');\n if (isDynamic) {\n $el.children('.navbar').each((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(page) {\n let $pageEl;\n let $navbarEl;\n let pageData;\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 if (pageData && pageData.$navbarEl && pageData.$navbarEl.length > 0) {\n $navbarEl = pageData.$navbarEl;\n } else if ($pageEl) {\n $navbarEl = $pageEl.children('.navbar');\n }\n if (!$navbarEl || ($navbarEl && $navbarEl.length === 0)) return undefined;\n return $navbarEl[0];\n },\n getPageByEl(navbarEl) {\n const $navbarEl = $(navbarEl);\n if ($navbarEl.parents('.page').length) {\n return $navbarEl.parents('.page')[0];\n }\n let pageEl;\n $navbarEl\n .parents('.view')\n .find('.page')\n .each((el) => {\n if (el && el.f7Page && el.f7Page.navbarEl && $navbarEl[0] === el.f7Page.navbarEl) {\n pageEl = el;\n }\n });\n return pageEl;\n },\n\n collapseLargeTitle(navbarEl) {\n const app = this;\n let $navbarEl = $(navbarEl);\n if ($navbarEl.hasClass('navbars')) {\n $navbarEl = $navbarEl.find('.navbar');\n if ($navbarEl.length > 1) {\n $navbarEl = $(navbarEl).find('.navbar-large.navbar-current');\n }\n if ($navbarEl.length > 1 || !$navbarEl.length) {\n return;\n }\n }\n const $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(navbarEl) {\n const app = this;\n let $navbarEl = $(navbarEl);\n if ($navbarEl.hasClass('navbars')) {\n $navbarEl = $navbarEl.find('.navbar-large');\n if ($navbarEl.length > 1) {\n $navbarEl = $(navbarEl).find('.navbar-large.navbar-current');\n }\n if ($navbarEl.length > 1 || !$navbarEl.length) {\n return;\n }\n }\n const $pageEl = $(app.navbar.getPageByEl($navbarEl));\n $navbarEl.removeClass('navbar-large-collapsed');\n $pageEl\n .eq(0)\n .removeClass('page-with-navbar-large-collapsed')\n .trigger('page:navbarlargeexpanded');\n app.emit('pageNavbarLargeExpanded', $pageEl[0]);\n $navbarEl.trigger('navbar:expand');\n app.emit('navbarExpand', $navbarEl[0]);\n },\n toggleLargeTitle(navbarEl) {\n const app = this;\n let $navbarEl = $(navbarEl);\n if ($navbarEl.hasClass('navbars')) {\n $navbarEl = $navbarEl.find('.navbar-large');\n if ($navbarEl.length > 1) {\n $navbarEl = $(navbarEl).find('.navbar-large.navbar-current');\n }\n if ($navbarEl.length > 1 || !$navbarEl.length) {\n return;\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(pageEl, navbarEl, needHide, needCollapse, needTransparent) {\n const app = this;\n const support = getSupport();\n const $pageEl = $(pageEl);\n const $navbarEl = $(navbarEl);\n const $titleLargeEl = $navbarEl.find('.title-large');\n const isLarge = $titleLargeEl.length || $navbarEl.hasClass('.navbar-large');\n let navbarHideHeight = 44;\n const snapPageScrollToLargeTitle = app.params.navbar.snapPageScrollToLargeTitle;\n const snapPageScrollToTransparentNavbar = app.params.navbar.snapPageScrollToTransparentNavbar;\n\n let previousScrollTop;\n let currentScrollTop;\n\n let scrollHeight;\n let offsetHeight;\n let reachEnd;\n let action;\n let navbarHidden;\n\n let navbarCollapsed;\n let navbarTitleLargeHeight;\n\n let 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 if (Number.isNaN(navbarTitleLargeHeight) && $titleLargeEl.length) {\n navbarTitleLargeHeight = $titleLargeEl[0].offsetHeight;\n } else if (Number.isNaN(navbarTitleLargeHeight)) {\n if (app.theme === 'ios') navbarTitleLargeHeight = 52;\n else if (app.theme === 'md') navbarTitleLargeHeight = 48;\n 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;\n else if (app.theme === 'md') navbarTitleLargeHeight = 48;\n else if (app.theme === 'aurora') navbarTitleLargeHeight = 38;\n }\n }\n\n if (needHide && isLarge) {\n navbarHideHeight += navbarTitleLargeHeight;\n }\n\n let scrollChanged;\n let scrollContent;\n let scrollTimeoutId;\n let touchEndTimeoutId;\n const touchSnapTimeout = 70;\n const desktopSnapTimeout = 300;\n\n function calcScrollableDistance() {\n $pageEl.find('.page-content').each((pageContentEl) => {\n pageContentEl.f7ScrollableDistance =\n pageContentEl.scrollHeight - pageContentEl.offsetHeight;\n });\n }\n\n function snapLargeNavbar() {\n const inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded) return;\n if (!scrollContent || currentScrollTop < 0) return;\n if (\n currentScrollTop >= navbarTitleLargeHeight / 2 &&\n currentScrollTop < navbarTitleLargeHeight\n ) {\n $(scrollContent).scrollTop(navbarTitleLargeHeight, 100);\n } else if (currentScrollTop < navbarTitleLargeHeight) {\n $(scrollContent).scrollTop(0, 200);\n }\n }\n\n function snapTransparentNavbar() {\n const inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded) return;\n if (!scrollContent || currentScrollTop < 0) return;\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 const isHidden =\n $navbarEl.hasClass('navbar-hidden') ||\n $navbarEl.parent('.navbars').hasClass('navbar-hidden');\n const inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded || isHidden) return;\n if (!navbarOffsetHeight) {\n navbarOffsetHeight = navbarEl.offsetHeight;\n }\n let opacity = currentScrollTop / navbarOffsetHeight;\n const 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 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 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(() => {\n snapTransparentNavbar();\n }, desktopSnapTimeout);\n } else if (touchEndTimeoutId) {\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n touchEndTimeoutId = setTimeout(() => {\n snapTransparentNavbar();\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n }, touchSnapTimeout);\n }\n }\n }\n\n let previousCollapseProgress = null;\n let collapseProgress = null;\n function handleLargeNavbarCollapse(pageContentEl) {\n const isHidden =\n $navbarEl.hasClass('navbar-hidden') ||\n $navbarEl.parent('.navbars').hasClass('navbar-hidden');\n if (isHidden) return;\n const isLargeTransparent =\n $navbarEl.hasClass('navbar-large-transparent') ||\n ($navbarEl.hasClass('navbar-large') && $navbarEl.hasClass('navbar-transparent'));\n previousCollapseProgress = collapseProgress;\n const scrollableDistance = Math.min(\n navbarTitleLargeHeight,\n pageContentEl.f7ScrollableDistance || navbarTitleLargeHeight,\n );\n collapseProgress = Math.min(Math.max(currentScrollTop / scrollableDistance, 0), 1);\n const previousCollapseWasInMiddle =\n previousCollapseProgress > 0 && previousCollapseProgress < 1;\n const inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded) return;\n navbarCollapsed = $navbarEl.hasClass('navbar-large-collapsed');\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 if (\n (collapseProgress === 0 && navbarCollapsed) ||\n (collapseProgress === 0 && previousCollapseWasInMiddle) ||\n (collapseProgress === 1 && !navbarCollapsed) ||\n (collapseProgress === 1 && previousCollapseWasInMiddle)\n ) {\n if (app.theme === 'md') {\n $navbarEl.find('.navbar-inner').css('overflow', '');\n }\n $navbarEl.find('.title').css('opacity', '');\n $navbarEl.find('.title-large-text, .subnavbar').css('transform', '');\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 $navbarEl.find('.title').css('opacity', collapseProgress);\n $navbarEl\n .find('.title-large-text, .subnavbar')\n .css(\n 'transform',\n `translate3d(0px, ${-1 * collapseProgress * navbarTitleLargeHeight}px, 0)`,\n );\n if (isLargeTransparent) {\n $navbarEl.find('.navbar-bg').css('opacity', collapseProgress);\n } else {\n $navbarEl\n .find('.navbar-bg')\n .css(\n 'transform',\n `translate3d(0px, ${-1 * collapseProgress * navbarTitleLargeHeight}px, 0)`,\n );\n }\n }\n\n if (snapPageScrollToLargeTitle) {\n if (!support.touch) {\n clearTimeout(scrollTimeoutId);\n scrollTimeoutId = setTimeout(() => {\n snapLargeNavbar();\n }, desktopSnapTimeout);\n } else if (touchEndTimeoutId) {\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n touchEndTimeoutId = setTimeout(() => {\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 =\n $navbarEl.hasClass('navbar-hidden') ||\n $navbarEl.parent('.navbars').hasClass('navbar-hidden');\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 previousScrollTop = currentScrollTop;\n }\n\n function handleScroll(e) {\n scrollContent = this;\n if (e && e.target && e.target !== scrollContent) {\n return;\n }\n currentScrollTop = scrollContent.scrollTop;\n scrollChanged = currentScrollTop;\n if (needCollapse) {\n handleLargeNavbarCollapse(scrollContent);\n } else if (needTransparent) {\n handleNavbarTransparent();\n }\n if ($pageEl.hasClass('page-previous')) return;\n if (needHide) {\n handleTitleHideShow();\n }\n }\n function handeTouchStart() {\n scrollChanged = false;\n }\n function handleTouchEnd() {\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n touchEndTimeoutId = setTimeout(() => {\n if (scrollChanged !== false) {\n if (needTransparent && !needCollapse) {\n snapTransparentNavbar();\n } else {\n snapLargeNavbar();\n }\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n }\n }, touchSnapTimeout);\n }\n $pageEl.on('scroll', '.page-content', handleScroll, true);\n\n if (\n support.touch &&\n ((needCollapse && snapPageScrollToLargeTitle) ||\n (needTransparent && snapPageScrollToTransparentNavbar))\n ) {\n app.on('touchstart:passive', handeTouchStart);\n app.on('touchend:passive', handleTouchEnd);\n }\n calcScrollableDistance();\n if (needCollapse || needTransparent) {\n $pageEl.find('.page-content').each((pageContentEl) => {\n if (pageContentEl.scrollTop > 0) handleScroll.call(pageContentEl);\n });\n }\n app.on('resize', calcScrollableDistance);\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 if (\n support.touch &&\n ((needCollapse && snapPageScrollToLargeTitle) ||\n (needTransparent && snapPageScrollToTransparentNavbar))\n ) {\n app.off('touchstart:passive', handeTouchStart);\n app.off('touchend:passive', handleTouchEnd);\n }\n };\n },\n};\nexport default {\n name: 'navbar',\n create() {\n const 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':\n function onPanelResize() {\n const app = this;\n $('.navbar').each((navbarEl) => {\n app.navbar.size(navbarEl);\n });\n },\n pageBeforeRemove(page) {\n if (page.$el[0].f7DetachNavbarScrollHandlers) {\n page.$el[0].f7DetachNavbarScrollHandlers();\n }\n },\n pageBeforeIn(page) {\n const app = this;\n if (app.theme !== 'ios') return;\n let $navbarsEl;\n const view = page.$el.parents('.view')[0].f7View;\n const navbarEl = app.navbar.getElByPage(page);\n if (!navbarEl) {\n $navbarsEl = page.$el.parents('.view').children('.navbars');\n } else {\n $navbarsEl = $(navbarEl).parents('.navbars');\n }\n if (page.$el.hasClass('no-navbar') || (view.router.dynamicNavbar && !navbarEl)) {\n const 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(page) {\n const app = this;\n const $navbarEl = $(app.navbar.getElByPage(page));\n if (!$navbarEl || $navbarEl.length === 0) return;\n app.navbar.size($navbarEl);\n },\n pageInit(page) {\n const app = this;\n const $navbarEl = $(app.navbar.getElByPage(page));\n if (!$navbarEl || $navbarEl.length === 0) return;\n\n // Size\n app.navbar.size($navbarEl);\n\n // Need Collapse On Scroll\n let needCollapseOnScrollHandler;\n if ($navbarEl.find('.title-large').length > 0) {\n $navbarEl.addClass('navbar-large');\n }\n if ($navbarEl.hasClass('navbar-large')) {\n if (app.params.navbar.collapseLargeTitleOnScroll) needCollapseOnScrollHandler = true;\n page.$el.addClass('page-with-navbar-large');\n }\n\n // Need transparent on scroll\n let needTransparentOnScroll;\n if (!needCollapseOnScrollHandler && $navbarEl.hasClass('navbar-transparent')) {\n needTransparentOnScroll = true;\n }\n\n // Need Hide On Scroll\n let needHideOnScrollHandler;\n if (\n app.params.navbar.hideOnPageScroll ||\n page.$el.find('.hide-navbar-on-scroll').length ||\n page.$el.hasClass('hide-navbar-on-scroll') ||\n page.$el.find('.hide-bars-on-scroll').length ||\n page.$el.hasClass('hide-bars-on-scroll')\n ) {\n if (\n page.$el.find('.keep-navbar-on-scroll').length ||\n page.$el.hasClass('keep-navbar-on-scroll') ||\n page.$el.find('.keep-bars-on-scroll').length ||\n page.$el.hasClass('keep-bars-on-scroll')\n ) {\n needHideOnScrollHandler = false;\n } else {\n needHideOnScrollHandler = true;\n }\n }\n\n if (needCollapseOnScrollHandler || needHideOnScrollHandler || needTransparentOnScroll) {\n app.navbar.initNavbarOnScroll(\n page.el,\n $navbarEl[0],\n needHideOnScrollHandler,\n needCollapseOnScrollHandler,\n needTransparentOnScroll,\n );\n }\n },\n 'panelOpen panelSwipeOpen modalOpen': function onPanelModalOpen(instance) {\n const app = this;\n instance.$el.find('.navbar:not(.navbar-previous):not(.stacked)').each((navbarEl) => {\n app.navbar.size(navbarEl);\n });\n },\n tabShow(tabEl) {\n const app = this;\n $(tabEl)\n .find('.navbar:not(.navbar-previous):not(.stacked)')\n .each((navbarEl) => {\n app.navbar.size(navbarEl);\n });\n },\n },\n clicks: {\n '.navbar .title': function onTitleClick($clickedEl, clickedData, e) {\n const app = this;\n if (!app.params.navbar.scrollTopOnTitleClick) return;\n if ($(e.target).closest('a, button').length > 0) {\n return;\n }\n let $pageContentEl;\n\n // Find active page\n const $navbarEl = $clickedEl.parents('.navbar');\n const $navbarsEl = $navbarEl.parents('.navbars');\n\n // Static Layout\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 }\n // Through Layout iOS\n if ($pageContentEl.length === 0 && $navbarsEl.length) {\n if ($navbarsEl.nextAll('.page-current:not(.stacked)').length > 0) {\n $pageContentEl = $navbarsEl\n .nextAll('.page-current:not(.stacked)')\n .find('.page-content');\n }\n }\n // Through Layout\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 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 if ($pageContentEl.length > 0) $pageContentEl.scrollTop(0, 300);\n }\n },\n },\n vnode: {\n navbar: {\n postpatch(vnode) {\n const app = this;\n app.navbar.size(vnode.elm);\n },\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { nextFrame, bindMethods } from '../../shared/utils.js';\n\nconst Toolbar = {\n setHighlight(tabbarEl) {\n const app = this;\n const $tabbarEl = $(tabbarEl);\n if (app.theme === 'ios' && !$tabbarEl.hasClass('tabbar-highlight')) return;\n\n if (\n $tabbarEl.length === 0 ||\n !($tabbarEl.hasClass('tabbar') || $tabbarEl.hasClass('tabbar-labels'))\n )\n return;\n\n let $highlightEl = $tabbarEl.find('.tab-link-highlight');\n const tabLinksCount = $tabbarEl.find('.tab-link').length;\n if (tabLinksCount === 0) {\n $highlightEl.remove();\n return;\n }\n\n if ($highlightEl.length === 0) {\n $tabbarEl.children('.toolbar-inner').append('<span class=\"tab-link-highlight\"></span>');\n $highlightEl = $tabbarEl.find('.tab-link-highlight');\n } else if ($highlightEl.next().length) {\n $tabbarEl.children('.toolbar-inner').append($highlightEl);\n }\n\n const $activeLink = $tabbarEl.find('.tab-link-active');\n let highlightWidth;\n let 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 const activeIndex = $activeLink.index();\n highlightWidth = `${100 / tabLinksCount}%`;\n highlightTranslate = `${(app.rtl ? -activeIndex : activeIndex) * 100}%`;\n }\n\n nextFrame(() => {\n $highlightEl.css('width', highlightWidth).transform(`translate3d(${highlightTranslate},0,0)`);\n });\n },\n init(tabbarEl) {\n const app = this;\n app.toolbar.setHighlight(tabbarEl);\n },\n hide(el, animate = true) {\n const app = this;\n const $el = $(el);\n if ($el.hasClass('toolbar-hidden')) return;\n const className = `toolbar-hidden${animate ? ' toolbar-transitioning' : ''}`;\n $el.transitionEnd(() => {\n $el.removeClass('toolbar-transitioning');\n });\n $el.addClass(className);\n $el.trigger('toolbar:hide');\n app.emit('toolbarHide', $el[0]);\n },\n show(el, animate = true) {\n const app = this;\n const $el = $(el);\n if (!$el.hasClass('toolbar-hidden')) return;\n if (animate) {\n $el.addClass('toolbar-transitioning');\n $el.transitionEnd(() => {\n $el.removeClass('toolbar-transitioning');\n });\n }\n $el.removeClass('toolbar-hidden');\n $el.trigger('toolbar:show');\n app.emit('toolbarShow', $el[0]);\n },\n initToolbarOnScroll(pageEl) {\n const app = this;\n const $pageEl = $(pageEl);\n let $toolbarEl = $pageEl.parents('.view').children('.toolbar');\n if ($toolbarEl.length === 0) {\n $toolbarEl = $pageEl.find('.toolbar');\n }\n if ($toolbarEl.length === 0) {\n $toolbarEl = $pageEl.parents('.views').children('.tabbar, .tabbar-labels');\n }\n if ($toolbarEl.length === 0) {\n return;\n }\n\n let previousScrollTop;\n let currentScrollTop;\n\n let scrollHeight;\n let offsetHeight;\n let reachEnd;\n let action;\n let toolbarHidden;\n function handleScroll(e) {\n if ($pageEl.hasClass('page-with-card-opened')) return;\n if ($pageEl.hasClass('page-previous')) return;\n const scrollContent = this;\n if (e && e.target && e.target !== scrollContent) {\n return;\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 $pageEl.on('scroll', '.page-content', handleScroll, true);\n $pageEl[0].f7ScrollToolbarHandler = handleScroll;\n },\n};\nexport default {\n name: 'toolbar',\n create() {\n const 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(page) {\n if (page.$el[0].f7ScrollToolbarHandler) {\n page.$el.off('scroll', '.page-content', page.$el[0].f7ScrollToolbarHandler, true);\n }\n },\n pageBeforeIn(page) {\n const app = this;\n let $toolbarEl = page.$el.parents('.view').children('.toolbar');\n if ($toolbarEl.length === 0) {\n $toolbarEl = page.$el.parents('.views').children('.tabbar, .tabbar-labels');\n }\n if ($toolbarEl.length === 0) {\n $toolbarEl = page.$el.find('.toolbar');\n }\n if ($toolbarEl.length === 0) {\n return;\n }\n if (page.$el.hasClass('no-toolbar')) {\n app.toolbar.hide($toolbarEl);\n } else {\n app.toolbar.show($toolbarEl);\n }\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.tabbar, .tabbar-labels').each((tabbarEl) => {\n app.toolbar.init(tabbarEl);\n });\n if (\n app.params.toolbar.hideOnPageScroll ||\n page.$el.find('.hide-toolbar-on-scroll').length ||\n page.$el.hasClass('hide-toolbar-on-scroll') ||\n page.$el.find('.hide-bars-on-scroll').length ||\n page.$el.hasClass('hide-bars-on-scroll')\n ) {\n if (\n page.$el.find('.keep-toolbar-on-scroll').length ||\n page.$el.hasClass('keep-toolbar-on-scroll') ||\n page.$el.find('.keep-bars-on-scroll').length ||\n page.$el.hasClass('keep-bars-on-scroll')\n ) {\n return;\n }\n app.toolbar.initToolbarOnScroll(page.el);\n }\n },\n init() {\n const app = this;\n app.$el.find('.tabbar, .tabbar-labels').each((tabbarEl) => {\n app.toolbar.init(tabbarEl);\n });\n },\n },\n vnode: {\n tabbar: {\n insert(vnode) {\n const app = this;\n app.toolbar.init(vnode.elm);\n },\n },\n },\n};\n","import $ from '../../shared/dom7.js';\n\nexport default {\n name: 'subnavbar',\n on: {\n pageInit(page) {\n if (page.$navbarEl && page.$navbarEl.length && page.$navbarEl.find('.subnavbar').length) {\n page.$el.addClass('page-with-subnavbar');\n }\n const $innerSubnavbars = page.$el.find('.subnavbar').filter((subnavbarEl) => {\n return $(subnavbarEl).parents('.page')[0] === page.$el[0];\n });\n if ($innerSubnavbars.length) {\n page.$el.addClass('page-with-subnavbar');\n }\n },\n },\n};\n","import $ from '../../shared/dom7.js';\n\nexport default class TouchRipple {\n constructor(app, $el, x, y) {\n const ripple = this;\n\n if (!$el) return undefined;\n\n const { left, top, width, height } = $el[0].getBoundingClientRect();\n const center = {\n x: x - left,\n y: y - top,\n };\n let diameter = Math.max((height ** 2 + width ** 2) ** 0.5, 48);\n\n let isInset = false;\n const insetElements = app.params.touch.touchRippleInsetElements || '';\n if (insetElements && $el.is(insetElements)) {\n isInset = true;\n }\n if (isInset) {\n diameter = Math.max(Math.min(width, height), 48);\n }\n\n if (!isInset && $el.css('overflow') === 'hidden') {\n const distanceFromCenter =\n ((center.x - width / 2) ** 2 + (center.y - height / 2) ** 2) ** 0.5;\n const 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 if (isInset) {\n $el.addClass('ripple-inset');\n }\n\n ripple.$rippleWaveEl = $(\n `<div class=\"ripple-wave\" style=\"width: ${diameter}px; height: ${diameter}px; margin-top:-${\n diameter / 2\n }px; margin-left:-${diameter / 2}px; left:${center.x}px; top:${\n center.y\n }px; --f7-ripple-transform: ${ripple.rippleTransform}\"></div>`,\n );\n\n $el.prepend(ripple.$rippleWaveEl);\n\n ripple.$rippleWaveEl.animationEnd(() => {\n if (!ripple.$rippleWaveEl) return;\n if (ripple.$rippleWaveEl.hasClass('ripple-wave-out')) return;\n ripple.$rippleWaveEl.addClass('ripple-wave-in');\n if (ripple.shouldBeRemoved) {\n ripple.out();\n }\n });\n\n return ripple;\n }\n\n destroy() {\n let ripple = this;\n if (ripple.$rippleWaveEl) {\n ripple.$rippleWaveEl.remove();\n }\n Object.keys(ripple).forEach((key) => {\n ripple[key] = null;\n delete ripple[key];\n });\n ripple = null;\n }\n\n out() {\n const ripple = this;\n const { $rippleWaveEl } = this;\n clearTimeout(ripple.removeTimeout);\n $rippleWaveEl.addClass('ripple-wave-out');\n\n ripple.removeTimeout = setTimeout(() => {\n ripple.destroy();\n }, 300);\n\n $rippleWaveEl.animationEnd(() => {\n clearTimeout(ripple.removeTimeout);\n ripple.destroy();\n });\n }\n\n remove() {\n const ripple = this;\n if (ripple.shouldBeRemoved) return;\n ripple.removeTimeout = setTimeout(() => {\n ripple.destroy();\n }, 400);\n ripple.shouldBeRemoved = true;\n if (ripple.$rippleWaveEl.hasClass('ripple-wave-in')) {\n ripple.out();\n }\n }\n}\n","import TouchRipple from './touch-ripple-class.js';\n\nexport default {\n name: 'touch-ripple',\n static: {\n TouchRipple,\n },\n create() {\n const app = this;\n app.touchRipple = {\n create(...args) {\n return new TouchRipple(...args);\n },\n };\n },\n};\n","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\n\nconst openedModals = [];\nconst dialogsQueue = [];\nfunction clearDialogsQueue() {\n if (dialogsQueue.length === 0) return;\n const dialog = dialogsQueue.shift();\n dialog.open();\n}\nclass Modal extends Framework7Class {\n constructor(app, params) {\n super(params, [app]);\n\n const modal = this;\n\n const defaults = {};\n\n // Extend defaults with modules params\n modal.useModulesParams(defaults);\n\n modal.params = extend(defaults, params);\n modal.opened = false;\n\n let $containerEl = modal.params.containerEl ? $(modal.params.containerEl).eq(0) : app.$el;\n if (!$containerEl.length) $containerEl = app.$el;\n\n modal.$containerEl = $containerEl;\n modal.containerEl = $containerEl[0];\n\n // Install Modules\n modal.useModules();\n\n return this;\n }\n\n onOpen() {\n const 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 onOpened() {\n const 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 onClose() {\n const 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 onClosed() {\n const modal = this;\n if (!modal.type || !modal.$el) return;\n modal.$el.removeClass('modal-out');\n modal.$el.hide();\n if (\n modal.params.backdrop &&\n (modal.params.backdropUnique || modal.forceBackdropUnique) &&\n modal.$backdropEl\n ) {\n modal.$backdropEl.remove();\n }\n modal.$el.trigger(`modal:closed ${modal.type.toLowerCase()}:closed`);\n modal.emit(`local::closed modalClosed ${modal.type}Closed`, modal);\n }\n\n open(animateModal) {\n const modal = this;\n const document = getDocument();\n const app = modal.app;\n const $el = modal.$el;\n const $backdropEl = modal.$backdropEl;\n const type = modal.type;\n let animate = true;\n if (typeof animateModal !== 'undefined') animate = animateModal;\n 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 return modal;\n }\n\n if (type === 'dialog' && app.params.modal.queueDialogs) {\n let pushToQueue;\n if ($('.dialog.modal-in').length > 0) {\n pushToQueue = true;\n } else if (openedModals.length > 0) {\n openedModals.forEach((openedModal) => {\n if (openedModal.type === 'dialog') pushToQueue = true;\n });\n }\n if (pushToQueue) {\n dialogsQueue.push(modal);\n return modal;\n }\n }\n\n const $modalParentEl = $el.parent();\n const wasInDom = $el.parents(document).length > 0;\n if (!$modalParentEl.is(modal.$containerEl)) {\n modal.$containerEl.append($el);\n modal.once(`${type}Closed`, () => {\n if (wasInDom) {\n $modalParentEl.append($el);\n } else {\n $el.remove();\n }\n });\n }\n // Show Modal\n $el.show();\n\n if (\n modal.params.backdrop &&\n (modal.params.backdropUnique || modal.forceBackdropUnique) &&\n modal.$backdropEl\n ) {\n modal.$backdropEl.insertBefore($el);\n }\n\n /* eslint no-underscore-dangle: [\"error\", { \"allow\": [\"_clientLeft\"] }] */\n modal._clientLeft = $el[0].clientLeft;\n\n // Modal\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 if (animate) {\n if ($backdropEl) {\n $backdropEl.removeClass('not-animated');\n $backdropEl.addClass('backdrop-in');\n }\n $el.animationEnd(() => {\n transitionEnd();\n });\n $el.transitionEnd(() => {\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 $el.removeClass('modal-out').addClass('modal-in not-animated');\n modal.onOpen();\n modal.onOpened();\n }\n\n return modal;\n }\n\n close(animateModal) {\n const modal = this;\n const $el = modal.$el;\n const $backdropEl = modal.$backdropEl;\n\n let animate = true;\n if (typeof animateModal !== 'undefined') animate = animateModal;\n 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 return modal;\n }\n\n // backdrop\n if ($backdropEl) {\n let needToHideBackdrop = true;\n if (modal.type === 'popup') {\n modal.$el\n .prevAll('.popup.modal-in')\n .add(modal.$el.nextAll('.popup.modal-in'))\n .each((popupEl) => {\n const popupInstance = popupEl.f7Modal;\n if (!popupInstance) return;\n if (\n popupInstance.params.closeByBackdropClick &&\n popupInstance.params.backdrop &&\n popupInstance.backdropEl === modal.backdropEl\n ) {\n needToHideBackdrop = false;\n }\n });\n }\n if (needToHideBackdrop) {\n $backdropEl[animate ? 'removeClass' : 'addClass']('not-animated');\n $backdropEl.removeClass('backdrop-in');\n }\n }\n\n // Modal\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 if (animate) {\n $el.animationEnd(() => {\n transitionEnd();\n });\n $el.transitionEnd(() => {\n transitionEnd();\n });\n $el.removeClass('modal-in').addClass('modal-out');\n // Emit close\n modal.onClose();\n } else {\n $el.addClass('not-animated').removeClass('modal-in').addClass('modal-out');\n // Emit close\n modal.onClose();\n modal.onClosed();\n }\n\n if (modal.type === 'dialog') {\n clearDialogsQueue();\n }\n\n return modal;\n }\n\n destroy() {\n const modal = this;\n if (modal.destroyed) return;\n modal.emit(`local::beforeDestroy modalBeforeDestroy ${modal.type}BeforeDestroy`, modal);\n if (modal.$el) {\n modal.$el.trigger(`modal:beforedestroy ${modal.type.toLowerCase()}:beforedestroy`);\n if (modal.$el.length && modal.$el[0].f7Modal) {\n delete modal.$el[0].f7Modal;\n }\n }\n deleteProps(modal);\n modal.destroyed = true;\n }\n}\n\nexport default Modal;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Modal from './modal-class.js';\n\nclass CustomModal extends Modal {\n constructor(app, params) {\n const extendedParams = extend(\n {\n backdrop: true,\n closeByBackdropClick: true,\n on: {},\n },\n params,\n );\n\n // Extends with open/close Modal methods;\n super(app, extendedParams);\n\n const customModal = this;\n\n customModal.params = extendedParams;\n\n // Find Element\n let $el;\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;\n }\n\n if ($el.length === 0) {\n return customModal.destroy();\n }\n let $backdropEl;\n if (customModal.params.backdrop) {\n $backdropEl = app.$el.children('.custom-modal-backdrop');\n if ($backdropEl.length === 0) {\n $backdropEl = $('<div class=\"custom-modal-backdrop\"></div>');\n app.$el.append($backdropEl);\n }\n }\n\n function handleClick(e) {\n if (!customModal || customModal.destroyed) return;\n if ($backdropEl && e.target === $backdropEl[0]) {\n customModal.close();\n }\n }\n\n customModal.on('customModalOpened', () => {\n if (customModal.params.closeByBackdropClick && customModal.params.backdrop) {\n app.on('click', handleClick);\n }\n });\n customModal.on('customModalClose', () => {\n if (customModal.params.closeByBackdropClick && customModal.params.backdrop) {\n app.off('click', handleClick);\n }\n });\n\n extend(customModal, {\n app,\n $el,\n el: $el[0],\n $backdropEl,\n backdropEl: $backdropEl && $backdropEl[0],\n type: 'customModal',\n });\n\n $el[0].f7Modal = customModal;\n\n return customModal;\n }\n}\nexport default CustomModal;\n","import Modal from './modal-class.js';\nimport CustomModal from './custom-modal-class.js';\n\nexport default {\n name: 'modal',\n static: {\n Modal,\n CustomModal,\n },\n create() {\n const app = this;\n app.customModal = {\n create(params) {\n return new CustomModal(app, params);\n },\n };\n },\n params: {\n modal: {\n queueDialogs: true,\n },\n },\n};\n","import $ from './shared/dom7.js';\n\nimport Framework7 from './components/app/app-class.js';\n\n//IMPORT_HELPERS\n\nimport DeviceModule from './modules/device/device.js';\nimport SupportModule from './modules/support/support.js';\nimport UtilsModule from './modules/utils/utils.js';\nimport ResizeModule from './modules/resize/resize.js';\nimport RequestModule from './modules/request/request.js';\nimport TouchModule from './modules/touch/touch.js';\nimport ClicksModule from './modules/clicks/clicks.js';\nimport RouterModule from './modules/router/router.js';\nimport RouterComponentLoaderModule from './modules/router/component-loader.js';\nimport ComponentModule, { Component, $jsx } from './modules/component/component.js';\nimport HistoryModule from './modules/history/history.js';\nimport ServiceWorkerModule from './modules/service-worker/service-worker.js';\nimport StoreModule, { createStore } from './modules/store/store.js';\n\nimport Statusbar from './components/statusbar/statusbar.js';\nimport View from './components/view/view.js';\nimport Navbar from './components/navbar/navbar.js';\nimport Toolbar from './components/toolbar/toolbar.js';\nimport Subnavbar from './components/subnavbar/subnavbar.js';\nimport TouchRipple from './components/touch-ripple/touch-ripple.js';\nimport Modal from './components/modal/modal.js';\nimport Router from './modules/router/router-class.js';\n\n//IMPORT_COMPONENTS\n\n// UMD_ONLY_START\nif (typeof window !== 'undefined') {\n // Dom7\n if (!window.Dom7) window.Dom7 = $;\n}\n// UMD_ONLY_END\n\nRouter.use([RouterComponentLoaderModule]);\n\nFramework7.use([\n DeviceModule,\n SupportModule,\n UtilsModule,\n ResizeModule,\n RequestModule,\n TouchModule,\n ClicksModule,\n RouterModule,\n HistoryModule,\n ComponentModule,\n ServiceWorkerModule,\n StoreModule,\n Statusbar,\n View,\n Navbar,\n Toolbar,\n Subnavbar,\n TouchRipple,\n Modal,\n //INSTALL_COMPONENTS\n]);\n\n//NAMED_EXPORT\nexport default Framework7;\n"],"names":["isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","makeReactive","proto","__proto__","defineProperty","get","set","value","Dom7","Array","items","arrayFlat","arr","res","el","isArray","push","arrayFilter","prototype","filter","call","arrayUnique","uniqueArray","i","indexOf","toCamelCase","string","toLowerCase","replace","match","group","toUpperCase","qsa","selector","context","a","$","html","trim","toCreate","tempParent","innerHTML","nodeType","fn","addClass","classes","classNames","map","c","split","classList","add","removeClass","remove","toggleClass","className","toggle","hasClass","contains","attr","attrs","arguments","getAttribute","undefined","attrName","removeAttr","removeAttribute","prop","props","propName","data","dom7ElementDataStorage","dataKey","removeData","dataset","attributes","name","parseFloat","val","multiple","values","selectedOptions","j","options","selected","transform","transition","duration","transitionDuration","on","args","eventType","targetSelector","listener","capture","handleLiveEvent","e","eventData","dom7EventData","unshift","is","apply","parents","k","handleEvent","events","event","dom7Listeners","proxyListener","dom7LiveListeners","off","handlers","handler","splice","dom7proxy","once","dom","eventName","onceHandler","eventArgs","trigger","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","fireCallBack","animationEnd","width","innerWidth","css","outerWidth","includeMargins","styles","offsetWidth","height","innerHeight","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","hide","display","show","each","index","result","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","els","newChild","tempDiv","firstChild","appendChild","appendTo","parent","prepend","insertBefore","prependTo","before","parentNode","cloneNode","insertAfter","after","nextSibling","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","siblings","closest","find","foundElements","found","removeChild","detach","toAdd","empty","scrollTo","easing","animate","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","scrollHeight","Math","max","min","scrollWidth","startTime","render","time","getTime","progress","easeProgress","cos","PI","done","initialProps","initialParams","assign","params","elements","animating","que","easingProgress","stop","frameId","element","dom7AnimateInstance","complete","shift","initialFullValue","initialValue","unit","finalValue","finalFullValue","container","currentValue","elementsDone","propsDone","began","begin","animateInstance","noTrigger","shortcut","eventHandler","click","focus","focusin","focusout","keyup","keydown","keypress","submit","change","mousedown","mousemove","mouseup","mouseenter","mouseleave","mouseout","mouseover","touchstart","touchend","touchmove","resize","scroll","methods","methodName","uniqueNum","uniqueNumber","mask","floor","random","mdPreloaderContent","iosPreloaderContent","join","auroraPreloaderContent","eventNameToColonCase","hasColon","char","deleteProps","object","nextTick","delay","nextFrame","now","parseUrlQuery","url","query","urlToParse","param","paramsPart","decodeURIComponent","slice","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","serializeObject","resultArray","separator","newParents","varName","parentParts","encodeURIComponent","varValue","toPush","String","o","merge","to","from","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","deep","colorHexToRgb","hex","h","m","r","g","b","exec","n","parseInt","colorRgbToHex","colorRgbToHsl","d","l","s","abs","colorHslToRgb","hp","x","rgb1","Number","isNaN","round","colorHsbToHsl","HSL","HSB","colorHslToHsb","t","colorThemeCSSProperties","rgb","hsl","hslShade","hslTint","shade","tint","bindMethods","instance","subKey","bind","flattenArray","arg","support","calcSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","passiveListener","checkPassiveListener","supportsPassive","opts","intersectionObserver","checkObserver","getSupport","deviceCalculated","calcDevice","platform","ua","device","ios","android","androidChrome","desktop","iphone","ipod","ipad","edge","ie","firefox","macos","windows","cordova","electron","capacitor","Capacitor","nwjs","screenWidth","screenHeight","nw","process","versions","iPadScreens","os","osVersion","webView","standalone","webview","pixelRatio","devicePixelRatio","DARK","LIGHT","prefersColorScheme","prefersColorTheme","theme","getDevice","overrides","reset","EventsClass","self","eventsParents","eventsListeners","priority","method","f7proxy","emit","local","eventsArray","localEvents","parentEvents","eventsParent","Framework7Class","useModuleParams","module","instanceParams","originalParams","paramKey","useModulesParams","modules","moduleName","useModule","moduleParams","modulePropName","moduleProp","moduleEventName","vnode","vnodeHooks","vnodeId","hookName","create","useModules","modulesParams","components","Class","use","installModule","static","install","ConstructorMethods","parameters","defaultSelector","Constructor","domProp","app","addMethods","$el","destroy","ModalMethods","open","targetEl","$targetPage","modalEl","$modalEl","f7Modal","close","$parentEl","$targetEl","fetchedModules","loadModule","moduleToLoad","Framework7","Promise","resolve","reject","modulePath","moduleObj","moduleFunc","Error","matchNamePattern","lazyModulesPath","scriptLoad","resolveScript","rejectScript","request","scriptContent","callbackId","callbackLoadName","scriptEl","componentLoader","xhr","status","styleLoad","resolveStyle","rtl","styleContent","styleEl","all","then","catch","err","passedParams","w","defaults","version","language","routes","initOnDeviceReady","init","autoDarkMode","iosTranslucentBars","iosTranslucentModals","component","componentUrl","getTheme","online","onLine","store","f7","initStore","mount","rootEl","$rootEl","mq","dark","light","colorSchemeListener","media","darkMode","__store","createStore","enableAutoDarkMode","addListener","disableAutoDarkMode","removeListener","initAppComponent","router","componentOptions","$elComponent","f7Component","initialized","loadModules","getVnodeHooks","hook","Events","metaStatusbar","content","utils","getSize","orientationchange","globals","jsonpRequests","RequestResponse","RequestError","requestOptions","globalsNoCallbacks","callbackName","async","cache","user","password","headers","xhrFields","statusCode","processData","dataType","contentType","timeout","proceedRequest","abortController","canceled","message","fireCallback","globalCallbackValue","optionCallbackValue","type","paramsPrefix","stringData","abortTimeout","callbackSplit","requestUrl","addVars","script","onerror","jsonpCallback","XMLHttpRequest","aborted","onAbort","abort","requestParameters","postData","postDataInstances","ArrayBuffer","Blob","Document","FormData","boundary","setRequestHeader","newData","JSON","stringify","Accept","headerName","crossDomain","test","RegExp","$2","onload","responseData","parseError","parse","responseText","responseType","response","statusText","ontimeout","send","requestShortcut","success","error","post","json","getJSON","postJSON","contoller","setup","initTouch","useRipple","touchStartX","touchStartY","targetElement","isMoved","tapHoldFired","tapHoldTimeout","preventClick","activableElement","activeTimeout","rippleWave","rippleTarget","rippleTimeout","findActivableElement","activeStateElements","activable","newActivable","preventPropagation","isInsideScrollableView","pageContent","addActive","removeActive","findRippleElement","rippleElements","touchRippleElements","rippleParent","createRipple","y","touchRipple","removeRipple","rippleTouchStart","inScrollable","rippleTouchMove","rippleTouchEnd","handleMouseDown","$activableEl","which","pageX","pageY","handleMouseMove","activeStateOnMouseMove","handleMouseUp","handleTouchCancel","activeState","isScrolling","isSegmentedStrong","segmentedStrongEl","touchMoveActivableIos","isTouchMoveActivable","touchmoveActivableEl","handleTouchStart","targetTouches","touches","tapHold","preventDefault","tapHoldDelay","handleTouchMove","distance","shouldRemoveActive","touchClicksDistanceThreshold","touchCurrentX","touchCurrentY","elementFromPoint","clientX","clientY","buttonEl","handleTouchEnd","tapHoldPreventClicks","handleClick","isOverswipe","isSegmented","localPreventClick","stopImmediatePropagation","stopPropagation","emitAppTouchEvent","appClick","appTouchStartActive","appTouchMoveActive","appTouchEndActive","appTouchStartPassive","appTouchMovePassive","appTouchEndPassive","passive","passiveListenerCapture","activeListener","activeListenerCapture","touchEvents","start","move","end","disableContextMenu","isNative","mdTouchRipple","iosTouchRipple","auroraTouchRipple","touchRippleInsetElements","History","queue","clearQueue","currentQueue","routerQueue","clearRouterQueue","pop","stateUrl","action","browserHistoryAnimate","browserHistory","navigate","handle","blockPopstate","state","previousState","allowChange","views","view","viewState","allowPageChange","initViewState","viewId","newState","substr","readyState","SwipeBack","$navbarsEl","isTouched","touchesStart","$currentPageEl","$previousPageEl","viewContainerWidth","touchesDiff","allowViewTouchMove","touchStartTime","$currentNavbarEl","$previousNavbarEl","dynamicNavbar","$pageShadowEl","$pageOpacityEl","animatableNavEls","paramsSwipeBackAnimateShadow","paramsSwipeBackAnimateOpacity","paramsSwipeBackActiveArea","paramsSwipeBackThreshold","transformOrigin","transformOriginTitleLarge","animatableNavElements","inverter","currentNavIsTransparent","currentNavIsLarge","currentNavIsCollapsed","currentNavIsLargeTransparent","previousNavIsTransparent","previousNavIsLarge","previousNavIsCollapsed","previousNavIsLargeTransparent","fromLarge","toLarge","$currentNavElements","$previousNavElements","activeNavBackIconText","previousNavBackIconText","iosAnimateNavbarBackIcon","f7NavbarLeftOffset","navEl","$navEl","isSubnavbar","isLeft","isTitle","isBg","overflow","subNavEl","opacity","isSliding","transformTarget","textEl","activeNavTranslate","f7NavbarRightOffset","previousNavTranslate","setAnimatableNavElements","reflow","_clientLeft","classNameSet","styleProp","swipeBackEnabled","swipeout","masterDetailBreakpoint","f7PreventSwipeBack","preventSwipeBack","cancel","notFromBorder","sheet","f7PreventSwipePanel","preventSwipePanelBySwipeBack","percentage","callbackData","currentPageEl","previousPageEl","currentNavbarEl","previousNavbarEl","currentPageTranslate","previousPageTranslate","swipeBackActive","$pages","timeDiff","pageChanged","setNavbarPosition","currentRoute","f7Page","route","currentPage","pageCallback","swipeBack","saveHistory","stackPages","initialPages","removePage","removeNavbar","previousRoute","preloadPreviousPage","preload","attachEvents","detachEvents","redirect","direction","initial","redirectResolve","redirectUrl","redirectOptions","redirectReject","processQueue","routeQueue","queueItem","processRouteQueue","enterNextRoute","routesBeforeEnter","beforeEnter","leaveCurrentRoute","routesBeforeLeave","beforeLeave","appRouterCheck","asyncComponent","resolvePromise","componentPromise","default","_default","asyncComponentResult","refreshPage","ignoreCache","reloadCurrent","forward","forwardOptions","reloadPages","reloadPrevious","reloadAll","clearPreviousHistory","reloadDetail","masterDetailEnabled","isMaster","master","masterPageEl","otherDetailPageEl","detailsInBetweenRemoved","currentRouteIsModal","modal","modalType","modalLoadProp","modalToClose","modalInstance","previousUrl","findMatchingRoute","path","modalRemove","$viewEl","$newPage","reload","$oldPage","$newNavbarEl","$oldNavbarEl","removeThemeElements","$navbarEl","keepAlive","keepAliveData","pageEl","$pagesInView","pageInView","$navbarsInView","navbarInView","isDetail","isDetailRoot","newPagePosition","position","role","root","detailRoot","navbar","getElByPage","navbarEl","removedPageEls","removedNavbarEls","oldNavbarEl","browserHistoryRoot","browserHistorySeparator","newPageInDom","componentEl","f7PageMounted","$oldPageEl","$oldNavbarElEl","tab","tabLoad","checkMasterDetailBreakpoint","setPagePosition","afterAnimation","keepOldPage","setPositionClasses","f7PageTransition","load","loadParams","loadOptions","ignorePageChange","pageName","parentPath","sameParams","paramName","allowDuplicateUrls","parseRouteUrl","newOptions","getPageEl","pageComponentLoader","routerEl","xhrAbortController","xhrRequest","navigateParams","navigateOptions","createRoute","generateUrl","navigateUrl","currentPath","viewName","anotherViewName","anotherView","openIn","ignoreOpenIn","routerLoaded","modalLoad","pageLoadProp","asyncResolve","resolveParams","resolveOptions","resolvedAsModal","modalRoute","asyncReject","masterRoute","preloadMaster","masterLoaded","pageAfterIn","tabRoute","parentPageEl","browserHistoryTabs","$parentPageEl","tabEl","tabShowResult","$newTabEl","$oldTabEl","animated","onTabsChanged","tabParentPageData","onTabLoaded","contentEl","tabEventTarget","unloadTabContent","tabRemove","f7RouterTabLoaded","loadTab","loadTabParams","loadTabOptions","tabComponentLoader","tabContent","hasContentLoadProp","tabLoadProp","hasTabComponentChild","tabChild","removeTabContent","isPanel","modalOrPanel","modalParams","routeCallback","modalOpen","panelOpen","modalClose","panelClose","modalClosed","panelClosed","onModalLoaded","hasEl","closeOnSwipeBack","closeByRouter","modalComponent","removeModal","loadModal","loadModalParams","loadModalOptions","modalComponentLoader","modalContent","foundLoadProp","backward","backwardOptions","masterPageRemoved","initialPreload","currentIsMaster","backIndex","force","pageToRemove","$pageToRemove","$navbarToRemove","insertPage","$previousPages","loadBack","backParams","backOptions","prevOpenedModals","forceOtherUrl","isBrokenBrowserHistory","needHistoryBack","currentRouteWithoutBrowserHistory","$previousPage","skipMaster","$previousMaster","expectedPreviousPageUrl","expectedPreviousPageRoute","previousPageRoute","backForceLoaded","clearPreviousPages","$pagesToRemove","panel","Router","isAppRouter","routerId","scrollHistory","iosDynamicNavbar","initialNavbars","configurable","newRoute","tempDom","navbarsEl","animateIcon","newNavEls","oldNavEls","animatableNavEl","$navbarInner","needsOpacityTransition","$iconEl","isIconLabel","leftOffset","rightOffset","navEls","otherEls","otherNavEl","iconTextEl","offsetLeft","$newPageEl","animateCustom","routerCustomTransitionClass","onCustomTransitionDone","routerTransitionClass","toDifferent","oldIsLarge","newIsLarge","betweenMasterAndDetail","animateNavbars","setProperty","onDone","removeEl","$tabEl","removeElements","removeElementsWithTimeout","removeElementsTimeout","findElement","stringSelector","notStacked","modalsSelector","$container","viewMainClass","flattenRoutes","flattenedRoutes","hasTabRoutes","tabs","mergedPathsRoutes","tRoute","concat","detailRoutes","detailRoute","dRoute","masterRoutePath","childRoute","cRoute","findRouteByKey","constructRouteUrl","toUrl","compile","findTabRouteUrl","tabId","foundTabRouteUrl","matchingRoute","pathsToMatch","alias","aliasPath","matched","pathToMatch","pathToRegexp","keyObj","paramValue","replaceRequestUrlParams","compiledUrl","regExp","removeFromXhrCache","xhrCache","hasQuery","passRouteQueryToRequest","passRouteParamsToRequest","xhrCacheIgnoreGetParameters","xhrCacheIgnore","cachedUrl","xhrCacheDuration","beforeSend","ariaHidden","toRemove","getPageData","pageFromEl","$pageEl","pageFrom","fromPage","$pageFromEl","page","restoreScrollTopOnBack","camelName","colonName","f7RouteEventsAttached","f7RouteEventsOn","f7RouteEventsOnce","$pageContent","pageContentEl","f7PageInitialized","browserHistoryStoreHistory","localStorage","restoreHistory","clearHistory","updateCurrentUrl","newUrl","getInitialUrl","initialUrl","historyRestored","URL","documentUrl","browserHistoryOnLoad","console","warn","iosSwipeBack","mdSwipeBack","auroraSwipeBack","browserHistoryAnimateOnLoad","browserHistoryInitialMatch","initUrl","loadInitialPage","hasTabRoute","initOptions","routerProp","templates","resizableView","resizableInitialized","resizable","resizableWidth","$htmlEl","$resizeHandlerEl","minWidth","maxWidth","transformCSSWidth","v","newV","isResizable","$pageMasterEl","newWidth","handleResize","View","viewParams","ssr","routesAdd","main","f7View","viewProp","wasMasterDetail","isMasterDetail","initMasterDetail","masterDetailResizable","viewEl","initRouterOnTabShow","initClicks","handleClicks","$clickedEl","$clickedLinkEl","isLink","clicks","externalLinks","InAppBrowser","Plugins","Browser","moduleClicks","preventF7Router","clickSelector","matchingClickedElement","clickedLinkData","clickedEl","validUrl","current","linksView","ViewClass","f7RouteProps","popup","loginScreen","popover","parts","side","effect","componentFunction","componentContext","f7route","f7router","componentProps","routeProps","componentRoot","createdComponent","cachedComponent","componentCache","cached","loadedComponent","parsedComponent","u","p","Map","ignoreChildren","$h","htm","is.array","is.primitive","SELF_CLOSING","PROPS_ATTRS","BOOLEAN_PROPS","getTagName","treeNode","word","propsFromAttrs","createCustomComponent","customComponents","elm","__component__","updateCustomComponent","newProps","update","destroyCustomComponent","isCustomComponent","treeNodeType","getHooks","isRoot","hooks","insert","postpatch","isFakeElement","tagName","isCustom","sel","oldVnode","class","vn","f","getEventHandler","prevent","fired","getData","attrValue","eventNamePart","eventNameIndex","prepatch","getChildren","nodes","childNode","treeNodeToVNode","getSlots","slotName","slotNodes","childTreeNode","childSlotName","slot","subTreeNode","isTreeNode","vdom","tree","invokeHandler","createListener","updateEvents","oldOn","oldListener","oldElm","patch","attributesModule","propsModule","styleModule","eventListenersModule","Component","generateId","md","aurora","__updateQueue","__eventHandlers","__onceEventHandlers","__onBeforeMount","__onMounted","__onBeforeUpdate","__onUpdated","__onBeforeUnmount","__onUnmounted","createComponent","getComponentContext","getRenderFuncion","componentResult","renderFunction","getComponentRef","getComponentStore","_gettersPlain","dispatch","$store","getters","Proxy","onUpdated","includeHooks","ctx","$f7route","$f7router","$id","$f7","$f7ready","f7ready","$theme","$tick","tick","$update","$emit","$ref","$on","$once","$onBeforeMount","$onMounted","$onBeforeUpdate","$onUpdated","$onBeforeUnmount","$onUnmounted","startUpdateQueue","__requestAnimationFrameId","newVNode","__updateIsPending","resolvers","resolver","__destroyed","setState","mountMethod","parseComponent","componentString","componentId","callbackCreateName","template","hasTemplate","item","scripts","registerComponent","unregisterComponent","SW","registrations","register","scope","serviceWorker","reg","unregister","registration","paths","toRegister","storeParams","originalState","actions","propsQueue","gettersDependencies","gettersCallbacks","getterKey","getGetterValue","addGetterDependencies","deps","dep","addGetterCallback","runGetterCallbacks","stateKey","removeGetterCallback","callbacks","__removeCallback","getterValue","addCallback","__callback","actionName","isCapacitor","StatusBar","Statusbar","onClick","setTextColor","color","styleLightContent","styleDefault","setStyle","setBackgroundColor","backgroundColorByHexString","isVisible","getInfo","info","visible","overlaysWebView","overlays","setOverlaysWebView","overlay","statusbar","enabled","isCordova","isCap","scrollTopOnClick","iosOverlaysWebView","iosTextColor","androidOverlaysWebView","androidTextColor","iosBackgroundColor","androidBackgroundColor","getCurrentView","$popoverView","$popupView","$panelView","$viewsEl","iosSwipeBackAnimateShadow","iosSwipeBackAnimateOpacity","iosSwipeBackActiveArea","iosSwipeBackThreshold","mdSwipeBackAnimateShadow","mdSwipeBackAnimateOpacity","mdSwipeBackActiveArea","mdSwipeBackThreshold","auroraSwipeBackAnimateShadow","auroraSwipeBackAnimateOpacity","auroraSwipeBackActiveArea","auroraSwipeBackThreshold","iosPageLoadDelay","mdPageLoadDelay","auroraPageLoadDelay","onOpen","onClose","Navbar","size","$innerEl","needCenterTitle","needLeftTitle","iosCenterTitle","right","title","subnavbar","noLeft","noRight","leftWidth","rightWidth","titleWidth","navbarStyles","navbarWidth","navbarInnerWidth","paddingLeft","paddingRight","isPrevious","sliding","currLeft","diff","requiredLeft","titleLeftOffset","titleRightOffset","activeNavbarBackLink","titleLeft","hideStatusbar","hideOnlyCurrent","isDynamic","currentIsLarge","subEl","pageData","getPageByEl","collapseLargeTitle","expandLargeTitle","toggleLargeTitle","initNavbarOnScroll","needHide","needCollapse","needTransparent","$titleLargeEl","isLarge","navbarHideHeight","snapPageScrollToLargeTitle","snapPageScrollToTransparentNavbar","previousScrollTop","currentScrollTop","reachEnd","navbarHidden","navbarCollapsed","navbarTitleLargeHeight","navbarOffsetHeight","scrollChanged","scrollContent","scrollTimeoutId","touchEndTimeoutId","touchSnapTimeout","desktopSnapTimeout","calcScrollableDistance","f7ScrollableDistance","snapLargeNavbar","inSearchbarExpanded","snapTransparentNavbar","handleNavbarTransparent","isHidden","notTransparent","previousCollapseProgress","collapseProgress","handleLargeNavbarCollapse","isLargeTransparent","scrollableDistance","previousCollapseWasInMiddle","handleTitleHideShow","showOnPageScrollEnd","showOnPageScrollTop","handleScroll","handeTouchStart","f7DetachNavbarScrollHandlers","scrollTopOnTitleClick","mdCenterTitle","auroraCenterTitle","hideOnPageScroll","collapseLargeTitleOnScroll","onPanelResize","pageBeforeRemove","pageBeforeIn","pageReinit","pageInit","needCollapseOnScrollHandler","needTransparentOnScroll","needHideOnScrollHandler","onPanelModalOpen","tabShow","onTitleClick","clickedData","$pageContentEl","Toolbar","setHighlight","tabbarEl","$tabbarEl","$highlightEl","tabLinksCount","$activeLink","highlightWidth","highlightTranslate","activeIndex","toolbar","initToolbarOnScroll","$toolbarEl","toolbarHidden","f7ScrollToolbarHandler","tabbar","$innerSubnavbars","subnavbarEl","TouchRipple","ripple","center","diameter","isInset","insetElements","distanceFromCenter","scale","rippleTransform","$rippleWaveEl","shouldBeRemoved","out","removeTimeout","openedModals","dialogsQueue","clearDialogsQueue","dialog","Modal","opened","$containerEl","containerEl","onOpened","onClosed","backdrop","backdropUnique","forceBackdropUnique","$backdropEl","animateModal","queueDialogs","pushToQueue","openedModal","$modalParentEl","wasInDom","needToHideBackdrop","popupEl","popupInstance","closeByBackdropClick","backdropEl","destroyed","CustomModal","extendedParams","customModal","RouterComponentLoaderModule","DeviceModule","SupportModule","UtilsModule","ResizeModule","RequestModule","TouchModule","ClicksModule","RouterModule","HistoryModule","ComponentModule","ServiceWorkerModule","StoreModule","Subnavbar"],"mappings":"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"}