UNPKG

931 kBSource Map (JSON)View Raw
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.module.js","../../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 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf('<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 var tempParent = document.createElement(toCreate);\n tempParent.innerHTML = html;\n\n for (var 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\nfunction addClass() {\n for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) {\n classes[_key] = arguments[_key];\n }\n\n var classNames = arrayFlat(classes.map(function (c) {\n return c.split(' ');\n }));\n this.forEach(function (el) {\n var _el$classList;\n\n (_el$classList = el.classList).add.apply(_el$classList, classNames);\n });\n return this;\n}\n\nfunction removeClass() {\n for (var _len2 = arguments.length, classes = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n classes[_key2] = arguments[_key2];\n }\n\n var classNames = arrayFlat(classes.map(function (c) {\n return c.split(' ');\n }));\n this.forEach(function (el) {\n var _el$classList2;\n\n (_el$classList2 = el.classList).remove.apply(_el$classList2, classNames);\n });\n return this;\n}\n\nfunction toggleClass() {\n for (var _len3 = arguments.length, classes = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n classes[_key3] = arguments[_key3];\n }\n\n var classNames = arrayFlat(classes.map(function (c) {\n return c.split(' ');\n }));\n this.forEach(function (el) {\n classNames.forEach(function (className) {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass() {\n for (var _len4 = arguments.length, classes = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n classes[_key4] = arguments[_key4];\n }\n\n var classNames = arrayFlat(classes.map(function (c) {\n return c.split(' ');\n }));\n return arrayFilter(this, function (el) {\n return classNames.filter(function (className) {\n return el.classList.contains(className);\n }).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 (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import * as methods from 'dom7';\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';\n\nlet deviceCalculated;\n\nfunction calcDevice({ userAgent } = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n iphone: false,\n ipod: false,\n ipad: false,\n edge: false,\n ie: false,\n firefox: false,\n macos: false,\n windows: false,\n cordova: !!(window.cordova || window.phonegap),\n phonegap: !!(window.cordova || window.phonegap),\n electron: false,\n nwjs: false,\n };\n\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n const edge = ua.indexOf('Edge/') >= 0;\n const firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n const windows = platform === 'Win32';\n const electron = ua.toLowerCase().indexOf('electron') >= 0;\n const nwjs =\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 && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Webview\n device.webView =\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';\nimport EventsClass from './events-class';\n\nclass Framework7Class extends EventsClass {\n constructor(params = {}, parents = []) {\n super(parents);\n const self = this;\n self.params = params;\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach((eventName) => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n\n // eslint-disable-next-line\n useModuleParams(module, instanceParams) {\n if (module.params) {\n const originalParams = {};\n Object.keys(module.params).forEach((paramKey) => {\n if (typeof instanceParams[paramKey] === 'undefined') return;\n originalParams[paramKey] = 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';\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';\nimport { extend } from './utils';\nimport ConstructorMethods from './constructor-methods';\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';\nimport $ from '../../shared/dom7';\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}.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.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';\nimport { getDevice } from '../../shared/get-device';\nimport { getSupport } from '../../shared/get-support';\nimport Framework7Class from '../../shared/class';\nimport EventsClass from '../../shared/events-class';\nimport ConstructorMethods from '../../shared/constructor-methods';\nimport ModalMethods from '../../shared/modal-methods';\nimport $ from '../../shared/dom7';\nimport loadModule from './load-module';\n\nclass Framework7 extends Framework7Class {\n constructor(params = {}) {\n super(params);\n if (Framework7.instance) {\n throw new Error(\"Framework7 is already initialized and can't be initialized more than once\");\n }\n 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 window = getWindow();\n const document = 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: window.navigator.language,\n routes: [],\n name: 'Framework7',\n lazyModulesPath: null,\n initOnDeviceReady: true,\n init: true,\n autoDarkTheme: false,\n iosTranslucentBars: true,\n iosTranslucentModals: true,\n component: undefined,\n componentUrl: undefined,\n 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: window.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 $(document).on('deviceready', () => {\n app.init();\n });\n } else {\n app.init();\n }\n }\n\n // Return app instance\n return app;\n }\n\n 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 Theme\n const DARK = '(prefers-color-scheme: dark)';\n const LIGHT = '(prefers-color-scheme: light)';\n app.mq = {};\n if (window.matchMedia) {\n app.mq.dark = window.matchMedia(DARK);\n app.mq.light = window.matchMedia(LIGHT);\n }\n app.colorSchemeListener = function colorSchemeListener({ matches, media }) {\n if (!matches) {\n return;\n }\n const html = document.querySelector('html');\n if (media === DARK) {\n html.classList.add('theme-dark');\n app.darkTheme = true;\n app.emit('darkThemeChange', true);\n } else if (media === LIGHT) {\n html.classList.remove('theme-dark');\n app.darkTheme = false;\n app.emit('darkThemeChange', false);\n }\n };\n 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 enableAutoDarkTheme() {\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('theme-dark');\n app.darkTheme = true;\n app.emit('darkThemeChange', true);\n } else if (app.mq.light && app.mq.light.matches) {\n html.classList.remove('theme-dark');\n app.darkTheme = false;\n app.emit('darkThemeChange', false);\n }\n }\n\n disableAutoDarkTheme() {\n 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 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 Theme\n if (app.params.autoDarkTheme) {\n app.enableAutoDarkTheme();\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';\n\nexport default {\n name: 'device',\n static: {\n getDevice,\n },\n on: {\n init() {\n const document = getDocument();\n const device = getDevice();\n const classNames = [];\n const html = document.querySelector('html');\n const metaStatusbar = document.querySelector(\n 'meta[name=\"apple-mobile-web-app-status-bar-style\"]',\n );\n if (!html) return;\n if (\n device.standalone &&\n device.ios &&\n metaStatusbar &&\n metaStatusbar.content === 'black-translucent'\n ) {\n classNames.push('device-full-viewport');\n }\n\n // Pixel Ratio\n classNames.push(`device-pixel-ratio-${Math.floor(device.pixelRatio)}`);\n // OS classes\n if (device.os && !device.desktop) {\n classNames.push(`device-${device.os}`);\n } else if (device.desktop) {\n classNames.push('device-desktop');\n if (device.os) {\n classNames.push(`device-${device.os}`);\n }\n }\n if (device.cordova || device.phonegap) {\n classNames.push('device-cordova');\n }\n\n // Add html classes\n classNames.forEach((className) => {\n html.classList.add(className);\n });\n },\n },\n};\n","import { getSupport } from '../../shared/get-support';\n\nexport default {\n name: 'support',\n static: {\n getSupport,\n },\n};\n","import * as utils from '../../shared/utils';\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';\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';\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';\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';\nimport { getSupport } from '../../shared/get-support';\nimport { getDevice } from '../../shared/get-device';\nimport { extend } from '../../shared/utils';\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 function handleTouchStart(e) {\n isMoved = false;\n tapHoldFired = false;\n preventClick = false;\n if (e.targetTouches.length > 1) {\n if (activableElement) removeActive();\n return true;\n }\n if (e.touches.length > 1 && activableElement) {\n removeActive();\n }\n if (params.tapHold) {\n if (tapHoldTimeout) clearTimeout(tapHoldTimeout);\n tapHoldTimeout = setTimeout(() => {\n if (e && e.touches && e.touches.length > 1) return;\n tapHoldFired = true;\n e.preventDefault();\n preventClick = true;\n $(e.target).trigger('taphold', e);\n app.emit('taphold', e);\n }, params.tapHoldDelay);\n }\n targetElement = e.target;\n touchStartX = e.targetTouches[0].pageX;\n touchStartY = e.targetTouches[0].pageY;\n\n if (params.activeState) {\n activableElement = findActivableElement(targetElement);\n if (activableElement && !isInsideScrollableView(activableElement)) {\n addActive();\n } else if (activableElement) {\n activeTimeout = setTimeout(addActive, 80);\n }\n }\n if (useRipple) {\n rippleTouchStart(targetElement, touchStartX, touchStartY);\n }\n return true;\n }\n function handleTouchMove(e) {\n let touch;\n let distance;\n if (e.type === 'touchmove') {\n touch = e.targetTouches[0];\n distance = params.touchClicksDistanceThreshold;\n }\n\n if (distance && touch) {\n const pageX = touch.pageX;\n const pageY = touch.pageY;\n if (Math.abs(pageX - touchStartX) > distance || Math.abs(pageY - touchStartY) > distance) {\n isMoved = true;\n }\n } else {\n isMoved = true;\n }\n if (isMoved) {\n preventClick = true;\n if (params.tapHold) {\n clearTimeout(tapHoldTimeout);\n }\n if (params.activeState) {\n clearTimeout(activeTimeout);\n removeActive();\n }\n if (useRipple) {\n rippleTouchMove();\n }\n }\n }\n function handleTouchEnd(e) {\n clearTimeout(activeTimeout);\n clearTimeout(tapHoldTimeout);\n if (document.activeElement === e.target) {\n if (params.activeState) removeActive();\n if (useRipple) {\n rippleTouchEnd();\n }\n return true;\n }\n if (params.activeState) {\n addActive();\n setTimeout(removeActive, 0);\n }\n if (useRipple) {\n rippleTouchEnd();\n }\n if ((params.tapHoldPreventClicks && tapHoldFired) || preventClick) {\n if (e.cancelable) e.preventDefault();\n preventClick = true;\n return false;\n }\n return true;\n }\n function handleClick(e) {\n const isOverswipe = e && e.detail && e.detail === 'f7Overswipe';\n let localPreventClick = preventClick;\n if (targetElement && e.target !== targetElement) {\n if (isOverswipe) {\n localPreventClick = false;\n } else {\n localPreventClick = true;\n }\n }\n if (params.tapHold && params.tapHoldPreventClicks && tapHoldFired) {\n localPreventClick = true;\n }\n if (localPreventClick) {\n e.stopImmediatePropagation();\n e.stopPropagation();\n e.preventDefault();\n }\n\n if (params.tapHold) {\n tapHoldTimeout = setTimeout(\n () => {\n tapHoldFired = false;\n },\n device.ios || device.androidChrome ? 100 : 400,\n );\n }\n preventClick = false;\n targetElement = null;\n\n return !localPreventClick;\n }\n\n function emitAppTouchEvent(name, e) {\n app.emit({\n events: name,\n data: [e],\n });\n }\n function appClick(e) {\n emitAppTouchEvent('click', e);\n }\n function appTouchStartActive(e) {\n emitAppTouchEvent('touchstart touchstart:active', e);\n }\n function appTouchMoveActive(e) {\n emitAppTouchEvent('touchmove touchmove:active', e);\n }\n function appTouchEndActive(e) {\n emitAppTouchEvent('touchend touchend:active', e);\n }\n function appTouchStartPassive(e) {\n emitAppTouchEvent('touchstart:passive', e);\n }\n function appTouchMovePassive(e) {\n emitAppTouchEvent('touchmove:passive', e);\n }\n function appTouchEndPassive(e) {\n emitAppTouchEvent('touchend:passive', e);\n }\n\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 (params.disableContextMenu && (device.ios || device.android || device.cordova)) {\n e.preventDefault();\n }\n if (useRipple) {\n if (activableElement) removeActive();\n rippleTouchEnd();\n }\n });\n}\n\nexport default {\n name: 'touch',\n params: {\n touch: {\n // Clicks\n touchClicksDistanceThreshold: 5,\n // ContextMenu\n disableContextMenu: false,\n // Tap Hold\n tapHold: false,\n tapHoldDelay: 750,\n tapHoldPreventClicks: true,\n // Active State\n activeState: true,\n activeStateElements:\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';\nimport { extend } from './utils';\n\nconst History = {\n queue: [],\n clearQueue() {\n if (History.queue.length === 0) return;\n const currentQueue = History.queue.shift();\n currentQueue();\n },\n routerQueue: [],\n clearRouterQueue() {\n if (History.routerQueue.length === 0) return;\n const currentQueue = History.routerQueue.pop();\n const { router, stateUrl, action } = currentQueue;\n\n let animate = router.params.animate;\n if (router.params.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';\nimport History from '../../shared/history';\nimport { getSupport } from '../../shared/get-support';\nimport { getDevice } from '../../shared/get-device';\nimport { now } from '../../shared/utils';\n\nfunction SwipeBack(r) {\n 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';\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 });\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 });\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';\nimport { extend, parseUrlQuery } from '../../shared/utils';\nimport History from '../../shared/history';\nimport redirect from './redirect';\nimport processRouteQueue from './process-route-queue';\nimport appRouterCheck from './app-router-check';\nimport asyncComponent from './async-component';\n\nfunction refreshPage() {\n 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 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-url=\"${url}\"></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-url=\"${url}\"></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-url=\"${url}\"></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-url=\"${url}\"></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-url=\"${url}\"></div></div>`;\n navigateOptions.route.panel = params;\n }\n return router.navigate(navigateOptions);\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 (options.openIn) {\n return 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 });\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';\nimport { extend } from '../../shared/utils';\nimport History from '../../shared/history';\nimport asyncComponent from './async-component';\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.replace(\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 });\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';\nimport History from '../../shared/history';\nimport asyncComponent from './async-component';\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) {\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 });\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';\nimport { extend, parseUrlQuery } from '../../shared/utils';\nimport { getDevice } from '../../shared/get-device';\nimport History from '../../shared/history';\nimport redirect from './redirect';\nimport processRouteQueue from './process-route-queue';\nimport appRouterCheck from './app-router-check';\nimport asyncComponent from './async-component';\n\nfunction backward(router, el, backwardOptions) {\n 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 {\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\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 });\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';\nimport appRouterCheck from './app-router-check';\n\nfunction clearPreviousPages(router) {\n appRouterCheck(router, 'clearPreviousPages');\n const app = router.app;\n const dynamicNavbar = router.dynamicNavbar;\n\n const $pagesToRemove = router.$el.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';\nimport Framework7Class from '../../shared/class';\nimport {\n extend,\n nextFrame,\n parseUrlQuery,\n serializeObject,\n now,\n eventNameToColonCase,\n} from '../../shared/utils';\nimport History from '../../shared/history';\nimport SwipeBack from './swipe-back';\n\nimport { refreshPage, navigate } from './navigate';\nimport { tabLoad, tabRemove } from './tab';\nimport { modalLoad, modalRemove } from './modal';\nimport { back } from './back';\nimport { clearPreviousHistory } from './clear-previous-history';\nimport appRouterCheck from './app-router-check';\n\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 url += `?${serializeObject(query)}`;\n }\n\n return url;\n }\n\n findTabRoute(tabEl) {\n const router = this;\n const $tabEl = $(tabEl);\n const parentPath = router.currentRoute.route.parentPath;\n const tabId = $tabEl.attr('id');\n const flattenedRoutes = router.flattenRoutes(router.routes);\n let foundTabRoute;\n flattenedRoutes.forEach((route) => {\n if (route.parentPath === parentPath && route.tab && route.tab.id === tabId) {\n foundTabRoute = route;\n }\n });\n return foundTabRoute;\n }\n\n findRouteByKey(key, value) {\n const router = this;\n const routes = router.routes;\n const flattenedRoutes = router.flattenRoutes(routes);\n let matchingRoute;\n\n flattenedRoutes.forEach((route) => {\n if (matchingRoute) return;\n if (route[key] === value) {\n matchingRoute = route;\n }\n });\n return matchingRoute;\n }\n\n findMatchingRoute(url) {\n if (!url) return undefined;\n const router = this;\n const routes = router.routes;\n const flattenedRoutes = router.flattenRoutes(routes);\n const { path, query, hash, params } = router.parseRouteUrl(url);\n let matchingRoute;\n flattenedRoutes.forEach((route) => {\n if (matchingRoute) return;\n const keys = [];\n\n const pathsToMatch = [route.path];\n if (route.alias) {\n if (typeof route.alias === 'string') pathsToMatch.push(route.alias);\n else if (Array.isArray(route.alias)) {\n route.alias.forEach((aliasPath) => {\n pathsToMatch.push(aliasPath);\n });\n }\n }\n\n let matched;\n pathsToMatch.forEach((pathToMatch) => {\n if (matched) return;\n matched = pathToRegexp(pathToMatch, keys).exec(path);\n });\n\n if (matched) {\n keys.forEach((keyObj, index) => {\n if (typeof keyObj.name === 'number') return;\n const paramValue = matched[index + 1];\n if (typeof paramValue === 'undefined' || paramValue === null) {\n params[keyObj.name] = paramValue;\n } else {\n params[keyObj.name] = decodeURIComponent(paramValue);\n }\n });\n\n let parentPath;\n if (route.parentPath) {\n parentPath = path\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 &&\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';\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';\nimport { extend } from '../../shared/utils';\nimport { getSupport } from '../../shared/get-support';\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';\nimport { extend } from '../../shared/utils';\nimport Router from '../../modules/router/router';\nimport Framework7Class from '../../shared/class';\nimport resizableView from './resizable-view';\n\nclass View extends Framework7Class {\n constructor(app, el, viewParams = {}) {\n super(viewParams, [app]);\n\n const view = this;\n\n const ssr = view.params.routerId;\n\n const defaults = {\n routes: [],\n routesAdd: [],\n };\n\n if (!ssr) {\n const $el = $(el);\n if (!$el.length) {\n let message = \"Framework7: can't create a View instance because \";\n message +=\n typeof el === 'string'\n ? `the selector \"${el}\" didn't match any element`\n : 'el must be an HTMLElement or Dom7 object';\n\n throw new Error(message);\n }\n }\n\n // Default View params\n view.params = extend({ el }, defaults, app.params.view, viewParams);\n\n // Routes\n if (view.params.routes.length > 0) {\n view.routes = view.params.routes;\n } else {\n view.routes = [].concat(app.routes, view.params.routesAdd);\n }\n\n // View Props\n extend(false, view, {\n app,\n name: view.params.name,\n main: view.params.main,\n history: [],\n scrollHistory: {},\n });\n\n // Install Modules\n view.useModules();\n\n // Add to app\n app.views.push(view);\n if (view.main) {\n app.views.main = view;\n }\n if (view.name) {\n app.views[view.name] = view;\n }\n\n // Index\n view.index = app.views.indexOf(view);\n\n // View ID\n let viewId;\n if (view.name) {\n viewId = `view_${view.name}`;\n } else if (view.main) {\n viewId = 'view_main';\n } else {\n viewId = `view_${view.index}`;\n }\n view.id = viewId;\n\n if (!view.params.init) {\n return view;\n }\n // Init View\n if (app.initialized) {\n view.init();\n } else {\n app.on('init', () => {\n view.init();\n });\n }\n\n return view;\n }\n\n destroy() {\n let view = this;\n const app = view.app;\n\n view.$el.trigger('view:beforedestroy');\n view.emit('local::beforeDestroy viewBeforeDestroy', view);\n\n app.off('resize', view.checkMasterDetailBreakpoint);\n\n if (view.main) {\n app.views.main = null;\n delete app.views.main;\n } else if (view.name) {\n app.views[view.name] = null;\n delete app.views[view.name];\n }\n view.$el[0].f7View = null;\n delete view.$el[0].f7View;\n\n app.views.splice(app.views.indexOf(view), 1);\n\n // Destroy Router\n if (view.params.router && view.router) {\n view.router.destroy();\n }\n\n view.emit('local::destroy viewDestroy', view);\n\n // Delete props & methods\n Object.keys(view).forEach((viewProp) => {\n view[viewProp] = null;\n delete view[viewProp];\n });\n\n view = null;\n }\n\n checkMasterDetailBreakpoint(force) {\n const view = this;\n const app = view.app;\n const wasMasterDetail = view.$el.hasClass('view-master-detail');\n const isMasterDetail =\n app.width >= view.params.masterDetailBreakpoint && view.$el.children('.page-master').length;\n if ((typeof force === 'undefined' && isMasterDetail) || force === true) {\n view.$el.addClass('view-master-detail');\n if (!wasMasterDetail) {\n view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view);\n view.$el.trigger('view:masterDetailBreakpoint');\n }\n } else {\n view.$el.removeClass('view-master-detail');\n if (wasMasterDetail) {\n view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view);\n view.$el.trigger('view:masterDetailBreakpoint');\n }\n }\n }\n\n initMasterDetail() {\n const view = this;\n const app = view.app;\n view.checkMasterDetailBreakpoint = view.checkMasterDetailBreakpoint.bind(view);\n view.checkMasterDetailBreakpoint();\n if (view.params.masterDetailResizable) {\n resizableView(view);\n }\n app.on('resize', view.checkMasterDetailBreakpoint);\n }\n\n mount(viewEl) {\n const view = this;\n const app = view.app;\n const el = view.params.el || viewEl;\n const $el = $(el);\n\n // Selector\n let selector;\n if (typeof el === 'string') selector = el;\n else {\n // Supposed to be HTMLElement or Dom7\n selector =\n ($el.attr('id') ? `#${$el.attr('id')}` : '') +\n ($el.attr('class')\n ? `.${$el.attr('class').replace(/ /g, '.').replace('.active', '')}`\n : '');\n }\n\n // DynamicNavbar\n let $navbarsEl;\n if (app.theme === 'ios' && view.params.iosDynamicNavbar) {\n $navbarsEl = $el.children('.navbars').eq(0);\n if ($navbarsEl.length === 0) {\n $navbarsEl = $('<div class=\"navbars\"></div>');\n }\n }\n\n extend(view, {\n $el,\n el: $el[0],\n main: view.main || $el.hasClass('view-main'),\n $navbarsEl,\n navbarsEl: $navbarsEl ? $navbarsEl[0] : undefined,\n selector,\n });\n\n if (view.main) {\n app.views.main = view;\n }\n\n // Save in DOM\n if ($el && $el[0]) {\n $el[0].f7View = view;\n }\n\n view.emit('local::mount viewMount', view);\n }\n\n init(viewEl) {\n const view = this;\n view.mount(viewEl);\n if (view.params.router) {\n if (view.params.masterDetailBreakpoint > 0) {\n view.initMasterDetail();\n }\n view.router.init();\n view.$el.trigger('view:init');\n view.emit('local::init viewInit', view);\n }\n }\n}\n\n// Use Router\nView.use(Router);\n\nexport default View;\n","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom7';\nimport ViewClass from '../../components/view/view-class';\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 }\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';\n\nexport default {\n name: 'routerComponentLoader',\n proto: {\n componentLoader(component, componentUrl, options = {}, resolve, reject) {\n const router = this;\n const { app } = router;\n const url = typeof component === 'string' ? component : componentUrl;\n const compiledUrl = router.replaceRequestUrlParams(url, options);\n function compile(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';\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';\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","export default {};\n","/* eslint no-use-before-define: \"off\" */\n/* eslint import/no-named-as-default: \"off\" */\nimport h from './snabbdom/h';\nimport customComponents from './custom-components';\nimport { isObject, eventNameToColonCase } from '../../shared/utils';\n\nconst SELF_CLOSING = 'area base br col command embed hr img input keygen link menuitem meta param source track wbr'.split(\n ' ',\n);\nconst PROPS_ATTRS = 'hidden checked disabled readonly selected autofocus autoplay required multiple value indeterminate routeProps'.split(\n ' ',\n);\nconst BOOLEAN_PROPS = '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 const tagName = getTagName(treeNode);\n if (data && data.attrs && data.attrs.component) {\n // eslint-disable-next-line\n tagName = data.attrs.component;\n delete data.attrs.component;\n isFakeElement = true;\n }\n\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 if (isRoot && component && component.id && component.style && component.styleScoped) {\n if (!data.attrs) data.attrs = {};\n data.attrs[`data-f7-${component.id}`] = '';\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';\nimport * as is from './is';\nimport htmlDomApi from './htmldomapi';\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","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';\n\nfunction invokeHandler(handler, event, args) {\n if (typeof handler === 'function') {\n // call function handler\n handler(event, ...args);\n }\n}\nfunction handleEvent(event, args, vnode) {\n const name = event.type;\n const on = vnode.data.on;\n // call event handler(s) if exists\n if (on && on[name]) {\n invokeHandler(on[name], event, args, vnode);\n }\n}\nfunction createListener() {\n return function handler(event, ...args) {\n handleEvent(event, args, handler.vnode);\n };\n}\nfunction updateEvents(oldVnode, vnode) {\n const oldOn = oldVnode.data.on;\n const oldListener = oldVnode.listener;\n const oldElm = oldVnode.elm;\n const on = vnode && vnode.data.on;\n const elm = vnode && vnode.elm;\n // optimization for reused immutable handlers\n if (oldOn === on) {\n return;\n }\n // remove existing listeners which no longer used\n if (oldOn && oldListener) {\n // if element changed or deleted we remove all existing listeners unconditionally\n if (!on) {\n Object.keys(oldOn).forEach((name) => {\n $(oldElm).off(name, oldListener);\n });\n } else {\n Object.keys(oldOn).forEach((name) => {\n if (!on[name]) {\n $(oldElm).off(name, oldListener);\n }\n });\n }\n }\n // add new listeners which has not already attached\n if (on) {\n // reuse existing listener or create new\n const listener = oldVnode.listener || createListener();\n vnode.listener = listener;\n // update vnode for listener\n listener.vnode = vnode;\n // if element changed or added we add all needed listeners unconditionally\n if (!oldOn) {\n Object.keys(on).forEach((name) => {\n $(elm).on(name, listener);\n });\n } else {\n Object.keys(on).forEach((name) => {\n if (!oldOn[name]) {\n $(elm).on(name, listener);\n }\n });\n }\n }\n}\n\nexport default {\n create: updateEvents,\n update: updateEvents,\n destroy: updateEvents,\n};\n","/* eslint import/no-named-as-default: off */\nimport { init } from './snabbdom/snabbdom';\nimport attributesModule from './snabbdom/modules/attributes';\nimport propsModule from './snabbdom/modules/props';\nimport styleModule from './snabbdom/modules/style';\nimport eventListenersModule from './eventslisteners';\n\nconst patch = init([attributesModule, propsModule, styleModule, eventListenersModule]);\n\nexport default patch;\n","/* eslint no-underscore-dangle: \"off\" */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7';\nimport $h from './$h';\nimport { id as generateId, merge, eventNameToColonCase, deleteProps } from '../../shared/utils';\nimport vdom from './vdom';\nimport patch from './patch';\n\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 styleScoped: component.styleScoped,\n __storeCallbacks: [],\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 this.__eventHandlers.push({ eventName, handler });\n }\n\n once(eventName, handler) {\n this.__onceEventHandlers.push({ eventName, handler });\n }\n\n getComponentStore() {\n const { state, getters, dispatch } = this.f7.store;\n const $store = {\n state,\n dispatch,\n };\n $store.getters = new Proxy(getters, {\n get: (target, prop) => {\n const obj = target[prop];\n const callback = () => {\n this.update();\n };\n obj.onUpdated(callback);\n this.__storeCallbacks.push(callback, obj.__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,\n $theme: this.theme,\n $tick: this.tick.bind(this),\n $update: this.update.bind(this),\n $emit: this.emit.bind(this),\n $store: this.getComponentStore(),\n $el: {},\n };\n Object.defineProperty(ctx.$el, 'value', {\n get: () => {\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 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 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 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.__storeCallbacks.forEach((callback) => {\n this.f7.store.__removeCallback(callback);\n });\n this.__storeCallbacks = [];\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';\nimport { id } from '../../shared/utils';\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 let styleScoped = false;\n\n if (componentString.indexOf('<style>') >= 0) {\n style = componentString.split('<style>')[1].split('</style>')[0];\n } else if (componentString.indexOf('<style scoped>') >= 0) {\n styleScoped = true;\n style = componentString.split('<style scoped>')[1].split('</style>')[0];\n style = style\n .replace(/{{this}}/g, `[data-f7-${componentId}]`)\n .replace(/[\\n]?([^{^}]*){/gi, (string, rules) => {\n if (rules.indexOf('\"') >= 0 || rules.indexOf(\"'\") >= 0) return string;\n // eslint-disable-next-line\n rules = rules\n .split(',')\n .map((rule) => {\n if (rule.indexOf('@') >= 0) return rule;\n if (rule.indexOf(`[data-f7-${componentId}]`) >= 0) return rule;\n return `[data-f7-${componentId}] ${rule.trim()}`;\n })\n .join(', ');\n\n return `\\n${rules} {`;\n });\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\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 component.styleScoped = styleScoped;\n }\n\n // Component ID\n component.id = componentId;\n return component;\n}\n\nexport default parseComponent;\n","import Component from './component-class';\nimport parseComponent from './parse-component';\nimport customComponents from './custom-components';\nimport $jsx from './$jsx';\n\nfunction registerComponent(tagName, component) {\n customComponents[tagName] = component;\n}\n\nfunction unregisterComponent(tagName) {\n delete customComponents[tagName];\n}\n\nexport { Component, $jsx };\nexport default {\n name: 'component',\n static: {\n Component,\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';\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';\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) 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';\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((key) => {\n gettersDependencies[key] = [];\n gettersCallbacks[key] = [];\n });\n const addGetterDependencies = (key, deps) => {\n if (!gettersDependencies[key]) gettersDependencies[key] = [];\n deps.forEach((dep) => {\n if (gettersDependencies[key].indexOf(dep) < 0) {\n gettersDependencies[key].push(dep);\n }\n });\n };\n\n const addGetterCallback = (key, callback) => {\n if (!gettersCallbacks[key]) gettersCallbacks[key] = [];\n gettersCallbacks[key].push(callback);\n };\n\n const runGetterCallbacks = (stateKey, value) => {\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(value);\n });\n });\n };\n\n const removeGetterCallback = (callback) => {\n Object.keys(gettersCallbacks).forEach((key) => {\n const callbacks = gettersCallbacks[key];\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 = (key) => {\n if (key === 'constructor') return;\n propsQueue = [];\n const value = getters[key]({ state: store.state });\n addGetterDependencies(key, propsQueue);\n const onUpdated = (callback) => {\n addGetterCallback(key, callback);\n };\n\n const obj = {\n value,\n onUpdated,\n };\n const callback = (v) => {\n obj.value = v;\n };\n\n obj.__callback = callback;\n addGetterCallback(key, 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, value);\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);\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](\n { state: store.state, action: store.action, get: store.get },\n data,\n );\n resolve(result);\n });\n };\n\n return store;\n}\n\nexport default createStore;\n","import createStore from './create-store';\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';\nimport { bindMethods } from '../../shared/utils';\nimport { getDevice } from '../../shared/get-device';\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 },\n show() {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.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 },\n setBackgroundColor(color) {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.backgroundColorByHexString(color);\n }\n },\n isVisible() {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n return window.StatusBar.isVisible;\n }\n return false;\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 },\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\n if (device.cordova && window.StatusBar) {\n if (params.scrollTopOnClick) {\n $(window).on('statusTap', Statusbar.onClick.bind(app));\n }\n if (device.ios) {\n if (params.iosOverlaysWebView) {\n window.StatusBar.overlaysWebView(true);\n } else {\n window.StatusBar.overlaysWebView(false);\n }\n if (params.iosTextColor === 'white') {\n window.StatusBar.styleLightContent();\n } else {\n window.StatusBar.styleDefault();\n }\n }\n if (device.android) {\n if (params.androidOverlaysWebView) {\n window.StatusBar.overlaysWebView(true);\n } else {\n window.StatusBar.overlaysWebView(false);\n }\n if (params.androidTextColor === 'white') {\n window.StatusBar.styleLightContent();\n } else {\n window.StatusBar.styleDefault();\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';\nimport { extend } from '../../shared/utils';\nimport View from './view-class';\n\nfunction getCurrentView(app) {\n const $popoverView = $('.popover.modal-in .view');\n const $popupView = $('.popup.modal-in .view');\n const $panelView = $('.panel.panel-in .view');\n let $viewsEl = $('.views');\n if ($viewsEl.length === 0) $viewsEl = app.$el;\n // Find active view as tab\n let $viewEl = $viewsEl.children('.view');\n if ($viewEl.length === 0) {\n $viewEl = $viewsEl.children('.tabs').children('.view');\n }\n // Propably in tabs or split view\n if ($viewEl.length > 1) {\n if ($viewEl.hasClass('tab')) {\n // Tabs\n $viewEl = $viewsEl.children('.view.tab-active');\n if ($viewEl.length === 0) {\n $viewEl = $viewsEl.children('.tabs').children('.view.tab-active');\n }\n } else {\n // Split View, leave appView intact\n }\n }\n if ($popoverView.length > 0 && $popoverView[0].f7View) return $popoverView[0].f7View;\n if ($popupView.length > 0 && $popupView[0].f7View) return $popupView[0].f7View;\n if ($panelView.length > 0 && $panelView[0].f7View) return $panelView[0].f7View;\n if ($viewEl.length > 0) {\n if ($viewEl.length === 1 && $viewEl[0].f7View) return $viewEl[0].f7View;\n if ($viewEl.length > 1) {\n return app.views.main;\n }\n }\n return undefined;\n}\n\nexport default {\n name: 'view',\n params: {\n view: {\n init: true,\n name: undefined,\n main: false,\n router: true,\n linksView: null,\n stackPages: false,\n xhrCache: true,\n xhrCacheIgnore: [],\n xhrCacheIgnoreGetParameters: false,\n xhrCacheDuration: 1000 * 60 * 10, // Ten minutes\n componentCache: true,\n preloadPreviousPage: true,\n allowDuplicateUrls: false,\n reloadPages: false,\n reloadDetail: false,\n masterDetailBreakpoint: 0,\n masterDetailResizable: false,\n removeElements: true,\n removeElementsWithTimeout: false,\n removeElementsTimeout: 0,\n restoreScrollTopOnBack: true,\n unloadTabContent: true,\n passRouteQueryToRequest: true,\n passRouteParamsToRequest: false,\n loadInitialPage: true,\n // Swipe Back\n iosSwipeBack: true,\n iosSwipeBackAnimateShadow: true,\n iosSwipeBackAnimateOpacity: true,\n iosSwipeBackActiveArea: 30,\n iosSwipeBackThreshold: 0,\n mdSwipeBack: false,\n mdSwipeBackAnimateShadow: true,\n mdSwipeBackAnimateOpacity: false,\n mdSwipeBackActiveArea: 30,\n mdSwipeBackThreshold: 0,\n auroraSwipeBack: false,\n auroraSwipeBackAnimateShadow: false,\n auroraSwipeBackAnimateOpacity: true,\n auroraSwipeBackActiveArea: 30,\n auroraSwipeBackThreshold: 0,\n // Push State\n browserHistory: false,\n browserHistoryRoot: undefined,\n browserHistoryAnimate: true,\n browserHistoryAnimateOnLoad: false,\n browserHistorySeparator: '#!',\n browserHistoryOnLoad: true,\n browserHistoryInitialMatch: false,\n browserHistoryStoreHistory: true,\n // 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';\nimport { bindMethods } from '../../shared/utils';\nimport { getSupport } from '../../shared/get-support';\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 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() {\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 collapseProgress = Math.min(Math.max(currentScrollTop / navbarTitleLargeHeight, 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();\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 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 if (needCollapse) {\n $pageEl.find('.page-content').each((pageContentEl) => {\n if (pageContentEl.scrollTop > 0) handleScroll.call(pageContentEl);\n });\n } else if (needTransparent) {\n $pageEl.find('.page-content').each((pageContentEl) => {\n if (pageContentEl.scrollTop > 0) handleScroll.call(pageContentEl);\n });\n }\n $pageEl[0].f7DetachNavbarScrollHandlers = function f7DetachNavbarScrollHandlers() {\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': 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) {\n const app = this;\n if (!app.params.navbar.scrollTopOnTitleClick) return;\n if ($clickedEl.closest('a').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';\nimport { nextFrame, bindMethods } from '../../shared/utils';\n\nconst Toolbar = {\n setHighlight(tabbarEl) {\n const app = this;\n if (app.theme !== 'md') return;\n\n const $tabbarEl = $(tabbarEl);\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","export 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 if (page.$el.find('.subnavbar').length) {\n page.$el.addClass('page-with-subnavbar');\n }\n },\n },\n};\n","import $ from '../../shared/dom7';\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';\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';\nimport { extend, deleteProps } from '../../shared/utils';\nimport Framework7Class from '../../shared/class';\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 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 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 /* 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 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';\nimport { extend } from '../../shared/utils';\nimport Modal from './modal-class';\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';\nimport CustomModal from './custom-modal-class';\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';\n\nimport Framework7 from './components/app/app-class';\n\n//IMPORT_HELPERS\n\nimport DeviceModule from './modules/device/device';\nimport SupportModule from './modules/support/support';\nimport UtilsModule from './modules/utils/utils';\nimport ResizeModule from './modules/resize/resize';\nimport RequestModule from './modules/request/request';\nimport TouchModule from './modules/touch/touch';\nimport ClicksModule from './modules/clicks/clicks';\nimport RouterModule from './modules/router/router';\nimport RouterComponentLoaderModule from './modules/router/component-loader';\nimport ComponentModule, { Component, $jsx } from './modules/component/component';\nimport HistoryModule from './modules/history/history';\nimport ServiceWorkerModule from './modules/service-worker/service-worker';\nimport StoreModule, { createStore } from './modules/store/store';\n\nimport Statusbar from './components/statusbar/statusbar';\nimport View from './components/view/view';\nimport Navbar from './components/navbar/navbar';\nimport Toolbar from './components/toolbar/toolbar';\nimport Subnavbar from './components/subnavbar/subnavbar';\nimport TouchRipple from './components/touch-ripple/touch-ripple';\nimport Modal from './components/modal/modal';\nimport Router from './modules/router/router-class';\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","_inheritsLoose","subClass","superClass","prototype","create","__proto__","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","toString","call","e","_construct","Parent","args","Class","a","push","apply","Constructor","Function","bind","instance","arguments","_isNativeFunction","fn","indexOf","_wrapNativeSuper","_cache","Map","undefined","TypeError","has","get","set","Wrapper","value","enumerable","writable","configurable","_assertThisInitialized","self","ReferenceError","makeReactive","proto","defineProperty","Dom7","_Array","items","_this","concat","Array","arrayFlat","arr","res","el","isArray","arrayFilter","filter","arrayUnique","uniqueArray","i","toCamelCase","string","toLowerCase","replace","match","group","toUpperCase","qsa","selector","context","$","html","trim","toCreate","tempParent","innerHTML","nodeType","addClass","_len","classes","_key","classNames","map","c","split","_el$classList","classList","add","removeClass","_len2","_key2","_el$classList2","remove","toggleClass","_len3","_key3","className","toggle","hasClass","_len4","_key4","contains","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","prop","props","propName","data","dom7ElementDataStorage","dataKey","removeData","dataset","attributes","_attr","name","parseFloat","val","multiple","values","selectedOptions","_i","_el","j","options","selected","transform","transition","duration","transitionDuration","on","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","k","handleEvent","events","event","dom7Listeners","proxyListener","_event","dom7LiveListeners","off","_len6","_key6","handlers","handler","splice","dom7proxy","once","dom","_len7","_key7","eventName","onceHandler","_len8","eventArgs","_key8","trigger","_len9","_key9","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","fireCallBack","animationEnd","width","innerWidth","css","outerWidth","includeMargins","_styles","styles","offsetWidth","height","innerHeight","outerHeight","_styles2","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","hide","display","show","_prop","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","_next","prev","previousElementSibling","prevAll","prevEls","_prev","siblings","_parent","closest","find","foundElements","found","removeChild","detach","_len10","els","_key10","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","_el$prop","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","m41","m42","serializeObject","resultArray","separator","newParents","varName","parentParts","encodeURIComponent","varValue","toPush","String","merge","to","from","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","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","subKey","flattenArray","arg","support","calcSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","passiveListener","checkPassiveListener","supportsPassive","opts","intersectionObserver","checkObserver","getSupport","deviceCalculated","calcDevice","platform","ua","device","ios","android","androidChrome","desktop","iphone","ipod","ipad","edge","ie","firefox","macos","windows","cordova","phonegap","electron","nwjs","screenWidth","screenHeight","nw","process","versions","iPadScreens","os","osVersion","webView","standalone","webview","pixelRatio","devicePixelRatio","DARK","LIGHT","prefersColorScheme","prefersColorTheme","theme","getDevice","overrides","reset","EventsClass","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","useModules","modulesParams","installModule","static","install","use","components","ConstructorMethods","parameters","defaultSelector","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","defaults","version","language","routes","initOnDeviceReady","init","autoDarkTheme","iosTranslucentBars","iosTranslucentModals","component","componentUrl","getTheme","online","onLine","store","f7","initStore","mount","rootEl","$rootEl","mq","dark","light","colorSchemeListener","media","darkTheme","__store","createStore","enableAutoDarkTheme","addListener","disableAutoDarkTheme","removeListener","initAppComponent","router","componentOptions","$elComponent","f7Component","initialized","loadModules","getVnodeHooks","hook","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","handleTouchStart","targetTouches","touches","tapHold","preventDefault","tapHoldDelay","handleTouchMove","distance","touchClicksDistanceThreshold","handleTouchEnd","tapHoldPreventClicks","handleClick","isOverswipe","localPreventClick","stopImmediatePropagation","stopPropagation","emitAppTouchEvent","appClick","appTouchStartActive","appTouchMoveActive","appTouchEndActive","appTouchStartPassive","appTouchMovePassive","appTouchEndPassive","passive","passiveListenerCapture","activeListener","activeListenerCapture","touchEvents","start","move","end","disableContextMenu","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","isScrolling","$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","openIn","navigateOptions","popup","loginScreen","clickedEl","popover","parts","side","effect","panel","navigateParams","createRoute","generateUrl","navigateUrl","currentPath","viewName","anotherViewName","anotherView","routerLoaded","modalLoad","pageLoadProp","asyncResolve","resolveParams","resolveOptions","resolvedAsModal","modalRoute","asyncReject","masterRoute","preloadMaster","masterLoaded","pageAfterIn","tabRoute","parentPageEl","$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","Router","isAppRouter","routerId","scrollHistory","iosDynamicNavbar","initialNavbars","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","detailRoutes","detailRoute","dRoute","masterRoutePath","childRoute","cRoute","findRouteByKey","constructRouteUrl","toUrl","compile","findTabRoute","tabId","foundTabRoute","matchingRoute","pathsToMatch","alias","aliasPath","matched","pathToMatch","pathToRegexp","keyObj","paramValue","replaceRequestUrlParams","compiledUrl","regExp","removeFromXhrCache","xhrCache","hasQuery","passRouteQueryToRequest","passRouteParamsToRequest","xhrCacheIgnoreGetParameters","xhrCacheIgnore","cachedUrl","xhrCacheDuration","beforeSend","ariaHidden","toRemove","getPageData","pageFromEl","$pageEl","pageFrom","fromPage","$pageFromEl","page","restoreScrollTopOnBack","camelName","colonName","f7RouteEventsAttached","f7RouteEventsOn","f7RouteEventsOnce","$pageContent","pageContentEl","f7PageInitialized","browserHistoryStoreHistory","localStorage","restoreHistory","clearHistory","updateCurrentUrl","newUrl","getInitialUrl","initialUrl","historyRestored","URL","documentUrl","browserHistoryOnLoad","console","warn","iosSwipeBack","mdSwipeBack","auroraSwipeBack","browserHistoryAnimateOnLoad","browserHistoryInitialMatch","initUrl","loadInitialPage","hasTabRoute","initOptions","routerProp","templates","resizableView","resizableInitialized","resizable","resizableWidth","$htmlEl","$resizeHandlerEl","minWidth","maxWidth","transformCSSWidth","v","newV","isResizable","$pageMasterEl","newWidth","handleResize","View","viewParams","ssr","routesAdd","main","f7View","viewProp","wasMasterDetail","isMasterDetail","initMasterDetail","masterDetailResizable","viewEl","initClicks","handleClicks","$clickedEl","$clickedLinkEl","isLink","clicks","externalLinks","InAppBrowser","moduleClicks","preventF7Router","clickSelector","matchingClickedElement","clickedLinkData","validUrl","current","linksView","ViewClass","f7RouteProps","componentFunction","componentContext","f7route","f7router","componentProps","routeProps","componentRoot","createdComponent","cachedComponent","componentCache","cached","loadedComponent","parsedComponent","u","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","styleScoped","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","__storeCallbacks","__updateQueue","__eventHandlers","__onceEventHandlers","__onBeforeMount","__onMounted","__onBeforeUpdate","__onUpdated","__onBeforeUnmount","__onUnmounted","createComponent","getComponentContext","getRenderFuncion","componentResult","renderFunction","getComponentStore","getters","dispatch","$store","onUpdated","__callback","includeHooks","ctx","$f7route","$f7router","$id","$f7","$f7ready","f7ready","$theme","$tick","tick","$update","$emit","$on","$once","$onBeforeMount","$onMounted","$onBeforeUpdate","$onUpdated","$onBeforeUnmount","$onUnmounted","startUpdateQueue","__requestAnimationFrameId","newVNode","__updateIsPending","resolvers","resolver","__destroyed","setState","mountMethod","__removeCallback","parseComponent","componentString","componentId","callbackCreateName","template","hasTemplate","item","rules","rule","scripts","registerComponent","unregisterComponent","SW","registrations","register","scope","serviceWorker","reg","unregister","registration","paths","toRegister","storeParams","originalState","actions","propsQueue","gettersDependencies","gettersCallbacks","addGetterDependencies","deps","dep","addGetterCallback","runGetterCallbacks","stateKey","getterKey","removeGetterCallback","callbacks","getterValue","actionName","Statusbar","StatusBar","onClick","setTextColor","color","styleLightContent","styleDefault","setBackgroundColor","backgroundColorByHexString","isVisible","overlaysWebView","overlays","statusbar","enabled","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","snapLargeNavbar","inSearchbarExpanded","snapTransparentNavbar","handleNavbarTransparent","isHidden","notTransparent","previousCollapseProgress","collapseProgress","handleLargeNavbarCollapse","isLargeTransparent","previousCollapseWasInMiddle","handleTitleHideShow","showOnPageScrollEnd","showOnPageScrollTop","handleScroll","handeTouchStart","f7DetachNavbarScrollHandlers","scrollTopOnTitleClick","mdCenterTitle","auroraCenterTitle","hideOnPageScroll","collapseLargeTitleOnScroll","onPanelResize","pageBeforeRemove","pageBeforeIn","pageReinit","pageInit","needCollapseOnScrollHandler","needTransparentOnScroll","needHideOnScrollHandler","onPanelModalOpen","tabShow","onTitleClick","$pageContentEl","Toolbar","setHighlight","tabbarEl","$tabbarEl","$highlightEl","tabLinksCount","$activeLink","highlightWidth","highlightTranslate","activeIndex","toolbar","initToolbarOnScroll","$toolbarEl","toolbarHidden","f7ScrollToolbarHandler","tabbar","TouchRipple","ripple","center","diameter","isInset","insetElements","distanceFromCenter","scale","rippleTransform","$rippleWaveEl","shouldBeRemoved","out","removeTimeout","openedModals","dialogsQueue","clearDialogsQueue","dialog","Modal","opened","$containerEl","containerEl","onOpened","onClosed","animateModal","$backdropEl","queueDialogs","pushToQueue","openedModal","$modalParentEl","wasInDom","needToHideBackdrop","popupEl","popupInstance","closeByBackdropClick","backdrop","backdropEl","destroyed","CustomModal","extendedParams","customModal","RouterComponentLoaderModule","DeviceModule","SupportModule","UtilsModule","ResizeModule","RequestModule","TouchModule","ClicksModule","RouterModule","HistoryModule","ComponentModule","ServiceWorkerModule","StoreModule","Subnavbar"],"mappings":"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"}
\No newline at end of file