| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /framework7/node_modules/.vite/deps/ |
Upload File : |
{
"version": 3,
"sources": ["../../dom7/dom7.esm.js", "../../ssr-window/ssr-window.esm.js", "../../framework7/shared/dom7.js", "../../framework7/shared/utils.js", "../../framework7/shared/material-color-utils.js", "../../framework7/shared/material-colors.js", "../../framework7/shared/get-support.js", "../../framework7/shared/get-device.js", "../../framework7/shared/events-class.js", "../../framework7/shared/class.js", "../../framework7/shared/constructor-methods.js", "../../framework7/shared/modal-methods.js", "../../framework7/components/app/load-module.js", "../../framework7/shared/$jsx.js", "../../framework7/components/app/app-class.js", "../../framework7/modules/device/device.js", "../../framework7/modules/support/support.js", "../../framework7/modules/utils/utils.js", "../../framework7/modules/resize/resize.js", "../../framework7/modules/touch/touch.js", "../../path-to-regexp/src/index.ts", "../../framework7/shared/history.js", "../../framework7/modules/router/swipe-back.js", "../../framework7/modules/router/redirect.js", "../../framework7/modules/router/process-route-queue.js", "../../framework7/modules/router/app-router-check.js", "../../framework7/modules/router/async-component.js", "../../framework7/modules/router/navigate.js", "../../framework7/modules/router/tab.js", "../../framework7/modules/router/modal.js", "../../framework7/modules/router/back.js", "../../framework7/modules/router/clear-previous-history.js", "../../framework7/modules/router/router-class.js", "../../framework7/modules/router/router.js", "../../framework7/components/view/resizable-view.js", "../../framework7/components/view/view-class.js", "../../framework7/modules/clicks/clicks.js", "../../framework7/modules/history/history.js", "../../framework7/modules/service-worker/service-worker.js", "../../framework7/modules/store/create-store.js", "../../framework7/modules/store/store.js", "../../framework7/components/statusbar/statusbar.js", "../../framework7/components/view/view.js", "../../framework7/components/navbar/navbar.js", "../../framework7/components/toolbar/toolbar.js", "../../framework7/components/subnavbar/subnavbar.js", "../../framework7/components/touch-ripple/touch-ripple-class.js", "../../framework7/components/touch-ripple/touch-ripple.js", "../../framework7/components/modal/modal-class.js", "../../framework7/components/modal/custom-modal-class.js", "../../framework7/components/modal/modal.js"],
"sourcesContent": ["/**\n * Dom7 4.0.6\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2023, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 2, 2023\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf('<li') === 0) toCreate = 'ul';\n if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n if (html.indexOf('<tbody') === 0) toCreate = 'table';\n if (html.indexOf('<option') === 0) toCreate = 'select';\n const tempParent = document.createElement(toCreate);\n tempParent.innerHTML = html;\n\n for (let i = 0; i < tempParent.childNodes.length; i += 1) {\n arr.push(tempParent.childNodes[i]);\n }\n } else {\n arr = qsa(selector.trim(), context || document);\n } // arr = qsa(selector, document);\n\n } else if (selector.nodeType || selector === window || selector === document) {\n arr.push(selector);\n } else if (Array.isArray(selector)) {\n if (selector instanceof Dom7) return selector;\n arr = selector;\n }\n\n return new Dom7(arrayUnique(arr));\n}\n\n$.fn = Dom7.prototype;\n\n// eslint-disable-next-line\n\nfunction addClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionStart(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionstart', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionstart', fireCallBack);\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, transitionStart, trigger, val, value, width };\n", "/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n", "// eslint-disable-next-line\nimport * as methods from 'dom7';\nObject.keys(methods).forEach(methodName => {\n if (methodName === '$') return;\n methods.$.fn[methodName] = methods[methodName];\n});\nexport default methods.$;", "import { getWindow } from 'ssr-window';\nimport { materialColors } from './material-colors.js';\nlet uniqueNum = 0;\nexport function uniqueNumber() {\n uniqueNum += 1;\n return uniqueNum;\n}\nexport function id(mask, map) {\n if (mask === void 0) {\n mask = 'xxxxxxxxxx';\n }\n if (map === void 0) {\n map = '0123456789abcdef';\n }\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();\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();\nexport function eventNameToColonCase(eventName) {\n let hasColon;\n return eventName.split('').map((char, index) => {\n if (char.match(/[A-Z]/) && index !== 0 && !hasColon) {\n hasColon = true;\n return `:${char.toLowerCase()}`;\n }\n return char.toLowerCase();\n }).join('');\n}\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) {\n if (delay === void 0) {\n delay = 0;\n }\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}\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 for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param.slice(1).join('=')) || '';\n }\n }\n return query;\n}\nexport function getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = window.getComputedStyle(el, null);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n 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 (parents === void 0) {\n parents = [];\n }\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];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)); // eslint-disable-line\n });\n\n return resultArray.join(separator);\n}\nexport function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\nexport function merge() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n const to = args[0];\n args.splice(0, 1);\n const from = args;\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() {\n let deep = true;\n let to;\n let from;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'boolean') {\n deep = args[0];\n to = args[1];\n args.splice(0, 2);\n from = args;\n } else {\n to = args[0];\n args.splice(0, 1);\n from = args;\n }\n 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].map(n => {\n const hex = n.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n }).join('');\n return `#${result}`;\n}\nexport function colorRgbToHsl(r, g, b) {\n r /= 255; // eslint-disable-line\n 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;else if (max === r) h = (g - b) / d % 6;else if (max === g) h = (b - r) / d + 2;else if (max === b) h = (r - g) / d + 4;\n 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];else if (hp <= 2) rgb1 = [x, c, 0];else if (hp <= 3) rgb1 = [0, c, x];else if (hp <= 4) rgb1 = [0, x, c];else if (hp <= 5) rgb1 = [x, 0, c];else if (hp <= 6) rgb1 = [c, 0, x];\n 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 = {\n h,\n s,\n b\n };\n HSL.l = (2 - HSB.s) * HSB.b / 2;\n HSL.s = HSL.l && HSL.l < 1 ? HSB.s * HSB.b / (HSL.l < 0.5 ? HSL.l * 2 : 2 - HSL.l * 2) : HSL.s;\n return [HSL.h, HSL.s, HSL.l];\n}\nexport function colorHslToHsb(h, s, l) {\n const HSB = {\n h,\n s: 0,\n b: 0\n };\n const HSL = {\n h,\n s,\n 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 return [HSB.h, HSB.s, HSB.b];\n}\nconst getShadeTintColors = rgb => {\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 shade,\n tint\n };\n};\nexport function colorThemeCSSProperties() {\n let hex;\n let rgb;\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (args.length === 1) {\n hex = args[0];\n rgb = colorHexToRgb(hex);\n } else if (args.length === 3) {\n rgb = args;\n hex = colorRgbToHex(...rgb);\n }\n if (!rgb) return {};\n const {\n light,\n dark\n } = materialColors(hex);\n const shadeTintIos = getShadeTintColors(rgb);\n const shadeTintMdLight = getShadeTintColors(colorHexToRgb(light['--f7-md-primary']));\n const shadeTintMdDark = getShadeTintColors(colorHexToRgb(dark['--f7-md-primary']));\n Object.keys(light).forEach(key => {\n if (key.includes('surface-')) {\n light[`${key}-rgb`] = colorHexToRgb(light[key]);\n }\n });\n Object.keys(dark).forEach(key => {\n if (key.includes('surface-')) {\n dark[`${key}-rgb`] = colorHexToRgb(dark[key]);\n }\n });\n return {\n ios: {\n '--f7-theme-color': 'var(--f7-ios-primary)',\n '--f7-theme-color-rgb': 'var(--f7-ios-primary-rgb)',\n '--f7-theme-color-shade': 'var(--f7-ios-primary-shade)',\n '--f7-theme-color-tint': 'var(--f7-ios-primary-tint)'\n },\n md: {\n '--f7-theme-color': 'var(--f7-md-primary)',\n '--f7-theme-color-rgb': 'var(--f7-md-primary-rgb)',\n '--f7-theme-color-shade': 'var(--f7-md-primary-shade)',\n '--f7-theme-color-tint': 'var(--f7-md-primary-tint)'\n },\n light: {\n '--f7-ios-primary': hex,\n '--f7-ios-primary-shade': shadeTintIos.shade,\n '--f7-ios-primary-tint': shadeTintIos.tint,\n '--f7-ios-primary-rgb': rgb.join(', '),\n '--f7-md-primary-shade': shadeTintMdLight.shade,\n '--f7-md-primary-tint': shadeTintMdLight.tint,\n '--f7-md-primary-rgb': colorHexToRgb(light['--f7-md-primary']).join(', '),\n ...light\n },\n dark: {\n '--f7-md-primary-shade': shadeTintMdDark.shade,\n '--f7-md-primary-tint': shadeTintMdDark.tint,\n '--f7-md-primary-rgb': colorHexToRgb(dark['--f7-md-primary']).join(', '),\n ...dark\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}\nexport function flattenArray() {\n const arr = [];\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n args.forEach(arg => {\n if (Array.isArray(arg)) arr.push(...flattenArray(...arg));else arr.push(arg);\n });\n return arr;\n}\nexport function colorThemeCSSStyles(colors) {\n if (colors === void 0) {\n colors = {};\n }\n const stringifyObject = obj => {\n let res = '';\n Object.keys(obj).forEach(key => {\n res += `${key}:${obj[key]};`;\n });\n return res;\n };\n const colorVars = colorThemeCSSProperties(colors.primary);\n const primary = [`:root{`, stringifyObject(colorVars.light), `--swiper-theme-color:var(--f7-theme-color);`, ...Object.keys(colors).map(colorName => `--f7-color-${colorName}: ${colors[colorName]};`), `}`, `.dark{`, stringifyObject(colorVars.dark), `}`, `.ios, .ios .dark{`, stringifyObject(colorVars.ios), '}', `.md, .md .dark{`, stringifyObject(colorVars.md), '}'].join('');\n const restVars = {};\n Object.keys(colors).forEach(colorName => {\n const colorValue = colors[colorName];\n restVars[colorName] = colorThemeCSSProperties(colorValue);\n });\n\n // rest\n let rest = '';\n Object.keys(colors).forEach(colorName => {\n const {\n light,\n dark,\n ios,\n md\n } = restVars[colorName];\n const whiteColorVars = `\n --f7-ios-primary: #ffffff;\n --f7-ios-primary-shade: #ebebeb;\n --f7-ios-primary-tint: #ffffff;\n --f7-ios-primary-rgb: 255, 255, 255;\n --f7-md-primary-shade: #eee;\n --f7-md-primary-tint: #fff;\n --f7-md-primary-rgb: 255, 255, 255;\n --f7-md-primary: #fff;\n --f7-md-on-primary: #000;\n --f7-md-primary-container: #fff;\n --f7-md-on-primary-container: #000;\n --f7-md-secondary: #fff;\n --f7-md-on-secondary: #000;\n --f7-md-secondary-container: #555;\n --f7-md-on-secondary-container: #fff;\n --f7-md-surface: #fff;\n --f7-md-on-surface: #000;\n --f7-md-surface-variant: #333;\n --f7-md-on-surface-variant: #fff;\n --f7-md-outline: #fff;\n --f7-md-outline-variant: #fff;\n --f7-md-inverse-surface: #000;\n --f7-md-inverse-on-surface: #fff;\n --f7-md-inverse-primary: #000;\n --f7-md-surface-1: #f8f8f8;\n --f7-md-surface-2: #f1f1f1;\n --f7-md-surface-3: #e7e7e7;\n --f7-md-surface-4: #e1e1e1;\n --f7-md-surface-5: #d7d7d7;\n --f7-md-surface-variant-rgb: 51, 51, 51;\n --f7-md-on-surface-variant-rgb: 255, 255, 255;\n --f7-md-surface-1-rgb: 248, 248, 248;\n --f7-md-surface-2-rgb: 241, 241, 241;\n --f7-md-surface-3-rgb: 231, 231, 231;\n --f7-md-surface-4-rgb: 225, 225, 225;\n --f7-md-surface-5-rgb: 215, 215, 215;\n `;\n const blackColorVars = `\n --f7-ios-primary: #000;\n --f7-ios-primary-shade: #000;\n --f7-ios-primary-tint: #232323;\n --f7-ios-primary-rgb: 0, 0, 0;\n --f7-md-primary-shade: #000;\n --f7-md-primary-tint: #232323;\n --f7-md-primary-rgb: 0, 0, 0;\n --f7-md-primary: #000;\n --f7-md-on-primary: #fff;\n --f7-md-primary-container: #000;\n --f7-md-on-primary-container: #fff;\n --f7-md-secondary: #000;\n --f7-md-on-secondary: #fff;\n --f7-md-secondary-container: #aaa;\n --f7-md-on-secondary-container: #000;\n --f7-md-surface: #000;\n --f7-md-on-surface: #fff;\n --f7-md-surface-variant: #ccc;\n --f7-md-on-surface-variant: #000;\n --f7-md-outline: #000;\n --f7-md-outline-variant: #000;\n --f7-md-inverse-surface: #fff;\n --f7-md-inverse-on-surface: #000;\n --f7-md-inverse-primary: #fff;\n --f7-md-surface-1: #070707;\n --f7-md-surface-2: #161616;\n --f7-md-surface-3: #232323;\n --f7-md-surface-4: #303030;\n --f7-md-surface-5: #373737;\n --f7-md-surface-variant-rgb: 204, 204, 204;\n --f7-md-on-surface-variant-rgb: 0, 0, 0;\n --f7-md-surface-1-rgb: 7, 7, 7;\n --f7-md-surface-2-rgb: 22, 22, 22;\n --f7-md-surface-3-rgb: 35, 35, 35;\n --f7-md-surface-4-rgb: 48, 48, 48;\n --f7-md-surface-5-rgb: 55, 55, 55;\n `;\n /* eslint-disable */\n const lightString = colorName === 'white' ? whiteColorVars : colorName === 'black' ? blackColorVars : stringifyObject(light);\n const darkString = colorName === 'white' ? whiteColorVars : colorName === 'black' ? blackColorVars : stringifyObject(dark);\n /* eslint-enable */\n rest += [`.color-${colorName} {`, lightString, `--swiper-theme-color: var(--f7-theme-color);`, `}`, `.color-${colorName}.dark, .color-${colorName} .dark, .dark .color-${colorName} {`, darkString, `--swiper-theme-color: var(--f7-theme-color);`, `}`, `.ios .color-${colorName}, .ios.color-${colorName}, .ios .dark .color-${colorName}, .ios .dark.color-${colorName} {`, stringifyObject(ios), `}`, `.md .color-${colorName}, .md.color-${colorName}, .md .dark .color-${colorName}, .md .dark.color-${colorName} {`, stringifyObject(md), `}`,\n // text color\n `.text-color-${colorName} {`, `--f7-theme-color-text-color: ${colors[colorName]};`, `}`,\n // bg color\n `.bg-color-${colorName} {`, `--f7-theme-color-bg-color: ${colors[colorName]};`, `}`,\n // border color\n `.border-color-${colorName} {`, `--f7-theme-color-border-color: ${colors[colorName]};`, `}`,\n // ripple color\n `.ripple-color-${colorName} {`, `--f7-theme-color-ripple-color: rgba(${light['--f7-ios-primary-rgb']}, 0.3);`, `}`].join('');\n });\n return `${primary}${rest}`;\n}", "/* eslint-disable */\nfunction signum(num) {\n return num < 0 ? -1 : 0 === num ? 0 : 1;\n}\nfunction lerp(start, stop, amount) {\n return (1 - amount) * start + amount * stop;\n}\nfunction clampInt(min, max, input) {\n return input < min ? min : input > max ? max : input;\n}\nfunction clampDouble(min, max, input) {\n return input < min ? min : input > max ? max : input;\n}\nfunction sanitizeDegreesDouble(degrees) {\n return (degrees %= 360) < 0 && (degrees += 360), degrees;\n}\nfunction rotationDirection(from, to) {\n return sanitizeDegreesDouble(to - from) <= 180 ? 1 : -1;\n}\nfunction differenceDegrees(a, b) {\n return 180 - Math.abs(Math.abs(a - b) - 180);\n}\nfunction matrixMultiply(row, matrix) {\n return [row[0] * matrix[0][0] + row[1] * matrix[0][1] + row[2] * matrix[0][2], row[0] * matrix[1][0] + row[1] * matrix[1][1] + row[2] * matrix[1][2], row[0] * matrix[2][0] + row[1] * matrix[2][1] + row[2] * matrix[2][2]];\n}\nconst SRGB_TO_XYZ = [[.41233895, .35762064, .18051042], [.2126, .7152, .0722], [.01932141, .11916382, .95034478]],\n XYZ_TO_SRGB = [[3.2413774792388685, -1.5376652402851851, -.49885366846268053], [-.9691452513005321, 1.8758853451067872, .04156585616912061], [.05562093689691305, -.20395524564742123, 1.0571799111220335]],\n WHITE_POINT_D65 = [95.047, 100, 108.883];\nfunction argbFromRgb(red, green, blue) {\n return (255 << 24 | (255 & red) << 16 | (255 & green) << 8 | 255 & blue) >>> 0;\n}\nfunction argbFromLinrgb(linrgb) {\n return argbFromRgb(delinearized(linrgb[0]), delinearized(linrgb[1]), delinearized(linrgb[2]));\n}\nfunction redFromArgb(argb) {\n return argb >> 16 & 255;\n}\nfunction greenFromArgb(argb) {\n return argb >> 8 & 255;\n}\nfunction blueFromArgb(argb) {\n return 255 & argb;\n}\nfunction argbFromXyz(x, y, z) {\n const matrix = XYZ_TO_SRGB,\n linearR = matrix[0][0] * x + matrix[0][1] * y + matrix[0][2] * z,\n linearG = matrix[1][0] * x + matrix[1][1] * y + matrix[1][2] * z,\n linearB = matrix[2][0] * x + matrix[2][1] * y + matrix[2][2] * z;\n return argbFromRgb(delinearized(linearR), delinearized(linearG), delinearized(linearB));\n}\nfunction xyzFromArgb(argb) {\n return matrixMultiply([linearized(redFromArgb(argb)), linearized(greenFromArgb(argb)), linearized(blueFromArgb(argb))], SRGB_TO_XYZ);\n}\nfunction argbFromLstar(lstar) {\n const component = delinearized(yFromLstar(lstar));\n return argbFromRgb(component, component, component);\n}\nfunction lstarFromArgb(argb) {\n return 116 * labF(xyzFromArgb(argb)[1] / 100) - 16;\n}\nfunction yFromLstar(lstar) {\n return 100 * labInvf((lstar + 16) / 116);\n}\nfunction lstarFromY(y) {\n return 116 * labF(y / 100) - 16;\n}\nfunction linearized(rgbComponent) {\n const normalized = rgbComponent / 255;\n return normalized <= .040449936 ? normalized / 12.92 * 100 : 100 * Math.pow((normalized + .055) / 1.055, 2.4);\n}\nfunction delinearized(rgbComponent) {\n const normalized = rgbComponent / 100;\n let delinearized = 0;\n return delinearized = normalized <= .0031308 ? 12.92 * normalized : 1.055 * Math.pow(normalized, 1 / 2.4) - .055, clampInt(0, 255, Math.round(255 * delinearized));\n}\nfunction whitePointD65() {\n return WHITE_POINT_D65;\n}\nfunction labF(t) {\n return t > 216 / 24389 ? Math.pow(t, 1 / 3) : (903.2962962962963 * t + 16) / 116;\n}\nfunction labInvf(ft) {\n const ft3 = ft * ft * ft;\n return ft3 > 216 / 24389 ? ft3 : (116 * ft - 16) / 903.2962962962963;\n}\nclass ViewingConditions {\n static make(whitePoint, adaptingLuminance, backgroundLstar, surround, discountingIlluminant) {\n if (whitePoint === void 0) {\n whitePoint = whitePointD65();\n }\n if (adaptingLuminance === void 0) {\n adaptingLuminance = 200 / Math.PI * yFromLstar(50) / 100;\n }\n if (backgroundLstar === void 0) {\n backgroundLstar = 50;\n }\n if (surround === void 0) {\n surround = 2;\n }\n if (discountingIlluminant === void 0) {\n discountingIlluminant = !1;\n }\n const xyz = whitePoint,\n rW = .401288 * xyz[0] + .650173 * xyz[1] + -.051461 * xyz[2],\n gW = -.250268 * xyz[0] + 1.204414 * xyz[1] + .045854 * xyz[2],\n bW = -.002079 * xyz[0] + .048952 * xyz[1] + .953127 * xyz[2],\n f = .8 + surround / 10,\n c = f >= .9 ? lerp(.59, .69, 10 * (f - .9)) : lerp(.525, .59, 10 * (f - .8));\n let d = discountingIlluminant ? 1 : f * (1 - 1 / 3.6 * Math.exp((-adaptingLuminance - 42) / 92));\n d = d > 1 ? 1 : d < 0 ? 0 : d;\n const nc = f,\n rgbD = [d * (100 / rW) + 1 - d, d * (100 / gW) + 1 - d, d * (100 / bW) + 1 - d],\n k = 1 / (5 * adaptingLuminance + 1),\n k4 = k * k * k * k,\n k4F = 1 - k4,\n fl = k4 * adaptingLuminance + .1 * k4F * k4F * Math.cbrt(5 * adaptingLuminance),\n n = yFromLstar(backgroundLstar) / whitePoint[1],\n z = 1.48 + Math.sqrt(n),\n nbb = .725 / Math.pow(n, .2),\n ncb = nbb,\n rgbAFactors = [Math.pow(fl * rgbD[0] * rW / 100, .42), Math.pow(fl * rgbD[1] * gW / 100, .42), Math.pow(fl * rgbD[2] * bW / 100, .42)],\n rgbA = [400 * rgbAFactors[0] / (rgbAFactors[0] + 27.13), 400 * rgbAFactors[1] / (rgbAFactors[1] + 27.13), 400 * rgbAFactors[2] / (rgbAFactors[2] + 27.13)];\n return new ViewingConditions(n, (2 * rgbA[0] + rgbA[1] + .05 * rgbA[2]) * nbb, nbb, ncb, c, nc, rgbD, fl, Math.pow(fl, .25), z);\n }\n constructor(n, aw, nbb, ncb, c, nc, rgbD, fl, fLRoot, z) {\n this.n = n, this.aw = aw, this.nbb = nbb, this.ncb = ncb, this.c = c, this.nc = nc, this.rgbD = rgbD, this.fl = fl, this.fLRoot = fLRoot, this.z = z;\n }\n}\nViewingConditions.DEFAULT = ViewingConditions.make();\nclass Cam16 {\n constructor(hue, chroma, j, q, m, s, jstar, astar, bstar) {\n this.hue = hue, this.chroma = chroma, this.j = j, this.q = q, this.m = m, this.s = s, this.jstar = jstar, this.astar = astar, this.bstar = bstar;\n }\n distance(other) {\n const dJ = this.jstar - other.jstar,\n dA = this.astar - other.astar,\n dB = this.bstar - other.bstar,\n dEPrime = Math.sqrt(dJ * dJ + dA * dA + dB * dB);\n return 1.41 * Math.pow(dEPrime, .63);\n }\n static fromInt(argb) {\n return Cam16.fromIntInViewingConditions(argb, ViewingConditions.DEFAULT);\n }\n static fromIntInViewingConditions(argb, viewingConditions) {\n const green = (65280 & argb) >> 8,\n blue = 255 & argb,\n redL = linearized((16711680 & argb) >> 16),\n greenL = linearized(green),\n blueL = linearized(blue),\n x = .41233895 * redL + .35762064 * greenL + .18051042 * blueL,\n y = .2126 * redL + .7152 * greenL + .0722 * blueL,\n z = .01932141 * redL + .11916382 * greenL + .95034478 * blueL,\n rC = .401288 * x + .650173 * y - .051461 * z,\n gC = -.250268 * x + 1.204414 * y + .045854 * z,\n bC = -.002079 * x + .048952 * y + .953127 * z,\n rD = viewingConditions.rgbD[0] * rC,\n gD = viewingConditions.rgbD[1] * gC,\n bD = viewingConditions.rgbD[2] * bC,\n rAF = Math.pow(viewingConditions.fl * Math.abs(rD) / 100, .42),\n gAF = Math.pow(viewingConditions.fl * Math.abs(gD) / 100, .42),\n bAF = Math.pow(viewingConditions.fl * Math.abs(bD) / 100, .42),\n rA = 400 * signum(rD) * rAF / (rAF + 27.13),\n gA = 400 * signum(gD) * gAF / (gAF + 27.13),\n bA = 400 * signum(bD) * bAF / (bAF + 27.13),\n a = (11 * rA + -12 * gA + bA) / 11,\n b = (rA + gA - 2 * bA) / 9,\n u = (20 * rA + 20 * gA + 21 * bA) / 20,\n p2 = (40 * rA + 20 * gA + bA) / 20,\n atanDegrees = 180 * Math.atan2(b, a) / Math.PI,\n hue = atanDegrees < 0 ? atanDegrees + 360 : atanDegrees >= 360 ? atanDegrees - 360 : atanDegrees,\n hueRadians = hue * Math.PI / 180,\n ac = p2 * viewingConditions.nbb,\n j = 100 * Math.pow(ac / viewingConditions.aw, viewingConditions.c * viewingConditions.z),\n q = 4 / viewingConditions.c * Math.sqrt(j / 100) * (viewingConditions.aw + 4) * viewingConditions.fLRoot,\n huePrime = hue < 20.14 ? hue + 360 : hue,\n t = 5e4 / 13 * (.25 * (Math.cos(huePrime * Math.PI / 180 + 2) + 3.8)) * viewingConditions.nc * viewingConditions.ncb * Math.sqrt(a * a + b * b) / (u + .305),\n alpha = Math.pow(t, .9) * Math.pow(1.64 - Math.pow(.29, viewingConditions.n), .73),\n c = alpha * Math.sqrt(j / 100),\n m = c * viewingConditions.fLRoot,\n s = 50 * Math.sqrt(alpha * viewingConditions.c / (viewingConditions.aw + 4)),\n jstar = (1 + 100 * .007) * j / (1 + .007 * j),\n mstar = 1 / .0228 * Math.log(1 + .0228 * m),\n astar = mstar * Math.cos(hueRadians),\n bstar = mstar * Math.sin(hueRadians);\n return new Cam16(hue, c, j, q, m, s, jstar, astar, bstar);\n }\n static fromJch(j, c, h) {\n return Cam16.fromJchInViewingConditions(j, c, h, ViewingConditions.DEFAULT);\n }\n static fromJchInViewingConditions(j, c, h, viewingConditions) {\n const q = 4 / viewingConditions.c * Math.sqrt(j / 100) * (viewingConditions.aw + 4) * viewingConditions.fLRoot,\n m = c * viewingConditions.fLRoot,\n alpha = c / Math.sqrt(j / 100),\n s = 50 * Math.sqrt(alpha * viewingConditions.c / (viewingConditions.aw + 4)),\n hueRadians = h * Math.PI / 180,\n jstar = (1 + 100 * .007) * j / (1 + .007 * j),\n mstar = 1 / .0228 * Math.log(1 + .0228 * m),\n astar = mstar * Math.cos(hueRadians),\n bstar = mstar * Math.sin(hueRadians);\n return new Cam16(h, c, j, q, m, s, jstar, astar, bstar);\n }\n static fromUcs(jstar, astar, bstar) {\n return Cam16.fromUcsInViewingConditions(jstar, astar, bstar, ViewingConditions.DEFAULT);\n }\n static fromUcsInViewingConditions(jstar, astar, bstar, viewingConditions) {\n const a = astar,\n b = bstar,\n m = Math.sqrt(a * a + b * b),\n c = (Math.exp(.0228 * m) - 1) / .0228 / viewingConditions.fLRoot;\n let h = Math.atan2(b, a) * (180 / Math.PI);\n h < 0 && (h += 360);\n const j = jstar / (1 - .007 * (jstar - 100));\n return Cam16.fromJchInViewingConditions(j, c, h, viewingConditions);\n }\n toInt() {\n return this.viewed(ViewingConditions.DEFAULT);\n }\n viewed(viewingConditions) {\n const alpha = 0 === this.chroma || 0 === this.j ? 0 : this.chroma / Math.sqrt(this.j / 100),\n t = Math.pow(alpha / Math.pow(1.64 - Math.pow(.29, viewingConditions.n), .73), 1 / .9),\n hRad = this.hue * Math.PI / 180,\n eHue = .25 * (Math.cos(hRad + 2) + 3.8),\n ac = viewingConditions.aw * Math.pow(this.j / 100, 1 / viewingConditions.c / viewingConditions.z),\n p1 = eHue * (5e4 / 13) * viewingConditions.nc * viewingConditions.ncb,\n p2 = ac / viewingConditions.nbb,\n hSin = Math.sin(hRad),\n hCos = Math.cos(hRad),\n gamma = 23 * (p2 + .305) * t / (23 * p1 + 11 * t * hCos + 108 * t * hSin),\n a = gamma * hCos,\n b = gamma * hSin,\n rA = (460 * p2 + 451 * a + 288 * b) / 1403,\n gA = (460 * p2 - 891 * a - 261 * b) / 1403,\n bA = (460 * p2 - 220 * a - 6300 * b) / 1403,\n rCBase = Math.max(0, 27.13 * Math.abs(rA) / (400 - Math.abs(rA))),\n rC = signum(rA) * (100 / viewingConditions.fl) * Math.pow(rCBase, 1 / .42),\n gCBase = Math.max(0, 27.13 * Math.abs(gA) / (400 - Math.abs(gA))),\n gC = signum(gA) * (100 / viewingConditions.fl) * Math.pow(gCBase, 1 / .42),\n bCBase = Math.max(0, 27.13 * Math.abs(bA) / (400 - Math.abs(bA))),\n bC = signum(bA) * (100 / viewingConditions.fl) * Math.pow(bCBase, 1 / .42),\n rF = rC / viewingConditions.rgbD[0],\n gF = gC / viewingConditions.rgbD[1],\n bF = bC / viewingConditions.rgbD[2];\n return argbFromXyz(1.86206786 * rF - 1.01125463 * gF + .14918677 * bF, .38752654 * rF + .62144744 * gF - .00897398 * bF, -.0158415 * rF - .03412294 * gF + 1.04996444 * bF);\n }\n static fromXyzInViewingConditions(x, y, z, viewingConditions) {\n const rC = .401288 * x + .650173 * y - .051461 * z,\n gC = -.250268 * x + 1.204414 * y + .045854 * z,\n bC = -.002079 * x + .048952 * y + .953127 * z,\n rD = viewingConditions.rgbD[0] * rC,\n gD = viewingConditions.rgbD[1] * gC,\n bD = viewingConditions.rgbD[2] * bC,\n rAF = Math.pow(viewingConditions.fl * Math.abs(rD) / 100, .42),\n gAF = Math.pow(viewingConditions.fl * Math.abs(gD) / 100, .42),\n bAF = Math.pow(viewingConditions.fl * Math.abs(bD) / 100, .42),\n rA = 400 * signum(rD) * rAF / (rAF + 27.13),\n gA = 400 * signum(gD) * gAF / (gAF + 27.13),\n bA = 400 * signum(bD) * bAF / (bAF + 27.13),\n a = (11 * rA + -12 * gA + bA) / 11,\n b = (rA + gA - 2 * bA) / 9,\n u = (20 * rA + 20 * gA + 21 * bA) / 20,\n p2 = (40 * rA + 20 * gA + bA) / 20,\n atanDegrees = 180 * Math.atan2(b, a) / Math.PI,\n hue = atanDegrees < 0 ? atanDegrees + 360 : atanDegrees >= 360 ? atanDegrees - 360 : atanDegrees,\n hueRadians = hue * Math.PI / 180,\n ac = p2 * viewingConditions.nbb,\n J = 100 * Math.pow(ac / viewingConditions.aw, viewingConditions.c * viewingConditions.z),\n Q = 4 / viewingConditions.c * Math.sqrt(J / 100) * (viewingConditions.aw + 4) * viewingConditions.fLRoot,\n huePrime = hue < 20.14 ? hue + 360 : hue,\n t = 5e4 / 13 * (1 / 4 * (Math.cos(huePrime * Math.PI / 180 + 2) + 3.8)) * viewingConditions.nc * viewingConditions.ncb * Math.sqrt(a * a + b * b) / (u + .305),\n alpha = Math.pow(t, .9) * Math.pow(1.64 - Math.pow(.29, viewingConditions.n), .73),\n C = alpha * Math.sqrt(J / 100),\n M = C * viewingConditions.fLRoot,\n s = 50 * Math.sqrt(alpha * viewingConditions.c / (viewingConditions.aw + 4)),\n jstar = (1 + 100 * .007) * J / (1 + .007 * J),\n mstar = Math.log(1 + .0228 * M) / .0228,\n astar = mstar * Math.cos(hueRadians),\n bstar = mstar * Math.sin(hueRadians);\n return new Cam16(hue, C, J, Q, M, s, jstar, astar, bstar);\n }\n xyzInViewingConditions(viewingConditions) {\n const alpha = 0 === this.chroma || 0 === this.j ? 0 : this.chroma / Math.sqrt(this.j / 100),\n t = Math.pow(alpha / Math.pow(1.64 - Math.pow(.29, viewingConditions.n), .73), 1 / .9),\n hRad = this.hue * Math.PI / 180,\n eHue = .25 * (Math.cos(hRad + 2) + 3.8),\n ac = viewingConditions.aw * Math.pow(this.j / 100, 1 / viewingConditions.c / viewingConditions.z),\n p1 = eHue * (5e4 / 13) * viewingConditions.nc * viewingConditions.ncb,\n p2 = ac / viewingConditions.nbb,\n hSin = Math.sin(hRad),\n hCos = Math.cos(hRad),\n gamma = 23 * (p2 + .305) * t / (23 * p1 + 11 * t * hCos + 108 * t * hSin),\n a = gamma * hCos,\n b = gamma * hSin,\n rA = (460 * p2 + 451 * a + 288 * b) / 1403,\n gA = (460 * p2 - 891 * a - 261 * b) / 1403,\n bA = (460 * p2 - 220 * a - 6300 * b) / 1403,\n rCBase = Math.max(0, 27.13 * Math.abs(rA) / (400 - Math.abs(rA))),\n rC = signum(rA) * (100 / viewingConditions.fl) * Math.pow(rCBase, 1 / .42),\n gCBase = Math.max(0, 27.13 * Math.abs(gA) / (400 - Math.abs(gA))),\n gC = signum(gA) * (100 / viewingConditions.fl) * Math.pow(gCBase, 1 / .42),\n bCBase = Math.max(0, 27.13 * Math.abs(bA) / (400 - Math.abs(bA))),\n bC = signum(bA) * (100 / viewingConditions.fl) * Math.pow(bCBase, 1 / .42),\n rF = rC / viewingConditions.rgbD[0],\n gF = gC / viewingConditions.rgbD[1],\n bF = bC / viewingConditions.rgbD[2];\n return [1.86206786 * rF - 1.01125463 * gF + .14918677 * bF, .38752654 * rF + .62144744 * gF - .00897398 * bF, -.0158415 * rF - .03412294 * gF + 1.04996444 * bF];\n }\n}\nclass HctSolver {\n static sanitizeRadians(angle) {\n return (angle + 8 * Math.PI) % (2 * Math.PI);\n }\n static trueDelinearized(rgbComponent) {\n const normalized = rgbComponent / 100;\n let delinearized = 0;\n return delinearized = normalized <= .0031308 ? 12.92 * normalized : 1.055 * Math.pow(normalized, 1 / 2.4) - .055, 255 * delinearized;\n }\n static chromaticAdaptation(component) {\n const af = Math.pow(Math.abs(component), .42);\n return 400 * signum(component) * af / (af + 27.13);\n }\n static hueOf(linrgb) {\n const scaledDiscount = matrixMultiply(linrgb, HctSolver.SCALED_DISCOUNT_FROM_LINRGB),\n rA = HctSolver.chromaticAdaptation(scaledDiscount[0]),\n gA = HctSolver.chromaticAdaptation(scaledDiscount[1]),\n bA = HctSolver.chromaticAdaptation(scaledDiscount[2]),\n a = (11 * rA + -12 * gA + bA) / 11,\n b = (rA + gA - 2 * bA) / 9;\n return Math.atan2(b, a);\n }\n static areInCyclicOrder(a, b, c) {\n return HctSolver.sanitizeRadians(b - a) < HctSolver.sanitizeRadians(c - a);\n }\n static intercept(source, mid, target) {\n return (mid - source) / (target - source);\n }\n static lerpPoint(source, t, target) {\n return [source[0] + (target[0] - source[0]) * t, source[1] + (target[1] - source[1]) * t, source[2] + (target[2] - source[2]) * t];\n }\n static setCoordinate(source, coordinate, target, axis) {\n const t = HctSolver.intercept(source[axis], coordinate, target[axis]);\n return HctSolver.lerpPoint(source, t, target);\n }\n static isBounded(x) {\n return 0 <= x && x <= 100;\n }\n static nthVertex(y, n) {\n const kR = HctSolver.Y_FROM_LINRGB[0],\n kG = HctSolver.Y_FROM_LINRGB[1],\n kB = HctSolver.Y_FROM_LINRGB[2],\n coordA = n % 4 <= 1 ? 0 : 100,\n coordB = n % 2 == 0 ? 0 : 100;\n if (n < 4) {\n const g = coordA,\n b = coordB,\n r = (y - g * kG - b * kB) / kR;\n return HctSolver.isBounded(r) ? [r, g, b] : [-1, -1, -1];\n }\n if (n < 8) {\n const b = coordA,\n r = coordB,\n g = (y - r * kR - b * kB) / kG;\n return HctSolver.isBounded(g) ? [r, g, b] : [-1, -1, -1];\n }\n {\n const r = coordA,\n g = coordB,\n b = (y - r * kR - g * kG) / kB;\n return HctSolver.isBounded(b) ? [r, g, b] : [-1, -1, -1];\n }\n }\n static bisectToSegment(y, targetHue) {\n let left = [-1, -1, -1],\n right = left,\n leftHue = 0,\n rightHue = 0,\n initialized = !1,\n uncut = !0;\n for (let n = 0; n < 12; n++) {\n const mid = HctSolver.nthVertex(y, n);\n if (mid[0] < 0) continue;\n const midHue = HctSolver.hueOf(mid);\n initialized ? (uncut || HctSolver.areInCyclicOrder(leftHue, midHue, rightHue)) && (uncut = !1, HctSolver.areInCyclicOrder(leftHue, targetHue, midHue) ? (right = mid, rightHue = midHue) : (left = mid, leftHue = midHue)) : (left = mid, right = mid, leftHue = midHue, rightHue = midHue, initialized = !0);\n }\n return [left, right];\n }\n static midpoint(a, b) {\n return [(a[0] + b[0]) / 2, (a[1] + b[1]) / 2, (a[2] + b[2]) / 2];\n }\n static criticalPlaneBelow(x) {\n return Math.floor(x - .5);\n }\n static criticalPlaneAbove(x) {\n return Math.ceil(x - .5);\n }\n static bisectToLimit(y, targetHue) {\n const segment = HctSolver.bisectToSegment(y, targetHue);\n let left = segment[0],\n leftHue = HctSolver.hueOf(left),\n right = segment[1];\n for (let axis = 0; axis < 3; axis++) if (left[axis] !== right[axis]) {\n let lPlane = -1,\n rPlane = 255;\n left[axis] < right[axis] ? (lPlane = HctSolver.criticalPlaneBelow(HctSolver.trueDelinearized(left[axis])), rPlane = HctSolver.criticalPlaneAbove(HctSolver.trueDelinearized(right[axis]))) : (lPlane = HctSolver.criticalPlaneAbove(HctSolver.trueDelinearized(left[axis])), rPlane = HctSolver.criticalPlaneBelow(HctSolver.trueDelinearized(right[axis])));\n for (let i = 0; i < 8 && !(Math.abs(rPlane - lPlane) <= 1); i++) {\n const mPlane = Math.floor((lPlane + rPlane) / 2),\n midPlaneCoordinate = HctSolver.CRITICAL_PLANES[mPlane],\n mid = HctSolver.setCoordinate(left, midPlaneCoordinate, right, axis),\n midHue = HctSolver.hueOf(mid);\n HctSolver.areInCyclicOrder(leftHue, targetHue, midHue) ? (right = mid, rPlane = mPlane) : (left = mid, leftHue = midHue, lPlane = mPlane);\n }\n }\n return HctSolver.midpoint(left, right);\n }\n static inverseChromaticAdaptation(adapted) {\n const adaptedAbs = Math.abs(adapted),\n base = Math.max(0, 27.13 * adaptedAbs / (400 - adaptedAbs));\n return signum(adapted) * Math.pow(base, 1 / .42);\n }\n static findResultByJ(hueRadians, chroma, y) {\n let j = 11 * Math.sqrt(y);\n const viewingConditions = ViewingConditions.DEFAULT,\n tInnerCoeff = 1 / Math.pow(1.64 - Math.pow(.29, viewingConditions.n), .73),\n p1 = .25 * (Math.cos(hueRadians + 2) + 3.8) * (5e4 / 13) * viewingConditions.nc * viewingConditions.ncb,\n hSin = Math.sin(hueRadians),\n hCos = Math.cos(hueRadians);\n for (let iterationRound = 0; iterationRound < 5; iterationRound++) {\n const jNormalized = j / 100,\n alpha = 0 === chroma || 0 === j ? 0 : chroma / Math.sqrt(jNormalized),\n t = Math.pow(alpha * tInnerCoeff, 1 / .9),\n p2 = viewingConditions.aw * Math.pow(jNormalized, 1 / viewingConditions.c / viewingConditions.z) / viewingConditions.nbb,\n gamma = 23 * (p2 + .305) * t / (23 * p1 + 11 * t * hCos + 108 * t * hSin),\n a = gamma * hCos,\n b = gamma * hSin,\n rA = (460 * p2 + 451 * a + 288 * b) / 1403,\n gA = (460 * p2 - 891 * a - 261 * b) / 1403,\n bA = (460 * p2 - 220 * a - 6300 * b) / 1403,\n linrgb = matrixMultiply([HctSolver.inverseChromaticAdaptation(rA), HctSolver.inverseChromaticAdaptation(gA), HctSolver.inverseChromaticAdaptation(bA)], HctSolver.LINRGB_FROM_SCALED_DISCOUNT);\n if (linrgb[0] < 0 || linrgb[1] < 0 || linrgb[2] < 0) return 0;\n const kR = HctSolver.Y_FROM_LINRGB[0],\n kG = HctSolver.Y_FROM_LINRGB[1],\n kB = HctSolver.Y_FROM_LINRGB[2],\n fnj = kR * linrgb[0] + kG * linrgb[1] + kB * linrgb[2];\n if (fnj <= 0) return 0;\n if (4 === iterationRound || Math.abs(fnj - y) < .002) return linrgb[0] > 100.01 || linrgb[1] > 100.01 || linrgb[2] > 100.01 ? 0 : argbFromLinrgb(linrgb);\n j -= (fnj - y) * j / (2 * fnj);\n }\n return 0;\n }\n static solveToInt(hueDegrees, chroma, lstar) {\n if (chroma < 1e-4 || lstar < 1e-4 || lstar > 99.9999) return argbFromLstar(lstar);\n const hueRadians = (hueDegrees = sanitizeDegreesDouble(hueDegrees)) / 180 * Math.PI,\n y = yFromLstar(lstar),\n exactAnswer = HctSolver.findResultByJ(hueRadians, chroma, y);\n if (0 !== exactAnswer) return exactAnswer;\n return argbFromLinrgb(HctSolver.bisectToLimit(y, hueRadians));\n }\n static solveToCam(hueDegrees, chroma, lstar) {\n return Cam16.fromInt(HctSolver.solveToInt(hueDegrees, chroma, lstar));\n }\n}\nHctSolver.SCALED_DISCOUNT_FROM_LINRGB = [[.001200833568784504, .002389694492170889, .0002795742885861124], [.0005891086651375999, .0029785502573438758, .0003270666104008398], [.00010146692491640572, .0005364214359186694, .0032979401770712076]], HctSolver.LINRGB_FROM_SCALED_DISCOUNT = [[1373.2198709594231, -1100.4251190754821, -7.278681089101213], [-271.815969077903, 559.6580465940733, -32.46047482791194], [1.9622899599665666, -57.173814538844006, 308.7233197812385]], HctSolver.Y_FROM_LINRGB = [.2126, .7152, .0722], HctSolver.CRITICAL_PLANES = [.015176349177441876, .045529047532325624, .07588174588720938, .10623444424209313, .13658714259697685, .16693984095186062, .19729253930674434, .2276452376616281, .2579979360165119, .28835063437139563, .3188300904430532, .350925934958123, .3848314933096426, .42057480301049466, .458183274052838, .4976837250274023, .5391024159806381, .5824650784040898, .6277969426914107, .6751227633498623, .7244668422128921, .775853049866786, .829304845476233, .8848452951698498, .942497089126609, 1.0022825574869039, 1.0642236851973577, 1.1283421258858297, 1.1946592148522128, 1.2631959812511864, 1.3339731595349034, 1.407011200216447, 1.4823302800086415, 1.5599503113873272, 1.6398909516233677, 1.7221716113234105, 1.8068114625156377, 1.8938294463134073, 1.9832442801866852, 2.075074464868551, 2.1693382909216234, 2.2660538449872063, 2.36523901573795, 2.4669114995532007, 2.5710888059345764, 2.6777882626779785, 2.7870270208169257, 2.898822059350997, 3.0131901897720907, 3.1301480604002863, 3.2497121605402226, 3.3718988244681087, 3.4967242352587946, 3.624204428461639, 3.754355295633311, 3.887192587735158, 4.022731918402185, 4.160988767090289, 4.301978482107941, 4.445716283538092, 4.592217266055746, 4.741496401646282, 4.893568542229298, 5.048448422192488, 5.20615066083972, 5.3666897647573375, 5.5300801301023865, 5.696336044816294, 5.865471690767354, 6.037501145825082, 6.212438385869475, 6.390297286737924, 6.571091626112461, 6.7548350853498045, 6.941541251256611, 7.131223617812143, 7.323895587840543, 7.5195704746346665, 7.7182615035334345, 7.919981813454504, 8.124744458384042, 8.332562408825165, 8.543448553206703, 8.757415699253682, 8.974476575321063, 9.194643831691977, 9.417930041841839, 9.644347703669503, 9.873909240696694, 10.106627003236781, 10.342513269534024, 10.58158024687427, 10.8238400726681, 11.069304815507364, 11.317986476196008, 11.569896988756009, 11.825048221409341, 12.083451977536606, 12.345119996613247, 12.610063955123938, 12.878295467455942, 13.149826086772048, 13.42466730586372, 13.702830557985108, 13.984327217668513, 14.269168601521828, 14.55736596900856, 14.848930523210871, 15.143873411576273, 15.44220572664832, 15.743938506781891, 16.04908273684337, 16.35764934889634, 16.66964922287304, 16.985093187232053, 17.30399201960269, 17.62635644741625, 17.95219714852476, 18.281524751807332, 18.614349837764564, 18.95068293910138, 19.290534541298456, 19.633915083172692, 19.98083495742689, 20.331304511189067, 20.685334046541502, 21.042933821039977, 21.404114048223256, 21.76888489811322, 22.137256497705877, 22.50923893145328, 22.884842241736916, 23.264076429332462, 23.6469514538663, 24.033477234264016, 24.42366364919083, 24.817520537484558, 25.21505769858089, 25.61628489293138, 26.021211842414342, 26.429848230738664, 26.842203703840827, 27.258287870275353, 27.678110301598522, 28.10168053274597, 28.529008062403893, 28.96010235337422, 29.39497283293396, 29.83362889318845, 30.276079891419332, 30.722335150426627, 31.172403958865512, 31.62629557157785, 32.08401920991837, 32.54558406207592, 33.010999283389665, 33.4802739966603, 33.953417292456834, 34.430438229418264, 34.911345834551085, 35.39614910352207, 35.88485700094671, 36.37747846067349, 36.87402238606382, 37.37449765026789, 37.87891309649659, 38.38727753828926, 38.89959975977785, 39.41588851594697, 39.93615253289054, 40.460400508064545, 40.98864111053629, 41.520882981230194, 42.05713473317016, 42.597404951718396, 43.141702194811224, 43.6900349931913, 44.24241185063697, 44.798841244188324, 45.35933162437017, 45.92389141541209, 46.49252901546552, 47.065252796817916, 47.64207110610409, 48.22299226451468, 48.808024568002054, 49.3971762874833, 49.9904556690408, 50.587870934119984, 51.189430279724725, 51.79514187861014, 52.40501387947288, 53.0190544071392, 53.637271562750364, 54.259673423945976, 54.88626804504493, 55.517063457223934, 56.15206766869424, 56.79128866487574, 57.43473440856916, 58.08241284012621, 58.734331877617365, 59.39049941699807, 60.05092333227251, 60.715611475655585, 61.38457167773311, 62.057811747619894, 62.7353394731159, 63.417162620860914, 64.10328893648692, 64.79372614476921, 65.48848194977529, 66.18756403501224, 66.89098006357258, 67.59873767827808, 68.31084450182222, 69.02730813691093, 69.74813616640164, 70.47333615344107, 71.20291564160104, 71.93688215501312, 72.67524319850172, 73.41800625771542, 74.16517879925733, 74.9167682708136, 75.67278210128072, 76.43322770089146, 77.1981124613393, 77.96744375590167, 78.74122893956174, 79.51947534912904, 80.30219030335869, 81.08938110306934, 81.88105503125999, 82.67721935322541, 83.4778813166706, 84.28304815182372, 85.09272707154808, 85.90692527145302, 86.72564993000343, 87.54890820862819, 88.3767072518277, 89.2090541872801, 90.04595612594655, 90.88742016217518, 91.73345337380438, 92.58406282226491, 93.43925555268066, 94.29903859396902, 95.16341895893969, 96.03240364439274, 96.9059996312159, 97.78421388448044, 98.6670533535366, 99.55452497210776];\nclass Hct {\n static from(hue, chroma, tone) {\n return new Hct(HctSolver.solveToInt(hue, chroma, tone));\n }\n static fromInt(argb) {\n return new Hct(argb);\n }\n toInt() {\n return this.argb;\n }\n get hue() {\n return this.internalHue;\n }\n set hue(newHue) {\n this.setInternalState(HctSolver.solveToInt(newHue, this.internalChroma, this.internalTone));\n }\n get chroma() {\n return this.internalChroma;\n }\n set chroma(newChroma) {\n this.setInternalState(HctSolver.solveToInt(this.internalHue, newChroma, this.internalTone));\n }\n get tone() {\n return this.internalTone;\n }\n set tone(newTone) {\n this.setInternalState(HctSolver.solveToInt(this.internalHue, this.internalChroma, newTone));\n }\n constructor(argb) {\n this.argb = argb;\n const cam = Cam16.fromInt(argb);\n this.internalHue = cam.hue, this.internalChroma = cam.chroma, this.internalTone = lstarFromArgb(argb), this.argb = argb;\n }\n setInternalState(argb) {\n const cam = Cam16.fromInt(argb);\n this.internalHue = cam.hue, this.internalChroma = cam.chroma, this.internalTone = lstarFromArgb(argb), this.argb = argb;\n }\n inViewingConditions(vc) {\n const viewedInVc = Cam16.fromInt(this.toInt()).xyzInViewingConditions(vc),\n recastInVc = Cam16.fromXyzInViewingConditions(viewedInVc[0], viewedInVc[1], viewedInVc[2], ViewingConditions.make());\n return Hct.from(recastInVc.hue, recastInVc.chroma, lstarFromY(viewedInVc[1]));\n }\n}\nclass Blend {\n static harmonize(designColor, sourceColor) {\n const fromHct = Hct.fromInt(designColor),\n toHct = Hct.fromInt(sourceColor),\n differenceDegrees$1 = differenceDegrees(fromHct.hue, toHct.hue),\n rotationDegrees = Math.min(.5 * differenceDegrees$1, 15),\n outputHue = sanitizeDegreesDouble(fromHct.hue + rotationDegrees * rotationDirection(fromHct.hue, toHct.hue));\n return Hct.from(outputHue, fromHct.chroma, fromHct.tone).toInt();\n }\n static hctHue(from, to, amount) {\n const ucs = Blend.cam16Ucs(from, to, amount),\n ucsCam = Cam16.fromInt(ucs),\n fromCam = Cam16.fromInt(from);\n return Hct.from(ucsCam.hue, fromCam.chroma, lstarFromArgb(from)).toInt();\n }\n static cam16Ucs(from, to, amount) {\n const fromCam = Cam16.fromInt(from),\n toCam = Cam16.fromInt(to),\n fromJ = fromCam.jstar,\n fromA = fromCam.astar,\n fromB = fromCam.bstar,\n jstar = fromJ + (toCam.jstar - fromJ) * amount,\n astar = fromA + (toCam.astar - fromA) * amount,\n bstar = fromB + (toCam.bstar - fromB) * amount;\n return Cam16.fromUcs(jstar, astar, bstar).toInt();\n }\n}\nclass Contrast {\n static ratioOfTones(toneA, toneB) {\n return toneA = clampDouble(0, 100, toneA), toneB = clampDouble(0, 100, toneB), Contrast.ratioOfYs(yFromLstar(toneA), yFromLstar(toneB));\n }\n static ratioOfYs(y1, y2) {\n const lighter = y1 > y2 ? y1 : y2;\n return (lighter + 5) / ((lighter === y2 ? y1 : y2) + 5);\n }\n static lighter(tone, ratio) {\n if (tone < 0 || tone > 100) return -1;\n const darkY = yFromLstar(tone),\n lightY = ratio * (darkY + 5) - 5,\n realContrast = Contrast.ratioOfYs(lightY, darkY),\n delta = Math.abs(realContrast - ratio);\n if (realContrast < ratio && delta > .04) return -1;\n const returnValue = lstarFromY(lightY) + .4;\n return returnValue < 0 || returnValue > 100 ? -1 : returnValue;\n }\n static darker(tone, ratio) {\n if (tone < 0 || tone > 100) return -1;\n const lightY = yFromLstar(tone),\n darkY = (lightY + 5) / ratio - 5,\n realContrast = Contrast.ratioOfYs(lightY, darkY),\n delta = Math.abs(realContrast - ratio);\n if (realContrast < ratio && delta > .04) return -1;\n const returnValue = lstarFromY(darkY) - .4;\n return returnValue < 0 || returnValue > 100 ? -1 : returnValue;\n }\n static lighterUnsafe(tone, ratio) {\n const lighterSafe = Contrast.lighter(tone, ratio);\n return lighterSafe < 0 ? 100 : lighterSafe;\n }\n static darkerUnsafe(tone, ratio) {\n const darkerSafe = Contrast.darker(tone, ratio);\n return darkerSafe < 0 ? 0 : darkerSafe;\n }\n}\nclass DislikeAnalyzer {\n static isDisliked(hct) {\n const huePasses = Math.round(hct.hue) >= 90 && Math.round(hct.hue) <= 111,\n chromaPasses = Math.round(hct.chroma) > 16,\n tonePasses = Math.round(hct.tone) < 65;\n return huePasses && chromaPasses && tonePasses;\n }\n static fixIfDisliked(hct) {\n return DislikeAnalyzer.isDisliked(hct) ? Hct.from(hct.hue, hct.chroma, 70) : hct;\n }\n}\nclass DynamicColor {\n static fromPalette(args) {\n return new DynamicColor(args.name ?? \"\", args.palette, args.tone, args.isBackground ?? !1, args.background, args.secondBackground, args.contrastCurve, args.toneDeltaPair);\n }\n constructor(name, palette, tone, isBackground, background, secondBackground, contrastCurve, toneDeltaPair) {\n if (this.name = name, this.palette = palette, this.tone = tone, this.isBackground = isBackground, this.background = background, this.secondBackground = secondBackground, this.contrastCurve = contrastCurve, this.toneDeltaPair = toneDeltaPair, this.hctCache = new Map(), !background && secondBackground) throw new Error(`Color ${name} has secondBackgrounddefined, but background is not defined.`);\n if (!background && contrastCurve) throw new Error(`Color ${name} has contrastCurvedefined, but background is not defined.`);\n if (background && !contrastCurve) throw new Error(`Color ${name} has backgrounddefined, but contrastCurve is not defined.`);\n }\n getArgb(scheme) {\n return this.getHct(scheme).toInt();\n }\n getHct(scheme) {\n const cachedAnswer = this.hctCache.get(scheme);\n if (null != cachedAnswer) return cachedAnswer;\n const tone = this.getTone(scheme),\n answer = this.palette(scheme).getHct(tone);\n return this.hctCache.size > 4 && this.hctCache.clear(), this.hctCache.set(scheme, answer), answer;\n }\n getTone(scheme) {\n const decreasingContrast = scheme.contrastLevel < 0;\n if (this.toneDeltaPair) {\n const toneDeltaPair = this.toneDeltaPair(scheme),\n roleA = toneDeltaPair.roleA,\n roleB = toneDeltaPair.roleB,\n delta = toneDeltaPair.delta,\n polarity = toneDeltaPair.polarity,\n stayTogether = toneDeltaPair.stayTogether,\n bgTone = this.background(scheme).getTone(scheme),\n aIsNearer = \"nearer\" === polarity || \"lighter\" === polarity && !scheme.isDark || \"darker\" === polarity && scheme.isDark,\n nearer = aIsNearer ? roleA : roleB,\n farther = aIsNearer ? roleB : roleA,\n amNearer = this.name === nearer.name,\n expansionDir = scheme.isDark ? 1 : -1,\n nContrast = nearer.contrastCurve.getContrast(scheme.contrastLevel),\n fContrast = farther.contrastCurve.getContrast(scheme.contrastLevel),\n nInitialTone = nearer.tone(scheme);\n let nTone = Contrast.ratioOfTones(bgTone, nInitialTone) >= nContrast ? nInitialTone : DynamicColor.foregroundTone(bgTone, nContrast);\n const fInitialTone = farther.tone(scheme);\n let fTone = Contrast.ratioOfTones(bgTone, fInitialTone) >= fContrast ? fInitialTone : DynamicColor.foregroundTone(bgTone, fContrast);\n return decreasingContrast && (nTone = DynamicColor.foregroundTone(bgTone, nContrast), fTone = DynamicColor.foregroundTone(bgTone, fContrast)), (fTone - nTone) * expansionDir >= delta || (fTone = clampDouble(0, 100, nTone + delta * expansionDir), (fTone - nTone) * expansionDir >= delta || (nTone = clampDouble(0, 100, fTone - delta * expansionDir))), 50 <= nTone && nTone < 60 ? expansionDir > 0 ? (nTone = 60, fTone = Math.max(fTone, nTone + delta * expansionDir)) : (nTone = 49, fTone = Math.min(fTone, nTone + delta * expansionDir)) : 50 <= fTone && fTone < 60 && (stayTogether ? expansionDir > 0 ? (nTone = 60, fTone = Math.max(fTone, nTone + delta * expansionDir)) : (nTone = 49, fTone = Math.min(fTone, nTone + delta * expansionDir)) : fTone = expansionDir > 0 ? 60 : 49), amNearer ? nTone : fTone;\n }\n {\n let answer = this.tone(scheme);\n if (null == this.background) return answer;\n const bgTone = this.background(scheme).getTone(scheme),\n desiredRatio = this.contrastCurve.getContrast(scheme.contrastLevel);\n if (Contrast.ratioOfTones(bgTone, answer) >= desiredRatio || (answer = DynamicColor.foregroundTone(bgTone, desiredRatio)), decreasingContrast && (answer = DynamicColor.foregroundTone(bgTone, desiredRatio)), this.isBackground && 50 <= answer && answer < 60 && (answer = Contrast.ratioOfTones(49, bgTone) >= desiredRatio ? 49 : 60), this.secondBackground) {\n const [bg1, bg2] = [this.background, this.secondBackground],\n [bgTone1, bgTone2] = [bg1(scheme).getTone(scheme), bg2(scheme).getTone(scheme)],\n [upper, lower] = [Math.max(bgTone1, bgTone2), Math.min(bgTone1, bgTone2)];\n if (Contrast.ratioOfTones(upper, answer) >= desiredRatio && Contrast.ratioOfTones(lower, answer) >= desiredRatio) return answer;\n const lightOption = Contrast.lighter(upper, desiredRatio),\n darkOption = Contrast.darker(lower, desiredRatio),\n availables = [];\n -1 !== lightOption && availables.push(lightOption), -1 !== darkOption && availables.push(darkOption);\n return DynamicColor.tonePrefersLightForeground(bgTone1) || DynamicColor.tonePrefersLightForeground(bgTone2) ? lightOption < 0 ? 100 : lightOption : 1 === availables.length ? availables[0] : darkOption < 0 ? 0 : darkOption;\n }\n return answer;\n }\n }\n static foregroundTone(bgTone, ratio) {\n const lighterTone = Contrast.lighterUnsafe(bgTone, ratio),\n darkerTone = Contrast.darkerUnsafe(bgTone, ratio),\n lighterRatio = Contrast.ratioOfTones(lighterTone, bgTone),\n darkerRatio = Contrast.ratioOfTones(darkerTone, bgTone);\n if (DynamicColor.tonePrefersLightForeground(bgTone)) {\n const negligibleDifference = Math.abs(lighterRatio - darkerRatio) < .1 && lighterRatio < ratio && darkerRatio < ratio;\n return lighterRatio >= ratio || lighterRatio >= darkerRatio || negligibleDifference ? lighterTone : darkerTone;\n }\n return darkerRatio >= ratio || darkerRatio >= lighterRatio ? darkerTone : lighterTone;\n }\n static tonePrefersLightForeground(tone) {\n return Math.round(tone) < 60;\n }\n static toneAllowsLightForeground(tone) {\n return Math.round(tone) <= 49;\n }\n static enableLightForeground(tone) {\n return DynamicColor.tonePrefersLightForeground(tone) && !DynamicColor.toneAllowsLightForeground(tone) ? 49 : tone;\n }\n}\nvar Variant;\n!function (Variant) {\n Variant[Variant.MONOCHROME = 0] = \"MONOCHROME\", Variant[Variant.NEUTRAL = 1] = \"NEUTRAL\", Variant[Variant.TONAL_SPOT = 2] = \"TONAL_SPOT\", Variant[Variant.VIBRANT = 3] = \"VIBRANT\", Variant[Variant.EXPRESSIVE = 4] = \"EXPRESSIVE\", Variant[Variant.FIDELITY = 5] = \"FIDELITY\", Variant[Variant.CONTENT = 6] = \"CONTENT\", Variant[Variant.RAINBOW = 7] = \"RAINBOW\", Variant[Variant.FRUIT_SALAD = 8] = \"FRUIT_SALAD\";\n}(Variant || (Variant = {}));\nclass ContrastCurve {\n constructor(low, normal, medium, high) {\n this.low = low, this.normal = normal, this.medium = medium, this.high = high;\n }\n getContrast(contrastLevel) {\n return contrastLevel <= -1 ? this.low : contrastLevel < 0 ? lerp(this.low, this.normal, (contrastLevel - -1) / 1) : contrastLevel < .5 ? lerp(this.normal, this.medium, (contrastLevel - 0) / .5) : contrastLevel < 1 ? lerp(this.medium, this.high, (contrastLevel - .5) / .5) : this.high;\n }\n}\nclass ToneDeltaPair {\n constructor(roleA, roleB, delta, polarity, stayTogether) {\n this.roleA = roleA, this.roleB = roleB, this.delta = delta, this.polarity = polarity, this.stayTogether = stayTogether;\n }\n}\nfunction isFidelity(scheme) {\n return scheme.variant === Variant.FIDELITY || scheme.variant === Variant.CONTENT;\n}\nfunction isMonochrome(scheme) {\n return scheme.variant === Variant.MONOCHROME;\n}\nfunction findDesiredChromaByTone(hue, chroma, tone, byDecreasingTone) {\n let answer = tone,\n closestToChroma = Hct.from(hue, chroma, tone);\n if (closestToChroma.chroma < chroma) {\n let chromaPeak = closestToChroma.chroma;\n for (; closestToChroma.chroma < chroma;) {\n answer += byDecreasingTone ? -1 : 1;\n const potentialSolution = Hct.from(hue, chroma, answer);\n if (chromaPeak > potentialSolution.chroma) break;\n if (Math.abs(potentialSolution.chroma - chroma) < .4) break;\n Math.abs(potentialSolution.chroma - chroma) < Math.abs(closestToChroma.chroma - chroma) && (closestToChroma = potentialSolution), chromaPeak = Math.max(chromaPeak, potentialSolution.chroma);\n }\n }\n return answer;\n}\nfunction viewingConditionsForAlbers(scheme) {\n return ViewingConditions.make(void 0, void 0, scheme.isDark ? 30 : 80, void 0, void 0);\n}\nfunction performAlbers(prealbers, scheme) {\n const albersd = prealbers.inViewingConditions(viewingConditionsForAlbers(scheme));\n return DynamicColor.tonePrefersLightForeground(prealbers.tone) && !DynamicColor.toneAllowsLightForeground(albersd.tone) ? DynamicColor.enableLightForeground(prealbers.tone) : DynamicColor.enableLightForeground(albersd.tone);\n}\nclass MaterialDynamicColors {\n static highestSurface(s) {\n return s.isDark ? MaterialDynamicColors.surfaceBright : MaterialDynamicColors.surfaceDim;\n }\n}\nMaterialDynamicColors.contentAccentToneDelta = 15, MaterialDynamicColors.primaryPaletteKeyColor = DynamicColor.fromPalette({\n name: \"primary_palette_key_color\",\n palette: s => s.primaryPalette,\n tone: s => s.primaryPalette.keyColor.tone\n}), MaterialDynamicColors.secondaryPaletteKeyColor = DynamicColor.fromPalette({\n name: \"secondary_palette_key_color\",\n palette: s => s.secondaryPalette,\n tone: s => s.secondaryPalette.keyColor.tone\n}), MaterialDynamicColors.tertiaryPaletteKeyColor = DynamicColor.fromPalette({\n name: \"tertiary_palette_key_color\",\n palette: s => s.tertiaryPalette,\n tone: s => s.tertiaryPalette.keyColor.tone\n}), MaterialDynamicColors.neutralPaletteKeyColor = DynamicColor.fromPalette({\n name: \"neutral_palette_key_color\",\n palette: s => s.neutralPalette,\n tone: s => s.neutralPalette.keyColor.tone\n}), MaterialDynamicColors.neutralVariantPaletteKeyColor = DynamicColor.fromPalette({\n name: \"neutral_variant_palette_key_color\",\n palette: s => s.neutralVariantPalette,\n tone: s => s.neutralVariantPalette.keyColor.tone\n}), MaterialDynamicColors.background = DynamicColor.fromPalette({\n name: \"background\",\n palette: s => s.neutralPalette,\n tone: s => s.isDark ? 6 : 98,\n isBackground: !0\n}), MaterialDynamicColors.onBackground = DynamicColor.fromPalette({\n name: \"on_background\",\n palette: s => s.neutralPalette,\n tone: s => s.isDark ? 90 : 10,\n background: s => MaterialDynamicColors.background,\n contrastCurve: new ContrastCurve(3, 3, 4.5, 7)\n}), MaterialDynamicColors.surface = DynamicColor.fromPalette({\n name: \"surface\",\n palette: s => s.neutralPalette,\n tone: s => s.isDark ? 6 : 98,\n isBackground: !0\n}), MaterialDynamicColors.surfaceDim = DynamicColor.fromPalette({\n name: \"surface_dim\",\n palette: s => s.neutralPalette,\n tone: s => s.isDark ? 6 : 87,\n isBackground: !0\n}), MaterialDynamicColors.surfaceBright = DynamicColor.fromPalette({\n name: \"surface_bright\",\n palette: s => s.neutralPalette,\n tone: s => s.isDark ? 24 : 98,\n isBackground: !0\n}), MaterialDynamicColors.surfaceContainerLowest = DynamicColor.fromPalette({\n name: \"surface_container_lowest\",\n palette: s => s.neutralPalette,\n tone: s => s.isDark ? 4 : 100,\n isBackground: !0\n}), MaterialDynamicColors.surfaceContainerLow = DynamicColor.fromPalette({\n name: \"surface_container_low\",\n palette: s => s.neutralPalette,\n tone: s => s.isDark ? 10 : 96,\n isBackground: !0\n}), MaterialDynamicColors.surfaceContainer = DynamicColor.fromPalette({\n name: \"surface_container\",\n palette: s => s.neutralPalette,\n tone: s => s.isDark ? 12 : 94,\n isBackground: !0\n}), MaterialDynamicColors.surfaceContainerHigh = DynamicColor.fromPalette({\n name: \"surface_container_high\",\n palette: s => s.neutralPalette,\n tone: s => s.isDark ? 17 : 92,\n isBackground: !0\n}), MaterialDynamicColors.surfaceContainerHighest = DynamicColor.fromPalette({\n name: \"surface_container_highest\",\n palette: s => s.neutralPalette,\n tone: s => s.isDark ? 22 : 90,\n isBackground: !0\n}), MaterialDynamicColors.onSurface = DynamicColor.fromPalette({\n name: \"on_surface\",\n palette: s => s.neutralPalette,\n tone: s => s.isDark ? 90 : 10,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(4.5, 7, 11, 21)\n}), MaterialDynamicColors.surfaceVariant = DynamicColor.fromPalette({\n name: \"surface_variant\",\n palette: s => s.neutralVariantPalette,\n tone: s => s.isDark ? 30 : 90,\n isBackground: !0\n}), MaterialDynamicColors.onSurfaceVariant = DynamicColor.fromPalette({\n name: \"on_surface_variant\",\n palette: s => s.neutralVariantPalette,\n tone: s => s.isDark ? 80 : 30,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(3, 4.5, 7, 11)\n}), MaterialDynamicColors.inverseSurface = DynamicColor.fromPalette({\n name: \"inverse_surface\",\n palette: s => s.neutralPalette,\n tone: s => s.isDark ? 90 : 20\n}), MaterialDynamicColors.inverseOnSurface = DynamicColor.fromPalette({\n name: \"inverse_on_surface\",\n palette: s => s.neutralPalette,\n tone: s => s.isDark ? 20 : 95,\n background: s => MaterialDynamicColors.inverseSurface,\n contrastCurve: new ContrastCurve(4.5, 7, 11, 21)\n}), MaterialDynamicColors.outline = DynamicColor.fromPalette({\n name: \"outline\",\n palette: s => s.neutralVariantPalette,\n tone: s => s.isDark ? 60 : 50,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(1.5, 3, 4.5, 7)\n}), MaterialDynamicColors.outlineVariant = DynamicColor.fromPalette({\n name: \"outline_variant\",\n palette: s => s.neutralVariantPalette,\n tone: s => s.isDark ? 30 : 80,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(1, 1, 3, 7)\n}), MaterialDynamicColors.shadow = DynamicColor.fromPalette({\n name: \"shadow\",\n palette: s => s.neutralPalette,\n tone: s => 0\n}), MaterialDynamicColors.scrim = DynamicColor.fromPalette({\n name: \"scrim\",\n palette: s => s.neutralPalette,\n tone: s => 0\n}), MaterialDynamicColors.surfaceTint = DynamicColor.fromPalette({\n name: \"surface_tint\",\n palette: s => s.primaryPalette,\n tone: s => s.isDark ? 80 : 40,\n isBackground: !0\n}), MaterialDynamicColors.primary = DynamicColor.fromPalette({\n name: \"primary\",\n palette: s => s.primaryPalette,\n tone: s => isMonochrome(s) ? s.isDark ? 100 : 0 : s.isDark ? 80 : 40,\n isBackground: !0,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(3, 4.5, 7, 11),\n toneDeltaPair: s => new ToneDeltaPair(MaterialDynamicColors.primaryContainer, MaterialDynamicColors.primary, 15, \"nearer\", !1)\n}), MaterialDynamicColors.onPrimary = DynamicColor.fromPalette({\n name: \"on_primary\",\n palette: s => s.primaryPalette,\n tone: s => isMonochrome(s) ? s.isDark ? 10 : 90 : s.isDark ? 20 : 100,\n background: s => MaterialDynamicColors.primary,\n contrastCurve: new ContrastCurve(4.5, 7, 11, 21)\n}), MaterialDynamicColors.primaryContainer = DynamicColor.fromPalette({\n name: \"primary_container\",\n palette: s => s.primaryPalette,\n tone: s => isFidelity(s) ? performAlbers(s.sourceColorHct, s) : isMonochrome(s) ? s.isDark ? 85 : 25 : s.isDark ? 30 : 90,\n isBackground: !0,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(1, 1, 3, 7),\n toneDeltaPair: s => new ToneDeltaPair(MaterialDynamicColors.primaryContainer, MaterialDynamicColors.primary, 15, \"nearer\", !1)\n}), MaterialDynamicColors.onPrimaryContainer = DynamicColor.fromPalette({\n name: \"on_primary_container\",\n palette: s => s.primaryPalette,\n tone: s => isFidelity(s) ? DynamicColor.foregroundTone(MaterialDynamicColors.primaryContainer.tone(s), 4.5) : isMonochrome(s) ? s.isDark ? 0 : 100 : s.isDark ? 90 : 10,\n background: s => MaterialDynamicColors.primaryContainer,\n contrastCurve: new ContrastCurve(4.5, 7, 11, 21)\n}), MaterialDynamicColors.inversePrimary = DynamicColor.fromPalette({\n name: \"inverse_primary\",\n palette: s => s.primaryPalette,\n tone: s => s.isDark ? 40 : 80,\n background: s => MaterialDynamicColors.inverseSurface,\n contrastCurve: new ContrastCurve(3, 4.5, 7, 11)\n}), MaterialDynamicColors.secondary = DynamicColor.fromPalette({\n name: \"secondary\",\n palette: s => s.secondaryPalette,\n tone: s => s.isDark ? 80 : 40,\n isBackground: !0,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(3, 4.5, 7, 11),\n toneDeltaPair: s => new ToneDeltaPair(MaterialDynamicColors.secondaryContainer, MaterialDynamicColors.secondary, 15, \"nearer\", !1)\n}), MaterialDynamicColors.onSecondary = DynamicColor.fromPalette({\n name: \"on_secondary\",\n palette: s => s.secondaryPalette,\n tone: s => isMonochrome(s) ? s.isDark ? 10 : 100 : s.isDark ? 20 : 100,\n background: s => MaterialDynamicColors.secondary,\n contrastCurve: new ContrastCurve(4.5, 7, 11, 21)\n}), MaterialDynamicColors.secondaryContainer = DynamicColor.fromPalette({\n name: \"secondary_container\",\n palette: s => s.secondaryPalette,\n tone: s => {\n const initialTone = s.isDark ? 30 : 90;\n if (isMonochrome(s)) return s.isDark ? 30 : 85;\n if (!isFidelity(s)) return initialTone;\n let answer = findDesiredChromaByTone(s.secondaryPalette.hue, s.secondaryPalette.chroma, initialTone, !s.isDark);\n return answer = performAlbers(s.secondaryPalette.getHct(answer), s), answer;\n },\n isBackground: !0,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(1, 1, 3, 7),\n toneDeltaPair: s => new ToneDeltaPair(MaterialDynamicColors.secondaryContainer, MaterialDynamicColors.secondary, 15, \"nearer\", !1)\n}), MaterialDynamicColors.onSecondaryContainer = DynamicColor.fromPalette({\n name: \"on_secondary_container\",\n palette: s => s.secondaryPalette,\n tone: s => isFidelity(s) ? DynamicColor.foregroundTone(MaterialDynamicColors.secondaryContainer.tone(s), 4.5) : s.isDark ? 90 : 10,\n background: s => MaterialDynamicColors.secondaryContainer,\n contrastCurve: new ContrastCurve(4.5, 7, 11, 21)\n}), MaterialDynamicColors.tertiary = DynamicColor.fromPalette({\n name: \"tertiary\",\n palette: s => s.tertiaryPalette,\n tone: s => isMonochrome(s) ? s.isDark ? 90 : 25 : s.isDark ? 80 : 40,\n isBackground: !0,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(3, 4.5, 7, 11),\n toneDeltaPair: s => new ToneDeltaPair(MaterialDynamicColors.tertiaryContainer, MaterialDynamicColors.tertiary, 15, \"nearer\", !1)\n}), MaterialDynamicColors.onTertiary = DynamicColor.fromPalette({\n name: \"on_tertiary\",\n palette: s => s.tertiaryPalette,\n tone: s => isMonochrome(s) ? s.isDark ? 10 : 90 : s.isDark ? 20 : 100,\n background: s => MaterialDynamicColors.tertiary,\n contrastCurve: new ContrastCurve(4.5, 7, 11, 21)\n}), MaterialDynamicColors.tertiaryContainer = DynamicColor.fromPalette({\n name: \"tertiary_container\",\n palette: s => s.tertiaryPalette,\n tone: s => {\n if (isMonochrome(s)) return s.isDark ? 60 : 49;\n if (!isFidelity(s)) return s.isDark ? 30 : 90;\n const albersTone = performAlbers(s.tertiaryPalette.getHct(s.sourceColorHct.tone), s),\n proposedHct = s.tertiaryPalette.getHct(albersTone);\n return DislikeAnalyzer.fixIfDisliked(proposedHct).tone;\n },\n isBackground: !0,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(1, 1, 3, 7),\n toneDeltaPair: s => new ToneDeltaPair(MaterialDynamicColors.tertiaryContainer, MaterialDynamicColors.tertiary, 15, \"nearer\", !1)\n}), MaterialDynamicColors.onTertiaryContainer = DynamicColor.fromPalette({\n name: \"on_tertiary_container\",\n palette: s => s.tertiaryPalette,\n tone: s => isMonochrome(s) ? s.isDark ? 0 : 100 : isFidelity(s) ? DynamicColor.foregroundTone(MaterialDynamicColors.tertiaryContainer.tone(s), 4.5) : s.isDark ? 90 : 10,\n background: s => MaterialDynamicColors.tertiaryContainer,\n contrastCurve: new ContrastCurve(4.5, 7, 11, 21)\n}), MaterialDynamicColors.error = DynamicColor.fromPalette({\n name: \"error\",\n palette: s => s.errorPalette,\n tone: s => s.isDark ? 80 : 40,\n isBackground: !0,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(3, 4.5, 7, 11),\n toneDeltaPair: s => new ToneDeltaPair(MaterialDynamicColors.errorContainer, MaterialDynamicColors.error, 15, \"nearer\", !1)\n}), MaterialDynamicColors.onError = DynamicColor.fromPalette({\n name: \"on_error\",\n palette: s => s.errorPalette,\n tone: s => s.isDark ? 20 : 100,\n background: s => MaterialDynamicColors.error,\n contrastCurve: new ContrastCurve(4.5, 7, 11, 21)\n}), MaterialDynamicColors.errorContainer = DynamicColor.fromPalette({\n name: \"error_container\",\n palette: s => s.errorPalette,\n tone: s => s.isDark ? 30 : 90,\n isBackground: !0,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(1, 1, 3, 7),\n toneDeltaPair: s => new ToneDeltaPair(MaterialDynamicColors.errorContainer, MaterialDynamicColors.error, 15, \"nearer\", !1)\n}), MaterialDynamicColors.onErrorContainer = DynamicColor.fromPalette({\n name: \"on_error_container\",\n palette: s => s.errorPalette,\n tone: s => s.isDark ? 90 : 10,\n background: s => MaterialDynamicColors.errorContainer,\n contrastCurve: new ContrastCurve(4.5, 7, 11, 21)\n}), MaterialDynamicColors.primaryFixed = DynamicColor.fromPalette({\n name: \"primary_fixed\",\n palette: s => s.primaryPalette,\n tone: s => isMonochrome(s) ? 40 : 90,\n isBackground: !0,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(1, 1, 3, 7),\n toneDeltaPair: s => new ToneDeltaPair(MaterialDynamicColors.primaryFixed, MaterialDynamicColors.primaryFixedDim, 10, \"lighter\", !0)\n}), MaterialDynamicColors.primaryFixedDim = DynamicColor.fromPalette({\n name: \"primary_fixed_dim\",\n palette: s => s.primaryPalette,\n tone: s => isMonochrome(s) ? 30 : 80,\n isBackground: !0,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(1, 1, 3, 7),\n toneDeltaPair: s => new ToneDeltaPair(MaterialDynamicColors.primaryFixed, MaterialDynamicColors.primaryFixedDim, 10, \"lighter\", !0)\n}), MaterialDynamicColors.onPrimaryFixed = DynamicColor.fromPalette({\n name: \"on_primary_fixed\",\n palette: s => s.primaryPalette,\n tone: s => isMonochrome(s) ? 100 : 10,\n background: s => MaterialDynamicColors.primaryFixedDim,\n secondBackground: s => MaterialDynamicColors.primaryFixed,\n contrastCurve: new ContrastCurve(4.5, 7, 11, 21)\n}), MaterialDynamicColors.onPrimaryFixedVariant = DynamicColor.fromPalette({\n name: \"on_primary_fixed_variant\",\n palette: s => s.primaryPalette,\n tone: s => isMonochrome(s) ? 90 : 30,\n background: s => MaterialDynamicColors.primaryFixedDim,\n secondBackground: s => MaterialDynamicColors.primaryFixed,\n contrastCurve: new ContrastCurve(3, 4.5, 7, 11)\n}), MaterialDynamicColors.secondaryFixed = DynamicColor.fromPalette({\n name: \"secondary_fixed\",\n palette: s => s.secondaryPalette,\n tone: s => isMonochrome(s) ? 80 : 90,\n isBackground: !0,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(1, 1, 3, 7),\n toneDeltaPair: s => new ToneDeltaPair(MaterialDynamicColors.secondaryFixed, MaterialDynamicColors.secondaryFixedDim, 10, \"lighter\", !0)\n}), MaterialDynamicColors.secondaryFixedDim = DynamicColor.fromPalette({\n name: \"secondary_fixed_dim\",\n palette: s => s.secondaryPalette,\n tone: s => isMonochrome(s) ? 70 : 80,\n isBackground: !0,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(1, 1, 3, 7),\n toneDeltaPair: s => new ToneDeltaPair(MaterialDynamicColors.secondaryFixed, MaterialDynamicColors.secondaryFixedDim, 10, \"lighter\", !0)\n}), MaterialDynamicColors.onSecondaryFixed = DynamicColor.fromPalette({\n name: \"on_secondary_fixed\",\n palette: s => s.secondaryPalette,\n tone: s => 10,\n background: s => MaterialDynamicColors.secondaryFixedDim,\n secondBackground: s => MaterialDynamicColors.secondaryFixed,\n contrastCurve: new ContrastCurve(4.5, 7, 11, 21)\n}), MaterialDynamicColors.onSecondaryFixedVariant = DynamicColor.fromPalette({\n name: \"on_secondary_fixed_variant\",\n palette: s => s.secondaryPalette,\n tone: s => isMonochrome(s) ? 25 : 30,\n background: s => MaterialDynamicColors.secondaryFixedDim,\n secondBackground: s => MaterialDynamicColors.secondaryFixed,\n contrastCurve: new ContrastCurve(3, 4.5, 7, 11)\n}), MaterialDynamicColors.tertiaryFixed = DynamicColor.fromPalette({\n name: \"tertiary_fixed\",\n palette: s => s.tertiaryPalette,\n tone: s => isMonochrome(s) ? 40 : 90,\n isBackground: !0,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(1, 1, 3, 7),\n toneDeltaPair: s => new ToneDeltaPair(MaterialDynamicColors.tertiaryFixed, MaterialDynamicColors.tertiaryFixedDim, 10, \"lighter\", !0)\n}), MaterialDynamicColors.tertiaryFixedDim = DynamicColor.fromPalette({\n name: \"tertiary_fixed_dim\",\n palette: s => s.tertiaryPalette,\n tone: s => isMonochrome(s) ? 30 : 80,\n isBackground: !0,\n background: s => MaterialDynamicColors.highestSurface(s),\n contrastCurve: new ContrastCurve(1, 1, 3, 7),\n toneDeltaPair: s => new ToneDeltaPair(MaterialDynamicColors.tertiaryFixed, MaterialDynamicColors.tertiaryFixedDim, 10, \"lighter\", !0)\n}), MaterialDynamicColors.onTertiaryFixed = DynamicColor.fromPalette({\n name: \"on_tertiary_fixed\",\n palette: s => s.tertiaryPalette,\n tone: s => isMonochrome(s) ? 100 : 10,\n background: s => MaterialDynamicColors.tertiaryFixedDim,\n secondBackground: s => MaterialDynamicColors.tertiaryFixed,\n contrastCurve: new ContrastCurve(4.5, 7, 11, 21)\n}), MaterialDynamicColors.onTertiaryFixedVariant = DynamicColor.fromPalette({\n name: \"on_tertiary_fixed_variant\",\n palette: s => s.tertiaryPalette,\n tone: s => isMonochrome(s) ? 90 : 30,\n background: s => MaterialDynamicColors.tertiaryFixedDim,\n secondBackground: s => MaterialDynamicColors.tertiaryFixed,\n contrastCurve: new ContrastCurve(3, 4.5, 7, 11)\n});\nclass TonalPalette {\n static fromInt(argb) {\n const hct = Hct.fromInt(argb);\n return TonalPalette.fromHct(hct);\n }\n static fromHct(hct) {\n return new TonalPalette(hct.hue, hct.chroma, hct);\n }\n static fromHueAndChroma(hue, chroma) {\n return new TonalPalette(hue, chroma, TonalPalette.createKeyColor(hue, chroma));\n }\n constructor(hue, chroma, keyColor) {\n this.hue = hue, this.chroma = chroma, this.keyColor = keyColor, this.cache = new Map();\n }\n static createKeyColor(hue, chroma) {\n let smallestDeltaHct = Hct.from(hue, chroma, 50),\n smallestDelta = Math.abs(smallestDeltaHct.chroma - chroma);\n for (let delta = 1; delta < 50; delta += 1) {\n if (Math.round(chroma) === Math.round(smallestDeltaHct.chroma)) return smallestDeltaHct;\n const hctAdd = Hct.from(hue, chroma, 50 + delta),\n hctAddDelta = Math.abs(hctAdd.chroma - chroma);\n hctAddDelta < smallestDelta && (smallestDelta = hctAddDelta, smallestDeltaHct = hctAdd);\n const hctSubtract = Hct.from(hue, chroma, 50 - delta),\n hctSubtractDelta = Math.abs(hctSubtract.chroma - chroma);\n hctSubtractDelta < smallestDelta && (smallestDelta = hctSubtractDelta, smallestDeltaHct = hctSubtract);\n }\n return smallestDeltaHct;\n }\n tone(tone) {\n let argb = this.cache.get(tone);\n return void 0 === argb && (argb = Hct.from(this.hue, this.chroma, tone).toInt(), this.cache.set(tone, argb)), argb;\n }\n getHct(tone) {\n return Hct.fromInt(this.tone(tone));\n }\n}\nclass CorePalette {\n static of(argb) {\n return new CorePalette(argb, !1);\n }\n static contentOf(argb) {\n return new CorePalette(argb, !0);\n }\n static fromColors(colors) {\n return CorePalette.createPaletteFromColors(!1, colors);\n }\n static contentFromColors(colors) {\n return CorePalette.createPaletteFromColors(!0, colors);\n }\n static createPaletteFromColors(content, colors) {\n const palette = new CorePalette(colors.primary, content);\n if (colors.secondary) {\n const p = new CorePalette(colors.secondary, content);\n palette.a2 = p.a1;\n }\n if (colors.tertiary) {\n const p = new CorePalette(colors.tertiary, content);\n palette.a3 = p.a1;\n }\n if (colors.error) {\n const p = new CorePalette(colors.error, content);\n palette.error = p.a1;\n }\n if (colors.neutral) {\n const p = new CorePalette(colors.neutral, content);\n palette.n1 = p.n1;\n }\n if (colors.neutralVariant) {\n const p = new CorePalette(colors.neutralVariant, content);\n palette.n2 = p.n2;\n }\n return palette;\n }\n constructor(argb, isContent) {\n const hct = Hct.fromInt(argb),\n hue = hct.hue,\n chroma = hct.chroma;\n isContent ? (this.a1 = TonalPalette.fromHueAndChroma(hue, chroma), this.a2 = TonalPalette.fromHueAndChroma(hue, chroma / 3), this.a3 = TonalPalette.fromHueAndChroma(hue + 60, chroma / 2), this.n1 = TonalPalette.fromHueAndChroma(hue, Math.min(chroma / 12, 4)), this.n2 = TonalPalette.fromHueAndChroma(hue, Math.min(chroma / 6, 8))) : (this.a1 = TonalPalette.fromHueAndChroma(hue, Math.max(48, chroma)), this.a2 = TonalPalette.fromHueAndChroma(hue, 16), this.a3 = TonalPalette.fromHueAndChroma(hue + 60, 24), this.n1 = TonalPalette.fromHueAndChroma(hue, 4), this.n2 = TonalPalette.fromHueAndChroma(hue, 8)), this.error = TonalPalette.fromHueAndChroma(25, 84);\n }\n}\nclass Scheme {\n get primary() {\n return this.props.primary;\n }\n get onPrimary() {\n return this.props.onPrimary;\n }\n get primaryContainer() {\n return this.props.primaryContainer;\n }\n get onPrimaryContainer() {\n return this.props.onPrimaryContainer;\n }\n get secondary() {\n return this.props.secondary;\n }\n get onSecondary() {\n return this.props.onSecondary;\n }\n get secondaryContainer() {\n return this.props.secondaryContainer;\n }\n get onSecondaryContainer() {\n return this.props.onSecondaryContainer;\n }\n get tertiary() {\n return this.props.tertiary;\n }\n get onTertiary() {\n return this.props.onTertiary;\n }\n get tertiaryContainer() {\n return this.props.tertiaryContainer;\n }\n get onTertiaryContainer() {\n return this.props.onTertiaryContainer;\n }\n get error() {\n return this.props.error;\n }\n get onError() {\n return this.props.onError;\n }\n get errorContainer() {\n return this.props.errorContainer;\n }\n get onErrorContainer() {\n return this.props.onErrorContainer;\n }\n get background() {\n return this.props.background;\n }\n get onBackground() {\n return this.props.onBackground;\n }\n get surface() {\n return this.props.surface;\n }\n get onSurface() {\n return this.props.onSurface;\n }\n get surfaceVariant() {\n return this.props.surfaceVariant;\n }\n get onSurfaceVariant() {\n return this.props.onSurfaceVariant;\n }\n get outline() {\n return this.props.outline;\n }\n get outlineVariant() {\n return this.props.outlineVariant;\n }\n get shadow() {\n return this.props.shadow;\n }\n get scrim() {\n return this.props.scrim;\n }\n get inverseSurface() {\n return this.props.inverseSurface;\n }\n get inverseOnSurface() {\n return this.props.inverseOnSurface;\n }\n get inversePrimary() {\n return this.props.inversePrimary;\n }\n static light(argb) {\n return Scheme.lightFromCorePalette(CorePalette.of(argb));\n }\n static dark(argb) {\n return Scheme.darkFromCorePalette(CorePalette.of(argb));\n }\n static lightContent(argb) {\n return Scheme.lightFromCorePalette(CorePalette.contentOf(argb));\n }\n static darkContent(argb) {\n return Scheme.darkFromCorePalette(CorePalette.contentOf(argb));\n }\n static lightFromCorePalette(core) {\n return new Scheme({\n primary: core.a1.tone(40),\n onPrimary: core.a1.tone(100),\n primaryContainer: core.a1.tone(90),\n onPrimaryContainer: core.a1.tone(10),\n secondary: core.a2.tone(40),\n onSecondary: core.a2.tone(100),\n secondaryContainer: core.a2.tone(90),\n onSecondaryContainer: core.a2.tone(10),\n tertiary: core.a3.tone(40),\n onTertiary: core.a3.tone(100),\n tertiaryContainer: core.a3.tone(90),\n onTertiaryContainer: core.a3.tone(10),\n error: core.error.tone(40),\n onError: core.error.tone(100),\n errorContainer: core.error.tone(90),\n onErrorContainer: core.error.tone(10),\n background: core.n1.tone(99),\n onBackground: core.n1.tone(10),\n surface: core.n1.tone(99),\n onSurface: core.n1.tone(10),\n surfaceVariant: core.n2.tone(90),\n onSurfaceVariant: core.n2.tone(30),\n outline: core.n2.tone(50),\n outlineVariant: core.n2.tone(80),\n shadow: core.n1.tone(0),\n scrim: core.n1.tone(0),\n inverseSurface: core.n1.tone(20),\n inverseOnSurface: core.n1.tone(95),\n inversePrimary: core.a1.tone(80)\n });\n }\n static darkFromCorePalette(core) {\n return new Scheme({\n primary: core.a1.tone(80),\n onPrimary: core.a1.tone(20),\n primaryContainer: core.a1.tone(30),\n onPrimaryContainer: core.a1.tone(90),\n secondary: core.a2.tone(80),\n onSecondary: core.a2.tone(20),\n secondaryContainer: core.a2.tone(30),\n onSecondaryContainer: core.a2.tone(90),\n tertiary: core.a3.tone(80),\n onTertiary: core.a3.tone(20),\n tertiaryContainer: core.a3.tone(30),\n onTertiaryContainer: core.a3.tone(90),\n error: core.error.tone(80),\n onError: core.error.tone(20),\n errorContainer: core.error.tone(30),\n onErrorContainer: core.error.tone(80),\n background: core.n1.tone(10),\n onBackground: core.n1.tone(90),\n surface: core.n1.tone(10),\n onSurface: core.n1.tone(90),\n surfaceVariant: core.n2.tone(30),\n onSurfaceVariant: core.n2.tone(80),\n outline: core.n2.tone(60),\n outlineVariant: core.n2.tone(30),\n shadow: core.n1.tone(0),\n scrim: core.n1.tone(0),\n inverseSurface: core.n1.tone(90),\n inverseOnSurface: core.n1.tone(20),\n inversePrimary: core.a1.tone(40)\n });\n }\n constructor(props) {\n this.props = props;\n }\n toJSON() {\n return {\n ...this.props\n };\n }\n}\nfunction hexFromArgb(argb) {\n const r = redFromArgb(argb),\n g = greenFromArgb(argb),\n b = blueFromArgb(argb),\n outParts = [r.toString(16), g.toString(16), b.toString(16)];\n for (const [i, part] of outParts.entries()) 1 === part.length && (outParts[i] = \"0\" + part);\n return \"#\" + outParts.join(\"\");\n}\nfunction argbFromHex(hex) {\n const isThree = 3 === (hex = hex.replace(\"#\", \"\")).length,\n isSix = 6 === hex.length,\n isEight = 8 === hex.length;\n if (!isThree && !isSix && !isEight) throw new Error(\"unexpected hex \" + hex);\n let r = 0,\n g = 0,\n b = 0;\n return isThree ? (r = parseIntHex(hex.slice(0, 1).repeat(2)), g = parseIntHex(hex.slice(1, 2).repeat(2)), b = parseIntHex(hex.slice(2, 3).repeat(2))) : isSix ? (r = parseIntHex(hex.slice(0, 2)), g = parseIntHex(hex.slice(2, 4)), b = parseIntHex(hex.slice(4, 6))) : isEight && (r = parseIntHex(hex.slice(2, 4)), g = parseIntHex(hex.slice(4, 6)), b = parseIntHex(hex.slice(6, 8))), (255 << 24 | (255 & r) << 16 | (255 & g) << 8 | 255 & b) >>> 0;\n}\nfunction parseIntHex(value) {\n return parseInt(value, 16);\n}\nfunction themeFromSourceColor(source, customColors) {\n if (customColors === void 0) {\n customColors = [];\n }\n const palette = CorePalette.of(source);\n return {\n source: source,\n schemes: {\n light: Scheme.light(source),\n dark: Scheme.dark(source)\n },\n palettes: {\n primary: palette.a1,\n secondary: palette.a2,\n tertiary: palette.a3,\n neutral: palette.n1,\n neutralVariant: palette.n2,\n error: palette.error\n },\n customColors: customColors.map(c => customColor(source, c))\n };\n}\nfunction customColor(source, color) {\n let value = color.value;\n const from = value,\n to = source;\n color.blend && (value = Blend.harmonize(from, to));\n const tones = CorePalette.of(value).a1;\n return {\n color: color,\n value: value,\n light: {\n color: tones.tone(40),\n onColor: tones.tone(100),\n colorContainer: tones.tone(90),\n onColorContainer: tones.tone(10)\n },\n dark: {\n color: tones.tone(80),\n onColor: tones.tone(20),\n colorContainer: tones.tone(30),\n onColorContainer: tones.tone(90)\n }\n };\n}\nexport { argbFromHex, hexFromArgb, themeFromSourceColor };", "// eslint-disable-next-line\nimport { argbFromHex, hexFromArgb, themeFromSourceColor } from './material-color-utils.js';\n\n/* eslint-disable */\n// prettier-ignore\nfunction toRGBA(d) {\n const r = Math.round;\n const l = d.length;\n const rgba = {};\n if (d.slice(0, 3).toLowerCase() === 'rgb') {\n d = d.replace(' ', '').split(',');\n rgba[0] = parseInt(d[0].slice(d[3].toLowerCase() === 'a' ? 5 : 4), 10);\n rgba[1] = parseInt(d[1], 10);\n rgba[2] = parseInt(d[2], 10);\n rgba[3] = d[3] ? parseFloat(d[3]) : -1;\n } else {\n if (l < 6) d = parseInt(String(d[1]) + d[1] + d[2] + d[2] + d[3] + d[3] + (l > 4 ? String(d[4]) + d[4] : ''), 16);else d = parseInt(d.slice(1), 16);\n rgba[0] = d >> 16 & 255;\n rgba[1] = d >> 8 & 255;\n rgba[2] = d & 255;\n rgba[3] = l === 9 || l === 5 ? r((d >> 24 & 255) / 255 * 10000) / 10000 : -1;\n }\n return rgba;\n}\n\n// prettier-ignore\nfunction blend(from, to, p) {\n if (p === void 0) {\n p = 0.5;\n }\n const r = Math.round;\n from = from.trim();\n to = to.trim();\n const b = p < 0;\n p = b ? p * -1 : p;\n const f = toRGBA(from);\n const t = toRGBA(to);\n if (to[0] === 'r') {\n return 'rgb' + (to[3] === 'a' ? 'a(' : '(') + r((t[0] - f[0]) * p + f[0]) + ',' + r((t[1] - f[1]) * p + f[1]) + ',' + r((t[2] - f[2]) * p + f[2]) + (f[3] < 0 && t[3] < 0 ? '' : ',' + (f[3] > -1 && t[3] > -1 ? r(((t[3] - f[3]) * p + f[3]) * 10000) / 10000 : t[3] < 0 ? f[3] : t[3])) + ')';\n }\n return '#' + (0x100000000 + (f[3] > -1 && t[3] > -1 ? r(((t[3] - f[3]) * p + f[3]) * 255) : t[3] > -1 ? r(t[3] * 255) : f[3] > -1 ? r(f[3] * 255) : 255) * 0x1000000 + r((t[0] - f[0]) * p + f[0]) * 0x10000 + r((t[1] - f[1]) * p + f[1]) * 0x100 + r((t[2] - f[2]) * p + f[2])).toString(16).slice(f[3] > -1 || t[3] > -1 ? 1 : 3);\n}\n/* eslint-enable */\n\nexport const materialColors = function (hexColor) {\n if (hexColor === void 0) {\n hexColor = '';\n }\n const theme = themeFromSourceColor(argbFromHex(`#${hexColor.replace('#', '')}`));\n [0.05, 0.08, 0.11, 0.12, 0.14].forEach((amount, index) => {\n theme.schemes.light.props[`surface${index + 1}`] = argbFromHex(blend(hexFromArgb(theme.schemes.light.props.surface), hexFromArgb(theme.schemes.light.props.primary), amount));\n theme.schemes.dark.props[`surface${index + 1}`] = argbFromHex(blend(hexFromArgb(theme.schemes.dark.props.surface), hexFromArgb(theme.schemes.dark.props.primary), amount));\n });\n const name = n => {\n return n.split('').map(char => char.toUpperCase() === char && char !== '-' && char !== '7' ? `-${char.toLowerCase()}` : char).join('');\n };\n const shouldSkip = prop => {\n const skip = ['tertiary', 'shadow', 'scrim', 'error', 'background'];\n return skip.filter(v => prop.toLowerCase().includes(v)).length > 0;\n };\n const light = {};\n const dark = {};\n Object.keys(theme.schemes.light.props).forEach(prop => {\n if (shouldSkip(prop)) return;\n light[name(`--f7-md-${prop}`)] = hexFromArgb(theme.schemes.light.props[prop]);\n });\n Object.keys(theme.schemes.dark.props).forEach(prop => {\n if (shouldSkip(prop)) return;\n dark[name(`--f7-md-${prop}`)] = hexFromArgb(theme.schemes.dark.props[prop]);\n });\n return {\n light,\n dark\n };\n};", "import { getWindow, getDocument } from 'ssr-window';\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n passiveListener: function checkPassiveListener() {\n 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 intersectionObserver: function checkObserver() {\n return 'IntersectionObserver' in window;\n }()\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\nexport { getSupport };", "import { getWindow, getDocument } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCalculated;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n iphone: false,\n ipod: false,\n ipad: false,\n edge: false,\n ie: false,\n firefox: false,\n macos: false,\n windows: false,\n cordova: !!window.cordova,\n electron: false,\n capacitor: !!window.Capacitor,\n nwjs: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS|iPhone;\\sCPU\\sOS)\\s([\\d_]+)/);\n const ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n const edge = ua.indexOf('Edge/') >= 0;\n const firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n const windows = platform === 'Win32';\n const electron = ua.toLowerCase().indexOf('electron') >= 0;\n const nwjs = typeof nw !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && typeof process.versions.nw !== 'undefined';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n device.ie = ie;\n device.edge = edge;\n device.firefox = firefox;\n\n // Android\n if (android) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Webview\n device.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || window.navigator.standalone)) || window.matchMedia && window.matchMedia('(display-mode: standalone)').matches;\n device.webview = device.webView;\n device.standalone = device.webView;\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}\nconst IS_BROWSER = (() => {\n const document = getDocument();\n try {\n // eslint-disable-next-line no-restricted-globals\n return Boolean(document && document.body && document.body.getBoundingClientRect && document.body.getBoundingClientRect().width > 0);\n } catch (e) {\n return false;\n }\n})();\nfunction getDevice(overrides, reset) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (reset === void 0) {\n reset = IS_BROWSER;\n }\n if (!deviceCalculated || reset) {\n deviceCalculated = calcDevice(overrides);\n }\n return deviceCalculated;\n}\nexport { getDevice };", "class EventsClass {\n constructor(parents) {\n if (parents === void 0) {\n parents = [];\n }\n const self = this;\n self.eventsParents = parents;\n self.eventsListeners = {};\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 once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n }\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.f7proxy && eventHandler.f7proxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n }\n emit() {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n let eventsParents;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n eventsParents = self.eventsParents;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n eventsParents = args[0].local ? [] : args[0].parents || self.eventsParents;\n }\n 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 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}\nexport default EventsClass;", "import { extend, now } from './utils.js';\nimport EventsClass from './events-class.js';\nclass Framework7Class extends EventsClass {\n constructor(params, parents) {\n if (params === void 0) {\n params = {};\n }\n if (parents === void 0) {\n parents = [];\n }\n super(parents);\n const self = this;\n self.params = params;\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 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 useModule(moduleName, moduleParams) {\n if (moduleName === void 0) {\n moduleName = '';\n }\n if (moduleParams === void 0) {\n moduleParams = {};\n }\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 useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\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 static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n static installModule(module) {\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 for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n module.install.apply(Class, params);\n }\n return Class;\n }\n static use(module) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach(m => Class.installModule(m));\n return Class;\n }\n for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n params[_key2 - 1] = arguments[_key2];\n }\n return Class.installModule(module, ...params);\n }\n}\nexport default Framework7Class;", "import $ from './dom7.js';\nexport default function ConstructorMethods(parameters) {\n if (parameters === void 0) {\n parameters = {};\n }\n const {\n defaultSelector,\n constructor: Constructor,\n domProp,\n app,\n addMethods\n } = parameters;\n const methods = {\n create() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (app) return new Constructor(app, ...args);\n return new Constructor(...args);\n },\n get(el) {\n if (el === void 0) {\n el = defaultSelector;\n }\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] = function (el) {\n if (el === void 0) {\n el = defaultSelector;\n }\n const instance = methods.get(el);\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n if (instance && instance[methodName]) return instance[methodName](...args);\n return undefined;\n };\n });\n }\n return methods;\n}", "import $ from './dom7.js';\nimport { extend } from './utils.js';\nimport ConstructorMethods from './constructor-methods.js';\nexport default function ModalMethods(parameters) {\n if (parameters === void 0) {\n parameters = {};\n }\n const {\n defaultSelector,\n constructor: Constructor,\n app\n } = parameters;\n const methods = extend(ConstructorMethods({\n defaultSelector,\n constructor: Constructor,\n app,\n domProp: 'f7Modal'\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, {\n el: $el,\n ...params\n });\n }\n return instance.open(animate);\n },\n close(el, animate, targetEl) {\n if (el === void 0) {\n el = defaultSelector;\n }\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, {\n el: $el,\n ...params\n });\n }\n return instance.close(animate);\n }\n });\n return methods;\n}", "import { getWindow, getDocument } from 'ssr-window';\nimport { id } from '../../shared/utils.js';\nimport $ from '../../shared/dom7.js';\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 function install(module) {\n Framework7.use(module);\n if (app) {\n app.useModuleParams(module, app.params);\n app.useModule(module);\n }\n }\n if (typeof moduleToLoad === 'string') {\n const matchNamePattern = moduleToLoad.match(/([a-z0-9-]*)/i);\n if (moduleToLoad.indexOf('.') < 0 && matchNamePattern && matchNamePattern[0].length === moduleToLoad.length) {\n if (!app || app && !app.params.lazyModulesPath) {\n reject(new Error('Framework7: \"lazyModulesPath\" app parameter must be specified to fetch module by name'));\n return;\n }\n modulePath = `${app.params.lazyModulesPath}/${moduleToLoad}/${moduleToLoad}.lazy.js`;\n } else {\n modulePath = moduleToLoad;\n }\n } else if (typeof moduleToLoad === 'function') {\n moduleFunc = moduleToLoad;\n } else {\n // considering F7-Plugin object\n moduleObj = moduleToLoad;\n }\n if (moduleFunc) {\n const module = moduleFunc(Framework7, false);\n if (!module) {\n reject(new Error(\"Framework7: Can't find Framework7 component in specified component function\"));\n return;\n }\n // Check if it was added\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolve();\n return;\n }\n // Install It\n install(module);\n 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 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 fetch(modulePath).then(res => res.text()).then(scriptContent => {\n const callbackId = id();\n const callbackLoadName = `f7_component_loader_callback_${callbackId}`;\n const scriptEl = document.createElement('script');\n scriptEl.innerHTML = `window.${callbackLoadName} = function (Framework7, Framework7AutoInstallComponent) {return ${scriptContent.trim()}}`;\n $('head').append(scriptEl);\n const componentLoader = window[callbackLoadName];\n delete window[callbackLoadName];\n $(scriptEl).remove();\n const module = componentLoader(Framework7, false);\n if (!module) {\n rejectScript(new Error(`Framework7: Can't find Framework7 component in ${modulePath} file`));\n return;\n }\n\n // Check if it was added\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolveScript();\n return;\n }\n\n // Install It\n install(module);\n resolveScript();\n }).catch(err => {\n rejectScript(err);\n });\n });\n const styleLoad = new Promise(resolveStyle => {\n fetch(modulePath.replace('.lazy.js', app.rtl ? '.rtl.css' : '.css').replace('.js', app.rtl ? '.rtl.css' : '.css')).then(res => res.text()).then(styleContent => {\n const styleEl = document.createElement('style');\n styleEl.innerHTML = styleContent;\n $('head').append(styleEl);\n resolveStyle();\n }).catch(() => {\n resolveStyle();\n });\n });\n Promise.all([scriptLoad, styleLoad]).then(() => {\n resolve();\n }).catch(err => {\n reject(err);\n });\n }\n });\n}\nexport default loadModule;", "/* eslint-disable prefer-rest-params */\nconst $jsx = function (tag, props) {\n const attrs = props || {};\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n const children = args || [];\n const attrsString = Object.keys(attrs).map(attr => {\n if (attr[0] === '_') {\n if (attrs[attr]) return attr.replace('_', '');\n return '';\n }\n return `${attr}=\"${attrs[attr]}\"`;\n }).filter(attr => !!attr).join(' ');\n if (['path', 'img', 'circle', 'polygon', 'line', 'input'].indexOf(tag) >= 0) {\n return `<${tag} ${attrsString} />`.trim();\n }\n const childrenContent = children.filter(c => !!c).map(c => Array.isArray(c) ? c.join('') : c).join('');\n return `<${tag} ${attrsString}>${childrenContent}</${tag}>`.trim();\n};\nexport default $jsx;", "/* eslint-disable no-underscore-dangle */\n\nimport { getWindow, getDocument } from 'ssr-window';\nimport { extend, nextFrame } from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport Framework7Class from '../../shared/class.js';\nimport EventsClass from '../../shared/events-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\nimport ModalMethods from '../../shared/modal-methods.js';\nimport $ from '../../shared/dom7.js';\nimport loadModule from './load-module.js';\nimport $jsx from '../../shared/$jsx.js';\nclass Framework7 extends Framework7Class {\n constructor(params) {\n if (params === void 0) {\n params = {};\n }\n super(params);\n // eslint-disable-next-line\n if (Framework7.instance && typeof window !== 'undefined') {\n throw new Error(\"Framework7 is already initialized and can't be initialized more than once\");\n }\n const device = getDevice({\n userAgent: params.userAgent || undefined\n });\n const support = getSupport();\n const passedParams = extend({}, params);\n\n // App Instance\n const app = this;\n app.device = device;\n app.support = support;\n const w = getWindow();\n const d = getDocument();\n Framework7.instance = app;\n\n // Default\n const defaults = {\n el: 'body',\n theme: 'auto',\n routes: [],\n name: 'Framework7',\n lazyModulesPath: null,\n initOnDeviceReady: true,\n init: true,\n darkMode: undefined,\n iosTranslucentBars: true,\n iosTranslucentModals: true,\n component: undefined,\n componentUrl: undefined,\n userAgent: null,\n url: null,\n colors: {\n primary: '#007aff',\n red: '#ff3b30',\n green: '#4cd964',\n blue: '#2196f3',\n pink: '#ff2d55',\n yellow: '#ffcc00',\n orange: '#ff9500',\n purple: '#9c27b0',\n deeppurple: '#673ab7',\n lightblue: '#5ac8fa',\n teal: '#009688',\n lime: '#cddc39',\n deeporange: '#ff6b22',\n white: '#ffffff',\n black: '#000000'\n }\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 extend(app, {\n // App Name\n name: app.params.name,\n // Routes\n routes: app.params.routes,\n // Theme\n theme: function getTheme() {\n if (app.params.theme === 'auto') {\n if (device.ios) return 'ios';\n return 'md';\n }\n return app.params.theme;\n }(),\n // Initially passed parameters\n passedParams,\n online: w.navigator.onLine,\n colors: app.params.colors,\n darkMode: app.params.darkMode\n });\n if (params.store) app.params.store = params.store;\n\n // Save Root\n if (app.$el && app.$el[0]) {\n app.$el[0].f7 = app;\n }\n\n // Install Modules\n app.useModules();\n\n // Init Store\n app.initStore();\n\n // Init\n if (app.params.init) {\n if (device.cordova && app.params.initOnDeviceReady) {\n $(d).on('deviceready', () => {\n app.init();\n });\n } else {\n app.init();\n }\n }\n\n // Return app instance\n return app;\n }\n setColorTheme(color) {\n if (!color) return;\n const app = this;\n app.colors.primary = color;\n app.setColors();\n }\n setColors() {\n const app = this;\n const document = getDocument();\n if (!app.colorsStyleEl) {\n app.colorsStyleEl = document.createElement('style');\n document.head.prepend(app.colorsStyleEl);\n }\n app.colorsStyleEl.textContent = app.utils.colorThemeCSSStyles(app.colors);\n }\n mount(rootEl) {\n const app = this;\n const window = getWindow();\n const document = getDocument();\n const $rootEl = $(rootEl || app.params.el).eq(0);\n app.$el = $rootEl;\n if (app.$el && app.$el[0]) {\n app.el = app.$el[0];\n app.el.f7 = app;\n app.rtl = $rootEl.css('direction') === 'rtl';\n }\n\n // Auto Dark Mode\n const DARK = '(prefers-color-scheme: dark)';\n const LIGHT = '(prefers-color-scheme: light)';\n app.mq = {};\n if (window.matchMedia) {\n app.mq.dark = window.matchMedia(DARK);\n app.mq.light = window.matchMedia(LIGHT);\n }\n app.colorSchemeListener = function colorSchemeListener(_ref) {\n let {\n matches,\n media\n } = _ref;\n if (!matches) {\n return;\n }\n const html = document.querySelector('html');\n if (media === DARK) {\n html.classList.add('dark');\n app.darkMode = true;\n app.emit('darkModeChange', true);\n } else if (media === LIGHT) {\n html.classList.remove('dark');\n app.darkMode = false;\n app.emit('darkModeChange', false);\n }\n };\n app.emit('mount');\n }\n 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 enableAutoDarkMode() {\n const window = getWindow();\n const document = getDocument();\n if (!window.matchMedia) return;\n const app = this;\n const html = document.querySelector('html');\n if (app.mq.dark && app.mq.light) {\n app.mq.dark.addEventListener('change', app.colorSchemeListener);\n app.mq.light.addEventListener('change', app.colorSchemeListener);\n }\n if (app.mq.dark && app.mq.dark.matches) {\n html.classList.add('dark');\n app.darkMode = true;\n app.emit('darkModeChange', true);\n } else if (app.mq.light && app.mq.light.matches) {\n html.classList.remove('dark');\n app.darkMode = false;\n app.emit('darkModeChange', false);\n }\n }\n disableAutoDarkMode() {\n const window = getWindow();\n if (!window.matchMedia) return;\n const app = this;\n if (app.mq.dark) app.mq.dark.removeEventListener('change', app.colorSchemeListener);\n if (app.mq.light) app.mq.light.removeEventListener('change', app.colorSchemeListener);\n }\n setDarkMode(mode) {\n const app = this;\n if (mode === 'auto') {\n app.enableAutoDarkMode();\n } else {\n app.disableAutoDarkMode();\n $('html')[mode ? 'addClass' : 'removeClass']('dark');\n app.darkMode = mode;\n }\n }\n initAppComponent(callback) {\n const app = this;\n app.router.componentLoader(app.params.component, app.params.componentUrl, {\n componentOptions: {\n el: app.$el[0]\n }\n }, el => {\n app.$el = $(el);\n app.$el[0].f7 = app;\n app.$elComponent = el.f7Component;\n app.el = app.$el[0];\n if (callback) callback();\n }, () => {});\n }\n init(rootEl) {\n const app = this;\n app.setColors();\n app.mount(rootEl);\n const init = () => {\n if (app.initialized) return;\n app.$el.addClass('framework7-initializing');\n\n // RTL attr\n if (app.rtl) {\n $('html').attr('dir', 'rtl');\n }\n\n // Auto Dark Mode\n if (typeof app.params.darkMode === 'undefined') {\n app.darkMode = $('html').hasClass('dark');\n } else {\n app.setDarkMode(app.params.darkMode);\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').addClass(app.theme);\n\n // iOS Translucent\n if (app.params.iosTranslucentBars && app.theme === 'ios') {\n $('html').addClass('ios-translucent-bars');\n }\n if (app.params.iosTranslucentModals && app.theme === '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() {\n return Framework7.loadModule(...arguments);\n }\n\n // eslint-disable-next-line\n loadModules() {\n return Framework7.loadModules(...arguments);\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 static get Dom7() {\n return $;\n }\n static get $() {\n return $;\n }\n static get device() {\n return getDevice();\n }\n static get support() {\n return getSupport();\n }\n static get Class() {\n return Framework7Class;\n }\n static get Events() {\n return EventsClass;\n }\n}\nFramework7.$jsx = $jsx;\nFramework7.ModalMethods = ModalMethods;\nFramework7.ConstructorMethods = ConstructorMethods;\nFramework7.loadModule = loadModule;\nFramework7.loadModules = function loadModules(modules) {\n return Promise.all(modules.map(module => Framework7.loadModule(module)));\n};\nexport default Framework7;", "import { getDocument } from 'ssr-window';\nimport { getDevice } from '../../shared/get-device.js';\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('meta[name=\"apple-mobile-web-app-status-bar-style\"]');\n if (!html) return;\n if (device.standalone && device.ios && metaStatusbar && metaStatusbar.content === 'black-translucent') {\n classNames.push('device-full-viewport');\n }\n\n // Pixel Ratio\n classNames.push(`device-pixel-ratio-${Math.floor(device.pixelRatio)}`);\n // OS classes\n if (device.os && !device.desktop) {\n classNames.push(`device-${device.os}`);\n } else if (device.desktop) {\n classNames.push('device-desktop');\n if (device.os) {\n classNames.push(`device-${device.os}`);\n }\n }\n if (device.cordova) {\n classNames.push('device-cordova');\n }\n if (device.capacitor) {\n classNames.push('device-capacitor');\n }\n\n // Add html classes\n classNames.forEach(className => {\n html.classList.add(className);\n });\n }\n }\n};", "import { getSupport } from '../../shared/get-support.js';\nexport default {\n name: 'support',\n static: {\n getSupport\n }\n};", "import * as utils from '../../shared/utils.js';\nexport default {\n name: 'utils',\n proto: {\n utils\n },\n static: {\n utils\n }\n};", "import { getWindow, getDocument } from 'ssr-window';\nimport { getDevice } from '../../shared/get-device.js';\nexport default {\n name: 'resize',\n create() {\n const app = this;\n app.getSize = () => {\n if (!app.el) return {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n };\n const offset = app.$el.offset();\n const [width, height, left, top] = [app.el.offsetWidth, app.el.offsetHeight, offset.left, offset.top];\n app.width = width;\n app.height = height;\n app.left = left;\n app.top = top;\n return {\n width,\n height,\n left,\n top\n };\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('resize', () => {\n app.emit('resize');\n }, false);\n\n // Emit orientationchange\n window.addEventListener('orientationchange', () => {\n app.emit('orientationchange');\n });\n },\n orientationchange() {\n const 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};", "/* eslint-disable no-nested-ternary */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport { extend } from '../../shared/utils.js';\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 if (device.ios && device.webView) {\n // Strange hack required for iOS 8 webview to work on inputs\n window.addEventListener('touchstart', () => {});\n }\n let touchStartX;\n let touchStartY;\n let targetElement;\n let isMoved;\n let tapHoldFired;\n let tapHoldTimeout;\n let preventClick;\n let activableElement;\n let activeTimeout;\n let rippleWave;\n let rippleTarget;\n let rippleTimeout;\n function findActivableElement(el) {\n const target = $(el);\n const parents = target.parents(params.activeStateElements);\n if (target.closest('.no-active-state').length) {\n return null;\n }\n let activable;\n if (target.is(params.activeStateElements)) {\n activable = target;\n }\n if (parents.length > 0) {\n activable = activable ? activable.add(parents) : parents;\n }\n if (activable && activable.length > 1) {\n const newActivable = [];\n let preventPropagation;\n for (let i = 0; i < activable.length; i += 1) {\n if (!preventPropagation) {\n newActivable.push(activable[i]);\n if (activable.eq(i).hasClass('prevent-active-state-propagation') || activable.eq(i).hasClass('no-active-state-propagation')) {\n preventPropagation = true;\n }\n }\n }\n activable = $(newActivable);\n }\n return activable || target;\n }\n function isInsideScrollableView(el) {\n const pageContent = el.parents('.page-content');\n return pageContent.length > 0;\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 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 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 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 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 let isScrolling;\n let isSegmentedStrong = false;\n let segmentedStrongEl = null;\n const touchMoveActivableIos = '.dialog-button, .actions-button';\n let isTouchMoveActivable = false;\n let touchmoveActivableEl = null;\n function handleTouchStart(e) {\n if (!e.isTrusted) return true;\n isMoved = false;\n tapHoldFired = false;\n preventClick = false;\n isScrolling = undefined;\n if (e.targetTouches.length > 1) {\n if (activableElement) removeActive();\n return true;\n }\n if (e.touches.length > 1 && activableElement) {\n removeActive();\n }\n if (params.tapHold) {\n if (tapHoldTimeout) clearTimeout(tapHoldTimeout);\n tapHoldTimeout = setTimeout(() => {\n if (e && e.touches && e.touches.length > 1) return;\n tapHoldFired = true;\n e.preventDefault();\n preventClick = true;\n $(e.target).trigger('taphold', e);\n app.emit('taphold', e);\n }, params.tapHoldDelay);\n }\n targetElement = e.target;\n touchStartX = e.targetTouches[0].pageX;\n touchStartY = e.targetTouches[0].pageY;\n isSegmentedStrong = e.target.closest('.segmented-strong .button-active, .segmented-strong .tab-link-active');\n isTouchMoveActivable = app.theme === 'ios' && e.target.closest(touchMoveActivableIos);\n if (isSegmentedStrong) {\n segmentedStrongEl = isSegmentedStrong.closest('.segmented-strong');\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 if (!e.isTrusted) return;\n let touch;\n let distance;\n let shouldRemoveActive = true;\n if (e.type === 'touchmove') {\n touch = e.targetTouches[0];\n distance = params.touchClicksDistanceThreshold;\n }\n const touchCurrentX = e.targetTouches[0].pageX;\n const touchCurrentY = e.targetTouches[0].pageY;\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(isScrolling || Math.abs(touchCurrentY - touchStartY) > Math.abs(touchCurrentX - touchStartX));\n }\n if (isTouchMoveActivable || !isScrolling && isSegmentedStrong && segmentedStrongEl) {\n if (e.cancelable) e.preventDefault();\n }\n if (!isScrolling && isSegmentedStrong && segmentedStrongEl) {\n const elementFromPoint = document.elementFromPoint(e.targetTouches[0].clientX, e.targetTouches[0].clientY);\n const buttonEl = elementFromPoint.closest('.segmented-strong .button:not(.button-active):not(.tab-link-active)');\n if (buttonEl && segmentedStrongEl.contains(buttonEl)) {\n $(buttonEl).trigger('click', 'f7Segmented');\n targetElement = buttonEl;\n }\n }\n if (distance && touch) {\n const pageX = touch.pageX;\n const pageY = touch.pageY;\n if (Math.abs(pageX - touchStartX) > distance || Math.abs(pageY - touchStartY) > distance) {\n isMoved = true;\n }\n } else {\n isMoved = true;\n }\n if (isMoved) {\n preventClick = true;\n // Keep active state on touchMove (for dialog and actions buttons)\n if (isTouchMoveActivable) {\n const elementFromPoint = document.elementFromPoint(e.targetTouches[0].clientX, e.targetTouches[0].clientY);\n touchmoveActivableEl = elementFromPoint.closest(touchMoveActivableIos);\n if (touchmoveActivableEl && activableElement && activableElement[0] === touchmoveActivableEl) {\n shouldRemoveActive = false;\n } else if (touchmoveActivableEl) {\n setTimeout(() => {\n activableElement = findActivableElement(touchmoveActivableEl);\n addActive();\n });\n }\n }\n if (params.tapHold) {\n clearTimeout(tapHoldTimeout);\n }\n if (params.activeState && shouldRemoveActive) {\n clearTimeout(activeTimeout);\n removeActive();\n }\n if (useRipple) {\n rippleTouchMove();\n }\n }\n }\n function handleTouchEnd(e) {\n if (!e.isTrusted) return true;\n isScrolling = undefined;\n isSegmentedStrong = false;\n segmentedStrongEl = null;\n isTouchMoveActivable = false;\n clearTimeout(activeTimeout);\n clearTimeout(tapHoldTimeout);\n if (touchmoveActivableEl) {\n $(touchmoveActivableEl).trigger('click', 'f7TouchMoveActivable');\n touchmoveActivableEl = null;\n }\n if (document.activeElement === e.target) {\n if (params.activeState) removeActive();\n if (useRipple) {\n rippleTouchEnd();\n }\n return true;\n }\n if (params.activeState) {\n addActive();\n setTimeout(removeActive, 0);\n }\n if (useRipple) {\n rippleTouchEnd();\n }\n if (params.tapHoldPreventClicks && tapHoldFired || preventClick) {\n if (e.cancelable) e.preventDefault();\n preventClick = true;\n return false;\n }\n return true;\n }\n function handleClick(e) {\n const isOverswipe = e && e.detail && e.detail === 'f7Overswipe';\n const isSegmented = e && e.detail && e.detail === 'f7Segmented';\n // eslint-disable-next-line\n const isTouchMoveActivable = e && e.detail && e.detail === 'f7TouchMoveActivable';\n let localPreventClick = preventClick;\n if (targetElement && e.target !== targetElement) {\n if (isOverswipe || isSegmented || isTouchMoveActivable) {\n localPreventClick = false;\n } else {\n localPreventClick = true;\n }\n } else if (isTouchMoveActivable) {\n localPreventClick = false;\n }\n if (params.tapHold && params.tapHoldPreventClicks && tapHoldFired) {\n localPreventClick = true;\n }\n if (localPreventClick) {\n e.stopImmediatePropagation();\n e.stopPropagation();\n e.preventDefault();\n }\n if (params.tapHold) {\n tapHoldTimeout = setTimeout(() => {\n tapHoldFired = false;\n }, device.ios || device.androidChrome ? 100 : 400);\n }\n preventClick = false;\n targetElement = null;\n return !localPreventClick;\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 const passiveListener = support.passiveListener ? {\n passive: true\n } : false;\n const passiveListenerCapture = support.passiveListener ? {\n passive: true,\n capture: true\n } : true;\n const activeListener = support.passiveListener ? {\n passive: false\n } : false;\n const activeListenerCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n document.addEventListener('click', appClick, true);\n if (support.passiveListener) {\n document.addEventListener(app.touchEvents.start, appTouchStartActive, activeListenerCapture);\n document.addEventListener(app.touchEvents.move, appTouchMoveActive, activeListener);\n document.addEventListener(app.touchEvents.end, appTouchEndActive, activeListener);\n document.addEventListener(app.touchEvents.start, appTouchStartPassive, passiveListenerCapture);\n document.addEventListener(app.touchEvents.move, appTouchMovePassive, passiveListener);\n document.addEventListener(app.touchEvents.end, appTouchEndPassive, passiveListener);\n } else {\n document.addEventListener(app.touchEvents.start, e => {\n appTouchStartActive(e);\n appTouchStartPassive(e);\n }, true);\n document.addEventListener(app.touchEvents.move, e => {\n appTouchMoveActive(e);\n appTouchMovePassive(e);\n }, false);\n document.addEventListener(app.touchEvents.end, e => {\n appTouchEndActive(e);\n appTouchEndPassive(e);\n }, false);\n }\n if (support.touch) {\n app.on('click', handleClick);\n app.on('touchstart', handleTouchStart);\n app.on('touchmove', handleTouchMove);\n app.on('touchend', handleTouchEnd);\n document.addEventListener('touchcancel', handleTouchCancel, {\n passive: true\n });\n } else if (params.activeState) {\n app.on('touchstart', handleMouseDown);\n app.on('touchmove', handleMouseMove);\n app.on('touchend', handleMouseUp);\n document.addEventListener('pointercancel', handleMouseUp, {\n passive: true\n });\n }\n document.addEventListener('contextmenu', e => {\n if (params.disableContextMenu && (device.ios || device.android || device.cordova || window.Capacitor && window.Capacitor.isNative)) {\n e.preventDefault();\n }\n if (useRipple) {\n if (activableElement) removeActive();\n rippleTouchEnd();\n }\n });\n}\nexport default {\n name: 'touch',\n params: {\n touch: {\n // Clicks\n touchClicksDistanceThreshold: 5,\n // ContextMenu\n disableContextMenu: false,\n // Tap Hold\n tapHold: false,\n tapHoldDelay: 750,\n tapHoldPreventClicks: true,\n // Active State\n activeState: true,\n activeStateElements: 'a, button, label, span, .actions-button, .stepper-button, .stepper-button-plus, .stepper-button-minus, .card-expandable, .link, .item-link, .accordion-item-toggle',\n activeStateOnMouseMove: false,\n mdTouchRipple: true,\n iosTouchRipple: false,\n touchRippleElements: '.ripple, .link, .item-link, .list label.item-content, .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, .list.accordion-list .accordion-item-toggle',\n touchRippleInsetElements: '.ripple-inset, .icon-only, .searchbar-disable-button, .input-clear-button, .notification-close-button, .md .navbar .link.back'\n }\n },\n create() {\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 * Tokenizer results.\n */\ninterface LexToken {\n type:\n | \"OPEN\"\n | \"CLOSE\"\n | \"PATTERN\"\n | \"NAME\"\n | \"CHAR\"\n | \"ESCAPED_CHAR\"\n | \"MODIFIER\"\n | \"END\";\n index: number;\n value: string;\n}\n\n/**\n * Tokenize input string.\n */\nfunction lexer(str: string): LexToken[] {\n const tokens: LexToken[] = [];\n let i = 0;\n\n while (i < str.length) {\n const char = str[i];\n\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n\n if (char === \":\") {\n let name = \"\";\n let j = i + 1;\n\n while (j < str.length) {\n const code = str.charCodeAt(j);\n\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 ) {\n name += str[j++];\n continue;\n }\n\n break;\n }\n\n if (!name) throw new TypeError(`Missing parameter name at ${i}`);\n\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n\n if (char === \"(\") {\n let count = 1;\n let pattern = \"\";\n let j = i + 1;\n\n if (str[j] === \"?\") {\n throw new TypeError(`Pattern cannot start with \"?\" at ${j}`);\n }\n\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\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\n pattern += str[j++];\n }\n\n if (count) throw new TypeError(`Unbalanced pattern at ${i}`);\n if (!pattern) throw new TypeError(`Missing pattern at ${i}`);\n\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n\n tokens.push({ type: \"END\", index: i, value: \"\" });\n\n return tokens;\n}\n\nexport interface ParseOptions {\n /**\n * Set the default delimiter for repeat parameters. (default: `'/'`)\n */\n delimiter?: string;\n /**\n * List of characters to automatically consider prefixes when parsing.\n */\n prefixes?: string;\n}\n\n/**\n * Parse a string for the raw tokens.\n */\nexport function parse(str: string, options: ParseOptions = {}): Token[] {\n const tokens = lexer(str);\n const { prefixes = \"./\" } = options;\n const defaultPattern = `[^${escapeString(options.delimiter || \"/#?\")}]+?`;\n const result: Token[] = [];\n let key = 0;\n let i = 0;\n let path = \"\";\n\n const tryConsume = (type: LexToken[\"type\"]): string | undefined => {\n if (i < tokens.length && tokens[i].type === type) return tokens[i++].value;\n };\n\n const mustConsume = (type: LexToken[\"type\"]): string => {\n const value = tryConsume(type);\n if (value !== undefined) return value;\n const { type: nextType, index } = tokens[i];\n throw new TypeError(`Unexpected ${nextType} at ${index}, expected ${type}`);\n };\n\n const consumeText = (): string => {\n let result = \"\";\n let value: string | undefined;\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n\n while (i < tokens.length) {\n const char = tryConsume(\"CHAR\");\n const name = tryConsume(\"NAME\");\n const pattern = tryConsume(\"PATTERN\");\n\n if (name || pattern) {\n let prefix = char || \"\";\n\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n\n if (path) {\n result.push(path);\n path = \"\";\n }\n\n result.push({\n name: name || key++,\n prefix,\n suffix: \"\",\n pattern: pattern || defaultPattern,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n\n const value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n\n if (path) {\n result.push(path);\n path = \"\";\n }\n\n const open = tryConsume(\"OPEN\");\n if (open) {\n const prefix = consumeText();\n const name = tryConsume(\"NAME\") || \"\";\n const pattern = tryConsume(\"PATTERN\") || \"\";\n const suffix = consumeText();\n\n mustConsume(\"CLOSE\");\n\n result.push({\n name: name || (pattern ? key++ : \"\"),\n pattern: name && !pattern ? defaultPattern : pattern,\n prefix,\n suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n\n mustConsume(\"END\");\n }\n\n return result;\n}\n\nexport interface TokensToFunctionOptions {\n /**\n * When `true` the regexp will be case sensitive. (default: `false`)\n */\n sensitive?: boolean;\n /**\n * Function for encoding input strings for output.\n */\n encode?: (value: string, token: Key) => string;\n /**\n * When `false` the function can produce an invalid (unmatched) path. (default: `true`)\n */\n validate?: boolean;\n}\n\n/**\n * Compile a string to a template function for the path.\n */\nexport function compile<P extends object = object>(\n str: string,\n options?: ParseOptions & TokensToFunctionOptions,\n) {\n return tokensToFunction<P>(parse(str, options), options);\n}\n\nexport type PathFunction<P extends object = object> = (data?: P) => string;\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nexport function tokensToFunction<P extends object = object>(\n tokens: Token[],\n options: TokensToFunctionOptions = {},\n): PathFunction<P> {\n const reFlags = flags(options);\n const { encode = (x: string) => x, validate = true } = options;\n\n // Compile all the tokens into regexps.\n const matches = tokens.map((token) => {\n if (typeof token === \"object\") {\n return new RegExp(`^(?:${token.pattern})$`, reFlags);\n }\n });\n\n return (data: Record<string, any> | null | undefined) => {\n let path = \"\";\n\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n\n const value = data ? data[token.name] : undefined;\n const optional = token.modifier === \"?\" || token.modifier === \"*\";\n const repeat = token.modifier === \"*\" || token.modifier === \"+\";\n\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\n `Expected \"${token.name}\" to not repeat, but got an array`,\n );\n }\n\n if (value.length === 0) {\n if (optional) continue;\n\n throw new TypeError(`Expected \"${token.name}\" to not be empty`);\n }\n\n for (let j = 0; j < value.length; j++) {\n const segment = encode(value[j], token);\n\n if (validate && !(matches[i] as RegExp).test(segment)) {\n throw new TypeError(\n `Expected all \"${token.name}\" to match \"${token.pattern}\", but got \"${segment}\"`,\n );\n }\n\n path += token.prefix + segment + token.suffix;\n }\n\n continue;\n }\n\n if (typeof value === \"string\" || typeof value === \"number\") {\n const segment = encode(String(value), token);\n\n if (validate && !(matches[i] as RegExp).test(segment)) {\n throw new TypeError(\n `Expected \"${token.name}\" to match \"${token.pattern}\", but got \"${segment}\"`,\n );\n }\n\n path += token.prefix + segment + token.suffix;\n continue;\n }\n\n if (optional) continue;\n\n const typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(`Expected \"${token.name}\" to be ${typeOfMessage}`);\n }\n\n return path;\n };\n}\n\nexport interface RegexpToFunctionOptions {\n /**\n * Function for decoding strings for params.\n */\n decode?: (value: string, token: Key) => string;\n}\n\n/**\n * A match result contains data about the path match.\n */\nexport interface MatchResult<P extends object = object> {\n path: string;\n index: number;\n params: P;\n}\n\n/**\n * A match is either `false` (no match) or a match result.\n */\nexport type Match<P extends object = object> = false | MatchResult<P>;\n\n/**\n * The match function takes a string and returns whether it matched the path.\n */\nexport type MatchFunction<P extends object = object> = (\n path: string,\n) => Match<P>;\n\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nexport function match<P extends object = object>(\n str: Path,\n options?: ParseOptions & TokensToRegexpOptions & RegexpToFunctionOptions,\n) {\n const keys: Key[] = [];\n const re = pathToRegexp(str, keys, options);\n return regexpToFunction<P>(re, keys, options);\n}\n\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nexport function regexpToFunction<P extends object = object>(\n re: RegExp,\n keys: Key[],\n options: RegexpToFunctionOptions = {},\n): MatchFunction<P> {\n const { decode = (x: string) => x } = options;\n\n return function (pathname: string) {\n const m = re.exec(pathname);\n if (!m) return false;\n\n const { 0: path, index } = m;\n const params = Object.create(null);\n\n for (let i = 1; i < m.length; i++) {\n if (m[i] === undefined) continue;\n\n const key = keys[i - 1];\n\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map((value) => {\n return decode(value, key);\n });\n } else {\n params[key.name] = decode(m[i], key);\n }\n }\n\n return { path, index, params };\n };\n}\n\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str: string) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options?: { sensitive?: boolean }) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n\n/**\n * Metadata about a key.\n */\nexport interface Key {\n name: string | number;\n prefix: string;\n suffix: string;\n pattern: string;\n modifier: string;\n}\n\n/**\n * A token is a string (nothing special) or key metadata (capture group).\n */\nexport type Token = string | Key;\n\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path: RegExp, keys?: Key[]): RegExp {\n if (!keys) return path;\n\n const groupsRegex = /\\((?:\\?<(.*?)>)?(?!\\?)/g;\n\n let index = 0;\n let 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\n return path;\n}\n\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(\n paths: Array<string | RegExp>,\n keys?: Key[],\n options?: TokensToRegexpOptions & ParseOptions,\n): RegExp {\n const parts = paths.map((path) => pathToRegexp(path, keys, options).source);\n return new RegExp(`(?:${parts.join(\"|\")})`, flags(options));\n}\n\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(\n path: string,\n keys?: Key[],\n options?: TokensToRegexpOptions & ParseOptions,\n) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n\nexport interface TokensToRegexpOptions {\n /**\n * When `true` the regexp will be case sensitive. (default: `false`)\n */\n sensitive?: boolean;\n /**\n * When `true` the regexp won't allow an optional trailing delimiter to match. (default: `false`)\n */\n strict?: boolean;\n /**\n * When `true` the regexp will match to the end of the string. (default: `true`)\n */\n end?: boolean;\n /**\n * When `true` the regexp will match from the beginning of the string. (default: `true`)\n */\n start?: boolean;\n /**\n * Sets the final character for non-ending optimistic matches. (default: `/`)\n */\n delimiter?: string;\n /**\n * List of characters that can also be \"end\" characters.\n */\n endsWith?: string;\n /**\n * Encode path tokens for use in the `RegExp`.\n */\n encode?: (value: string) => string;\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nexport function tokensToRegexp(\n tokens: Token[],\n keys?: Key[],\n options: TokensToRegexpOptions = {},\n) {\n const {\n strict = false,\n start = true,\n end = true,\n encode = (x: string) => x,\n delimiter = \"/#?\",\n endsWith = \"\",\n } = options;\n const endsWithRe = `[${escapeString(endsWith)}]|$`;\n const delimiterRe = `[${escapeString(delimiter)}]`;\n let route = start ? \"^\" : \"\";\n\n // Iterate over the tokens and create our regexp string.\n for (const token of tokens) {\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n } else {\n const prefix = escapeString(encode(token.prefix));\n const suffix = escapeString(encode(token.suffix));\n\n if (token.pattern) {\n if (keys) keys.push(token);\n\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n const mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += `(?:${prefix}((?:${token.pattern})(?:${suffix}${prefix}(?:${token.pattern}))*)${suffix})${mod}`;\n } else {\n route += `(?:${prefix}(${token.pattern})${suffix})${token.modifier}`;\n }\n } else {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n route += `((?:${token.pattern})${token.modifier})`;\n } else {\n route += `(${token.pattern})${token.modifier}`;\n }\n }\n } else {\n route += `(?:${prefix}${suffix})${token.modifier}`;\n }\n }\n }\n\n if (end) {\n if (!strict) route += `${delimiterRe}?`;\n\n route += !options.endsWith ? \"$\" : `(?=${endsWithRe})`;\n } else {\n const endToken = tokens[tokens.length - 1];\n const isEndDelimited =\n typeof endToken === \"string\"\n ? delimiterRe.indexOf(endToken[endToken.length - 1]) > -1\n : endToken === undefined;\n\n if (!strict) {\n route += `(?:${delimiterRe}(?=${endsWithRe}))?`;\n }\n\n if (!isEndDelimited) {\n route += `(?=${delimiterRe}|${endsWithRe})`;\n }\n }\n\n return new RegExp(route, flags(options));\n}\n\n/**\n * Supported `path-to-regexp` input types.\n */\nexport type Path = string | RegExp | Array<string | RegExp>;\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(\n path: Path,\n keys?: Key[],\n options?: TokensToRegexpOptions & ParseOptions,\n) {\n if (path instanceof RegExp) return regexpToRegexp(path, keys);\n if (Array.isArray(path)) return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\n", "import { getWindow, getDocument } from 'ssr-window';\nimport $ from './dom7.js';\nimport { extend } from './utils.js';\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 {\n router,\n stateUrl,\n action\n } = currentQueue;\n let animate = router.params.animate;\n if (router.params.browserHistoryAnimate === false) animate = false;\n if (action === 'back') {\n router.back({\n animate,\n browserHistory: false\n });\n }\n if (action === 'load') {\n router.navigate(stateUrl, {\n animate,\n browserHistory: false\n });\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 History.allowChange = true;\n History.clearQueue();\n state = History.state;\n if (!state) state = {};\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 let animate = router.params.animate;\n if (router.params.browserHistoryAnimate === false) animate = false;\n if (stateUrl !== router.url) {\n if (router.history.indexOf(stateUrl) >= 0) {\n // Go Back\n if (router.allowPageChange) {\n router.back({\n animate,\n browserHistory: false\n });\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, {\n animate,\n browserHistory: false\n });\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 const document = getDocument();\n /* eslint-disable no-param-reassign */\n if (url.substr(-3) === '#!/') {\n url = url.replace('#!/', '');\n if (url === '') {\n url = document.location.href;\n if (url.includes('#!/')) {\n url = document.location.href.split('#!/')[0];\n }\n }\n }\n /* eslint-enable no-param-reassign */\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 if (document.readyState && document.readyState === 'complete') {\n History.blockPopstate = false;\n }\n $(window).on('popstate', History.handle.bind(app));\n }\n};\nexport default History;", "import $ from '../../shared/dom7.js';\nimport History from '../../shared/history.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport { now } from '../../shared/utils.js';\nfunction SwipeBack(r) {\n const router = r;\n const {\n $el,\n $navbarsEl,\n app,\n params\n } = 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 let animatableNavEls;\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 const transformOrigin = app.rtl ? 'right center' : 'left center';\n const transformOriginTitleLarge = app.rtl ? 'calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center' : 'calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center';\n function animatableNavElements() {\n const els = [];\n const inverter = app.rtl ? -1 : 1;\n const currentNavIsTransparent = $currentNavbarEl.hasClass('navbar-transparent') && !$currentNavbarEl.hasClass('navbar-large') && !$currentNavbarEl.hasClass('navbar-transparent-visible');\n const currentNavIsLarge = $currentNavbarEl.hasClass('navbar-large');\n const currentNavIsCollapsed = $currentNavbarEl.hasClass('navbar-large-collapsed');\n const currentNavIsLargeTransparent = $currentNavbarEl.hasClass('navbar-large-transparent') || $currentNavbarEl.hasClass('navbar-large') && $currentNavbarEl.hasClass('navbar-transparent');\n const previousNavIsTransparent = $previousNavbarEl.hasClass('navbar-transparent') && !$previousNavbarEl.hasClass('navbar-large') && !$previousNavbarEl.hasClass('navbar-transparent-visible');\n const previousNavIsLarge = $previousNavbarEl.hasClass('navbar-large');\n const previousNavIsCollapsed = $previousNavbarEl.hasClass('navbar-large-collapsed');\n const previousNavIsLargeTransparent = $previousNavbarEl.hasClass('navbar-large-transparent') || $previousNavbarEl.hasClass('navbar-large') && $previousNavbarEl.hasClass('navbar-transparent');\n const fromLarge = currentNavIsLarge && !currentNavIsCollapsed;\n const toLarge = previousNavIsLarge && !previousNavIsCollapsed;\n const $currentNavElements = $currentNavbarEl.find('.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg');\n const $previousNavElements = $previousNavbarEl.find('.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg');\n let activeNavBackIconText;\n let previousNavBackIconText;\n if (params.iosAnimateNavbarBackIcon) {\n if ($currentNavbarEl.hasClass('sliding') || $currentNavbarEl.find('.navbar-inner.sliding').length) {\n activeNavBackIconText = $currentNavbarEl.find('.left').find('.back .icon + span').eq(0);\n } else {\n activeNavBackIconText = $currentNavbarEl.find('.left.sliding').find('.back .icon + span').eq(0);\n }\n if ($previousNavbarEl.hasClass('sliding') || $previousNavbarEl.find('.navbar-inner.sliding').length) {\n previousNavBackIconText = $previousNavbarEl.find('.left').find('.back .icon + span').eq(0);\n } else {\n previousNavBackIconText = $previousNavbarEl.find('.left.sliding').find('.back .icon + span').eq(0);\n }\n if (activeNavBackIconText.length) {\n $previousNavElements.each(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 => `translateX(calc(${progress} * (var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset)))) translateY(calc(${progress} * (var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical) / 2))) scale(${1 + 1 * progress})`\n });\n });\n return;\n }\n }\n if (isBg) {\n if (els.indexOf(el) < 0) els.push(el);\n if (!fromLarge && !toLarge) {\n if (currentNavIsCollapsed) {\n if (currentNavIsLargeTransparent) {\n el.className = 'ios-swipeback-navbar-bg-large';\n }\n el.transform = progress => `translateX(${100 * progress * inverter}%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))`;\n } else {\n el.transform = progress => `translateX(${100 * progress * inverter}%)`;\n }\n }\n if (!fromLarge && toLarge) {\n el.className = 'ios-swipeback-navbar-bg-large';\n el.transform = progress => `translateX(${100 * progress * inverter}%) translateY(calc(-1 * ${1 - progress} * var(--f7-navbar-large-title-height)))`;\n }\n if (fromLarge && toLarge) {\n el.transform = progress => `translateX(${100 * progress * inverter}%)`;\n }\n if (fromLarge && !toLarge) {\n el.transform = progress => `translateX(${100 * progress * inverter}%) translateY(calc(-${progress} * var(--f7-navbar-large-title-height)))`;\n }\n return;\n }\n if ($navEl.hasClass('title-large')) return;\n const isSliding = $navEl.hasClass('sliding') || $navEl.parents('.navbar-inner.sliding').length;\n if (els.indexOf(el) < 0) els.push(el);\n if (!isSubnavbar || isSubnavbar && !isSliding) {\n el.opacity = progress => 1 - progress ** 0.33;\n }\n if (isSliding) {\n let transformTarget = el;\n if (isLeft && activeNavBackIconText.length && params.iosAnimateNavbarBackIcon) {\n const textEl = {\n el: activeNavBackIconText[0]\n };\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 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 => `translateX(calc(${1 - progress} * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(${progress - 1} * var(--f7-navbar-large-title-height) + ${1 - progress} * var(--f7-navbar-large-title-padding-vertical))) scale(${0.5 + progress * 0.5})`\n });\n });\n return;\n }\n }\n if (isBg) {\n if (els.indexOf(el) < 0) els.push(el);\n if (!fromLarge && !toLarge) {\n if (previousNavIsCollapsed) {\n if (previousNavIsLargeTransparent) {\n el.className = 'ios-swipeback-navbar-bg-large';\n }\n el.transform = progress => `translateX(${(-100 + 100 * progress) * inverter}%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))`;\n } else {\n el.transform = progress => `translateX(${(-100 + 100 * progress) * inverter}%)`;\n }\n }\n if (!fromLarge && toLarge) {\n el.transform = progress => `translateX(${(-100 + 100 * progress) * inverter}%) translateY(calc(-1 * ${1 - progress} * var(--f7-navbar-large-title-height)))`;\n }\n if (fromLarge && !toLarge) {\n el.className = 'ios-swipeback-navbar-bg-large';\n el.transform = progress => `translateX(${(-100 + 100 * progress) * inverter}%) translateY(calc(-${progress} * var(--f7-navbar-large-title-height)))`;\n }\n if (fromLarge && toLarge) {\n el.transform = progress => `translateX(${(-100 + 100 * progress) * inverter}%)`;\n }\n return;\n }\n if ($navEl.hasClass('title-large')) return;\n const isSliding = $navEl.hasClass('sliding') || $previousNavbarEl.children('.navbar-inner.sliding').length;\n if (els.indexOf(el) < 0) els.push(el);\n if (!isSubnavbar || isSubnavbar && !isSliding) {\n el.opacity = progress => progress ** 3;\n }\n if (isSliding) {\n let transformTarget = el;\n if (isLeft && previousNavBackIconText.length && params.iosAnimateNavbarBackIcon) {\n const textEl = {\n el: previousNavBackIconText[0]\n };\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 function setAnimatableNavElements(_temp) {\n let {\n progress,\n reset,\n transition,\n reflow\n } = _temp === void 0 ? {} : _temp;\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 function handleTouchStart(e) {\n if (!e.isTrusted) return;\n const swipeBackEnabled = params[`${app.theme}SwipeBack`];\n if (!allowViewTouchMove || !swipeBackEnabled || isTouched || app.swipeout && app.swipeout.el || !router.allowPageChange) return;\n if ($(e.target).closest('.range-slider, .calendar-months').length > 0) return;\n if ($(e.target).closest('.page-master, .page-master-detail').length > 0 && params.masterDetailBreakpoint > 0 && app.width >= params.masterDetailBreakpoint) return;\n isMoved = false;\n isTouched = true;\n isScrolling = undefined;\n touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n touchStartTime = now();\n dynamicNavbar = router.dynamicNavbar;\n }\n function handleTouchMove(e) {\n if (!e.isTrusted) return;\n if (!isTouched) return;\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)) || pageX < touchesStart.x && !app.rtl || pageX > touchesStart.x && app.rtl;\n }\n if (isScrolling || e.f7PreventSwipeBack || app.preventSwipeBack) {\n isTouched = false;\n return;\n }\n if (!isMoved) {\n // Calc values during first move fired\n let cancel = false;\n const target = $(e.target);\n 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 $currentPageEl = target.closest('.page');\n if ($currentPageEl.hasClass('no-swipeback') || target.closest('.no-swipeback, .card-opened').length > 0) cancel = true;\n $previousPageEl = $el.find('.page-previous');\n if ($previousPageEl.length > 1) {\n $previousPageEl = $previousPageEl.eq($previousPageEl.length - 1);\n }\n let notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea;\n viewContainerWidth = $el.width();\n if (app.rtl) {\n notFromBorder = touchesStart.x < $el.offset().left - $el[0].scrollLeft + (viewContainerWidth - paramsSwipeBackActiveArea);\n } else {\n notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea;\n }\n if (notFromBorder) cancel = true;\n if ($previousPageEl.length === 0 || $currentPageEl.length === 0) cancel = true;\n if (cancel) {\n isTouched = false;\n return;\n }\n 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 if (dynamicNavbar) {\n $currentNavbarEl = $navbarsEl.find('.navbar-current');\n $previousNavbarEl = $navbarsEl.find('.navbar-previous');\n if ($previousNavbarEl.length > 1) {\n $previousNavbarEl = $previousNavbarEl.eq($previousNavbarEl.length - 1);\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 router.swipeBackActive = true;\n $([$currentPageEl[0], $previousPageEl[0]]).addClass('page-swipeback-active');\n $currentPageEl.transform(`translate3d(${currentPageTranslate}px,0,0)`);\n if (paramsSwipeBackAnimateShadow) $pageShadowEl[0].style.opacity = 1 - 1 * percentage;\n 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 setAnimatableNavElements({\n progress: percentage\n });\n }\n function handleTouchEnd(e) {\n if (!e.isTrusted) return;\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({\n reset: true\n });\n }\n return;\n }\n const timeDiff = now() - touchStartTime;\n let pageChanged = false;\n // Swipe back to previous page\n if (timeDiff < 300 && touchesDiff > 10 || timeDiff >= 300 && touchesDiff > viewContainerWidth / 2) {\n $currentPageEl.removeClass('page-current').addClass(`page-next${app.theme !== 'ios' ? ' page-next-on-right' : ''}`);\n $previousPageEl.removeClass('page-previous').addClass('page-current').removeAttr('aria-hidden');\n if ($pageShadowEl) $pageShadowEl[0].style.opacity = '';\n if ($pageOpacityEl) $pageOpacityEl[0].style.opacity = '';\n 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 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 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('beforeIn', $previousPageEl, $previousNavbarEl, 'previous', 'current', {\n route: $previousPageEl[0].f7Page.route,\n swipeBack: true\n }, $currentPageEl[0]);\n $el.trigger('swipeback:beforechange', callbackData);\n router.emit('swipebackBeforeChange', callbackData);\n } else {\n $el.trigger('swipeback:beforereset', callbackData);\n router.emit('swipebackBeforeReset', callbackData);\n }\n $currentPageEl.transitionEnd(() => {\n $pages.removeClass('page-transitioning page-transitioning-swipeback');\n if (dynamicNavbar) {\n setAnimatableNavElements({\n reset: true,\n transition: false\n });\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\n router.pageCallback('beforeRemove', $currentPageEl, $currentNavbarEl, 'next', {\n swipeBack: true\n });\n router.removePage($currentPageEl);\n if (dynamicNavbar) {\n router.removeNavbar($currentNavbarEl);\n }\n $el.trigger('swipeback:afterchange', callbackData);\n router.emit('swipebackAfterChange', callbackData);\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n if (params.preloadPreviousPage) {\n router.back(router.history[router.history.length - 2], {\n preload: true\n });\n }\n } else {\n $el.trigger('swipeback:afterreset', callbackData);\n router.emit('swipebackAfterReset', callbackData);\n }\n if ($pageShadowEl && $pageShadowEl.length > 0) $pageShadowEl.remove();\n if ($pageOpacityEl && $pageOpacityEl.length > 0) $pageOpacityEl.remove();\n });\n }\n function attachEvents() {\n const passiveListener = app.touchEvents.start === 'touchstart' && support.passiveListener ? {\n passive: true,\n capture: false\n } : false;\n $el.on(app.touchEvents.start, handleTouchStart, passiveListener);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n }\n function detachEvents() {\n const passiveListener = app.touchEvents.start === 'touchstart' && support.passiveListener ? {\n passive: true,\n capture: false\n } : false;\n $el.off(app.touchEvents.start, handleTouchStart, passiveListener);\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n }\n attachEvents();\n router.on('routerDestroy', detachEvents);\n}\nexport default SwipeBack;", "import { extend } from '../../shared/utils.js';\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\n function redirectResolve(redirectUrl, redirectOptions) {\n if (redirectOptions === void 0) {\n redirectOptions = {};\n }\n router.allowPageChange = true;\n router[method](redirectUrl, extend({}, options, redirectOptions));\n }\n function redirectReject() {\n router.allowPageChange = true;\n }\n if (typeof r === 'function') {\n router.allowPageChange = false;\n const redirectUrl = r.call(router, {\n router,\n to: route,\n resolve: redirectResolve,\n reject: redirectReject,\n direction,\n app: router.app\n });\n if (redirectUrl && typeof redirectUrl === 'string') {\n router.allowPageChange = true;\n return router[method](redirectUrl, options);\n }\n return router;\n }\n return router[method](r, options);\n}", "function processQueue(router, routerQueue, routeQueue, to, from, resolve, reject, direction) {\n const queue = [];\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 function next() {\n if (queue.length === 0) {\n resolve();\n return;\n }\n const queueItem = queue.shift();\n queueItem.call(router, {\n router,\n to,\n from,\n resolve() {\n next();\n },\n reject() {\n reject();\n },\n direction,\n app: router.app\n });\n }\n next();\n}\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(router, router.params.routesBeforeEnter, to.route.beforeEnter, to, from, () => {\n router.allowPageChange = true;\n resolve();\n }, () => {\n reject();\n }, direction);\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(router, router.params.routesBeforeLeave, from.route.beforeLeave, to, from, () => {\n router.allowPageChange = true;\n enterNextRoute();\n }, () => {\n reject();\n }, direction);\n } else {\n enterNextRoute();\n }\n }\n leaveCurrentRoute();\n}", "export default function appRouterCheck(router, method) {\n if (!router.view) {\n throw new Error(`Framework7: it is not allowed to use router methods on global app router. Use router methods only on related View, e.g. app.views.main.router.${method}(...)`);\n }\n}", "export default function asyncComponent(router, component, resolve, reject) {\n function resolvePromise(componentPromise) {\n componentPromise.then(c => {\n // eslint-disable-next-line\n resolve({\n component: c.default || c._default || c\n });\n }).catch(err => {\n reject();\n throw new Error(err, {\n cause: err\n });\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({\n component: asyncComponentResult\n });\n }\n}", "import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, parseUrlQuery } from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport redirect from './redirect.js';\nimport processRouteQueue from './process-route-queue.js';\nimport appRouterCheck from './app-router-check.js';\nimport asyncComponent from './async-component.js';\nfunction refreshPage(props) {\n if (props === void 0) {\n props = {};\n }\n const router = this;\n appRouterCheck(router, 'refreshPage');\n return router.navigate(router.currentRoute.url, {\n ignoreCache: true,\n reloadCurrent: true,\n props\n });\n}\nfunction forward(router, el, forwardOptions) {\n if (forwardOptions === void 0) {\n forwardOptions = {};\n }\n const document = getDocument();\n const $el = $(el);\n const app = router.app;\n const view = router.view;\n const options = extend(false, {\n animate: router.params.animate,\n browserHistory: true,\n replaceState: false,\n history: true,\n reloadCurrent: router.params.reloadPages,\n reloadPrevious: false,\n reloadAll: false,\n clearPreviousHistory: false,\n reloadDetail: router.params.reloadDetail,\n on: {}\n }, forwardOptions);\n const masterDetailEnabled = router.params.masterDetailBreakpoint > 0;\n const isMaster = masterDetailEnabled && options.route && options.route.route && (options.route.route.master === true || typeof options.route.route.master === 'function' && options.route.route.master(app, router));\n let masterPageEl;\n let otherDetailPageEl;\n let detailsInBetweenRemoved = 0;\n let currentRouteIsModal = router.currentRoute.modal;\n let modalType;\n if (!currentRouteIsModal) {\n 'popup popover sheet loginScreen actions customModal panel'.split(' ').forEach(modalLoadProp => {\n if (router.currentRoute && router.currentRoute.route && router.currentRoute.route[modalLoadProp]) {\n currentRouteIsModal = true;\n modalType = modalLoadProp;\n }\n });\n }\n if (currentRouteIsModal) {\n const modalToClose = 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 router.modalRemove(modalToClose);\n }\n const dynamicNavbar = router.dynamicNavbar;\n const $viewEl = router.$el;\n const $newPage = $el;\n const reload = options.reloadPrevious || options.reloadCurrent || options.reloadAll;\n let $oldPage;\n let $navbarsEl;\n let $newNavbarEl;\n let $oldNavbarEl;\n router.allowPageChange = false;\n if ($newPage.length === 0) {\n router.allowPageChange = true;\n return router;\n }\n if ($newPage.length) {\n // Remove theme elements\n router.removeThemeElements($newPage);\n }\n if (dynamicNavbar) {\n $newNavbarEl = $newPage.children('.navbar');\n $navbarsEl = router.$navbarsEl;\n if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) {\n // Try from pageData\n $newNavbarEl = $newPage[0].f7Page.$navbarEl;\n }\n }\n\n // Save Keep Alive Cache\n if (options.route && options.route.route && options.route.route.keepAlive && !options.route.route.keepAliveData) {\n options.route.route.keepAliveData = {\n pageEl: $el[0]\n };\n }\n\n // Pages In View\n const $pagesInView = $viewEl.children('.page').filter(pageInView => pageInView !== $newPage[0]);\n\n // Navbars In View\n let $navbarsInView;\n if (dynamicNavbar) {\n $navbarsInView = $navbarsEl.children('.navbar').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\n isDetail = !isMaster && masterPageEl;\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\n reloadDetail = isDetail && options.reloadDetail && app.width >= router.params.masterDetailBreakpoint && masterPageEl;\n }\n if (isDetail) {\n isDetailRoot = !otherDetailPageEl || reloadDetail || options.reloadAll || options.reloadCurrent;\n }\n\n // New Page\n let newPagePosition = 'next';\n if (options.reloadCurrent || options.reloadAll || reloadDetail) {\n newPagePosition = 'current';\n } else if (options.reloadPrevious) {\n newPagePosition = 'previous';\n }\n $newPage.removeClass('page-previous page-current page-next').addClass(`page-${newPagePosition}${isMaster ? ' page-master' : ''}${isDetail ? ' page-master-detail' : ''}${isDetailRoot ? ' page-master-detail-root' : ''}`).trigger('page:unstack').trigger('page:position', {\n position: newPagePosition\n });\n router.emit('pageUnstack', $newPage[0]);\n router.emit('pagePosition', $newPage[0], newPagePosition);\n if (isMaster || isDetail) {\n $newPage.trigger('page:role', {\n role: isMaster ? 'master' : 'detail',\n root: !!isDetailRoot\n });\n router.emit('pageRole', $newPage[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot\n });\n }\n if (dynamicNavbar && $newNavbarEl.length) {\n $newNavbarEl.removeClass('navbar-previous navbar-current navbar-next').addClass(`navbar-${newPagePosition}${isMaster ? ' navbar-master' : ''}${isDetail ? ' navbar-master-detail' : ''}${isDetailRoot ? ' navbar-master-detail-root' : ''}`);\n $newNavbarEl.trigger('navbar:position', {\n position: newPagePosition\n });\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\n const oldNavbarEl = app.navbar.getElByPage($pagesInView.eq(i));\n\n // Page remove event\n removedPageEls.push($pagesInView[i]);\n router.pageCallback('beforeRemove', $pagesInView[i], $navbarsInView && $navbarsInView[i], 'previous', undefined, options);\n router.removePage($pagesInView[i]);\n if (dynamicNavbar && oldNavbarEl) {\n removedNavbarEls.push(oldNavbarEl);\n router.removeNavbar(oldNavbarEl);\n }\n }\n }\n $oldPage = $viewEl.children('.page').filter(pageEl => pageEl !== $newPage[0] && removedPageEls.indexOf(pageEl) < 0);\n if (dynamicNavbar) {\n $oldNavbarEl = $navbarsEl.children('.navbar').filter(navbarEl => navbarEl !== $newNavbarEl[0] && removedNavbarEls.indexOf(removedNavbarEls) < 0);\n }\n removedPageEls = [];\n removedNavbarEls = [];\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(navbarEl => !navbarEl.classList.contains('navbar-master'));\n }\n }\n\n // Push State\n if (router.params.browserHistory && (options.browserHistory || options.replaceState) && !options.reloadPrevious) {\n const browserHistoryRoot = router.params.browserHistoryRoot || '';\n History[options.reloadCurrent || reloadDetail && otherDetailPageEl || options.reloadAll || options.replaceState ? 'replace' : 'push'](view.id, {\n url: options.route.url\n }, browserHistoryRoot + router.params.browserHistorySeparator + options.route.url);\n }\n 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 if (options.history) {\n if (((options.reloadCurrent || reloadDetail && otherDetailPageEl) && router.history.length) > 0 || options.replaceState) {\n if (reloadDetail && detailsInBetweenRemoved > 0) {\n router.history = router.history.slice(0, router.history.length - detailsInBetweenRemoved);\n router.propsHistory = router.propsHistory.slice(0, router.propsHistory.length - detailsInBetweenRemoved);\n }\n router.history[router.history.length - (options.reloadPrevious ? 2 : 1)] = url;\n router.propsHistory[router.propsHistory.length - (options.reloadPrevious ? 2 : 1)] = options.props || {};\n } else if (options.reloadPrevious) {\n router.history[router.history.length - 2] = url;\n router.propsHistory[router.propsHistory.length - 2] = options.props || {};\n } else if (options.reloadAll) {\n router.history = [url];\n router.propsHistory = [options.props || {}];\n } else {\n router.history.push(url);\n router.propsHistory.push(options.props || {});\n }\n }\n router.saveHistory();\n\n // Insert new page and navbar\n const newPageInDom = $newPage.parents(document).length > 0;\n const f7Component = $newPage[0].f7Component;\n if (options.reloadPrevious) {\n if (f7Component && !newPageInDom) {\n f7Component.mount(componentEl => {\n $(componentEl).insertBefore($oldPage);\n });\n } else {\n $newPage.insertBefore($oldPage);\n }\n if (dynamicNavbar && $newNavbarEl.length) {\n if ($newNavbarEl.find('.title-large').length) {\n $newNavbarEl.addClass('navbar-large');\n }\n if ($oldNavbarEl.length) {\n $newNavbarEl.insertBefore($oldNavbarEl);\n } else {\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n $navbarsEl.append($newNavbarEl);\n }\n }\n } else {\n if ($oldPage.next('.page')[0] !== $newPage[0]) {\n if (f7Component && !newPageInDom) {\n f7Component.mount(componentEl => {\n $viewEl.append(componentEl);\n });\n } else {\n $viewEl.append($newPage[0]);\n }\n }\n if (dynamicNavbar && $newNavbarEl.length) {\n if ($newNavbarEl.find('.title-large').length) {\n $newNavbarEl.addClass('navbar-large');\n }\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n $navbarsEl.append($newNavbarEl[0]);\n }\n }\n if (!newPageInDom) {\n router.pageCallback('mounted', $newPage, $newNavbarEl, newPagePosition, reload ? newPagePosition : 'current', options, $oldPage);\n } else if (options.route && options.route.route && options.route.route.keepAlive && !$newPage[0].f7PageMounted) {\n $newPage[0].f7PageMounted = true;\n router.pageCallback('mounted', $newPage, $newNavbarEl, newPagePosition, reload ? newPagePosition : 'current', options, $oldPage);\n }\n\n // Remove old page\n if ((options.reloadCurrent || reloadDetail) && $oldPage.length > 0) {\n // 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 } else if (options.reloadAll) {\n $oldPage.each((pageEl, index) => {\n const $oldPageEl = $(pageEl);\n const $oldNavbarElEl = $(app.navbar.getElByPage($oldPageEl));\n\n // Page remove event\n if ($oldPageEl.hasClass('page-current')) {\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', undefined, options);\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', undefined, options);\n }\n router.pageCallback('beforeRemove', $oldPageEl, $oldNavbarEl && $oldNavbarEl.eq(index), 'previous', undefined, options);\n router.removePage($oldPageEl);\n if (dynamicNavbar && $oldNavbarElEl.length) {\n router.removeNavbar($oldNavbarElEl);\n }\n });\n } else if (options.reloadPrevious) {\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 // Load Tab\n if (options.route.route.tab) {\n router.tabLoad(options.route.route.tab, extend({}, options, {\n history: false,\n browserHistory: false\n }));\n }\n\n // Check master detail\n if (masterDetailEnabled) {\n view.checkMasterDetailBreakpoint();\n }\n\n // Page init and before init events\n router.pageCallback('init', $newPage, $newNavbarEl, newPagePosition, reload ? newPagePosition : 'current', options, $oldPage);\n 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 let keepOldPage = (router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`]) && !isMaster;\n if (!keepOldPage) {\n if ($newPage.hasClass('smart-select-page') || $newPage.hasClass('photo-browser-page') || $newPage.hasClass('autocomplete-page') || $newPage.hasClass('color-picker-page')) {\n keepOldPage = true;\n }\n }\n if (!keepOldPage) {\n if (!($newPage.attr('data-name') && $newPage.attr('data-name') === 'smart-select-page')) {\n // Remove event\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'previous', undefined, options);\n router.removePage($oldPage);\n if (dynamicNavbar && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n }\n }\n if (options.clearPreviousHistory) router.clearPreviousHistory();\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n 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 if (delay) {\n setTimeout(() => {\n setPositionClasses();\n router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'forward', transition, () => {\n afterAnimation();\n });\n }, delay);\n } else {\n setPositionClasses();\n router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'forward', transition, () => {\n afterAnimation();\n });\n }\n } else {\n afterAnimation();\n }\n return router;\n}\nfunction load(router, loadParams, loadOptions, ignorePageChange) {\n if (loadParams === void 0) {\n loadParams = {};\n }\n if (loadOptions === void 0) {\n loadOptions = {};\n }\n if (!router.allowPageChange && !ignorePageChange) return router;\n const params = loadParams;\n const options = loadOptions;\n const {\n url,\n content,\n el,\n pageName,\n component,\n componentUrl\n } = params;\n if (!options.reloadCurrent && options.route && options.route.route && options.route.route.parentPath && router.currentRoute.route && router.currentRoute.route.parentPath === options.route.route.parentPath) {\n // Do something nested\n if (options.route.url === router.url) {\n router.allowPageChange = true;\n return false;\n }\n // Check for same params\n let sameParams = Object.keys(options.route.params).length === Object.keys(router.currentRoute.params).length;\n if (sameParams) {\n // Check for equal params name\n Object.keys(options.route.params).forEach(paramName => {\n if (!(paramName in router.currentRoute.params) || router.currentRoute.params[paramName] !== options.route.params[paramName]) {\n sameParams = false;\n }\n });\n }\n if (sameParams) {\n if (options.route.route.tab) {\n return router.tabLoad(options.route.route.tab, options);\n }\n return false;\n }\n if (!sameParams && options.route.route.tab && router.currentRoute.route.tab && router.currentRoute.parentPath === options.route.parentPath) {\n return router.tabLoad(options.route.route.tab, options);\n }\n }\n if (options.route && options.route.url && router.url === options.route.url && !(options.reloadCurrent || options.reloadPrevious) && !router.params.allowDuplicateUrls) {\n router.allowPageChange = true;\n return false;\n }\n if (!options.route && url) {\n options.route = router.parseRouteUrl(url);\n extend(options.route, {\n route: {\n url,\n path: url\n }\n });\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 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.xhrRequest(url, options).then(pageContent => {\n forward(router, router.getPageEl(pageContent), options);\n }).catch(() => {\n router.allowPageChange = true;\n });\n }\n return router;\n}\nfunction navigate(navigateParams, navigateOptions) {\n if (navigateOptions === void 0) {\n navigateOptions = {};\n }\n const router = this;\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({\n path,\n name,\n params,\n query\n });\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 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).replace('///', '/').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 if (!route) {\n return router;\n }\n if (route.route && route.route.viewName) {\n const anotherViewName = route.route.viewName;\n const anotherView = app.views[anotherViewName];\n if (!anotherView) {\n throw new Error(`Framework7: There is no View with \"${anotherViewName}\" name that was specified in this route`);\n }\n if (anotherView !== router.view) {\n return anotherView.router.navigate(navigateParams, navigateOptions);\n }\n }\n if (route.route.redirect) {\n return redirect.call(router, 'forward', route, navigateOptions);\n }\n const options = {};\n if (route.route.options) {\n extend(options, route.route.options, navigateOptions);\n } else {\n extend(options, navigateOptions);\n }\n if (options.openIn && (!router.params.ignoreOpenIn || router.params.ignoreOpenIn && router.history.length > 0)) {\n return router.openIn(router, navigateUrl, options);\n }\n options.route = route;\n function resolve() {\n let routerLoaded = false;\n 'popup popover sheet loginScreen actions customModal panel'.split(' ').forEach(modalLoadProp => {\n if (route.route[modalLoadProp] && !routerLoaded) {\n routerLoaded = true;\n router.modalLoad(modalLoadProp, route, options, 'forward');\n }\n });\n if (route.route.keepAlive && route.route.keepAliveData) {\n load(router, {\n el: route.route.keepAliveData.pageEl\n }, options, false);\n routerLoaded = true;\n }\n 'url content component pageName el componentUrl'.split(' ').forEach(pageLoadProp => {\n if (route.route[pageLoadProp] && !routerLoaded) {\n routerLoaded = true;\n load(router, {\n [pageLoadProp]: route.route[pageLoadProp]\n }, options, false);\n }\n });\n if (routerLoaded) return;\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n router.allowPageChange = false;\n let resolvedAsModal = false;\n 'popup popover sheet loginScreen actions customModal panel'.split(' ').forEach(modalLoadProp => {\n if (resolveParams[modalLoadProp]) {\n resolvedAsModal = true;\n const modalRoute = extend({}, route, {\n route: resolveParams\n });\n router.allowPageChange = true;\n router.modalLoad(modalLoadProp, modalRoute, extend(options, resolveOptions), 'forward');\n }\n });\n if (resolvedAsModal) return;\n load(router, resolveParams, extend(options, resolveOptions), true);\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (route.route.async) {\n router.allowPageChange = false;\n route.route.async.call(router, {\n router,\n to: options.route,\n from: router.currentRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n direction: 'forward',\n app\n });\n }\n if (route.route.asyncComponent) {\n asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject);\n }\n }\n function reject() {\n router.allowPageChange = true;\n }\n 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 ((router.currentRoute.route.master === true || typeof router.currentRoute.route.master === 'function' && router.currentRoute.route.master(app, router)) && (router.currentRoute.route === route.route.masterRoute || router.currentRoute.route.path === route.route.masterRoute.path)) {\n preloadMaster = false;\n }\n if (router.currentRoute.route.masterRoute && (router.currentRoute.route.masterRoute === route.route.masterRoute || router.currentRoute.route.masterRoute.path === route.route.masterRoute.path)) {\n preloadMaster = false;\n masterLoaded = true;\n }\n }\n if (preloadMaster || masterLoaded && navigateOptions.reloadAll) {\n router.navigate({\n path: route.route.masterRoute.path,\n params: route.params || {}\n }, {\n animate: false,\n reloadAll: navigateOptions.reloadAll,\n reloadCurrent: navigateOptions.reloadCurrent,\n reloadPrevious: navigateOptions.reloadPrevious,\n browserHistory: !navigateOptions.initial,\n history: !navigateOptions.initial,\n once: {\n pageAfterIn() {\n router.navigate(navigateParams, extend({}, navigateOptions, {\n animate: false,\n reloadAll: false,\n reloadCurrent: false,\n reloadPrevious: false,\n history: !navigateOptions.initial,\n browserHistory: !navigateOptions.initial\n }));\n }\n }\n });\n return router;\n }\n }\n processRouteQueue.call(router, route, router.currentRoute, () => {\n if (route.route.modules) {\n app.loadModules(Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules]).then(() => {\n resolve();\n }).catch(() => {\n reject();\n });\n } else {\n resolve();\n }\n }, () => {\n reject();\n }, 'forward');\n\n // Return Router\n return router;\n}\nexport { refreshPage, navigate };", "import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport asyncComponent from './async-component.js';\nfunction tabLoad(tabRoute, loadOptions) {\n if (loadOptions === void 0) {\n loadOptions = {};\n }\n const router = this;\n const options = extend({\n animate: router.params.animate,\n browserHistory: true,\n history: true,\n parentPageEl: null,\n preload: false,\n on: {}\n }, loadOptions);\n let currentRoute;\n let previousRoute;\n if (options.route) {\n // Set Route\n if (!options.preload && options.route !== router.currentRoute) {\n previousRoute = router.previousRoute;\n router.currentRoute = options.route;\n }\n if (options.preload) {\n currentRoute = options.route;\n previousRoute = router.currentRoute;\n } else {\n currentRoute = router.currentRoute;\n if (!previousRoute) previousRoute = router.previousRoute;\n }\n\n // Update Browser History\n if (router.params.browserHistory && options.browserHistory && !options.reloadPrevious) {\n History[router.params.browserHistoryTabs](router.view.id, {\n url: options.route.url\n }, (router.params.browserHistoryRoot || '') + router.params.browserHistorySeparator + options.route.url);\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 const {\n $newTabEl,\n $oldTabEl,\n animated,\n onTabsChanged\n } = tabShowResult;\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 let tabEventTarget = $newTabEl;\n if (typeof contentEl !== 'string') tabEventTarget = $(contentEl);\n tabEventTarget.trigger('tab:init tab:mounted', tabRoute);\n router.emit('tabInit tabMounted', $newTabEl[0], tabRoute);\n 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 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 {\n url,\n content,\n el,\n component,\n componentUrl\n } = 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 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.xhrRequest(url, loadTabOptions).then(tabContent => {\n resolve(tabContent);\n }).catch(() => {\n router.allowPageChange = true;\n });\n }\n }\n let hasContentLoadProp;\n 'url content component el componentUrl'.split(' ').forEach(tabLoadProp => {\n if (tabRoute[tabLoadProp]) {\n hasContentLoadProp = true;\n loadTab({\n [tabLoadProp]: tabRoute[tabLoadProp]\n }, options);\n }\n });\n\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n loadTab(resolveParams, extend(options, resolveOptions));\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (tabRoute.async) {\n tabRoute.async.call(router, {\n router,\n to: currentRoute,\n from: previousRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n app: router.app\n });\n } else if (tabRoute.asyncComponent) {\n asyncComponent(router, tabRoute.asyncComponent, asyncResolve, asyncReject);\n } else if (!hasContentLoadProp) {\n router.allowPageChange = true;\n }\n return router;\n}\nfunction tabRemove($oldTabEl, $newTabEl, tabRoute) {\n const router = this;\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}\nexport { tabLoad, tabRemove };", "import { extend, nextTick } from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport asyncComponent from './async-component.js';\nfunction modalLoad(modalType, route, loadOptions, direction) {\n if (loadOptions === void 0) {\n loadOptions = {};\n }\n const router = this;\n const app = router.app;\n const isPanel = modalType === 'panel';\n const modalOrPanel = isPanel ? 'panel' : 'modal';\n const options = extend({\n animate: router.params.animate,\n browserHistory: true,\n history: true,\n on: {},\n once: {}\n }, loadOptions);\n const modalParams = extend({}, route.route[modalType]);\n const modalRoute = route.route;\n const routeCallback = (modal, name) => {\n const {\n on,\n once\n } = 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 function onModalLoaded() {\n // Create Modal\n const modal = app[modalType].create(modalParams);\n modalRoute.modalInstance = modal;\n const hasEl = modal.el;\n function closeOnSwipeBack() {\n modal.close();\n }\n modal.on(`${modalOrPanel}Open`, () => {\n if (!hasEl) {\n // Remove theme elements\n router.removeThemeElements(modal.el);\n\n // Emit events\n modal.$el.trigger(`${modalType.toLowerCase()}:init ${modalType.toLowerCase()}:mounted`, route, modal);\n router.emit(`${!isPanel ? 'modalInit' : ''} ${modalType}Init ${modalType}Mounted`, modal.el, route, modal);\n }\n router.once('swipeBackMove', closeOnSwipeBack);\n 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 modal.on(`${modalOrPanel}Closed`, () => {\n modal.$el.trigger(`${modalType.toLowerCase()}:beforeremove`, route, modal);\n modal.emit(`${!isPanel ? 'modalBeforeRemove ' : ''}${modalType}BeforeRemove`, modal.el, route, modal);\n const modalComponent = modal.el.f7Component;\n routeCallback(modal, 'closed');\n if (modalComponent) {\n modalComponent.destroy();\n }\n nextTick(() => {\n if (modalComponent || modalParams.component || modalParams.asyncComponent || modalParams.async) {\n router.removeModal(modal.el);\n }\n modal.destroy();\n delete modal.route;\n delete modalRoute.modalInstance;\n });\n });\n if (options.route) {\n // Update Browser History\n if (router.params.browserHistory && options.browserHistory) {\n History.push(router.view.id, {\n url: options.route.url,\n modal: modalType\n }, (router.params.browserHistoryRoot || '') + router.params.browserHistorySeparator + options.route.url);\n }\n\n // Set Route\n if (options.route !== router.currentRoute) {\n modal.route = extend(options.route, {\n modal\n });\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 if (hasEl) {\n // Remove theme elements\n router.removeThemeElements(modal.el);\n\n // Emit events\n modal.$el.trigger(`${modalType.toLowerCase()}:init ${modalType.toLowerCase()}:mounted`, route, modal);\n router.emit(`${modalOrPanel}Init ${modalType}Init ${modalType}Mounted`, modal.el, route, modal);\n }\n\n // Open\n modal.open(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 {\n url,\n content,\n component,\n componentUrl\n } = 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 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.xhrRequest(url, loadModalOptions).then(modalContent => {\n modalParams.content = modalContent;\n onModalLoaded();\n }).catch(() => {\n router.allowPageChange = true;\n });\n } else {\n onModalLoaded();\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({\n [modalLoadProp]: modalParams[modalLoadProp]\n }, options);\n }\n });\n if (!foundLoadProp && modalType === 'actions') {\n onModalLoaded();\n }\n\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n loadModal(resolveParams, extend(options, resolveOptions));\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (modalParams.async) {\n modalParams.async.call(router, {\n router,\n to: options.route,\n from: router.currentRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n direction,\n app\n });\n }\n if (modalParams.asyncComponent) {\n asyncComponent(router, modalParams.asyncComponent, asyncResolve, asyncReject);\n }\n return router;\n}\nfunction modalRemove(modal) {\n extend(modal, {\n closeByRouter: true\n });\n modal.close();\n}\nexport { modalLoad, modalRemove };", "import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, parseUrlQuery } from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport History from '../../shared/history.js';\nimport redirect from './redirect.js';\nimport processRouteQueue from './process-route-queue.js';\nimport appRouterCheck from './app-router-check.js';\nimport asyncComponent from './async-component.js';\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 const options = extend(false, {\n animate: router.params.animate,\n browserHistory: true,\n replaceState: false\n }, backwardOptions);\n const masterDetailEnabled = router.params.masterDetailBreakpoint > 0;\n const isMaster = masterDetailEnabled && options.route && options.route.route && (options.route.route.master === true || typeof options.route.route.master === 'function' && options.route.route.master(app, router));\n let masterPageEl;\n let masterPageRemoved;\n const dynamicNavbar = router.dynamicNavbar;\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 if ($newPage.length) {\n // Remove theme elements\n router.removeThemeElements($newPage);\n }\n let $navbarsEl;\n let $newNavbarEl;\n let $oldNavbarEl;\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 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 (options.route && options.route.route && options.route.route.keepAlive && !options.route.route.keepAliveData) {\n options.route.route.keepAliveData = {\n pageEl: $el[0]\n };\n }\n\n // Pages In View\n let isDetail;\n let isDetailRoot;\n if (masterDetailEnabled) {\n const $pagesInView = router.$el.children('.page').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 = !isMaster && masterPageEl && router.history.indexOf(options.route.url) > router.history.indexOf(masterPageEl.f7Page.route.url);\n if (!isDetail && !isMaster && masterPageEl && masterPageEl.f7Page && options.route.route.masterRoute) {\n isDetail = options.route.route.masterRoute.path === masterPageEl.f7Page.route.route.path;\n }\n }\n if (isDetail && masterPageEl && masterPageEl.f7Page) {\n isDetailRoot = router.history.indexOf(options.route.url) - router.history.indexOf(masterPageEl.f7Page.route.url) === 1;\n }\n\n // New Page\n $newPage.addClass(`page-${initialPreload ? 'current' : 'previous'}${isMaster ? ' page-master' : ''}${isDetail ? ' page-master-detail' : ''}${isDetailRoot ? ' page-master-detail-root' : ''}`).removeAttr('aria-hidden').trigger('page:unstack').trigger('page:position', {\n position: initialPreload ? 'current' : 'previous'\n });\n router.emit('pageUnstack', $newPage[0]);\n router.emit('pagePosition', $newPage[0], initialPreload ? 'current' : 'previous');\n if (isMaster || isDetail) {\n $newPage.trigger('page:role', {\n role: isMaster ? 'master' : 'detail',\n root: !!isDetailRoot\n });\n router.emit('pageRole', $newPage[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot\n });\n }\n if (dynamicNavbar && $newNavbarEl.length > 0) {\n $newNavbarEl.addClass(`navbar-${initialPreload ? 'current' : 'previous'}${isMaster ? ' navbar-master' : ''}${isDetail ? ' navbar-master-detail' : ''}${isDetailRoot ? ' navbar-master-detail-root' : ''}`).removeAttr('aria-hidden');\n $newNavbarEl.trigger('navbar:position', {\n position: initialPreload ? 'current' : 'previous'\n });\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 ($oldPage.prev('.page-previous').length >= 0) {\n if (router.history.indexOf(options.route.url) >= 0) {\n backIndex = router.history.length - router.history.indexOf(options.route.url) - 1;\n router.history = router.history.slice(0, router.history.indexOf(options.route.url) + 2);\n router.propsHistory = router.propsHistory.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.propsHistory[router.propsHistory.length - 2] = options.props || {};\n } else {\n router.history.unshift(router.url);\n router.propsHistory.unshift(options.props || {});\n }\n const $pageToRemove = $oldPage.prev('.page-previous');\n let $navbarToRemove;\n if (dynamicNavbar) {\n $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));\n }\n if ($pageToRemove.length > 0) {\n router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined, options);\n if ($pageToRemove[0] === masterPageEl) {\n masterPageRemoved = true;\n }\n router.removePage($pageToRemove);\n if (dynamicNavbar && $navbarToRemove.length) {\n router.removeNavbar($navbarToRemove);\n }\n }\n }\n }\n\n // Insert new page\n const newPageInDom = $newPage.parents(document).length > 0;\n const f7Component = $newPage[0].f7Component;\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('mounted', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);\n } else if (options.route && options.route.route && options.route.route.keepAlive && !$newPage[0].f7PageMounted) {\n $newPage[0].f7PageMounted = true;\n router.pageCallback('mounted', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);\n }\n }\n if (options.preload) {\n // Insert Page\n insertPage();\n // Tab route\n if (options.route.route.tab) {\n router.tabLoad(options.route.route.tab, extend({}, options, {\n history: false,\n browserHistory: false,\n preload: true\n }));\n }\n 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(.page-master)');\n if ($previousPages.length > 0) {\n $previousPages.each(pageToRemove => {\n const $pageToRemove = $(pageToRemove);\n let $navbarToRemove;\n if (dynamicNavbar) {\n $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));\n }\n router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined);\n router.removePage($pageToRemove);\n if (dynamicNavbar && $navbarToRemove.length) {\n router.removeNavbar($navbarToRemove);\n }\n });\n }\n 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(view.id, {\n url: options.route.url\n }, browserHistoryRoot + router.params.browserHistorySeparator + options.route.url);\n } else if (backIndex) {\n History.go(-backIndex);\n } else {\n History.back();\n }\n }\n }\n\n // Update History\n if (options.replaceState) {\n router.history[router.history.length - 1] = options.route.url;\n router.propsHistory[router.propsHistory.length - 1] = options.props || {};\n } else {\n if (router.history.length === 1) {\n router.history.unshift(router.url);\n router.propsHistory.unshift(options.props || {});\n }\n router.history.pop();\n router.propsHistory.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(view.id, {\n url: options.route.url\n }, browserHistoryRoot + router.params.browserHistorySeparator + options.route.url);\n } else if (backIndex) {\n History.go(-backIndex);\n } else {\n History.back();\n }\n }\n }\n\n // Insert Page\n insertPage();\n\n // Load Tab\n if (options.route.route.tab) {\n router.tabLoad(options.route.route.tab, extend({}, options, {\n history: false,\n browserHistory: false\n }));\n }\n\n // Check master detail\n\n if (masterDetailEnabled && (currentIsMaster || masterPageRemoved)) {\n view.checkMasterDetailBreakpoint(false);\n }\n\n // Page init and before init events\n router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);\n\n // Before animation callback\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'next', options);\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'previous', 'current', options);\n\n // Animation\n function afterAnimation() {\n // Set classes\n router.setPagePosition($newPage, 'current', false);\n router.setPagePosition($oldPage, 'next', true);\n if (dynamicNavbar) {\n router.setNavbarPosition($newNavbarEl, 'current', false);\n router.setNavbarPosition($oldNavbarEl, 'next', true);\n }\n\n // After animation event\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'next', options);\n router.pageCallback('afterIn', $newPage, $newNavbarEl, 'previous', 'current', options);\n\n // Remove Old Page\n\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'next', undefined, options);\n router.removePage($oldPage);\n if (dynamicNavbar && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n router.allowPageChange = true;\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n\n // Preload previous page\n const preloadPreviousPage = router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history[router.history.length - 2] && !isMaster) {\n router.back(router.history[router.history.length - 2], {\n preload: true,\n props: router.propsHistory[router.propsHistory.length - 2] || {}\n });\n }\n if (router.params.browserHistory) {\n History.clearRouterQueue();\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 if (options.animate && !(currentIsMaster && app.width >= router.params.masterDetailBreakpoint)) {\n let transition = router.params.transition;\n if ($oldPage[0] && $oldPage[0].f7PageTransition) {\n transition = $oldPage[0].f7PageTransition;\n delete $oldPage[0].f7PageTransition;\n }\n if (options.transition) transition = options.transition;\n if (!transition && router.previousRoute && router.previousRoute.route) {\n transition = router.previousRoute.route.transition;\n }\n if (!transition && router.previousRoute && router.previousRoute.route && router.previousRoute.route.options) {\n transition = router.previousRoute.route.options.transition;\n }\n setPositionClasses();\n router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'backward', transition, () => {\n afterAnimation();\n });\n } else {\n afterAnimation();\n }\n 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 {\n url,\n content,\n el,\n pageName,\n component,\n componentUrl\n } = params;\n if (options.route.url && router.url === options.route.url && !(options.reloadCurrent || options.reloadPrevious) && !router.params.allowDuplicateUrls) {\n router.allowPageChange = true;\n return false;\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 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.xhrRequest(url, options).then(pageContent => {\n backward(router, router.getPageEl(pageContent), options);\n }).catch(() => {\n router.allowPageChange = true;\n });\n }\n return router;\n}\nfunction back() {\n const router = this;\n const device = getDevice();\n if (router.swipeBackActive) return router;\n let navigateUrl;\n let navigateOptions;\n let navigateProps;\n let route;\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'object') {\n navigateOptions = (arguments.length <= 0 ? undefined : arguments[0]) || {};\n } else {\n navigateUrl = arguments.length <= 0 ? undefined : arguments[0];\n navigateOptions = (arguments.length <= 1 ? undefined : arguments[1]) || {};\n }\n const {\n name,\n params,\n query\n } = navigateOptions;\n if (name) {\n navigateUrl = router.generateUrl({\n name,\n params,\n query\n });\n if (navigateUrl) {\n return router.back(navigateUrl, extend({}, navigateOptions, {\n name: null,\n params: null,\n query: null\n }));\n }\n return router;\n }\n const app = router.app;\n appRouterCheck(router, 'back');\n let currentRouteIsModal = router.currentRoute.modal;\n let modalType;\n if (!currentRouteIsModal) {\n 'popup popover sheet loginScreen actions customModal panel'.split(' ').forEach(modalLoadProp => {\n if (router.currentRoute.route[modalLoadProp]) {\n currentRouteIsModal = true;\n modalType = modalLoadProp;\n }\n });\n }\n if (currentRouteIsModal && !navigateOptions.preload) {\n const modalToClose = 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 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 = router.params.browserHistory && navigateOptions.browserHistory !== false;\n const currentRouteWithoutBrowserHistory = router.currentRoute && router.currentRoute.route && router.currentRoute.route.options && 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.propsHistory.pop();\n router.saveHistory();\n if (needHistoryBack && isBrokenBrowserHistory && !currentRouteWithoutBrowserHistory) {\n History.back();\n }\n router.modalRemove(modalToClose);\n if (forceOtherUrl) {\n router.navigate(navigateUrl, {\n reloadCurrent: true\n });\n }\n } else if (modalToClose) {\n router.modalRemove(modalToClose);\n if (navigateUrl) {\n router.navigate(navigateUrl, {\n reloadCurrent: true\n });\n }\n }\n return router;\n }\n let $previousPage = router.$el.children('.page-current').prevAll('.page-previous:not(.page-master)').eq(0);\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 const $previousMaster = router.$el.children('.page-current').prevAll('.page-master').eq(0);\n if ($previousMaster.length) {\n const expectedPreviousPageUrl = router.history[router.history.length - 2];\n const expectedPreviousPageRoute = router.findMatchingRoute(expectedPreviousPageUrl);\n if (expectedPreviousPageRoute && $previousMaster[0].f7Page && expectedPreviousPageRoute.route === $previousMaster[0].f7Page.route.route) {\n $previousPage = $previousMaster;\n if (!navigateOptions.preload) {\n skipMaster = app.width >= router.params.masterDetailBreakpoint;\n }\n }\n }\n }\n if (!navigateOptions.force && $previousPage.length && !skipMaster) {\n const previousPageObj = $previousPage[0].f7Page;\n if (router.params.browserHistory && previousPageObj && router.history[router.history.length - 2] !== previousPageObj.route.url) {\n router.back(router.history[router.history.length - 2], extend(navigateOptions, {\n force: true,\n props: router.propsHistory[router.propsHistory.length - 2] || {}\n }));\n return router;\n }\n if (previousPageObj) {\n const previousPageRoute = previousPageObj.route;\n processRouteQueue.call(router, previousPageRoute, router.currentRoute, () => {\n loadBack(router, {\n el: $previousPage\n }, extend(navigateOptions, {\n route: previousPageRoute\n }));\n }, () => {}, 'backward');\n return router;\n }\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 navigateProps = router.propsHistory[router.propsHistory.length - 2] || {};\n }\n if (skipMaster && !navigateOptions.force && router.history[router.history.length - 3]) {\n return router.back(router.history[router.history.length - 3], extend({}, navigateOptions || {}, {\n force: true,\n animate: false,\n props: router.propsHistory[router.propsHistory.length - 3] || {}\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 if (route.route.redirect) {\n return redirect.call(router, 'backward', route, navigateOptions);\n }\n const options = {};\n if (route.route.options) {\n extend(options, route.route.options, navigateOptions, {\n props: navigateProps || {}\n });\n } else {\n extend(options, navigateOptions, {\n props: navigateProps || {}\n });\n }\n options.route = route;\n function resolve() {\n let routerLoaded = false;\n if (route.route.keepAlive && route.route.keepAliveData) {\n loadBack(router, {\n el: route.route.keepAliveData.pageEl\n }, 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, {\n [pageLoadProp]: route.route[pageLoadProp]\n }, options);\n }\n });\n if (routerLoaded) return;\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n router.allowPageChange = false;\n loadBack(router, resolveParams, extend(options, resolveOptions), true);\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (route.route.async) {\n router.allowPageChange = false;\n route.route.async.call(router, {\n router,\n to: route,\n from: router.currentRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n direction: 'backward',\n app\n });\n }\n if (route.route.asyncComponent) {\n asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject);\n }\n }\n function reject() {\n router.allowPageChange = true;\n }\n if (options.preload) {\n resolve();\n } else {\n processRouteQueue.call(router, route, router.currentRoute, () => {\n if (route.route.modules) {\n app.loadModules(Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules]).then(() => {\n resolve();\n }).catch(() => {\n reject();\n });\n } else {\n resolve();\n }\n }, () => {\n reject();\n }, 'backward');\n }\n\n // Return Router\n return router;\n}\nexport { back };", "import $ from '../../shared/dom7.js';\nimport appRouterCheck from './app-router-check.js';\nfunction clearPreviousPages(router) {\n appRouterCheck(router, 'clearPreviousPages');\n const app = router.app;\n const dynamicNavbar = router.dynamicNavbar;\n const $pagesToRemove = router.$el.children('.page').filter(pageInView => {\n if (router.currentRoute && (router.currentRoute.modal || router.currentRoute.panel)) return true;\n return pageInView !== router.currentPageEl;\n });\n $pagesToRemove.each(pageEl => {\n const $oldPageEl = $(pageEl);\n const $oldNavbarEl = $(app.navbar.getElByPage($oldPageEl));\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}\nfunction clearPreviousHistory() {\n const router = this;\n appRouterCheck(router, 'clearPreviousHistory');\n const url = router.history[router.history.length - 1];\n clearPreviousPages(router);\n router.history = [url];\n router.view.history = [url];\n router.saveHistory();\n}\nexport { clearPreviousHistory }; // eslint-disable-line", "import { getWindow, getDocument } from 'ssr-window';\nimport { pathToRegexp, compile } from 'path-to-regexp';\nimport $ from '../../shared/dom7.js';\nimport Framework7Class from '../../shared/class.js';\nimport { extend, nextFrame, parseUrlQuery, serializeObject, now, eventNameToColonCase } from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport SwipeBack from './swipe-back.js';\nimport { refreshPage, navigate } from './navigate.js';\nimport { tabLoad, tabRemove } from './tab.js';\nimport { modalLoad, modalRemove } from './modal.js';\nimport { back } from './back.js';\nimport { clearPreviousHistory } from './clear-previous-history.js';\nimport appRouterCheck from './app-router-check.js';\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 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 propsHistory: [],\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 if (newRoute === void 0) {\n newRoute = {};\n }\n previousRoute = extend({}, currentRoute);\n currentRoute = newRoute;\n if (!currentRoute) return;\n router.url = currentRoute.url;\n router.emit('routeChange', newRoute, previousRoute, router);\n },\n get() {\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 return router;\n }\n mount() {\n const router = this;\n const view = router.view;\n const document = getDocument();\n extend(false, router, {\n tempDom: document.createElement('div'),\n $el: view.$el,\n el: view.el,\n $navbarsEl: view.$navbarsEl,\n navbarsEl: view.navbarsEl\n });\n router.emit('local::mount routerMount', router);\n }\n animatableNavElements($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction) {\n const router = this;\n const dynamicNavbar = router.dynamicNavbar;\n const animateIcon = router.params.iosAnimateNavbarBackIcon;\n let newNavEls;\n let oldNavEls;\n function animatableNavEl($el, $navbarInner) {\n const isSliding = $el.hasClass('sliding') || $navbarInner.hasClass('sliding');\n const isSubnavbar = $el.hasClass('subnavbar');\n const needsOpacityTransition = isSliding ? !isSubnavbar : true;\n const $iconEl = $el.find('.back .icon');\n let isIconLabel;\n if (isSliding && animateIcon && $el.hasClass('left') && $iconEl.length > 0 && $iconEl.next('span').length) {\n $el = $iconEl.next('span'); // eslint-disable-line\n isIconLabel = true;\n }\n return {\n $el,\n isIconLabel,\n leftOffset: $el[0].f7NavbarLeftOffset,\n rightOffset: $el[0].f7NavbarRightOffset,\n isSliding,\n isSubnavbar,\n needsOpacityTransition\n };\n }\n if (dynamicNavbar) {\n newNavEls = [];\n oldNavEls = [];\n $newNavbarEl.children('.navbar-inner').children('.left, .right, .title, .subnavbar').each(navEl => {\n const $navEl = $(navEl);\n if ($navEl.hasClass('left') && fromLarge && direction === 'forward') return;\n if ($navEl.hasClass('title') && toLarge) return;\n newNavEls.push(animatableNavEl($navEl, $newNavbarEl.children('.navbar-inner')));\n });\n if (!($oldNavbarEl.hasClass('navbar-master') && router.params.masterDetailBreakpoint > 0 && router.app.width >= router.params.masterDetailBreakpoint)) {\n $oldNavbarEl.children('.navbar-inner').children('.left, .right, .title, .subnavbar').each(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 {\n isSliding,\n $el\n } = 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 return {\n newNavEls,\n oldNavEls\n };\n }\n animate($oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, transition, callback) {\n const router = this;\n if (router.params.animateCustom) {\n router.params.animateCustom.apply(router, [$oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, callback]);\n return;\n }\n const dynamicNavbar = router.dynamicNavbar;\n const ios = router.app.theme === 'ios';\n if (transition) {\n const routerCustomTransitionClass = `router-transition-custom router-transition-${transition}-${direction}`;\n // Animate\n const onCustomTransitionDone = () => {\n router.$el.removeClass(routerCustomTransitionClass);\n if (dynamicNavbar && router.$navbarsEl.length) {\n if ($newNavbarEl) {\n router.$navbarsEl.prepend($newNavbarEl);\n }\n if ($oldNavbarEl) {\n router.$navbarsEl.prepend($oldNavbarEl);\n }\n }\n if (callback) callback();\n };\n (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 router.$el.addClass(routerCustomTransitionClass);\n return;\n }\n\n // Router Animation class\n const routerTransitionClass = `router-transition-${direction} router-transition`;\n let newNavEls;\n let oldNavEls;\n let fromLarge;\n let toLarge;\n let toDifferent;\n let oldIsLarge;\n let newIsLarge;\n if (ios && dynamicNavbar) {\n const betweenMasterAndDetail = router.params.masterDetailBreakpoint > 0 && router.app.width >= router.params.masterDetailBreakpoint && ($oldNavbarEl.hasClass('navbar-master') && $newNavbarEl.hasClass('navbar-master-detail') || $oldNavbarEl.hasClass('navbar-master-detail') && $newNavbarEl.hasClass('navbar-master'));\n 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($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction);\n newNavEls = navEls.newNavEls;\n oldNavEls = navEls.oldNavEls;\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('transform', `translate3d(${offset * (1 - progress)}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`, 'important');\n } else {\n $el.transform(`translate3d(${offset * (1 - progress)}px,0,0)`);\n }\n }\n });\n oldNavEls.forEach(navEl => {\n const $el = navEl.$el;\n const offset = direction === 'forward' ? navEl.leftOffset : navEl.rightOffset;\n if (navEl.isSliding) {\n if (navEl.isSubnavbar && oldIsLarge) {\n $el.transform(`translate3d(${offset * progress}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`);\n } else {\n $el.transform(`translate3d(${offset * progress}px,0,0)`);\n }\n }\n });\n }\n\n // AnimationEnd Callback\n function onDone() {\n if (router.dynamicNavbar) {\n if ($newNavbarEl) {\n $newNavbarEl.removeClass('router-navbar-transition-to-large router-navbar-transition-from-large');\n $newNavbarEl.addClass('navbar-no-title-large-transition');\n nextFrame(() => {\n $newNavbarEl.removeClass('navbar-no-title-large-transition');\n });\n }\n if ($oldNavbarEl) {\n $oldNavbarEl.removeClass('router-navbar-transition-to-large router-navbar-transition-from-large');\n }\n if ($newNavbarEl.hasClass('sliding') || $newNavbarEl.children('.navbar-inner.sliding').length) {\n $newNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform('');\n } else {\n $newNavbarEl.find('.sliding').transform('');\n }\n if ($oldNavbarEl.hasClass('sliding') || $oldNavbarEl.children('.navbar-inner.sliding').length) {\n $oldNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform('');\n } else {\n $oldNavbarEl.find('.sliding').transform('');\n }\n }\n router.$el.removeClass(routerTransitionClass);\n if (callback) callback();\n }\n\n // eslint-disable-next-line\n (direction === 'forward' ? $newPageEl : ios ? $oldPageEl : $newPageEl).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 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 removeNavbar(el) {\n const router = this;\n router.removeEl(el);\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 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).children().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 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 return router.findElement('.page', router.tempDom);\n }\n findElement(stringSelector, container) {\n const router = this;\n const view = router.view;\n const app = router.app;\n\n // Modals Selector\n const modalsSelector = '.popup, .dialog, .popover, .actions-modal, .sheet-modal, .login-screen, .page';\n const $container = $(container);\n const selector = stringSelector;\n let found = $container.find(selector).filter(el => $(el).parents(modalsSelector).length === 0);\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 found = router.findElement(selector, $container);\n if (found && found.length === 1) return found;\n if (found && found.length > 1) return $(found[0]);\n return undefined;\n }\n flattenRoutes(routes) {\n if (routes === void 0) {\n routes = this.routes;\n }\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 generateUrl(parameters) {\n if (parameters === void 0) {\n parameters = {};\n }\n if (typeof parameters === 'string') {\n return parameters;\n }\n const {\n name,\n path,\n params,\n query\n } = 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 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, {\n params,\n query\n });\n if (url === '') {\n return '/';\n }\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, _temp) {\n let {\n params,\n query\n } = _temp === void 0 ? {} : _temp;\n const {\n path\n } = route;\n const toUrl = compile(path);\n let url;\n try {\n url = toUrl(params || {});\n } catch (error) {\n throw new Error(`Framework7: error constructing route URL from passed params:\\nRoute: ${path}\\n${error.toString()}`);\n }\n if (query) {\n if (typeof query === 'string') url += `?${query}`;else if (Object.keys(query).length) url += `?${serializeObject(query)}`;\n }\n return url;\n }\n findTabRouteUrl(tabEl) {\n const router = this;\n const $tabEl = $(tabEl);\n const parentPath = router.currentRoute.route.parentPath;\n const tabId = $tabEl.attr('id');\n const flattenedRoutes = router.flattenRoutes(router.routes);\n let foundTabRouteUrl;\n flattenedRoutes.forEach(route => {\n if (route.parentPath === parentPath && route.tab && route.tab.id === tabId) {\n if (router.currentRoute.params && Object.keys(router.currentRoute.params).length > 0) {\n foundTabRouteUrl = router.constructRouteUrl(route, {\n params: router.currentRoute.params,\n query: router.currentRoute.query\n });\n } else {\n foundTabRouteUrl = route.path;\n }\n }\n });\n return foundTabRouteUrl;\n }\n findRouteByKey(key, value) {\n const router = this;\n const routes = router.routes;\n const flattenedRoutes = router.flattenRoutes(routes);\n let matchingRoute;\n flattenedRoutes.forEach(route => {\n if (matchingRoute) return;\n if (route[key] === value) {\n matchingRoute = route;\n }\n });\n return matchingRoute;\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 {\n path,\n query,\n hash,\n params\n } = router.parseRouteUrl(url);\n let matchingRoute;\n flattenedRoutes.forEach(route => {\n if (matchingRoute) return;\n const keys = [];\n const pathsToMatch = [route.path || '/'];\n if (route.alias) {\n if (typeof route.alias === 'string') pathsToMatch.push(route.alias);else if (Array.isArray(route.alias)) {\n route.alias.forEach(aliasPath => {\n pathsToMatch.push(aliasPath);\n });\n }\n }\n let matched;\n pathsToMatch.forEach(pathToMatch => {\n if (matched) return;\n matched = pathToRegexp(pathToMatch, keys).exec(path || '/');\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 let parentPath;\n if (route.parentPath) {\n parentPath = (path || '/').split('/').slice(0, route.parentPath.split('/').length - 1).join('/');\n }\n matchingRoute = {\n query,\n hash,\n params,\n url,\n path: 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 if (url === void 0) {\n url = '';\n }\n if (options === void 0) {\n options = {};\n }\n let compiledUrl = url;\n if (typeof compiledUrl === 'string' && compiledUrl.indexOf('{{') >= 0 && options && options.route && options.route.params && Object.keys(options.route.params).length) {\n Object.keys(options.route.params).forEach(paramName => {\n const regExp = new RegExp(`{{${paramName}}}`, 'g');\n compiledUrl = compiledUrl.replace(regExp, options.route.params[paramName] || '');\n });\n }\n return compiledUrl;\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 xhrRequest(requestUrl, options) {\n const router = this;\n const params = router.params;\n const {\n ignoreCache\n } = options;\n let url = requestUrl;\n let hasQuery = url.indexOf('?') >= 0;\n if (params.passRouteQueryToRequest && options && options.route && options.route.query && Object.keys(options.route.query).length) {\n url += `${hasQuery ? '&' : '?'}${serializeObject(options.route.query)}`;\n hasQuery = true;\n }\n if (params.passRouteParamsToRequest && options && options.route && options.route.params && Object.keys(options.route.params).length) {\n url += `${hasQuery ? '&' : '?'}${serializeObject(options.route.params)}`;\n hasQuery = true;\n }\n if (url.indexOf('{{') >= 0) {\n url = router.replaceRequestUrlParams(url, options);\n }\n // should we ignore get params or not\n if (params.xhrCacheIgnoreGetParameters && url.indexOf('?') >= 0) {\n url = url.split('?')[0];\n }\n return new Promise((resolve, reject) => {\n if (params.xhrCache && !ignoreCache && url.indexOf('nocache') < 0 && params.xhrCacheIgnore.indexOf(url) < 0) {\n for (let i = 0; i < router.cache.xhr.length; i += 1) {\n const cachedUrl = router.cache.xhr[i];\n if (cachedUrl.url === url) {\n // Check expiration\n if (now() - cachedUrl.time < params.xhrCacheDuration) {\n // Load from cache\n resolve(cachedUrl.content);\n return;\n }\n }\n }\n }\n router.xhrAbortController = new AbortController();\n let fetchRes;\n fetch(url, {\n signal: router.xhrAbortController.signal,\n method: 'GET'\n }).then(res => {\n fetchRes = res;\n return res.text();\n }).then(responseText => {\n const {\n status\n } = fetchRes;\n router.emit('routerAjaxComplete', fetchRes);\n if (status !== 'error' && status !== 'timeout' && status >= 200 && status < 300 || status === 0) {\n if (params.xhrCache && responseText !== '') {\n router.removeFromXhrCache(url);\n router.cache.xhr.push({\n url,\n time: now(),\n content: responseText\n });\n }\n router.emit('routerAjaxSuccess', fetchRes, options);\n resolve(responseText);\n } else {\n router.emit('routerAjaxError', fetchRes, options);\n reject(fetchRes);\n }\n }).catch(err => {\n reject(err);\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 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', {\n position\n });\n router.emit('navbarPosition', $el[0], position);\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', {\n position\n });\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, .if-md, .if-not-ios, .not-ios';\n } else if (theme === 'md') {\n toRemove = '.ios-only, .if-ios, .if-not-md, .not-md';\n }\n $(el).find(toRemove).remove();\n }\n getPageData(pageEl, navbarEl, from, to, route, pageFromEl) {\n if (route === void 0) {\n route = {};\n }\n const router = this;\n const $pageEl = $(pageEl).eq(0);\n const $navbarEl = $(navbarEl).eq(0);\n const currentPage = $pageEl[0].f7Page || {};\n let direction;\n let pageFrom;\n if (from === 'next' && to === 'current' || from === 'current' && to === 'previous') direction = 'forward';\n if (from === 'current' && to === 'next' || from === 'previous' && to === 'current') direction = 'backward';\n if (currentPage && !currentPage.fromPage) {\n const $pageFromEl = $(pageFromEl);\n if ($pageFromEl.length) {\n pageFrom = $pageFromEl[0].f7Page;\n }\n }\n pageFrom = currentPage.pageFrom || pageFrom;\n if (pageFrom && pageFrom.pageFrom) {\n pageFrom.pageFrom = null;\n }\n const page = {\n app: router.app,\n view: router.view,\n router,\n $el: $pageEl,\n el: $pageEl[0],\n $pageEl,\n pageEl: $pageEl[0],\n $navbarEl,\n navbarEl: $navbarEl[0],\n name: $pageEl.attr('data-name'),\n position: from,\n from,\n to,\n direction,\n route: currentPage.route ? currentPage.route : route,\n pageFrom\n };\n $pageEl[0].f7Page = page;\n return page;\n }\n\n // Callbacks\n pageCallback(callback, pageEl, navbarEl, from, to, options, pageFromEl) {\n if (options === void 0) {\n options = {};\n }\n if (!pageEl) return;\n const router = this;\n const $pageEl = $(pageEl);\n if (!$pageEl.length) return;\n const $navbarEl = $(navbarEl);\n const {\n route\n } = options;\n const restoreScrollTopOnBack = router.params.restoreScrollTopOnBack && !(router.params.masterDetailBreakpoint > 0 && $pageEl.hasClass('page-master') && router.app.width >= router.params.masterDetailBreakpoint);\n const keepAlive = $pageEl[0].f7Page && $pageEl[0].f7Page.route && $pageEl[0].f7Page.route.route && $pageEl[0].f7Page.route.route.keepAlive;\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 let page = {};\n if (callback === 'beforeRemove' && $pageEl[0].f7Page) {\n page = extend($pageEl[0].f7Page, {\n from,\n to,\n position: from\n });\n } else {\n page = router.getPageData($pageEl[0], $navbarEl[0], from, to, route, pageFromEl);\n }\n page.swipeBack = !!options.swipeBack;\n const {\n on = {},\n once = {}\n } = 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 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 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 if (callback === 'mounted') {\n attachEvents();\n }\n if (callback === 'init') {\n if (restoreScrollTopOnBack && (from === 'previous' || !from) && to === 'current' && router.scrollHistory[page.route.url] && !$pageEl.hasClass('no-restore-scroll')) {\n let $pageContent = $pageEl.find('.page-content');\n if ($pageContent.length > 0) {\n // eslint-disable-next-line\n $pageContent = $pageContent.filter(pageContentEl => {\n return $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 && !$(pageContentEl).is('.tab:not(.tab-active)');\n });\n }\n $pageContent.scrollTop(router.scrollHistory[page.route.url]);\n }\n attachEvents();\n if ($pageEl[0].f7PageInitialized) {\n $pageEl.trigger('page:reinit', page);\n router.emit('pageReinit', page);\n return;\n }\n $pageEl[0].f7PageInitialized = true;\n }\n if (restoreScrollTopOnBack && callback === 'beforeOut' && from === 'current' && to === 'previous') {\n // Save scroll position\n let $pageContent = $pageEl.find('.page-content');\n if ($pageContent.length > 0) {\n // eslint-disable-next-line\n $pageContent = $pageContent.filter(pageContentEl => {\n return $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 && !$(pageContentEl).is('.tab:not(.tab-active)');\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 $pageEl.trigger(colonName, page);\n router.emit(camelName, page);\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 saveHistory() {\n const router = this;\n const window = getWindow();\n router.view.history = router.history;\n if (router.params.browserHistory && router.params.browserHistoryStoreHistory && window.localStorage) {\n window.localStorage[`f7router-${router.view.id}-history`] = JSON.stringify(router.history);\n }\n }\n restoreHistory() {\n const router = this;\n const window = getWindow();\n if (router.params.browserHistory && router.params.browserHistoryStoreHistory && window.localStorage && window.localStorage[`f7router-${router.view.id}-history`]) {\n router.history = JSON.parse(window.localStorage[`f7router-${router.view.id}-history`]);\n router.view.history = router.history;\n }\n }\n clearHistory() {\n const router = this;\n router.history = [];\n if (router.view) router.view.history = [];\n router.saveHistory();\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 {\n query,\n hash,\n params,\n url,\n path\n } = router.parseRouteUrl(newUrl);\n if (router.currentRoute) {\n extend(router.currentRoute, {\n query,\n hash,\n params,\n url,\n path\n });\n }\n if (router.params.browserHistory) {\n const browserHistoryRoot = router.params.browserHistoryRoot || '';\n History.replace(router.view.id, {\n url: newUrl\n }, browserHistoryRoot + router.params.browserHistorySeparator + newUrl);\n }\n\n // Save History\n router.saveHistory();\n router.emit('routeUrlUpdate', router.currentRoute, router);\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 {\n app,\n view\n } = router;\n const document = getDocument();\n const window = getWindow();\n const location = app.params.url && typeof app.params.url === 'string' && typeof URL !== 'undefined' ? new URL(app.params.url) : document.location;\n let initialUrl = router.params.url;\n let documentUrl = location.href.split(location.origin)[1];\n let historyRestored;\n const {\n browserHistory,\n browserHistoryOnLoad,\n browserHistorySeparator\n } = router.params;\n let {\n browserHistoryRoot\n } = router.params;\n if ((window.cordova || window.Capacitor && window.Capacitor.isNative) && browserHistory && !browserHistorySeparator && !browserHistoryRoot && location.pathname.indexOf('index.html')) {\n // eslint-disable-next-line\n console.warn('Framework7: wrong or not complete browserHistory configuration, trying to guess browserHistoryRoot');\n browserHistoryRoot = location.pathname.split('index.html')[0];\n }\n 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.substring(documentUrl.indexOf(browserHistoryRoot) + browserHistoryRoot.length);\n if (documentUrl === '') documentUrl = '/';\n }\n if (browserHistorySeparator.length > 0 && documentUrl.indexOf(browserHistorySeparator) >= 0) {\n initialUrl = documentUrl.substring(documentUrl.indexOf(browserHistorySeparator) + browserHistorySeparator.length);\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 (History.state && History.state[view.id] && History.state[view.id].url === router.history[router.history.length - 1]) {\n initialUrl = router.history[router.history.length - 1];\n } else {\n router.history = [documentUrl.split(browserHistorySeparator)[0] || '/', initialUrl];\n }\n if (router.history.length > 1) {\n historyRestored = true;\n } else {\n router.history = [];\n }\n router.saveHistory();\n }\n router.initialUrl = initialUrl;\n router.historyRestored = historyRestored;\n return {\n initialUrl,\n historyRestored\n };\n }\n init() {\n const router = this;\n const {\n app,\n view\n } = router;\n const document = getDocument();\n router.mount();\n const {\n initialUrl,\n historyRestored\n } = router.getInitialUrl();\n\n // Init Swipeback\n if (view && router.params.iosSwipeBack && app.theme === 'ios' || view && router.params.mdSwipeBack && app.theme === 'md') {\n SwipeBack(router);\n }\n const {\n browserHistory,\n browserHistoryOnLoad,\n browserHistoryAnimateOnLoad,\n browserHistoryInitialMatch\n } = router.params;\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 if (router.$el.children('.page').length === 0 && initialUrl && router.params.loadInitialPage) {\n // No pages presented in DOM, reload new page\n router.navigate(initialUrl, {\n initial: true,\n reloadCurrent: true,\n browserHistory: false,\n animate: false,\n once: {\n modalOpen() {\n if (!historyRestored) return;\n const preloadPreviousPage = router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 1) {\n router.back({\n preload: true\n });\n }\n },\n pageAfterIn() {\n if (!historyRestored) return;\n const preloadPreviousPage = router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 1) {\n router.back({\n preload: true\n });\n }\n }\n }\n });\n } else if (router.$el.children('.page').length) {\n // Init current DOM page\n let hasTabRoute;\n router.currentRoute = currentRoute;\n router.$el.children('.page').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 (router.currentRoute && router.currentRoute.route && (router.currentRoute.route.master === true || typeof router.currentRoute.route.master === 'function' && router.currentRoute.route.master(app, router)) && router.params.masterDetailBreakpoint > 0) {\n $pageEl.addClass('page-master');\n $pageEl.trigger('page:role', {\n role: 'master'\n });\n 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 = router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 1) {\n router.back({\n preload: true\n });\n }\n } else {\n router.navigate(initialUrl, {\n initial: true,\n browserHistory: false,\n history: false,\n animate: browserHistoryAnimateOnLoad,\n once: {\n pageAfterIn() {\n const preloadPreviousPage = router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 2) {\n router.back({\n preload: true\n });\n }\n }\n }\n });\n }\n }\n if (!historyRestored && !hasTabRoute) {\n router.history.push(initialUrl);\n router.saveHistory();\n }\n }\n if (initialUrl && browserHistory && browserHistoryOnLoad && (!History.state || !History.state[view.id])) {\n History.initViewState(view.id, {\n url: initialUrl\n });\n }\n router.emit('local::init routerInit', router);\n }\n destroy() {\n let router = this;\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 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;\nexport default Router;", "import Router from './router-class.js';\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};", "import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport { getSupport } from '../../shared/get-support.js';\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 {\n $el\n } = view;\n if (!$el) return;\n let $resizeHandlerEl;\n let isTouched;\n let isMoved;\n const touchesStart = {};\n let touchesDiff;\n let width;\n let minWidth;\n let maxWidth;\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 function isResizable() {\n return view.resizable && $el.hasClass('view-resizable') && $el.hasClass('view-master-detail');\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 if (!isMoved) {\n width = $resizeHandlerEl[0].offsetLeft + $resizeHandlerEl[0].offsetWidth;\n $el.addClass('view-resizing');\n $htmlEl.css('cursor', 'col-resize');\n }\n isMoved = true;\n e.preventDefault();\n touchesDiff = pageX - touchesStart.x;\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 view.resizableWidth = newWidth;\n $htmlEl[0].style.setProperty('--f7-page-master-width', `${newWidth}px`);\n $el.trigger('view:resize', newWidth);\n view.emit('local::resize viewResize', view, newWidth);\n }\n 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 $htmlEl[0].style.setProperty('--f7-page-master-width', `${view.resizableWidth}px`);\n $el.removeClass('view-resizing');\n }\n function handleResize() {\n if (!view.resizableWidth) return;\n minWidth = transformCSSWidth($resizeHandlerEl.css('min-width'));\n maxWidth = transformCSSWidth($resizeHandlerEl.css('max-width'));\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 $htmlEl[0].style.setProperty('--f7-page-master-width', `${view.resizableWidth}px`);\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 $el.addClass('view-resizable');\n\n // Add Events\n const passive = support.passiveListener ? {\n passive: true\n } : false;\n view.$el.on(app.touchEvents.start, '.view-resize-handler', handleTouchStart, passive);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n app.on('resize', handleResize);\n view.on('beforeOpen', handleResize);\n view.once('viewDestroy', () => {\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}\nexport default resizableView;", "import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Router from '../../modules/router/router.js';\nimport Framework7Class from '../../shared/class.js';\nimport resizableView from './resizable-view.js';\nclass View extends Framework7Class {\n constructor(app, el, viewParams) {\n if (viewParams === void 0) {\n viewParams = {};\n }\n super(viewParams, [app]);\n const view = this;\n const ssr = view.params.routerId;\n const defaults = {\n routes: [],\n routesAdd: []\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 += typeof el === 'string' ? `the selector \"${el}\" didn't match any element` : 'el must be an HTMLElement or Dom7 object';\n throw new Error(message);\n }\n }\n\n // Default View params\n view.params = extend({\n el\n }, 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 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 return view;\n }\n destroy() {\n let view = this;\n const app = view.app;\n view.$el.trigger('view:beforedestroy');\n view.emit('local::beforeDestroy viewBeforeDestroy', view);\n app.off('resize', view.checkMasterDetailBreakpoint);\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 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 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 view = null;\n }\n checkMasterDetailBreakpoint(force) {\n const view = this;\n const app = view.app;\n const wasMasterDetail = view.$el.hasClass('view-master-detail');\n const isMasterDetail = app.width >= view.params.masterDetailBreakpoint && view.$el.children('.page-master').length;\n if (typeof force === 'undefined' && isMasterDetail || force === true) {\n view.$el.addClass('view-master-detail');\n if (!wasMasterDetail) {\n view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view);\n view.$el.trigger('view:masterDetailBreakpoint');\n }\n } else {\n view.$el.removeClass('view-master-detail');\n if (wasMasterDetail) {\n view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view);\n view.$el.trigger('view:masterDetailBreakpoint');\n }\n }\n }\n 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 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;else {\n // Supposed to be HTMLElement or Dom7\n selector = ($el.attr('id') ? `#${$el.attr('id')}` : '') + ($el.attr('class') ? `.${$el.attr('class').replace(/ /g, '.').replace('.active', '')}` : '');\n }\n\n // DynamicNavbar\n let $navbarsEl;\n if (app.theme === 'ios' && view.params.iosDynamicNavbar) {\n $navbarsEl = $el.children('.navbars').eq(0);\n if ($navbarsEl.length === 0) {\n $navbarsEl = $('<div class=\"navbars\"></div>');\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 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 view.emit('local::mount viewMount', view);\n }\n init(viewEl) {\n const view = this;\n view.mount(viewEl);\n if (view.params.router) {\n if (view.params.masterDetailBreakpoint > 0) {\n view.initMasterDetail();\n }\n if (view.params.initRouterOnTabShow && view.$el.hasClass('tab') && !view.$el.hasClass('tab-active')) {\n view.$el.once('tab:show', () => {\n view.router.init();\n });\n } else {\n view.router.init();\n }\n view.$el.trigger('view:init');\n view.emit('local::init viewInit', view);\n }\n }\n}\n\n// Use Router\nView.use(Router);\nexport default View;", "import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport ViewClass from '../../components/view/view-class.js';\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 ($clickedLinkEl.is(app.params.clicks.externalLinks) ||\n // eslint-disable-next-line\n url && url.indexOf('javascript:') >= 0) {\n const target = $clickedLinkEl.attr('target');\n if (url && window.cordova && window.cordova.InAppBrowser && (target === '_system' || target === '_blank')) {\n e.preventDefault();\n window.cordova.InAppBrowser.open(url, target);\n } else if (url && window.Capacitor && window.Capacitor.Plugins && window.Capacitor.Plugins.Browser && (target === '_system' || target === '_blank')) {\n e.preventDefault();\n window.Capacitor.Plugins.Browser.open({\n url\n });\n }\n return;\n }\n }\n\n // Modules Clicks\n Object.keys(app.modules).forEach(moduleName => {\n const moduleClicks = app.modules[moduleName].clicks;\n if (!moduleClicks) return;\n if (e.preventF7Router) return;\n Object.keys(moduleClicks).forEach(clickSelector => {\n const matchingClickedElement = $clickedEl.closest(clickSelector).eq(0);\n if (matchingClickedElement.length > 0) {\n moduleClicks[clickSelector].call(app, matchingClickedElement, matchingClickedElement.dataset(), e);\n }\n });\n });\n\n // Load Page\n let clickedLinkData = {};\n if (isLink) {\n e.preventDefault();\n clickedLinkData = $clickedLinkEl.dataset();\n }\n clickedLinkData.clickedEl = $clickedLinkEl[0];\n\n // Prevent Router\n if (e.preventF7Router) return;\n if ($clickedLinkEl.hasClass('prevent-router') || $clickedLinkEl.hasClass('router-prevent')) return;\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 (view && view.params.linksView && (!$clickedLinkEl.hasClass('back') || $clickedLinkEl.hasClass('back') && view.router.history.length === 1)) {\n if (typeof view.params.linksView === 'string') view = $(view.params.linksView)[0].f7View;else if (view.params.linksView instanceof ViewClass) view = view.params.linksView;\n }\n }\n 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);else view.router.navigate(url, clickedLinkData);\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};", "import History from '../../shared/history.js';\nexport default {\n name: 'history',\n static: {\n history: History\n },\n on: {\n init() {\n History.init(this);\n }\n }\n};", "import { getWindow } from 'ssr-window';\nimport { extend } from '../../shared/utils.js';\nconst SW = {\n registrations: [],\n register(path, scope) {\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 return new Promise((resolve, reject) => {\n app.serviceWorker.container.register(path, scope ? {\n scope\n } : {}).then(reg => {\n SW.registrations.push(reg);\n app.emit('serviceWorkerRegisterSuccess', reg);\n resolve(reg);\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;else if (Array.isArray(registration)) registrations = registration;else registrations = [registration];\n return Promise.all(registrations.map(reg => new Promise((resolve, reject) => {\n reg.unregister().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 }).catch(error => {\n app.emit('serviceWorkerUnregisterError', reg, error);\n reject(error);\n });\n })));\n }\n};\nexport default {\n name: 'sw',\n params: {\n serviceWorker: {\n path: undefined,\n scope: undefined\n }\n },\n create() {\n const app = this;\n const window = getWindow();\n extend(app, {\n serviceWorker: {\n container: 'serviceWorker' in window.navigator ? window.navigator.serviceWorker : undefined,\n registrations: SW.registrations,\n register: SW.register.bind(app),\n unregister: SW.unregister.bind(app)\n }\n });\n },\n on: {\n init() {\n const window = getWindow();\n if (!('serviceWorker' in window.navigator)) return;\n const app = this;\n if (app.device.cordova || window.Capacitor && window.Capacitor.isNative) return;\n if (!app.serviceWorker.container) return;\n const paths = app.params.serviceWorker.path;\n const scope = app.params.serviceWorker.scope;\n if (!paths || Array.isArray(paths) && !paths.length) return;\n const toRegister = Array.isArray(paths) ? paths : [paths];\n toRegister.forEach(path => {\n app.serviceWorker.register(path, scope);\n });\n }\n }\n};", "/* eslint-disable no-underscore-dangle */\nimport { extend } from '../../shared/utils.js';\nfunction createStore(storeParams) {\n if (storeParams === void 0) {\n storeParams = {};\n }\n const store = {\n __store: true\n };\n const originalState = {\n ...(storeParams.state || {})\n };\n const actions = {\n ...(storeParams.actions || {})\n };\n const getters = {\n ...(storeParams.getters || {})\n };\n const state = extend({}, originalState);\n let propsQueue = [];\n const gettersDependencies = {};\n const gettersCallbacks = {};\n Object.keys(getters).forEach(getterKey => {\n gettersDependencies[getterKey] = [];\n gettersCallbacks[getterKey] = [];\n });\n const getGetterValue = getterKey => {\n return getters[getterKey]({\n state: store.state\n });\n };\n const addGetterDependencies = (getterKey, deps) => {\n if (!gettersDependencies[getterKey]) gettersDependencies[getterKey] = [];\n deps.forEach(dep => {\n if (gettersDependencies[getterKey].indexOf(dep) < 0) {\n gettersDependencies[getterKey].push(dep);\n }\n });\n };\n const addGetterCallback = (getterKey, callback) => {\n if (!gettersCallbacks[getterKey]) gettersCallbacks[getterKey] = [];\n gettersCallbacks[getterKey].push(callback);\n };\n const runGetterCallbacks = stateKey => {\n const keys = Object.keys(gettersDependencies).filter(getterKey => {\n return gettersDependencies[getterKey].indexOf(stateKey) >= 0;\n });\n keys.forEach(getterKey => {\n if (!gettersCallbacks[getterKey] || !gettersCallbacks[getterKey].length) return;\n gettersCallbacks[getterKey].forEach(callback => {\n callback(getGetterValue(getterKey));\n });\n });\n };\n const removeGetterCallback = callback => {\n Object.keys(gettersCallbacks).forEach(stateKey => {\n const callbacks = gettersCallbacks[stateKey];\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 const getterValue = function (getterKey, addCallback) {\n if (addCallback === void 0) {\n addCallback = true;\n }\n if (getterKey === 'constructor') return undefined;\n propsQueue = [];\n const value = getGetterValue(getterKey);\n addGetterDependencies(getterKey, propsQueue);\n const onUpdated = callback => {\n addGetterCallback(getterKey, callback);\n };\n const obj = {\n value,\n onUpdated\n };\n if (!addCallback) {\n return obj;\n }\n const callback = v => {\n obj.value = v;\n };\n obj.__callback = callback;\n addGetterCallback(getterKey, callback);\n // eslint-disable-next-line\n return obj;\n };\n store.state = new Proxy(state, {\n set: (target, prop, value) => {\n target[prop] = value;\n runGetterCallbacks(prop);\n return true;\n },\n get: (target, prop) => {\n propsQueue.push(prop);\n return target[prop];\n }\n });\n store.getters = new Proxy(getters, {\n set: () => false,\n get: (target, prop) => {\n if (!target[prop]) {\n return undefined;\n }\n return getterValue(prop, true);\n }\n });\n store._gettersPlain = new Proxy(getters, {\n set: () => false,\n get: (target, prop) => {\n if (!target[prop]) {\n return undefined;\n }\n return getterValue(prop, false);\n }\n });\n 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,\n dispatch: store.dispatch\n }, data);\n resolve(result);\n });\n };\n return store;\n}\nexport default createStore;", "import createStore from './create-store.js';\nexport { createStore };\nexport default {\n name: 'store',\n static: {\n createStore\n },\n proto: {\n createStore\n }\n};", "import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { bindMethods } from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\nconst isCapacitor = () => {\n const window = getWindow();\n return window.Capacitor && window.Capacitor.isNative && window.Capacitor.Plugins && window.Capacitor.Plugins.StatusBar;\n};\nconst Statusbar = {\n hide() {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.hide();\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.hide();\n }\n },\n show() {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.show();\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.show();\n }\n },\n onClick() {\n const app = this;\n let pageContent;\n if ($('.popup.modal-in').length > 0) {\n // Check for opened popup\n pageContent = $('.popup.modal-in').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content');\n } else if ($('.panel.panel-in').length > 0) {\n // Check for opened panel\n pageContent = $('.panel.panel-in').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content');\n } else if ($('.views > .view.tab-active').length > 0) {\n // View in tab bar app layout\n pageContent = $('.views > .view.tab-active').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content');\n } else if ($('.views').length > 0) {\n pageContent = $('.views').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content');\n } else {\n pageContent = app.$el.children('.view').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content');\n }\n if (pageContent && pageContent.length > 0) {\n // Check for tab\n if (pageContent.hasClass('tab')) {\n pageContent = pageContent.parent('.tabs').children('.page-content.tab-active');\n }\n if (pageContent.length > 0) pageContent.scrollTop(0, 300);\n }\n },\n setTextColor(color) {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n if (color === 'white') {\n window.StatusBar.styleLightContent();\n } else {\n window.StatusBar.styleDefault();\n }\n }\n if (isCapacitor()) {\n if (color === 'white') {\n window.Capacitor.Plugins.StatusBar.setStyle({\n style: 'DARK'\n });\n } else {\n window.Capacitor.Plugins.StatusBar.setStyle({\n style: 'LIGHT'\n });\n }\n }\n },\n setBackgroundColor(color) {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.backgroundColorByHexString(color);\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.setBackgroundColor({\n color\n });\n }\n },\n isVisible() {\n const window = getWindow();\n const device = getDevice();\n return new Promise(resolve => {\n if (device.cordova && window.StatusBar) {\n resolve(window.StatusBar.isVisible);\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.getInfo().then(info => {\n resolve(info.visible);\n });\n }\n resolve(false);\n });\n },\n overlaysWebView(overlays) {\n if (overlays === void 0) {\n overlays = true;\n }\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.overlaysWebView(overlays);\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.setOverlaysWebView({\n overlay: overlays\n });\n }\n },\n init() {\n const app = this;\n const window = getWindow();\n const device = getDevice();\n const params = app.params.statusbar;\n if (!params.enabled) return;\n const isCordova = device.cordova && window.StatusBar;\n const isCap = isCapacitor();\n if (isCordova || isCap) {\n if (params.scrollTopOnClick) {\n $(window).on('statusTap', Statusbar.onClick.bind(app));\n }\n if (device.ios) {\n if (params.iosOverlaysWebView) {\n Statusbar.overlaysWebView(true);\n } else {\n Statusbar.overlaysWebView(false);\n }\n if (params.iosTextColor === 'white') {\n Statusbar.setTextColor('white');\n } else {\n Statusbar.setTextColor('black');\n }\n }\n if (device.android) {\n if (params.androidOverlaysWebView) {\n Statusbar.overlaysWebView(true);\n } else {\n Statusbar.overlaysWebView(false);\n }\n if (params.androidTextColor === 'white') {\n Statusbar.setTextColor('white');\n } else {\n Statusbar.setTextColor('black');\n }\n }\n }\n if (params.iosBackgroundColor && device.ios) {\n Statusbar.setBackgroundColor(params.iosBackgroundColor);\n }\n if (params.androidBackgroundColor && device.android) {\n Statusbar.setBackgroundColor(params.androidBackgroundColor);\n }\n }\n};\nexport default {\n name: 'statusbar',\n params: {\n statusbar: {\n enabled: true,\n scrollTopOnClick: true,\n iosOverlaysWebView: true,\n iosTextColor: 'black',\n iosBackgroundColor: null,\n androidOverlaysWebView: false,\n androidTextColor: 'black',\n androidBackgroundColor: null\n }\n },\n create() {\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};", "import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport View from './view-class.js';\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}\nexport default {\n name: 'view',\n params: {\n view: {\n init: true,\n initRouterOnTabShow: false,\n name: undefined,\n main: false,\n router: true,\n linksView: null,\n xhrCache: true,\n xhrCacheIgnore: [],\n xhrCacheIgnoreGetParameters: false,\n xhrCacheDuration: 1000 * 60 * 10,\n // Ten minutes\n componentCache: true,\n preloadPreviousPage: true,\n allowDuplicateUrls: false,\n reloadPages: false,\n reloadDetail: false,\n masterDetailBreakpoint: 0,\n masterDetailResizable: false,\n removeElements: true,\n removeElementsWithTimeout: false,\n removeElementsTimeout: 0,\n restoreScrollTopOnBack: true,\n unloadTabContent: true,\n passRouteQueryToRequest: true,\n passRouteParamsToRequest: false,\n loadInitialPage: true,\n // Swipe Back\n iosSwipeBack: true,\n iosSwipeBackAnimateShadow: true,\n iosSwipeBackAnimateOpacity: true,\n iosSwipeBackActiveArea: 30,\n iosSwipeBackThreshold: 0,\n mdSwipeBack: false,\n mdSwipeBackAnimateShadow: true,\n mdSwipeBackAnimateOpacity: false,\n mdSwipeBackActiveArea: 30,\n mdSwipeBackThreshold: 0,\n // Push State\n browserHistory: false,\n browserHistoryRoot: undefined,\n browserHistoryAnimate: true,\n browserHistoryAnimateOnLoad: false,\n browserHistorySeparator: '#!',\n browserHistoryOnLoad: true,\n browserHistoryInitialMatch: false,\n browserHistoryStoreHistory: true,\n browserHistoryTabs: 'replace',\n // Animate Pages\n animate: true,\n // iOS Dynamic Navbar\n iosDynamicNavbar: true,\n // Animate iOS Navbar Back Icon\n iosAnimateNavbarBackIcon: true,\n // Delays\n iosPageLoadDelay: 0,\n mdPageLoadDelay: 0,\n // 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};", "import $ from '../../shared/dom7.js';\nimport { bindMethods } from '../../shared/utils.js';\nimport { getSupport } from '../../shared/get-support.js';\nconst Navbar = {\n size(el) {\n const app = this;\n let $el = $(el);\n if ($el.hasClass('navbars')) {\n $el = $el.children('.navbar').each(navbarEl => {\n app.navbar.size(navbarEl);\n });\n return;\n }\n const $innerEl = $el.children('.navbar-inner');\n if (!$innerEl.length) return;\n const needCenterTitle = $innerEl.hasClass('navbar-inner-centered-title') || app.params.navbar[`${app.theme}CenterTitle`];\n const needLeftTitle = app.theme === 'ios' && !app.params.navbar[`${app.theme}CenterTitle`];\n if (!needCenterTitle && !needLeftTitle) return;\n if ($el.parents('.tab:not(.tab-active)').length > 0 || $el.parents('.popup:not(.modal-in)').length > 0) {\n return;\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 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 = navbarWidth - parseInt(navbarStyles.paddingLeft, 10) - parseInt(navbarStyles.paddingRight, 10);\n const isPrevious = $el.hasClass('navbar-previous');\n const sliding = $innerEl.hasClass('sliding');\n let router;\n let dynamicNavbar;\n if ($viewEl.length > 0 && $viewEl[0].f7View) {\n router = $viewEl[0].f7View.router;\n dynamicNavbar = router && router.dynamicNavbar;\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 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 if (isPrevious) {\n if (router && router.params.iosAnimateNavbarBackIcon) {\n const activeNavbarBackLink = $el.parent().find('.navbar-current').children('.left.sliding').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 (router && router.params.iosAnimateNavbarBackIcon && left.find('.back .icon').length > 0) {\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 = 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 ? subnavbar[0].offsetWidth : -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({\n left: `${titleLeft}px`\n });\n }\n },\n hide(el, animate, hideStatusbar, hideOnlyCurrent) {\n if (animate === void 0) {\n animate = true;\n }\n if (hideStatusbar === void 0) {\n hideStatusbar = false;\n }\n if (hideOnlyCurrent === void 0) {\n hideOnlyCurrent = false;\n }\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 ? $el.find('.navbar-current .title-large').length : $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, animate, hideOnlyCurrent) {\n if (el === void 0) {\n el = '.navbar-hidden';\n }\n if (animate === void 0) {\n animate = true;\n }\n if (hideOnlyCurrent === void 0) {\n hideOnlyCurrent = false;\n }\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.parents('.view').find('.page').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 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.eq(0).removeClass('page-with-navbar-large-collapsed').trigger('page:navbarlargeexpanded');\n app.emit('pageNavbarLargeExpanded', $pageEl[0]);\n $navbarEl.trigger('navbar:expand');\n app.emit('navbarExpand', $navbarEl[0]);\n },\n toggleLargeTitle(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 let previousScrollTop;\n let currentScrollTop;\n let scrollHeight;\n let offsetHeight;\n let reachEnd;\n let action;\n let navbarHidden;\n let navbarCollapsed;\n let navbarTitleLargeHeight;\n let navbarOffsetHeight;\n if (needCollapse || needHide && isLarge) {\n navbarTitleLargeHeight = $navbarEl.css('--f7-navbar-large-title-height');\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;else if (app.theme === 'md') navbarTitleLargeHeight = 88;\n }\n } else if ($titleLargeEl.length) {\n navbarTitleLargeHeight = $titleLargeEl[0].offsetHeight;\n } else {\n // eslint-disable-next-line\n if (app.theme === 'ios') navbarTitleLargeHeight = 52;else if (app.theme === 'md') navbarTitleLargeHeight = 88;\n }\n }\n if (needHide && isLarge) {\n navbarHideHeight += navbarTitleLargeHeight;\n }\n let scrollChanged;\n let scrollContent;\n let scrollTimeoutId;\n let touchEndTimeoutId;\n const touchSnapTimeout = 70;\n const desktopSnapTimeout = 300;\n function calcScrollableDistance() {\n $pageEl.find('.page-content').each(pageContentEl => {\n pageContentEl.f7ScrollableDistance = pageContentEl.scrollHeight - pageContentEl.offsetHeight;\n });\n }\n function snapLargeNavbar() {\n const inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded) return;\n if (!scrollContent || currentScrollTop < 0) return;\n if (currentScrollTop >= navbarTitleLargeHeight / 2 && currentScrollTop < navbarTitleLargeHeight) {\n $(scrollContent).scrollTop(navbarTitleLargeHeight, 100);\n } else if (currentScrollTop < navbarTitleLargeHeight) {\n $(scrollContent).scrollTop(0, 200);\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 function handleNavbarTransparent() {\n const isHidden = $navbarEl.hasClass('navbar-hidden') || $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 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 $navbarEl.find('.navbar-bg, .title').css('opacity', opacity);\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 let previousCollapseProgress = null;\n let collapseProgress = null;\n function handleLargeNavbarCollapse(pageContentEl) {\n const isHidden = $navbarEl.hasClass('navbar-hidden') || $navbarEl.parent('.navbars').hasClass('navbar-hidden');\n if (isHidden) return;\n const isLargeTransparent = $navbarEl.hasClass('navbar-large-transparent') || $navbarEl.hasClass('navbar-large') && $navbarEl.hasClass('navbar-transparent');\n previousCollapseProgress = collapseProgress;\n const scrollableDistance = Math.min(navbarTitleLargeHeight, pageContentEl.f7ScrollableDistance || navbarTitleLargeHeight);\n collapseProgress = Math.min(Math.max(currentScrollTop / scrollableDistance, 0), 1);\n const previousCollapseWasInMiddle = 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 const $bgEl = $navbarEl.find('.navbar-bg');\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 (collapseProgress === 0 && navbarCollapsed || collapseProgress === 0 && previousCollapseWasInMiddle || collapseProgress === 1 && !navbarCollapsed || collapseProgress === 1 && previousCollapseWasInMiddle) {\n if (app.theme === 'md') {\n $navbarEl.find('.navbar-inner').css('overflow', '');\n }\n $navbarEl.find('.title').css('opacity', '');\n $navbarEl.find('.title-large-text, .subnavbar').css('transform', '');\n $navbarEl.find('.title-large-text').css('opacity', '');\n if (isLargeTransparent) {\n $bgEl.css('opacity', '');\n }\n $bgEl.css('transform', '');\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', -0.5 + collapseProgress * 1.5);\n $navbarEl.find('.title-large-text, .subnavbar').css('transform', `translate3d(0px, ${-1 * collapseProgress * navbarTitleLargeHeight}px, 0)`);\n $navbarEl.find('.title-large-text').css('opacity', 1 - collapseProgress * 2);\n if (isLargeTransparent) {\n $bgEl.css('opacity', collapseProgress);\n }\n $bgEl.css('transform', `translate3d(0px, ${-1 * collapseProgress * navbarTitleLargeHeight}px, 0)`);\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 function handleTitleHideShow() {\n if ($pageEl.hasClass('page-with-card-opened')) return;\n scrollHeight = scrollContent.scrollHeight;\n offsetHeight = scrollContent.offsetHeight;\n reachEnd = currentScrollTop + offsetHeight >= scrollHeight;\n navbarHidden = $navbarEl.hasClass('navbar-hidden') || $navbarEl.parent('.navbars').hasClass('navbar-hidden');\n 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 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 function handleScroll(e) {\n scrollContent = this;\n if (e && e.target && e.target !== scrollContent) {\n return;\n }\n currentScrollTop = scrollContent.scrollTop;\n scrollChanged = currentScrollTop;\n if (needCollapse) {\n handleLargeNavbarCollapse(scrollContent);\n } else if (needTransparent) {\n handleNavbarTransparent();\n }\n if ($pageEl.hasClass('page-previous')) return;\n if (needHide) {\n handleTitleHideShow();\n }\n }\n function handeTouchStart() {\n scrollChanged = false;\n }\n function handleTouchEnd() {\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n touchEndTimeoutId = setTimeout(() => {\n if (scrollChanged !== false) {\n if (needTransparent && !needCollapse) {\n snapTransparentNavbar();\n } else {\n snapLargeNavbar();\n }\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n }\n }, touchSnapTimeout);\n }\n $pageEl.on('scroll', '.page-content', handleScroll, true);\n if (support.touch && (needCollapse && snapPageScrollToLargeTitle || needTransparent && snapPageScrollToTransparentNavbar)) {\n app.on('touchstart:passive', handeTouchStart);\n app.on('touchend:passive', handleTouchEnd);\n }\n calcScrollableDistance();\n if (needCollapse || needTransparent) {\n $pageEl.find('.page-content').each(pageContentEl => {\n if (pageContentEl.scrollTop > 0) handleScroll.call(pageContentEl);\n });\n }\n app.on('resize', calcScrollableDistance);\n $pageEl[0].f7DetachNavbarScrollHandlers = function f7DetachNavbarScrollHandlers() {\n app.off('resize', calcScrollableDistance);\n delete $pageEl[0].f7DetachNavbarScrollHandlers;\n $pageEl.off('scroll', '.page-content', handleScroll, true);\n if (support.touch && (needCollapse && snapPageScrollToLargeTitle || needTransparent && snapPageScrollToTransparentNavbar)) {\n app.off('touchstart:passive', handeTouchStart);\n app.off('touchend:passive', handleTouchEnd);\n }\n };\n }\n};\nexport default {\n name: 'navbar',\n create() {\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 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 (app.params.navbar.hideOnPageScroll || page.$el.find('.hide-navbar-on-scroll').length || page.$el.hasClass('hide-navbar-on-scroll') || page.$el.find('.hide-bars-on-scroll').length || page.$el.hasClass('hide-bars-on-scroll')) {\n if (page.$el.find('.keep-navbar-on-scroll').length || page.$el.hasClass('keep-navbar-on-scroll') || page.$el.find('.keep-bars-on-scroll').length || page.$el.hasClass('keep-bars-on-scroll')) {\n needHideOnScrollHandler = false;\n } else {\n needHideOnScrollHandler = true;\n }\n }\n if (needCollapseOnScrollHandler || needHideOnScrollHandler || needTransparentOnScroll) {\n app.navbar.initNavbarOnScroll(page.el, $navbarEl[0], needHideOnScrollHandler, needCollapseOnScrollHandler, needTransparentOnScroll);\n }\n },\n 'panelOpen panelSwipeOpen modalOpen': function onPanelModalOpen(instance) {\n const app = this;\n instance.$el.find('.navbar:not(.navbar-previous)').each(navbarEl => {\n app.navbar.size(navbarEl);\n });\n },\n tabShow(tabEl) {\n const app = this;\n $(tabEl).find('.navbar:not(.navbar-previous)').each(navbarEl => {\n app.navbar.size(navbarEl);\n });\n }\n },\n clicks: {\n '.navbar .title': function onTitleClick($clickedEl, clickedData, e) {\n const app = this;\n if (!app.params.navbar.scrollTopOnTitleClick) return;\n if ($(e.target).closest('a, button').length > 0) {\n return;\n }\n let $pageContentEl;\n\n // Find active page\n const $navbarEl = $clickedEl.parents('.navbar');\n const $navbarsEl = $navbarEl.parents('.navbars');\n\n // Static Layout\n $pageContentEl = $navbarEl.parents('.page-content');\n 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').length > 0) {\n $pageContentEl = $navbarsEl.nextAll('.page-current').find('.page-content');\n }\n }\n // Through Layout\n if ($pageContentEl.length === 0) {\n if ($navbarEl.nextAll('.page-current').length > 0) {\n $pageContentEl = $navbarEl.nextAll('.page-current').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};", "import $ from '../../shared/dom7.js';\nimport { nextFrame, bindMethods } from '../../shared/utils.js';\nconst Toolbar = {\n setHighlight(tabbarEl) {\n const app = this;\n const $tabbarEl = $(tabbarEl);\n if (app.theme === 'ios' && !$tabbarEl.hasClass('tabbar-highlight')) return;\n if ($tabbarEl.length === 0 || !($tabbarEl.hasClass('tabbar') || $tabbarEl.hasClass('tabbar-icons'))) return;\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 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 const $activeLink = $tabbarEl.find('.tab-link-active');\n let highlightWidth;\n let highlightTranslate;\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 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) {\n if (animate === void 0) {\n animate = true;\n }\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) {\n if (animate === void 0) {\n animate = true;\n }\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-icons');\n }\n if ($toolbarEl.length === 0) {\n return;\n }\n let previousScrollTop;\n let currentScrollTop;\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 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 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 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-icons');\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-icons').each(tabbarEl => {\n app.toolbar.init(tabbarEl);\n });\n if (app.params.toolbar.hideOnPageScroll || page.$el.find('.hide-toolbar-on-scroll').length || page.$el.hasClass('hide-toolbar-on-scroll') || page.$el.find('.hide-bars-on-scroll').length || page.$el.hasClass('hide-bars-on-scroll')) {\n if (page.$el.find('.keep-toolbar-on-scroll').length || page.$el.hasClass('keep-toolbar-on-scroll') || page.$el.find('.keep-bars-on-scroll').length || page.$el.hasClass('keep-bars-on-scroll')) {\n return;\n }\n app.toolbar.initToolbarOnScroll(page.el);\n }\n },\n init() {\n const app = this;\n app.$el.find('.tabbar, .tabbar-icons').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};", "import $ from '../../shared/dom7.js';\nexport default {\n name: 'subnavbar',\n on: {\n pageInit(page) {\n if (page.$navbarEl && page.$navbarEl.length && page.$navbarEl.find('.subnavbar').length) {\n page.$el.addClass('page-with-subnavbar');\n }\n const $innerSubnavbars = page.$el.find('.subnavbar').filter(subnavbarEl => {\n return $(subnavbarEl).parents('.page')[0] === page.$el[0];\n });\n if ($innerSubnavbars.length) {\n page.$el.addClass('page-with-subnavbar');\n }\n }\n }\n};", "import $ from '../../shared/dom7.js';\nexport default class TouchRipple {\n constructor(app, $el, x, y) {\n const ripple = this;\n if (!$el) return undefined;\n const {\n left,\n top,\n width,\n height\n } = $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 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 if (!isInset && $el.css('overflow') === 'hidden') {\n const distanceFromCenter = ((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 * 2})`;\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 ripple.$rippleWaveEl = $(`<div class=\"ripple-wave${isInset ? ' ripple-wave-inset' : ''}\" style=\"width: ${diameter}px; height: ${diameter}px; margin-top:-${diameter / 2}px; margin-left:-${diameter / 2}px; left:${center.x}px; top:${center.y}px; --f7-ripple-transform: ${ripple.rippleTransform}\"></div>`);\n $el.prepend(ripple.$rippleWaveEl);\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 return ripple;\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 out() {\n const ripple = this;\n const {\n $rippleWaveEl\n } = this;\n clearTimeout(ripple.removeTimeout);\n $rippleWaveEl.addClass('ripple-wave-out');\n ripple.removeTimeout = setTimeout(() => {\n ripple.destroy();\n }, 300);\n $rippleWaveEl.animationEnd(() => {\n clearTimeout(ripple.removeTimeout);\n ripple.destroy();\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}", "import TouchRipple from './touch-ripple-class.js';\nexport default {\n name: 'touch-ripple',\n static: {\n TouchRipple\n },\n create() {\n const app = this;\n app.touchRipple = {\n create() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return new TouchRipple(...args);\n }\n };\n }\n};", "import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\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 const modal = this;\n const defaults = {};\n\n // Extend defaults with modules params\n modal.useModulesParams(defaults);\n modal.params = extend(defaults, params);\n modal.opened = false;\n let $containerEl = modal.params.containerEl ? $(modal.params.containerEl).eq(0) : app.$el;\n if (!$containerEl.length) $containerEl = app.$el;\n modal.$containerEl = $containerEl;\n modal.containerEl = $containerEl[0];\n\n // Install Modules\n modal.useModules();\n return this;\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 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 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 onClosed() {\n const modal = this;\n if (!modal.type || !modal.$el) return;\n modal.$el.removeClass('modal-out');\n modal.$el.hide();\n if (modal.params.backdrop && (modal.params.backdropUnique || modal.forceBackdropUnique) && modal.$backdropEl) {\n modal.$backdropEl.remove();\n }\n modal.$el.trigger(`modal:closed ${modal.type.toLowerCase()}:closed`);\n modal.emit(`local::closed modalClosed ${modal.type}Closed`, modal);\n }\n open(animateModal, force) {\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;else if (typeof modal.params.animate !== 'undefined') {\n animate = modal.params.animate;\n }\n if (!$el || $el.hasClass('modal-in')) {\n if (animateModal === false && $el[0] && type !== 'dialog') {\n $el[0].style.display = 'block';\n }\n if (!force) return modal;\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 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 if (modal.params.backdrop && (modal.params.backdropUnique || modal.forceBackdropUnique) && modal.$backdropEl) {\n modal.$backdropEl.insertBefore($el);\n }\n\n /* eslint no-underscore-dangle: [\"error\", { \"allow\": [\"_clientLeft\"] }] */\n modal._clientLeft = $el[0].clientLeft;\n\n // Modal\n function transitionEnd() {\n if ($el.hasClass('modal-out')) {\n modal.onClosed();\n } else if ($el.hasClass('modal-in')) {\n modal.onOpened();\n }\n }\n if (animate) {\n if ($backdropEl) {\n $backdropEl.removeClass('not-animated');\n $backdropEl.addClass('backdrop-in');\n }\n $el.animationEnd(() => {\n transitionEnd();\n });\n $el.transitionEnd(() => {\n transitionEnd();\n });\n $el.removeClass('modal-out not-animated').addClass('modal-in');\n modal.onOpen();\n } else {\n if ($backdropEl) {\n $backdropEl.addClass('backdrop-in not-animated');\n }\n $el.removeClass('modal-out').addClass('modal-in not-animated');\n modal.onOpen();\n modal.onOpened();\n }\n return modal;\n }\n close(animateModal) {\n const modal = this;\n const $el = modal.$el;\n const $backdropEl = modal.$backdropEl;\n let animate = true;\n if (typeof animateModal !== 'undefined') animate = animateModal;else if (typeof modal.params.animate !== 'undefined') {\n animate = modal.params.animate;\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.prevAll('.popup.modal-in').add(modal.$el.nextAll('.popup.modal-in')).each(popupEl => {\n const popupInstance = popupEl.f7Modal;\n if (!popupInstance) return;\n if (popupInstance.params.closeByBackdropClick && popupInstance.params.backdrop && popupInstance.backdropEl === modal.backdropEl) {\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 if (modal.type === 'dialog') {\n clearDialogsQueue();\n }\n return modal;\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}\nexport default Modal;", "import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Modal from './modal-class.js';\nclass CustomModal extends Modal {\n constructor(app, params) {\n const extendedParams = extend({\n backdrop: true,\n closeByBackdropClick: true,\n on: {}\n }, params);\n\n // Extends with open/close Modal methods;\n super(app, extendedParams);\n const customModal = this;\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 if ($el && $el.length > 0 && $el[0].f7Modal) {\n return $el[0].f7Modal;\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 function handleClick(e) {\n if (!customModal || customModal.destroyed) return;\n if ($backdropEl && e.target === $backdropEl[0]) {\n customModal.close();\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 extend(customModal, {\n app,\n $el,\n el: $el[0],\n $backdropEl,\n backdropEl: $backdropEl && $backdropEl[0],\n type: 'customModal'\n });\n $el[0].f7Modal = customModal;\n return customModal;\n }\n}\nexport default CustomModal;", "import Modal from './modal-class.js';\nimport CustomModal from './custom-modal-class.js';\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};"],
"mappings": "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",
"names": ["id", "value", "window", "document", "html", "attr", "dataset", "transform", "parents", "data", "styles", "scrollTop", "scrollLeft", "prop", "index", "text", "parent", "next", "prev", "closest", "children", "animate", "extend", "isObject", "stop", "delinearized", "Variant", "value", "index", "prop", "index", "window", "parents", "value", "prop", "isObject", "extend", "window", "document", "support", "window", "document", "parents", "index", "data", "parents", "extend", "extend", "animate", "Framework7", "window", "document", "children", "attr", "support", "extend", "document", "window", "html", "id", "document", "html", "offset", "width", "height", "window", "document", "support", "window", "document", "parents", "isTouchMoveActivable", "extend", "value", "_a", "index", "result", "data", "index", "animate", "window", "extend", "document", "index", "support", "transition", "styles", "extend", "next", "document", "extend", "index", "transition", "extend", "extend", "on", "once", "document", "extend", "transition", "extend", "document", "transition", "offset", "value", "index", "on", "once", "window", "support", "extend", "width", "extend", "window", "history_default", "window", "extend", "extend", "value", "callback", "prop", "data", "window", "extend", "animate", "support", "animate", "width", "height", "extend", "document", "animate", "transitionEnd", "extend"]
}