framework7 7.0.0-beta.15 → 7.0.0-beta.20
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.
- package/components/accordion/accordion.lazy.js +1 -1
- package/components/actions/actions.js +10 -2
- package/components/actions/actions.lazy.js +1 -1
- package/components/app/app-class.js +15 -9
- package/components/area-chart/area-chart-class.js +34 -18
- package/components/area-chart/area-chart.lazy.js +1 -1
- package/components/autocomplete/autocomplete-class.js +5 -1
- package/components/autocomplete/autocomplete.lazy.js +1 -1
- package/components/calendar/calendar-class.js +10 -2
- package/components/calendar/calendar.js +5 -1
- package/components/calendar/calendar.lazy.js +1 -1
- package/components/card/card.js +23 -3
- package/components/card/card.lazy.js +1 -1
- package/components/color-picker/color-picker-class.js +19 -3
- package/components/color-picker/color-picker.js +5 -1
- package/components/color-picker/color-picker.lazy.js +1 -1
- package/components/data-table/data-table-class.js +5 -1
- package/components/data-table/data-table.lazy.js +1 -1
- package/components/dialog/dialog.js +30 -6
- package/components/dialog/dialog.lazy.js +1 -1
- package/components/fab/fab-rtl.css +1 -1
- package/components/fab/fab.css +1 -1
- package/components/fab/fab.js +15 -3
- package/components/fab/fab.lazy.js +1 -1
- package/components/form/form.lazy.js +1 -1
- package/components/gauge/gauge-class.js +10 -2
- package/components/gauge/gauge.lazy.js +1 -1
- package/components/input/input.js +5 -1
- package/components/input/input.lazy.js +1 -1
- package/components/list-index/list-index-class.js +5 -1
- package/components/list-index/list-index.lazy.js +1 -1
- package/components/login-screen/login-screen.js +10 -2
- package/components/login-screen/login-screen.lazy.js +1 -1
- package/components/menu/menu.js +10 -2
- package/components/menu/menu.lazy.js +1 -1
- package/components/messagebar/messagebar-class.js +25 -5
- package/components/messagebar/messagebar.lazy.js +1 -1
- package/components/messages/messages-class.js +60 -24
- package/components/messages/messages-rtl.css +1 -1
- package/components/messages/messages.css +1 -1
- package/components/messages/messages.lazy.js +1 -1
- package/components/navbar/navbar.js +26 -2
- package/components/panel/panel-class.js +35 -7
- package/components/panel/panel.js +40 -8
- package/components/panel/panel.lazy.js +1 -1
- package/components/photo-browser/photo-browser-class.js +42 -8
- package/components/photo-browser/photo-browser.lazy.js +1 -1
- package/components/picker/picker-class.js +5 -1
- package/components/picker/picker.js +5 -1
- package/components/picker/picker.lazy.js +1 -1
- package/components/pie-chart/pie-chart-class.js +16 -7
- package/components/pie-chart/pie-chart.lazy.js +1 -1
- package/components/popover/popover-class.js +5 -1
- package/components/popover/popover.js +10 -2
- package/components/popover/popover.lazy.js +1 -1
- package/components/popup/popup.js +10 -2
- package/components/popup/popup.lazy.js +1 -1
- package/components/preloader/preloader-rtl.css +1 -1
- package/components/preloader/preloader.css +1 -1
- package/components/preloader/preloader.js +10 -2
- package/components/preloader/preloader.lazy.js +1 -1
- package/components/progressbar/progressbar.js +16 -3
- package/components/progressbar/progressbar.lazy.js +1 -1
- package/components/pull-to-refresh/pull-to-refresh-class.js +5 -1
- package/components/pull-to-refresh/pull-to-refresh.lazy.js +1 -1
- package/components/range/range.js +10 -2
- package/components/range/range.lazy.js +1 -1
- package/components/searchbar/searchbar-class.js +5 -1
- package/components/searchbar/searchbar.js +20 -4
- package/components/searchbar/searchbar.lazy.js +1 -1
- package/components/sheet/sheet-class.js +5 -1
- package/components/sheet/sheet.js +10 -2
- package/components/sheet/sheet.lazy.js +1 -1
- package/components/smart-select/smart-select-class.js +15 -3
- package/components/smart-select/smart-select.lazy.js +1 -1
- package/components/sortable/sortable.js +30 -6
- package/components/sortable/sortable.lazy.js +1 -1
- package/components/statusbar/statusbar.js +5 -1
- package/components/stepper/stepper.js +10 -2
- package/components/stepper/stepper.lazy.js +1 -1
- package/components/swipeout/swipeout.js +16 -3
- package/components/swipeout/swipeout.lazy.js +1 -1
- package/components/swiper/swiper.lazy.js +1 -1
- package/components/tabs/tabs.js +10 -2
- package/components/tabs/tabs.lazy.js +1 -1
- package/components/toggle/toggle-class.js +5 -1
- package/components/toggle/toggle.lazy.js +1 -1
- package/components/toolbar/toolbar.js +10 -2
- package/components/tooltip/tooltip-class.js +5 -1
- package/components/tooltip/tooltip.lazy.js +1 -1
- package/components/touch-ripple/touch-ripple.js +5 -1
- package/components/treeview/treeview.lazy.js +1 -1
- package/components/view/view-class.js +5 -1
- package/components/virtual-list/virtual-list-class.js +10 -2
- package/components/virtual-list/virtual-list.lazy.js +1 -1
- package/framework7-bundle-rtl.css +4 -4
- package/framework7-bundle-rtl.min.css +3 -3
- package/framework7-bundle.css +4 -4
- package/framework7-bundle.esm.js +2 -2
- package/framework7-bundle.js +1646 -461
- package/framework7-bundle.js.map +1 -1
- package/framework7-bundle.less +2 -2
- package/framework7-bundle.min.css +3 -3
- package/framework7-bundle.min.js +3 -3
- package/framework7-bundle.min.js.map +1 -1
- package/framework7-lite-bundle.esm.js +2 -2
- package/framework7-lite.esm.js +2 -2
- package/framework7-rtl.css +2 -2
- package/framework7-rtl.min.css +2 -2
- package/framework7.css +2 -2
- package/framework7.esm.js +2 -2
- package/framework7.js +562 -174
- package/framework7.js.map +1 -1
- package/framework7.less +2 -2
- package/framework7.min.css +2 -2
- package/framework7.min.js +3 -3
- package/framework7.min.js.map +1 -1
- package/modules/component/$h.js +5 -1
- package/modules/component/$jsx.js +5 -1
- package/modules/component/component-class.js +35 -22
- package/modules/component/component.js +7 -6
- package/modules/component/eventslisteners.js +5 -1
- package/modules/component/snabbdom/h.js +1 -1
- package/modules/component/vdom.js +32 -17
- package/modules/router/back.js +5 -5
- package/modules/router/component-loader.js +34 -23
- package/modules/router/modal.js +5 -1
- package/modules/router/navigate.js +19 -3
- package/modules/router/redirect.js +5 -1
- package/modules/router/router-class.js +39 -10
- package/modules/router/swipe-back.js +7 -6
- package/modules/router/tab.js +5 -1
- package/modules/store/create-store.js +10 -2
- package/package.json +3 -2
- package/shared/$jsx.js +6 -1
- package/shared/class.js +33 -5
- package/shared/constructor-methods.js +25 -4
- package/shared/events-class.js +15 -3
- package/shared/get-device.js +9 -4
- package/shared/modal-methods.js +10 -2
- package/shared/request.js +45 -7
- package/shared/utils.js +47 -10
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,\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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"}
|
|
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.js';\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","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","els","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","lexer","str","tokens","code","charCodeAt","TypeError","count","pattern","_a","defaultPattern","escapeString","delimiter","path","tryConsume","mustConsume","nextType","consumeText","prefix","prefixes","suffix","modifier","name_1","pattern_1","compile","tokensToFunction","reFlags","flags","_b","validate","token","optional","repeat","segment","encode","typeOfMessage","sensitive","regexpToRegexp","groupsRegex","execResult","source","arrayToRegexp","paths","parts","stringToRegexp","tokensToRegexp","_c","_d","endsWith","route","_i","mod","strict","endToken","isEndDelimited","pathToRegexp","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","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","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","findTabRouteUrl","tabId","foundTabRouteUrl","matchingRoute","pathsToMatch","alias","aliasPath","matched","pathToMatch","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","side","effect","componentFunction","componentContext","f7route","f7router","componentProps","routeProps","componentRoot","createdComponent","cachedComponent","componentCache","cached","loadedComponent","parsedComponent","u","p","Map","ignoreChildren","$h","htm","sel","elm","array","ns","childData","addNS","SELF_CLOSING","PROPS_ATTRS","BOOLEAN_PROPS","getTagName","treeNode","word","propsFromAttrs","createCustomComponent","customComponents","__component__","updateCustomComponent","newProps","update","destroyCustomComponent","isCustomComponent","treeNodeType","getHooks","isRoot","hooks","insert","postpatch","isFakeElement","tagName","isCustom","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","namespaceURI","qualifiedName","createTextNode","createComment","newNode","referenceNode","node","setTextContent","getTextContent","isElement","isText","isComment","emptyNode","vnode1","vnode2","beginIdx","endIdx","ch","domApi","cbs","api","htmlDomApi","childElm","listeners","parent_1","insertedVnodeQueue","isDef","isUndef","hashIdx","dotIdx","dot","tag","createElm","parentElm","vnodes","startIdx","invokeDestroyHook","i_1","rm","createRmCb","oldCh","newCh","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","oldKeyToIdx","idxInOld","elmToMove","sameVnode","patchVnode","createKeyToOldIdx","addVnodes","removeVnodes","updateChildren","pre","isVnode","emptyNodeAt","xlinkNS","xmlNS","colonChar","xChar","oldAttrs","cur","old","setAttributeNS","attributesModule","updateAttrs","oldProps","propsModule","updateProps","raf","oldStyle","oldHasDel","removeProperty","delayed","name2","setNextFrame","compStyle","amount","applied","ev","styleModule","updateStyle","applyDestroyStyle","applyRemoveStyle","invokeHandler","createListener","updateEvents","oldOn","oldListener","oldElm","patch","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","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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"}
|