| 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 : C:/framework7/node_modules/framework7/ |
Upload File : |
{"version":3,"file":"framework7-bundle.js.map","sources":["../../node_modules/ssr-window/ssr-window.esm.js","../../node_modules/dom7/dom7.esm.js","../../src/core/shared/dom7.js","../../src/core/shared/material-color-utils.js","../../src/core/shared/material-colors.js","../../src/core/shared/utils.js","../../src/core/shared/get-support.js","../../src/core/shared/get-device.js","../../src/core/shared/events-class.js","../../src/core/shared/class.js","../../src/core/shared/constructor-methods.js","../../src/core/shared/modal-methods.js","../../src/core/components/app/load-module.js","../../src/core/shared/$jsx.js","../../src/core/components/app/app-class.js","../../src/core/modules/device/device.js","../../src/core/modules/support/support.js","../../src/core/modules/utils/utils.js","../../src/core/modules/resize/resize.js","../../src/core/modules/touch/touch.js","../../node_modules/path-to-regexp/dist.es2015/index.js","../../src/core/shared/history.js","../../src/core/modules/router/swipe-back.js","../../src/core/modules/router/redirect.js","../../src/core/modules/router/process-route-queue.js","../../src/core/modules/router/app-router-check.js","../../src/core/modules/router/async-component.js","../../src/core/modules/router/navigate.js","../../src/core/modules/router/tab.js","../../src/core/modules/router/modal.js","../../src/core/modules/router/back.js","../../src/core/modules/router/clear-previous-history.js","../../src/core/modules/router/router-class.js","../../src/core/modules/router/router.js","../../src/core/components/view/resizable-view.js","../../src/core/components/view/view-class.js","../../src/core/modules/clicks/clicks.js","../../src/core/modules/router/component-loader.js","../../node_modules/htm/dist/htm.mjs","../../src/core/modules/component/$h.js","../../src/core/modules/component/snabbdom/vnode.js","../../src/core/modules/component/snabbdom/is.js","../../src/core/modules/component/snabbdom/h.js","../../src/core/modules/component/custom-components.js","../../src/core/modules/component/vdom.js","../../src/core/modules/component/snabbdom/htmldomapi.js","../../src/core/modules/component/snabbdom/thunk.js","../../src/core/modules/component/snabbdom/snabbdom.js","../../src/core/modules/component/snabbdom/modules/attributes.js","../../src/core/modules/component/snabbdom/modules/props.js","../../src/core/modules/component/snabbdom/modules/style.js","../../src/core/modules/component/eventslisteners.js","../../src/core/modules/component/patch.js","../../src/core/modules/component/$jsx.js","../../src/core/modules/component/component-class.js","../../src/core/modules/component/parse-component.js","../../src/core/modules/component/component.js","../../src/core/modules/history/history.js","../../src/core/modules/service-worker/service-worker.js","../../src/core/modules/store/create-store.js","../../src/core/modules/store/store.js","../../src/core/components/statusbar/statusbar.js","../../src/core/components/view/view.js","../../src/core/components/navbar/navbar.js","../../src/core/components/toolbar/toolbar.js","../../src/core/components/subnavbar/subnavbar.js","../../src/core/components/touch-ripple/touch-ripple-class.js","../../src/core/components/touch-ripple/touch-ripple.js","../../src/core/components/modal/modal-class.js","../../src/core/components/modal/custom-modal-class.js","../../src/core/components/modal/modal.js","../../src/core/components/dialog/dialog-class.js","../../src/core/components/dialog/dialog.js","../../src/core/components/popup/popup-class.js","../../src/core/components/popup/popup.js","../../src/core/components/login-screen/login-screen-class.js","../../src/core/components/login-screen/login-screen.js","../../src/core/components/popover/popover-class.js","../../src/core/components/popover/popover.js","../../src/core/components/actions/actions-class.js","../../src/core/components/actions/actions.js","../../src/core/components/sheet/sheet-class.js","../../src/core/components/sheet/sheet.js","../../src/core/components/toast/toast-class.js","../../src/core/components/toast/toast.js","../../src/core/components/preloader/preloader.js","../../src/core/components/progressbar/progressbar.js","../../src/core/components/sortable/sortable.js","../../src/core/components/swipeout/swipeout.js","../../src/core/components/accordion/accordion.js","../../src/core/components/contacts-list/contacts-list.js","../../src/core/components/virtual-list/virtual-list-class.js","../../src/core/components/virtual-list/virtual-list.js","../../src/core/components/list-index/list-index-class.js","../../src/core/components/list-index/list-index.js","../../src/core/components/timeline/timeline.js","../../src/core/components/tabs/tabs.js","../../src/core/components/panel/swipe-panel.js","../../src/core/components/panel/resizable-panel.js","../../src/core/components/panel/panel-class.js","../../src/core/components/panel/panel.js","../../src/core/components/card/card.js","../../src/core/components/chip/chip.js","../../src/core/components/form/form.js","../../src/core/components/input/input.js","../../src/core/components/checkbox/checkbox.js","../../src/core/components/radio/radio.js","../../src/core/components/toggle/toggle-class.js","../../src/core/components/toggle/toggle.js","../../src/core/components/range/range-class.js","../../src/core/components/range/range.js","../../src/core/components/stepper/stepper-class.js","../../src/core/components/stepper/stepper.js","../../src/core/components/searchbar/remove-diacritics.js","../../src/core/components/smart-select/smart-select-class.js","../../src/core/components/smart-select/smart-select.js","../../src/core/components/grid/grid.js","../../src/core/components/calendar/calendar-class.js","../../src/core/components/calendar/calendar.js","../../src/core/components/picker/picker-column.js","../../src/core/components/picker/picker-class.js","../../src/core/components/picker/picker.js","../../src/core/components/infinite-scroll/infinite-scroll.js","../../src/core/components/pull-to-refresh/pull-to-refresh-class.js","../../src/core/components/pull-to-refresh/pull-to-refresh.js","../../src/core/components/data-table/data-table-class.js","../../src/core/components/data-table/data-table.js","../../src/core/components/fab/fab.js","../../src/core/components/searchbar/searchbar-class.js","../../src/core/components/searchbar/searchbar.js","../../src/core/components/messages/messages-class.js","../../src/core/components/messages/messages.js","../../src/core/components/messagebar/messagebar-class.js","../../src/core/components/messagebar/messagebar.js","../../node_modules/swiper/shared/ssr-window.esm.mjs","../../node_modules/swiper/shared/utils.mjs","../../node_modules/swiper/shared/swiper-core.mjs","../../node_modules/swiper/modules/virtual.mjs","../../node_modules/swiper/modules/keyboard.mjs","../../node_modules/swiper/modules/mousewheel.mjs","../../node_modules/swiper/shared/create-element-if-not-defined.mjs","../../node_modules/swiper/modules/navigation.mjs","../../node_modules/swiper/shared/classes-to-selector.mjs","../../node_modules/swiper/modules/pagination.mjs","../../node_modules/swiper/modules/scrollbar.mjs","../../node_modules/swiper/modules/parallax.mjs","../../node_modules/swiper/modules/zoom.mjs","../../node_modules/swiper/modules/controller.mjs","../../node_modules/swiper/modules/a11y.mjs","../../node_modules/swiper/modules/history.mjs","../../node_modules/swiper/modules/hash-navigation.mjs","../../node_modules/swiper/modules/autoplay.mjs","../../node_modules/swiper/modules/thumbs.mjs","../../node_modules/swiper/modules/free-mode.mjs","../../node_modules/swiper/modules/grid.mjs","../../node_modules/swiper/modules/manipulation.mjs","../../node_modules/swiper/shared/effect-init.mjs","../../node_modules/swiper/shared/effect-target.mjs","../../node_modules/swiper/shared/effect-virtual-transition-end.mjs","../../node_modules/swiper/modules/effect-fade.mjs","../../node_modules/swiper/modules/effect-cube.mjs","../../node_modules/swiper/shared/create-shadow.mjs","../../node_modules/swiper/modules/effect-flip.mjs","../../node_modules/swiper/modules/effect-coverflow.mjs","../../node_modules/swiper/modules/effect-creative.mjs","../../node_modules/swiper/modules/effect-cards.mjs","../../node_modules/swiper/swiper-bundle.mjs","../../node_modules/swiper/shared/update-swiper.mjs","../../node_modules/swiper/shared/get-element-params.mjs","../../node_modules/swiper/swiper-element-bundle.mjs","../../src/core/components/swiper/swiper.js","../../src/core/components/photo-browser/photo-browser-class.js","../../src/core/components/photo-browser/photo-browser.js","../../src/core/components/notification/notification-class.js","../../src/core/components/notification/notification.js","../../src/core/components/autocomplete/autocomplete-class.js","../../src/core/components/autocomplete/autocomplete.js","../../src/core/components/tooltip/tooltip-class.js","../../src/core/components/tooltip/tooltip.js","../../src/core/components/gauge/gauge-class.js","../../src/core/components/gauge/gauge.js","../../src/core/components/skeleton/skeleton.js","../../src/core/components/color-picker/modules/alpha-slider.js","../../src/core/components/color-picker/modules/current-color.js","../../src/core/components/color-picker/modules/hex.js","../../src/core/components/color-picker/modules/hsb-sliders.js","../../src/core/components/color-picker/modules/hue-slider.js","../../src/core/components/color-picker/modules/brightness-slider.js","../../src/core/components/color-picker/modules/palette.js","../../src/core/components/color-picker/modules/initial-current-colors.js","../../src/core/components/color-picker/modules/rgb-bars.js","../../src/core/components/color-picker/modules/rgb-sliders.js","../../src/core/components/color-picker/modules/sb-spectrum.js","../../src/core/components/color-picker/modules/hs-spectrum.js","../../src/core/components/color-picker/modules/wheel.js","../../src/core/components/color-picker/color-picker-class.js","../../src/core/components/color-picker/color-picker.js","../../src/core/components/treeview/treeview.js","../../src/core/components/text-editor/text-editor-class.js","../../src/core/components/text-editor/text-editor.js","../../src/core/components/pie-chart/pie-chart-class.js","../../src/core/components/pie-chart/pie-chart.js","../../src/core/components/area-chart/area-chart-class.js","../../src/core/components/area-chart/area-chart.js","../../src/core/components/breadcrumbs/breadcrumbs.js","../../src/core/components/typography/typography.js","../../src/core/framework7.js"],"sourcesContent":["/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.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","// eslint-disable-next-line\nimport * as methods from 'dom7';\n\nObject.keys(methods).forEach((methodName) => {\n if (methodName === '$') return;\n methods.$.fn[methodName] = methods[methodName];\n});\n\nexport default methods.$;\n","/* eslint-disable */\nfunction signum(num) {\n return num < 0 ? -1 : 0 === num ? 0 : 1;\n}\n\nfunction lerp(start, stop, amount) {\n return (1 - amount) * start + amount * stop;\n}\n\nfunction clampInt(min, max, input) {\n return input < min ? min : input > max ? max : input;\n}\n\nfunction clampDouble(min, max, input) {\n return input < min ? min : input > max ? max : input;\n}\n\nfunction sanitizeDegreesDouble(degrees) {\n return (degrees %= 360) < 0 && (degrees += 360), degrees;\n}\n\nfunction rotationDirection(from, to) {\n return sanitizeDegreesDouble(to - from) <= 180 ? 1 : -1;\n}\n\nfunction differenceDegrees(a, b) {\n return 180 - Math.abs(Math.abs(a - b) - 180);\n}\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}\n\nconst SRGB_TO_XYZ = [ [ .41233895, .35762064, .18051042 ], [ .2126, .7152, .0722 ], [ .01932141, .11916382, .95034478 ] ], XYZ_TO_SRGB = [ [ 3.2413774792388685, -1.5376652402851851, -.49885366846268053 ], [ -.9691452513005321, 1.8758853451067872, .04156585616912061 ], [ .05562093689691305, -.20395524564742123, 1.0571799111220335 ] ], WHITE_POINT_D65 = [ 95.047, 100, 108.883 ];\n\nfunction argbFromRgb(red, green, blue) {\n return (255 << 24 | (255 & red) << 16 | (255 & green) << 8 | 255 & blue) >>> 0;\n}\n\nfunction argbFromLinrgb(linrgb) {\n return argbFromRgb(delinearized(linrgb[0]), delinearized(linrgb[1]), delinearized(linrgb[2]));\n}\n\nfunction redFromArgb(argb) {\n return argb >> 16 & 255;\n}\n\nfunction greenFromArgb(argb) {\n return argb >> 8 & 255;\n}\n\nfunction blueFromArgb(argb) {\n return 255 & argb;\n}\n\nfunction argbFromXyz(x, y, z) {\n const matrix = XYZ_TO_SRGB, linearR = matrix[0][0] * x + matrix[0][1] * y + matrix[0][2] * z, linearG = matrix[1][0] * x + matrix[1][1] * y + matrix[1][2] * z, linearB = matrix[2][0] * x + matrix[2][1] * y + matrix[2][2] * z;\n return argbFromRgb(delinearized(linearR), delinearized(linearG), delinearized(linearB));\n}\n\nfunction xyzFromArgb(argb) {\n return matrixMultiply([ linearized(redFromArgb(argb)), linearized(greenFromArgb(argb)), linearized(blueFromArgb(argb)) ], SRGB_TO_XYZ);\n}\n\nfunction argbFromLstar(lstar) {\n const component = delinearized(yFromLstar(lstar));\n return argbFromRgb(component, component, component);\n}\n\nfunction lstarFromArgb(argb) {\n return 116 * labF(xyzFromArgb(argb)[1] / 100) - 16;\n}\n\nfunction yFromLstar(lstar) {\n return 100 * labInvf((lstar + 16) / 116);\n}\n\nfunction lstarFromY(y) {\n return 116 * labF(y / 100) - 16;\n}\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}\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, \n clampInt(0, 255, Math.round(255 * delinearized));\n}\n\nfunction whitePointD65() {\n return WHITE_POINT_D65;\n}\n\nfunction labF(t) {\n return t > 216 / 24389 ? Math.pow(t, 1 / 3) : (903.2962962962963 * t + 16) / 116;\n}\n\nfunction labInvf(ft) {\n const ft3 = ft * ft * ft;\n return ft3 > 216 / 24389 ? ft3 : (116 * ft - 16) / 903.2962962962963;\n}\n\nclass ViewingConditions {\n static make(whitePoint = whitePointD65(), adaptingLuminance = 200 / Math.PI * yFromLstar(50) / 100, backgroundLstar = 50, surround = 2, discountingIlluminant = !1) {\n const xyz = whitePoint, rW = .401288 * xyz[0] + .650173 * xyz[1] + -.051461 * xyz[2], gW = -.250268 * xyz[0] + 1.204414 * xyz[1] + .045854 * xyz[2], bW = -.002079 * xyz[0] + .048952 * xyz[1] + .953127 * xyz[2], f = .8 + surround / 10, 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, rgbD = [ d * (100 / rW) + 1 - d, d * (100 / gW) + 1 - d, d * (100 / bW) + 1 - d ], k = 1 / (5 * adaptingLuminance + 1), k4 = k * k * k * k, k4F = 1 - k4, fl = k4 * adaptingLuminance + .1 * k4F * k4F * Math.cbrt(5 * adaptingLuminance), n = yFromLstar(backgroundLstar) / whitePoint[1], z = 1.48 + Math.sqrt(n), nbb = .725 / Math.pow(n, .2), ncb = nbb, 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) ], 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, \n this.rgbD = rgbD, this.fl = fl, this.fLRoot = fLRoot, this.z = z;\n }\n}\n\nViewingConditions.DEFAULT = ViewingConditions.make();\n\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, \n this.jstar = jstar, this.astar = astar, this.bstar = bstar;\n }\n distance(other) {\n const dJ = this.jstar - other.jstar, dA = this.astar - other.astar, dB = this.bstar - other.bstar, 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, blue = 255 & argb, redL = linearized((16711680 & argb) >> 16), greenL = linearized(green), blueL = linearized(blue), x = .41233895 * redL + .35762064 * greenL + .18051042 * blueL, y = .2126 * redL + .7152 * greenL + .0722 * blueL, z = .01932141 * redL + .11916382 * greenL + .95034478 * blueL, rC = .401288 * x + .650173 * y - .051461 * z, gC = -.250268 * x + 1.204414 * y + .045854 * z, bC = -.002079 * x + .048952 * y + .953127 * z, rD = viewingConditions.rgbD[0] * rC, gD = viewingConditions.rgbD[1] * gC, bD = viewingConditions.rgbD[2] * bC, rAF = Math.pow(viewingConditions.fl * Math.abs(rD) / 100, .42), gAF = Math.pow(viewingConditions.fl * Math.abs(gD) / 100, .42), bAF = Math.pow(viewingConditions.fl * Math.abs(bD) / 100, .42), rA = 400 * signum(rD) * rAF / (rAF + 27.13), gA = 400 * signum(gD) * gAF / (gAF + 27.13), bA = 400 * signum(bD) * bAF / (bAF + 27.13), a = (11 * rA + -12 * gA + bA) / 11, b = (rA + gA - 2 * bA) / 9, u = (20 * rA + 20 * gA + 21 * bA) / 20, p2 = (40 * rA + 20 * gA + bA) / 20, atanDegrees = 180 * Math.atan2(b, a) / Math.PI, hue = atanDegrees < 0 ? atanDegrees + 360 : atanDegrees >= 360 ? atanDegrees - 360 : atanDegrees, hueRadians = hue * Math.PI / 180, ac = p2 * viewingConditions.nbb, j = 100 * Math.pow(ac / viewingConditions.aw, viewingConditions.c * viewingConditions.z), q = 4 / viewingConditions.c * Math.sqrt(j / 100) * (viewingConditions.aw + 4) * viewingConditions.fLRoot, huePrime = hue < 20.14 ? hue + 360 : hue, 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), alpha = Math.pow(t, .9) * Math.pow(1.64 - Math.pow(.29, viewingConditions.n), .73), c = alpha * Math.sqrt(j / 100), m = c * viewingConditions.fLRoot, s = 50 * Math.sqrt(alpha * viewingConditions.c / (viewingConditions.aw + 4)), jstar = (1 + 100 * .007) * j / (1 + .007 * j), mstar = 1 / .0228 * Math.log(1 + .0228 * m), astar = mstar * Math.cos(hueRadians), 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, m = c * viewingConditions.fLRoot, alpha = c / Math.sqrt(j / 100), s = 50 * Math.sqrt(alpha * viewingConditions.c / (viewingConditions.aw + 4)), hueRadians = h * Math.PI / 180, jstar = (1 + 100 * .007) * j / (1 + .007 * j), mstar = 1 / .0228 * Math.log(1 + .0228 * m), astar = mstar * Math.cos(hueRadians), 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, b = bstar, m = Math.sqrt(a * a + b * b), 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), t = Math.pow(alpha / Math.pow(1.64 - Math.pow(.29, viewingConditions.n), .73), 1 / .9), hRad = this.hue * Math.PI / 180, eHue = .25 * (Math.cos(hRad + 2) + 3.8), ac = viewingConditions.aw * Math.pow(this.j / 100, 1 / viewingConditions.c / viewingConditions.z), p1 = eHue * (5e4 / 13) * viewingConditions.nc * viewingConditions.ncb, p2 = ac / viewingConditions.nbb, hSin = Math.sin(hRad), hCos = Math.cos(hRad), gamma = 23 * (p2 + .305) * t / (23 * p1 + 11 * t * hCos + 108 * t * hSin), a = gamma * hCos, b = gamma * hSin, rA = (460 * p2 + 451 * a + 288 * b) / 1403, gA = (460 * p2 - 891 * a - 261 * b) / 1403, bA = (460 * p2 - 220 * a - 6300 * b) / 1403, rCBase = Math.max(0, 27.13 * Math.abs(rA) / (400 - Math.abs(rA))), rC = signum(rA) * (100 / viewingConditions.fl) * Math.pow(rCBase, 1 / .42), gCBase = Math.max(0, 27.13 * Math.abs(gA) / (400 - Math.abs(gA))), gC = signum(gA) * (100 / viewingConditions.fl) * Math.pow(gCBase, 1 / .42), bCBase = Math.max(0, 27.13 * Math.abs(bA) / (400 - Math.abs(bA))), bC = signum(bA) * (100 / viewingConditions.fl) * Math.pow(bCBase, 1 / .42), rF = rC / viewingConditions.rgbD[0], gF = gC / viewingConditions.rgbD[1], 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, gC = -.250268 * x + 1.204414 * y + .045854 * z, bC = -.002079 * x + .048952 * y + .953127 * z, rD = viewingConditions.rgbD[0] * rC, gD = viewingConditions.rgbD[1] * gC, bD = viewingConditions.rgbD[2] * bC, rAF = Math.pow(viewingConditions.fl * Math.abs(rD) / 100, .42), gAF = Math.pow(viewingConditions.fl * Math.abs(gD) / 100, .42), bAF = Math.pow(viewingConditions.fl * Math.abs(bD) / 100, .42), rA = 400 * signum(rD) * rAF / (rAF + 27.13), gA = 400 * signum(gD) * gAF / (gAF + 27.13), bA = 400 * signum(bD) * bAF / (bAF + 27.13), a = (11 * rA + -12 * gA + bA) / 11, b = (rA + gA - 2 * bA) / 9, u = (20 * rA + 20 * gA + 21 * bA) / 20, p2 = (40 * rA + 20 * gA + bA) / 20, atanDegrees = 180 * Math.atan2(b, a) / Math.PI, hue = atanDegrees < 0 ? atanDegrees + 360 : atanDegrees >= 360 ? atanDegrees - 360 : atanDegrees, hueRadians = hue * Math.PI / 180, ac = p2 * viewingConditions.nbb, J = 100 * Math.pow(ac / viewingConditions.aw, viewingConditions.c * viewingConditions.z), Q = 4 / viewingConditions.c * Math.sqrt(J / 100) * (viewingConditions.aw + 4) * viewingConditions.fLRoot, huePrime = hue < 20.14 ? hue + 360 : hue, 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), alpha = Math.pow(t, .9) * Math.pow(1.64 - Math.pow(.29, viewingConditions.n), .73), C = alpha * Math.sqrt(J / 100), M = C * viewingConditions.fLRoot, s = 50 * Math.sqrt(alpha * viewingConditions.c / (viewingConditions.aw + 4)), jstar = (1 + 100 * .007) * J / (1 + .007 * J), mstar = Math.log(1 + .0228 * M) / .0228, astar = mstar * Math.cos(hueRadians), 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), t = Math.pow(alpha / Math.pow(1.64 - Math.pow(.29, viewingConditions.n), .73), 1 / .9), hRad = this.hue * Math.PI / 180, eHue = .25 * (Math.cos(hRad + 2) + 3.8), ac = viewingConditions.aw * Math.pow(this.j / 100, 1 / viewingConditions.c / viewingConditions.z), p1 = eHue * (5e4 / 13) * viewingConditions.nc * viewingConditions.ncb, p2 = ac / viewingConditions.nbb, hSin = Math.sin(hRad), hCos = Math.cos(hRad), gamma = 23 * (p2 + .305) * t / (23 * p1 + 11 * t * hCos + 108 * t * hSin), a = gamma * hCos, b = gamma * hSin, rA = (460 * p2 + 451 * a + 288 * b) / 1403, gA = (460 * p2 - 891 * a - 261 * b) / 1403, bA = (460 * p2 - 220 * a - 6300 * b) / 1403, rCBase = Math.max(0, 27.13 * Math.abs(rA) / (400 - Math.abs(rA))), rC = signum(rA) * (100 / viewingConditions.fl) * Math.pow(rCBase, 1 / .42), gCBase = Math.max(0, 27.13 * Math.abs(gA) / (400 - Math.abs(gA))), gC = signum(gA) * (100 / viewingConditions.fl) * Math.pow(gCBase, 1 / .42), bCBase = Math.max(0, 27.13 * Math.abs(bA) / (400 - Math.abs(bA))), bC = signum(bA) * (100 / viewingConditions.fl) * Math.pow(bCBase, 1 / .42), rF = rC / viewingConditions.rgbD[0], gF = gC / viewingConditions.rgbD[1], 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}\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, \n 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), rA = HctSolver.chromaticAdaptation(scaledDiscount[0]), gA = HctSolver.chromaticAdaptation(scaledDiscount[1]), bA = HctSolver.chromaticAdaptation(scaledDiscount[2]), a = (11 * rA + -12 * gA + bA) / 11, 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], kG = HctSolver.Y_FROM_LINRGB[1], kB = HctSolver.Y_FROM_LINRGB[2], coordA = n % 4 <= 1 ? 0 : 100, coordB = n % 2 == 0 ? 0 : 100;\n if (n < 4) {\n const g = coordA, b = coordB, 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, r = coordB, g = (y - r * kR - b * kB) / kG;\n return HctSolver.isBounded(g) ? [ r, g, b ] : [ -1, -1, -1 ];\n }\n {\n const r = coordA, g = coordB, 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 ], right = left, leftHue = 0, rightHue = 0, initialized = !1, 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, \n HctSolver.areInCyclicOrder(leftHue, targetHue, midHue) ? (right = mid, rightHue = midHue) : (left = mid, \n leftHue = midHue)) : (left = mid, right = mid, leftHue = midHue, rightHue = midHue, \n 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], leftHue = HctSolver.hueOf(left), right = segment[1];\n for (let axis = 0; axis < 3; axis++) if (left[axis] !== right[axis]) {\n let lPlane = -1, rPlane = 255;\n left[axis] < right[axis] ? (lPlane = HctSolver.criticalPlaneBelow(HctSolver.trueDelinearized(left[axis])), \n rPlane = HctSolver.criticalPlaneAbove(HctSolver.trueDelinearized(right[axis]))) : (lPlane = HctSolver.criticalPlaneAbove(HctSolver.trueDelinearized(left[axis])), \n 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), midPlaneCoordinate = HctSolver.CRITICAL_PLANES[mPlane], mid = HctSolver.setCoordinate(left, midPlaneCoordinate, right, axis), midHue = HctSolver.hueOf(mid);\n HctSolver.areInCyclicOrder(leftHue, targetHue, midHue) ? (right = mid, rPlane = mPlane) : (left = mid, \n leftHue = midHue, lPlane = mPlane);\n }\n }\n return HctSolver.midpoint(left, right);\n }\n static inverseChromaticAdaptation(adapted) {\n const adaptedAbs = Math.abs(adapted), 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, tInnerCoeff = 1 / Math.pow(1.64 - Math.pow(.29, viewingConditions.n), .73), p1 = .25 * (Math.cos(hueRadians + 2) + 3.8) * (5e4 / 13) * viewingConditions.nc * viewingConditions.ncb, hSin = Math.sin(hueRadians), hCos = Math.cos(hueRadians);\n for (let iterationRound = 0; iterationRound < 5; iterationRound++) {\n const jNormalized = j / 100, alpha = 0 === chroma || 0 === j ? 0 : chroma / Math.sqrt(jNormalized), t = Math.pow(alpha * tInnerCoeff, 1 / .9), p2 = viewingConditions.aw * Math.pow(jNormalized, 1 / viewingConditions.c / viewingConditions.z) / viewingConditions.nbb, gamma = 23 * (p2 + .305) * t / (23 * p1 + 11 * t * hCos + 108 * t * hSin), a = gamma * hCos, b = gamma * hSin, rA = (460 * p2 + 451 * a + 288 * b) / 1403, gA = (460 * p2 - 891 * a - 261 * b) / 1403, bA = (460 * p2 - 220 * a - 6300 * b) / 1403, 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], kG = HctSolver.Y_FROM_LINRGB[1], kB = HctSolver.Y_FROM_LINRGB[2], 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, y = yFromLstar(lstar), 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}\n\nHctSolver.SCALED_DISCOUNT_FROM_LINRGB = [ [ .001200833568784504, .002389694492170889, .0002795742885861124 ], [ .0005891086651375999, .0029785502573438758, .0003270666104008398 ], [ .00010146692491640572, .0005364214359186694, .0032979401770712076 ] ], \nHctSolver.LINRGB_FROM_SCALED_DISCOUNT = [ [ 1373.2198709594231, -1100.4251190754821, -7.278681089101213 ], [ -271.815969077903, 559.6580465940733, -32.46047482791194 ], [ 1.9622899599665666, -57.173814538844006, 308.7233197812385 ] ], \nHctSolver.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 ];\n\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), \n 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), \n this.argb = argb;\n }\n inViewingConditions(vc) {\n const viewedInVc = Cam16.fromInt(this.toInt()).xyzInViewingConditions(vc), recastInVc = Cam16.fromXyzInViewingConditions(viewedInVc[0], viewedInVc[1], viewedInVc[2], ViewingConditions.make());\n return Hct.from(recastInVc.hue, recastInVc.chroma, lstarFromY(viewedInVc[1]));\n }\n}\n\nclass Blend {\n static harmonize(designColor, sourceColor) {\n const fromHct = Hct.fromInt(designColor), toHct = Hct.fromInt(sourceColor), differenceDegrees$1 = differenceDegrees(fromHct.hue, toHct.hue), rotationDegrees = Math.min(.5 * differenceDegrees$1, 15), 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), ucsCam = Cam16.fromInt(ucs), 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), toCam = Cam16.fromInt(to), fromJ = fromCam.jstar, fromA = fromCam.astar, fromB = fromCam.bstar, jstar = fromJ + (toCam.jstar - fromJ) * amount, astar = fromA + (toCam.astar - fromA) * amount, bstar = fromB + (toCam.bstar - fromB) * amount;\n return Cam16.fromUcs(jstar, astar, bstar).toInt();\n }\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), lightY = ratio * (darkY + 5) - 5, realContrast = Contrast.ratioOfYs(lightY, darkY), 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), darkY = (lightY + 5) / ratio - 5, realContrast = Contrast.ratioOfYs(lightY, darkY), 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}\n\nclass DislikeAnalyzer {\n static isDisliked(hct) {\n const huePasses = Math.round(hct.hue) >= 90 && Math.round(hct.hue) <= 111, chromaPasses = Math.round(hct.chroma) > 16, 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}\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, \n this.background = background, this.secondBackground = secondBackground, this.contrastCurve = contrastCurve, \n 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), answer = this.palette(scheme).getHct(tone);\n return this.hctCache.size > 4 && this.hctCache.clear(), this.hctCache.set(scheme, answer), \n answer;\n }\n getTone(scheme) {\n const decreasingContrast = scheme.contrastLevel < 0;\n if (this.toneDeltaPair) {\n const toneDeltaPair = this.toneDeltaPair(scheme), roleA = toneDeltaPair.roleA, roleB = toneDeltaPair.roleB, delta = toneDeltaPair.delta, polarity = toneDeltaPair.polarity, stayTogether = toneDeltaPair.stayTogether, bgTone = this.background(scheme).getTone(scheme), aIsNearer = \"nearer\" === polarity || \"lighter\" === polarity && !scheme.isDark || \"darker\" === polarity && scheme.isDark, nearer = aIsNearer ? roleA : roleB, farther = aIsNearer ? roleB : roleA, amNearer = this.name === nearer.name, expansionDir = scheme.isDark ? 1 : -1, nContrast = nearer.contrastCurve.getContrast(scheme.contrastLevel), fContrast = farther.contrastCurve.getContrast(scheme.contrastLevel), 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), \n fTone = DynamicColor.foregroundTone(bgTone, fContrast)), (fTone - nTone) * expansionDir >= delta || (fTone = clampDouble(0, 100, nTone + delta * expansionDir), \n (fTone - nTone) * expansionDir >= delta || (nTone = clampDouble(0, 100, fTone - delta * expansionDir))), \n 50 <= nTone && nTone < 60 ? expansionDir > 0 ? (nTone = 60, fTone = Math.max(fTone, nTone + delta * expansionDir)) : (nTone = 49, \n fTone = Math.min(fTone, nTone + delta * expansionDir)) : 50 <= fTone && fTone < 60 && (stayTogether ? expansionDir > 0 ? (nTone = 60, \n fTone = Math.max(fTone, nTone + delta * expansionDir)) : (nTone = 49, fTone = Math.min(fTone, nTone + delta * expansionDir)) : fTone = expansionDir > 0 ? 60 : 49), \n 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), desiredRatio = this.contrastCurve.getContrast(scheme.contrastLevel);\n if (Contrast.ratioOfTones(bgTone, answer) >= desiredRatio || (answer = DynamicColor.foregroundTone(bgTone, desiredRatio)), \n decreasingContrast && (answer = DynamicColor.foregroundTone(bgTone, desiredRatio)), \n this.isBackground && 50 <= answer && answer < 60 && (answer = Contrast.ratioOfTones(49, bgTone) >= desiredRatio ? 49 : 60), \n this.secondBackground) {\n const [bg1, bg2] = [ this.background, this.secondBackground ], [bgTone1, bgTone2] = [ bg1(scheme).getTone(scheme), bg2(scheme).getTone(scheme) ], [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), darkOption = Contrast.darker(lower, desiredRatio), 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), darkerTone = Contrast.darkerUnsafe(bgTone, ratio), lighterRatio = Contrast.ratioOfTones(lighterTone, bgTone), 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}\n\nvar Variant;\n\n!function(Variant) {\n Variant[Variant.MONOCHROME = 0] = \"MONOCHROME\", Variant[Variant.NEUTRAL = 1] = \"NEUTRAL\", \n Variant[Variant.TONAL_SPOT = 2] = \"TONAL_SPOT\", Variant[Variant.VIBRANT = 3] = \"VIBRANT\", \n Variant[Variant.EXPRESSIVE = 4] = \"EXPRESSIVE\", Variant[Variant.FIDELITY = 5] = \"FIDELITY\", \n Variant[Variant.CONTENT = 6] = \"CONTENT\", Variant[Variant.RAINBOW = 7] = \"RAINBOW\", \n Variant[Variant.FRUIT_SALAD = 8] = \"FRUIT_SALAD\";\n}(Variant || (Variant = {}));\n\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}\n\nclass ToneDeltaPair {\n constructor(roleA, roleB, delta, polarity, stayTogether) {\n this.roleA = roleA, this.roleB = roleB, this.delta = delta, this.polarity = polarity, \n this.stayTogether = stayTogether;\n }\n}\n\nfunction isFidelity(scheme) {\n return scheme.variant === Variant.FIDELITY || scheme.variant === Variant.CONTENT;\n}\n\nfunction isMonochrome(scheme) {\n return scheme.variant === Variant.MONOCHROME;\n}\n\nfunction findDesiredChromaByTone(hue, chroma, tone, byDecreasingTone) {\n let answer = tone, 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), \n chromaPeak = Math.max(chromaPeak, potentialSolution.chroma);\n }\n }\n return answer;\n}\n\nfunction viewingConditionsForAlbers(scheme) {\n return ViewingConditions.make(void 0, void 0, scheme.isDark ? 30 : 80, void 0, void 0);\n}\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}\n\nclass MaterialDynamicColors {\n static highestSurface(s) {\n return s.isDark ? MaterialDynamicColors.surfaceBright : MaterialDynamicColors.surfaceDim;\n }\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), 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});\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), 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), hctAddDelta = Math.abs(hctAdd.chroma - chroma);\n hctAddDelta < smallestDelta && (smallestDelta = hctAddDelta, smallestDeltaHct = hctAdd);\n const hctSubtract = Hct.from(hue, chroma, 50 - delta), 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(), \n this.cache.set(tone, argb)), argb;\n }\n getHct(tone) {\n return Hct.fromInt(this.tone(tone));\n }\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), hue = hct.hue, chroma = hct.chroma;\n isContent ? (this.a1 = TonalPalette.fromHueAndChroma(hue, chroma), this.a2 = TonalPalette.fromHueAndChroma(hue, chroma / 3), \n this.a3 = TonalPalette.fromHueAndChroma(hue + 60, chroma / 2), this.n1 = TonalPalette.fromHueAndChroma(hue, Math.min(chroma / 12, 4)), \n this.n2 = TonalPalette.fromHueAndChroma(hue, Math.min(chroma / 6, 8))) : (this.a1 = TonalPalette.fromHueAndChroma(hue, Math.max(48, chroma)), \n this.a2 = TonalPalette.fromHueAndChroma(hue, 16), this.a3 = TonalPalette.fromHueAndChroma(hue + 60, 24), \n this.n1 = TonalPalette.fromHueAndChroma(hue, 4), this.n2 = TonalPalette.fromHueAndChroma(hue, 8)), \n this.error = TonalPalette.fromHueAndChroma(25, 84);\n }\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}\n\nfunction hexFromArgb(argb) {\n const r = redFromArgb(argb), g = greenFromArgb(argb), b = blueFromArgb(argb), 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}\n\nfunction argbFromHex(hex) {\n const isThree = 3 === (hex = hex.replace(\"#\", \"\")).length, isSix = 6 === hex.length, isEight = 8 === hex.length;\n if (!isThree && !isSix && !isEight) throw new Error(\"unexpected hex \" + hex);\n let r = 0, g = 0, b = 0;\n return isThree ? (r = parseIntHex(hex.slice(0, 1).repeat(2)), g = parseIntHex(hex.slice(1, 2).repeat(2)), \n b = parseIntHex(hex.slice(2, 3).repeat(2))) : isSix ? (r = parseIntHex(hex.slice(0, 2)), \n g = parseIntHex(hex.slice(2, 4)), b = parseIntHex(hex.slice(4, 6))) : isEight && (r = parseIntHex(hex.slice(2, 4)), \n g = parseIntHex(hex.slice(4, 6)), b = parseIntHex(hex.slice(6, 8))), (255 << 24 | (255 & r) << 16 | (255 & g) << 8 | 255 & b) >>> 0;\n}\n\nfunction parseIntHex(value) {\n return parseInt(value, 16);\n}\n\nfunction themeFromSourceColor(source, customColors = []) {\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}\n\nfunction customColor(source, color) {\n let value = color.value;\n const from = value, 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}\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\tconst rgba = {};\n\tif (d.slice(0, 3).toLowerCase() === 'rgb') {\n\t\td = d.replace(' ', '').split(',');\n\t\trgba[0] = parseInt(d[0].slice(d[3].toLowerCase() === 'a' ? 5 : 4), 10);\n\t\trgba[1] = parseInt(d[1], 10);\n\t\trgba[2] = parseInt(d[2], 10);\n\t\trgba[3] = d[3] ? parseFloat(d[3]) : -1;\n\t} else {\n\t\tif (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);\n\t\telse d = parseInt(d.slice(1), 16);\n\t\trgba[0] = (d >> 16) & 255;\n\t\trgba[1] = (d >> 8) & 255;\n\t\trgba[2] = d & 255;\n\t\trgba[3] = l === 9 || l === 5 ? r((((d >> 24) & 255) / 255) * 10000) / 10000 : -1;\n\t}\n\treturn rgba;\n}\n\n// prettier-ignore\nfunction blend(from, to, p = 0.5) {\n const r = Math.round;\n from = from.trim();\n\tto = to.trim();\n\tconst b = p < 0;\n\tp = b ? p * -1 : p;\n\tconst f = toRGBA(from);\n\tconst t = toRGBA(to);\n\tif (to[0] === 'r') {\n\t\treturn 'rgb' + (to[3] === 'a' ? 'a(' : '(') +\n\t\t\tr(((t[0] - f[0]) * p) + f[0]) + ',' +\n\t\t\tr(((t[1] - f[1]) * p) + f[1]) + ',' +\n\t\t\tr(((t[2] - f[2]) * p) + f[2]) + (\n\t\t\t\tf[3] < 0 && t[3] < 0 ? '' : ',' + (\n\t\t\t\t\tf[3] > -1 && t[3] > -1\n\t\t\t\t\t\t? r((((t[3] - f[3]) * p) + f[3]) * 10000) / 10000\n\t\t\t\t\t\t: t[3] < 0 ? f[3] : t[3]\n\t\t\t\t)\n\t\t\t) + ')';\n\t}\n\n\treturn '#' + (0x100000000 + ((\n\t\tf[3] > -1 && t[3] > -1\n\t\t\t? r((((t[3] - f[3]) * p) + f[3]) * 255)\n\t\t\t: t[3] > -1 ? r(t[3] * 255) : f[3] > -1 ? r(f[3] * 255) : 255\n\t\t) * 0x1000000) +\n\t\t(r(((t[0] - f[0]) * p) + f[0]) * 0x10000) +\n\t\t(r(((t[1] - f[1]) * p) + f[1]) * 0x100) +\n\t\tr(((t[2] - f[2]) * p) + f[2])\n\t).toString(16).slice(f[3] > -1 || t[3] > -1 ? 1 : 3);\n}\n/* eslint-enable */\n\nexport const materialColors = (hexColor = '') => {\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(\n blend(\n hexFromArgb(theme.schemes.light.props.surface),\n hexFromArgb(theme.schemes.light.props.primary),\n amount,\n ),\n );\n theme.schemes.dark.props[`surface${index + 1}`] = argbFromHex(\n blend(\n hexFromArgb(theme.schemes.dark.props.surface),\n hexFromArgb(theme.schemes.dark.props.primary),\n amount,\n ),\n );\n });\n\n const name = (n) => {\n return n\n .split('')\n .map((char) =>\n char.toUpperCase() === char && char !== '-' && char !== '7'\n ? `-${char.toLowerCase()}`\n : char,\n )\n .join('');\n };\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\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\n return { light, dark };\n};\n","import { getWindow } from 'ssr-window';\nimport { materialColors } from './material-colors.js';\n\nlet uniqueNum = 0;\nexport function uniqueNumber() {\n uniqueNum += 1;\n return uniqueNum;\n}\nexport function id(mask = 'xxxxxxxxxx', map = '0123456789abcdef') {\n const length = map.length;\n return mask.replace(/x/g, () => map[Math.floor(Math.random() * length)]);\n}\nexport const mdPreloaderContent = `\n <span class=\"preloader-inner\">\n <svg viewBox=\"0 0 36 36\">\n <circle cx=\"18\" cy=\"18\" r=\"16\"></circle>\n </svg>\n </span>\n`.trim();\n\nexport const iosPreloaderContent = `\n <span class=\"preloader-inner\">\n ${[0, 1, 2, 3, 4, 5, 6, 7].map(() => '<span class=\"preloader-inner-line\"></span>').join('')}\n </span>\n`.trim();\n\nexport function eventNameToColonCase(eventName) {\n let hasColon;\n return eventName\n .split('')\n .map((char, index) => {\n if (char.match(/[A-Z]/) && index !== 0 && !hasColon) {\n hasColon = true;\n return `:${char.toLowerCase()}`;\n }\n return char.toLowerCase();\n })\n .join('');\n}\nexport function deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no setter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nexport function requestAnimationFrame(callback) {\n const window = getWindow();\n return window.requestAnimationFrame(callback);\n}\nexport function cancelAnimationFrame(frameId) {\n const window = getWindow();\n return window.cancelAnimationFrame(frameId);\n}\nexport function nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\nexport function nextFrame(callback) {\n return requestAnimationFrame(() => {\n requestAnimationFrame(callback);\n });\n}\nexport function now() {\n return Date.now();\n}\n\nexport function parseUrlQuery(url) {\n const window = getWindow();\n const query = {};\n let urlToParse = url || window.location.href;\n let i;\n let params;\n let param;\n let length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter((paramsPart) => paramsPart !== '');\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] =\n typeof param[1] === 'undefined'\n ? undefined\n : decodeURIComponent(param.slice(1).join('=')) || '';\n }\n }\n return query;\n}\nexport function getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform\n .split(', ')\n .map((a) => a.replace(',', '.'))\n .join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix =\n curStyle.MozTransform ||\n curStyle.OTransform ||\n curStyle.MsTransform ||\n curStyle.msTransform ||\n curStyle.transform ||\n curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nexport function serializeObject(obj, parents = []) {\n if (typeof obj === 'string') return obj;\n const resultArray = [];\n const separator = '&';\n let newParents;\n function varName(name) {\n if (parents.length > 0) {\n let parentParts = '';\n for (let j = 0; j < parents.length; j += 1) {\n if (j === 0) parentParts += parents[j];\n else parentParts += `[${encodeURIComponent(parents[j])}]`;\n }\n return `${parentParts}[${encodeURIComponent(name)}]`;\n }\n return encodeURIComponent(name);\n }\n function varValue(value) {\n return encodeURIComponent(value);\n }\n Object.keys(obj).forEach((prop) => {\n let toPush;\n if (Array.isArray(obj[prop])) {\n toPush = [];\n for (let i = 0; i < obj[prop].length; i += 1) {\n if (!Array.isArray(obj[prop][i]) && typeof obj[prop][i] === 'object') {\n newParents = parents.slice();\n newParents.push(prop);\n newParents.push(String(i));\n toPush.push(serializeObject(obj[prop][i], newParents));\n } else {\n toPush.push(`${varName(prop)}[]=${varValue(obj[prop][i])}`);\n }\n }\n if (toPush.length > 0) resultArray.push(toPush.join(separator));\n } else if (obj[prop] === null || obj[prop] === '') {\n resultArray.push(`${varName(prop)}=`);\n } else if (typeof obj[prop] === 'object') {\n // Object, convert to named array\n newParents = parents.slice();\n newParents.push(prop);\n toPush = serializeObject(obj[prop], newParents);\n if (toPush !== '') resultArray.push(toPush);\n } else if (typeof obj[prop] !== 'undefined' && obj[prop] !== '') {\n // Should be string or plain value\n resultArray.push(`${varName(prop)}=${varValue(obj[prop])}`);\n } else if (obj[prop] === '') resultArray.push(varName(prop)); // eslint-disable-line\n });\n return resultArray.join(separator);\n}\nexport function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\nexport function merge(...args) {\n const to = args[0];\n args.splice(0, 1);\n const from = args;\n\n for (let i = 0; i < from.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n}\nexport function extend(...args) {\n let deep = true;\n let to;\n let from;\n if (typeof args[0] === 'boolean') {\n deep = args[0];\n to = args[1];\n args.splice(0, 2);\n from = args;\n } else {\n to = args[0];\n args.splice(0, 1);\n from = args;\n }\n for (let i = 0; i < from.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (!deep) {\n to[nextKey] = nextSource[nextKey];\n } else if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n extend(to[nextKey], nextSource[nextKey]);\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nexport function colorHexToRgb(hex) {\n const h = hex.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i, (m, r, g, b) => r + r + g + g + b + b);\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(h);\n return result ? result.slice(1).map((n) => parseInt(n, 16)) : null;\n}\nexport function colorRgbToHex(r, g, b) {\n const result = [r, g, b]\n .map((n) => {\n const hex = n.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n })\n .join('');\n return `#${result}`;\n}\nexport function colorRgbToHsl(r, g, b) {\n r /= 255; // eslint-disable-line\n g /= 255; // eslint-disable-line\n b /= 255; // eslint-disable-line\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n let h;\n if (d === 0) h = 0;\n else if (max === r) h = ((g - b) / d) % 6;\n else if (max === g) h = (b - r) / d + 2;\n else if (max === b) h = (r - g) / d + 4;\n const l = (min + max) / 2;\n const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));\n if (h < 0) h = 360 / 60 + h;\n return [h * 60, s, l];\n}\nexport function colorHslToRgb(h, s, l) {\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const hp = h / 60;\n const x = c * (1 - Math.abs((hp % 2) - 1));\n let rgb1;\n if (Number.isNaN(h) || typeof h === 'undefined') {\n rgb1 = [0, 0, 0];\n } else if (hp <= 1) rgb1 = [c, x, 0];\n else if (hp <= 2) rgb1 = [x, c, 0];\n else if (hp <= 3) rgb1 = [0, c, x];\n else if (hp <= 4) rgb1 = [0, x, c];\n else if (hp <= 5) rgb1 = [x, 0, c];\n else if (hp <= 6) rgb1 = [c, 0, x];\n const m = l - c / 2;\n return rgb1.map((n) => Math.max(0, Math.min(255, Math.round(255 * (n + m)))));\n}\nexport function colorHsbToHsl(h, s, b) {\n const HSL = {\n h,\n s: 0,\n l: 0,\n };\n const HSB = { h, s, b };\n\n HSL.l = ((2 - HSB.s) * HSB.b) / 2;\n HSL.s = HSL.l && HSL.l < 1 ? (HSB.s * HSB.b) / (HSL.l < 0.5 ? HSL.l * 2 : 2 - HSL.l * 2) : HSL.s;\n\n return [HSL.h, HSL.s, HSL.l];\n}\nexport function colorHslToHsb(h, s, l) {\n const HSB = {\n h,\n s: 0,\n b: 0,\n };\n const HSL = { h, s, l };\n\n const t = HSL.s * (HSL.l < 0.5 ? HSL.l : 1 - HSL.l);\n HSB.b = HSL.l + t;\n HSB.s = HSL.l > 0 ? (2 * t) / HSB.b : HSB.s;\n\n return [HSB.h, HSB.s, HSB.b];\n}\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 { shade, tint };\n};\nexport function colorThemeCSSProperties(...args) {\n let hex;\n let rgb;\n if (args.length === 1) {\n hex = args[0];\n rgb = colorHexToRgb(hex);\n } else if (args.length === 3) {\n rgb = args;\n hex = colorRgbToHex(...rgb);\n }\n if (!rgb) return {};\n const { light, dark } = 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}\n\nexport function bindMethods(instance, obj) {\n Object.keys(obj).forEach((key) => {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach((subKey) => {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n instance[key] = obj[key];\n });\n}\n\nexport function flattenArray(...args) {\n const arr = [];\n args.forEach((arg) => {\n if (Array.isArray(arg)) arr.push(...flattenArray(...arg));\n else arr.push(arg);\n });\n return arr;\n}\n\nexport function colorThemeCSSStyles(colors = {}) {\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\n const primary = [\n `:root{`,\n stringifyObject(colorVars.light),\n `--swiper-theme-color:var(--f7-theme-color);`,\n ...Object.keys(colors).map((colorName) => `--f7-color-${colorName}: ${colors[colorName]};`),\n `}`,\n `.dark{`,\n stringifyObject(colorVars.dark),\n `}`,\n `.ios, .ios .dark{`,\n stringifyObject(colorVars.ios),\n '}',\n `.md, .md .dark{`,\n stringifyObject(colorVars.md),\n '}',\n ].join('');\n\n const restVars = {};\n\n Object.keys(colors).forEach((colorName) => {\n const colorValue = colors[colorName];\n restVars[colorName] = colorThemeCSSProperties(colorValue);\n });\n\n // rest\n let rest = '';\n\n Object.keys(colors).forEach((colorName) => {\n const { light, dark, ios, md } = restVars[colorName];\n\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 =\n colorName === 'white'\n ? whiteColorVars\n : colorName === 'black'\n ? blackColorVars\n : stringifyObject(light);\n const darkString =\n colorName === 'white'\n ? whiteColorVars\n : colorName === 'black'\n ? blackColorVars\n : stringifyObject(dark);\n /* eslint-enable */\n rest += [\n `.color-${colorName} {`,\n lightString,\n `--swiper-theme-color: var(--f7-theme-color);`,\n `}`,\n `.color-${colorName}.dark, .color-${colorName} .dark, .dark .color-${colorName} {`,\n darkString,\n `--swiper-theme-color: var(--f7-theme-color);`,\n `}`,\n `.ios .color-${colorName}, .ios.color-${colorName}, .ios .dark .color-${colorName}, .ios .dark.color-${colorName} {`,\n stringifyObject(ios),\n `}`,\n `.md .color-${colorName}, .md.color-${colorName}, .md .dark .color-${colorName}, .md .dark.color-${colorName} {`,\n stringifyObject(md),\n `}`,\n\n // text color\n `.text-color-${colorName} {`,\n `--f7-theme-color-text-color: ${colors[colorName]};`,\n `}`,\n\n // bg color\n `.bg-color-${colorName} {`,\n `--f7-theme-color-bg-color: ${colors[colorName]};`,\n `}`,\n\n // border color\n `.border-color-${colorName} {`,\n `--f7-theme-color-border-color: ${colors[colorName]};`,\n `}`,\n\n // ripple color\n `.ripple-color-${colorName} {`,\n `--f7-theme-color-ripple-color: rgba(${light['--f7-ios-primary-rgb']}, 0.3);`,\n `}`,\n ].join('');\n });\n\n return `${primary}${rest}`;\n}\n","import { getWindow, getDocument } from 'ssr-window';\n\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n\n return {\n touch: !!(\n 'ontouchstart' in window ||\n (window.DocumentTouch && document instanceof window.DocumentTouch)\n ),\n\n pointerEvents:\n !!window.PointerEvent &&\n 'maxTouchPoints' in window.navigator &&\n window.navigator.maxTouchPoints >= 0,\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n })(),\n\n intersectionObserver: (function checkObserver() {\n return 'IntersectionObserver' in window;\n })(),\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nexport { getSupport };\n","import { getWindow, getDocument } from 'ssr-window';\nimport { getSupport } from './get-support.js';\n\nlet deviceCalculated;\n\nfunction calcDevice({ userAgent } = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n iphone: false,\n ipod: false,\n ipad: false,\n edge: false,\n ie: false,\n firefox: false,\n macos: false,\n windows: false,\n cordova: !!window.cordova,\n electron: false,\n capacitor: !!window.Capacitor,\n nwjs: false,\n };\n\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS|iPhone;\\sCPU\\sOS)\\s([\\d_]+)/);\n const ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n const edge = ua.indexOf('Edge/') >= 0;\n const firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n const windows = platform === 'Win32';\n const electron = ua.toLowerCase().indexOf('electron') >= 0;\n const nwjs =\n typeof nw !== 'undefined' &&\n typeof process !== 'undefined' &&\n typeof process.versions !== 'undefined' &&\n typeof process.versions.nw !== 'undefined';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = [\n '1024x1366',\n '1366x1024',\n '834x1194',\n '1194x834',\n '834x1112',\n '1112x834',\n '768x1024',\n '1024x768',\n '820x1180',\n '1180x820',\n '810x1080',\n '1080x810',\n ];\n if (\n !ipad &&\n macos &&\n support.touch &&\n iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0\n ) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n device.ie = ie;\n device.edge = edge;\n device.firefox = firefox;\n\n // Android\n if (android) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Webview\n device.webView =\n !!(\n (iphone || ipad || ipod) &&\n (ua.match(/.*AppleWebKit(?!.*Safari)/i) || window.navigator.standalone)\n ) ||\n (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches);\n device.webview = device.webView;\n device.standalone = device.webView;\n\n // Desktop\n device.desktop = !(device.ios || device.android) || electron || nwjs;\n if (device.desktop) {\n device.electron = electron;\n device.nwjs = nwjs;\n device.macos = macos;\n device.windows = windows;\n if (device.macos) {\n device.os = 'macos';\n }\n if (device.windows) {\n device.os = 'windows';\n }\n }\n\n // Pixel Ratio\n device.pixelRatio = window.devicePixelRatio || 1;\n\n // Color Scheme\n const DARK = '(prefers-color-scheme: dark)';\n const LIGHT = '(prefers-color-scheme: light)';\n device.prefersColorScheme = function prefersColorTheme() {\n let theme;\n if (window.matchMedia && window.matchMedia(LIGHT).matches) {\n theme = 'light';\n }\n if (window.matchMedia && window.matchMedia(DARK).matches) {\n theme = 'dark';\n }\n return theme;\n };\n\n // Export object\n return device;\n}\n\nconst IS_BROWSER = (() => {\n const document = getDocument();\n try {\n // eslint-disable-next-line no-restricted-globals\n return Boolean(\n document &&\n document.body &&\n document.body.getBoundingClientRect &&\n document.body.getBoundingClientRect().width > 0,\n );\n } catch (e) {\n return false;\n }\n})();\n\nfunction getDevice(overrides = {}, reset = IS_BROWSER) {\n if (!deviceCalculated || reset) {\n deviceCalculated = calcDevice(overrides);\n }\n return deviceCalculated;\n}\n\nexport { getDevice };\n","class EventsClass {\n constructor(parents = []) {\n const self = this;\n self.eventsParents = parents;\n self.eventsListeners = {};\n }\n\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach((event) => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n }\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n handler.apply(self, args);\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n }\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach((event) => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (\n eventHandler === handler ||\n (eventHandler.f7proxy && eventHandler.f7proxy === handler)\n ) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n }\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n let eventsParents;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n eventsParents = self.eventsParents;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n eventsParents = args[0].local ? [] : args[0].parents || self.eventsParents;\n }\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n const localEvents = eventsArray.map((eventName) => eventName.replace('local::', ''));\n const parentEvents = eventsArray.filter((eventName) => eventName.indexOf('local::') < 0);\n\n localEvents.forEach((event) => {\n if (self.eventsListeners && self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach((eventHandler) => {\n handlers.push(eventHandler);\n });\n handlers.forEach((eventHandler) => {\n eventHandler.apply(context, data);\n });\n }\n });\n if (eventsParents && eventsParents.length > 0) {\n eventsParents.forEach((eventsParent) => {\n eventsParent.emit(parentEvents, ...data);\n });\n }\n return self;\n }\n}\n\nexport default EventsClass;\n","import { extend, now } from './utils.js';\nimport EventsClass from './events-class.js';\n\nclass Framework7Class extends EventsClass {\n constructor(params = {}, parents = []) {\n super(parents);\n const self = this;\n self.params = params;\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach((eventName) => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n\n // eslint-disable-next-line\n useModuleParams(module, instanceParams) {\n if (module.params) {\n const originalParams = {};\n Object.keys(module.params).forEach((paramKey) => {\n if (typeof instanceParams[paramKey] === 'undefined') return;\n originalParams[paramKey] = extend({}, instanceParams[paramKey]);\n });\n extend(instanceParams, module.params);\n Object.keys(originalParams).forEach((paramKey) => {\n extend(instanceParams[paramKey], originalParams[paramKey]);\n });\n }\n }\n\n useModulesParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n }\n\n useModule(moduleName = '', moduleParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n const module = typeof moduleName === 'string' ? instance.modules[moduleName] : moduleName;\n if (!module) return;\n\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach((modulePropName) => {\n const moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n // Add vnode hooks\n if (module.vnode) {\n if (!instance.vnodeHooks) instance.vnodeHooks = {};\n Object.keys(module.vnode).forEach((vnodeId) => {\n Object.keys(module.vnode[vnodeId]).forEach((hookName) => {\n const handler = module.vnode[vnodeId][hookName];\n if (!instance.vnodeHooks[hookName]) instance.vnodeHooks[hookName] = {};\n if (!instance.vnodeHooks[hookName][vnodeId]) instance.vnodeHooks[hookName][vnodeId] = [];\n instance.vnodeHooks[hookName][vnodeId].push(handler.bind(instance));\n });\n });\n }\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n }\n\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const moduleParams = modulesParams[moduleName] || {};\n instance.useModule(moduleName, moduleParams);\n });\n }\n\n static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n\n static installModule(module, ...params) {\n const Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n const name = module.name || `${Object.keys(Class.prototype.modules).length}_${now()}`;\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach((key) => {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach((key) => {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n }\n\n static use(module, ...params) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach((m) => Class.installModule(m));\n return Class;\n }\n return Class.installModule(module, ...params);\n }\n}\n\nexport default Framework7Class;\n","import $ from './dom7.js';\n\nexport default function ConstructorMethods(parameters = {}) {\n const { defaultSelector, constructor: Constructor, domProp, app, addMethods } = parameters;\n const methods = {\n create(...args) {\n if (app) return new Constructor(app, ...args);\n return new Constructor(...args);\n },\n get(el = defaultSelector) {\n if (el instanceof Constructor) return el;\n const $el = $(el);\n if ($el.length === 0) return undefined;\n return $el[0][domProp];\n },\n destroy(el) {\n const instance = methods.get(el);\n if (instance && instance.destroy) return instance.destroy();\n return undefined;\n },\n };\n if (addMethods && Array.isArray(addMethods)) {\n addMethods.forEach((methodName) => {\n methods[methodName] = (el = defaultSelector, ...args) => {\n const instance = methods.get(el);\n if (instance && instance[methodName]) return instance[methodName](...args);\n return undefined;\n };\n });\n }\n return methods;\n}\n","import $ from './dom7.js';\nimport { extend } from './utils.js';\nimport ConstructorMethods from './constructor-methods.js';\n\nexport default function ModalMethods(parameters = {}) {\n const { defaultSelector, constructor: Constructor, app } = parameters;\n const methods = extend(\n ConstructorMethods({\n defaultSelector,\n constructor: Constructor,\n app,\n domProp: 'f7Modal',\n }),\n {\n open(el, animate, targetEl) {\n let $el = $(el);\n if ($el.length > 1 && targetEl) {\n // check if same modal in other page\n const $targetPage = $(targetEl).parents('.page');\n if ($targetPage.length) {\n $el.each((modalEl) => {\n const $modalEl = $(modalEl);\n if ($modalEl.parents($targetPage)[0] === $targetPage[0]) {\n $el = $modalEl;\n }\n });\n }\n }\n if ($el.length > 1) {\n $el = $el.eq($el.length - 1);\n }\n if (!$el.length) return undefined;\n let instance = $el[0].f7Modal;\n if (!instance) {\n const params = $el.dataset();\n instance = new Constructor(app, { el: $el, ...params });\n }\n return instance.open(animate);\n },\n close(el = defaultSelector, animate, targetEl) {\n let $el = $(el);\n if (!$el.length) return undefined;\n if ($el.length > 1) {\n // check if close link (targetEl) in this modal\n let $parentEl;\n if (targetEl) {\n const $targetEl = $(targetEl);\n if ($targetEl.length) {\n $parentEl = $targetEl.parents($el);\n }\n }\n if ($parentEl && $parentEl.length > 0) {\n $el = $parentEl;\n } else {\n $el = $el.eq($el.length - 1);\n }\n }\n let instance = $el[0].f7Modal;\n if (!instance) {\n const params = $el.dataset();\n instance = new Constructor(app, { el: $el, ...params });\n }\n return instance.close(animate);\n },\n },\n );\n return methods;\n}\n","import { getWindow, getDocument } from 'ssr-window';\nimport { id } from '../../shared/utils.js';\nimport $ from '../../shared/dom7.js';\n\nconst fetchedModules = [];\nfunction loadModule(moduleToLoad) {\n const Framework7 = this;\n const window = getWindow();\n const document = getDocument();\n return new Promise((resolve, reject) => {\n const app = Framework7.instance;\n let modulePath;\n let moduleObj;\n let moduleFunc;\n if (!moduleToLoad) {\n reject(new Error('Framework7: Lazy module must be specified'));\n return;\n }\n\n function install(module) {\n Framework7.use(module);\n\n if (app) {\n app.useModuleParams(module, app.params);\n app.useModule(module);\n }\n }\n\n if (typeof moduleToLoad === 'string') {\n const matchNamePattern = moduleToLoad.match(/([a-z0-9-]*)/i);\n if (\n moduleToLoad.indexOf('.') < 0 &&\n matchNamePattern &&\n matchNamePattern[0].length === moduleToLoad.length\n ) {\n if (!app || (app && !app.params.lazyModulesPath)) {\n reject(\n new Error(\n 'Framework7: \"lazyModulesPath\" app parameter must be specified to fetch module by name',\n ),\n );\n return;\n }\n modulePath = `${app.params.lazyModulesPath}/${moduleToLoad}/${moduleToLoad}.lazy.js`;\n } else {\n modulePath = moduleToLoad;\n }\n } else if (typeof moduleToLoad === 'function') {\n moduleFunc = moduleToLoad;\n } else {\n // considering F7-Plugin object\n moduleObj = moduleToLoad;\n }\n\n if (moduleFunc) {\n const module = moduleFunc(Framework7, false);\n if (!module) {\n reject(\n new Error(\"Framework7: Can't find Framework7 component in specified component function\"),\n );\n return;\n }\n // Check if it was added\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolve();\n return;\n }\n // Install It\n install(module);\n\n resolve();\n }\n if (moduleObj) {\n const module = moduleObj;\n if (!module) {\n reject(new Error(\"Framework7: Can't find Framework7 component in specified component\"));\n return;\n }\n // Check if it was added\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolve();\n return;\n }\n // Install It\n install(module);\n\n resolve();\n }\n if (modulePath) {\n if (fetchedModules.indexOf(modulePath) >= 0) {\n resolve();\n return;\n }\n fetchedModules.push(modulePath);\n const scriptLoad = new Promise((resolveScript, rejectScript) => {\n fetch(modulePath)\n .then((res) => res.text())\n .then((scriptContent) => {\n const callbackId = id();\n const callbackLoadName = `f7_component_loader_callback_${callbackId}`;\n\n const scriptEl = document.createElement('script');\n scriptEl.innerHTML = `window.${callbackLoadName} = function (Framework7, Framework7AutoInstallComponent) {return ${scriptContent.trim()}}`;\n $('head').append(scriptEl);\n\n const componentLoader = window[callbackLoadName];\n delete window[callbackLoadName];\n $(scriptEl).remove();\n\n const module = componentLoader(Framework7, false);\n\n if (!module) {\n rejectScript(\n new Error(`Framework7: Can't find Framework7 component in ${modulePath} file`),\n );\n return;\n }\n\n // Check if it was added\n if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) {\n resolveScript();\n return;\n }\n\n // Install It\n install(module);\n\n resolveScript();\n })\n .catch((err) => {\n rejectScript(err);\n });\n });\n const styleLoad = new Promise((resolveStyle) => {\n fetch(\n modulePath\n .replace('.lazy.js', app.rtl ? '.rtl.css' : '.css')\n .replace('.js', app.rtl ? '.rtl.css' : '.css'),\n )\n .then((res) => res.text())\n .then((styleContent) => {\n const styleEl = document.createElement('style');\n styleEl.innerHTML = styleContent;\n $('head').append(styleEl);\n\n resolveStyle();\n })\n .catch(() => {\n resolveStyle();\n });\n });\n\n Promise.all([scriptLoad, styleLoad])\n .then(() => {\n resolve();\n })\n .catch((err) => {\n reject(err);\n });\n }\n });\n}\n\nexport default loadModule;\n","/* eslint-disable prefer-rest-params */\nconst $jsx = (tag, props, ...args) => {\n const attrs = props || {};\n const children = args || [];\n\n const attrsString = Object.keys(attrs)\n .map((attr) => {\n if (attr[0] === '_') {\n if (attrs[attr]) return attr.replace('_', '');\n return '';\n }\n return `${attr}=\"${attrs[attr]}\"`;\n })\n .filter((attr) => !!attr)\n .join(' ');\n\n if (['path', 'img', 'circle', 'polygon', 'line', 'input'].indexOf(tag) >= 0) {\n return `<${tag} ${attrsString} />`.trim();\n }\n const childrenContent = children\n .filter((c) => !!c)\n .map((c) => (Array.isArray(c) ? c.join('') : c))\n .join('');\n return `<${tag} ${attrsString}>${childrenContent}</${tag}>`.trim();\n};\n\nexport default $jsx;\n","/* eslint-disable no-underscore-dangle */\n\nimport { getWindow, getDocument } from 'ssr-window';\nimport { extend, nextFrame } from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport Framework7Class from '../../shared/class.js';\nimport EventsClass from '../../shared/events-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\nimport ModalMethods from '../../shared/modal-methods.js';\nimport $ from '../../shared/dom7.js';\nimport loadModule from './load-module.js';\nimport $jsx from '../../shared/$jsx.js';\n\nclass Framework7 extends Framework7Class {\n constructor(params = {}) {\n super(params);\n // eslint-disable-next-line\n if (Framework7.instance && typeof window !== 'undefined') {\n throw new Error(\"Framework7 is already initialized and can't be initialized more than once\");\n }\n const device = getDevice({ userAgent: params.userAgent || undefined });\n const support = getSupport();\n\n const passedParams = extend({}, params);\n\n // App Instance\n const app = this;\n\n app.device = device;\n app.support = support;\n\n const w = getWindow();\n const d = getDocument();\n\n Framework7.instance = app;\n\n // Default\n const defaults = {\n 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\n extend(app, {\n // App Name\n name: app.params.name,\n // Routes\n routes: app.params.routes,\n\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\n // Initially passed parameters\n passedParams,\n online: w.navigator.onLine,\n colors: app.params.colors,\n darkMode: app.params.darkMode,\n });\n\n if (params.store) app.params.store = params.store;\n\n // Save Root\n if (app.$el && app.$el[0]) {\n app.$el[0].f7 = app;\n }\n\n // Install Modules\n app.useModules();\n\n // Init Store\n app.initStore();\n\n // Init\n if (app.params.init) {\n if (device.cordova && app.params.initOnDeviceReady) {\n $(d).on('deviceready', () => {\n app.init();\n });\n } else {\n app.init();\n }\n }\n\n // Return app instance\n return app;\n }\n\n setColorTheme(color) {\n if (!color) return;\n const app = this;\n app.colors.primary = color;\n app.setColors();\n }\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\n app.colorsStyleEl.textContent = app.utils.colorThemeCSSStyles(app.colors);\n }\n\n mount(rootEl) {\n const app = this;\n const window = getWindow();\n const document = getDocument();\n const $rootEl = $(rootEl || app.params.el).eq(0);\n app.$el = $rootEl;\n if (app.$el && app.$el[0]) {\n app.el = app.$el[0];\n app.el.f7 = app;\n app.rtl = $rootEl.css('direction') === 'rtl';\n }\n\n // Auto Dark Mode\n const DARK = '(prefers-color-scheme: dark)';\n const LIGHT = '(prefers-color-scheme: light)';\n app.mq = {};\n if (window.matchMedia) {\n app.mq.dark = window.matchMedia(DARK);\n app.mq.light = window.matchMedia(LIGHT);\n }\n app.colorSchemeListener = function colorSchemeListener({ matches, media }) {\n if (!matches) {\n return;\n }\n const html = document.querySelector('html');\n if (media === DARK) {\n html.classList.add('dark');\n app.darkMode = true;\n app.emit('darkModeChange', true);\n } else if (media === LIGHT) {\n html.classList.remove('dark');\n app.darkMode = false;\n app.emit('darkModeChange', false);\n }\n };\n app.emit('mount');\n }\n\n initStore() {\n const app = this;\n if (typeof app.params.store !== 'undefined' && app.params.store.__store) {\n app.store = app.params.store;\n } else {\n app.store = app.createStore(app.params.store);\n }\n }\n\n enableAutoDarkMode() {\n const window = getWindow();\n const document = getDocument();\n if (!window.matchMedia) return;\n const app = this;\n const html = document.querySelector('html');\n if (app.mq.dark && app.mq.light) {\n app.mq.dark.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\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\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\n initAppComponent(callback) {\n const app = this;\n app.router.componentLoader(\n app.params.component,\n app.params.componentUrl,\n { componentOptions: { el: app.$el[0] } },\n (el) => {\n app.$el = $(el);\n app.$el[0].f7 = app;\n app.$elComponent = el.f7Component;\n app.el = app.$el[0];\n if (callback) callback();\n },\n () => {},\n );\n }\n\n init(rootEl) {\n const app = this;\n\n app.setColors();\n app.mount(rootEl);\n\n const init = () => {\n if (app.initialized) return;\n\n app.$el.addClass('framework7-initializing');\n\n // RTL attr\n if (app.rtl) {\n $('html').attr('dir', 'rtl');\n }\n\n // Auto Dark Mode\n if (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(...args) {\n return Framework7.loadModule(...args);\n }\n\n // eslint-disable-next-line\n loadModules(...args) {\n return Framework7.loadModules(...args);\n }\n\n getVnodeHooks(hook, id) {\n const app = this;\n if (!app.vnodeHooks || !app.vnodeHooks[hook]) return [];\n return app.vnodeHooks[hook][id] || [];\n }\n\n // eslint-disable-next-line\n get $() {\n return $;\n }\n\n static get Dom7() {\n return $;\n }\n\n static get $() {\n return $;\n }\n\n static get device() {\n return getDevice();\n }\n\n static get support() {\n return getSupport();\n }\n\n static get Class() {\n return Framework7Class;\n }\n\n static get Events() {\n return EventsClass;\n }\n}\n\nFramework7.$jsx = $jsx;\nFramework7.ModalMethods = ModalMethods;\nFramework7.ConstructorMethods = ConstructorMethods;\n\nFramework7.loadModule = loadModule;\nFramework7.loadModules = function loadModules(modules) {\n return Promise.all(modules.map((module) => Framework7.loadModule(module)));\n};\n\nexport default Framework7;\n","import { getDocument } from 'ssr-window';\nimport { getDevice } from '../../shared/get-device.js';\n\nexport default {\n name: 'device',\n static: {\n getDevice,\n },\n on: {\n init() {\n const document = getDocument();\n const device = getDevice();\n const classNames = [];\n const html = document.querySelector('html');\n const metaStatusbar = document.querySelector(\n 'meta[name=\"apple-mobile-web-app-status-bar-style\"]',\n );\n if (!html) return;\n if (\n device.standalone &&\n device.ios &&\n metaStatusbar &&\n metaStatusbar.content === 'black-translucent'\n ) {\n classNames.push('device-full-viewport');\n }\n\n // Pixel Ratio\n classNames.push(`device-pixel-ratio-${Math.floor(device.pixelRatio)}`);\n // OS classes\n if (device.os && !device.desktop) {\n classNames.push(`device-${device.os}`);\n } else if (device.desktop) {\n classNames.push('device-desktop');\n if (device.os) {\n classNames.push(`device-${device.os}`);\n }\n }\n if (device.cordova) {\n classNames.push('device-cordova');\n }\n if (device.capacitor) {\n classNames.push('device-capacitor');\n }\n\n // Add html classes\n classNames.forEach((className) => {\n html.classList.add(className);\n });\n },\n },\n};\n","import { getSupport } from '../../shared/get-support.js';\n\nexport default {\n name: 'support',\n static: {\n getSupport,\n },\n};\n","import * as utils from '../../shared/utils.js';\n\nexport default {\n name: 'utils',\n proto: {\n utils,\n },\n static: {\n utils,\n },\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport { getDevice } from '../../shared/get-device.js';\n\nexport default {\n name: 'resize',\n create() {\n const app = this;\n app.getSize = () => {\n if (!app.el) return { width: 0, height: 0, left: 0, top: 0 };\n const offset = app.$el.offset();\n const [width, height, left, top] = [\n app.el.offsetWidth,\n app.el.offsetHeight,\n offset.left,\n offset.top,\n ];\n app.width = width;\n app.height = height;\n app.left = left;\n app.top = top;\n return { width, height, left, top };\n };\n },\n on: {\n init() {\n const app = this;\n const window = getWindow();\n\n // Get Size\n app.getSize();\n\n // Emit resize\n window.addEventListener(\n 'resize',\n () => {\n app.emit('resize');\n },\n false,\n );\n\n // Emit orientationchange\n window.addEventListener('orientationchange', () => {\n app.emit('orientationchange');\n });\n },\n orientationchange() {\n const document = getDocument();\n const device = getDevice();\n // Fix iPad weird body scroll\n if (device.ipad) {\n document.body.scrollLeft = 0;\n setTimeout(() => {\n document.body.scrollLeft = 0;\n }, 0);\n }\n },\n resize() {\n const app = this;\n app.getSize();\n },\n },\n};\n","/* eslint-disable no-nested-ternary */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport { extend } from '../../shared/utils.js';\n\nfunction initTouch() {\n const app = this;\n const device = getDevice();\n const support = getSupport();\n const window = getWindow();\n const document = getDocument();\n const params = app.params.touch;\n const useRipple = params[`${app.theme}TouchRipple`];\n\n if (device.ios && device.webView) {\n // Strange hack required for iOS 8 webview to work on inputs\n window.addEventListener('touchstart', () => {});\n }\n\n let touchStartX;\n let touchStartY;\n let targetElement;\n let isMoved;\n let tapHoldFired;\n let tapHoldTimeout;\n let preventClick;\n\n let activableElement;\n let activeTimeout;\n\n let rippleWave;\n let rippleTarget;\n let rippleTimeout;\n\n function findActivableElement(el) {\n const target = $(el);\n const parents = target.parents(params.activeStateElements);\n if (target.closest('.no-active-state').length) {\n return null;\n }\n let activable;\n if (target.is(params.activeStateElements)) {\n activable = target;\n }\n if (parents.length > 0) {\n activable = activable ? activable.add(parents) : parents;\n }\n if (activable && activable.length > 1) {\n const newActivable = [];\n let preventPropagation;\n for (let i = 0; i < activable.length; i += 1) {\n if (!preventPropagation) {\n newActivable.push(activable[i]);\n if (\n activable.eq(i).hasClass('prevent-active-state-propagation') ||\n activable.eq(i).hasClass('no-active-state-propagation')\n ) {\n preventPropagation = true;\n }\n }\n }\n activable = $(newActivable);\n }\n return activable || target;\n }\n\n function isInsideScrollableView(el) {\n const pageContent = el.parents('.page-content');\n return pageContent.length > 0;\n }\n\n function addActive() {\n if (!activableElement) return;\n activableElement.addClass('active-state');\n }\n function removeActive() {\n if (!activableElement) return;\n activableElement.removeClass('active-state');\n activableElement = null;\n }\n\n // Ripple handlers\n function findRippleElement(el) {\n const rippleElements = params.touchRippleElements;\n const $el = $(el);\n if ($el.is(rippleElements)) {\n if ($el.hasClass('no-ripple')) {\n return false;\n }\n return $el;\n }\n if ($el.parents(rippleElements).length > 0) {\n const rippleParent = $el.parents(rippleElements).eq(0);\n if (rippleParent.hasClass('no-ripple')) {\n return false;\n }\n return rippleParent;\n }\n return false;\n }\n function createRipple($el, x, y) {\n if (!$el) return;\n rippleWave = app.touchRipple.create(app, $el, x, y);\n }\n\n function removeRipple() {\n if (!rippleWave) return;\n rippleWave.remove();\n rippleWave = undefined;\n rippleTarget = undefined;\n }\n function rippleTouchStart(el) {\n rippleTarget = findRippleElement(el);\n if (!rippleTarget || rippleTarget.length === 0) {\n rippleTarget = undefined;\n return;\n }\n const inScrollable = isInsideScrollableView(rippleTarget);\n\n if (!inScrollable) {\n removeRipple();\n createRipple(rippleTarget, touchStartX, touchStartY);\n } else {\n clearTimeout(rippleTimeout);\n rippleTimeout = setTimeout(() => {\n removeRipple();\n createRipple(rippleTarget, touchStartX, touchStartY);\n }, 80);\n }\n }\n function rippleTouchMove() {\n clearTimeout(rippleTimeout);\n removeRipple();\n }\n function rippleTouchEnd() {\n if (!rippleWave && rippleTarget && !isMoved) {\n clearTimeout(rippleTimeout);\n createRipple(rippleTarget, touchStartX, touchStartY);\n setTimeout(removeRipple, 0);\n } else {\n removeRipple();\n }\n }\n\n // Mouse Handlers\n function handleMouseDown(e) {\n const $activableEl = findActivableElement(e.target);\n if ($activableEl) {\n $activableEl.addClass('active-state');\n if ('which' in e && e.which === 3) {\n setTimeout(() => {\n $('.active-state').removeClass('active-state');\n }, 0);\n }\n }\n\n if (useRipple) {\n touchStartX = e.pageX;\n touchStartY = e.pageY;\n rippleTouchStart(e.target, e.pageX, e.pageY);\n }\n }\n function handleMouseMove() {\n if (!params.activeStateOnMouseMove) {\n $('.active-state').removeClass('active-state');\n }\n if (useRipple) {\n rippleTouchMove();\n }\n }\n function handleMouseUp() {\n $('.active-state').removeClass('active-state');\n if (useRipple) {\n rippleTouchEnd();\n }\n }\n\n function handleTouchCancel() {\n targetElement = null;\n\n // Remove Active State\n clearTimeout(activeTimeout);\n clearTimeout(tapHoldTimeout);\n if (params.activeState) {\n removeActive();\n }\n\n // Remove Ripple\n if (useRipple) {\n rippleTouchEnd();\n }\n }\n\n let isScrolling;\n let isSegmentedStrong = false;\n let segmentedStrongEl = null;\n\n const touchMoveActivableIos = '.dialog-button, .actions-button';\n let isTouchMoveActivable = false;\n let touchmoveActivableEl = null;\n\n function handleTouchStart(e) {\n 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(\n '.segmented-strong .button-active, .segmented-strong .tab-link-active',\n );\n isTouchMoveActivable = app.theme === 'ios' && e.target.closest(touchMoveActivableIos);\n if (isSegmentedStrong) {\n segmentedStrongEl = isSegmentedStrong.closest('.segmented-strong');\n }\n\n if (params.activeState) {\n activableElement = findActivableElement(targetElement);\n if (activableElement && !isInsideScrollableView(activableElement)) {\n addActive();\n } else if (activableElement) {\n activeTimeout = setTimeout(addActive, 80);\n }\n }\n if (useRipple) {\n rippleTouchStart(targetElement, touchStartX, touchStartY);\n }\n return true;\n }\n function handleTouchMove(e) {\n if (!e.isTrusted) return;\n let touch;\n let distance;\n let shouldRemoveActive = true;\n\n if (e.type === 'touchmove') {\n touch = e.targetTouches[0];\n distance = params.touchClicksDistanceThreshold;\n }\n\n const touchCurrentX = e.targetTouches[0].pageX;\n const touchCurrentY = e.targetTouches[0].pageY;\n\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(\n isScrolling || Math.abs(touchCurrentY - touchStartY) > Math.abs(touchCurrentX - touchStartX)\n );\n }\n\n if (isTouchMoveActivable || (!isScrolling && isSegmentedStrong && segmentedStrongEl)) {\n if (e.cancelable) e.preventDefault();\n }\n\n if (!isScrolling && isSegmentedStrong && segmentedStrongEl) {\n const elementFromPoint = document.elementFromPoint(\n e.targetTouches[0].clientX,\n e.targetTouches[0].clientY,\n );\n const buttonEl = elementFromPoint.closest(\n '.segmented-strong .button:not(.button-active):not(.tab-link-active)',\n );\n if (buttonEl && segmentedStrongEl.contains(buttonEl)) {\n $(buttonEl).trigger('click', 'f7Segmented');\n targetElement = buttonEl;\n }\n }\n\n if (distance && touch) {\n const pageX = touch.pageX;\n const pageY = touch.pageY;\n if (Math.abs(pageX - touchStartX) > distance || Math.abs(pageY - touchStartY) > distance) {\n isMoved = true;\n }\n } else {\n isMoved = true;\n }\n if (isMoved) {\n preventClick = true;\n // Keep active state on touchMove (for dialog and actions buttons)\n if (isTouchMoveActivable) {\n const elementFromPoint = document.elementFromPoint(\n e.targetTouches[0].clientX,\n e.targetTouches[0].clientY,\n );\n touchmoveActivableEl = elementFromPoint.closest(touchMoveActivableIos);\n if (\n touchmoveActivableEl &&\n activableElement &&\n activableElement[0] === touchmoveActivableEl\n ) {\n shouldRemoveActive = false;\n } else if (touchmoveActivableEl) {\n setTimeout(() => {\n activableElement = findActivableElement(touchmoveActivableEl);\n addActive();\n });\n }\n }\n if (params.tapHold) {\n clearTimeout(tapHoldTimeout);\n }\n if (params.activeState && shouldRemoveActive) {\n clearTimeout(activeTimeout);\n removeActive();\n }\n if (useRipple) {\n rippleTouchMove();\n }\n }\n }\n function handleTouchEnd(e) {\n 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\n if (params.tapHold) {\n tapHoldTimeout = setTimeout(\n () => {\n tapHoldFired = false;\n },\n device.ios || device.androidChrome ? 100 : 400,\n );\n }\n preventClick = false;\n targetElement = null;\n\n return !localPreventClick;\n }\n\n function emitAppTouchEvent(name, e) {\n app.emit({\n events: name,\n data: [e],\n });\n }\n function appClick(e) {\n emitAppTouchEvent('click', e);\n }\n function appTouchStartActive(e) {\n emitAppTouchEvent('touchstart touchstart:active', e);\n }\n function appTouchMoveActive(e) {\n emitAppTouchEvent('touchmove touchmove:active', e);\n }\n function appTouchEndActive(e) {\n emitAppTouchEvent('touchend touchend:active', e);\n }\n function appTouchStartPassive(e) {\n emitAppTouchEvent('touchstart:passive', e);\n }\n function appTouchMovePassive(e) {\n emitAppTouchEvent('touchmove:passive', e);\n }\n function appTouchEndPassive(e) {\n emitAppTouchEvent('touchend:passive', e);\n }\n\n const passiveListener = support.passiveListener ? { passive: true } : false;\n const passiveListenerCapture = support.passiveListener ? { passive: true, capture: true } : true;\n const activeListener = support.passiveListener ? { passive: false } : false;\n const activeListenerCapture = support.passiveListener ? { passive: false, capture: true } : true;\n\n document.addEventListener('click', appClick, true);\n\n if (support.passiveListener) {\n document.addEventListener(app.touchEvents.start, appTouchStartActive, activeListenerCapture);\n document.addEventListener(app.touchEvents.move, appTouchMoveActive, activeListener);\n document.addEventListener(app.touchEvents.end, appTouchEndActive, activeListener);\n\n document.addEventListener(app.touchEvents.start, appTouchStartPassive, passiveListenerCapture);\n document.addEventListener(app.touchEvents.move, appTouchMovePassive, passiveListener);\n document.addEventListener(app.touchEvents.end, appTouchEndPassive, passiveListener);\n } else {\n document.addEventListener(\n app.touchEvents.start,\n (e) => {\n appTouchStartActive(e);\n appTouchStartPassive(e);\n },\n true,\n );\n document.addEventListener(\n app.touchEvents.move,\n (e) => {\n appTouchMoveActive(e);\n appTouchMovePassive(e);\n },\n false,\n );\n document.addEventListener(\n app.touchEvents.end,\n (e) => {\n appTouchEndActive(e);\n appTouchEndPassive(e);\n },\n false,\n );\n }\n\n if (support.touch) {\n app.on('click', handleClick);\n app.on('touchstart', handleTouchStart);\n app.on('touchmove', handleTouchMove);\n app.on('touchend', handleTouchEnd);\n document.addEventListener('touchcancel', handleTouchCancel, { passive: true });\n } else if (params.activeState) {\n app.on('touchstart', handleMouseDown);\n app.on('touchmove', handleMouseMove);\n app.on('touchend', handleMouseUp);\n document.addEventListener('pointercancel', handleMouseUp, { passive: true });\n }\n document.addEventListener('contextmenu', (e) => {\n if (\n params.disableContextMenu &&\n (device.ios ||\n device.android ||\n device.cordova ||\n (window.Capacitor && window.Capacitor.isNative))\n ) {\n e.preventDefault();\n }\n if (useRipple) {\n if (activableElement) removeActive();\n rippleTouchEnd();\n }\n });\n}\n\nexport default {\n name: 'touch',\n params: {\n touch: {\n // Clicks\n touchClicksDistanceThreshold: 5,\n // ContextMenu\n disableContextMenu: false,\n // Tap Hold\n tapHold: false,\n tapHoldDelay: 750,\n tapHoldPreventClicks: true,\n // Active State\n activeState: true,\n activeStateElements:\n 'a, button, label, span, .actions-button, .stepper-button, .stepper-button-plus, .stepper-button-minus, .card-expandable, .link, .item-link, .accordion-item-toggle',\n activeStateOnMouseMove: false,\n mdTouchRipple: true,\n iosTouchRipple: false,\n touchRippleElements:\n '.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:\n '.ripple-inset, .icon-only, .searchbar-disable-button, .input-clear-button, .notification-close-button, .md .navbar .link.back',\n },\n },\n create() {\n const app = this;\n const support = getSupport();\n extend(app, {\n touchEvents: {\n start: support.touch ? 'touchstart' : support.pointerEvents ? 'pointerdown' : 'mousedown',\n move: support.touch ? 'touchmove' : support.pointerEvents ? 'pointermove' : 'mousemove',\n end: support.touch ? 'touchend' : support.pointerEvents ? 'pointerup' : 'mouseup',\n },\n });\n },\n on: {\n init: initTouch,\n },\n};\n","/**\n * Tokenize input string.\n */\nfunction lexer(str) {\n var tokens = [];\n var i = 0;\n while (i < str.length) {\n var char = str[i];\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n if (char === \":\") {\n var name = \"\";\n var j = i + 1;\n while (j < str.length) {\n var code = str.charCodeAt(j);\n if (\n // `0-9`\n (code >= 48 && code <= 57) ||\n // `A-Z`\n (code >= 65 && code <= 90) ||\n // `a-z`\n (code >= 97 && code <= 122) ||\n // `_`\n code === 95) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name)\n throw new TypeError(\"Missing parameter name at \".concat(i));\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n if (char === \"(\") {\n var count = 1;\n var pattern = \"\";\n var j = i + 1;\n if (str[j] === \"?\") {\n throw new TypeError(\"Pattern cannot start with \\\"?\\\" at \".concat(j));\n }\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n }\n else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(\"Capturing groups are not allowed at \".concat(j));\n }\n }\n pattern += str[j++];\n }\n if (count)\n throw new TypeError(\"Unbalanced pattern at \".concat(i));\n if (!pattern)\n throw new TypeError(\"Missing pattern at \".concat(i));\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n tokens.push({ type: \"END\", index: i, value: \"\" });\n return tokens;\n}\n/**\n * Parse a string for the raw tokens.\n */\nexport function parse(str, options) {\n if (options === void 0) { options = {}; }\n var tokens = lexer(str);\n var _a = options.prefixes, prefixes = _a === void 0 ? \"./\" : _a;\n var defaultPattern = \"[^\".concat(escapeString(options.delimiter || \"/#?\"), \"]+?\");\n var result = [];\n var key = 0;\n var i = 0;\n var path = \"\";\n var tryConsume = function (type) {\n if (i < tokens.length && tokens[i].type === type)\n return tokens[i++].value;\n };\n var mustConsume = function (type) {\n var value = tryConsume(type);\n if (value !== undefined)\n return value;\n var _a = tokens[i], nextType = _a.type, index = _a.index;\n throw new TypeError(\"Unexpected \".concat(nextType, \" at \").concat(index, \", expected \").concat(type));\n };\n var consumeText = function () {\n var result = \"\";\n var value;\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n while (i < tokens.length) {\n var char = tryConsume(\"CHAR\");\n var name = tryConsume(\"NAME\");\n var pattern = tryConsume(\"PATTERN\");\n if (name || pattern) {\n var prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n result.push({\n name: name || key++,\n prefix: prefix,\n suffix: \"\",\n pattern: pattern || defaultPattern,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n var value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n var open = tryConsume(\"OPEN\");\n if (open) {\n var prefix = consumeText();\n var name_1 = tryConsume(\"NAME\") || \"\";\n var pattern_1 = tryConsume(\"PATTERN\") || \"\";\n var suffix = consumeText();\n mustConsume(\"CLOSE\");\n result.push({\n name: name_1 || (pattern_1 ? key++ : \"\"),\n pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1,\n prefix: prefix,\n suffix: suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n mustConsume(\"END\");\n }\n return result;\n}\n/**\n * Compile a string to a template function for the path.\n */\nexport function compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\n/**\n * Expose a method for transforming tokens into the path function.\n */\nexport function tokensToFunction(tokens, options) {\n if (options === void 0) { options = {}; }\n var reFlags = flags(options);\n var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;\n // Compile all the tokens into regexps.\n var matches = tokens.map(function (token) {\n if (typeof token === \"object\") {\n return new RegExp(\"^(?:\".concat(token.pattern, \")$\"), reFlags);\n }\n });\n return function (data) {\n var path = \"\";\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n var value = data ? data[token.name] : undefined;\n var optional = token.modifier === \"?\" || token.modifier === \"*\";\n var repeat = token.modifier === \"*\" || token.modifier === \"+\";\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to not repeat, but got an array\"));\n }\n if (value.length === 0) {\n if (optional)\n continue;\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to not be empty\"));\n }\n for (var j = 0; j < value.length; j++) {\n var segment = encode(value[j], token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected all \\\"\".concat(token.name, \"\\\" to match \\\"\").concat(token.pattern, \"\\\", but got \\\"\").concat(segment, \"\\\"\"));\n }\n path += token.prefix + segment + token.suffix;\n }\n continue;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n var segment = encode(String(value), token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to match \\\"\").concat(token.pattern, \"\\\", but got \\\"\").concat(segment, \"\\\"\"));\n }\n path += token.prefix + segment + token.suffix;\n continue;\n }\n if (optional)\n continue;\n var typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to be \").concat(typeOfMessage));\n }\n return path;\n };\n}\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nexport function match(str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys, options);\n}\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nexport function regexpToFunction(re, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.decode, decode = _a === void 0 ? function (x) { return x; } : _a;\n return function (pathname) {\n var m = re.exec(pathname);\n if (!m)\n return false;\n var path = m[0], index = m.index;\n var params = Object.create(null);\n var _loop_1 = function (i) {\n if (m[i] === undefined)\n return \"continue\";\n var key = keys[i - 1];\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map(function (value) {\n return decode(value, key);\n });\n }\n else {\n params[key.name] = decode(m[i], key);\n }\n };\n for (var i = 1; i < m.length; i++) {\n _loop_1(i);\n }\n return { path: path, index: index, params: params };\n };\n}\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path, keys) {\n if (!keys)\n return path;\n var groupsRegex = /\\((?:\\?<(.*?)>)?(?!\\?)/g;\n var index = 0;\n var execResult = groupsRegex.exec(path.source);\n while (execResult) {\n keys.push({\n // Use parenthesized substring match if available, index otherwise\n name: execResult[1] || index++,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\",\n });\n execResult = groupsRegex.exec(path.source);\n }\n return path;\n}\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(paths, keys, options) {\n var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; });\n return new RegExp(\"(?:\".concat(parts.join(\"|\"), \")\"), flags(options));\n}\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nexport function tokensToRegexp(tokens, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d, _e = options.delimiter, delimiter = _e === void 0 ? \"/#?\" : _e, _f = options.endsWith, endsWith = _f === void 0 ? \"\" : _f;\n var endsWithRe = \"[\".concat(escapeString(endsWith), \"]|$\");\n var delimiterRe = \"[\".concat(escapeString(delimiter), \"]\");\n var route = start ? \"^\" : \"\";\n // Iterate over the tokens and create our regexp string.\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n }\n else {\n var prefix = escapeString(encode(token.prefix));\n var suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys)\n keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n var mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += \"(?:\".concat(prefix, \"((?:\").concat(token.pattern, \")(?:\").concat(suffix).concat(prefix, \"(?:\").concat(token.pattern, \"))*)\").concat(suffix, \")\").concat(mod);\n }\n else {\n route += \"(?:\".concat(prefix, \"(\").concat(token.pattern, \")\").concat(suffix, \")\").concat(token.modifier);\n }\n }\n else {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n route += \"((?:\".concat(token.pattern, \")\").concat(token.modifier, \")\");\n }\n else {\n route += \"(\".concat(token.pattern, \")\").concat(token.modifier);\n }\n }\n }\n else {\n route += \"(?:\".concat(prefix).concat(suffix, \")\").concat(token.modifier);\n }\n }\n }\n if (end) {\n if (!strict)\n route += \"\".concat(delimiterRe, \"?\");\n route += !options.endsWith ? \"$\" : \"(?=\".concat(endsWithRe, \")\");\n }\n else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === \"string\"\n ? delimiterRe.indexOf(endToken[endToken.length - 1]) > -1\n : endToken === undefined;\n if (!strict) {\n route += \"(?:\".concat(delimiterRe, \"(?=\").concat(endsWithRe, \"))?\");\n }\n if (!isEndDelimited) {\n route += \"(?=\".concat(delimiterRe, \"|\").concat(endsWithRe, \")\");\n }\n }\n return new RegExp(route, flags(options));\n}\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */\nexport function pathToRegexp(path, keys, options) {\n if (path instanceof RegExp)\n return regexpToRegexp(path, keys);\n if (Array.isArray(path))\n return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\n//# sourceMappingURL=index.js.map","import { getWindow, getDocument } from 'ssr-window';\nimport $ from './dom7.js';\nimport { extend } from './utils.js';\n\nconst History = {\n queue: [],\n clearQueue() {\n if (History.queue.length === 0) return;\n const currentQueue = History.queue.shift();\n currentQueue();\n },\n routerQueue: [],\n clearRouterQueue() {\n if (History.routerQueue.length === 0) return;\n const currentQueue = History.routerQueue.pop();\n const { router, stateUrl, action } = currentQueue;\n\n let animate = router.params.animate;\n if (router.params.browserHistoryAnimate === false) animate = false;\n\n if (action === 'back') {\n router.back({ animate, browserHistory: false });\n }\n if (action === 'load') {\n router.navigate(stateUrl, { animate, browserHistory: false });\n }\n },\n handle(e) {\n if (History.blockPopstate) return;\n const app = this;\n // const mainView = app.views.main;\n let state = e.state;\n History.previousState = History.state;\n History.state = state;\n\n History.allowChange = true;\n History.clearQueue();\n\n state = History.state;\n if (!state) state = {};\n\n app.views.forEach((view) => {\n const router = view.router;\n let viewState = state[view.id];\n if (!viewState && view.params.browserHistory) {\n viewState = {\n url: view.router.history[0],\n };\n }\n if (!viewState) return;\n const stateUrl = viewState.url || undefined;\n\n let animate = router.params.animate;\n if (router.params.browserHistoryAnimate === false) animate = false;\n\n if (stateUrl !== router.url) {\n if (router.history.indexOf(stateUrl) >= 0) {\n // Go Back\n if (router.allowPageChange) {\n router.back({ animate, browserHistory: false });\n } else {\n History.routerQueue.push({\n action: 'back',\n router,\n });\n }\n } else if (router.allowPageChange) {\n // Load page\n router.navigate(stateUrl, { animate, browserHistory: false });\n } else {\n History.routerQueue.unshift({\n action: 'load',\n stateUrl,\n router,\n });\n }\n }\n });\n },\n initViewState(viewId, viewState) {\n const window = getWindow();\n const newState = extend({}, History.state || {}, {\n [viewId]: viewState,\n });\n History.state = newState;\n window.history.replaceState(newState, '');\n },\n push(viewId, viewState, url) {\n const window = getWindow();\n 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\n if (document.readyState && document.readyState === 'complete') {\n History.blockPopstate = false;\n }\n\n $(window).on('popstate', History.handle.bind(app));\n },\n};\n\nexport default History;\n","import $ from '../../shared/dom7.js';\nimport History from '../../shared/history.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport { now } from '../../shared/utils.js';\n\nfunction SwipeBack(r) {\n const router = r;\n const { $el, $navbarsEl, app, params } = router;\n const support = getSupport();\n const device = getDevice();\n let isTouched = false;\n let isMoved = false;\n const touchesStart = {};\n let isScrolling;\n let $currentPageEl = [];\n let $previousPageEl = [];\n let viewContainerWidth;\n let touchesDiff;\n let allowViewTouchMove = true;\n let touchStartTime;\n let $currentNavbarEl = [];\n let $previousNavbarEl = [];\n let dynamicNavbar;\n let $pageShadowEl;\n let $pageOpacityEl;\n\n let animatableNavEls;\n\n const paramsSwipeBackAnimateShadow = params[`${app.theme}SwipeBackAnimateShadow`];\n const paramsSwipeBackAnimateOpacity = params[`${app.theme}SwipeBackAnimateOpacity`];\n const paramsSwipeBackActiveArea = params[`${app.theme}SwipeBackActiveArea`];\n const paramsSwipeBackThreshold = params[`${app.theme}SwipeBackThreshold`];\n\n const transformOrigin = app.rtl ? 'right center' : 'left center';\n const transformOriginTitleLarge = app.rtl\n ? 'calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center'\n : 'calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center';\n\n function animatableNavElements() {\n const els = [];\n const inverter = app.rtl ? -1 : 1;\n const currentNavIsTransparent =\n $currentNavbarEl.hasClass('navbar-transparent') &&\n !$currentNavbarEl.hasClass('navbar-large') &&\n !$currentNavbarEl.hasClass('navbar-transparent-visible');\n const currentNavIsLarge = $currentNavbarEl.hasClass('navbar-large');\n const currentNavIsCollapsed = $currentNavbarEl.hasClass('navbar-large-collapsed');\n const currentNavIsLargeTransparent =\n $currentNavbarEl.hasClass('navbar-large-transparent') ||\n ($currentNavbarEl.hasClass('navbar-large') &&\n $currentNavbarEl.hasClass('navbar-transparent'));\n const previousNavIsTransparent =\n $previousNavbarEl.hasClass('navbar-transparent') &&\n !$previousNavbarEl.hasClass('navbar-large') &&\n !$previousNavbarEl.hasClass('navbar-transparent-visible');\n const previousNavIsLarge = $previousNavbarEl.hasClass('navbar-large');\n const previousNavIsCollapsed = $previousNavbarEl.hasClass('navbar-large-collapsed');\n const previousNavIsLargeTransparent =\n $previousNavbarEl.hasClass('navbar-large-transparent') ||\n ($previousNavbarEl.hasClass('navbar-large') &&\n $previousNavbarEl.hasClass('navbar-transparent'));\n const fromLarge = currentNavIsLarge && !currentNavIsCollapsed;\n const toLarge = previousNavIsLarge && !previousNavIsCollapsed;\n const $currentNavElements = $currentNavbarEl.find(\n '.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg',\n );\n const $previousNavElements = $previousNavbarEl.find(\n '.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg',\n );\n let activeNavBackIconText;\n let previousNavBackIconText;\n\n if (params.iosAnimateNavbarBackIcon) {\n if (\n $currentNavbarEl.hasClass('sliding') ||\n $currentNavbarEl.find('.navbar-inner.sliding').length\n ) {\n activeNavBackIconText = $currentNavbarEl.find('.left').find('.back .icon + span').eq(0);\n } else {\n activeNavBackIconText = $currentNavbarEl\n .find('.left.sliding')\n .find('.back .icon + span')\n .eq(0);\n }\n if (\n $previousNavbarEl.hasClass('sliding') ||\n $previousNavbarEl.find('.navbar-inner.sliding').length\n ) {\n previousNavBackIconText = $previousNavbarEl.find('.left').find('.back .icon + span').eq(0);\n } else {\n previousNavBackIconText = $previousNavbarEl\n .find('.left.sliding')\n .find('.back .icon + span')\n .eq(0);\n }\n if (activeNavBackIconText.length) {\n $previousNavElements.each((el) => {\n if (!$(el).hasClass('title')) return;\n el.f7NavbarLeftOffset += activeNavBackIconText.prev('.icon')[0].offsetWidth;\n });\n }\n }\n $currentNavElements.each((navEl) => {\n const $navEl = $(navEl);\n const isSubnavbar = $navEl.hasClass('subnavbar');\n const isLeft = $navEl.hasClass('left');\n const isTitle = $navEl.hasClass('title');\n const isBg = $navEl.hasClass('navbar-bg');\n if ((isTitle || isBg) && currentNavIsTransparent) return;\n if (!fromLarge && $navEl.hasClass('.title-large')) return;\n const el = {\n el: navEl,\n };\n if (fromLarge) {\n if (isTitle) return;\n if ($navEl.hasClass('title-large')) {\n if (els.indexOf(el) < 0) els.push(el);\n el.overflow = 'visible';\n $navEl.find('.title-large-text').each((subNavEl) => {\n els.push({\n el: subNavEl,\n transform: (progress) => `translateX(${progress * 100 * inverter}%)`,\n });\n });\n return;\n }\n }\n if (toLarge) {\n if (!fromLarge) {\n if ($navEl.hasClass('title-large')) {\n if (els.indexOf(el) < 0) els.push(el);\n el.opacity = 0;\n }\n }\n if (isLeft) {\n if (els.indexOf(el) < 0) els.push(el);\n el.opacity = (progress) => 1 - progress ** 0.33;\n $navEl.find('.back span').each((subNavEl) => {\n els.push({\n el: subNavEl,\n 'transform-origin': transformOrigin,\n transform: (progress) =>\n `translateX(calc(${progress} * (var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset)))) translateY(calc(${progress} * (var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical) / 2))) scale(${\n 1 + 1 * progress\n })`,\n });\n });\n return;\n }\n }\n if (isBg) {\n if (els.indexOf(el) < 0) els.push(el);\n if (!fromLarge && !toLarge) {\n if (currentNavIsCollapsed) {\n if (currentNavIsLargeTransparent) {\n el.className = 'ios-swipeback-navbar-bg-large';\n }\n el.transform = (progress) =>\n `translateX(${\n 100 * progress * inverter\n }%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))`;\n } else {\n el.transform = (progress) => `translateX(${100 * progress * inverter}%)`;\n }\n }\n if (!fromLarge && toLarge) {\n el.className = 'ios-swipeback-navbar-bg-large';\n el.transform = (progress) =>\n `translateX(${100 * progress * inverter}%) translateY(calc(-1 * ${\n 1 - progress\n } * var(--f7-navbar-large-title-height)))`;\n }\n if (fromLarge && toLarge) {\n el.transform = (progress) => `translateX(${100 * progress * inverter}%)`;\n }\n if (fromLarge && !toLarge) {\n el.transform = (progress) =>\n `translateX(${\n 100 * progress * inverter\n }%) translateY(calc(-${progress} * var(--f7-navbar-large-title-height)))`;\n }\n return;\n }\n if ($navEl.hasClass('title-large')) return;\n const isSliding =\n $navEl.hasClass('sliding') || $navEl.parents('.navbar-inner.sliding').length;\n if (els.indexOf(el) < 0) els.push(el);\n if (!isSubnavbar || (isSubnavbar && !isSliding)) {\n el.opacity = (progress) => 1 - progress ** 0.33;\n }\n if (isSliding) {\n let transformTarget = el;\n if (isLeft && activeNavBackIconText.length && params.iosAnimateNavbarBackIcon) {\n const textEl = { el: activeNavBackIconText[0] };\n transformTarget = textEl;\n els.push(textEl);\n }\n transformTarget.transform = (progress) => {\n let activeNavTranslate = progress * transformTarget.el.f7NavbarRightOffset;\n if (device.pixelRatio === 1) activeNavTranslate = Math.round(activeNavTranslate);\n if (isSubnavbar && currentNavIsLarge) {\n return `translate3d(${activeNavTranslate}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`;\n }\n return `translate3d(${activeNavTranslate}px,0,0)`;\n };\n }\n });\n $previousNavElements.each((navEl) => {\n const $navEl = $(navEl);\n const isSubnavbar = $navEl.hasClass('subnavbar');\n const isLeft = $navEl.hasClass('left');\n const isTitle = $navEl.hasClass('title');\n const isBg = $navEl.hasClass('navbar-bg');\n if ((isTitle || isBg) && previousNavIsTransparent) return;\n const el = {\n el: navEl,\n };\n if (toLarge) {\n if (isTitle) return;\n if (els.indexOf(el) < 0) els.push(el);\n\n if ($navEl.hasClass('title-large')) {\n el.opacity = 1;\n el.overflow = 'visible';\n $navEl.find('.title-large-text').each((subNavEl) => {\n els.push({\n el: subNavEl,\n 'transform-origin': transformOriginTitleLarge,\n opacity: (progress) => progress ** 3,\n transform: (progress) =>\n `translateX(calc(${\n 1 - progress\n } * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(${\n progress - 1\n } * var(--f7-navbar-large-title-height) + ${\n 1 - progress\n } * var(--f7-navbar-large-title-padding-vertical))) scale(${0.5 + progress * 0.5})`,\n });\n });\n return;\n }\n }\n if (isBg) {\n if (els.indexOf(el) < 0) els.push(el);\n if (!fromLarge && !toLarge) {\n if (previousNavIsCollapsed) {\n if (previousNavIsLargeTransparent) {\n el.className = 'ios-swipeback-navbar-bg-large';\n }\n el.transform = (progress) =>\n `translateX(${\n (-100 + 100 * progress) * inverter\n }%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))`;\n } else {\n el.transform = (progress) => `translateX(${(-100 + 100 * progress) * inverter}%)`;\n }\n }\n if (!fromLarge && toLarge) {\n el.transform = (progress) =>\n `translateX(${(-100 + 100 * progress) * inverter}%) translateY(calc(-1 * ${\n 1 - progress\n } * var(--f7-navbar-large-title-height)))`;\n }\n if (fromLarge && !toLarge) {\n el.className = 'ios-swipeback-navbar-bg-large';\n el.transform = (progress) =>\n `translateX(${\n (-100 + 100 * progress) * inverter\n }%) translateY(calc(-${progress} * var(--f7-navbar-large-title-height)))`;\n }\n if (fromLarge && toLarge) {\n el.transform = (progress) => `translateX(${(-100 + 100 * progress) * inverter}%)`;\n }\n\n return;\n }\n if ($navEl.hasClass('title-large')) return;\n const isSliding =\n $navEl.hasClass('sliding') || $previousNavbarEl.children('.navbar-inner.sliding').length;\n if (els.indexOf(el) < 0) els.push(el);\n if (!isSubnavbar || (isSubnavbar && !isSliding)) {\n el.opacity = (progress) => progress ** 3;\n }\n if (isSliding) {\n let transformTarget = el;\n if (isLeft && previousNavBackIconText.length && params.iosAnimateNavbarBackIcon) {\n const textEl = { el: previousNavBackIconText[0] };\n transformTarget = textEl;\n els.push(textEl);\n }\n transformTarget.transform = (progress) => {\n let previousNavTranslate = transformTarget.el.f7NavbarLeftOffset * (1 - progress);\n if (device.pixelRatio === 1) previousNavTranslate = Math.round(previousNavTranslate);\n if (isSubnavbar && previousNavIsLarge) {\n return `translate3d(${previousNavTranslate}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`;\n }\n return `translate3d(${previousNavTranslate}px,0,0)`;\n };\n }\n });\n return els;\n }\n\n function setAnimatableNavElements({ progress, reset, transition, reflow } = {}) {\n const styles = ['overflow', 'transform', 'transform-origin', 'opacity'];\n if (transition === true || transition === false) {\n for (let i = 0; i < animatableNavEls.length; i += 1) {\n const el = animatableNavEls[i];\n if (el && el.el) {\n if (transition === true) el.el.classList.add('navbar-page-transitioning');\n if (transition === false) el.el.classList.remove('navbar-page-transitioning');\n }\n }\n }\n if (reflow && animatableNavEls.length && animatableNavEls[0] && animatableNavEls[0].el) {\n // eslint-disable-next-line\n animatableNavEls[0].el._clientLeft = animatableNavEls[0].el.clientLeft;\n }\n for (let i = 0; i < animatableNavEls.length; i += 1) {\n const el = animatableNavEls[i];\n if (el && el.el) {\n if (el.className && !el.classNameSet && !reset) {\n el.el.classList.add(el.className);\n el.classNameSet = true;\n }\n if (el.className && reset) {\n el.el.classList.remove(el.className);\n }\n for (let j = 0; j < styles.length; j += 1) {\n const styleProp = styles[j];\n if (el[styleProp]) {\n if (reset) {\n el.el.style[styleProp] = '';\n } else if (typeof el[styleProp] === 'function') {\n el.el.style[styleProp] = el[styleProp](progress);\n } else {\n el.el.style[styleProp] = el[styleProp];\n }\n }\n }\n }\n }\n }\n\n function handleTouchStart(e) {\n if (!e.isTrusted) return;\n const swipeBackEnabled = params[`${app.theme}SwipeBack`];\n if (\n !allowViewTouchMove ||\n !swipeBackEnabled ||\n isTouched ||\n (app.swipeout && app.swipeout.el) ||\n !router.allowPageChange\n )\n return;\n if ($(e.target).closest('.range-slider, .calendar-months').length > 0) return;\n if (\n $(e.target).closest('.page-master, .page-master-detail').length > 0 &&\n params.masterDetailBreakpoint > 0 &&\n app.width >= params.masterDetailBreakpoint\n )\n return;\n isMoved = false;\n isTouched = true;\n isScrolling = undefined;\n touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n touchStartTime = now();\n dynamicNavbar = router.dynamicNavbar;\n }\n function handleTouchMove(e) {\n if (!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 =\n !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)) ||\n (pageX < touchesStart.x && !app.rtl) ||\n (pageX > touchesStart.x && app.rtl);\n }\n if (isScrolling || e.f7PreventSwipeBack || app.preventSwipeBack) {\n isTouched = false;\n return;\n }\n if (!isMoved) {\n // Calc values during first move fired\n let cancel = false;\n const target = $(e.target);\n\n const swipeout = target.closest('.swipeout');\n if (swipeout.length > 0) {\n if (!app.rtl && swipeout.find('.swipeout-actions-left').length > 0) cancel = true;\n if (app.rtl && swipeout.find('.swipeout-actions-right').length > 0) cancel = true;\n }\n\n $currentPageEl = target.closest('.page');\n if (\n $currentPageEl.hasClass('no-swipeback') ||\n target.closest('.no-swipeback, .card-opened').length > 0\n )\n cancel = true;\n $previousPageEl = $el.find('.page-previous');\n if ($previousPageEl.length > 1) {\n $previousPageEl = $previousPageEl.eq($previousPageEl.length - 1);\n }\n let notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea;\n viewContainerWidth = $el.width();\n if (app.rtl) {\n notFromBorder =\n touchesStart.x <\n $el.offset().left - $el[0].scrollLeft + (viewContainerWidth - paramsSwipeBackActiveArea);\n } else {\n notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea;\n }\n if (notFromBorder) cancel = true;\n if ($previousPageEl.length === 0 || $currentPageEl.length === 0) cancel = true;\n if (cancel) {\n isTouched = false;\n return;\n }\n\n if (paramsSwipeBackAnimateShadow) {\n $pageShadowEl = $currentPageEl.find('.page-shadow-effect');\n if ($pageShadowEl.length === 0) {\n $pageShadowEl = $('<div class=\"page-shadow-effect\"></div>');\n $currentPageEl.append($pageShadowEl);\n }\n }\n if (paramsSwipeBackAnimateOpacity) {\n $pageOpacityEl = $previousPageEl.find('.page-opacity-effect');\n if ($pageOpacityEl.length === 0) {\n $pageOpacityEl = $('<div class=\"page-opacity-effect\"></div>');\n $previousPageEl.append($pageOpacityEl);\n }\n }\n\n if (dynamicNavbar) {\n $currentNavbarEl = $navbarsEl.find('.navbar-current');\n $previousNavbarEl = $navbarsEl.find('.navbar-previous');\n if ($previousNavbarEl.length > 1) {\n $previousNavbarEl = $previousNavbarEl.eq($previousNavbarEl.length - 1);\n }\n\n animatableNavEls = animatableNavElements($previousNavbarEl, $currentNavbarEl);\n }\n\n // Close/Hide Any Picker\n if ($('.sheet.modal-in').length > 0 && app.sheet) {\n app.sheet.close($('.sheet.modal-in'));\n }\n }\n e.f7PreventSwipePanel = true;\n isMoved = true;\n app.preventSwipePanelBySwipeBack = true;\n e.preventDefault();\n\n // RTL inverter\n const inverter = app.rtl ? -1 : 1;\n\n // Touches diff\n touchesDiff = (pageX - touchesStart.x - paramsSwipeBackThreshold) * inverter;\n if (touchesDiff < 0) touchesDiff = 0;\n const percentage = Math.min(Math.max(touchesDiff / viewContainerWidth, 0), 1);\n\n // Swipe Back Callback\n const callbackData = {\n percentage,\n progress: percentage,\n currentPageEl: $currentPageEl[0],\n previousPageEl: $previousPageEl[0],\n currentNavbarEl: $currentNavbarEl[0],\n previousNavbarEl: $previousNavbarEl[0],\n };\n $el.trigger('swipeback:move', callbackData);\n router.emit('swipebackMove', callbackData);\n\n // Transform pages\n let currentPageTranslate = touchesDiff * inverter;\n let previousPageTranslate = (touchesDiff / 5 - viewContainerWidth / 5) * inverter;\n if (!app.rtl) {\n currentPageTranslate = Math.min(currentPageTranslate, viewContainerWidth);\n previousPageTranslate = Math.min(previousPageTranslate, 0);\n } else {\n currentPageTranslate = Math.max(currentPageTranslate, -viewContainerWidth);\n previousPageTranslate = Math.max(previousPageTranslate, 0);\n }\n if (device.pixelRatio === 1) {\n currentPageTranslate = Math.round(currentPageTranslate);\n previousPageTranslate = Math.round(previousPageTranslate);\n }\n\n router.swipeBackActive = true;\n $([$currentPageEl[0], $previousPageEl[0]]).addClass('page-swipeback-active');\n\n $currentPageEl.transform(`translate3d(${currentPageTranslate}px,0,0)`);\n if (paramsSwipeBackAnimateShadow) $pageShadowEl[0].style.opacity = 1 - 1 * percentage;\n\n if (app.theme === 'ios') {\n $previousPageEl.transform(`translate3d(${previousPageTranslate}px,0,0)`);\n }\n if (paramsSwipeBackAnimateOpacity) $pageOpacityEl[0].style.opacity = 1 - 1 * percentage;\n\n // Dynamic Navbars Animation\n if (!dynamicNavbar) return;\n\n setAnimatableNavElements({ progress: percentage });\n }\n function handleTouchEnd(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({ reset: true });\n }\n return;\n }\n const timeDiff = now() - touchStartTime;\n let pageChanged = false;\n // Swipe back to previous page\n if (\n (timeDiff < 300 && touchesDiff > 10) ||\n (timeDiff >= 300 && touchesDiff > viewContainerWidth / 2)\n ) {\n $currentPageEl\n .removeClass('page-current')\n .addClass(`page-next${app.theme !== 'ios' ? ' page-next-on-right' : ''}`);\n $previousPageEl\n .removeClass('page-previous')\n .addClass('page-current')\n .removeAttr('aria-hidden');\n if ($pageShadowEl) $pageShadowEl[0].style.opacity = '';\n if ($pageOpacityEl) $pageOpacityEl[0].style.opacity = '';\n if (dynamicNavbar) {\n router.setNavbarPosition($currentNavbarEl, 'next');\n router.setNavbarPosition($previousNavbarEl, 'current', false);\n }\n pageChanged = true;\n }\n // Reset custom styles\n // Add transitioning class for transition-duration\n $pages.addClass('page-transitioning page-transitioning-swipeback');\n if (device.ios) {\n // eslint-disable-next-line\n $currentPageEl[0]._clientLeft = $currentPageEl[0].clientLeft;\n }\n $pages.transform('');\n\n if (dynamicNavbar) {\n setAnimatableNavElements({\n progress: pageChanged ? 1 : 0,\n transition: true,\n reflow: !!device.ios,\n });\n }\n allowViewTouchMove = false;\n router.allowPageChange = false;\n\n // Swipe Back Callback\n const callbackData = {\n currentPageEl: $currentPageEl[0],\n previousPageEl: $previousPageEl[0],\n currentNavbarEl: $currentNavbarEl[0],\n previousNavbarEl: $previousNavbarEl[0],\n };\n\n if (pageChanged) {\n // Update Route\n router.currentRoute = $previousPageEl[0].f7Page.route;\n router.currentPage = $previousPageEl[0];\n\n // Page before animation callback\n router.pageCallback('beforeOut', $currentPageEl, $currentNavbarEl, 'current', 'next', {\n route: $currentPageEl[0].f7Page.route,\n swipeBack: true,\n });\n router.pageCallback(\n 'beforeIn',\n $previousPageEl,\n $previousNavbarEl,\n 'previous',\n 'current',\n { route: $previousPageEl[0].f7Page.route, swipeBack: true },\n $currentPageEl[0],\n );\n\n $el.trigger('swipeback:beforechange', callbackData);\n router.emit('swipebackBeforeChange', callbackData);\n } else {\n $el.trigger('swipeback:beforereset', callbackData);\n router.emit('swipebackBeforeReset', callbackData);\n }\n\n $currentPageEl.transitionEnd(() => {\n $pages.removeClass('page-transitioning page-transitioning-swipeback');\n if (dynamicNavbar) {\n setAnimatableNavElements({ reset: true, transition: false });\n }\n allowViewTouchMove = true;\n router.allowPageChange = true;\n if (pageChanged) {\n // Update History\n if (router.history.length === 1) {\n router.history.unshift(router.url);\n }\n router.history.pop();\n router.saveHistory();\n\n // Update push state\n if (params.browserHistory) {\n History.back();\n }\n\n // Page after animation callback\n router.pageCallback('afterOut', $currentPageEl, $currentNavbarEl, 'current', 'next', {\n route: $currentPageEl[0].f7Page.route,\n swipeBack: true,\n });\n router.pageCallback('afterIn', $previousPageEl, $previousNavbarEl, 'previous', 'current', {\n route: $previousPageEl[0].f7Page.route,\n swipeBack: true,\n });\n\n // Remove Old Page\n\n router.pageCallback('beforeRemove', $currentPageEl, $currentNavbarEl, 'next', {\n swipeBack: true,\n });\n router.removePage($currentPageEl);\n if (dynamicNavbar) {\n router.removeNavbar($currentNavbarEl);\n }\n\n $el.trigger('swipeback:afterchange', callbackData);\n router.emit('swipebackAfterChange', callbackData);\n\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n\n if (params.preloadPreviousPage) {\n router.back(router.history[router.history.length - 2], { preload: true });\n }\n } else {\n $el.trigger('swipeback:afterreset', callbackData);\n router.emit('swipebackAfterReset', callbackData);\n }\n if ($pageShadowEl && $pageShadowEl.length > 0) $pageShadowEl.remove();\n if ($pageOpacityEl && $pageOpacityEl.length > 0) $pageOpacityEl.remove();\n });\n }\n\n function attachEvents() {\n const passiveListener =\n app.touchEvents.start === 'touchstart' && support.passiveListener\n ? { passive: true, capture: false }\n : false;\n $el.on(app.touchEvents.start, handleTouchStart, passiveListener);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n }\n function detachEvents() {\n const passiveListener =\n app.touchEvents.start === 'touchstart' && support.passiveListener\n ? { passive: true, capture: false }\n : false;\n $el.off(app.touchEvents.start, handleTouchStart, passiveListener);\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n }\n\n attachEvents();\n\n router.on('routerDestroy', detachEvents);\n}\n\nexport default SwipeBack;\n","import { extend } from '../../shared/utils.js';\n\nexport default function redirect(direction, route, options) {\n const router = this;\n const r = route.route.redirect;\n const method = direction === 'forward' ? 'navigate' : 'back';\n if (options.initial && router.params.browserHistory) {\n options.replaceState = true; // eslint-disable-line\n options.history = true; // eslint-disable-line\n }\n function redirectResolve(redirectUrl, redirectOptions = {}) {\n router.allowPageChange = true;\n router[method](redirectUrl, extend({}, options, redirectOptions));\n }\n function redirectReject() {\n router.allowPageChange = true;\n }\n if (typeof r === 'function') {\n router.allowPageChange = false;\n const redirectUrl = r.call(router, {\n router,\n to: route,\n resolve: redirectResolve,\n reject: redirectReject,\n direction,\n app: router.app,\n });\n if (redirectUrl && typeof redirectUrl === 'string') {\n router.allowPageChange = true;\n return router[method](redirectUrl, options);\n }\n return router;\n }\n return router[method](r, options);\n}\n","function processQueue(router, routerQueue, routeQueue, to, from, resolve, reject, direction) {\n const queue = [];\n\n if (Array.isArray(routeQueue)) {\n queue.push(...routeQueue);\n } else if (routeQueue && typeof routeQueue === 'function') {\n queue.push(routeQueue);\n }\n if (routerQueue) {\n if (Array.isArray(routerQueue)) {\n queue.push(...routerQueue);\n } else {\n queue.push(routerQueue);\n }\n }\n\n function next() {\n if (queue.length === 0) {\n resolve();\n return;\n }\n const queueItem = queue.shift();\n\n queueItem.call(router, {\n router,\n to,\n from,\n resolve() {\n next();\n },\n reject() {\n reject();\n },\n direction,\n app: router.app,\n });\n }\n next();\n}\n\nexport default function processRouteQueue(to, from, resolve, reject, direction) {\n const router = this;\n function enterNextRoute() {\n if (to && to.route && (router.params.routesBeforeEnter || to.route.beforeEnter)) {\n router.allowPageChange = false;\n processQueue(\n router,\n router.params.routesBeforeEnter,\n to.route.beforeEnter,\n to,\n from,\n () => {\n router.allowPageChange = true;\n resolve();\n },\n () => {\n reject();\n },\n direction,\n );\n } else {\n resolve();\n }\n }\n function leaveCurrentRoute() {\n if (from && from.route && (router.params.routesBeforeLeave || from.route.beforeLeave)) {\n router.allowPageChange = false;\n processQueue(\n router,\n router.params.routesBeforeLeave,\n from.route.beforeLeave,\n to,\n from,\n () => {\n router.allowPageChange = true;\n enterNextRoute();\n },\n () => {\n reject();\n },\n direction,\n );\n } else {\n enterNextRoute();\n }\n }\n leaveCurrentRoute();\n}\n","export default function appRouterCheck(router, method) {\n if (!router.view) {\n throw new Error(\n `Framework7: it is not allowed to use router methods on global app router. Use router methods only on related View, e.g. app.views.main.router.${method}(...)`,\n );\n }\n}\n","export default function asyncComponent(router, component, resolve, reject) {\n function resolvePromise(componentPromise) {\n componentPromise\n .then((c) => {\n // eslint-disable-next-line\n resolve({ component: c.default || c._default || c });\n })\n .catch((err) => {\n reject();\n throw new Error(err, { cause: err });\n });\n }\n if (component instanceof Promise) {\n resolvePromise(component);\n return;\n }\n const asyncComponentResult = component.call(router);\n if (asyncComponentResult instanceof Promise) {\n resolvePromise(asyncComponentResult);\n } else {\n resolve({ component: asyncComponentResult });\n }\n}\n","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, parseUrlQuery } from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport redirect from './redirect.js';\nimport processRouteQueue from './process-route-queue.js';\nimport appRouterCheck from './app-router-check.js';\nimport asyncComponent from './async-component.js';\n\nfunction refreshPage(props = {}) {\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}\n\nfunction forward(router, el, forwardOptions = {}) {\n const document = getDocument();\n const $el = $(el);\n const app = router.app;\n const view = router.view;\n const options = extend(\n false,\n {\n animate: router.params.animate,\n browserHistory: true,\n replaceState: false,\n history: true,\n reloadCurrent: router.params.reloadPages,\n reloadPrevious: false,\n reloadAll: false,\n clearPreviousHistory: false,\n reloadDetail: router.params.reloadDetail,\n on: {},\n },\n forwardOptions,\n );\n\n const masterDetailEnabled = router.params.masterDetailBreakpoint > 0;\n const isMaster =\n masterDetailEnabled &&\n options.route &&\n options.route.route &&\n (options.route.route.master === true ||\n (typeof options.route.route.master === 'function' &&\n options.route.route.master(app, router)));\n\n let masterPageEl;\n let otherDetailPageEl;\n let detailsInBetweenRemoved = 0;\n\n let currentRouteIsModal = router.currentRoute.modal;\n let modalType;\n if (!currentRouteIsModal) {\n 'popup popover sheet loginScreen actions customModal panel'\n .split(' ')\n .forEach((modalLoadProp) => {\n if (\n router.currentRoute &&\n router.currentRoute.route &&\n router.currentRoute.route[modalLoadProp]\n ) {\n currentRouteIsModal = true;\n modalType = modalLoadProp;\n }\n });\n }\n\n if (currentRouteIsModal) {\n const modalToClose =\n router.currentRoute.modal || router.currentRoute.route.modalInstance || app[modalType].get();\n const previousUrl = router.history[router.history.length - 2];\n let previousRoute = router.findMatchingRoute(previousUrl);\n if (!previousRoute && previousUrl) {\n previousRoute = {\n url: previousUrl,\n path: previousUrl.split('?')[0],\n query: parseUrlQuery(previousUrl),\n route: {\n path: previousUrl.split('?')[0],\n url: previousUrl,\n },\n };\n }\n\n router.modalRemove(modalToClose);\n }\n\n const dynamicNavbar = router.dynamicNavbar;\n\n const $viewEl = router.$el;\n const $newPage = $el;\n const reload = options.reloadPrevious || options.reloadCurrent || options.reloadAll;\n let $oldPage;\n\n let $navbarsEl;\n let $newNavbarEl;\n let $oldNavbarEl;\n\n router.allowPageChange = false;\n if ($newPage.length === 0) {\n router.allowPageChange = true;\n return router;\n }\n\n if ($newPage.length) {\n // Remove theme elements\n router.removeThemeElements($newPage);\n }\n\n if (dynamicNavbar) {\n $newNavbarEl = $newPage.children('.navbar');\n $navbarsEl = router.$navbarsEl;\n if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) {\n // Try from pageData\n $newNavbarEl = $newPage[0].f7Page.$navbarEl;\n }\n }\n\n // Save Keep Alive Cache\n if (\n options.route &&\n options.route.route &&\n options.route.route.keepAlive &&\n !options.route.route.keepAliveData\n ) {\n options.route.route.keepAliveData = {\n pageEl: $el[0],\n };\n }\n\n // Pages In View\n const $pagesInView = $viewEl.children('.page').filter((pageInView) => pageInView !== $newPage[0]);\n\n // Navbars In View\n let $navbarsInView;\n if (dynamicNavbar) {\n $navbarsInView = $navbarsEl\n .children('.navbar')\n .filter((navbarInView) => navbarInView !== $newNavbarEl[0]);\n }\n\n // Exit when reload previous and only 1 page in view so nothing ro reload\n if (options.reloadPrevious && $pagesInView.length < 2) {\n router.allowPageChange = true;\n return router;\n }\n\n // Find Detail' master page\n let isDetail;\n let reloadDetail;\n let isDetailRoot;\n if (masterDetailEnabled && !options.reloadAll) {\n for (let i = 0; i < $pagesInView.length; i += 1) {\n if (!masterPageEl && $pagesInView[i].classList.contains('page-master')) {\n masterPageEl = $pagesInView[i];\n continue; // eslint-disable-line\n }\n }\n isDetail = !isMaster && masterPageEl;\n\n if (isDetail) {\n // Find Other Detail\n if (masterPageEl) {\n for (let i = 0; i < $pagesInView.length; i += 1) {\n if ($pagesInView[i].classList.contains('page-master-detail')) {\n otherDetailPageEl = $pagesInView[i];\n continue; // eslint-disable-line\n }\n }\n }\n }\n reloadDetail =\n isDetail &&\n options.reloadDetail &&\n app.width >= router.params.masterDetailBreakpoint &&\n masterPageEl;\n }\n if (isDetail) {\n isDetailRoot = !otherDetailPageEl || reloadDetail || options.reloadAll || options.reloadCurrent;\n }\n\n // New Page\n let newPagePosition = 'next';\n if (options.reloadCurrent || options.reloadAll || reloadDetail) {\n newPagePosition = 'current';\n } else if (options.reloadPrevious) {\n newPagePosition = 'previous';\n }\n $newPage\n .removeClass('page-previous page-current page-next')\n .addClass(\n `page-${newPagePosition}${isMaster ? ' page-master' : ''}${\n isDetail ? ' page-master-detail' : ''\n }${isDetailRoot ? ' page-master-detail-root' : ''}`,\n )\n .trigger('page:unstack')\n .trigger('page:position', { position: newPagePosition });\n router.emit('pageUnstack', $newPage[0]);\n router.emit('pagePosition', $newPage[0], newPagePosition);\n\n if (isMaster || isDetail) {\n $newPage.trigger('page:role', { role: isMaster ? 'master' : 'detail', root: !!isDetailRoot });\n router.emit('pageRole', $newPage[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot,\n });\n }\n\n if (dynamicNavbar && $newNavbarEl.length) {\n $newNavbarEl\n .removeClass('navbar-previous navbar-current navbar-next')\n .addClass(\n `navbar-${newPagePosition}${isMaster ? ' navbar-master' : ''}${\n isDetail ? ' navbar-master-detail' : ''\n }${isDetailRoot ? ' navbar-master-detail-root' : ''}`,\n );\n $newNavbarEl.trigger('navbar:position', { position: newPagePosition });\n router.emit('navbarPosition', $newNavbarEl[0], newPagePosition);\n if (isMaster || isDetail) {\n router.emit('navbarRole', $newNavbarEl[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot,\n });\n }\n }\n\n // Find Old Page\n if (options.reloadCurrent || reloadDetail) {\n if (reloadDetail) {\n $oldPage = $pagesInView.filter((pageEl) => !pageEl.classList.contains('page-master'));\n if (dynamicNavbar) {\n $oldNavbarEl = $($oldPage.map((pageEl) => app.navbar.getElByPage(pageEl)));\n }\n if ($oldPage.length > 1 && masterPageEl) {\n detailsInBetweenRemoved = $oldPage.length - 1;\n $(masterPageEl).removeClass('page-master-stacked').trigger('page:masterunstack');\n router.emit('pageMasterUnstack', masterPageEl);\n if (dynamicNavbar) {\n $(app.navbar.getElByPage(masterPageEl)).removeClass('navbar-master-stacked');\n router.emit('navbarMasterUnstack', app.navbar.getElByPage(masterPageEl));\n }\n }\n } else {\n $oldPage = $pagesInView.eq($pagesInView.length - 1);\n if (dynamicNavbar) {\n $oldNavbarEl = $(app.navbar.getElByPage($oldPage));\n }\n }\n } else if (options.reloadPrevious) {\n $oldPage = $pagesInView.eq($pagesInView.length - 2);\n if (dynamicNavbar) {\n // $oldNavbarEl = $navbarsInView.eq($pagesInView.length - 2);\n $oldNavbarEl = $(app.navbar.getElByPage($oldPage));\n }\n } else if (options.reloadAll) {\n $oldPage = $pagesInView.filter((pageEl) => pageEl !== $newPage[0]);\n if (dynamicNavbar) {\n $oldNavbarEl = $navbarsInView.filter((navbarEl) => navbarEl !== $newNavbarEl[0]);\n }\n } else {\n let removedPageEls = [];\n let removedNavbarEls = [];\n if ($pagesInView.length > 1) {\n let i = 0;\n for (i = 0; i < $pagesInView.length - 1; i += 1) {\n if (masterPageEl && $pagesInView[i] === masterPageEl) {\n $pagesInView.eq(i).addClass('page-master-stacked');\n $pagesInView.eq(i).trigger('page:masterstack');\n router.emit('pageMasterStack', $pagesInView[i]);\n if (dynamicNavbar) {\n $(app.navbar.getElByPage(masterPageEl)).addClass('navbar-master-stacked');\n router.emit('navbarMasterStack', app.navbar.getElByPage(masterPageEl));\n }\n continue; // eslint-disable-line\n }\n const oldNavbarEl = app.navbar.getElByPage($pagesInView.eq(i));\n\n // Page remove event\n removedPageEls.push($pagesInView[i]);\n router.pageCallback(\n 'beforeRemove',\n $pagesInView[i],\n $navbarsInView && $navbarsInView[i],\n 'previous',\n undefined,\n options,\n );\n router.removePage($pagesInView[i]);\n if (dynamicNavbar && oldNavbarEl) {\n removedNavbarEls.push(oldNavbarEl);\n router.removeNavbar(oldNavbarEl);\n }\n }\n }\n $oldPage = $viewEl\n .children('.page')\n .filter((pageEl) => pageEl !== $newPage[0] && removedPageEls.indexOf(pageEl) < 0);\n if (dynamicNavbar) {\n $oldNavbarEl = $navbarsEl\n .children('.navbar')\n .filter(\n (navbarEl) =>\n navbarEl !== $newNavbarEl[0] && removedNavbarEls.indexOf(removedNavbarEls) < 0,\n );\n }\n removedPageEls = [];\n removedNavbarEls = [];\n }\n\n if (isDetail && !options.reloadAll) {\n if ($oldPage.length > 1 || reloadDetail) {\n $oldPage = $oldPage.filter((pageEl) => !pageEl.classList.contains('page-master'));\n }\n if ($oldNavbarEl && ($oldNavbarEl.length > 1 || reloadDetail)) {\n $oldNavbarEl = $oldNavbarEl.filter(\n (navbarEl) => !navbarEl.classList.contains('navbar-master'),\n );\n }\n }\n\n // Push State\n if (\n router.params.browserHistory &&\n (options.browserHistory || options.replaceState) &&\n !options.reloadPrevious\n ) {\n const browserHistoryRoot = router.params.browserHistoryRoot || '';\n History[\n options.reloadCurrent ||\n (reloadDetail && otherDetailPageEl) ||\n options.reloadAll ||\n options.replaceState\n ? 'replace'\n : 'push'\n ](\n view.id,\n {\n url: options.route.url,\n },\n browserHistoryRoot + router.params.browserHistorySeparator + options.route.url,\n );\n }\n\n if (!options.reloadPrevious) {\n // Current Page & Navbar\n router.currentPageEl = $newPage[0];\n if (dynamicNavbar && $newNavbarEl.length) {\n router.currentNavbarEl = $newNavbarEl[0];\n } else {\n delete router.currentNavbarEl;\n }\n\n // Current Route\n router.currentRoute = options.route;\n }\n\n // Update router history\n const url = options.route.url;\n if (options.history) {\n if (\n ((options.reloadCurrent || (reloadDetail && otherDetailPageEl)) && router.history.length) >\n 0 ||\n options.replaceState\n ) {\n if (reloadDetail && detailsInBetweenRemoved > 0) {\n router.history = router.history.slice(0, router.history.length - detailsInBetweenRemoved);\n router.propsHistory = router.propsHistory.slice(\n 0,\n router.propsHistory.length - detailsInBetweenRemoved,\n );\n }\n router.history[router.history.length - (options.reloadPrevious ? 2 : 1)] = url;\n router.propsHistory[router.propsHistory.length - (options.reloadPrevious ? 2 : 1)] =\n 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(\n 'mounted',\n $newPage,\n $newNavbarEl,\n newPagePosition,\n reload ? newPagePosition : 'current',\n options,\n $oldPage,\n );\n } else if (\n options.route &&\n options.route.route &&\n options.route.route.keepAlive &&\n !$newPage[0].f7PageMounted\n ) {\n $newPage[0].f7PageMounted = true;\n router.pageCallback(\n 'mounted',\n $newPage,\n $newNavbarEl,\n newPagePosition,\n reload ? newPagePosition : 'current',\n options,\n $oldPage,\n );\n }\n\n // Remove old page\n if ((options.reloadCurrent || reloadDetail) && $oldPage.length > 0) {\n // 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(\n 'beforeRemove',\n $oldPageEl,\n $oldNavbarEl && $oldNavbarEl.eq(index),\n 'previous',\n undefined,\n options,\n );\n router.removePage($oldPageEl);\n if (dynamicNavbar && $oldNavbarElEl.length) {\n router.removeNavbar($oldNavbarElEl);\n }\n });\n } 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(\n options.route.route.tab,\n extend({}, options, {\n history: false,\n browserHistory: false,\n }),\n );\n }\n\n // Check master detail\n if (masterDetailEnabled) {\n view.checkMasterDetailBreakpoint();\n }\n\n // Page init and before init events\n router.pageCallback(\n 'init',\n $newPage,\n $newNavbarEl,\n newPagePosition,\n reload ? newPagePosition : 'current',\n options,\n $oldPage,\n );\n\n if (options.reloadCurrent || options.reloadAll || reloadDetail) {\n router.allowPageChange = true;\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, newPagePosition, 'current', options);\n $newPage.removeAttr('aria-hidden');\n if (dynamicNavbar && $newNavbarEl) {\n $newNavbarEl.removeAttr('aria-hidden');\n }\n router.pageCallback('afterIn', $newPage, $newNavbarEl, newPagePosition, 'current', options);\n if (options.reloadCurrent && options.clearPreviousHistory) router.clearPreviousHistory();\n if (reloadDetail) {\n router.setPagePosition($(masterPageEl), 'previous');\n if (masterPageEl.f7Page && masterPageEl.f7Page.navbarEl) {\n router.setNavbarPosition($(masterPageEl.f7Page.navbarEl), 'previous');\n }\n }\n return router;\n }\n if (options.reloadPrevious) {\n router.allowPageChange = true;\n return router;\n }\n\n // Before animation event\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'previous', options);\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'next', 'current', options);\n\n // Animation\n function afterAnimation() {\n router.setPagePosition($newPage, 'current', false);\n router.setPagePosition($oldPage, 'previous', !$oldPage.hasClass('page-master'));\n if (dynamicNavbar) {\n router.setNavbarPosition($newNavbarEl, 'current', false);\n router.setNavbarPosition($oldNavbarEl, 'previous', !$oldNavbarEl.hasClass('navbar-master'));\n }\n // After animation event\n router.allowPageChange = true;\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'previous', options);\n router.pageCallback('afterIn', $newPage, $newNavbarEl, 'next', 'current', options);\n\n let keepOldPage =\n (router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`]) && !isMaster;\n if (!keepOldPage) {\n if (\n $newPage.hasClass('smart-select-page') ||\n $newPage.hasClass('photo-browser-page') ||\n $newPage.hasClass('autocomplete-page') ||\n $newPage.hasClass('color-picker-page')\n ) {\n keepOldPage = true;\n }\n }\n if (!keepOldPage) {\n if (!($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\n if (router.params.browserHistory) {\n History.clearRouterQueue();\n }\n }\n function setPositionClasses() {\n router.setPagePosition($oldPage, 'current', false);\n router.setPagePosition($newPage, 'next', false);\n if (dynamicNavbar) {\n router.setNavbarPosition($oldNavbarEl, 'current', false);\n router.setNavbarPosition($newNavbarEl, 'next', false);\n }\n }\n if (options.animate && !(isMaster && app.width >= router.params.masterDetailBreakpoint)) {\n const delay = router.params[`${router.app.theme}PageLoadDelay`];\n let transition = router.params.transition;\n if (options.transition) transition = options.transition;\n if (!transition && router.currentRoute && router.currentRoute.route) {\n transition = router.currentRoute.route.transition;\n }\n if (!transition && router.currentRoute && router.currentRoute.route.options) {\n transition = router.currentRoute.route.options.transition;\n }\n if (transition) {\n $newPage[0].f7PageTransition = transition;\n }\n\n if (delay) {\n setTimeout(() => {\n setPositionClasses();\n router.animate(\n $oldPage,\n $newPage,\n $oldNavbarEl,\n $newNavbarEl,\n 'forward',\n transition,\n () => {\n afterAnimation();\n },\n );\n }, delay);\n } else {\n setPositionClasses();\n router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'forward', transition, () => {\n afterAnimation();\n });\n }\n } else {\n afterAnimation();\n }\n return router;\n}\nfunction load(router, loadParams = {}, loadOptions = {}, ignorePageChange) {\n if (!router.allowPageChange && !ignorePageChange) return router;\n const params = loadParams;\n const options = loadOptions;\n const { url, content, el, pageName, component, componentUrl } = params;\n\n if (\n !options.reloadCurrent &&\n options.route &&\n options.route.route &&\n options.route.route.parentPath &&\n router.currentRoute.route &&\n router.currentRoute.route.parentPath === options.route.route.parentPath\n ) {\n // Do something nested\n if (options.route.url === router.url) {\n router.allowPageChange = true;\n return false;\n }\n // Check for same params\n let sameParams =\n Object.keys(options.route.params).length === Object.keys(router.currentRoute.params).length;\n if (sameParams) {\n // Check for equal params name\n Object.keys(options.route.params).forEach((paramName) => {\n if (\n !(paramName in router.currentRoute.params) ||\n router.currentRoute.params[paramName] !== options.route.params[paramName]\n ) {\n sameParams = false;\n }\n });\n }\n if (sameParams) {\n if (options.route.route.tab) {\n return router.tabLoad(options.route.route.tab, options);\n }\n return false;\n }\n if (\n !sameParams &&\n options.route.route.tab &&\n router.currentRoute.route.tab &&\n router.currentRoute.parentPath === options.route.parentPath\n ) {\n return router.tabLoad(options.route.route.tab, options);\n }\n }\n\n if (\n options.route &&\n options.route.url &&\n router.url === options.route.url &&\n !(options.reloadCurrent || options.reloadPrevious) &&\n !router.params.allowDuplicateUrls\n ) {\n router.allowPageChange = true;\n return false;\n }\n\n if (!options.route && url) {\n options.route = router.parseRouteUrl(url);\n extend(options.route, { route: { url, path: url } });\n }\n\n // Component Callbacks\n function resolve(pageEl, newOptions) {\n return forward(router, pageEl, extend(options, newOptions));\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (url || componentUrl || component) {\n router.allowPageChange = false;\n }\n\n // Proceed\n if (content) {\n forward(router, router.getPageEl(content), options);\n } else if (el) {\n // Load page from specified HTMLElement or by page name in pages container\n forward(router, router.getPageEl(el), options);\n } else if (pageName) {\n // Load page by page name in pages container\n forward(router, router.$el.children(`.page[data-name=\"${pageName}\"]`).eq(0), options);\n } else if (component || componentUrl) {\n // Load from component (F7/Vue/React/...)\n try {\n router.pageComponentLoader({\n routerEl: router.el,\n component,\n componentUrl,\n options,\n resolve,\n reject,\n });\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (url) {\n // Load using XHR\n if (router.xhrAbortController) {\n router.xhrAbortController.abort();\n router.xhrAbortController = false;\n }\n router\n .xhrRequest(url, options)\n .then((pageContent) => {\n forward(router, router.getPageEl(pageContent), options);\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n }\n return router;\n}\n\nfunction navigate(navigateParams, navigateOptions = {}) {\n const router = this;\n\n if (router.swipeBackActive) return router;\n let url;\n let createRoute;\n let name;\n let path;\n let query;\n let params;\n let route;\n if (typeof navigateParams === 'string') {\n url = navigateParams;\n } else {\n url = navigateParams.url;\n createRoute = navigateParams.route;\n name = navigateParams.name;\n path = navigateParams.path;\n query = navigateParams.query;\n params = navigateParams.params;\n }\n if (name || path) {\n url = router.generateUrl({ path, name, params, query });\n if (url) {\n return router.navigate(url, navigateOptions);\n }\n return router;\n }\n const app = router.app;\n appRouterCheck(router, 'navigate');\n if (url === '#' || url === '') {\n return router;\n }\n\n let navigateUrl = url.replace('./', '');\n if (navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) {\n const currentPath = router.currentRoute.parentPath || router.currentRoute.path;\n navigateUrl = ((currentPath ? `${currentPath}/` : '/') + navigateUrl)\n .replace('///', '/')\n .replace('//', '/');\n }\n if (createRoute) {\n route = extend(router.parseRouteUrl(navigateUrl), {\n route: extend({}, createRoute),\n });\n } else {\n route = router.findMatchingRoute(navigateUrl);\n }\n\n if (!route) {\n return router;\n }\n if (route.route && route.route.viewName) {\n const anotherViewName = route.route.viewName;\n const anotherView = app.views[anotherViewName];\n if (!anotherView) {\n throw new Error(\n `Framework7: There is no View with \"${anotherViewName}\" name that was specified in this route`,\n );\n }\n if (anotherView !== router.view) {\n return anotherView.router.navigate(navigateParams, navigateOptions);\n }\n }\n\n if (route.route.redirect) {\n return redirect.call(router, 'forward', route, navigateOptions);\n }\n\n const options = {};\n if (route.route.options) {\n extend(options, route.route.options, navigateOptions);\n } else {\n extend(options, navigateOptions);\n }\n\n if (\n options.openIn &&\n (!router.params.ignoreOpenIn || (router.params.ignoreOpenIn && router.history.length > 0))\n ) {\n return router.openIn(router, navigateUrl, options);\n }\n\n options.route = route;\n\n function resolve() {\n let routerLoaded = false;\n 'popup popover sheet loginScreen actions customModal panel'\n .split(' ')\n .forEach((modalLoadProp) => {\n if (route.route[modalLoadProp] && !routerLoaded) {\n routerLoaded = true;\n router.modalLoad(modalLoadProp, route, options, 'forward');\n }\n });\n if (route.route.keepAlive && route.route.keepAliveData) {\n load(router, { el: route.route.keepAliveData.pageEl }, options, false);\n routerLoaded = true;\n }\n 'url content component pageName el componentUrl'.split(' ').forEach((pageLoadProp) => {\n if (route.route[pageLoadProp] && !routerLoaded) {\n routerLoaded = true;\n load(router, { [pageLoadProp]: route.route[pageLoadProp] }, options, false);\n }\n });\n if (routerLoaded) return;\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n router.allowPageChange = false;\n let resolvedAsModal = false;\n\n 'popup popover sheet loginScreen actions customModal panel'\n .split(' ')\n .forEach((modalLoadProp) => {\n if (resolveParams[modalLoadProp]) {\n resolvedAsModal = true;\n const modalRoute = extend({}, route, { route: resolveParams });\n router.allowPageChange = true;\n router.modalLoad(modalLoadProp, modalRoute, extend(options, resolveOptions), 'forward');\n }\n });\n if (resolvedAsModal) return;\n load(router, resolveParams, extend(options, resolveOptions), true);\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (route.route.async) {\n router.allowPageChange = false;\n route.route.async.call(router, {\n router,\n to: options.route,\n from: router.currentRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n direction: 'forward',\n app,\n });\n }\n if (route.route.asyncComponent) {\n asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject);\n }\n }\n function reject() {\n router.allowPageChange = true;\n }\n\n if (router.params.masterDetailBreakpoint > 0 && route.route.masterRoute) {\n // load detail route\n let preloadMaster = true;\n let masterLoaded = false;\n if (router.currentRoute && router.currentRoute.route) {\n if (\n (router.currentRoute.route.master === true ||\n (typeof router.currentRoute.route.master === 'function' &&\n router.currentRoute.route.master(app, router))) &&\n (router.currentRoute.route === route.route.masterRoute ||\n router.currentRoute.route.path === route.route.masterRoute.path)\n ) {\n preloadMaster = false;\n }\n if (\n router.currentRoute.route.masterRoute &&\n (router.currentRoute.route.masterRoute === route.route.masterRoute ||\n router.currentRoute.route.masterRoute.path === route.route.masterRoute.path)\n ) {\n preloadMaster = false;\n masterLoaded = true;\n }\n }\n if (preloadMaster || (masterLoaded && navigateOptions.reloadAll)) {\n router.navigate(\n { path: route.route.masterRoute.path, params: route.params || {} },\n {\n animate: false,\n reloadAll: navigateOptions.reloadAll,\n reloadCurrent: navigateOptions.reloadCurrent,\n reloadPrevious: navigateOptions.reloadPrevious,\n browserHistory: !navigateOptions.initial,\n history: !navigateOptions.initial,\n once: {\n pageAfterIn() {\n router.navigate(\n navigateParams,\n extend({}, navigateOptions, {\n animate: false,\n reloadAll: false,\n reloadCurrent: false,\n reloadPrevious: false,\n history: !navigateOptions.initial,\n browserHistory: !navigateOptions.initial,\n }),\n );\n },\n },\n },\n );\n return router;\n }\n }\n\n processRouteQueue.call(\n router,\n route,\n router.currentRoute,\n () => {\n if (route.route.modules) {\n app\n .loadModules(\n Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules],\n )\n .then(() => {\n resolve();\n })\n .catch(() => {\n reject();\n });\n } else {\n resolve();\n }\n },\n () => {\n reject();\n },\n 'forward',\n );\n\n // Return Router\n return router;\n}\nexport { refreshPage, navigate };\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport asyncComponent from './async-component.js';\n\nfunction tabLoad(tabRoute, loadOptions = {}) {\n const router = this;\n const options = extend(\n {\n animate: router.params.animate,\n browserHistory: true,\n history: true,\n parentPageEl: null,\n preload: false,\n on: {},\n },\n loadOptions,\n );\n\n let currentRoute;\n let previousRoute;\n if (options.route) {\n // Set Route\n if (!options.preload && options.route !== router.currentRoute) {\n previousRoute = router.previousRoute;\n router.currentRoute = options.route;\n }\n if (options.preload) {\n currentRoute = options.route;\n previousRoute = router.currentRoute;\n } else {\n currentRoute = router.currentRoute;\n if (!previousRoute) previousRoute = router.previousRoute;\n }\n\n // Update Browser History\n if (router.params.browserHistory && options.browserHistory && !options.reloadPrevious) {\n History[router.params.browserHistoryTabs](\n router.view.id,\n {\n url: options.route.url,\n },\n (router.params.browserHistoryRoot || '') +\n router.params.browserHistorySeparator +\n options.route.url,\n );\n }\n\n // Update Router History\n if (options.history) {\n router.history[Math.max(router.history.length - 1, 0)] = options.route.url;\n router.saveHistory();\n }\n }\n\n // Show Tab\n const $parentPageEl = $(options.parentPageEl || router.currentPageEl);\n let tabEl;\n if ($parentPageEl.length && $parentPageEl.find(`#${tabRoute.id}`).length) {\n tabEl = $parentPageEl.find(`#${tabRoute.id}`).eq(0);\n } else if (router.view.selector) {\n tabEl = `${router.view.selector} #${tabRoute.id}`;\n } else {\n tabEl = `#${tabRoute.id}`;\n }\n const tabShowResult = router.app.tab.show({\n tabEl,\n animate: options.animate,\n tabRoute: options.route,\n });\n\n const { $newTabEl, $oldTabEl, animated, onTabsChanged } = tabShowResult;\n\n if ($newTabEl && $newTabEl.parents('.page').length > 0 && options.route) {\n const tabParentPageData = $newTabEl.parents('.page')[0].f7Page;\n if (tabParentPageData && options.route) {\n tabParentPageData.route = options.route;\n }\n }\n\n // Tab Content Loaded\n function onTabLoaded(contentEl) {\n // Remove theme elements\n router.removeThemeElements($newTabEl);\n\n let tabEventTarget = $newTabEl;\n if (typeof contentEl !== 'string') tabEventTarget = $(contentEl);\n\n tabEventTarget.trigger('tab:init tab:mounted', tabRoute);\n router.emit('tabInit tabMounted', $newTabEl[0], tabRoute);\n\n if ($oldTabEl && $oldTabEl.length) {\n if (animated) {\n onTabsChanged(() => {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n if (router.params.unloadTabContent) {\n router.tabRemove($oldTabEl, $newTabEl, tabRoute);\n }\n });\n } else {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n if (router.params.unloadTabContent) {\n router.tabRemove($oldTabEl, $newTabEl, tabRoute);\n }\n }\n }\n }\n\n if ($newTabEl[0].f7RouterTabLoaded) {\n if (!$oldTabEl || !$oldTabEl.length) return router;\n if (animated) {\n onTabsChanged(() => {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n });\n } else {\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n }\n return router;\n }\n\n // Load Tab Content\n function loadTab(loadTabParams, loadTabOptions) {\n // Load Tab Props\n const { url, content, el, component, componentUrl } = loadTabParams;\n // Component/Template Callbacks\n function resolve(contentEl) {\n router.allowPageChange = true;\n if (!contentEl) return;\n if (typeof contentEl === 'string') {\n $newTabEl.html(contentEl);\n } else {\n $newTabEl.html('');\n if (contentEl.f7Component) {\n contentEl.f7Component.mount((componentEl) => {\n $newTabEl.append(componentEl);\n });\n } else {\n $newTabEl.append(contentEl);\n }\n }\n $newTabEl[0].f7RouterTabLoaded = true;\n onTabLoaded(contentEl);\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (content) {\n resolve(content);\n } else if (el) {\n resolve(el);\n } else if (component || componentUrl) {\n // Load from component (F7/Vue/React/...)\n try {\n router.tabComponentLoader({\n tabEl: $newTabEl[0],\n component,\n componentUrl,\n options: loadTabOptions,\n resolve,\n reject,\n });\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (url) {\n // Load using XHR\n if (router.xhrAbortController) {\n router.xhrAbortController.abort();\n router.xhrAbortController = false;\n }\n router\n .xhrRequest(url, loadTabOptions)\n .then((tabContent) => {\n resolve(tabContent);\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n }\n }\n\n let hasContentLoadProp;\n 'url content component el componentUrl'.split(' ').forEach((tabLoadProp) => {\n if (tabRoute[tabLoadProp]) {\n hasContentLoadProp = true;\n loadTab({ [tabLoadProp]: tabRoute[tabLoadProp] }, options);\n }\n });\n\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n loadTab(resolveParams, extend(options, resolveOptions));\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (tabRoute.async) {\n tabRoute.async.call(router, {\n router,\n to: currentRoute,\n from: previousRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n app: router.app,\n });\n } else if (tabRoute.asyncComponent) {\n asyncComponent(router, tabRoute.asyncComponent, asyncResolve, asyncReject);\n } else if (!hasContentLoadProp) {\n router.allowPageChange = true;\n }\n\n return router;\n}\nfunction tabRemove($oldTabEl, $newTabEl, tabRoute) {\n const router = this;\n\n let hasTabComponentChild;\n if ($oldTabEl[0]) {\n $oldTabEl[0].f7RouterTabLoaded = false;\n delete $oldTabEl[0].f7RouterTabLoaded;\n }\n $oldTabEl.children().each((tabChild) => {\n if (tabChild.f7Component) {\n hasTabComponentChild = true;\n $(tabChild).trigger('tab:beforeremove', tabRoute);\n tabChild.f7Component.destroy();\n }\n });\n if (!hasTabComponentChild) {\n $oldTabEl.trigger('tab:beforeremove', tabRoute);\n }\n router.emit('tabBeforeRemove', $oldTabEl[0], $newTabEl[0], tabRoute);\n router.removeTabContent($oldTabEl[0], tabRoute);\n}\n\nexport { tabLoad, tabRemove };\n","import { extend, nextTick } from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport asyncComponent from './async-component.js';\n\nfunction modalLoad(modalType, route, loadOptions = {}, direction) {\n const router = this;\n const app = router.app;\n const isPanel = modalType === 'panel';\n const modalOrPanel = isPanel ? 'panel' : 'modal';\n\n const options = extend(\n {\n animate: router.params.animate,\n browserHistory: true,\n history: true,\n on: {},\n once: {},\n },\n loadOptions,\n );\n\n const modalParams = extend({}, route.route[modalType]);\n const modalRoute = route.route;\n\n const routeCallback = (modal, name) => {\n const { on, once } = options;\n let callback;\n if (name === 'open') {\n callback = on.modalOpen || once.modalOpen || on.panelOpen || once.panelOpen;\n }\n if (name === 'close') {\n callback = on.modalClose || once.modalClose || on.panelClose || once.panelClose;\n }\n if (name === 'closed') {\n callback = on.modalClosed || once.modalClosed || on.panelClosed || once.panelClosed;\n }\n if (callback) callback(modal);\n };\n\n function onModalLoaded() {\n // Create Modal\n const modal = app[modalType].create(modalParams);\n modalRoute.modalInstance = modal;\n\n const hasEl = modal.el;\n\n function closeOnSwipeBack() {\n modal.close();\n }\n modal.on(`${modalOrPanel}Open`, () => {\n if (!hasEl) {\n // Remove theme elements\n router.removeThemeElements(modal.el);\n\n // Emit events\n modal.$el.trigger(\n `${modalType.toLowerCase()}:init ${modalType.toLowerCase()}:mounted`,\n route,\n modal,\n );\n router.emit(\n `${!isPanel ? 'modalInit' : ''} ${modalType}Init ${modalType}Mounted`,\n modal.el,\n route,\n modal,\n );\n }\n router.once('swipeBackMove', closeOnSwipeBack);\n routeCallback(modal, 'open');\n });\n modal.on(`${modalOrPanel}Close`, () => {\n router.off('swipeBackMove', closeOnSwipeBack);\n if (!modal.closeByRouter) {\n router.back();\n }\n routeCallback(modal, 'close');\n });\n\n modal.on(`${modalOrPanel}Closed`, () => {\n modal.$el.trigger(`${modalType.toLowerCase()}:beforeremove`, route, modal);\n modal.emit(\n `${!isPanel ? 'modalBeforeRemove ' : ''}${modalType}BeforeRemove`,\n modal.el,\n route,\n modal,\n );\n const modalComponent = modal.el.f7Component;\n routeCallback(modal, 'closed');\n if (modalComponent) {\n modalComponent.destroy();\n }\n nextTick(() => {\n if (\n modalComponent ||\n modalParams.component ||\n modalParams.asyncComponent ||\n modalParams.async\n ) {\n router.removeModal(modal.el);\n }\n modal.destroy();\n delete modal.route;\n delete modalRoute.modalInstance;\n });\n });\n\n if (options.route) {\n // Update Browser History\n if (router.params.browserHistory && options.browserHistory) {\n History.push(\n router.view.id,\n {\n url: options.route.url,\n modal: modalType,\n },\n (router.params.browserHistoryRoot || '') +\n router.params.browserHistorySeparator +\n options.route.url,\n );\n }\n\n // Set Route\n if (options.route !== router.currentRoute) {\n modal.route = extend(options.route, { modal });\n router.currentRoute = modal.route;\n }\n\n // Update Router History\n if (options.history && !options.reloadCurrent) {\n router.history.push(options.route.url);\n router.saveHistory();\n }\n }\n\n if (hasEl) {\n // Remove theme elements\n router.removeThemeElements(modal.el);\n\n // Emit events\n modal.$el.trigger(\n `${modalType.toLowerCase()}:init ${modalType.toLowerCase()}:mounted`,\n route,\n modal,\n );\n router.emit(\n `${modalOrPanel}Init ${modalType}Init ${modalType}Mounted`,\n modal.el,\n route,\n modal,\n );\n }\n\n // Open\n modal.open(options.animate === false || options.animate === true ? options.animate : undefined);\n }\n\n // Load Modal Content\n function loadModal(loadModalParams, loadModalOptions) {\n // Load Modal Props\n const { url, content, component, componentUrl } = loadModalParams;\n\n // Component/Template Callbacks\n function resolve(contentEl) {\n if (contentEl) {\n if (typeof contentEl === 'string') {\n modalParams.content = contentEl;\n } else if (contentEl.f7Component) {\n contentEl.f7Component.mount((componentEl) => {\n modalParams.el = componentEl;\n app.$el.append(componentEl);\n });\n } else {\n modalParams.el = contentEl;\n }\n onModalLoaded();\n }\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (content) {\n resolve(content);\n } else if (component || componentUrl) {\n // Load from component (F7/Vue/React/...)\n try {\n router.modalComponentLoader({\n rootEl: app.el,\n component,\n componentUrl,\n options: loadModalOptions,\n resolve,\n reject,\n });\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (url) {\n // Load using XHR\n if (router.xhrAbortController) {\n router.xhrAbortController.abort();\n router.xhrAbortController = false;\n }\n router\n .xhrRequest(url, loadModalOptions)\n .then((modalContent) => {\n modalParams.content = modalContent;\n onModalLoaded();\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n } else {\n onModalLoaded();\n }\n }\n\n let foundLoadProp;\n 'url content component el componentUrl template'.split(' ').forEach((modalLoadProp) => {\n if (modalParams[modalLoadProp] && !foundLoadProp) {\n foundLoadProp = true;\n loadModal({ [modalLoadProp]: modalParams[modalLoadProp] }, options);\n }\n });\n if (!foundLoadProp && modalType === 'actions') {\n onModalLoaded();\n }\n\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n loadModal(resolveParams, extend(options, resolveOptions));\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (modalParams.async) {\n modalParams.async.call(router, {\n router,\n to: options.route,\n from: router.currentRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n direction,\n app,\n });\n }\n if (modalParams.asyncComponent) {\n asyncComponent(router, modalParams.asyncComponent, asyncResolve, asyncReject);\n }\n return router;\n}\nfunction modalRemove(modal) {\n extend(modal, { closeByRouter: true });\n modal.close();\n}\n\nexport { modalLoad, modalRemove };\n","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, parseUrlQuery } from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport History from '../../shared/history.js';\nimport redirect from './redirect.js';\nimport processRouteQueue from './process-route-queue.js';\nimport appRouterCheck from './app-router-check.js';\nimport asyncComponent from './async-component.js';\n\nfunction backward(router, el, backwardOptions) {\n const device = getDevice();\n const document = getDocument();\n const $el = $(el);\n const app = router.app;\n const view = router.view;\n\n const options = extend(\n false,\n {\n animate: router.params.animate,\n browserHistory: true,\n replaceState: false,\n },\n backwardOptions,\n );\n\n const masterDetailEnabled = router.params.masterDetailBreakpoint > 0;\n const isMaster =\n masterDetailEnabled &&\n options.route &&\n options.route.route &&\n (options.route.route.master === true ||\n (typeof options.route.route.master === 'function' &&\n options.route.route.master(app, router)));\n let masterPageEl;\n let masterPageRemoved;\n\n const dynamicNavbar = router.dynamicNavbar;\n\n const $newPage = $el;\n const $oldPage = router.$el.children('.page-current');\n const initialPreload = $oldPage.length === 0 && options.preload;\n const currentIsMaster = masterDetailEnabled && $oldPage.hasClass('page-master');\n\n if ($newPage.length) {\n // Remove theme elements\n router.removeThemeElements($newPage);\n }\n\n let $navbarsEl;\n let $newNavbarEl;\n let $oldNavbarEl;\n\n if (dynamicNavbar) {\n $newNavbarEl = $newPage.children('.navbar');\n $navbarsEl = router.$navbarsEl;\n if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) {\n // Try from pageData\n $newNavbarEl = $newPage[0].f7Page.$navbarEl;\n }\n $oldNavbarEl = $navbarsEl.find('.navbar-current');\n }\n\n router.allowPageChange = false;\n if ($newPage.length === 0 || ($oldPage.length === 0 && !options.preload)) {\n router.allowPageChange = true;\n return router;\n }\n\n // Remove theme elements\n router.removeThemeElements($newPage);\n\n // Save Keep Alive Cache\n if (\n options.route &&\n options.route.route &&\n options.route.route.keepAlive &&\n !options.route.route.keepAliveData\n ) {\n options.route.route.keepAliveData = {\n pageEl: $el[0],\n };\n }\n\n // Pages In View\n let isDetail;\n let isDetailRoot;\n if (masterDetailEnabled) {\n const $pagesInView = router.$el\n .children('.page')\n .filter((pageInView) => pageInView !== $newPage[0]);\n\n // Find Detail' master page\n for (let i = 0; i < $pagesInView.length; i += 1) {\n if (!masterPageEl && $pagesInView[i].classList.contains('page-master')) {\n masterPageEl = $pagesInView[i];\n continue; // eslint-disable-line\n }\n }\n\n isDetail =\n !isMaster &&\n masterPageEl &&\n router.history.indexOf(options.route.url) >\n router.history.indexOf(masterPageEl.f7Page.route.url);\n\n if (\n !isDetail &&\n !isMaster &&\n masterPageEl &&\n masterPageEl.f7Page &&\n options.route.route.masterRoute\n ) {\n isDetail = options.route.route.masterRoute.path === masterPageEl.f7Page.route.route.path;\n }\n }\n if (isDetail && masterPageEl && masterPageEl.f7Page) {\n isDetailRoot =\n router.history.indexOf(options.route.url) -\n router.history.indexOf(masterPageEl.f7Page.route.url) ===\n 1;\n }\n\n // New Page\n $newPage\n .addClass(\n `page-${initialPreload ? 'current' : 'previous'}${isMaster ? ' page-master' : ''}${\n isDetail ? ' page-master-detail' : ''\n }${isDetailRoot ? ' page-master-detail-root' : ''}`,\n )\n .removeAttr('aria-hidden')\n .trigger('page:unstack')\n .trigger('page:position', { position: initialPreload ? 'current' : 'previous' });\n router.emit('pageUnstack', $newPage[0]);\n router.emit('pagePosition', $newPage[0], initialPreload ? 'current' : 'previous');\n if (isMaster || isDetail) {\n $newPage.trigger('page:role', { role: isMaster ? 'master' : 'detail', root: !!isDetailRoot });\n router.emit('pageRole', $newPage[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot,\n });\n }\n\n if (dynamicNavbar && $newNavbarEl.length > 0) {\n $newNavbarEl\n .addClass(\n `navbar-${initialPreload ? 'current' : 'previous'}${isMaster ? ' navbar-master' : ''}${\n isDetail ? ' navbar-master-detail' : ''\n }${isDetailRoot ? ' navbar-master-detail-root' : ''}`,\n )\n .removeAttr('aria-hidden');\n $newNavbarEl.trigger('navbar:position', { position: initialPreload ? 'current' : 'previous' });\n router.emit('navbarPosition', $newNavbarEl[0], initialPreload ? 'current' : 'previous');\n if (isMaster || isDetailRoot) {\n router.emit('navbarRole', $newNavbarEl[0], {\n role: isMaster ? 'master' : 'detail',\n detailRoot: !!isDetailRoot,\n });\n }\n }\n\n // Remove previous page in case of \"forced\"\n let backIndex;\n if (options.force) {\n if ($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(\n 0,\n router.history.indexOf(options.route.url) + 2,\n );\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\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(\n 'beforeRemove',\n $pageToRemove,\n $navbarToRemove,\n 'previous',\n undefined,\n options,\n );\n if ($pageToRemove[0] === masterPageEl) {\n masterPageRemoved = true;\n }\n router.removePage($pageToRemove);\n if (dynamicNavbar && $navbarToRemove.length) {\n router.removeNavbar($navbarToRemove);\n }\n }\n }\n }\n\n // Insert new page\n const newPageInDom = $newPage.parents(document).length > 0;\n const f7Component = $newPage[0].f7Component;\n\n function insertPage() {\n if (initialPreload) {\n if (!newPageInDom && f7Component) {\n f7Component.mount((componentEl) => {\n router.$el.append(componentEl);\n });\n } else {\n router.$el.append($newPage);\n }\n }\n if ($newPage.next($oldPage).length === 0) {\n if (!newPageInDom && f7Component) {\n f7Component.mount((componentEl) => {\n $(componentEl).insertBefore($oldPage);\n });\n } else {\n $newPage.insertBefore($oldPage);\n }\n }\n if (dynamicNavbar && $newNavbarEl.length) {\n if ($newNavbarEl.find('.title-large').length) {\n $newNavbarEl.addClass('navbar-large');\n }\n $newNavbarEl.insertBefore($oldNavbarEl);\n if ($oldNavbarEl.length > 0) {\n $newNavbarEl.insertBefore($oldNavbarEl);\n } else {\n if (!router.$navbarsEl.parents(document).length) {\n router.$el.prepend(router.$navbarsEl);\n }\n $navbarsEl.append($newNavbarEl);\n }\n }\n if (!newPageInDom) {\n router.pageCallback(\n 'mounted',\n $newPage,\n $newNavbarEl,\n 'previous',\n 'current',\n options,\n $oldPage,\n );\n } else if (\n options.route &&\n options.route.route &&\n options.route.route.keepAlive &&\n !$newPage[0].f7PageMounted\n ) {\n $newPage[0].f7PageMounted = true;\n router.pageCallback(\n 'mounted',\n $newPage,\n $newNavbarEl,\n 'previous',\n 'current',\n options,\n $oldPage,\n );\n }\n }\n\n if (options.preload) {\n // Insert Page\n insertPage();\n // Tab route\n if (options.route.route.tab) {\n router.tabLoad(\n options.route.route.tab,\n extend({}, options, {\n history: false,\n browserHistory: false,\n preload: true,\n }),\n );\n }\n if (isMaster) {\n $newPage.removeClass('page-master-stacked').trigger('page:masterunstack');\n router.emit('pageMasterUnstack', $newPage[0]);\n if (dynamicNavbar) {\n $(app.navbar.getElByPage($newPage)).removeClass('navbar-master-stacked');\n router.emit('navbarMasterUnstack', app.navbar.getElByPage($newPage));\n }\n }\n // Page init and before init events\n router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);\n if (initialPreload) {\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'current', undefined, options);\n router.pageCallback('afterIn', $newPage, $newNavbarEl, 'current', undefined, options);\n }\n const $previousPages = $newPage.prevAll('.page-previous:not(.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\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(\n view.id,\n {\n url: options.route.url,\n },\n browserHistoryRoot + router.params.browserHistorySeparator + options.route.url,\n );\n } else if (backIndex) {\n History.go(-backIndex);\n } else {\n History.back();\n }\n }\n }\n\n // Update History\n if (options.replaceState) {\n router.history[router.history.length - 1] = options.route.url;\n 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(\n view.id,\n {\n url: options.route.url,\n },\n browserHistoryRoot + router.params.browserHistorySeparator + options.route.url,\n );\n } else if (backIndex) {\n History.go(-backIndex);\n } else {\n History.back();\n }\n }\n }\n\n // Insert Page\n insertPage();\n\n // Load Tab\n if (options.route.route.tab) {\n router.tabLoad(\n options.route.route.tab,\n extend({}, options, {\n history: false,\n browserHistory: false,\n }),\n );\n }\n\n // Check master detail\n\n if (masterDetailEnabled && (currentIsMaster || masterPageRemoved)) {\n view.checkMasterDetailBreakpoint(false);\n }\n\n // Page init and before init events\n router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);\n\n // Before animation callback\n router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'next', options);\n router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'previous', 'current', options);\n\n // Animation\n function afterAnimation() {\n // Set classes\n router.setPagePosition($newPage, 'current', false);\n router.setPagePosition($oldPage, 'next', true);\n if (dynamicNavbar) {\n router.setNavbarPosition($newNavbarEl, 'current', false);\n router.setNavbarPosition($oldNavbarEl, 'next', true);\n }\n\n // After animation event\n router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'next', options);\n router.pageCallback('afterIn', $newPage, $newNavbarEl, 'previous', 'current', options);\n\n // Remove Old Page\n\n router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'next', undefined, options);\n router.removePage($oldPage);\n if (dynamicNavbar && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n\n router.allowPageChange = true;\n router.emit('routeChanged', router.currentRoute, router.previousRoute, router);\n\n // Preload previous page\n const preloadPreviousPage =\n router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history[router.history.length - 2] && !isMaster) {\n router.back(router.history[router.history.length - 2], {\n preload: true,\n props: router.propsHistory[router.propsHistory.length - 2] || {},\n });\n }\n if (router.params.browserHistory) {\n History.clearRouterQueue();\n }\n }\n\n function setPositionClasses() {\n router.setPagePosition($oldPage, 'current');\n router.setPagePosition($newPage, 'previous', false);\n if (dynamicNavbar) {\n router.setNavbarPosition($oldNavbarEl, 'current');\n router.setNavbarPosition($newNavbarEl, 'previous', false);\n }\n }\n\n if (options.animate && !(currentIsMaster && app.width >= router.params.masterDetailBreakpoint)) {\n let transition = router.params.transition;\n if ($oldPage[0] && $oldPage[0].f7PageTransition) {\n transition = $oldPage[0].f7PageTransition;\n delete $oldPage[0].f7PageTransition;\n }\n if (options.transition) transition = options.transition;\n if (!transition && router.previousRoute && router.previousRoute.route) {\n transition = router.previousRoute.route.transition;\n }\n if (\n !transition &&\n router.previousRoute &&\n router.previousRoute.route &&\n router.previousRoute.route.options\n ) {\n transition = router.previousRoute.route.options.transition;\n }\n setPositionClasses();\n router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'backward', transition, () => {\n afterAnimation();\n });\n } else {\n afterAnimation();\n }\n\n return router;\n}\nfunction loadBack(router, backParams, backOptions, ignorePageChange) {\n if (!router.allowPageChange && !ignorePageChange) return router;\n const params = backParams;\n const options = backOptions;\n const { url, content, el, pageName, component, componentUrl } = params;\n\n if (\n options.route.url &&\n router.url === options.route.url &&\n !(options.reloadCurrent || options.reloadPrevious) &&\n !router.params.allowDuplicateUrls\n ) {\n router.allowPageChange = true;\n return false;\n }\n\n if (!options.route && url) {\n options.route = router.parseRouteUrl(url);\n }\n\n // Component Callbacks\n function resolve(pageEl, newOptions) {\n return backward(router, pageEl, extend(options, newOptions));\n }\n function reject() {\n router.allowPageChange = true;\n return router;\n }\n\n if (url || componentUrl || component) {\n router.allowPageChange = false;\n }\n\n // Proceed\n if (content) {\n backward(router, router.getPageEl(content), options);\n } else if (el) {\n // Load page from specified HTMLElement or by page name in pages container\n backward(router, router.getPageEl(el), options);\n } else if (pageName) {\n // Load page by page name in pages container\n backward(router, router.$el.children(`.page[data-name=\"${pageName}\"]`).eq(0), options);\n } else if (component || componentUrl) {\n // Load from component (F7/Vue/React/...)\n try {\n router.pageComponentLoader({\n routerEl: router.el,\n component,\n componentUrl,\n options,\n resolve,\n reject,\n });\n } catch (err) {\n router.allowPageChange = true;\n throw err;\n }\n } else if (url) {\n // Load using XHR\n if (router.xhrAbortController) {\n router.xhrAbortController.abort();\n router.xhrAbortController = false;\n }\n router\n .xhrRequest(url, options)\n .then((pageContent) => {\n backward(router, router.getPageEl(pageContent), options);\n })\n .catch(() => {\n router.allowPageChange = true;\n });\n }\n return router;\n}\nfunction back(...args) {\n const router = this;\n const device = getDevice();\n if (router.swipeBackActive) return router;\n let navigateUrl;\n let navigateOptions;\n let navigateProps;\n let route;\n if (typeof args[0] === 'object') {\n navigateOptions = args[0] || {};\n } else {\n navigateUrl = args[0];\n navigateOptions = args[1] || {};\n }\n\n const { name, params, query } = navigateOptions;\n if (name) {\n navigateUrl = router.generateUrl({ name, params, query });\n if (navigateUrl) {\n return router.back(\n navigateUrl,\n extend({}, navigateOptions, {\n name: null,\n params: null,\n query: null,\n }),\n );\n }\n return router;\n }\n\n const app = router.app;\n appRouterCheck(router, 'back');\n\n let currentRouteIsModal = router.currentRoute.modal;\n let modalType;\n if (!currentRouteIsModal) {\n 'popup popover sheet loginScreen actions customModal panel'\n .split(' ')\n .forEach((modalLoadProp) => {\n if (router.currentRoute.route[modalLoadProp]) {\n currentRouteIsModal = true;\n modalType = modalLoadProp;\n }\n });\n }\n if (currentRouteIsModal && !navigateOptions.preload) {\n const modalToClose =\n router.currentRoute.modal || router.currentRoute.route.modalInstance || app[modalType].get();\n const previousUrl = router.history[router.history.length - 2];\n let previousRoute;\n // check if previous route is modal too\n if (modalToClose && modalToClose.$el) {\n const prevOpenedModals = modalToClose.$el.prevAll('.modal-in');\n if (prevOpenedModals.length && prevOpenedModals[0].f7Modal) {\n const modalEl = prevOpenedModals[0];\n // check if current router not inside of the modalEl\n if (!router.$el.parents(modalEl).length) {\n previousRoute = modalEl.f7Modal.route;\n }\n }\n }\n if (!previousRoute) {\n previousRoute = router.findMatchingRoute(previousUrl);\n }\n\n if (!previousRoute && previousUrl) {\n previousRoute = {\n url: previousUrl,\n path: previousUrl.split('?')[0],\n query: parseUrlQuery(previousUrl),\n route: {\n path: previousUrl.split('?')[0],\n url: previousUrl,\n },\n };\n }\n if (!navigateUrl || navigateUrl.replace(/[# ]/g, '').trim().length === 0) {\n if (!previousRoute || !modalToClose) {\n return router;\n }\n }\n const forceOtherUrl = navigateOptions.force && previousRoute && navigateUrl;\n if (previousRoute && modalToClose) {\n const isBrokenBrowserHistory = device.ie || device.edge || (device.firefox && !device.ios);\n const needHistoryBack =\n router.params.browserHistory && navigateOptions.browserHistory !== false;\n const currentRouteWithoutBrowserHistory =\n router.currentRoute &&\n router.currentRoute.route &&\n router.currentRoute.route.options &&\n router.currentRoute.route.options.browserHistory === false;\n if (needHistoryBack && !isBrokenBrowserHistory && !currentRouteWithoutBrowserHistory) {\n History.back();\n }\n router.currentRoute = previousRoute;\n router.history.pop();\n router.propsHistory.pop();\n router.saveHistory();\n\n if (needHistoryBack && isBrokenBrowserHistory && !currentRouteWithoutBrowserHistory) {\n History.back();\n }\n\n router.modalRemove(modalToClose);\n if (forceOtherUrl) {\n router.navigate(navigateUrl, { reloadCurrent: true });\n }\n } else if (modalToClose) {\n router.modalRemove(modalToClose);\n if (navigateUrl) {\n router.navigate(navigateUrl, { reloadCurrent: true });\n }\n }\n return router;\n }\n let $previousPage = router.$el\n .children('.page-current')\n .prevAll('.page-previous:not(.page-master)')\n .eq(0);\n\n let skipMaster;\n if (router.params.masterDetailBreakpoint > 0) {\n const classes = [];\n router.$el.children('.page').each((pageEl) => {\n classes.push(pageEl.className);\n });\n\n const $previousMaster = router.$el.children('.page-current').prevAll('.page-master').eq(0);\n if ($previousMaster.length) {\n const expectedPreviousPageUrl = router.history[router.history.length - 2];\n const expectedPreviousPageRoute = router.findMatchingRoute(expectedPreviousPageUrl);\n if (\n expectedPreviousPageRoute &&\n $previousMaster[0].f7Page &&\n expectedPreviousPageRoute.route === $previousMaster[0].f7Page.route.route\n ) {\n $previousPage = $previousMaster;\n if (!navigateOptions.preload) {\n skipMaster = app.width >= router.params.masterDetailBreakpoint;\n }\n }\n }\n }\n\n if (!navigateOptions.force && $previousPage.length && !skipMaster) {\n const previousPageObj = $previousPage[0].f7Page;\n if (\n router.params.browserHistory &&\n previousPageObj &&\n router.history[router.history.length - 2] !== previousPageObj.route.url\n ) {\n router.back(\n router.history[router.history.length - 2],\n extend(navigateOptions, {\n force: true,\n props: router.propsHistory[router.propsHistory.length - 2] || {},\n }),\n );\n return router;\n }\n if (previousPageObj) {\n const previousPageRoute = previousPageObj.route;\n\n processRouteQueue.call(\n router,\n previousPageRoute,\n router.currentRoute,\n () => {\n loadBack(\n router,\n { el: $previousPage },\n extend(navigateOptions, {\n route: previousPageRoute,\n }),\n );\n },\n () => {},\n 'backward',\n );\n\n return router;\n }\n }\n\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(\n router.history[router.history.length - 3],\n extend({}, navigateOptions || {}, {\n force: true,\n animate: false,\n props: router.propsHistory[router.propsHistory.length - 3] || {},\n }),\n );\n }\n if (skipMaster && !navigateOptions.force) {\n return router;\n }\n\n // Find route to load\n route = router.findMatchingRoute(navigateUrl);\n if (!route) {\n if (navigateUrl) {\n route = {\n url: navigateUrl,\n path: navigateUrl.split('?')[0],\n query: parseUrlQuery(navigateUrl),\n route: {\n path: navigateUrl.split('?')[0],\n url: navigateUrl,\n },\n };\n }\n }\n if (!route) {\n return router;\n }\n\n if (route.route.redirect) {\n return redirect.call(router, 'backward', route, navigateOptions);\n }\n\n const options = {};\n if (route.route.options) {\n extend(options, route.route.options, navigateOptions, { props: navigateProps || {} });\n } else {\n extend(options, navigateOptions, { props: navigateProps || {} });\n }\n options.route = route;\n\n function resolve() {\n let routerLoaded = false;\n if (route.route.keepAlive && route.route.keepAliveData) {\n loadBack(router, { el: route.route.keepAliveData.pageEl }, options);\n routerLoaded = true;\n }\n 'url content component pageName el componentUrl'.split(' ').forEach((pageLoadProp) => {\n if (route.route[pageLoadProp] && !routerLoaded) {\n routerLoaded = true;\n loadBack(router, { [pageLoadProp]: route.route[pageLoadProp] }, options);\n }\n });\n if (routerLoaded) return;\n // Async\n function asyncResolve(resolveParams, resolveOptions) {\n router.allowPageChange = false;\n loadBack(router, resolveParams, extend(options, resolveOptions), true);\n }\n function asyncReject() {\n router.allowPageChange = true;\n }\n if (route.route.async) {\n router.allowPageChange = false;\n route.route.async.call(router, {\n router,\n to: route,\n from: router.currentRoute,\n resolve: asyncResolve,\n reject: asyncReject,\n direction: 'backward',\n app,\n });\n }\n if (route.route.asyncComponent) {\n asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject);\n }\n }\n function reject() {\n router.allowPageChange = true;\n }\n\n if (options.preload) {\n resolve();\n } else {\n processRouteQueue.call(\n router,\n route,\n router.currentRoute,\n () => {\n if (route.route.modules) {\n app\n .loadModules(\n Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules],\n )\n .then(() => {\n resolve();\n })\n .catch(() => {\n reject();\n });\n } else {\n resolve();\n }\n },\n () => {\n reject();\n },\n 'backward',\n );\n }\n\n // Return Router\n return router;\n}\nexport { back };\n","import $ from '../../shared/dom7.js';\nimport appRouterCheck from './app-router-check.js';\n\nfunction clearPreviousPages(router) {\n appRouterCheck(router, 'clearPreviousPages');\n const app = router.app;\n const dynamicNavbar = router.dynamicNavbar;\n\n const $pagesToRemove = router.$el.children('.page').filter((pageInView) => {\n if (router.currentRoute && (router.currentRoute.modal || router.currentRoute.panel))\n return true;\n return pageInView !== router.currentPageEl;\n });\n\n $pagesToRemove.each((pageEl) => {\n const $oldPageEl = $(pageEl);\n const $oldNavbarEl = $(app.navbar.getElByPage($oldPageEl));\n // Page remove event\n router.pageCallback('beforeRemove', $oldPageEl, $oldNavbarEl, 'previous', undefined, {});\n router.removePage($oldPageEl);\n if (dynamicNavbar && $oldNavbarEl.length) {\n router.removeNavbar($oldNavbarEl);\n }\n });\n}\n\nfunction clearPreviousHistory() {\n const router = this;\n appRouterCheck(router, 'clearPreviousHistory');\n const url = router.history[router.history.length - 1];\n\n clearPreviousPages(router);\n\n router.history = [url];\n router.view.history = [url];\n router.saveHistory();\n}\n\nexport { clearPreviousHistory }; // eslint-disable-line\n","import { getWindow, getDocument } from 'ssr-window';\nimport { pathToRegexp, compile } from 'path-to-regexp';\nimport $ from '../../shared/dom7.js';\nimport Framework7Class from '../../shared/class.js';\nimport {\n extend,\n nextFrame,\n parseUrlQuery,\n serializeObject,\n now,\n eventNameToColonCase,\n} from '../../shared/utils.js';\nimport History from '../../shared/history.js';\nimport SwipeBack from './swipe-back.js';\n\nimport { refreshPage, navigate } from './navigate.js';\nimport { tabLoad, tabRemove } from './tab.js';\nimport { modalLoad, modalRemove } from './modal.js';\nimport { back } from './back.js';\nimport { clearPreviousHistory } from './clear-previous-history.js';\nimport appRouterCheck from './app-router-check.js';\n\nclass Router extends Framework7Class {\n constructor(app, view) {\n super({}, [typeof view === 'undefined' ? app : view]);\n const router = this;\n\n // Is App Router\n router.isAppRouter = typeof view === 'undefined';\n\n if (router.isAppRouter) {\n // App Router\n extend(false, router, {\n app,\n params: app.params.view,\n routes: app.routes || [],\n cache: app.cache,\n });\n } else {\n // View Router\n extend(false, router, {\n app,\n view,\n viewId: view.id,\n id: view.params.routerId,\n params: view.params,\n routes: view.routes,\n history: view.history,\n 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 previousRoute = extend({}, currentRoute);\n currentRoute = newRoute;\n if (!currentRoute) return;\n router.url = currentRoute.url;\n router.emit('routeChange', newRoute, previousRoute, router);\n },\n get() {\n return currentRoute;\n },\n });\n Object.defineProperty(router, 'previousRoute', {\n enumerable: true,\n configurable: true,\n get() {\n return previousRoute;\n },\n set(newRoute) {\n previousRoute = newRoute;\n },\n });\n\n return router;\n }\n\n mount() {\n const router = this;\n const view = router.view;\n const document = getDocument();\n\n extend(false, router, {\n tempDom: document.createElement('div'),\n $el: view.$el,\n el: view.el,\n $navbarsEl: view.$navbarsEl,\n navbarsEl: view.navbarsEl,\n });\n\n router.emit('local::mount routerMount', router);\n }\n\n animatableNavElements($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction) {\n const router = this;\n const dynamicNavbar = router.dynamicNavbar;\n const animateIcon = router.params.iosAnimateNavbarBackIcon;\n\n let newNavEls;\n let oldNavEls;\n function animatableNavEl($el, $navbarInner) {\n const isSliding = $el.hasClass('sliding') || $navbarInner.hasClass('sliding');\n const isSubnavbar = $el.hasClass('subnavbar');\n const needsOpacityTransition = isSliding ? !isSubnavbar : true;\n const $iconEl = $el.find('.back .icon');\n let isIconLabel;\n if (\n isSliding &&\n animateIcon &&\n $el.hasClass('left') &&\n $iconEl.length > 0 &&\n $iconEl.next('span').length\n ) {\n $el = $iconEl.next('span'); // eslint-disable-line\n isIconLabel = true;\n }\n return {\n $el,\n isIconLabel,\n leftOffset: $el[0].f7NavbarLeftOffset,\n rightOffset: $el[0].f7NavbarRightOffset,\n isSliding,\n isSubnavbar,\n needsOpacityTransition,\n };\n }\n if (dynamicNavbar) {\n newNavEls = [];\n oldNavEls = [];\n $newNavbarEl\n .children('.navbar-inner')\n .children('.left, .right, .title, .subnavbar')\n .each((navEl) => {\n const $navEl = $(navEl);\n if ($navEl.hasClass('left') && fromLarge && direction === 'forward') return;\n if ($navEl.hasClass('title') && toLarge) return;\n newNavEls.push(animatableNavEl($navEl, $newNavbarEl.children('.navbar-inner')));\n });\n if (\n !(\n $oldNavbarEl.hasClass('navbar-master') &&\n router.params.masterDetailBreakpoint > 0 &&\n router.app.width >= router.params.masterDetailBreakpoint\n )\n ) {\n $oldNavbarEl\n .children('.navbar-inner')\n .children('.left, .right, .title, .subnavbar')\n .each((navEl) => {\n const $navEl = $(navEl);\n if ($navEl.hasClass('left') && toLarge && !fromLarge && direction === 'forward') return;\n if ($navEl.hasClass('left') && toLarge && direction === 'backward') return;\n if ($navEl.hasClass('title') && fromLarge) {\n return;\n }\n oldNavEls.push(animatableNavEl($navEl, $oldNavbarEl.children('.navbar-inner')));\n });\n }\n [oldNavEls, newNavEls].forEach((navEls) => {\n navEls.forEach((navEl) => {\n const n = navEl;\n const { isSliding, $el } = navEl;\n const otherEls = navEls === oldNavEls ? newNavEls : oldNavEls;\n if (!(isSliding && $el.hasClass('title') && otherEls)) return;\n otherEls.forEach((otherNavEl) => {\n if (otherNavEl.isIconLabel) {\n const iconTextEl = otherNavEl.$el[0];\n n.leftOffset += iconTextEl ? iconTextEl.offsetLeft || 0 : 0;\n }\n });\n });\n });\n }\n\n return { newNavEls, oldNavEls };\n }\n\n animate($oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, transition, callback) {\n const router = this;\n if (router.params.animateCustom) {\n router.params.animateCustom.apply(router, [\n $oldPageEl,\n $newPageEl,\n $oldNavbarEl,\n $newNavbarEl,\n direction,\n callback,\n ]);\n return;\n }\n const dynamicNavbar = router.dynamicNavbar;\n const ios = router.app.theme === 'ios';\n if (transition) {\n const routerCustomTransitionClass = `router-transition-custom router-transition-${transition}-${direction}`;\n // Animate\n const onCustomTransitionDone = () => {\n router.$el.removeClass(routerCustomTransitionClass);\n if (dynamicNavbar && router.$navbarsEl.length) {\n if ($newNavbarEl) {\n router.$navbarsEl.prepend($newNavbarEl);\n }\n if ($oldNavbarEl) {\n router.$navbarsEl.prepend($oldNavbarEl);\n }\n }\n if (callback) callback();\n };\n\n (direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(onCustomTransitionDone);\n if (dynamicNavbar) {\n if ($newNavbarEl && $newPageEl) {\n router.setNavbarPosition($newNavbarEl, '');\n $newNavbarEl.removeClass('navbar-next navbar-previous navbar-current');\n $newPageEl.prepend($newNavbarEl);\n }\n if ($oldNavbarEl && $oldPageEl) {\n router.setNavbarPosition($oldNavbarEl, '');\n $oldNavbarEl.removeClass('navbar-next navbar-previous navbar-current');\n $oldPageEl.prepend($oldNavbarEl);\n }\n }\n\n router.$el.addClass(routerCustomTransitionClass);\n return;\n }\n\n // Router Animation class\n const routerTransitionClass = `router-transition-${direction} router-transition`;\n\n let newNavEls;\n let oldNavEls;\n\n let fromLarge;\n let toLarge;\n let toDifferent;\n\n let oldIsLarge;\n let newIsLarge;\n\n if (ios && dynamicNavbar) {\n const betweenMasterAndDetail =\n router.params.masterDetailBreakpoint > 0 &&\n router.app.width >= router.params.masterDetailBreakpoint &&\n (($oldNavbarEl.hasClass('navbar-master') &&\n $newNavbarEl.hasClass('navbar-master-detail')) ||\n ($oldNavbarEl.hasClass('navbar-master-detail') &&\n $newNavbarEl.hasClass('navbar-master')));\n if (!betweenMasterAndDetail) {\n oldIsLarge = $oldNavbarEl && $oldNavbarEl.hasClass('navbar-large');\n newIsLarge = $newNavbarEl && $newNavbarEl.hasClass('navbar-large');\n fromLarge = oldIsLarge && !$oldNavbarEl.hasClass('navbar-large-collapsed');\n toLarge = newIsLarge && !$newNavbarEl.hasClass('navbar-large-collapsed');\n toDifferent = (fromLarge && !toLarge) || (toLarge && !fromLarge);\n }\n const navEls = router.animatableNavElements(\n $newNavbarEl,\n $oldNavbarEl,\n toLarge,\n fromLarge,\n direction,\n );\n newNavEls = navEls.newNavEls;\n oldNavEls = navEls.oldNavEls;\n }\n\n function animateNavbars(progress) {\n if (!(ios && dynamicNavbar)) return;\n if (progress === 1) {\n if (toLarge) {\n $newNavbarEl.addClass('router-navbar-transition-to-large');\n $oldNavbarEl.addClass('router-navbar-transition-to-large');\n }\n if (fromLarge) {\n $newNavbarEl.addClass('router-navbar-transition-from-large');\n $oldNavbarEl.addClass('router-navbar-transition-from-large');\n }\n }\n newNavEls.forEach((navEl) => {\n const $el = navEl.$el;\n const offset = direction === 'forward' ? navEl.rightOffset : navEl.leftOffset;\n if (navEl.isSliding) {\n if (navEl.isSubnavbar && newIsLarge) {\n // prettier-ignore\n $el[0].style.setProperty(\n 'transform',\n `translate3d(${offset * (1 - progress)}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`,\n 'important',\n );\n } else {\n $el.transform(`translate3d(${offset * (1 - progress)}px,0,0)`);\n }\n }\n });\n oldNavEls.forEach((navEl) => {\n const $el = navEl.$el;\n const offset = direction === 'forward' ? navEl.leftOffset : navEl.rightOffset;\n if (navEl.isSliding) {\n if (navEl.isSubnavbar && oldIsLarge) {\n $el.transform(\n `translate3d(${\n offset * progress\n }px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`,\n );\n } else {\n $el.transform(`translate3d(${offset * progress}px,0,0)`);\n }\n }\n });\n }\n\n // AnimationEnd Callback\n function onDone() {\n if (router.dynamicNavbar) {\n if ($newNavbarEl) {\n $newNavbarEl.removeClass(\n 'router-navbar-transition-to-large router-navbar-transition-from-large',\n );\n $newNavbarEl.addClass('navbar-no-title-large-transition');\n nextFrame(() => {\n $newNavbarEl.removeClass('navbar-no-title-large-transition');\n });\n }\n if ($oldNavbarEl) {\n $oldNavbarEl.removeClass(\n 'router-navbar-transition-to-large router-navbar-transition-from-large',\n );\n }\n if (\n $newNavbarEl.hasClass('sliding') ||\n $newNavbarEl.children('.navbar-inner.sliding').length\n ) {\n $newNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform('');\n } else {\n $newNavbarEl.find('.sliding').transform('');\n }\n if (\n $oldNavbarEl.hasClass('sliding') ||\n $oldNavbarEl.children('.navbar-inner.sliding').length\n ) {\n $oldNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform('');\n } else {\n $oldNavbarEl.find('.sliding').transform('');\n }\n }\n router.$el.removeClass(routerTransitionClass);\n if (callback) callback();\n }\n\n // 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\n removeModal(modalEl) {\n const router = this;\n router.removeEl(modalEl);\n }\n // eslint-disable-next-line\n removeTabContent(tabEl) {\n const $tabEl = $(tabEl);\n $tabEl.html('');\n }\n\n removeNavbar(el) {\n const router = this;\n router.removeEl(el);\n }\n\n removePage(el) {\n const $el = $(el);\n const f7Page = $el && $el[0] && $el[0].f7Page;\n const router = this;\n if (f7Page && f7Page.route && f7Page.route.route && f7Page.route.route.keepAlive) {\n $el.remove();\n return;\n }\n router.removeEl(el);\n }\n\n removeEl(el) {\n if (!el) return;\n const router = this;\n const $el = $(el);\n if ($el.length === 0) return;\n $el.find('.tab').each((tabEl) => {\n $(tabEl)\n .children()\n .each((tabChild) => {\n if (tabChild.f7Component) {\n $(tabChild).trigger('tab:beforeremove');\n tabChild.f7Component.destroy();\n }\n });\n });\n if ($el[0].f7Component && $el[0].f7Component.destroy) {\n $el[0].f7Component.destroy();\n }\n if (!router.params.removeElements) {\n return;\n }\n if (router.params.removeElementsWithTimeout) {\n setTimeout(() => {\n $el.remove();\n }, router.params.removeElementsTimeout);\n } else {\n $el.remove();\n }\n }\n\n getPageEl(content) {\n const router = this;\n if (typeof content === 'string') {\n router.tempDom.innerHTML = content;\n } else {\n if ($(content).hasClass('page')) {\n return content;\n }\n router.tempDom.innerHTML = '';\n $(router.tempDom).append(content);\n }\n\n return router.findElement('.page', router.tempDom);\n }\n\n findElement(stringSelector, container) {\n const router = this;\n const view = router.view;\n const app = router.app;\n\n // Modals Selector\n const modalsSelector =\n '.popup, .dialog, .popover, .actions-modal, .sheet-modal, .login-screen, .page';\n\n const $container = $(container);\n const selector = stringSelector;\n\n let found = $container\n .find(selector)\n .filter((el) => $(el).parents(modalsSelector).length === 0);\n\n if (found.length > 1) {\n if (typeof view.selector === 'string') {\n // Search in related view\n found = $container.find(`${view.selector} ${selector}`);\n }\n if (found.length > 1) {\n // Search in main view\n found = $container.find(`.${app.params.viewMainClass} ${selector}`);\n }\n }\n if (found.length === 1) return found;\n\n 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\n flattenRoutes(routes = this.routes) {\n const router = this;\n let flattenedRoutes = [];\n routes.forEach((route) => {\n let hasTabRoutes = false;\n if ('tabs' in route && route.tabs) {\n const mergedPathsRoutes = route.tabs.map((tabRoute) => {\n const tRoute = extend({}, route, {\n path: `${route.path}/${tabRoute.path}`.replace('///', '/').replace('//', '/'),\n parentPath: route.path,\n tab: tabRoute,\n });\n delete tRoute.tabs;\n delete tRoute.routes;\n return tRoute;\n });\n hasTabRoutes = true;\n flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes));\n }\n if ('detailRoutes' in route) {\n const mergedPathsRoutes = route.detailRoutes.map((detailRoute) => {\n const dRoute = extend({}, detailRoute);\n dRoute.masterRoute = route;\n dRoute.masterRoutePath = route.path;\n return dRoute;\n });\n flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes));\n }\n if ('routes' in route) {\n const mergedPathsRoutes = route.routes.map((childRoute) => {\n const cRoute = extend({}, childRoute);\n cRoute.path = `${route.path}/${cRoute.path}`.replace('///', '/').replace('//', '/');\n return cRoute;\n });\n if (hasTabRoutes) {\n flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes));\n } else {\n flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes));\n }\n }\n if (!('routes' in route) && !('tabs' in route && route.tabs) && !('detailRoutes' in route)) {\n flattenedRoutes.push(route);\n }\n });\n return flattenedRoutes;\n }\n\n // eslint-disable-next-line\n parseRouteUrl(url) {\n if (!url) return {};\n const query = parseUrlQuery(url);\n const hash = url.split('#')[1];\n const params = {};\n const path = url.split('#')[0].split('?')[0];\n return {\n query,\n hash,\n params,\n url,\n path,\n };\n }\n\n generateUrl(parameters = {}) {\n if (typeof parameters === 'string') {\n return parameters;\n }\n const { name, path, params, query } = parameters;\n if (!name && !path) {\n throw new Error('Framework7: \"name\" or \"path\" parameter is required');\n }\n const router = this;\n const route = name ? router.findRouteByKey('name', name) : router.findRouteByKey('path', path);\n\n if (!route) {\n if (name) {\n throw new Error(`Framework7: route with name \"${name}\" not found`);\n } else {\n throw new Error(`Framework7: route with path \"${path}\" not found`);\n }\n }\n const url = router.constructRouteUrl(route, { params, query });\n\n if (url === '') {\n return '/';\n }\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, { params, query } = {}) {\n const { path } = route;\n const toUrl = compile(path);\n let url;\n try {\n url = toUrl(params || {});\n } catch (error) {\n throw new Error(\n `Framework7: error constructing route URL from passed params:\\nRoute: ${path}\\n${error.toString()}`,\n );\n }\n\n if (query) {\n if (typeof query === 'string') url += `?${query}`;\n else if (Object.keys(query).length) url += `?${serializeObject(query)}`;\n }\n\n return url;\n }\n\n findTabRouteUrl(tabEl) {\n const router = this;\n const $tabEl = $(tabEl);\n const parentPath = router.currentRoute.route.parentPath;\n const tabId = $tabEl.attr('id');\n const flattenedRoutes = router.flattenRoutes(router.routes);\n let foundTabRouteUrl;\n flattenedRoutes.forEach((route) => {\n if (route.parentPath === parentPath && route.tab && route.tab.id === tabId) {\n if (router.currentRoute.params && Object.keys(router.currentRoute.params).length > 0) {\n foundTabRouteUrl = router.constructRouteUrl(route, {\n params: router.currentRoute.params,\n query: router.currentRoute.query,\n });\n } else {\n foundTabRouteUrl = route.path;\n }\n }\n });\n return foundTabRouteUrl;\n }\n\n findRouteByKey(key, value) {\n const router = this;\n const routes = router.routes;\n const flattenedRoutes = router.flattenRoutes(routes);\n let matchingRoute;\n\n flattenedRoutes.forEach((route) => {\n if (matchingRoute) return;\n if (route[key] === value) {\n matchingRoute = route;\n }\n });\n return matchingRoute;\n }\n\n findMatchingRoute(url) {\n if (!url) return undefined;\n const router = this;\n const routes = router.routes;\n const flattenedRoutes = router.flattenRoutes(routes);\n const { path, query, hash, params } = router.parseRouteUrl(url);\n let matchingRoute;\n flattenedRoutes.forEach((route) => {\n if (matchingRoute) return;\n const keys = [];\n\n const pathsToMatch = [route.path || '/'];\n if (route.alias) {\n if (typeof route.alias === 'string') pathsToMatch.push(route.alias);\n else if (Array.isArray(route.alias)) {\n route.alias.forEach((aliasPath) => {\n pathsToMatch.push(aliasPath);\n });\n }\n }\n\n let matched;\n pathsToMatch.forEach((pathToMatch) => {\n if (matched) return;\n matched = pathToRegexp(pathToMatch, keys).exec(path || '/');\n });\n\n if (matched) {\n keys.forEach((keyObj, index) => {\n if (typeof keyObj.name === 'number') return;\n const paramValue = matched[index + 1];\n if (typeof paramValue === 'undefined' || paramValue === null) {\n params[keyObj.name] = paramValue;\n } else {\n params[keyObj.name] = decodeURIComponent(paramValue);\n }\n });\n\n let parentPath;\n if (route.parentPath) {\n parentPath = (path || '/')\n .split('/')\n .slice(0, route.parentPath.split('/').length - 1)\n .join('/');\n }\n\n matchingRoute = {\n query,\n hash,\n params,\n url,\n path: path || '/',\n parentPath,\n route,\n name: route.name,\n };\n }\n });\n return matchingRoute;\n }\n\n // eslint-disable-next-line\n replaceRequestUrlParams(url = '', options = {}) {\n let compiledUrl = url;\n if (\n typeof compiledUrl === 'string' &&\n compiledUrl.indexOf('{{') >= 0 &&\n options &&\n options.route &&\n options.route.params &&\n Object.keys(options.route.params).length\n ) {\n Object.keys(options.route.params).forEach((paramName) => {\n const regExp = new RegExp(`{{${paramName}}}`, 'g');\n compiledUrl = compiledUrl.replace(regExp, options.route.params[paramName] || '');\n });\n }\n return compiledUrl;\n }\n\n removeFromXhrCache(url) {\n const router = this;\n const xhrCache = router.cache.xhr;\n let index = false;\n for (let i = 0; i < xhrCache.length; i += 1) {\n if (xhrCache[i].url === url) index = i;\n }\n if (index !== false) xhrCache.splice(index, 1);\n }\n\n xhrRequest(requestUrl, options) {\n const router = this;\n const params = router.params;\n const { ignoreCache } = options;\n let url = requestUrl;\n\n let hasQuery = url.indexOf('?') >= 0;\n if (\n params.passRouteQueryToRequest &&\n options &&\n options.route &&\n options.route.query &&\n Object.keys(options.route.query).length\n ) {\n url += `${hasQuery ? '&' : '?'}${serializeObject(options.route.query)}`;\n hasQuery = true;\n }\n\n if (\n params.passRouteParamsToRequest &&\n options &&\n options.route &&\n options.route.params &&\n Object.keys(options.route.params).length\n ) {\n url += `${hasQuery ? '&' : '?'}${serializeObject(options.route.params)}`;\n hasQuery = true;\n }\n\n if (url.indexOf('{{') >= 0) {\n url = router.replaceRequestUrlParams(url, options);\n }\n // should we ignore get params or not\n if (params.xhrCacheIgnoreGetParameters && url.indexOf('?') >= 0) {\n url = url.split('?')[0];\n }\n return new Promise((resolve, reject) => {\n if (\n params.xhrCache &&\n !ignoreCache &&\n url.indexOf('nocache') < 0 &&\n params.xhrCacheIgnore.indexOf(url) < 0\n ) {\n for (let i = 0; i < router.cache.xhr.length; i += 1) {\n const cachedUrl = router.cache.xhr[i];\n if (cachedUrl.url === url) {\n // Check expiration\n if (now() - cachedUrl.time < params.xhrCacheDuration) {\n // Load from cache\n resolve(cachedUrl.content);\n return;\n }\n }\n }\n }\n router.xhrAbortController = new AbortController();\n let fetchRes;\n fetch(url, { signal: router.xhrAbortController.signal, method: 'GET' })\n .then((res) => {\n fetchRes = res;\n return res.text();\n })\n .then((responseText) => {\n const { status } = fetchRes;\n router.emit('routerAjaxComplete', fetchRes);\n if (\n (status !== 'error' && status !== 'timeout' && status >= 200 && status < 300) ||\n status === 0\n ) {\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 })\n .catch((err) => {\n reject(err);\n });\n });\n }\n\n setNavbarPosition($el, position, ariaHidden) {\n const router = this;\n $el.removeClass('navbar-previous navbar-current navbar-next');\n if (position) {\n $el.addClass(`navbar-${position}`);\n }\n\n if (ariaHidden === false) {\n $el.removeAttr('aria-hidden');\n } else if (ariaHidden === true) {\n $el.attr('aria-hidden', 'true');\n }\n $el.trigger('navbar:position', { position });\n router.emit('navbarPosition', $el[0], position);\n }\n\n setPagePosition($el, position, ariaHidden) {\n const router = this;\n $el.removeClass('page-previous page-current page-next');\n $el.addClass(`page-${position}`);\n if (ariaHidden === false) {\n $el.removeAttr('aria-hidden');\n } else if (ariaHidden === true) {\n $el.attr('aria-hidden', 'true');\n }\n $el.trigger('page:position', { position });\n router.emit('pagePosition', $el[0], position);\n }\n\n // Remove theme elements\n removeThemeElements(el) {\n const router = this;\n const theme = router.app.theme;\n let toRemove;\n if (theme === 'ios') {\n toRemove = '.md-only, .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\n getPageData(pageEl, navbarEl, from, to, route = {}, pageFromEl) {\n const router = this;\n const $pageEl = $(pageEl).eq(0);\n const $navbarEl = $(navbarEl).eq(0);\n const currentPage = $pageEl[0].f7Page || {};\n let direction;\n let pageFrom;\n if ((from === 'next' && to === 'current') || (from === 'current' && to === 'previous'))\n direction = 'forward';\n if ((from === 'current' && to === 'next') || (from === 'previous' && to === 'current'))\n direction = 'backward';\n if (currentPage && !currentPage.fromPage) {\n const $pageFromEl = $(pageFromEl);\n if ($pageFromEl.length) {\n pageFrom = $pageFromEl[0].f7Page;\n }\n }\n pageFrom = currentPage.pageFrom || pageFrom;\n if (pageFrom && pageFrom.pageFrom) {\n pageFrom.pageFrom = null;\n }\n const page = {\n app: router.app,\n view: router.view,\n router,\n $el: $pageEl,\n el: $pageEl[0],\n $pageEl,\n pageEl: $pageEl[0],\n $navbarEl,\n navbarEl: $navbarEl[0],\n name: $pageEl.attr('data-name'),\n position: from,\n from,\n to,\n direction,\n route: currentPage.route ? currentPage.route : route,\n pageFrom,\n };\n\n $pageEl[0].f7Page = page;\n return page;\n }\n\n // Callbacks\n pageCallback(callback, pageEl, navbarEl, from, to, options = {}, pageFromEl) {\n if (!pageEl) return;\n const router = this;\n const $pageEl = $(pageEl);\n if (!$pageEl.length) return;\n const $navbarEl = $(navbarEl);\n const { route } = options;\n const restoreScrollTopOnBack =\n router.params.restoreScrollTopOnBack &&\n !(\n router.params.masterDetailBreakpoint > 0 &&\n $pageEl.hasClass('page-master') &&\n router.app.width >= router.params.masterDetailBreakpoint\n );\n const keepAlive =\n $pageEl[0].f7Page &&\n $pageEl[0].f7Page.route &&\n $pageEl[0].f7Page.route.route &&\n $pageEl[0].f7Page.route.route.keepAlive;\n\n if (callback === 'beforeRemove' && keepAlive) {\n callback = 'beforeUnmount'; // eslint-disable-line\n }\n\n const camelName = `page${callback[0].toUpperCase() + callback.slice(1, callback.length)}`;\n const colonName = `page:${callback.toLowerCase()}`;\n\n let page = {};\n if (callback === 'beforeRemove' && $pageEl[0].f7Page) {\n page = extend($pageEl[0].f7Page, { from, to, position: from });\n } else {\n page = router.getPageData($pageEl[0], $navbarEl[0], from, to, route, pageFromEl);\n }\n page.swipeBack = !!options.swipeBack;\n\n const { on = {}, once = {} } = options.route ? options.route.route : {};\n if (options.on) {\n extend(on, options.on);\n }\n if (options.once) {\n extend(once, options.once);\n }\n\n function attachEvents() {\n if ($pageEl[0].f7RouteEventsAttached) return;\n $pageEl[0].f7RouteEventsAttached = true;\n if (on && Object.keys(on).length > 0) {\n $pageEl[0].f7RouteEventsOn = on;\n Object.keys(on).forEach((eventName) => {\n on[eventName] = on[eventName].bind(router);\n $pageEl.on(eventNameToColonCase(eventName), on[eventName]);\n });\n }\n if (once && Object.keys(once).length > 0) {\n $pageEl[0].f7RouteEventsOnce = once;\n Object.keys(once).forEach((eventName) => {\n once[eventName] = once[eventName].bind(router);\n $pageEl.once(eventNameToColonCase(eventName), once[eventName]);\n });\n }\n }\n\n function detachEvents() {\n if (!$pageEl[0].f7RouteEventsAttached) return;\n if ($pageEl[0].f7RouteEventsOn) {\n Object.keys($pageEl[0].f7RouteEventsOn).forEach((eventName) => {\n $pageEl.off(eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOn[eventName]);\n });\n }\n if ($pageEl[0].f7RouteEventsOnce) {\n Object.keys($pageEl[0].f7RouteEventsOnce).forEach((eventName) => {\n $pageEl.off(eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOnce[eventName]);\n });\n }\n $pageEl[0].f7RouteEventsAttached = null;\n $pageEl[0].f7RouteEventsOn = null;\n $pageEl[0].f7RouteEventsOnce = null;\n delete $pageEl[0].f7RouteEventsAttached;\n delete $pageEl[0].f7RouteEventsOn;\n delete $pageEl[0].f7RouteEventsOnce;\n }\n\n if (callback === 'mounted') {\n attachEvents();\n }\n if (callback === 'init') {\n if (\n restoreScrollTopOnBack &&\n (from === 'previous' || !from) &&\n to === 'current' &&\n router.scrollHistory[page.route.url] &&\n !$pageEl.hasClass('no-restore-scroll')\n ) {\n let $pageContent = $pageEl.find('.page-content');\n if ($pageContent.length > 0) {\n // eslint-disable-next-line\n $pageContent = $pageContent.filter((pageContentEl) => {\n return (\n $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 &&\n !$(pageContentEl).is('.tab:not(.tab-active)')\n );\n });\n }\n $pageContent.scrollTop(router.scrollHistory[page.route.url]);\n }\n attachEvents();\n if ($pageEl[0].f7PageInitialized) {\n $pageEl.trigger('page:reinit', page);\n router.emit('pageReinit', page);\n return;\n }\n $pageEl[0].f7PageInitialized = true;\n }\n if (\n restoreScrollTopOnBack &&\n callback === 'beforeOut' &&\n from === 'current' &&\n to === 'previous'\n ) {\n // Save scroll position\n let $pageContent = $pageEl.find('.page-content');\n if ($pageContent.length > 0) {\n // eslint-disable-next-line\n $pageContent = $pageContent.filter((pageContentEl) => {\n return (\n $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 &&\n !$(pageContentEl).is('.tab:not(.tab-active)')\n );\n });\n }\n router.scrollHistory[page.route.url] = $pageContent.scrollTop();\n }\n if (restoreScrollTopOnBack && callback === 'beforeOut' && from === 'current' && to === 'next') {\n // Delete scroll position\n delete router.scrollHistory[page.route.url];\n }\n\n $pageEl.trigger(colonName, page);\n router.emit(camelName, page);\n\n if (callback === 'beforeRemove' || callback === 'beforeUnmount') {\n detachEvents();\n if (!keepAlive) {\n if ($pageEl[0].f7Page && $pageEl[0].f7Page.navbarEl) {\n delete $pageEl[0].f7Page.navbarEl.f7Page;\n }\n $pageEl[0].f7Page = null;\n }\n }\n }\n\n saveHistory() {\n const router = this;\n const window = getWindow();\n router.view.history = router.history;\n if (\n router.params.browserHistory &&\n router.params.browserHistoryStoreHistory &&\n window.localStorage\n ) {\n window.localStorage[`f7router-${router.view.id}-history`] = JSON.stringify(router.history);\n }\n }\n\n restoreHistory() {\n const router = this;\n const window = getWindow();\n if (\n router.params.browserHistory &&\n router.params.browserHistoryStoreHistory &&\n window.localStorage &&\n window.localStorage[`f7router-${router.view.id}-history`]\n ) {\n router.history = JSON.parse(window.localStorage[`f7router-${router.view.id}-history`]);\n router.view.history = router.history;\n }\n }\n\n clearHistory() {\n const router = this;\n router.history = [];\n if (router.view) router.view.history = [];\n router.saveHistory();\n }\n\n updateCurrentUrl(newUrl) {\n const router = this;\n appRouterCheck(router, 'updateCurrentUrl');\n // Update history\n if (router.history.length) {\n router.history[router.history.length - 1] = newUrl;\n } else {\n router.history.push(newUrl);\n }\n\n // Update current route params\n const { query, hash, params, url, path } = router.parseRouteUrl(newUrl);\n if (router.currentRoute) {\n extend(router.currentRoute, {\n query,\n hash,\n params,\n url,\n path,\n });\n }\n\n if (router.params.browserHistory) {\n const browserHistoryRoot = router.params.browserHistoryRoot || '';\n History.replace(\n router.view.id,\n {\n url: newUrl,\n },\n browserHistoryRoot + router.params.browserHistorySeparator + newUrl,\n );\n }\n\n // Save History\n router.saveHistory();\n\n router.emit('routeUrlUpdate', router.currentRoute, router);\n }\n\n getInitialUrl() {\n const router = this;\n if (router.initialUrl) {\n return {\n initialUrl: router.initialUrl,\n historyRestored: router.historyRestored,\n };\n }\n const { app, view } = router;\n const document = getDocument();\n const window = getWindow();\n\n const location =\n app.params.url && typeof app.params.url === 'string' && typeof URL !== 'undefined'\n ? new URL(app.params.url)\n : document.location;\n\n let initialUrl = router.params.url;\n let documentUrl = location.href.split(location.origin)[1];\n\n let historyRestored;\n const { browserHistory, browserHistoryOnLoad, browserHistorySeparator } = router.params;\n let { browserHistoryRoot } = router.params;\n if (\n (window.cordova || (window.Capacitor && window.Capacitor.isNative)) &&\n browserHistory &&\n !browserHistorySeparator &&\n !browserHistoryRoot &&\n location.pathname.indexOf('index.html')\n ) {\n // eslint-disable-next-line\n console.warn(\n 'Framework7: wrong or not complete browserHistory configuration, trying to guess browserHistoryRoot',\n );\n browserHistoryRoot = location.pathname.split('index.html')[0];\n }\n if (!browserHistory || !browserHistoryOnLoad) {\n if (!initialUrl) {\n initialUrl = documentUrl;\n }\n if (location.search && initialUrl.indexOf('?') < 0) {\n initialUrl += location.search;\n }\n if (location.hash && initialUrl.indexOf('#') < 0) {\n initialUrl += location.hash;\n }\n } else {\n if (browserHistoryRoot && documentUrl.indexOf(browserHistoryRoot) >= 0) {\n documentUrl = documentUrl.substring(\n documentUrl.indexOf(browserHistoryRoot) + browserHistoryRoot.length,\n );\n if (documentUrl === '') documentUrl = '/';\n }\n if (browserHistorySeparator.length > 0 && documentUrl.indexOf(browserHistorySeparator) >= 0) {\n initialUrl = documentUrl.substring(\n documentUrl.indexOf(browserHistorySeparator) + browserHistorySeparator.length,\n );\n } else {\n initialUrl = documentUrl;\n }\n router.restoreHistory();\n if (router.history.indexOf(initialUrl) >= 0) {\n router.history = router.history.slice(0, router.history.indexOf(initialUrl) + 1);\n } else if (router.params.url === initialUrl) {\n router.history = [initialUrl];\n } else if (\n History.state &&\n History.state[view.id] &&\n History.state[view.id].url === router.history[router.history.length - 1]\n ) {\n initialUrl = router.history[router.history.length - 1];\n } else {\n router.history = [documentUrl.split(browserHistorySeparator)[0] || '/', initialUrl];\n }\n if (router.history.length > 1) {\n historyRestored = true;\n } else {\n router.history = [];\n }\n router.saveHistory();\n }\n\n router.initialUrl = initialUrl;\n router.historyRestored = historyRestored;\n return { initialUrl, historyRestored };\n }\n\n init() {\n const router = this;\n const { app, view } = router;\n const document = getDocument();\n\n router.mount();\n\n const { initialUrl, historyRestored } = router.getInitialUrl();\n\n // Init Swipeback\n if (\n (view && router.params.iosSwipeBack && app.theme === 'ios') ||\n (view && router.params.mdSwipeBack && app.theme === 'md')\n ) {\n SwipeBack(router);\n }\n\n const {\n browserHistory,\n browserHistoryOnLoad,\n browserHistoryAnimateOnLoad,\n browserHistoryInitialMatch,\n } = router.params;\n\n let currentRoute;\n if (router.history.length > 1) {\n // Will load page\n const initUrl = browserHistoryInitialMatch ? initialUrl : router.history[0];\n currentRoute = router.findMatchingRoute(initUrl);\n if (!currentRoute) {\n currentRoute = extend(router.parseRouteUrl(initUrl), {\n route: {\n url: initUrl,\n path: initUrl.split('?')[0],\n },\n });\n }\n } else {\n // Don't load page\n currentRoute = router.findMatchingRoute(initialUrl);\n if (!currentRoute) {\n currentRoute = extend(router.parseRouteUrl(initialUrl), {\n route: {\n url: initialUrl,\n path: initialUrl.split('?')[0],\n },\n });\n }\n }\n\n if (router.$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 =\n router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 1) {\n router.back({ preload: true });\n }\n },\n pageAfterIn() {\n if (!historyRestored) return;\n const preloadPreviousPage =\n router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 1) {\n router.back({ preload: true });\n }\n },\n },\n });\n } else if (router.$el.children('.page').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 (\n router.currentRoute &&\n router.currentRoute.route &&\n (router.currentRoute.route.master === true ||\n (typeof router.currentRoute.route.master === 'function' &&\n router.currentRoute.route.master(app, router))) &&\n router.params.masterDetailBreakpoint > 0\n ) {\n $pageEl.addClass('page-master');\n $pageEl.trigger('page:role', { role: 'master' });\n if ($navbarEl && $navbarEl.length) {\n $navbarEl.addClass('navbar-master');\n }\n view.checkMasterDetailBreakpoint();\n }\n const initOptions = {\n route: router.currentRoute,\n };\n if (router.currentRoute && router.currentRoute.route && router.currentRoute.route.options) {\n extend(initOptions, router.currentRoute.route.options);\n }\n router.currentPageEl = $pageEl[0];\n if (router.dynamicNavbar && $navbarEl.length) {\n router.currentNavbarEl = $navbarEl[0];\n }\n router.removeThemeElements($pageEl);\n if (router.dynamicNavbar && $navbarEl.length) {\n router.removeThemeElements($navbarEl);\n }\n if (initOptions.route.route.tab) {\n hasTabRoute = true;\n router.tabLoad(initOptions.route.route.tab, extend({}, initOptions));\n }\n router.pageCallback('init', $pageEl, $navbarEl, 'current', undefined, initOptions);\n router.pageCallback('beforeIn', $pageEl, $navbarEl, 'current', undefined, initOptions);\n router.pageCallback('afterIn', $pageEl, $navbarEl, 'current', undefined, initOptions);\n });\n if (historyRestored) {\n if (browserHistoryInitialMatch) {\n const preloadPreviousPage =\n router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 1) {\n router.back({ preload: true });\n }\n } else {\n router.navigate(initialUrl, {\n initial: true,\n browserHistory: false,\n history: false,\n animate: browserHistoryAnimateOnLoad,\n once: {\n pageAfterIn() {\n const preloadPreviousPage =\n router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];\n if (preloadPreviousPage && router.history.length > 2) {\n router.back({ preload: true });\n }\n },\n },\n });\n }\n }\n if (!historyRestored && !hasTabRoute) {\n router.history.push(initialUrl);\n router.saveHistory();\n }\n }\n if (\n initialUrl &&\n browserHistory &&\n browserHistoryOnLoad &&\n (!History.state || !History.state[view.id])\n ) {\n History.initViewState(view.id, {\n url: initialUrl,\n });\n }\n router.emit('local::init routerInit', router);\n }\n\n destroy() {\n let router = this;\n\n router.emit('local::destroy routerDestroy', router);\n\n // Delete props & methods\n Object.keys(router).forEach((routerProp) => {\n router[routerProp] = null;\n delete router[routerProp];\n });\n\n router = null;\n }\n}\n\n// Load\nRouter.prototype.navigate = navigate;\nRouter.prototype.refreshPage = refreshPage;\n// Tab\nRouter.prototype.tabLoad = tabLoad;\nRouter.prototype.tabRemove = tabRemove;\n// Modal\nRouter.prototype.modalLoad = modalLoad;\nRouter.prototype.modalRemove = modalRemove;\n// Back\nRouter.prototype.back = back;\n// Clear history\nRouter.prototype.clearPreviousHistory = clearPreviousHistory;\n\nexport default Router;\n","import Router from './router-class.js';\n\nexport default {\n name: 'router',\n static: {\n Router,\n },\n instance: {\n cache: {\n xhr: [],\n templates: [],\n components: [],\n },\n },\n create() {\n const instance = this;\n if (instance.app) {\n // View Router\n if (instance.params.router) {\n instance.router = new Router(instance.app, instance);\n }\n } else {\n // App Router\n instance.router = new Router(instance);\n }\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport { getSupport } from '../../shared/get-support.js';\n\nfunction resizableView(view) {\n const app = view.app;\n const support = getSupport();\n if (view.resizableInitialized) return;\n extend(view, {\n resizable: true,\n resizableWidth: null,\n resizableInitialized: true,\n });\n const $htmlEl = $('html');\n const { $el } = view;\n if (!$el) return;\n\n let $resizeHandlerEl;\n\n let isTouched;\n let isMoved;\n const touchesStart = {};\n let touchesDiff;\n let width;\n\n let minWidth;\n let maxWidth;\n\n function transformCSSWidth(v) {\n if (!v) return null;\n if (v.indexOf('%') >= 0 || v.indexOf('vw') >= 0) {\n return (parseInt(v, 10) / 100) * app.width;\n }\n const newV = parseInt(v, 10);\n if (Number.isNaN(newV)) return null;\n return newV;\n }\n\n function isResizable() {\n return view.resizable && $el.hasClass('view-resizable') && $el.hasClass('view-master-detail');\n }\n\n function handleTouchStart(e) {\n if (!isResizable()) return;\n touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n isMoved = false;\n isTouched = true;\n const $pageMasterEl = $el.children('.page-master');\n minWidth = transformCSSWidth($pageMasterEl.css('min-width'));\n maxWidth = transformCSSWidth($pageMasterEl.css('max-width'));\n }\n function handleTouchMove(e) {\n if (!isTouched) return;\n e.f7PreventSwipePanel = true;\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n\n if (!isMoved) {\n width = $resizeHandlerEl[0].offsetLeft + $resizeHandlerEl[0].offsetWidth;\n $el.addClass('view-resizing');\n $htmlEl.css('cursor', 'col-resize');\n }\n\n isMoved = true;\n\n e.preventDefault();\n\n touchesDiff = pageX - touchesStart.x;\n\n let newWidth = width + touchesDiff;\n if (minWidth && !Number.isNaN(minWidth)) {\n newWidth = Math.max(newWidth, minWidth);\n }\n if (maxWidth && !Number.isNaN(maxWidth)) {\n newWidth = Math.min(newWidth, maxWidth);\n }\n newWidth = Math.min(Math.max(newWidth, 0), app.width);\n\n view.resizableWidth = newWidth;\n $htmlEl[0].style.setProperty('--f7-page-master-width', `${newWidth}px`);\n\n $el.trigger('view:resize', newWidth);\n view.emit('local::resize viewResize', view, newWidth);\n }\n function handleTouchEnd() {\n $('html').css('cursor', '');\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n isTouched = false;\n isMoved = false;\n\n $htmlEl[0].style.setProperty('--f7-page-master-width', `${view.resizableWidth}px`);\n $el.removeClass('view-resizing');\n }\n\n function handleResize() {\n if (!view.resizableWidth) return;\n minWidth = transformCSSWidth($resizeHandlerEl.css('min-width'));\n maxWidth = transformCSSWidth($resizeHandlerEl.css('max-width'));\n\n if (minWidth && !Number.isNaN(minWidth) && view.resizableWidth < minWidth) {\n view.resizableWidth = Math.max(view.resizableWidth, minWidth);\n }\n if (maxWidth && !Number.isNaN(maxWidth) && view.resizableWidth > maxWidth) {\n view.resizableWidth = Math.min(view.resizableWidth, maxWidth);\n }\n view.resizableWidth = Math.min(Math.max(view.resizableWidth, 0), app.width);\n\n $htmlEl[0].style.setProperty('--f7-page-master-width', `${view.resizableWidth}px`);\n }\n\n $resizeHandlerEl = view.$el.children('.view-resize-handler');\n if (!$resizeHandlerEl.length) {\n view.$el.append('<div class=\"view-resize-handler\"></div>');\n $resizeHandlerEl = view.$el.children('.view-resize-handler');\n }\n view.$resizeHandlerEl = $resizeHandlerEl;\n\n $el.addClass('view-resizable');\n\n // Add Events\n const passive = support.passiveListener ? { passive: true } : false;\n\n view.$el.on(app.touchEvents.start, '.view-resize-handler', handleTouchStart, passive);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n app.on('resize', handleResize);\n view.on('beforeOpen', handleResize);\n\n view.once('viewDestroy', () => {\n $el.removeClass('view-resizable');\n view.$resizeHandlerEl.remove();\n view.$el.off(app.touchEvents.start, '.view-resize-handler', handleTouchStart, passive);\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n app.off('resize', handleResize);\n view.off('beforeOpen', handleResize);\n });\n}\n\nexport default resizableView;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Router from '../../modules/router/router.js';\nimport Framework7Class from '../../shared/class.js';\nimport resizableView from './resizable-view.js';\n\nclass View extends Framework7Class {\n constructor(app, el, viewParams = {}) {\n super(viewParams, [app]);\n\n const view = this;\n\n const ssr = view.params.routerId;\n\n const defaults = {\n routes: [],\n routesAdd: [],\n };\n\n if (!ssr) {\n const $el = $(el);\n if (!$el.length) {\n let message = \"Framework7: can't create a View instance because \";\n message +=\n typeof el === 'string'\n ? `the selector \"${el}\" didn't match any element`\n : 'el must be an HTMLElement or Dom7 object';\n\n throw new Error(message);\n }\n }\n\n // Default View params\n view.params = extend({ el }, defaults, app.params.view, viewParams);\n\n // Routes\n if (view.params.routes.length > 0) {\n view.routes = view.params.routes;\n } else {\n view.routes = [].concat(app.routes, view.params.routesAdd);\n }\n\n // View Props\n extend(false, view, {\n app,\n name: view.params.name,\n main: view.params.main,\n history: [],\n scrollHistory: {},\n });\n\n // Install Modules\n view.useModules();\n\n // Add to app\n app.views.push(view);\n if (view.main) {\n app.views.main = view;\n }\n if (view.name) {\n app.views[view.name] = view;\n }\n\n // Index\n view.index = app.views.indexOf(view);\n\n // View ID\n let viewId;\n if (view.name) {\n viewId = `view_${view.name}`;\n } else if (view.main) {\n viewId = 'view_main';\n } else {\n viewId = `view_${view.index}`;\n }\n view.id = viewId;\n\n if (!view.params.init) {\n return view;\n }\n // Init View\n if (app.initialized) {\n view.init();\n } else {\n app.on('init', () => {\n view.init();\n });\n }\n\n return view;\n }\n\n destroy() {\n let view = this;\n const app = view.app;\n\n view.$el.trigger('view:beforedestroy');\n view.emit('local::beforeDestroy viewBeforeDestroy', view);\n\n app.off('resize', view.checkMasterDetailBreakpoint);\n\n if (view.main) {\n app.views.main = null;\n delete app.views.main;\n } else if (view.name) {\n app.views[view.name] = null;\n delete app.views[view.name];\n }\n view.$el[0].f7View = null;\n delete view.$el[0].f7View;\n\n app.views.splice(app.views.indexOf(view), 1);\n\n // Destroy Router\n if (view.params.router && view.router) {\n view.router.destroy();\n }\n\n view.emit('local::destroy viewDestroy', view);\n\n // Delete props & methods\n Object.keys(view).forEach((viewProp) => {\n view[viewProp] = null;\n delete view[viewProp];\n });\n\n view = null;\n }\n\n checkMasterDetailBreakpoint(force) {\n const view = this;\n const app = view.app;\n const wasMasterDetail = view.$el.hasClass('view-master-detail');\n const isMasterDetail =\n app.width >= view.params.masterDetailBreakpoint && view.$el.children('.page-master').length;\n if ((typeof force === 'undefined' && isMasterDetail) || force === true) {\n view.$el.addClass('view-master-detail');\n if (!wasMasterDetail) {\n view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view);\n view.$el.trigger('view:masterDetailBreakpoint');\n }\n } else {\n view.$el.removeClass('view-master-detail');\n if (wasMasterDetail) {\n view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view);\n view.$el.trigger('view:masterDetailBreakpoint');\n }\n }\n }\n\n initMasterDetail() {\n const view = this;\n const app = view.app;\n view.checkMasterDetailBreakpoint = view.checkMasterDetailBreakpoint.bind(view);\n view.checkMasterDetailBreakpoint();\n if (view.params.masterDetailResizable) {\n resizableView(view);\n }\n app.on('resize', view.checkMasterDetailBreakpoint);\n }\n\n mount(viewEl) {\n const view = this;\n const app = view.app;\n const el = view.params.el || viewEl;\n const $el = $(el);\n\n // Selector\n let selector;\n if (typeof el === 'string') selector = el;\n else {\n // Supposed to be HTMLElement or Dom7\n selector =\n ($el.attr('id') ? `#${$el.attr('id')}` : '') +\n ($el.attr('class')\n ? `.${$el.attr('class').replace(/ /g, '.').replace('.active', '')}`\n : '');\n }\n\n // DynamicNavbar\n let $navbarsEl;\n if (app.theme === 'ios' && view.params.iosDynamicNavbar) {\n $navbarsEl = $el.children('.navbars').eq(0);\n if ($navbarsEl.length === 0) {\n $navbarsEl = $('<div class=\"navbars\"></div>');\n }\n }\n\n extend(view, {\n $el,\n el: $el[0],\n main: view.main || $el.hasClass('view-main'),\n $navbarsEl,\n navbarsEl: $navbarsEl ? $navbarsEl[0] : undefined,\n selector,\n });\n\n if (view.main) {\n app.views.main = view;\n }\n\n // Save in DOM\n if ($el && $el[0]) {\n $el[0].f7View = view;\n }\n\n view.emit('local::mount viewMount', view);\n }\n\n init(viewEl) {\n const view = this;\n view.mount(viewEl);\n if (view.params.router) {\n if (view.params.masterDetailBreakpoint > 0) {\n view.initMasterDetail();\n }\n if (\n view.params.initRouterOnTabShow &&\n view.$el.hasClass('tab') &&\n !view.$el.hasClass('tab-active')\n ) {\n view.$el.once('tab:show', () => {\n view.router.init();\n });\n } else {\n view.router.init();\n }\n\n view.$el.trigger('view:init');\n view.emit('local::init viewInit', view);\n }\n }\n}\n\n// Use Router\nView.use(Router);\n\nexport default View;\n","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport ViewClass from '../../components/view/view-class.js';\n\nfunction initClicks(app) {\n function handleClicks(e) {\n const window = getWindow();\n const $clickedEl = $(e.target);\n const $clickedLinkEl = $clickedEl.closest('a');\n const isLink = $clickedLinkEl.length > 0;\n const url = isLink && $clickedLinkEl.attr('href');\n\n // Check if link is external\n if (isLink) {\n if (\n $clickedLinkEl.is(app.params.clicks.externalLinks) ||\n // eslint-disable-next-line\n (url && url.indexOf('javascript:') >= 0)\n ) {\n const target = $clickedLinkEl.attr('target');\n if (\n url &&\n window.cordova &&\n window.cordova.InAppBrowser &&\n (target === '_system' || target === '_blank')\n ) {\n e.preventDefault();\n window.cordova.InAppBrowser.open(url, target);\n } else if (\n url &&\n window.Capacitor &&\n window.Capacitor.Plugins &&\n window.Capacitor.Plugins.Browser &&\n (target === '_system' || target === '_blank')\n ) {\n e.preventDefault();\n window.Capacitor.Plugins.Browser.open({ url });\n }\n return;\n }\n }\n\n // Modules Clicks\n Object.keys(app.modules).forEach((moduleName) => {\n const moduleClicks = app.modules[moduleName].clicks;\n if (!moduleClicks) return;\n if (e.preventF7Router) return;\n Object.keys(moduleClicks).forEach((clickSelector) => {\n const matchingClickedElement = $clickedEl.closest(clickSelector).eq(0);\n if (matchingClickedElement.length > 0) {\n moduleClicks[clickSelector].call(\n app,\n matchingClickedElement,\n matchingClickedElement.dataset(),\n e,\n );\n }\n });\n });\n\n // Load Page\n let clickedLinkData = {};\n if (isLink) {\n e.preventDefault();\n clickedLinkData = $clickedLinkEl.dataset();\n }\n clickedLinkData.clickedEl = $clickedLinkEl[0];\n\n // Prevent Router\n if (e.preventF7Router) return;\n if ($clickedLinkEl.hasClass('prevent-router') || $clickedLinkEl.hasClass('router-prevent'))\n return;\n\n const validUrl = url && url.length > 0 && url[0] !== '#';\n if (validUrl || $clickedLinkEl.hasClass('back')) {\n let view;\n if (clickedLinkData.view && clickedLinkData.view === 'current') {\n view = app.views.current;\n } else if (clickedLinkData.view) {\n view = $(clickedLinkData.view)[0].f7View;\n } else {\n view = $clickedEl.parents('.view')[0] && $clickedEl.parents('.view')[0].f7View;\n if (\n view &&\n view.params.linksView &&\n (!$clickedLinkEl.hasClass('back') ||\n ($clickedLinkEl.hasClass('back') && view.router.history.length === 1))\n ) {\n if (typeof view.params.linksView === 'string') view = $(view.params.linksView)[0].f7View;\n else if (view.params.linksView instanceof ViewClass) view = view.params.linksView;\n }\n }\n if (!view) {\n if (app.views.main) view = app.views.main;\n }\n if (!view || !view.router) return;\n if ($clickedLinkEl[0].f7RouteProps) {\n clickedLinkData.props = $clickedLinkEl[0].f7RouteProps;\n }\n if ($clickedLinkEl.hasClass('back')) view.router.back(url, clickedLinkData);\n else view.router.navigate(url, clickedLinkData);\n }\n }\n\n app.on('click', handleClicks);\n}\nexport default {\n name: 'clicks',\n params: {\n clicks: {\n // External Links\n externalLinks: '.external',\n },\n },\n on: {\n init() {\n const app = this;\n initClicks(app);\n },\n },\n};\n","import { merge } from '../../shared/utils.js';\n\nexport default {\n name: 'routerComponentLoader',\n proto: {\n openIn(router, url, options) {\n const navigateOptions = {\n url,\n route: {\n path: url,\n options: {\n ...options,\n openIn: undefined,\n },\n },\n };\n const params = {\n ...options,\n };\n\n const component = (props, ctx) => {\n const { $h, $onMounted, $el, $f7 } = ctx;\n $onMounted(() => {\n const viewEl = $el.value.find('.view');\n const view = $f7.view.create(viewEl, {\n linksView: router.view.selector,\n ignoreOpenIn: true,\n loadInitialPage: false,\n });\n view.router.navigate(url, { props: options.props, reloadAll: true });\n });\n // eslint-disable-next-line\n return () => {\n if (options.openIn === 'popup') {\n return $h`<div class=\"popup popup-router-open-in\" data-url=\"${url}\"><div class=\"view\"></div></div>`;\n }\n if (options.openIn === 'loginScreen') {\n return $h`<div class=\"login-screen login-screen-router-open-in\" data-url=\"${url}\"><div class=\"view\"></div></div>`;\n }\n if (options.openIn === 'sheet') {\n return $h`<div class=\"sheet-modal sheet-modal-router-open-in\" data-url=\"${url}\"><div class=\"sheet-modal-inner\"><div class=\"view\"></div></div></div>`;\n }\n if (options.openIn === 'popover') {\n return $h`<div class=\"popover popover-router-open-in\" data-url=\"${url}\"><div class=\"popover-inner\"><div class=\"view\"></div></div></div>`;\n }\n if (options.openIn.indexOf('panel') >= 0) {\n const parts = options.openIn.split(':');\n const side = parts[1] || 'left';\n const effect = parts[2] || 'cover';\n\n return $h`<div class=\"panel panel-router-open-in panel-${side} panel-${effect}\" data-url=\"${url}\"><div class=\"view\"></div></div>`;\n }\n };\n };\n if (options.openIn === 'popup') {\n navigateOptions.route.popup = params;\n }\n if (options.openIn === 'loginScreen') {\n navigateOptions.route.loginScreen = params;\n }\n if (options.openIn === 'sheet') {\n navigateOptions.route.sheet = params;\n }\n if (options.openIn === 'popover') {\n params.targetEl = options.clickedEl || options.targetEl;\n navigateOptions.route.popover = params;\n }\n if (options.openIn.indexOf('panel') >= 0) {\n params.targetEl = options.clickedEl || options.targetEl;\n navigateOptions.route.panel = params;\n }\n params.component = component;\n\n return router.navigate(navigateOptions);\n },\n componentLoader(component, componentUrl, options = {}, resolve, reject) {\n const router = this;\n const { app } = router;\n const url = typeof component === 'string' ? component : componentUrl;\n const compiledUrl = router.replaceRequestUrlParams(url, options);\n function compile(componentFunction) {\n let context = options.context || {};\n if (typeof context === 'function') context = context.call(router);\n else if (typeof context === 'string') {\n try {\n context = JSON.parse(context);\n } catch (err) {\n reject(err);\n throw err;\n }\n }\n const componentContext = merge({}, context, {\n f7route: options.route,\n f7router: router,\n });\n const componentProps = merge(\n options.route ? options.route.params || {} : {},\n options.props || {},\n options.routeProps || {},\n );\n let componentEl;\n let componentRoot;\n if (options.componentOptions && options.componentOptions.el) {\n componentEl = options.componentOptions.el;\n }\n if (options.componentOptions && options.componentOptions.root) {\n componentRoot = options.componentOptions.root;\n }\n app.component\n .create(componentFunction, componentProps, {\n context: componentContext,\n el: componentEl,\n root: componentRoot,\n })\n .then((createdComponent) => {\n resolve(createdComponent.el);\n })\n .catch((err) => {\n reject(err);\n throw new Error(err, { cause: err });\n });\n }\n let cachedComponent;\n if (compiledUrl && router.params.componentCache) {\n router.cache.components.forEach((cached) => {\n if (cached.url === compiledUrl) cachedComponent = cached.component;\n });\n }\n if (compiledUrl && cachedComponent) {\n compile(cachedComponent);\n } else if (compiledUrl && !cachedComponent) {\n // Load via XHR\n if (router.xhrAbortController) {\n router.xhrAbortController.abort();\n router.xhrAbortController = false;\n }\n router\n .xhrRequest(url, options)\n .then((loadedComponent) => {\n const parsedComponent = app.component.parse(loadedComponent);\n if (router.params.componentCache) {\n router.cache.components.push({\n url: compiledUrl,\n component: parsedComponent,\n });\n }\n compile(parsedComponent);\n })\n .catch((err) => {\n reject();\n throw err;\n });\n } else {\n compile(component);\n }\n },\n\n modalComponentLoader({ component, componentUrl, options, resolve, reject } = {}) {\n const router = this;\n router.componentLoader(\n component,\n componentUrl,\n options,\n (el) => {\n resolve(el);\n },\n reject,\n );\n },\n\n tabComponentLoader({ component, componentUrl, options, resolve, reject } = {}) {\n const router = this;\n router.componentLoader(\n component,\n componentUrl,\n options,\n (el) => {\n resolve(el);\n },\n reject,\n );\n },\n\n pageComponentLoader({ component, componentUrl, options, resolve, reject } = {}) {\n const router = this;\n router.componentLoader(\n component,\n componentUrl,\n options,\n (el, newOptions = {}) => {\n resolve(el, newOptions);\n },\n reject,\n );\n },\n },\n};\n","var n=function(t,s,r,e){var u;s[0]=0;for(var h=1;h<s.length;h++){var p=s[h++],a=s[h]?(s[0]|=p?1:2,r[s[h++]]):s[++h];3===p?e[0]=a:4===p?e[1]=Object.assign(e[1]||{},a):5===p?(e[1]=e[1]||{})[s[++h]]=a:6===p?e[1][s[++h]]+=a+\"\":p?(u=t.apply(a,n(t,a,r,[\"\",null])),e.push(u),a[0]?s[0]|=2:(s[h-2]=0,s[h]=u)):e.push(a)}return e},t=new Map;export default function(s){var r=t.get(this);return r||(r=new Map,t.set(this,r)),(r=n(this,r.get(s)||(r.set(s,r=function(n){for(var t,s,r=1,e=\"\",u=\"\",h=[0],p=function(n){1===r&&(n||(e=e.replace(/^\\s*\\n\\s*|\\s*\\n\\s*$/g,\"\")))?h.push(0,n,e):3===r&&(n||e)?(h.push(3,n,e),r=2):2===r&&\"...\"===e&&n?h.push(4,n,0):2===r&&e&&!n?h.push(5,0,!0,e):r>=5&&((e||!n&&5===r)&&(h.push(r,0,e,s),r=6),n&&(h.push(r,n,0,s),r=6)),e=\"\"},a=0;a<n.length;a++){a&&(1===r&&p(),p(a));for(var l=0;l<n[a].length;l++)t=n[a][l],1===r?\"<\"===t?(p(),h=[h],r=3):e+=t:4===r?\"--\"===e&&\">\"===t?(r=1,e=\"\"):e=t+e[0]:u?t===u?u=\"\":e+=t:'\"'===t||\"'\"===t?u=t:\">\"===t?(p(),r=1):r&&(\"=\"===t?(r=5,s=e,e=\"\"):\"/\"===t&&(r<5||\">\"===n[a][l+1])?(p(),3===r&&(h=h[0]),r=h,(h=h[0]).push(2,0,r),r=0):\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t?(p(),r=2):e+=t),3===r&&\"!--\"===e&&(r=4,h=h[0])}return p(),h}(s)),r),arguments,[])).length>1?r:r[0]}\n","import htm from 'htm';\nimport { flattenArray } from '../../shared/utils.js';\n\nconst ignoreChildren = [false, null, '', undefined];\n\nconst h = (type, props, ...children) => {\n return {\n type,\n props: props || {},\n children: flattenArray(children.filter((child) => ignoreChildren.indexOf(child) < 0)),\n };\n};\n\nconst $h = htm.bind(h);\n\nexport default $h;\n","export function vnode(sel, data, children, text, elm) {\n var key = data === undefined ? undefined : data.key;\n return { sel: sel, data: data, children: children,\n text: text, elm: elm, key: key };\n}\nexport default vnode;\n//# sourceMappingURL=vnode.js.map","export var array = Array.isArray;\nexport function primitive(s) {\n return typeof s === 'string' || typeof s === 'number';\n}\n//# sourceMappingURL=is.js.map","import { vnode } from './vnode.js';\nimport * as is from './is.js';\nfunction addNS(data, children, sel) {\n data.ns = 'http://www.w3.org/2000/svg';\n if (sel !== 'foreignObject' && children !== undefined) {\n for (var i = 0; i < children.length; ++i) {\n var childData = children[i].data;\n if (childData !== undefined) {\n addNS(childData, children[i].children, children[i].sel);\n }\n }\n }\n}\nexport function h(sel, b, c) {\n var data = {}, children, text, i;\n if (c !== undefined) {\n data = b;\n if (is.array(c)) {\n children = c;\n }\n else if (is.primitive(c)) {\n text = c;\n }\n else if (c && c.sel) {\n children = [c];\n }\n }\n else if (b !== undefined) {\n if (is.array(b)) {\n children = b;\n }\n else if (is.primitive(b)) {\n text = b;\n }\n else if (b && b.sel) {\n children = [b];\n }\n else {\n data = b;\n }\n }\n if (is.array(children)) {\n for (i = 0; i < children.length; ++i) {\n if (is.primitive(children[i]))\n children[i] = vnode(undefined, undefined, undefined, children[i], undefined);\n }\n }\n if (sel[0] === 's' && sel[1] === 'v' && sel[2] === 'g' &&\n (sel.length === 3 || sel[3] === '.' || sel[3] === '#')) {\n addNS(data, children, sel);\n }\n return vnode(sel, data, children, text, undefined);\n}\n;\nexport default h;\n//# sourceMappingURL=h.js.map\n","export default {};\n","/* eslint no-use-before-define: \"off\" */\n/* eslint import/no-named-as-default: \"off\" */\nimport h from './snabbdom/h.js';\nimport customComponents from './custom-components.js';\nimport { isObject, eventNameToColonCase } from '../../shared/utils.js';\n\nconst SELF_CLOSING =\n 'area base br col command embed hr img input keygen link menuitem meta param source track wbr'.split(\n ' ',\n );\nconst PROPS_ATTRS =\n 'hidden checked disabled readonly selected autofocus autoplay required multiple value indeterminate routeProps innerHTML'.split(\n ' ',\n );\nconst BOOLEAN_PROPS =\n 'hidden checked disabled readonly selected autofocus autoplay required multiple readOnly indeterminate'.split(\n ' ',\n );\n\nconst getTagName = (treeNode) => {\n return typeof treeNode.type === 'function'\n ? treeNode.type.name || 'CustomComponent'\n : treeNode.type;\n};\n\nconst toCamelCase = (name) => {\n return name\n .split('-')\n .map((word, index) => {\n if (index === 0) return word.toLowerCase();\n return word[0].toUpperCase() + word.substr(1);\n })\n .join('');\n};\nconst propsFromAttrs = (...args) => {\n const context = {};\n args.forEach((obj = {}) => {\n Object.keys(obj).forEach((key) => {\n context[toCamelCase(key)] = obj[key];\n });\n });\n\n return context;\n};\n\nconst createCustomComponent = ({ f7, treeNode, vnode, data }) => {\n const component =\n typeof treeNode.type === 'function' ? treeNode.type : customComponents[treeNode.type];\n f7.component\n .create(component, propsFromAttrs(data.attrs || {}, data.props || {}), {\n el: vnode.elm,\n children: treeNode.children,\n })\n .then((c) => {\n if (vnode.data && vnode.data.on && c && c.$el) {\n Object.keys(vnode.data.on).forEach((eventName) => {\n c.$el.on(eventName, vnode.data.on[eventName]);\n });\n }\n // eslint-disable-next-line\n vnode.elm.__component__ = c;\n });\n};\nconst updateCustomComponent = (vnode) => {\n // eslint-disable-next-line\n const component = vnode && vnode.elm && vnode.elm.__component__;\n if (!component) return;\n const newProps = propsFromAttrs(vnode.data.attrs || {}, vnode.data.props || {});\n component.children = vnode.data.treeNode.children;\n Object.assign(component.props, newProps);\n component.update();\n};\nconst destroyCustomComponent = (vnode) => {\n // eslint-disable-next-line\n const component = vnode && vnode.elm && vnode.elm.__component__;\n\n if (component) {\n const { el, $el } = component;\n if (vnode.data && vnode.data.on && $el) {\n Object.keys(vnode.data.on).forEach((eventName) => {\n $el.off(eventName, vnode.data.on[eventName]);\n });\n }\n if (component.destroy) component.destroy();\n if (el && el.parentNode) el.parentNode.removeChild(el);\n delete vnode.elm.__component__; // eslint-disable-line\n }\n};\n\nconst isCustomComponent = (treeNodeType) => {\n return (\n typeof treeNodeType === 'function' ||\n (treeNodeType && treeNodeType.indexOf('-') > 0 && customComponents[treeNodeType])\n );\n};\n\nfunction getHooks(treeNode, data, f7, initial, isRoot) {\n const hooks = {};\n const insert = [];\n const destroy = [];\n const update = [];\n const postpatch = [];\n let isFakeElement = false;\n let tagName = getTagName(treeNode);\n if (data && data.attrs && data.attrs.component) {\n tagName = data.attrs.component;\n delete data.attrs.component;\n isFakeElement = true;\n }\n\n const isCustom = isCustomComponent(treeNode.type);\n\n if (isCustom) {\n insert.push((vnode) => {\n if (vnode.sel !== tagName && !isFakeElement) return;\n createCustomComponent({ f7, treeNode, vnode, data });\n });\n destroy.push((vnode) => {\n destroyCustomComponent(vnode);\n });\n update.push((oldVnode, vnode) => {\n updateCustomComponent(vnode);\n });\n }\n\n if (!isCustom) {\n if (!data || !data.attrs || !data.attrs.class) return hooks;\n\n const classNames = data.attrs.class;\n classNames.split(' ').forEach((className) => {\n if (!initial) {\n insert.push(...f7.getVnodeHooks('insert', className));\n }\n destroy.push(...f7.getVnodeHooks('destroy', className));\n update.push(...f7.getVnodeHooks('update', className));\n postpatch.push(...f7.getVnodeHooks('postpatch', className));\n });\n }\n\n if (isRoot && !initial) {\n postpatch.push((oldVnode, vnode) => {\n const vn = vnode || oldVnode;\n if (!vn) return;\n if (vn.data && vn.data.component) {\n vn.data.component.hook('onUpdated');\n }\n });\n }\n if (\n insert.length === 0 &&\n destroy.length === 0 &&\n update.length === 0 &&\n postpatch.length === 0\n ) {\n return hooks;\n }\n\n if (insert.length) {\n hooks.insert = (vnode) => {\n insert.forEach((f) => f(vnode));\n };\n }\n if (destroy.length) {\n hooks.destroy = (vnode) => {\n destroy.forEach((f) => f(vnode));\n };\n }\n if (update.length) {\n hooks.update = (oldVnode, vnode) => {\n update.forEach((f) => f(oldVnode, vnode));\n };\n }\n if (postpatch.length) {\n hooks.postpatch = (oldVnode, vnode) => {\n postpatch.forEach((f) => f(oldVnode, vnode));\n };\n }\n\n return hooks;\n}\nconst getEventHandler = (eventHandler, { stop, prevent, once } = {}) => {\n let fired = false;\n\n function handler(...args) {\n const e = args[0];\n if (once && fired) return;\n if (stop) e.stopPropagation();\n if (prevent) e.preventDefault();\n fired = true;\n\n eventHandler(...args);\n }\n\n return handler;\n};\n\nconst getData = (treeNode, component, f7, initial, isRoot) => {\n const data = { component, treeNode };\n const tagName = getTagName(treeNode);\n Object.keys(treeNode.props).forEach((attrName) => {\n const attrValue = treeNode.props[attrName];\n if (typeof attrValue === 'undefined') return;\n if (PROPS_ATTRS.indexOf(attrName) >= 0) {\n // Props\n if (!data.props) data.props = {};\n if (attrName === 'readonly') {\n // eslint-disable-next-line\n attrName = 'readOnly';\n }\n if (attrName === 'routeProps') {\n // eslint-disable-next-line\n attrName = 'f7RouteProps';\n }\n if (tagName === 'option' && attrName === 'value') {\n if (!data.attrs) data.attrs = {};\n data.attrs.value = attrValue;\n }\n if (BOOLEAN_PROPS.indexOf(attrName) >= 0) {\n // eslint-disable-next-line\n data.props[attrName] = attrValue === false ? false : true;\n } else {\n data.props[attrName] = attrValue;\n }\n } else if (attrName === 'key') {\n // Key\n data.key = attrValue;\n } else if (\n attrName.indexOf('@') === 0 ||\n (attrName.indexOf('on') === 0 && attrName.length > 2)\n ) {\n // Events\n if (!data.on) data.on = {};\n let eventName =\n attrName.indexOf('@') === 0 ? attrName.substr(1) : eventNameToColonCase(attrName.substr(2));\n let stop = false;\n let prevent = false;\n let once = false;\n if (eventName.indexOf('.') >= 0) {\n eventName.split('.').forEach((eventNamePart, eventNameIndex) => {\n if (eventNameIndex === 0) eventName = eventNamePart;\n else {\n if (eventNamePart === 'stop') stop = true;\n if (eventNamePart === 'prevent') prevent = true;\n if (eventNamePart === 'once') once = true;\n }\n });\n }\n data.on[eventName] = getEventHandler(attrValue, { stop, prevent, once });\n } else if (attrName === 'style') {\n // Style\n if (typeof attrValue !== 'string') {\n data.style = attrValue;\n } else {\n if (!data.attrs) data.attrs = {};\n data.attrs.style = attrValue;\n }\n } else {\n // Rest of attribures\n if (!data.attrs) data.attrs = {};\n data.attrs[attrName] = attrValue;\n\n // ID -> Key\n if (attrName === 'id' && !data.key && !isRoot) {\n data.key = attrValue;\n }\n }\n });\n\n const hooks = getHooks(treeNode, data, f7, initial, isRoot);\n\n hooks.prepatch = (oldVnode, vnode) => {\n if (!oldVnode || !vnode) return;\n if (oldVnode && oldVnode.data && oldVnode.data.props) {\n Object.keys(oldVnode.data.props).forEach((key) => {\n if (BOOLEAN_PROPS.indexOf(key) < 0) return;\n if (!vnode.data) vnode.data = {};\n if (!vnode.data.props) vnode.data.props = {};\n if (oldVnode.data.props[key] === true && !(key in vnode.data.props)) {\n vnode.data.props[key] = false;\n }\n });\n }\n };\n\n data.hook = hooks;\n\n return data;\n};\n\nconst getChildren = (treeNode, component, f7, initial) => {\n if (treeNode && treeNode.type && SELF_CLOSING.indexOf(treeNode.type) >= 0) {\n return [];\n }\n const children = [];\n const nodes = treeNode.children;\n for (let i = 0; i < nodes.length; i += 1) {\n const childNode = nodes[i];\n const child = treeNodeToVNode(childNode, component, f7, initial, false);\n if (Array.isArray(child)) {\n children.push(...child);\n } else if (child) {\n children.push(child);\n }\n }\n return children;\n};\n\nconst getSlots = (treeNode, component, f7, initial) => {\n const slotName = treeNode.props.name || 'default';\n const slotNodes = (component.children || []).filter((childTreeNode) => {\n let childSlotName = 'default';\n if (childTreeNode.props) {\n childSlotName = childTreeNode.props.slot || 'default';\n }\n return childSlotName === slotName;\n });\n if (slotNodes.length === 0) {\n return getChildren(treeNode, component, f7, initial);\n }\n return slotNodes.map((subTreeNode) => treeNodeToVNode(subTreeNode, component, f7, initial));\n};\n\nconst isTreeNode = (treeNode) => {\n return isObject(treeNode) && 'props' in treeNode && 'type' in treeNode && 'children' in treeNode;\n};\n\nconst treeNodeToVNode = (treeNode, component, f7, initial, isRoot) => {\n if (!isTreeNode(treeNode)) {\n return String(treeNode);\n }\n if (treeNode.type === 'slot') {\n return getSlots(treeNode, component, f7, initial);\n }\n const data = getData(treeNode, component, f7, initial, isRoot);\n const children = isCustomComponent(treeNode.type)\n ? []\n : getChildren(treeNode, component, f7, initial);\n\n return h(getTagName(treeNode), data, children);\n};\n\nexport default function vdom(tree = {}, component, initial) {\n return treeNodeToVNode(tree, component, component.f7, initial, true);\n}\n","function createElement(tagName) {\n return document.createElement(tagName);\n}\nfunction createElementNS(namespaceURI, qualifiedName) {\n return document.createElementNS(namespaceURI, qualifiedName);\n}\nfunction createTextNode(text) {\n return document.createTextNode(text);\n}\nfunction createComment(text) {\n return document.createComment(text);\n}\nfunction insertBefore(parentNode, newNode, referenceNode) {\n if (referenceNode && referenceNode.parentNode !== parentNode) {\n if (referenceNode.__component__) referenceNode = referenceNode.__component__.el;\n }\n parentNode.insertBefore(newNode, referenceNode);\n}\nfunction removeChild(node, child) {\n if (!node) return;\n node.removeChild(child);\n}\nfunction appendChild(node, child) {\n node.appendChild(child);\n}\nfunction parentNode(node) {\n return node.parentNode;\n}\nfunction nextSibling(node) {\n return node.nextSibling;\n}\nfunction tagName(elm) {\n return elm.tagName;\n}\nfunction setTextContent(node, text) {\n node.textContent = text;\n}\nfunction getTextContent(node) {\n return node.textContent;\n}\nfunction isElement(node) {\n return node.nodeType === 1;\n}\nfunction isText(node) {\n return node.nodeType === 3;\n}\nfunction isComment(node) {\n return node.nodeType === 8;\n}\nexport var htmlDomApi = {\n createElement: createElement,\n createElementNS: createElementNS,\n createTextNode: createTextNode,\n createComment: createComment,\n insertBefore: insertBefore,\n removeChild: removeChild,\n appendChild: appendChild,\n parentNode: parentNode,\n nextSibling: nextSibling,\n tagName: tagName,\n setTextContent: setTextContent,\n getTextContent: getTextContent,\n isElement: isElement,\n isText: isText,\n isComment: isComment,\n};\nexport default htmlDomApi;\n//# sourceMappingURL=htmldomapi.js.map\n","import { h } from './h.js';\nfunction copyToThunk(vnode, thunk) {\n thunk.elm = vnode.elm;\n vnode.data.fn = thunk.data.fn;\n vnode.data.args = thunk.data.args;\n thunk.data = vnode.data;\n thunk.children = vnode.children;\n thunk.text = vnode.text;\n thunk.elm = vnode.elm;\n}\nfunction init(thunk) {\n var cur = thunk.data;\n var vnode = cur.fn.apply(undefined, cur.args);\n copyToThunk(vnode, thunk);\n}\nfunction prepatch(oldVnode, thunk) {\n var i, old = oldVnode.data, cur = thunk.data;\n var oldArgs = old.args, args = cur.args;\n if (old.fn !== cur.fn || oldArgs.length !== args.length) {\n copyToThunk(cur.fn.apply(undefined, args), thunk);\n return;\n }\n for (i = 0; i < args.length; ++i) {\n if (oldArgs[i] !== args[i]) {\n copyToThunk(cur.fn.apply(undefined, args), thunk);\n return;\n }\n }\n copyToThunk(oldVnode, thunk);\n}\nexport var thunk = function thunk(sel, key, fn, args) {\n if (args === undefined) {\n args = fn;\n fn = key;\n key = undefined;\n }\n return h(sel, {\n key: key,\n hook: { init: init, prepatch: prepatch },\n fn: fn,\n args: args\n });\n};\nexport default thunk;\n//# sourceMappingURL=thunk.js.map\n","import vnode from './vnode.js';\nimport * as is from './is.js';\nimport htmlDomApi from './htmldomapi.js';\nfunction isUndef(s) { return s === undefined; }\nfunction isDef(s) { return s !== undefined; }\nvar emptyNode = vnode('', {}, [], undefined, undefined);\nfunction sameVnode(vnode1, vnode2) {\n return vnode1.key === vnode2.key && vnode1.sel === vnode2.sel;\n}\nfunction isVnode(vnode) {\n return vnode.sel !== undefined;\n}\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\n var i, map = {}, key, ch;\n for (i = beginIdx; i <= endIdx; ++i) {\n ch = children[i];\n if (ch != null) {\n key = ch.key;\n if (key !== undefined)\n map[key] = i;\n }\n }\n return map;\n}\nvar hooks = ['create', 'update', 'remove', 'destroy', 'pre', 'post'];\nexport { h } from './h.js';\nexport { thunk } from './thunk.js';\nexport function init(modules, domApi) {\n var i, j, cbs = {};\n var api = domApi !== undefined ? domApi : htmlDomApi;\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n var hook = modules[j][hooks[i]];\n if (hook !== undefined) {\n cbs[hooks[i]].push(hook);\n }\n }\n }\n function emptyNodeAt(elm) {\n var id = elm.id ? '#' + elm.id : '';\n var c = elm.className ? '.' + elm.className.split(' ').join('.') : '';\n return vnode(api.tagName(elm).toLowerCase() + id + c, {}, [], undefined, elm);\n }\n function createRmCb(childElm, listeners) {\n return function rmCb() {\n if (--listeners === 0) {\n var parent_1 = api.parentNode(childElm);\n api.removeChild(parent_1, childElm);\n }\n };\n }\n function createElm(vnode, insertedVnodeQueue) {\n var i, data = vnode.data;\n if (data !== undefined) {\n if (isDef(i = data.hook) && isDef(i = i.init)) {\n i(vnode);\n data = vnode.data;\n }\n }\n var children = vnode.children, sel = vnode.sel;\n if (sel === '!') {\n if (isUndef(vnode.text)) {\n vnode.text = '';\n }\n vnode.elm = api.createComment(vnode.text);\n }\n else if (sel !== undefined) {\n // Parse selector\n var hashIdx = sel.indexOf('#');\n var dotIdx = sel.indexOf('.', hashIdx);\n var hash = hashIdx > 0 ? hashIdx : sel.length;\n var dot = dotIdx > 0 ? dotIdx : sel.length;\n var tag = hashIdx !== -1 || dotIdx !== -1 ? sel.slice(0, Math.min(hash, dot)) : sel;\n var elm = vnode.elm = isDef(data) && isDef(i = data.ns) ? api.createElementNS(i, tag)\n : api.createElement(tag);\n if (hash < dot)\n elm.setAttribute('id', sel.slice(hash + 1, dot));\n if (dotIdx > 0)\n elm.setAttribute('class', sel.slice(dot + 1).replace(/\\./g, ' '));\n for (i = 0; i < cbs.create.length; ++i)\n cbs.create[i](emptyNode, vnode);\n if (is.array(children)) {\n for (i = 0; i < children.length; ++i) {\n var ch = children[i];\n if (ch != null) {\n api.appendChild(elm, createElm(ch, insertedVnodeQueue));\n }\n }\n }\n else if (is.primitive(vnode.text)) {\n api.appendChild(elm, api.createTextNode(vnode.text));\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (i.create)\n i.create(emptyNode, vnode);\n if (i.insert)\n insertedVnodeQueue.push(vnode);\n }\n }\n else {\n vnode.elm = api.createTextNode(vnode.text);\n }\n return vnode.elm;\n }\n function addVnodes(parentElm, before, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (ch != null) {\n api.insertBefore(parentElm, createElm(ch, insertedVnodeQueue), before);\n }\n }\n }\n function invokeDestroyHook(vnode) {\n var i, j, data = vnode.data;\n if (data !== undefined) {\n if (isDef(i = data.hook) && isDef(i = i.destroy))\n i(vnode);\n for (i = 0; i < cbs.destroy.length; ++i)\n cbs.destroy[i](vnode);\n if (vnode.children !== undefined) {\n for (j = 0; j < vnode.children.length; ++j) {\n i = vnode.children[j];\n if (i != null && typeof i !== \"string\") {\n invokeDestroyHook(i);\n }\n }\n }\n }\n }\n function removeVnodes(parentElm, vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var i_1 = void 0, listeners = void 0, rm = void 0, ch = vnodes[startIdx];\n if (ch != null) {\n if (isDef(ch.sel)) {\n invokeDestroyHook(ch);\n listeners = cbs.remove.length + 1;\n rm = createRmCb(ch.elm, listeners);\n for (i_1 = 0; i_1 < cbs.remove.length; ++i_1)\n cbs.remove[i_1](ch, rm);\n if (isDef(i_1 = ch.data) && isDef(i_1 = i_1.hook) && isDef(i_1 = i_1.remove)) {\n i_1(ch, rm);\n }\n else {\n rm();\n }\n }\n else {\n api.removeChild(parentElm, ch.elm);\n }\n }\n }\n }\n function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue) {\n var oldStartIdx = 0, newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx;\n var idxInOld;\n var elmToMove;\n var before;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode might have been moved left\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldStartVnode, newEndVnode)) {\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);\n api.insertBefore(parentElm, oldStartVnode.elm, api.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldEndVnode, newStartVnode)) {\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);\n api.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n if (oldKeyToIdx === undefined) {\n oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n }\n idxInOld = oldKeyToIdx[newStartVnode.key];\n if (isUndef(idxInOld)) {\n api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm);\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n elmToMove = oldCh[idxInOld];\n if (elmToMove.sel !== newStartVnode.sel) {\n api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm);\n }\n else {\n patchVnode(elmToMove, newStartVnode, insertedVnodeQueue);\n oldCh[idxInOld] = undefined;\n api.insertBefore(parentElm, elmToMove.elm, oldStartVnode.elm);\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n }\n if (oldStartIdx <= oldEndIdx || newStartIdx <= newEndIdx) {\n if (oldStartIdx > oldEndIdx) {\n before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n }\n else {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n }\n }\n }\n function patchVnode(oldVnode, vnode, insertedVnodeQueue) {\n var i, hook;\n if (isDef(i = vnode.data) && isDef(hook = i.hook) && isDef(i = hook.prepatch)) {\n i(oldVnode, vnode);\n }\n var elm = vnode.elm = oldVnode.elm;\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (oldVnode === vnode)\n return;\n if (vnode.data !== undefined) {\n for (i = 0; i < cbs.update.length; ++i)\n cbs.update[i](oldVnode, vnode);\n i = vnode.data.hook;\n if (isDef(i) && isDef(i = i.update))\n i(oldVnode, vnode);\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch)\n updateChildren(elm, oldCh, ch, insertedVnodeQueue);\n }\n else if (isDef(ch)) {\n if (isDef(oldVnode.text))\n api.setTextContent(elm, '');\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n }\n else if (isDef(oldCh)) {\n removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n }\n else if (isDef(oldVnode.text)) {\n api.setTextContent(elm, '');\n }\n }\n else if (oldVnode.text !== vnode.text) {\n api.setTextContent(elm, vnode.text);\n }\n if (isDef(hook) && isDef(i = hook.postpatch)) {\n i(oldVnode, vnode);\n }\n }\n return function patch(oldVnode, vnode) {\n var i, elm, parent;\n var insertedVnodeQueue = [];\n for (i = 0; i < cbs.pre.length; ++i)\n cbs.pre[i]();\n if (!isVnode(oldVnode)) {\n oldVnode = emptyNodeAt(oldVnode);\n }\n if (sameVnode(oldVnode, vnode)) {\n patchVnode(oldVnode, vnode, insertedVnodeQueue);\n }\n else {\n elm = oldVnode.elm;\n parent = api.parentNode(elm);\n createElm(vnode, insertedVnodeQueue);\n if (parent !== null) {\n api.insertBefore(parent, vnode.elm, api.nextSibling(elm));\n removeVnodes(parent, [oldVnode], 0, 0);\n }\n }\n for (i = 0; i < insertedVnodeQueue.length; ++i) {\n insertedVnodeQueue[i].data.hook.insert(insertedVnodeQueue[i]);\n }\n for (i = 0; i < cbs.post.length; ++i)\n cbs.post[i]();\n return vnode;\n };\n}\n//# sourceMappingURL=snabbdom.js.map\n","var xlinkNS = 'http://www.w3.org/1999/xlink';\nvar xmlNS = 'http://www.w3.org/XML/1998/namespace';\nvar colonChar = 58;\nvar xChar = 120;\nfunction updateAttrs(oldVnode, vnode) {\n var key, elm = vnode.elm, oldAttrs = oldVnode.data.attrs, attrs = vnode.data.attrs;\n if (!oldAttrs && !attrs)\n return;\n if (oldAttrs === attrs)\n return;\n oldAttrs = oldAttrs || {};\n attrs = attrs || {};\n // update modified attributes, add new attributes\n for (key in attrs) {\n var cur = attrs[key];\n var old = oldAttrs[key];\n if (old !== cur) {\n if (cur === true) {\n elm.setAttribute(key, \"\");\n }\n else if (cur === false) {\n elm.removeAttribute(key);\n }\n else {\n if (key.charCodeAt(0) !== xChar) {\n elm.setAttribute(key, cur);\n }\n else if (key.charCodeAt(3) === colonChar) {\n // Assume xml namespace\n elm.setAttributeNS(xmlNS, key, cur);\n }\n else if (key.charCodeAt(5) === colonChar) {\n // Assume xlink namespace\n elm.setAttributeNS(xlinkNS, key, cur);\n }\n else {\n elm.setAttribute(key, cur);\n }\n }\n }\n }\n // remove removed attributes\n // use `in` operator since the previous `for` iteration uses it (.i.e. add even attributes with undefined value)\n // the other option is to remove all attributes with value == undefined\n for (key in oldAttrs) {\n if (!(key in attrs)) {\n elm.removeAttribute(key);\n }\n }\n}\nexport var attributesModule = { create: updateAttrs, update: updateAttrs };\nexport default attributesModule;\n//# sourceMappingURL=attributes.js.map","function updateProps(oldVnode, vnode) {\n var key, cur, old, elm = vnode.elm, oldProps = oldVnode.data.props, props = vnode.data.props;\n if (!oldProps && !props)\n return;\n if (oldProps === props)\n return;\n oldProps = oldProps || {};\n props = props || {};\n for (key in oldProps) {\n if (!props[key]) {\n delete elm[key];\n }\n }\n for (key in props) {\n cur = props[key];\n old = oldProps[key];\n if (old !== cur && (key !== 'value' || elm[key] !== cur)) {\n elm[key] = cur;\n }\n }\n}\nexport var propsModule = { create: updateProps, update: updateProps };\nexport default propsModule;\n//# sourceMappingURL=props.js.map","var raf = (typeof window !== 'undefined' && window.requestAnimationFrame) || setTimeout;\nvar nextFrame = function (fn) { raf(function () { raf(fn); }); };\nfunction setNextFrame(obj, prop, val) {\n nextFrame(function () { obj[prop] = val; });\n}\nfunction updateStyle(oldVnode, vnode) {\n var cur, name, elm = vnode.elm, oldStyle = oldVnode.data.style, style = vnode.data.style;\n if (!oldStyle && !style)\n return;\n if (oldStyle === style)\n return;\n oldStyle = oldStyle || {};\n style = style || {};\n var oldHasDel = 'delayed' in oldStyle;\n for (name in oldStyle) {\n if (!style[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.removeProperty(name);\n }\n else {\n elm.style[name] = '';\n }\n }\n }\n for (name in style) {\n cur = style[name];\n if (name === 'delayed' && style.delayed) {\n for (var name2 in style.delayed) {\n cur = style.delayed[name2];\n if (!oldHasDel || cur !== oldStyle.delayed[name2]) {\n setNextFrame(elm.style, name2, cur);\n }\n }\n }\n else if (name !== 'remove' && cur !== oldStyle[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.setProperty(name, cur);\n }\n else {\n elm.style[name] = cur;\n }\n }\n }\n}\nfunction applyDestroyStyle(vnode) {\n var style, name, elm = vnode.elm, s = vnode.data.style;\n if (!s || !(style = s.destroy))\n return;\n for (name in style) {\n elm.style[name] = style[name];\n }\n}\nfunction applyRemoveStyle(vnode, rm) {\n var s = vnode.data.style;\n if (!s || !s.remove) {\n rm();\n return;\n }\n var name, elm = vnode.elm, i = 0, compStyle, style = s.remove, amount = 0, applied = [];\n for (name in style) {\n applied.push(name);\n elm.style[name] = style[name];\n }\n compStyle = getComputedStyle(elm);\n var props = compStyle['transition-property'].split(', ');\n for (; i < props.length; ++i) {\n if (applied.indexOf(props[i]) !== -1)\n amount++;\n }\n elm.addEventListener('transitionend', function (ev) {\n if (ev.target === elm)\n --amount;\n if (amount === 0)\n rm();\n });\n}\nexport var styleModule = {\n create: updateStyle,\n update: updateStyle,\n destroy: applyDestroyStyle,\n remove: applyRemoveStyle\n};\nexport default styleModule;\n//# sourceMappingURL=style.js.map","import $ from '../../shared/dom7.js';\n\nfunction invokeHandler(handler, event, args) {\n if (typeof handler === 'function') {\n // call function handler\n handler(event, ...args);\n }\n}\nfunction handleEvent(event, args, vnode) {\n const name = event.type;\n const on = vnode.data.on;\n // call event handler(s) if exists\n if (on && on[name]) {\n invokeHandler(on[name], event, args, vnode);\n }\n}\nfunction createListener() {\n return function handler(event, ...args) {\n handleEvent(event, args, handler.vnode);\n };\n}\nfunction updateEvents(oldVnode, vnode) {\n const oldOn = oldVnode.data.on;\n const oldListener = oldVnode.listener;\n const oldElm = oldVnode.elm;\n const on = vnode && vnode.data.on;\n const elm = vnode && vnode.elm;\n // optimization for reused immutable handlers\n if (oldOn === on) {\n return;\n }\n // remove existing listeners which no longer used\n if (oldOn && oldListener) {\n // if element changed or deleted we remove all existing listeners unconditionally\n if (!on) {\n Object.keys(oldOn).forEach((name) => {\n $(oldElm).off(name, oldListener);\n });\n } else {\n Object.keys(oldOn).forEach((name) => {\n if (!on[name]) {\n $(oldElm).off(name, oldListener);\n }\n });\n }\n }\n // add new listeners which has not already attached\n if (on) {\n // reuse existing listener or create new\n const listener = oldVnode.listener || createListener();\n vnode.listener = listener;\n // update vnode for listener\n listener.vnode = vnode;\n // if element changed or added we add all needed listeners unconditionally\n if (!oldOn) {\n Object.keys(on).forEach((name) => {\n $(elm).on(name, listener);\n });\n } else {\n Object.keys(on).forEach((name) => {\n if (!oldOn[name]) {\n $(elm).on(name, listener);\n }\n });\n }\n }\n}\n\nexport default {\n create: updateEvents,\n update: updateEvents,\n destroy: updateEvents,\n};\n","/* eslint import/no-named-as-default: off */\nimport { init } from './snabbdom/snabbdom.js';\nimport attributesModule from './snabbdom/modules/attributes.js';\nimport propsModule from './snabbdom/modules/props.js';\nimport styleModule from './snabbdom/modules/style.js';\nimport eventListenersModule from './eventslisteners.js';\n\nconst patch = init([attributesModule, propsModule, styleModule, eventListenersModule]);\n\nexport default patch;\n","import { flattenArray } from '../../shared/utils.js';\n\nconst ignoreChildren = [false, null, '', undefined];\n\nconst $jsx = (type, props, ...children) => {\n const flatChildren = flattenArray(\n (children || []).filter((child) => ignoreChildren.indexOf(child) < 0),\n );\n if (type === 'Fragment') {\n return flatChildren;\n }\n return {\n type,\n props: props || {},\n children: flatChildren,\n };\n};\n\nexport default $jsx;\n","/* eslint no-underscore-dangle: \"off\" */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport $h from './$h.js';\nimport { id as generateId, merge, eventNameToColonCase, deleteProps } from '../../shared/utils.js';\nimport vdom from './vdom.js';\nimport patch from './patch.js';\nimport $jsx from './$jsx.js';\n\n/* eslint-disable no-shadow */\n/* eslint-disable no-return-assign */\n/* eslint-disable no-plusplus */\n/* eslint-disable no-param-reassign */\n/* eslint-disable no-sequences */\nconst types = [\n {\n name: 'array',\n init: (i) => i,\n type: (i) => [i].find(Array.isArray),\n update: (i, o) => [o].filter(Array.isArray).find(() => ((i.length = 0), i.push(...o))),\n insert: (i, x, o = []) => i.splice(Math.max(x, 0), 0, ...[o].flat()),\n replace: (i, x, o = []) => i.splice(Math.max(x, 0), Math.min(++x, 1), ...[o].flat()),\n append: (i, o = []) => i.push(...[o].flat()),\n prepend: (i, o = []) => i.unshift(...[o].flat()),\n swap: (i, a, b) => {\n [i[a], i[b]] = [i[b], i[a]];\n },\n fromTo: (i, a, b = a) => i.splice(Math.max(b, 0), 0, ...i.splice(Math.max(a, 0), 1)),\n remove: (i, o, a = i.map((_, x) => x)) =>\n [o]\n .flat()\n .filter((i) => a.includes(i))\n .sort((a, b) => b - a)\n .forEach((x) => i.splice(x, 1)),\n clear: (i) => (i.length = 0),\n },\n {\n name: 'object',\n init: (i) => i,\n type: (i) =>\n [i]\n .filter((i) => [i !== null, i !== undefined].every((i) => i))\n .find((i) => Object.getPrototypeOf(i) === Object.prototype),\n update: (i, o) => Object.assign(i, o),\n insert: () => {},\n replace: () => {},\n append: () => {},\n prepend: () => {},\n swap: () => ({}), // N/A\n fromTo: () => ({}), // N/A\n remove: (i, o) => [o].flat().forEach((k) => delete i[k]),\n clear: (i) => Object.keys(i).forEach((k) => delete i[k]),\n },\n {\n name: 'atoms',\n type: () => true,\n init: (i, o = {}) => (\n Object.defineProperty(o, 'value', {\n get: () => i,\n set: (v) => {\n // eslint-disable-next-line\n i = v;\n },\n }),\n o\n ),\n update: (i, v = i.value) => {\n i.value = v;\n },\n insert: () => ({}), // N/A\n replace: () => ({}), // N/A\n append: () => ({}), // N/A\n prepend: () => ({}), // N/A\n swap: () => ({}), // N/A\n fromTo: () => ({}), // N/A\n remove: () => ({}), // N/A\n clear: (i) => {\n i.value = undefined;\n },\n },\n];\n\n/* eslint-enable no-shadow */\n/* eslint-enable no-return-assign */\n/* eslint-enable no-plusplus */\n/* eslint-enable no-param-reassign */\n/* eslint-enable no-sequences */\n\nclass Component {\n constructor(app, component, props = {}, { el, context, children } = {}) {\n const document = getDocument();\n merge(this, {\n f7: app,\n props: props || {},\n context: context || {},\n id: component.id || generateId(),\n children: children || [],\n theme: {\n ios: app.theme === 'ios',\n md: app.theme === 'md',\n },\n style: component.style,\n __updateQueue: [],\n __eventHandlers: [],\n __onceEventHandlers: [],\n __onBeforeMount: [],\n __onMounted: [],\n __onBeforeUpdate: [],\n __onUpdated: [],\n __onBeforeUnmount: [],\n __onUnmounted: [],\n });\n\n const createComponent = () => {\n return component(this.props, this.getComponentContext(true));\n };\n\n const getRenderFuncion = (componentResult) =>\n new Promise((resolve, reject) => {\n if (typeof componentResult === 'function') {\n resolve(componentResult);\n } else if (componentResult instanceof Promise) {\n componentResult\n .then((render) => {\n resolve(render);\n })\n .catch((err) => {\n reject(err);\n });\n } else {\n reject(\n new Error(\n 'Framework7: Component render function is not a \"function\" type. Didn\\'t you forget to \"return $render\"?',\n ),\n );\n }\n });\n\n return new Promise((resolve, reject) => {\n const componentResult = createComponent();\n getRenderFuncion(componentResult)\n .then((render) => {\n this.renderFunction = render;\n\n const tree = this.render();\n\n if (el) {\n this.vnode = vdom(tree, this, true);\n if (this.style) {\n this.styleEl = document.createElement('style');\n this.styleEl.innerHTML = this.style;\n }\n this.el = el;\n patch(this.el, this.vnode);\n this.el = this.vnode.elm;\n this.$el = $(this.el);\n\n this.attachEvents();\n this.el.f7Component = this;\n this.mount();\n resolve(this);\n return;\n }\n // Make Dom\n if (tree) {\n this.vnode = vdom(tree, this, true);\n this.el = document.createElement(this.vnode.sel || 'div');\n patch(this.el, this.vnode);\n this.$el = $(this.el);\n }\n if (this.style) {\n this.styleEl = document.createElement('style');\n this.styleEl.innerHTML = this.style;\n }\n\n this.attachEvents();\n\n if (this.el) {\n this.el.f7Component = this;\n }\n\n resolve(this);\n })\n .catch((err) => {\n reject(err);\n });\n });\n }\n\n on(eventName, handler) {\n if (!this.__eventHandlers) return;\n this.__eventHandlers.push({ eventName, handler });\n }\n\n once(eventName, handler) {\n if (!this.__eventHandlers) return;\n this.__onceEventHandlers.push({ eventName, handler });\n }\n\n getComponentRef() {\n const self = this;\n return (initialValue) => {\n let value = initialValue;\n const obj = {};\n Object.defineProperty(obj, 'value', {\n get() {\n return value;\n },\n set(v) {\n value = v;\n self.update();\n },\n });\n return obj;\n };\n }\n\n getComponentStore() {\n const { state, _gettersPlain, dispatch } = this.f7.store;\n const $store = {\n state,\n dispatch,\n };\n $store.getters = new Proxy(_gettersPlain, {\n get: (target, prop) => {\n const obj = target[prop];\n const callback = (v) => {\n obj.value = v;\n this.update();\n };\n obj.onUpdated(callback);\n return obj;\n },\n });\n\n return $store;\n }\n\n /* eslint-disable no-sequences */\n getUseState() {\n return (o) => {\n const obj = [o].reduce(\n (t, _i, _x, _a, i = t.init(_i)) => ({\n state: i,\n update: (v) => (t.update(i, v), this.update()),\n remove: (v) => (t.remove(i, v), this.update()),\n clear: () => (t.clear(i), this.update()),\n insert: (x, v) => (t.insert(i, x, v), this.update()),\n replace: (x, v) => (t.replace(i, x, v), this.update()),\n append: (v) => (t.append(i, v), this.update()),\n prepend: (v) => (t.prepend(i, v), this.update()),\n swap: (a, b) => (t.swap(i, a, b), this.update()),\n fromTo: (a, b) => (t.fromTo(i, a, b), this.update()),\n method: (f = () => ({})) => (f(i), this.update()),\n async: (f = () => Promise.reject(i)) => f(i).then(() => this.update()),\n }),\n types.find((i) => i.type(o)),\n );\n obj.length = 12;\n obj[Symbol.iterator] = function Iterate() {\n const values = Object.values(this);\n values.splice(values.indexOf(12), 1);\n let index = 0;\n return {\n next() {\n if (index < values.length) {\n const val = values[index];\n index += 1;\n return { value: val, done: false };\n }\n return { done: true };\n },\n };\n };\n return obj;\n };\n }\n /* eslint-enable no-sequences */\n\n getComponentContext(includeHooks) {\n const ctx = {\n $f7route: this.context.f7route,\n $f7router: this.context.f7router,\n $h,\n $,\n $id: this.id,\n $f7: this.f7,\n $f7ready: this.f7ready.bind(this),\n $theme: this.theme,\n $tick: this.tick.bind(this),\n $update: this.update.bind(this),\n $emit: this.emit.bind(this),\n $store: this.getComponentStore(),\n $ref: this.getComponentRef(),\n $el: {},\n $useState: this.getUseState(),\n };\n Object.defineProperty(ctx.$el, 'value', {\n get: () => {\n return this.$el;\n },\n });\n if (includeHooks)\n Object.assign(ctx, {\n $on: this.on.bind(this),\n $once: this.once.bind(this),\n $onBeforeMount: (handler) => this.__onBeforeMount.push(handler),\n $onMounted: (handler) => this.__onMounted.push(handler),\n $onBeforeUpdate: (handler) => this.__onBeforeUpdate.push(handler),\n $onUpdated: (handler) => this.__onUpdated.push(handler),\n $onBeforeUnmount: (handler) => this.__onBeforeUnmount.push(handler),\n $onUnmounted: (handler) => this.__onUnmounted.push(handler),\n });\n\n return ctx;\n }\n\n render() {\n return this.renderFunction(this.getComponentContext());\n }\n\n emit(name, data) {\n if (!this.el) return;\n this.$el.trigger(name, data);\n }\n\n attachEvents() {\n const { $el } = this;\n if (!this.__eventHandlers) return;\n this.__eventHandlers.forEach(({ eventName, handler }) => {\n $el.on(eventNameToColonCase(eventName), handler);\n });\n this.__onceEventHandlers.forEach(({ eventName, handler }) => {\n $el.once(eventNameToColonCase(eventName), handler);\n });\n }\n\n detachEvents() {\n const { $el } = this;\n if (!this.__eventHandlers) return;\n this.__eventHandlers.forEach(({ eventName, handler }) => {\n $el.on(eventNameToColonCase(eventName), handler);\n });\n this.__onceEventHandlers.forEach(({ eventName, handler }) => {\n $el.once(eventNameToColonCase(eventName), handler);\n });\n }\n\n startUpdateQueue() {\n const window = getWindow();\n if (this.__requestAnimationFrameId) return;\n const update = () => {\n this.hook('onBeforeUpdate');\n const tree = this.render();\n\n // Make Dom\n if (tree) {\n const newVNode = vdom(tree, this, false);\n this.vnode = patch(this.vnode, newVNode);\n }\n };\n this.__requestAnimationFrameId = window.requestAnimationFrame(() => {\n if (this.__updateIsPending) update();\n let resolvers = [...this.__updateQueue];\n this.__updateQueue = [];\n this.__updateIsPending = false;\n window.cancelAnimationFrame(this.__requestAnimationFrameId);\n delete this.__requestAnimationFrameId;\n delete this.__updateIsPending;\n resolvers.forEach((resolver) => resolver());\n resolvers = [];\n });\n }\n\n tick(callback) {\n return new Promise((resolve) => {\n function resolver() {\n resolve();\n if (callback) callback();\n }\n this.__updateQueue.push(resolver);\n this.startUpdateQueue();\n });\n }\n\n update(callback) {\n if (this.__destroyed) return new Promise(() => {});\n return new Promise((resolve) => {\n const resolver = () => {\n resolve();\n if (callback) callback();\n };\n this.__updateIsPending = true;\n this.__updateQueue.push(resolver);\n this.startUpdateQueue();\n });\n }\n\n setState(callback) {\n return this.update(callback);\n }\n\n f7ready(callback) {\n if (this.f7.initialized) {\n callback(this.f7);\n return;\n }\n this.f7.once('init', () => {\n callback(this.f7);\n });\n }\n\n mount(mountMethod) {\n this.hook('onBeforeMount', this.$el);\n if (this.styleEl) $('head').append(this.styleEl);\n if (mountMethod) mountMethod(this.el);\n this.hook('onMounted', this.$el);\n }\n\n destroy() {\n if (this.__destroyed) return;\n const window = getWindow();\n this.hook('onBeforeUnmount');\n\n if (this.styleEl) $(this.styleEl).remove();\n\n this.detachEvents();\n this.hook('onUnmounted');\n // Delete component instance\n if (this.el && this.el.f7Component) {\n this.el.f7Component = null;\n delete this.el.f7Component;\n }\n // Patch with empty node\n if (this.vnode) {\n this.vnode = patch(this.vnode, { sel: this.vnode.sel, data: {} });\n }\n // Clear update queue\n window.cancelAnimationFrame(this.__requestAnimationFrameId);\n this.__updateQueue = [];\n this.__eventHandlers = [];\n this.__onceEventHandlers = [];\n this.__onBeforeMount = [];\n this.__onMounted = [];\n this.__onBeforeUpdate = [];\n this.__onUpdated = [];\n this.__onBeforeUnmount = [];\n this.__onUnmounted = [];\n // Delete all props\n deleteProps(this);\n this.__destroyed = true;\n }\n\n hook(name, ...args) {\n if (this.__destroyed) return;\n this[`__${name}`].forEach((handler) => {\n handler(...args);\n });\n }\n}\n\nComponent.$jsx = $jsx;\n\nexport default Component;\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { id } from '../../shared/utils.js';\n\nfunction parseComponent(componentString) {\n const window = getWindow();\n const document = getDocument();\n const componentId = id();\n const callbackCreateName = `f7_component_create_callback_${componentId}`;\n\n // Template\n let template;\n const hasTemplate = componentString.match(/<template([ ]?)([a-z0-9-]*)>/);\n if (hasTemplate) {\n template = componentString\n .split(/<template[ ]?[a-z0-9-]*>/)\n .filter((item, index) => index > 0)\n .join('<template>')\n .split('</template>')\n .filter((item, index, arr) => index < arr.length - 1)\n .join('</template>')\n .replace(/{{#raw}}([ \\n]*)<template/g, '{{#raw}}<template')\n .replace(/\\/template>([ \\n]*){{\\/raw}}/g, '/template>{{/raw}}')\n .replace(/([ \\n])<template/g, '$1{{#raw}}<template')\n .replace(/\\/template>([ \\n])/g, '/template>{{/raw}}$1');\n }\n\n // Parse Styles\n let style = null;\n\n if (componentString.indexOf('<style>') >= 0) {\n style = componentString.split('<style>')[1].split('</style>')[0];\n }\n if (componentString.indexOf('<style scoped>') >= 0) {\n style = componentString.split('<style scoped>')[1].split('</style>')[0];\n }\n\n // Parse Script\n let scriptContent;\n if (componentString.indexOf('<script>') >= 0) {\n const scripts = componentString.split('<script>');\n scriptContent = scripts[scripts.length - 1].split('</script>')[0].trim();\n } else {\n scriptContent = 'return () => {return $render}';\n }\n if (!scriptContent || !scriptContent.trim()) scriptContent = 'return () => {return $render}';\n\n // Parse Template\n if (template) {\n scriptContent = scriptContent\n .replace(\n '$render',\n `function ($$ctx) {\n var $ = $$ctx.$$;\n var $h = $$ctx.$h;\n var $root = $$ctx.$root;\n var $f7 = $$ctx.$f7;\n var $f7route = $$ctx.$f7route;\n var $f7router = $$ctx.$f7router;\n var $theme = $$ctx.$theme;\n var $update = $$ctx.$update;\n var $store = $$ctx.$store;\n var $ref = $$ctx.$ref;\n var $useState = $$ctx.$useState;\n\n return $h\\`${template}\\`\n }\n `,\n )\n .replace(/export default/g, 'return');\n }\n\n // Execute Script\n scriptContent = `window.${callbackCreateName} = function () {${scriptContent}}`;\n\n // Insert Script El\n const scriptEl = document.createElement('script');\n scriptEl.innerHTML = scriptContent;\n $('head').append(scriptEl);\n\n const component = window[callbackCreateName]();\n\n // Remove Script El\n $(scriptEl).remove();\n window[callbackCreateName] = null;\n delete window[callbackCreateName];\n\n // Assign Style\n if (style) {\n component.style = style;\n }\n\n // Component ID\n component.id = componentId;\n return component;\n}\n\nexport default parseComponent;\n","import Component from './component-class.js';\nimport parseComponent from './parse-component.js';\nimport customComponents from './custom-components.js';\nimport $jsx from './$jsx.js';\n\nfunction registerComponent(tagName, component) {\n customComponents[tagName] = component;\n}\n\nfunction unregisterComponent(tagName) {\n delete customComponents[tagName];\n}\n\nexport { Component, $jsx };\nexport default {\n name: 'component',\n static: {\n Component,\n parseComponent,\n registerComponent,\n unregisterComponent,\n },\n create() {\n const app = this;\n app.component = {\n registerComponent,\n unregisterComponent,\n parse(componentString) {\n return parseComponent(componentString);\n },\n create(component, props, { root, el, context, children }) {\n return new Component(app, component, props, { root, el, context, children });\n },\n };\n },\n};\n","import History from '../../shared/history.js';\n\nexport default {\n name: 'history',\n static: {\n history: History,\n },\n on: {\n init() {\n History.init(this);\n },\n },\n};\n","import { getWindow } from 'ssr-window';\nimport { extend } from '../../shared/utils.js';\n\nconst SW = {\n registrations: [],\n register(path, scope) {\n const app = this;\n const window = getWindow();\n\n if (!('serviceWorker' in window.navigator) || !app.serviceWorker.container) {\n return new Promise((resolve, reject) => {\n reject(new Error('Service worker is not supported'));\n });\n }\n return new Promise((resolve, reject) => {\n app.serviceWorker.container\n .register(path, scope ? { scope } : {})\n .then((reg) => {\n SW.registrations.push(reg);\n app.emit('serviceWorkerRegisterSuccess', reg);\n resolve(reg);\n })\n .catch((error) => {\n app.emit('serviceWorkerRegisterError', error);\n reject(error);\n });\n });\n },\n unregister(registration) {\n const app = this;\n const window = getWindow();\n if (!('serviceWorker' in window.navigator) || !app.serviceWorker.container) {\n return new Promise((resolve, reject) => {\n reject(new Error('Service worker is not supported'));\n });\n }\n let registrations;\n if (!registration) registrations = SW.registrations;\n else if (Array.isArray(registration)) registrations = registration;\n else registrations = [registration];\n return Promise.all(\n registrations.map(\n (reg) =>\n new Promise((resolve, reject) => {\n reg\n .unregister()\n .then(() => {\n if (SW.registrations.indexOf(reg) >= 0) {\n SW.registrations.splice(SW.registrations.indexOf(reg), 1);\n }\n app.emit('serviceWorkerUnregisterSuccess', reg);\n resolve();\n })\n .catch((error) => {\n app.emit('serviceWorkerUnregisterError', reg, error);\n reject(error);\n });\n }),\n ),\n );\n },\n};\n\nexport default {\n name: 'sw',\n params: {\n serviceWorker: {\n path: undefined,\n scope: undefined,\n },\n },\n create() {\n const app = this;\n const window = getWindow();\n extend(app, {\n serviceWorker: {\n container: 'serviceWorker' in window.navigator ? window.navigator.serviceWorker : undefined,\n registrations: SW.registrations,\n register: SW.register.bind(app),\n unregister: SW.unregister.bind(app),\n },\n });\n },\n on: {\n init() {\n const window = getWindow();\n if (!('serviceWorker' in window.navigator)) return;\n const app = this;\n if (app.device.cordova || (window.Capacitor && window.Capacitor.isNative)) return;\n if (!app.serviceWorker.container) return;\n const paths = app.params.serviceWorker.path;\n const scope = app.params.serviceWorker.scope;\n if (!paths || (Array.isArray(paths) && !paths.length)) return;\n const toRegister = Array.isArray(paths) ? paths : [paths];\n toRegister.forEach((path) => {\n app.serviceWorker.register(path, scope);\n });\n },\n },\n};\n","/* eslint-disable no-underscore-dangle */\nimport { extend } from '../../shared/utils.js';\n\nfunction createStore(storeParams = {}) {\n const store = {\n __store: true,\n };\n const originalState = { ...(storeParams.state || {}) };\n const actions = { ...(storeParams.actions || {}) };\n const getters = { ...(storeParams.getters || {}) };\n const state = extend({}, originalState);\n\n let propsQueue = [];\n const gettersDependencies = {};\n const gettersCallbacks = {};\n\n Object.keys(getters).forEach((getterKey) => {\n gettersDependencies[getterKey] = [];\n gettersCallbacks[getterKey] = [];\n });\n\n const getGetterValue = (getterKey) => {\n return getters[getterKey]({ state: store.state });\n };\n\n const addGetterDependencies = (getterKey, deps) => {\n if (!gettersDependencies[getterKey]) gettersDependencies[getterKey] = [];\n deps.forEach((dep) => {\n if (gettersDependencies[getterKey].indexOf(dep) < 0) {\n gettersDependencies[getterKey].push(dep);\n }\n });\n };\n\n const addGetterCallback = (getterKey, callback) => {\n if (!gettersCallbacks[getterKey]) gettersCallbacks[getterKey] = [];\n gettersCallbacks[getterKey].push(callback);\n };\n\n const runGetterCallbacks = (stateKey) => {\n const keys = Object.keys(gettersDependencies).filter((getterKey) => {\n return gettersDependencies[getterKey].indexOf(stateKey) >= 0;\n });\n keys.forEach((getterKey) => {\n if (!gettersCallbacks[getterKey] || !gettersCallbacks[getterKey].length) return;\n gettersCallbacks[getterKey].forEach((callback) => {\n callback(getGetterValue(getterKey));\n });\n });\n };\n\n const removeGetterCallback = (callback) => {\n Object.keys(gettersCallbacks).forEach((stateKey) => {\n const callbacks = gettersCallbacks[stateKey];\n\n if (callbacks.indexOf(callback) >= 0) {\n callbacks.splice(callbacks.indexOf(callback), 1);\n }\n });\n };\n\n // eslint-disable-next-line\n store.__removeCallback = (callback) => {\n removeGetterCallback(callback);\n };\n\n const getterValue = (getterKey, addCallback = true) => {\n if (getterKey === 'constructor') return undefined;\n propsQueue = [];\n const value = getGetterValue(getterKey);\n addGetterDependencies(getterKey, propsQueue);\n const onUpdated = (callback) => {\n addGetterCallback(getterKey, callback);\n };\n\n const obj = {\n value,\n onUpdated,\n };\n\n if (!addCallback) {\n return obj;\n }\n\n const callback = (v) => {\n obj.value = v;\n };\n\n obj.__callback = callback;\n addGetterCallback(getterKey, callback);\n // eslint-disable-next-line\n return obj;\n };\n\n store.state = new Proxy(state, {\n set: (target, prop, value) => {\n target[prop] = value;\n runGetterCallbacks(prop);\n return true;\n },\n get: (target, prop) => {\n propsQueue.push(prop);\n return target[prop];\n },\n });\n\n store.getters = new Proxy(getters, {\n set: () => false,\n get: (target, prop) => {\n if (!target[prop]) {\n return undefined;\n }\n return getterValue(prop, true);\n },\n });\n\n store._gettersPlain = new Proxy(getters, {\n set: () => false,\n get: (target, prop) => {\n if (!target[prop]) {\n return undefined;\n }\n return getterValue(prop, false);\n },\n });\n\n store.dispatch = (actionName, data) => {\n return new Promise((resolve, reject) => {\n if (!actions[actionName]) {\n reject();\n throw new Error(`Framework7: Store action \"${actionName}\" is not found`);\n }\n const result = actions[actionName]({ state: store.state, dispatch: store.dispatch }, data);\n resolve(result);\n });\n };\n\n return store;\n}\n\nexport default createStore;\n","import createStore from './create-store.js';\n\nexport { createStore };\nexport default {\n name: 'store',\n static: { createStore },\n proto: { createStore },\n};\n","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { bindMethods } from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\n\nconst isCapacitor = () => {\n const window = getWindow();\n return (\n window.Capacitor &&\n window.Capacitor.isNative &&\n window.Capacitor.Plugins &&\n window.Capacitor.Plugins.StatusBar\n );\n};\n\nconst Statusbar = {\n hide() {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.hide();\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.hide();\n }\n },\n show() {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.show();\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.show();\n }\n },\n onClick() {\n const app = this;\n let pageContent;\n if ($('.popup.modal-in').length > 0) {\n // Check for opened popup\n pageContent = $('.popup.modal-in')\n .find('.page:not(.page-previous):not(.page-next):not(.cached)')\n .find('.page-content');\n } else if ($('.panel.panel-in').length > 0) {\n // Check for opened panel\n pageContent = $('.panel.panel-in')\n .find('.page:not(.page-previous):not(.page-next):not(.cached)')\n .find('.page-content');\n } else if ($('.views > .view.tab-active').length > 0) {\n // View in tab bar app layout\n pageContent = $('.views > .view.tab-active')\n .find('.page:not(.page-previous):not(.page-next):not(.cached)')\n .find('.page-content');\n } else if ($('.views').length > 0) {\n pageContent = $('.views')\n .find('.page:not(.page-previous):not(.page-next):not(.cached)')\n .find('.page-content');\n } else {\n pageContent = app.$el\n .children('.view')\n .find('.page:not(.page-previous):not(.page-next):not(.cached)')\n .find('.page-content');\n }\n\n if (pageContent && pageContent.length > 0) {\n // Check for tab\n if (pageContent.hasClass('tab')) {\n pageContent = pageContent.parent('.tabs').children('.page-content.tab-active');\n }\n if (pageContent.length > 0) pageContent.scrollTop(0, 300);\n }\n },\n setTextColor(color) {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n if (color === 'white') {\n window.StatusBar.styleLightContent();\n } else {\n window.StatusBar.styleDefault();\n }\n }\n if (isCapacitor()) {\n if (color === 'white') {\n window.Capacitor.Plugins.StatusBar.setStyle({ style: 'DARK' });\n } else {\n window.Capacitor.Plugins.StatusBar.setStyle({ style: 'LIGHT' });\n }\n }\n },\n setBackgroundColor(color) {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.backgroundColorByHexString(color);\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.setBackgroundColor({ color });\n }\n },\n isVisible() {\n const window = getWindow();\n const device = getDevice();\n return new Promise((resolve) => {\n if (device.cordova && window.StatusBar) {\n resolve(window.StatusBar.isVisible);\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.getInfo().then((info) => {\n resolve(info.visible);\n });\n }\n resolve(false);\n });\n },\n overlaysWebView(overlays = true) {\n const window = getWindow();\n const device = getDevice();\n if (device.cordova && window.StatusBar) {\n window.StatusBar.overlaysWebView(overlays);\n }\n if (isCapacitor()) {\n window.Capacitor.Plugins.StatusBar.setOverlaysWebView({ overlay: overlays });\n }\n },\n init() {\n const app = this;\n const window = getWindow();\n const device = getDevice();\n const params = app.params.statusbar;\n if (!params.enabled) return;\n const isCordova = device.cordova && window.StatusBar;\n const isCap = isCapacitor();\n\n if (isCordova || isCap) {\n if (params.scrollTopOnClick) {\n $(window).on('statusTap', Statusbar.onClick.bind(app));\n }\n if (device.ios) {\n if (params.iosOverlaysWebView) {\n Statusbar.overlaysWebView(true);\n } else {\n Statusbar.overlaysWebView(false);\n }\n if (params.iosTextColor === 'white') {\n Statusbar.setTextColor('white');\n } else {\n Statusbar.setTextColor('black');\n }\n }\n if (device.android) {\n if (params.androidOverlaysWebView) {\n Statusbar.overlaysWebView(true);\n } else {\n Statusbar.overlaysWebView(false);\n }\n if (params.androidTextColor === 'white') {\n Statusbar.setTextColor('white');\n } else {\n Statusbar.setTextColor('black');\n }\n }\n }\n if (params.iosBackgroundColor && device.ios) {\n Statusbar.setBackgroundColor(params.iosBackgroundColor);\n }\n if (params.androidBackgroundColor && device.android) {\n Statusbar.setBackgroundColor(params.androidBackgroundColor);\n }\n },\n};\n\nexport default {\n name: 'statusbar',\n params: {\n statusbar: {\n enabled: true,\n\n scrollTopOnClick: true,\n\n iosOverlaysWebView: true,\n iosTextColor: 'black',\n iosBackgroundColor: null,\n\n androidOverlaysWebView: false,\n androidTextColor: 'black',\n androidBackgroundColor: null,\n },\n },\n create() {\n const app = this;\n bindMethods(app, {\n statusbar: Statusbar,\n });\n },\n on: {\n init() {\n const app = this;\n Statusbar.init.call(app);\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport View from './view-class.js';\n\nfunction getCurrentView(app) {\n const $popoverView = $('.popover.modal-in .view');\n const $popupView = $('.popup.modal-in .view');\n const $panelView = $('.panel.panel-in .view');\n let $viewsEl = $('.views');\n if ($viewsEl.length === 0) $viewsEl = app.$el;\n // Find active view as tab\n let $viewEl = $viewsEl.children('.view');\n if ($viewEl.length === 0) {\n $viewEl = $viewsEl.children('.tabs').children('.view');\n }\n // Propably in tabs or split view\n if ($viewEl.length > 1) {\n if ($viewEl.hasClass('tab')) {\n // Tabs\n $viewEl = $viewsEl.children('.view.tab-active');\n if ($viewEl.length === 0) {\n $viewEl = $viewsEl.children('.tabs').children('.view.tab-active');\n }\n } else {\n // Split View, leave appView intact\n }\n }\n if ($popoverView.length > 0 && $popoverView[0].f7View) return $popoverView[0].f7View;\n if ($popupView.length > 0 && $popupView[0].f7View) return $popupView[0].f7View;\n if ($panelView.length > 0 && $panelView[0].f7View) return $panelView[0].f7View;\n if ($viewEl.length > 0) {\n if ($viewEl.length === 1 && $viewEl[0].f7View) return $viewEl[0].f7View;\n if ($viewEl.length > 1) {\n return app.views.main;\n }\n }\n return undefined;\n}\n\nexport default {\n name: 'view',\n params: {\n view: {\n init: true,\n initRouterOnTabShow: false,\n name: undefined,\n main: false,\n router: true,\n linksView: null,\n xhrCache: true,\n xhrCacheIgnore: [],\n xhrCacheIgnoreGetParameters: false,\n xhrCacheDuration: 1000 * 60 * 10, // Ten minutes\n componentCache: true,\n preloadPreviousPage: true,\n allowDuplicateUrls: false,\n reloadPages: false,\n reloadDetail: false,\n masterDetailBreakpoint: 0,\n masterDetailResizable: false,\n removeElements: true,\n removeElementsWithTimeout: false,\n removeElementsTimeout: 0,\n restoreScrollTopOnBack: true,\n unloadTabContent: true,\n passRouteQueryToRequest: true,\n passRouteParamsToRequest: false,\n loadInitialPage: true,\n // Swipe Back\n iosSwipeBack: true,\n iosSwipeBackAnimateShadow: true,\n iosSwipeBackAnimateOpacity: true,\n iosSwipeBackActiveArea: 30,\n iosSwipeBackThreshold: 0,\n mdSwipeBack: false,\n mdSwipeBackAnimateShadow: true,\n mdSwipeBackAnimateOpacity: false,\n mdSwipeBackActiveArea: 30,\n mdSwipeBackThreshold: 0,\n // 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};\n","import $ from '../../shared/dom7.js';\nimport { bindMethods } from '../../shared/utils.js';\nimport { getSupport } from '../../shared/get-support.js';\n\nconst Navbar = {\n size(el) {\n const app = this;\n\n let $el = $(el);\n\n if ($el.hasClass('navbars')) {\n $el = $el.children('.navbar').each((navbarEl) => {\n app.navbar.size(navbarEl);\n });\n return;\n }\n\n const $innerEl = $el.children('.navbar-inner');\n if (!$innerEl.length) return;\n\n const needCenterTitle =\n $innerEl.hasClass('navbar-inner-centered-title') ||\n app.params.navbar[`${app.theme}CenterTitle`];\n const needLeftTitle = app.theme === 'ios' && !app.params.navbar[`${app.theme}CenterTitle`];\n\n if (!needCenterTitle && !needLeftTitle) return;\n\n if (\n $el.parents('.tab:not(.tab-active)').length > 0 ||\n $el.parents('.popup:not(.modal-in)').length > 0\n ) {\n return;\n }\n\n if (app.theme !== 'ios' && app.params.navbar[`${app.theme}CenterTitle`]) {\n $innerEl.addClass('navbar-inner-centered-title');\n }\n if (app.theme === 'ios' && !app.params.navbar.iosCenterTitle) {\n $innerEl.addClass('navbar-inner-left-title');\n }\n\n const $viewEl = $el.parents('.view').eq(0);\n const left = app.rtl ? $innerEl.children('.right') : $innerEl.children('.left');\n const right = app.rtl ? $innerEl.children('.left') : $innerEl.children('.right');\n const title = $innerEl.children('.title');\n const subnavbar = $innerEl.children('.subnavbar');\n const noLeft = left.length === 0;\n const noRight = right.length === 0;\n const leftWidth = noLeft ? 0 : left.outerWidth(true);\n const rightWidth = noRight ? 0 : right.outerWidth(true);\n const titleWidth = title.outerWidth(true);\n const navbarStyles = $innerEl.styles();\n const navbarWidth = $innerEl[0].offsetWidth;\n const navbarInnerWidth =\n navbarWidth -\n parseInt(navbarStyles.paddingLeft, 10) -\n parseInt(navbarStyles.paddingRight, 10);\n const isPrevious = $el.hasClass('navbar-previous');\n const sliding = $innerEl.hasClass('sliding');\n\n let router;\n let dynamicNavbar;\n\n if ($viewEl.length > 0 && $viewEl[0].f7View) {\n router = $viewEl[0].f7View.router;\n dynamicNavbar = router && router.dynamicNavbar;\n }\n\n let currLeft;\n let diff;\n if (noRight) {\n currLeft = navbarInnerWidth - titleWidth;\n }\n if (noLeft) {\n currLeft = 0;\n }\n if (!noLeft && !noRight) {\n currLeft = (navbarInnerWidth - rightWidth - titleWidth + leftWidth) / 2;\n }\n let requiredLeft = (navbarInnerWidth - titleWidth) / 2;\n if (navbarInnerWidth - leftWidth - rightWidth > titleWidth) {\n if (requiredLeft < leftWidth) {\n requiredLeft = leftWidth;\n }\n if (requiredLeft + titleWidth > navbarInnerWidth - rightWidth) {\n requiredLeft = navbarInnerWidth - rightWidth - titleWidth;\n }\n diff = requiredLeft - currLeft;\n } else {\n diff = 0;\n }\n\n // RTL inverter\n const inverter = app.rtl ? -1 : 1;\n\n if (dynamicNavbar && app.theme === 'ios') {\n if (title.hasClass('sliding') || (title.length > 0 && sliding)) {\n let titleLeftOffset = -(currLeft + diff) * inverter;\n const titleRightOffset = (navbarInnerWidth - currLeft - diff - titleWidth) * inverter;\n\n if (isPrevious) {\n if (router && router.params.iosAnimateNavbarBackIcon) {\n const activeNavbarBackLink = $el\n .parent()\n .find('.navbar-current')\n .children('.left.sliding')\n .find('.back .icon ~ span');\n if (activeNavbarBackLink.length > 0) {\n titleLeftOffset += activeNavbarBackLink[0].offsetLeft;\n }\n }\n }\n title[0].f7NavbarLeftOffset = titleLeftOffset;\n title[0].f7NavbarRightOffset = titleRightOffset;\n }\n if (!noLeft && (left.hasClass('sliding') || sliding)) {\n if (app.rtl) {\n left[0].f7NavbarLeftOffset = (-(navbarInnerWidth - left[0].offsetWidth) / 2) * inverter;\n left[0].f7NavbarRightOffset = leftWidth * inverter;\n } else {\n left[0].f7NavbarLeftOffset = -leftWidth;\n left[0].f7NavbarRightOffset = (navbarInnerWidth - left[0].offsetWidth) / 2;\n if (\n router &&\n router.params.iosAnimateNavbarBackIcon &&\n left.find('.back .icon').length > 0\n ) {\n if (left.find('.back .icon ~ span').length) {\n const leftOffset = left[0].f7NavbarLeftOffset;\n const rightOffset = left[0].f7NavbarRightOffset;\n left[0].f7NavbarLeftOffset = 0;\n left[0].f7NavbarRightOffset = 0;\n left.find('.back .icon ~ span')[0].f7NavbarLeftOffset = leftOffset;\n left.find('.back .icon ~ span')[0].f7NavbarRightOffset =\n rightOffset - left.find('.back .icon')[0].offsetWidth;\n }\n }\n }\n }\n if (!noRight && (right.hasClass('sliding') || sliding)) {\n if (app.rtl) {\n right[0].f7NavbarLeftOffset = -rightWidth * inverter;\n right[0].f7NavbarRightOffset = ((navbarInnerWidth - right[0].offsetWidth) / 2) * inverter;\n } else {\n right[0].f7NavbarLeftOffset = -(navbarInnerWidth - right[0].offsetWidth) / 2;\n right[0].f7NavbarRightOffset = rightWidth;\n }\n }\n if (subnavbar.length && (subnavbar.hasClass('sliding') || sliding)) {\n subnavbar[0].f7NavbarLeftOffset = app.rtl\n ? subnavbar[0].offsetWidth\n : -subnavbar[0].offsetWidth;\n subnavbar[0].f7NavbarRightOffset = -subnavbar[0].f7NavbarLeftOffset;\n }\n }\n\n // Center title\n if (needCenterTitle) {\n let titleLeft = diff;\n if (app.rtl && noLeft && noRight && title.length > 0) titleLeft = -titleLeft;\n title.css({ left: `${titleLeft}px` });\n }\n },\n hide(el, animate = true, hideStatusbar = false, hideOnlyCurrent = false) {\n const app = this;\n let $el = $(el);\n const isDynamic = $el.hasClass('navbar') && $el.parent('.navbars').length && !hideOnlyCurrent;\n if (isDynamic) $el = $el.parents('.navbars');\n if (!$el.length) return;\n if ($el.hasClass('navbar-hidden')) return;\n let className = `navbar-hidden${animate ? ' navbar-transitioning' : ''}`;\n const currentIsLarge = isDynamic\n ? $el.find('.navbar-current .title-large').length\n : $el.find('.title-large').length;\n if (currentIsLarge) {\n className += ' navbar-large-hidden';\n }\n if (hideStatusbar) {\n className += ' navbar-hidden-statusbar';\n }\n $el.transitionEnd(() => {\n $el.removeClass('navbar-transitioning');\n });\n $el.addClass(className);\n if (isDynamic) {\n $el.children('.navbar').each((subEl) => {\n $(subEl).trigger('navbar:hide');\n app.emit('navbarHide', subEl);\n });\n } else {\n $el.trigger('navbar:hide');\n app.emit('navbarHide', $el[0]);\n }\n },\n show(el = '.navbar-hidden', animate = true, hideOnlyCurrent = false) {\n const app = this;\n let $el = $(el);\n const isDynamic = $el.hasClass('navbar') && $el.parent('.navbars').length && !hideOnlyCurrent;\n if (isDynamic) $el = $el.parents('.navbars');\n if (!$el.length) return;\n if (!$el.hasClass('navbar-hidden')) return;\n if (animate) {\n $el.addClass('navbar-transitioning');\n $el.transitionEnd(() => {\n $el.removeClass('navbar-transitioning');\n });\n }\n $el.removeClass('navbar-hidden navbar-large-hidden navbar-hidden-statusbar');\n if (isDynamic) {\n $el.children('.navbar').each((subEl) => {\n $(subEl).trigger('navbar:show');\n app.emit('navbarShow', subEl);\n });\n } else {\n $el.trigger('navbar:show');\n app.emit('navbarShow', $el[0]);\n }\n },\n getElByPage(page) {\n let $pageEl;\n let $navbarEl;\n let pageData;\n if (page.$navbarEl || page.$el) {\n pageData = page;\n $pageEl = page.$el;\n } else {\n $pageEl = $(page);\n if ($pageEl.length > 0) pageData = $pageEl[0].f7Page;\n }\n if (pageData && pageData.$navbarEl && pageData.$navbarEl.length > 0) {\n $navbarEl = pageData.$navbarEl;\n } else if ($pageEl) {\n $navbarEl = $pageEl.children('.navbar');\n }\n if (!$navbarEl || ($navbarEl && $navbarEl.length === 0)) return undefined;\n return $navbarEl[0];\n },\n getPageByEl(navbarEl) {\n const $navbarEl = $(navbarEl);\n if ($navbarEl.parents('.page').length) {\n return $navbarEl.parents('.page')[0];\n }\n let pageEl;\n $navbarEl\n .parents('.view')\n .find('.page')\n .each((el) => {\n if (el && el.f7Page && el.f7Page.navbarEl && $navbarEl[0] === el.f7Page.navbarEl) {\n pageEl = el;\n }\n });\n return pageEl;\n },\n\n collapseLargeTitle(navbarEl) {\n const app = this;\n let $navbarEl = $(navbarEl);\n if ($navbarEl.hasClass('navbars')) {\n $navbarEl = $navbarEl.find('.navbar');\n if ($navbarEl.length > 1) {\n $navbarEl = $(navbarEl).find('.navbar-large.navbar-current');\n }\n if ($navbarEl.length > 1 || !$navbarEl.length) {\n return;\n }\n }\n const $pageEl = $(app.navbar.getPageByEl($navbarEl));\n $navbarEl.addClass('navbar-large-collapsed');\n $pageEl.eq(0).addClass('page-with-navbar-large-collapsed').trigger('page:navbarlargecollapsed');\n app.emit('pageNavbarLargeCollapsed', $pageEl[0]);\n $navbarEl.trigger('navbar:collapse');\n app.emit('navbarCollapse', $navbarEl[0]);\n },\n expandLargeTitle(navbarEl) {\n const app = this;\n let $navbarEl = $(navbarEl);\n if ($navbarEl.hasClass('navbars')) {\n $navbarEl = $navbarEl.find('.navbar-large');\n if ($navbarEl.length > 1) {\n $navbarEl = $(navbarEl).find('.navbar-large.navbar-current');\n }\n if ($navbarEl.length > 1 || !$navbarEl.length) {\n return;\n }\n }\n const $pageEl = $(app.navbar.getPageByEl($navbarEl));\n $navbarEl.removeClass('navbar-large-collapsed');\n $pageEl\n .eq(0)\n .removeClass('page-with-navbar-large-collapsed')\n .trigger('page:navbarlargeexpanded');\n app.emit('pageNavbarLargeExpanded', $pageEl[0]);\n $navbarEl.trigger('navbar:expand');\n app.emit('navbarExpand', $navbarEl[0]);\n },\n toggleLargeTitle(navbarEl) {\n const app = this;\n let $navbarEl = $(navbarEl);\n if ($navbarEl.hasClass('navbars')) {\n $navbarEl = $navbarEl.find('.navbar-large');\n if ($navbarEl.length > 1) {\n $navbarEl = $(navbarEl).find('.navbar-large.navbar-current');\n }\n if ($navbarEl.length > 1 || !$navbarEl.length) {\n return;\n }\n }\n if ($navbarEl.hasClass('navbar-large-collapsed')) {\n app.navbar.expandLargeTitle($navbarEl);\n } else {\n app.navbar.collapseLargeTitle($navbarEl);\n }\n },\n initNavbarOnScroll(pageEl, navbarEl, needHide, needCollapse, needTransparent) {\n const app = this;\n const support = getSupport();\n const $pageEl = $(pageEl);\n const $navbarEl = $(navbarEl);\n const $titleLargeEl = $navbarEl.find('.title-large');\n const isLarge = $titleLargeEl.length || $navbarEl.hasClass('.navbar-large');\n let navbarHideHeight = 44;\n const snapPageScrollToLargeTitle = app.params.navbar.snapPageScrollToLargeTitle;\n const snapPageScrollToTransparentNavbar = app.params.navbar.snapPageScrollToTransparentNavbar;\n\n let previousScrollTop;\n let currentScrollTop;\n\n let scrollHeight;\n let offsetHeight;\n let reachEnd;\n let action;\n let navbarHidden;\n\n let navbarCollapsed;\n let navbarTitleLargeHeight;\n\n let navbarOffsetHeight;\n\n if (needCollapse || (needHide && isLarge)) {\n navbarTitleLargeHeight = $navbarEl.css('--f7-navbar-large-title-height');\n\n if (navbarTitleLargeHeight && navbarTitleLargeHeight.indexOf('px') >= 0) {\n navbarTitleLargeHeight = parseInt(navbarTitleLargeHeight, 10);\n if (Number.isNaN(navbarTitleLargeHeight) && $titleLargeEl.length) {\n navbarTitleLargeHeight = $titleLargeEl[0].offsetHeight;\n } else if (Number.isNaN(navbarTitleLargeHeight)) {\n if (app.theme === 'ios') navbarTitleLargeHeight = 52;\n else if (app.theme === 'md') navbarTitleLargeHeight = 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;\n else if (app.theme === 'md') navbarTitleLargeHeight = 88;\n }\n }\n\n if (needHide && isLarge) {\n navbarHideHeight += navbarTitleLargeHeight;\n }\n\n let scrollChanged;\n let scrollContent;\n let scrollTimeoutId;\n let touchEndTimeoutId;\n const touchSnapTimeout = 70;\n const desktopSnapTimeout = 300;\n\n function calcScrollableDistance() {\n $pageEl.find('.page-content').each((pageContentEl) => {\n pageContentEl.f7ScrollableDistance =\n pageContentEl.scrollHeight - pageContentEl.offsetHeight;\n });\n }\n\n function snapLargeNavbar() {\n const inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded) return;\n if (!scrollContent || currentScrollTop < 0) return;\n if (\n currentScrollTop >= navbarTitleLargeHeight / 2 &&\n currentScrollTop < navbarTitleLargeHeight\n ) {\n $(scrollContent).scrollTop(navbarTitleLargeHeight, 100);\n } else if (currentScrollTop < navbarTitleLargeHeight) {\n $(scrollContent).scrollTop(0, 200);\n }\n }\n\n function snapTransparentNavbar() {\n const inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded) return;\n if (!scrollContent || currentScrollTop < 0) return;\n if (currentScrollTop >= navbarOffsetHeight / 2 && currentScrollTop < navbarOffsetHeight) {\n $(scrollContent).scrollTop(navbarOffsetHeight, 100);\n } else if (currentScrollTop < navbarOffsetHeight) {\n $(scrollContent).scrollTop(0, 200);\n }\n }\n\n function handleNavbarTransparent() {\n const isHidden =\n $navbarEl.hasClass('navbar-hidden') ||\n $navbarEl.parent('.navbars').hasClass('navbar-hidden');\n const inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded || isHidden) return;\n if (!navbarOffsetHeight) {\n navbarOffsetHeight = navbarEl.offsetHeight;\n }\n let opacity = currentScrollTop / navbarOffsetHeight;\n const notTransparent = $navbarEl.hasClass('navbar-transparent-visible');\n opacity = Math.max(Math.min(opacity, 1), 0);\n\n if ((notTransparent && opacity === 1) || (!notTransparent && opacity === 0)) {\n $navbarEl.find('.navbar-bg, .title').css('opacity', '');\n return;\n }\n if (notTransparent && opacity === 0) {\n $navbarEl.trigger('navbar:transparenthide');\n app.emit('navbarTransparentHide', $navbarEl[0]);\n $navbarEl.removeClass('navbar-transparent-visible');\n $navbarEl.find('.navbar-bg, .title').css('opacity', '');\n return;\n }\n if (!notTransparent && opacity === 1) {\n $navbarEl.trigger('navbar:transparentshow');\n app.emit('navbarTransparentShow', $navbarEl[0]);\n $navbarEl.addClass('navbar-transparent-visible');\n $navbarEl.find('.navbar-bg, .title').css('opacity', '');\n return;\n }\n\n $navbarEl.find('.navbar-bg, .title').css('opacity', opacity);\n\n if (snapPageScrollToTransparentNavbar) {\n if (!support.touch) {\n clearTimeout(scrollTimeoutId);\n scrollTimeoutId = setTimeout(() => {\n snapTransparentNavbar();\n }, desktopSnapTimeout);\n } else if (touchEndTimeoutId) {\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n touchEndTimeoutId = setTimeout(() => {\n snapTransparentNavbar();\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n }, touchSnapTimeout);\n }\n }\n }\n\n let previousCollapseProgress = null;\n let collapseProgress = null;\n function handleLargeNavbarCollapse(pageContentEl) {\n const isHidden =\n $navbarEl.hasClass('navbar-hidden') ||\n $navbarEl.parent('.navbars').hasClass('navbar-hidden');\n if (isHidden) return;\n const isLargeTransparent =\n $navbarEl.hasClass('navbar-large-transparent') ||\n ($navbarEl.hasClass('navbar-large') && $navbarEl.hasClass('navbar-transparent'));\n previousCollapseProgress = collapseProgress;\n const scrollableDistance = Math.min(\n navbarTitleLargeHeight,\n pageContentEl.f7ScrollableDistance || navbarTitleLargeHeight,\n );\n collapseProgress = Math.min(Math.max(currentScrollTop / scrollableDistance, 0), 1);\n const previousCollapseWasInMiddle =\n previousCollapseProgress > 0 && previousCollapseProgress < 1;\n const inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled');\n if (inSearchbarExpanded) return;\n navbarCollapsed = $navbarEl.hasClass('navbar-large-collapsed');\n 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 (\n (collapseProgress === 0 && navbarCollapsed) ||\n (collapseProgress === 0 && previousCollapseWasInMiddle) ||\n (collapseProgress === 1 && !navbarCollapsed) ||\n (collapseProgress === 1 && previousCollapseWasInMiddle)\n ) {\n if (app.theme === 'md') {\n $navbarEl.find('.navbar-inner').css('overflow', '');\n }\n $navbarEl.find('.title').css('opacity', '');\n $navbarEl.find('.title-large-text, .subnavbar').css('transform', '');\n $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\n .find('.title-large-text, .subnavbar')\n .css(\n 'transform',\n `translate3d(0px, ${-1 * collapseProgress * navbarTitleLargeHeight}px, 0)`,\n );\n $navbarEl.find('.title-large-text').css('opacity', 1 - collapseProgress * 2);\n\n if (isLargeTransparent) {\n $bgEl.css('opacity', collapseProgress);\n }\n $bgEl.css(\n 'transform',\n `translate3d(0px, ${-1 * collapseProgress * navbarTitleLargeHeight}px, 0)`,\n );\n }\n\n if (snapPageScrollToLargeTitle) {\n if (!support.touch) {\n clearTimeout(scrollTimeoutId);\n scrollTimeoutId = setTimeout(() => {\n snapLargeNavbar();\n }, desktopSnapTimeout);\n } else if (touchEndTimeoutId) {\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n touchEndTimeoutId = setTimeout(() => {\n snapLargeNavbar();\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n }, touchSnapTimeout);\n }\n }\n }\n\n function handleTitleHideShow() {\n if ($pageEl.hasClass('page-with-card-opened')) return;\n scrollHeight = scrollContent.scrollHeight;\n offsetHeight = scrollContent.offsetHeight;\n reachEnd = currentScrollTop + offsetHeight >= scrollHeight;\n navbarHidden =\n $navbarEl.hasClass('navbar-hidden') ||\n $navbarEl.parent('.navbars').hasClass('navbar-hidden');\n if (reachEnd) {\n if (app.params.navbar.showOnPageScrollEnd) {\n action = 'show';\n }\n } else if (previousScrollTop > currentScrollTop) {\n if (app.params.navbar.showOnPageScrollTop || currentScrollTop <= navbarHideHeight) {\n action = 'show';\n } else {\n action = 'hide';\n }\n } else if (currentScrollTop > navbarHideHeight) {\n action = 'hide';\n } else {\n action = 'show';\n }\n\n if (action === 'show' && navbarHidden) {\n app.navbar.show($navbarEl, true, true);\n navbarHidden = false;\n } else if (action === 'hide' && !navbarHidden) {\n app.navbar.hide($navbarEl, true, false, true);\n navbarHidden = true;\n }\n previousScrollTop = currentScrollTop;\n }\n\n function handleScroll(e) {\n scrollContent = this;\n if (e && e.target && e.target !== scrollContent) {\n return;\n }\n currentScrollTop = scrollContent.scrollTop;\n scrollChanged = currentScrollTop;\n if (needCollapse) {\n handleLargeNavbarCollapse(scrollContent);\n } else if (needTransparent) {\n handleNavbarTransparent();\n }\n if ($pageEl.hasClass('page-previous')) return;\n if (needHide) {\n handleTitleHideShow();\n }\n }\n function handeTouchStart() {\n scrollChanged = false;\n }\n function handleTouchEnd() {\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n touchEndTimeoutId = setTimeout(() => {\n if (scrollChanged !== false) {\n if (needTransparent && !needCollapse) {\n snapTransparentNavbar();\n } else {\n snapLargeNavbar();\n }\n clearTimeout(touchEndTimeoutId);\n touchEndTimeoutId = null;\n }\n }, touchSnapTimeout);\n }\n $pageEl.on('scroll', '.page-content', handleScroll, true);\n\n if (\n support.touch &&\n ((needCollapse && snapPageScrollToLargeTitle) ||\n (needTransparent && snapPageScrollToTransparentNavbar))\n ) {\n app.on('touchstart:passive', handeTouchStart);\n app.on('touchend:passive', handleTouchEnd);\n }\n calcScrollableDistance();\n if (needCollapse || needTransparent) {\n $pageEl.find('.page-content').each((pageContentEl) => {\n if (pageContentEl.scrollTop > 0) handleScroll.call(pageContentEl);\n });\n }\n app.on('resize', calcScrollableDistance);\n $pageEl[0].f7DetachNavbarScrollHandlers = function f7DetachNavbarScrollHandlers() {\n app.off('resize', calcScrollableDistance);\n delete $pageEl[0].f7DetachNavbarScrollHandlers;\n $pageEl.off('scroll', '.page-content', handleScroll, true);\n if (\n support.touch &&\n ((needCollapse && snapPageScrollToLargeTitle) ||\n (needTransparent && snapPageScrollToTransparentNavbar))\n ) {\n app.off('touchstart:passive', handeTouchStart);\n app.off('touchend:passive', handleTouchEnd);\n }\n };\n },\n};\nexport default {\n name: 'navbar',\n create() {\n const app = this;\n bindMethods(app, {\n navbar: Navbar,\n });\n },\n params: {\n navbar: {\n scrollTopOnTitleClick: true,\n iosCenterTitle: true,\n mdCenterTitle: false,\n hideOnPageScroll: false,\n showOnPageScrollEnd: true,\n showOnPageScrollTop: true,\n collapseLargeTitleOnScroll: true,\n snapPageScrollToLargeTitle: true,\n snapPageScrollToTransparentNavbar: true,\n },\n },\n on: {\n 'panelBreakpoint panelCollapsedBreakpoint panelResize viewResize resize viewMasterDetailBreakpoint':\n function onPanelResize() {\n const app = this;\n $('.navbar').each((navbarEl) => {\n app.navbar.size(navbarEl);\n });\n },\n pageBeforeRemove(page) {\n if (page.$el[0].f7DetachNavbarScrollHandlers) {\n page.$el[0].f7DetachNavbarScrollHandlers();\n }\n },\n pageBeforeIn(page) {\n const app = this;\n if (app.theme !== 'ios') return;\n let $navbarsEl;\n const view = page.$el.parents('.view')[0].f7View;\n const navbarEl = app.navbar.getElByPage(page);\n if (!navbarEl) {\n $navbarsEl = page.$el.parents('.view').children('.navbars');\n } else {\n $navbarsEl = $(navbarEl).parents('.navbars');\n }\n if (page.$el.hasClass('no-navbar') || (view.router.dynamicNavbar && !navbarEl)) {\n const animate = !!(page.pageFrom && page.router.history.length > 0);\n app.navbar.hide($navbarsEl, animate);\n } else {\n app.navbar.show($navbarsEl);\n }\n },\n pageReinit(page) {\n const app = this;\n const $navbarEl = $(app.navbar.getElByPage(page));\n if (!$navbarEl || $navbarEl.length === 0) return;\n app.navbar.size($navbarEl);\n },\n pageInit(page) {\n const app = this;\n const $navbarEl = $(app.navbar.getElByPage(page));\n if (!$navbarEl || $navbarEl.length === 0) return;\n\n // Size\n app.navbar.size($navbarEl);\n\n // Need Collapse On Scroll\n let needCollapseOnScrollHandler;\n if ($navbarEl.find('.title-large').length > 0) {\n $navbarEl.addClass('navbar-large');\n }\n if ($navbarEl.hasClass('navbar-large')) {\n if (app.params.navbar.collapseLargeTitleOnScroll) needCollapseOnScrollHandler = true;\n page.$el.addClass('page-with-navbar-large');\n }\n\n // Need transparent on scroll\n let needTransparentOnScroll;\n if (!needCollapseOnScrollHandler && $navbarEl.hasClass('navbar-transparent')) {\n needTransparentOnScroll = true;\n }\n\n // Need Hide On Scroll\n let needHideOnScrollHandler;\n if (\n app.params.navbar.hideOnPageScroll ||\n page.$el.find('.hide-navbar-on-scroll').length ||\n page.$el.hasClass('hide-navbar-on-scroll') ||\n page.$el.find('.hide-bars-on-scroll').length ||\n page.$el.hasClass('hide-bars-on-scroll')\n ) {\n if (\n page.$el.find('.keep-navbar-on-scroll').length ||\n page.$el.hasClass('keep-navbar-on-scroll') ||\n page.$el.find('.keep-bars-on-scroll').length ||\n page.$el.hasClass('keep-bars-on-scroll')\n ) {\n needHideOnScrollHandler = false;\n } else {\n needHideOnScrollHandler = true;\n }\n }\n\n if (needCollapseOnScrollHandler || needHideOnScrollHandler || needTransparentOnScroll) {\n app.navbar.initNavbarOnScroll(\n page.el,\n $navbarEl[0],\n needHideOnScrollHandler,\n needCollapseOnScrollHandler,\n needTransparentOnScroll,\n );\n }\n },\n 'panelOpen panelSwipeOpen modalOpen': function onPanelModalOpen(instance) {\n const app = this;\n instance.$el.find('.navbar:not(.navbar-previous)').each((navbarEl) => {\n app.navbar.size(navbarEl);\n });\n },\n tabShow(tabEl) {\n const app = this;\n $(tabEl)\n .find('.navbar:not(.navbar-previous)')\n .each((navbarEl) => {\n app.navbar.size(navbarEl);\n });\n },\n },\n clicks: {\n '.navbar .title': function onTitleClick($clickedEl, clickedData, e) {\n const app = this;\n if (!app.params.navbar.scrollTopOnTitleClick) return;\n if ($(e.target).closest('a, button').length > 0) {\n return;\n }\n let $pageContentEl;\n\n // Find active page\n const $navbarEl = $clickedEl.parents('.navbar');\n const $navbarsEl = $navbarEl.parents('.navbars');\n\n // Static Layout\n $pageContentEl = $navbarEl.parents('.page-content');\n\n if ($pageContentEl.length === 0) {\n // Fixed Layout\n if ($navbarEl.parents('.page').length > 0) {\n $pageContentEl = $navbarEl.parents('.page').find('.page-content');\n }\n // Through Layout iOS\n if ($pageContentEl.length === 0 && $navbarsEl.length) {\n if ($navbarsEl.nextAll('.page-current').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};\n","import $ from '../../shared/dom7.js';\nimport { nextFrame, bindMethods } from '../../shared/utils.js';\n\nconst Toolbar = {\n setHighlight(tabbarEl) {\n const app = this;\n const $tabbarEl = $(tabbarEl);\n if (app.theme === 'ios' && !$tabbarEl.hasClass('tabbar-highlight')) return;\n\n if (\n $tabbarEl.length === 0 ||\n !($tabbarEl.hasClass('tabbar') || $tabbarEl.hasClass('tabbar-icons'))\n )\n return;\n\n let $highlightEl = $tabbarEl.find('.tab-link-highlight');\n const tabLinksCount = $tabbarEl.find('.tab-link').length;\n if (tabLinksCount === 0) {\n $highlightEl.remove();\n return;\n }\n\n if ($highlightEl.length === 0) {\n $tabbarEl.children('.toolbar-inner').append('<span class=\"tab-link-highlight\"></span>');\n $highlightEl = $tabbarEl.find('.tab-link-highlight');\n } else if ($highlightEl.next().length) {\n $tabbarEl.children('.toolbar-inner').append($highlightEl);\n }\n\n const $activeLink = $tabbarEl.find('.tab-link-active');\n let highlightWidth;\n let highlightTranslate;\n\n if ($tabbarEl.hasClass('tabbar-scrollable') && $activeLink && $activeLink[0]) {\n highlightWidth = `${$activeLink[0].offsetWidth}px`;\n highlightTranslate = `${$activeLink[0].offsetLeft}px`;\n } else {\n const activeIndex = $activeLink.index();\n highlightWidth = `${100 / tabLinksCount}%`;\n highlightTranslate = `${(app.rtl ? -activeIndex : activeIndex) * 100}%`;\n }\n\n nextFrame(() => {\n $highlightEl.css('width', highlightWidth).transform(`translate3d(${highlightTranslate},0,0)`);\n });\n },\n init(tabbarEl) {\n const app = this;\n app.toolbar.setHighlight(tabbarEl);\n },\n hide(el, animate = true) {\n const app = this;\n const $el = $(el);\n if ($el.hasClass('toolbar-hidden')) return;\n const className = `toolbar-hidden${animate ? ' toolbar-transitioning' : ''}`;\n $el.transitionEnd(() => {\n $el.removeClass('toolbar-transitioning');\n });\n $el.addClass(className);\n $el.trigger('toolbar:hide');\n app.emit('toolbarHide', $el[0]);\n },\n show(el, animate = true) {\n const app = this;\n const $el = $(el);\n if (!$el.hasClass('toolbar-hidden')) return;\n if (animate) {\n $el.addClass('toolbar-transitioning');\n $el.transitionEnd(() => {\n $el.removeClass('toolbar-transitioning');\n });\n }\n $el.removeClass('toolbar-hidden');\n $el.trigger('toolbar:show');\n app.emit('toolbarShow', $el[0]);\n },\n initToolbarOnScroll(pageEl) {\n const app = this;\n const $pageEl = $(pageEl);\n let $toolbarEl = $pageEl.parents('.view').children('.toolbar');\n if ($toolbarEl.length === 0) {\n $toolbarEl = $pageEl.find('.toolbar');\n }\n if ($toolbarEl.length === 0) {\n $toolbarEl = $pageEl.parents('.views').children('.tabbar, .tabbar-icons');\n }\n if ($toolbarEl.length === 0) {\n return;\n }\n\n let previousScrollTop;\n let currentScrollTop;\n\n let scrollHeight;\n let offsetHeight;\n let reachEnd;\n let action;\n let toolbarHidden;\n function handleScroll(e) {\n if ($pageEl.hasClass('page-with-card-opened')) return;\n if ($pageEl.hasClass('page-previous')) return;\n const scrollContent = this;\n if (e && e.target && e.target !== scrollContent) {\n return;\n }\n currentScrollTop = scrollContent.scrollTop;\n scrollHeight = scrollContent.scrollHeight;\n offsetHeight = scrollContent.offsetHeight;\n reachEnd = currentScrollTop + offsetHeight >= scrollHeight;\n toolbarHidden = $toolbarEl.hasClass('toolbar-hidden');\n\n if (reachEnd) {\n if (app.params.toolbar.showOnPageScrollEnd) {\n action = 'show';\n }\n } else if (previousScrollTop > currentScrollTop) {\n if (app.params.toolbar.showOnPageScrollTop || currentScrollTop <= 44) {\n action = 'show';\n } else {\n action = 'hide';\n }\n } else if (currentScrollTop > 44) {\n action = 'hide';\n } else {\n action = 'show';\n }\n\n if (action === 'show' && toolbarHidden) {\n app.toolbar.show($toolbarEl);\n toolbarHidden = false;\n } else if (action === 'hide' && !toolbarHidden) {\n app.toolbar.hide($toolbarEl);\n toolbarHidden = true;\n }\n\n previousScrollTop = currentScrollTop;\n }\n $pageEl.on('scroll', '.page-content', handleScroll, true);\n $pageEl[0].f7ScrollToolbarHandler = handleScroll;\n },\n};\nexport default {\n name: 'toolbar',\n create() {\n const app = this;\n bindMethods(app, {\n toolbar: Toolbar,\n });\n },\n params: {\n toolbar: {\n hideOnPageScroll: false,\n showOnPageScrollEnd: true,\n showOnPageScrollTop: true,\n },\n },\n on: {\n pageBeforeRemove(page) {\n if (page.$el[0].f7ScrollToolbarHandler) {\n page.$el.off('scroll', '.page-content', page.$el[0].f7ScrollToolbarHandler, true);\n }\n },\n pageBeforeIn(page) {\n const app = this;\n let $toolbarEl = page.$el.parents('.view').children('.toolbar');\n if ($toolbarEl.length === 0) {\n $toolbarEl = page.$el.parents('.views').children('.tabbar, .tabbar-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 (\n app.params.toolbar.hideOnPageScroll ||\n page.$el.find('.hide-toolbar-on-scroll').length ||\n page.$el.hasClass('hide-toolbar-on-scroll') ||\n page.$el.find('.hide-bars-on-scroll').length ||\n page.$el.hasClass('hide-bars-on-scroll')\n ) {\n if (\n page.$el.find('.keep-toolbar-on-scroll').length ||\n page.$el.hasClass('keep-toolbar-on-scroll') ||\n page.$el.find('.keep-bars-on-scroll').length ||\n page.$el.hasClass('keep-bars-on-scroll')\n ) {\n return;\n }\n app.toolbar.initToolbarOnScroll(page.el);\n }\n },\n init() {\n const app = this;\n app.$el.find('.tabbar, .tabbar-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};\n","import $ from '../../shared/dom7.js';\n\nexport default {\n name: 'subnavbar',\n on: {\n pageInit(page) {\n if (page.$navbarEl && page.$navbarEl.length && page.$navbarEl.find('.subnavbar').length) {\n page.$el.addClass('page-with-subnavbar');\n }\n const $innerSubnavbars = page.$el.find('.subnavbar').filter((subnavbarEl) => {\n return $(subnavbarEl).parents('.page')[0] === page.$el[0];\n });\n if ($innerSubnavbars.length) {\n page.$el.addClass('page-with-subnavbar');\n }\n },\n },\n};\n","import $ from '../../shared/dom7.js';\n\nexport default class TouchRipple {\n constructor(app, $el, x, y) {\n const ripple = this;\n\n if (!$el) return undefined;\n\n const { left, top, width, height } = $el[0].getBoundingClientRect();\n const center = {\n x: x - left,\n y: y - top,\n };\n let diameter = Math.max((height ** 2 + width ** 2) ** 0.5, 48);\n\n let isInset = false;\n const insetElements = app.params.touch.touchRippleInsetElements || '';\n if (insetElements && $el.is(insetElements)) {\n isInset = true;\n }\n if (isInset) {\n diameter = Math.max(Math.min(width, height), 48);\n }\n\n if (!isInset && $el.css('overflow') === 'hidden') {\n const distanceFromCenter =\n ((center.x - width / 2) ** 2 + (center.y - height / 2) ** 2) ** 0.5;\n const scale = (diameter / 2 + distanceFromCenter) / (diameter / 2);\n ripple.rippleTransform = `translate3d(0px, 0px, 0) scale(${scale * 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\n ripple.$rippleWaveEl = $(\n `<div class=\"ripple-wave${\n isInset ? ' ripple-wave-inset' : ''\n }\" style=\"width: ${diameter}px; height: ${diameter}px; margin-top:-${\n diameter / 2\n }px; margin-left:-${diameter / 2}px; left:${center.x}px; top:${\n center.y\n }px; --f7-ripple-transform: ${ripple.rippleTransform}\"></div>`,\n );\n\n $el.prepend(ripple.$rippleWaveEl);\n\n ripple.$rippleWaveEl.animationEnd(() => {\n if (!ripple.$rippleWaveEl) return;\n if (ripple.$rippleWaveEl.hasClass('ripple-wave-out')) return;\n ripple.$rippleWaveEl.addClass('ripple-wave-in');\n if (ripple.shouldBeRemoved) {\n ripple.out();\n }\n });\n\n return ripple;\n }\n\n destroy() {\n let ripple = this;\n if (ripple.$rippleWaveEl) {\n ripple.$rippleWaveEl.remove();\n }\n Object.keys(ripple).forEach((key) => {\n ripple[key] = null;\n delete ripple[key];\n });\n ripple = null;\n }\n\n out() {\n const ripple = this;\n const { $rippleWaveEl } = this;\n clearTimeout(ripple.removeTimeout);\n $rippleWaveEl.addClass('ripple-wave-out');\n\n ripple.removeTimeout = setTimeout(() => {\n ripple.destroy();\n }, 300);\n\n $rippleWaveEl.animationEnd(() => {\n clearTimeout(ripple.removeTimeout);\n ripple.destroy();\n });\n }\n\n remove() {\n const ripple = this;\n if (ripple.shouldBeRemoved) return;\n ripple.removeTimeout = setTimeout(() => {\n ripple.destroy();\n }, 400);\n ripple.shouldBeRemoved = true;\n if (ripple.$rippleWaveEl.hasClass('ripple-wave-in')) {\n ripple.out();\n }\n }\n}\n","import TouchRipple from './touch-ripple-class.js';\n\nexport default {\n name: 'touch-ripple',\n static: {\n TouchRipple,\n },\n create() {\n const app = this;\n app.touchRipple = {\n create(...args) {\n return new TouchRipple(...args);\n },\n };\n },\n};\n","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\n\nconst openedModals = [];\nconst dialogsQueue = [];\nfunction clearDialogsQueue() {\n if (dialogsQueue.length === 0) return;\n const dialog = dialogsQueue.shift();\n dialog.open();\n}\nclass Modal extends Framework7Class {\n constructor(app, params) {\n super(params, [app]);\n\n const modal = this;\n\n const defaults = {};\n\n // Extend defaults with modules params\n modal.useModulesParams(defaults);\n\n modal.params = extend(defaults, params);\n modal.opened = false;\n\n let $containerEl = modal.params.containerEl ? $(modal.params.containerEl).eq(0) : app.$el;\n if (!$containerEl.length) $containerEl = app.$el;\n\n modal.$containerEl = $containerEl;\n modal.containerEl = $containerEl[0];\n\n // Install Modules\n modal.useModules();\n\n return this;\n }\n\n onOpen() {\n const modal = this;\n modal.opened = true;\n openedModals.push(modal);\n $('html').addClass(`with-modal-${modal.type.toLowerCase()}`);\n modal.$el.trigger(`modal:open ${modal.type.toLowerCase()}:open`);\n modal.emit(`local::open modalOpen ${modal.type}Open`, modal);\n }\n\n onOpened() {\n const modal = this;\n modal.$el.trigger(`modal:opened ${modal.type.toLowerCase()}:opened`);\n modal.emit(`local::opened modalOpened ${modal.type}Opened`, modal);\n }\n\n onClose() {\n const modal = this;\n modal.opened = false;\n if (!modal.type || !modal.$el) return;\n openedModals.splice(openedModals.indexOf(modal), 1);\n $('html').removeClass(`with-modal-${modal.type.toLowerCase()}`);\n modal.$el.trigger(`modal:close ${modal.type.toLowerCase()}:close`);\n modal.emit(`local::close modalClose ${modal.type}Close`, modal);\n }\n\n onClosed() {\n const modal = this;\n if (!modal.type || !modal.$el) return;\n modal.$el.removeClass('modal-out');\n modal.$el.hide();\n if (\n modal.params.backdrop &&\n (modal.params.backdropUnique || modal.forceBackdropUnique) &&\n modal.$backdropEl\n ) {\n modal.$backdropEl.remove();\n }\n modal.$el.trigger(`modal:closed ${modal.type.toLowerCase()}:closed`);\n modal.emit(`local::closed modalClosed ${modal.type}Closed`, modal);\n }\n\n open(animateModal, 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;\n else if (typeof modal.params.animate !== 'undefined') {\n animate = modal.params.animate;\n }\n\n if (!$el || $el.hasClass('modal-in')) {\n if (animateModal === false && $el[0] && type !== 'dialog') {\n $el[0].style.display = 'block';\n }\n if (!force) return modal;\n }\n\n if (type === 'dialog' && app.params.modal.queueDialogs) {\n let pushToQueue;\n if ($('.dialog.modal-in').length > 0) {\n pushToQueue = true;\n } else if (openedModals.length > 0) {\n openedModals.forEach((openedModal) => {\n if (openedModal.type === 'dialog') pushToQueue = true;\n });\n }\n if (pushToQueue) {\n dialogsQueue.push(modal);\n return modal;\n }\n }\n\n const $modalParentEl = $el.parent();\n const wasInDom = $el.parents(document).length > 0;\n if (!$modalParentEl.is(modal.$containerEl)) {\n modal.$containerEl.append($el);\n modal.once(`${type}Closed`, () => {\n if (wasInDom) {\n $modalParentEl.append($el);\n } else {\n $el.remove();\n }\n });\n }\n // Show Modal\n $el.show();\n\n if (\n modal.params.backdrop &&\n (modal.params.backdropUnique || modal.forceBackdropUnique) &&\n modal.$backdropEl\n ) {\n modal.$backdropEl.insertBefore($el);\n }\n\n /* eslint no-underscore-dangle: [\"error\", { \"allow\": [\"_clientLeft\"] }] */\n modal._clientLeft = $el[0].clientLeft;\n\n // Modal\n function transitionEnd() {\n if ($el.hasClass('modal-out')) {\n modal.onClosed();\n } else if ($el.hasClass('modal-in')) {\n modal.onOpened();\n }\n }\n if (animate) {\n if ($backdropEl) {\n $backdropEl.removeClass('not-animated');\n $backdropEl.addClass('backdrop-in');\n }\n $el.animationEnd(() => {\n transitionEnd();\n });\n $el.transitionEnd(() => {\n transitionEnd();\n });\n $el.removeClass('modal-out not-animated').addClass('modal-in');\n modal.onOpen();\n } else {\n if ($backdropEl) {\n $backdropEl.addClass('backdrop-in not-animated');\n }\n $el.removeClass('modal-out').addClass('modal-in not-animated');\n modal.onOpen();\n modal.onOpened();\n }\n\n return modal;\n }\n\n close(animateModal) {\n const modal = this;\n const $el = modal.$el;\n const $backdropEl = modal.$backdropEl;\n\n let animate = true;\n if (typeof animateModal !== 'undefined') animate = animateModal;\n else if (typeof modal.params.animate !== 'undefined') {\n animate = modal.params.animate;\n }\n\n if (!$el || !$el.hasClass('modal-in')) {\n if (dialogsQueue.indexOf(modal) >= 0) {\n dialogsQueue.splice(dialogsQueue.indexOf(modal), 1);\n }\n return modal;\n }\n\n // backdrop\n if ($backdropEl) {\n let needToHideBackdrop = true;\n if (modal.type === 'popup') {\n modal.$el\n .prevAll('.popup.modal-in')\n .add(modal.$el.nextAll('.popup.modal-in'))\n .each((popupEl) => {\n const popupInstance = popupEl.f7Modal;\n if (!popupInstance) return;\n if (\n popupInstance.params.closeByBackdropClick &&\n popupInstance.params.backdrop &&\n popupInstance.backdropEl === modal.backdropEl\n ) {\n needToHideBackdrop = false;\n }\n });\n }\n if (needToHideBackdrop) {\n $backdropEl[animate ? 'removeClass' : 'addClass']('not-animated');\n $backdropEl.removeClass('backdrop-in');\n }\n }\n\n // Modal\n $el[animate ? 'removeClass' : 'addClass']('not-animated');\n\n function transitionEnd() {\n if ($el.hasClass('modal-out')) {\n modal.onClosed();\n } else if ($el.hasClass('modal-in')) {\n modal.onOpened();\n }\n }\n if (animate) {\n $el.animationEnd(() => {\n transitionEnd();\n });\n $el.transitionEnd(() => {\n transitionEnd();\n });\n $el.removeClass('modal-in').addClass('modal-out');\n // Emit close\n modal.onClose();\n } else {\n $el.addClass('not-animated').removeClass('modal-in').addClass('modal-out');\n // Emit close\n modal.onClose();\n modal.onClosed();\n }\n\n if (modal.type === 'dialog') {\n clearDialogsQueue();\n }\n\n return modal;\n }\n\n destroy() {\n const modal = this;\n if (modal.destroyed) return;\n modal.emit(`local::beforeDestroy modalBeforeDestroy ${modal.type}BeforeDestroy`, modal);\n if (modal.$el) {\n modal.$el.trigger(`modal:beforedestroy ${modal.type.toLowerCase()}:beforedestroy`);\n if (modal.$el.length && modal.$el[0].f7Modal) {\n delete modal.$el[0].f7Modal;\n }\n }\n deleteProps(modal);\n modal.destroyed = true;\n }\n}\n\nexport default Modal;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Modal from './modal-class.js';\n\nclass CustomModal extends Modal {\n constructor(app, params) {\n const extendedParams = extend(\n {\n backdrop: true,\n closeByBackdropClick: true,\n on: {},\n },\n params,\n );\n\n // Extends with open/close Modal methods;\n super(app, extendedParams);\n\n const customModal = this;\n\n customModal.params = extendedParams;\n\n // Find Element\n let $el;\n if (!customModal.params.el) {\n $el = $(customModal.params.content);\n } else {\n $el = $(customModal.params.el);\n }\n\n if ($el && $el.length > 0 && $el[0].f7Modal) {\n return $el[0].f7Modal;\n }\n\n if ($el.length === 0) {\n return customModal.destroy();\n }\n let $backdropEl;\n if (customModal.params.backdrop) {\n $backdropEl = app.$el.children('.custom-modal-backdrop');\n if ($backdropEl.length === 0) {\n $backdropEl = $('<div class=\"custom-modal-backdrop\"></div>');\n app.$el.append($backdropEl);\n }\n }\n\n function handleClick(e) {\n if (!customModal || customModal.destroyed) return;\n if ($backdropEl && e.target === $backdropEl[0]) {\n customModal.close();\n }\n }\n\n customModal.on('customModalOpened', () => {\n if (customModal.params.closeByBackdropClick && customModal.params.backdrop) {\n app.on('click', handleClick);\n }\n });\n customModal.on('customModalClose', () => {\n if (customModal.params.closeByBackdropClick && customModal.params.backdrop) {\n app.off('click', handleClick);\n }\n });\n\n extend(customModal, {\n app,\n $el,\n el: $el[0],\n $backdropEl,\n backdropEl: $backdropEl && $backdropEl[0],\n type: 'customModal',\n });\n\n $el[0].f7Modal = customModal;\n\n return customModal;\n }\n}\nexport default CustomModal;\n","import Modal from './modal-class.js';\nimport CustomModal from './custom-modal-class.js';\n\nexport default {\n name: 'modal',\n static: {\n Modal,\n CustomModal,\n },\n create() {\n const app = this;\n app.customModal = {\n create(params) {\n return new CustomModal(app, params);\n },\n };\n },\n params: {\n modal: {\n queueDialogs: true,\n },\n },\n};\n","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport Modal from '../modal/modal-class.js';\n/** @jsx $jsx */\nimport $jsx from '../../shared/$jsx.js';\n\nclass Dialog extends Modal {\n constructor(app, params) {\n const extendedParams = extend(\n {\n title: app.params.dialog.title,\n text: undefined,\n content: '',\n buttons: [],\n verticalButtons: false,\n onClick: undefined,\n cssClass: undefined,\n destroyOnClose: false,\n on: {},\n },\n params,\n );\n if (typeof extendedParams.closeByBackdropClick === 'undefined') {\n extendedParams.closeByBackdropClick = app.params.dialog.closeByBackdropClick;\n }\n if (typeof extendedParams.backdrop === 'undefined') {\n extendedParams.backdrop = app.params.dialog.backdrop;\n }\n\n // Extends with open/close Modal methods;\n super(app, extendedParams);\n\n const dialog = this;\n\n const device = getDevice();\n const document = getDocument();\n\n const { title, text, content, buttons, verticalButtons, cssClass, backdrop } = extendedParams;\n\n dialog.params = extendedParams;\n\n // Find Element\n let $el;\n if (!dialog.params.el) {\n const dialogClasses = ['dialog'];\n if (buttons.length === 0) dialogClasses.push('dialog-no-buttons');\n if (buttons.length > 0) dialogClasses.push(`dialog-buttons-${buttons.length}`);\n if (verticalButtons) dialogClasses.push('dialog-buttons-vertical');\n if (cssClass) dialogClasses.push(cssClass);\n\n let buttonsHTML = '';\n if (buttons.length > 0) {\n buttonsHTML = (\n <div class=\"dialog-buttons\">\n {buttons.map((button) => (\n <span\n class={`dialog-button${button.strong ? ' dialog-button-strong' : ''}${\n button.color ? ` color-${button.color}` : ''\n }${button.cssClass ? ` ${button.cssClass}` : ''}`}\n >\n {button.text}\n </span>\n ))}\n </div>\n );\n }\n\n const dialogHtml = (\n <div class={dialogClasses.join(' ')}>\n <div class=\"dialog-inner\">\n {title && <div class=\"dialog-title\">{title}</div>}\n {text && <div class=\"dialog-text\">{text}</div>}\n {content}\n </div>\n {buttonsHTML}\n </div>\n );\n $el = $(dialogHtml);\n } else {\n $el = $(dialog.params.el);\n }\n\n if ($el && $el.length > 0 && $el[0].f7Modal) {\n return $el[0].f7Modal;\n }\n\n if ($el.length === 0) {\n return dialog.destroy();\n }\n\n let $backdropEl;\n if (backdrop) {\n $backdropEl = app.$el.children('.dialog-backdrop');\n if ($backdropEl.length === 0) {\n $backdropEl = $('<div class=\"dialog-backdrop\"></div>');\n app.$el.append($backdropEl);\n }\n }\n\n // Assign events\n function buttonOnClick(e) {\n const buttonEl = this;\n const index = $(buttonEl).index();\n const button = buttons[index];\n if (button.onClick) button.onClick(dialog, e);\n if (dialog.params.onClick) dialog.params.onClick(dialog, index);\n if (button.close !== false) dialog.close();\n }\n let addKeyboardHander;\n function onKeyDown(e) {\n const keyCode = e.keyCode;\n buttons.forEach((button, index) => {\n if (button.keyCodes && button.keyCodes.indexOf(keyCode) >= 0) {\n if (document.activeElement) document.activeElement.blur();\n if (button.onClick) button.onClick(dialog, e);\n if (dialog.params.onClick) dialog.params.onClick(dialog, index);\n if (button.close !== false) dialog.close();\n }\n });\n }\n if (buttons && buttons.length > 0) {\n dialog.on('open', () => {\n $el.find('.dialog-button').each((buttonEl, index) => {\n const button = buttons[index];\n if (button.keyCodes) addKeyboardHander = true;\n $(buttonEl).on('click', buttonOnClick);\n });\n if (\n addKeyboardHander &&\n !device.ios &&\n !device.android &&\n !device.cordova &&\n !device.capacitor\n ) {\n $(document).on('keydown', onKeyDown);\n }\n });\n dialog.on('close', () => {\n $el.find('.dialog-button').each((buttonEl) => {\n $(buttonEl).off('click', buttonOnClick);\n });\n if (\n addKeyboardHander &&\n !device.ios &&\n !device.android &&\n !device.cordova &&\n !device.capacitor\n ) {\n $(document).off('keydown', onKeyDown);\n }\n addKeyboardHander = false;\n });\n }\n extend(dialog, {\n app,\n $el,\n el: $el[0],\n $backdropEl,\n backdropEl: $backdropEl && $backdropEl[0],\n type: 'dialog',\n setProgress(progress, duration) {\n app.progressbar.set($el.find('.progressbar'), progress, duration);\n return dialog;\n },\n setText(newText) {\n let $textEl = $el.find('.dialog-text');\n if ($textEl.length === 0) {\n $textEl = $('<div class=\"dialog-text\"></div>');\n if (typeof title !== 'undefined') {\n $textEl.insertAfter($el.find('.dialog-title'));\n } else {\n $el.find('.dialog-inner').prepend($textEl);\n }\n }\n $textEl.html(newText);\n dialog.params.text = newText;\n return dialog;\n },\n setTitle(newTitle) {\n let $titleEl = $el.find('.dialog-title');\n if ($titleEl.length === 0) {\n $titleEl = $('<div class=\"dialog-title\"></div>');\n $el.find('.dialog-inner').prepend($titleEl);\n }\n $titleEl.html(newTitle);\n dialog.params.title = newTitle;\n return dialog;\n },\n });\n\n function handleClick(e) {\n const target = e.target;\n const $target = $(target);\n if ($target.closest(dialog.el).length === 0) {\n if (\n dialog.params.closeByBackdropClick &&\n dialog.backdropEl &&\n dialog.backdropEl === target\n ) {\n dialog.close();\n }\n }\n }\n\n dialog.on('opened', () => {\n if (dialog.params.closeByBackdropClick) {\n app.on('click', handleClick);\n }\n });\n dialog.on('close', () => {\n if (dialog.params.closeByBackdropClick) {\n app.off('click', handleClick);\n }\n });\n\n $el[0].f7Modal = dialog;\n\n if (dialog.params.destroyOnClose) {\n dialog.once('closed', () => {\n setTimeout(() => {\n dialog.destroy();\n }, 0);\n });\n }\n\n return dialog;\n }\n}\nexport default Dialog;\n","import { extend, iosPreloaderContent, mdPreloaderContent } from '../../shared/utils.js';\nimport Dialog from './dialog-class.js';\nimport ModalMethods from '../../shared/modal-methods.js';\n\nexport default {\n name: 'dialog',\n params: {\n dialog: {\n title: undefined,\n buttonOk: 'OK',\n buttonCancel: 'Cancel',\n usernamePlaceholder: 'Username',\n passwordPlaceholder: 'Password',\n preloaderTitle: 'Loading... ',\n progressTitle: 'Loading... ',\n backdrop: true,\n closeByBackdropClick: false,\n destroyPredefinedDialogs: true,\n keyboardActions: true,\n autoFocus: true,\n },\n },\n static: {\n Dialog,\n },\n create() {\n const app = this;\n function defaultDialogTitle() {\n return app.params.dialog.title || app.name;\n }\n const destroyOnClose = app.params.dialog.destroyPredefinedDialogs;\n const keyboardActions = app.params.dialog.keyboardActions;\n const autoFocus = app.params.dialog.autoFocus;\n const autoFocusHandler = autoFocus\n ? {\n on: {\n opened(dialog) {\n dialog.$el.find('input').eq(0).focus();\n },\n },\n }\n : {};\n const isIosTheme = app.theme === 'ios';\n\n app.dialog = extend(\n ModalMethods({\n app,\n constructor: Dialog,\n defaultSelector: '.dialog.modal-in',\n }),\n {\n // Shortcuts\n alert(...args) {\n let [text, title, callbackOk] = args;\n if (args.length === 2 && typeof args[1] === 'function') {\n [text, callbackOk, title] = args;\n }\n return new Dialog(app, {\n title: typeof title === 'undefined' ? defaultDialogTitle() : title,\n text,\n buttons: [\n {\n text: app.params.dialog.buttonOk,\n strong: isIosTheme,\n onClick: callbackOk,\n keyCodes: keyboardActions ? [13, 27] : null,\n },\n ],\n destroyOnClose,\n }).open();\n },\n prompt(...args) {\n let [text, title, callbackOk, callbackCancel, defaultValue] = args;\n if (typeof args[1] === 'function') {\n [text, callbackOk, callbackCancel, defaultValue, title] = args;\n }\n defaultValue =\n typeof defaultValue === 'undefined' || defaultValue === null ? '' : defaultValue;\n return new Dialog(app, {\n title: typeof title === 'undefined' ? defaultDialogTitle() : title,\n text,\n content: `<div class=\"dialog-input-field input\"><input type=\"text\" class=\"dialog-input\" value=\"${defaultValue}\"></div>`,\n buttons: [\n {\n text: app.params.dialog.buttonCancel,\n keyCodes: keyboardActions ? [27] : null,\n color: null,\n },\n {\n text: app.params.dialog.buttonOk,\n strong: isIosTheme,\n keyCodes: keyboardActions ? [13] : null,\n },\n ],\n onClick(dialog, index) {\n const inputValue = dialog.$el.find('.dialog-input').val();\n if (index === 0 && callbackCancel) callbackCancel(inputValue);\n if (index === 1 && callbackOk) callbackOk(inputValue);\n },\n destroyOnClose,\n ...autoFocusHandler,\n }).open();\n },\n confirm(...args) {\n let [text, title, callbackOk, callbackCancel] = args;\n if (typeof args[1] === 'function') {\n [text, callbackOk, callbackCancel, title] = args;\n }\n return new Dialog(app, {\n title: typeof title === 'undefined' ? defaultDialogTitle() : title,\n text,\n buttons: [\n {\n text: app.params.dialog.buttonCancel,\n onClick: callbackCancel,\n keyCodes: keyboardActions ? [27] : null,\n color: null,\n },\n {\n text: app.params.dialog.buttonOk,\n strong: isIosTheme,\n onClick: callbackOk,\n keyCodes: keyboardActions ? [13] : null,\n },\n ],\n destroyOnClose,\n }).open();\n },\n login(...args) {\n let [text, title, callbackOk, callbackCancel] = args;\n if (typeof args[1] === 'function') {\n [text, callbackOk, callbackCancel, title] = args;\n }\n return new Dialog(app, {\n title: typeof title === 'undefined' ? defaultDialogTitle() : title,\n text,\n // prettier-ignore\n content: `\n <div class=\"dialog-input-field dialog-input-double input\">\n <input type=\"text\" name=\"dialog-username\" placeholder=\"${app.params.dialog.usernamePlaceholder}\" class=\"dialog-input\">\n </div>\n <div class=\"dialog-input-field dialog-input-double input\">\n <input type=\"password\" name=\"dialog-password\" placeholder=\"${app.params.dialog.passwordPlaceholder}\" class=\"dialog-input\">\n </div>`,\n buttons: [\n {\n text: app.params.dialog.buttonCancel,\n keyCodes: keyboardActions ? [27] : null,\n color: null,\n },\n {\n text: app.params.dialog.buttonOk,\n strong: isIosTheme,\n keyCodes: keyboardActions ? [13] : null,\n },\n ],\n onClick(dialog, index) {\n const username = dialog.$el.find('[name=\"dialog-username\"]').val();\n const password = dialog.$el.find('[name=\"dialog-password\"]').val();\n if (index === 0 && callbackCancel) callbackCancel(username, password);\n if (index === 1 && callbackOk) callbackOk(username, password);\n },\n destroyOnClose,\n ...autoFocusHandler,\n }).open();\n },\n password(...args) {\n let [text, title, callbackOk, callbackCancel] = args;\n if (typeof args[1] === 'function') {\n [text, callbackOk, callbackCancel, title] = args;\n }\n return new Dialog(app, {\n title: typeof title === 'undefined' ? defaultDialogTitle() : title,\n text,\n // prettier-ignore\n content: `\n <div class=\"dialog-input-field input\">\n <input type=\"password\" name=\"dialog-password\" placeholder=\"${app.params.dialog.passwordPlaceholder}\" class=\"dialog-input\">\n </div>`,\n buttons: [\n {\n text: app.params.dialog.buttonCancel,\n keyCodes: keyboardActions ? [27] : null,\n color: null,\n },\n {\n text: app.params.dialog.buttonOk,\n strong: isIosTheme,\n keyCodes: keyboardActions ? [13] : null,\n },\n ],\n onClick(dialog, index) {\n const password = dialog.$el.find('[name=\"dialog-password\"]').val();\n if (index === 0 && callbackCancel) callbackCancel(password);\n if (index === 1 && callbackOk) callbackOk(password);\n },\n destroyOnClose,\n ...autoFocusHandler,\n }).open();\n },\n preloader(title, color) {\n const preloaders = {\n iosPreloaderContent,\n mdPreloaderContent,\n };\n const preloaderInner = preloaders[`${app.theme}PreloaderContent`] || '';\n return new Dialog(app, {\n title:\n typeof title === 'undefined' || title === null\n ? app.params.dialog.preloaderTitle\n : title,\n // prettier-ignore\n content: `<div class=\"preloader${color ? ` color-${color}` : ''}\">${preloaderInner}</div>`,\n cssClass: 'dialog-preloader',\n destroyOnClose,\n }).open();\n },\n progress(...args) {\n let [title, progress, color] = args;\n if (args.length === 2) {\n if (typeof args[0] === 'number') {\n [progress, color, title] = args;\n } else if (typeof args[0] === 'string' && typeof args[1] === 'string') {\n [title, color, progress] = args;\n }\n } else if (args.length === 1) {\n if (typeof args[0] === 'number') {\n [progress, title, color] = args;\n }\n }\n const infinite = typeof progress === 'undefined';\n const dialog = new Dialog(app, {\n title: typeof title === 'undefined' ? app.params.dialog.progressTitle : title,\n cssClass: 'dialog-progress',\n // prettier-ignore\n content: `\n <div class=\"progressbar${infinite ? '-infinite' : ''}${color ? ` color-${color}` : ''}\">\n ${!infinite ? '<span></span>' : ''}\n </div>\n `,\n destroyOnClose,\n });\n if (!infinite) dialog.setProgress(progress);\n return dialog.open();\n },\n },\n );\n },\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, now, nextTick } from '../../shared/utils.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport Modal from '../modal/modal-class.js';\n\nclass Popup extends Modal {\n constructor(app, params) {\n const extendedParams = extend({ on: {} }, app.params.popup, params);\n\n // Extends with open/close Modal methods;\n super(app, extendedParams);\n\n const popup = this;\n const window = getWindow();\n const document = getDocument();\n const support = getSupport();\n const device = getDevice();\n\n popup.params = extendedParams;\n\n // Find Element\n let $el;\n if (!popup.params.el) {\n $el = $(popup.params.content)\n .filter((node) => node.nodeType === 1)\n .eq(0);\n } else {\n $el = $(popup.params.el).eq(0);\n }\n\n if ($el && $el.length > 0 && $el[0].f7Modal) {\n return $el[0].f7Modal;\n }\n\n if ($el.length === 0) {\n return popup.destroy();\n }\n\n let $backdropEl;\n if (popup.params.backdrop && popup.params.backdropEl) {\n $backdropEl = $(popup.params.backdropEl);\n } else if (popup.params.backdrop) {\n if (popup.params.backdropUnique) {\n $backdropEl = $('<div class=\"popup-backdrop popup-backdrop-unique\"></div>');\n popup.$containerEl.append($backdropEl);\n } else {\n $backdropEl = popup.$containerEl.children('.popup-backdrop');\n }\n if ($backdropEl.length === 0) {\n $backdropEl = $('<div class=\"popup-backdrop\"></div>');\n popup.$containerEl.append($backdropEl);\n }\n }\n\n extend(popup, {\n app,\n push: $el.hasClass('popup-push') || popup.params.push,\n $el,\n el: $el[0],\n $backdropEl,\n backdropEl: $backdropEl && $backdropEl[0],\n type: 'popup',\n $htmlEl: $('html'),\n });\n\n if (popup.params.push) {\n $el.addClass('popup-push');\n }\n\n function handleClick(e) {\n const target = e.target;\n const $target = $(target);\n const keyboardOpened =\n !device.desktop &&\n device.cordova &&\n ((window.Keyboard && window.Keyboard.isVisible) ||\n (window.cordova.plugins &&\n window.cordova.plugins.Keyboard &&\n window.cordova.plugins.Keyboard.isVisible));\n if (keyboardOpened) return;\n if ($target.closest(popup.el).length === 0) {\n if (\n popup.params &&\n popup.params.closeByBackdropClick &&\n popup.params.backdrop &&\n popup.backdropEl &&\n popup.backdropEl === target\n ) {\n let needToClose = true;\n popup.$el.nextAll('.popup.modal-in').each((popupEl) => {\n const popupInstance = popupEl.f7Modal;\n if (!popupInstance) return;\n if (\n popupInstance.params.closeByBackdropClick &&\n popupInstance.params.backdrop &&\n popupInstance.backdropEl === popup.backdropEl\n ) {\n needToClose = false;\n }\n });\n if (needToClose) {\n popup.close();\n }\n }\n }\n }\n\n function onKeyDown(e) {\n const keyCode = e.keyCode;\n if (keyCode === 27 && popup.params.closeOnEscape) {\n popup.close();\n }\n }\n\n let pushOffset;\n let isPush;\n\n function pushViewScale(offset) {\n return (app.height - offset * 2) / app.height;\n }\n\n let allowSwipeToClose = true;\n let isTouched = false;\n let startTouch;\n let currentTouch;\n let isScrolling;\n let touchStartTime;\n let touchesDiff;\n let isMoved = false;\n let pageContentEl;\n let pageContentScrollTop;\n let pageContentOffsetHeight;\n let pageContentScrollHeight;\n let popupHeight;\n let $pushEl;\n\n function handleTouchStart(e) {\n if (isTouched || !allowSwipeToClose || !popup.params.swipeToClose || !e.isTrusted) return;\n if (\n popup.params.swipeHandler &&\n $(e.target).closest(popup.params.swipeHandler).length === 0\n ) {\n return;\n }\n if ($(e.target).closest('.sortable-handler').length > 0) return;\n isTouched = true;\n isMoved = false;\n startTouch = {\n x: e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX,\n y: e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY,\n };\n touchStartTime = now();\n isScrolling = undefined;\n if (!popup.params.swipeHandler && e.type === 'touchstart') {\n pageContentEl = $(e.target).closest('.page-content')[0];\n }\n }\n function handleTouchMove(e) {\n if (!isTouched || !e.isTrusted) return;\n currentTouch = {\n x: e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX,\n y: e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY,\n };\n\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(\n isScrolling ||\n Math.abs(currentTouch.x - startTouch.x) > Math.abs(currentTouch.y - startTouch.y)\n );\n }\n if (isScrolling) {\n isTouched = false;\n isMoved = false;\n return;\n }\n\n touchesDiff = startTouch.y - currentTouch.y;\n if (isPush && pushOffset && touchesDiff > 0) {\n touchesDiff = 0;\n }\n const direction = touchesDiff < 0 ? 'to-bottom' : 'to-top';\n $el.transition(0);\n\n if (\n typeof popup.params.swipeToClose === 'string' &&\n direction !== popup.params.swipeToClose\n ) {\n $el.transform('');\n $el.transition('');\n return;\n }\n\n if (!isMoved) {\n if (isPush && pushOffset) {\n popupHeight = $el[0].offsetHeight;\n $pushEl = $el.prevAll('.popup.modal-in').eq(0);\n if ($pushEl.length === 0) {\n $pushEl = app.$el.children('.view, .views');\n }\n }\n if (pageContentEl) {\n pageContentScrollTop = pageContentEl.scrollTop;\n pageContentScrollHeight = pageContentEl.scrollHeight;\n pageContentOffsetHeight = pageContentEl.offsetHeight;\n if (\n !(pageContentScrollHeight === pageContentOffsetHeight) &&\n !(direction === 'to-bottom' && pageContentScrollTop === 0) &&\n !(\n direction === 'to-top' &&\n pageContentScrollTop === pageContentScrollHeight - pageContentOffsetHeight\n )\n ) {\n $el.transform('');\n $el.transition('');\n isTouched = false;\n isMoved = false;\n return;\n }\n }\n isMoved = true;\n popup.emit('local::swipeStart popupSwipeStart', popup);\n popup.$el.trigger('popup:swipestart');\n } else {\n popup.emit('local::swipeMove popupSwipeMove', popup);\n popup.$el.trigger('popup:swipemove');\n }\n\n e.preventDefault();\n if (isPush && pushOffset) {\n const pushProgress = 1 - Math.abs(touchesDiff / popupHeight);\n const scale = 1 - (1 - pushViewScale(pushOffset)) * pushProgress;\n if ($pushEl.hasClass('popup')) {\n if ($pushEl.hasClass('popup-push')) {\n $pushEl.transition(0).forEach((el) => {\n el.style.setProperty(\n 'transform',\n `translate3d(0, calc(-1 * ${pushProgress} * (var(--f7-popup-push-offset) + 10px)) , 0px) scale(${scale})`,\n 'important',\n );\n });\n } else {\n $pushEl.transition(0).forEach((el) => {\n el.style.setProperty(\n 'transform',\n `translate3d(0, 0px , 0px) scale(${scale})`,\n 'important',\n );\n });\n }\n } else {\n $pushEl.transition(0).forEach((el) => {\n el.style.setProperty('transform', `translate3d(0,0,0) scale(${scale})`, 'important');\n });\n }\n }\n $el.transition(0).transform(`translate3d(0,${-touchesDiff}px,0)`);\n }\n function handleTouchEnd(e) {\n if (!e.isTrusted) return;\n isTouched = false;\n if (!isMoved) {\n return;\n }\n popup.emit('local::swipeEnd popupSwipeEnd', popup);\n popup.$el.trigger('popup:swipeend');\n isMoved = false;\n allowSwipeToClose = false;\n $el.transition('');\n if (isPush && pushOffset) {\n $pushEl.transition('').transform('');\n }\n const direction = touchesDiff <= 0 ? 'to-bottom' : 'to-top';\n if (\n typeof popup.params.swipeToClose === 'string' &&\n direction !== popup.params.swipeToClose\n ) {\n $el.transform('');\n allowSwipeToClose = true;\n return;\n }\n const diff = Math.abs(touchesDiff);\n const timeDiff = new Date().getTime() - touchStartTime;\n if ((timeDiff < 300 && diff > 20) || (timeDiff >= 300 && diff > 100)) {\n nextTick(() => {\n if (direction === 'to-bottom') {\n $el.addClass('swipe-close-to-bottom');\n } else {\n $el.addClass('swipe-close-to-top');\n }\n $el.transform('');\n popup.emit('local::swipeclose popupSwipeClose', popup);\n popup.$el.trigger('popup:swipeclose');\n popup.close();\n allowSwipeToClose = true;\n });\n return;\n }\n allowSwipeToClose = true;\n $el.transform('');\n }\n\n const passive = support.passiveListener ? { passive: true } : false;\n if (popup.params.swipeToClose) {\n $el.on(app.touchEvents.start, handleTouchStart, passive);\n app.on('touchmove', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n popup.once('popupDestroy', () => {\n $el.off(app.touchEvents.start, handleTouchStart, passive);\n app.off('touchmove', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n });\n }\n\n let hasPreviousPushPopup;\n\n const updatePushOffset = () => {\n const wasPush = isPush;\n if (popup.push) {\n isPush =\n popup.push &&\n (app.width < 630 || app.height < 630 || $el.hasClass('popup-tablet-fullscreen'));\n }\n if (isPush && !wasPush) {\n // eslint-disable-next-line\n setPushOffset();\n } else if (isPush && wasPush) {\n popup.$htmlEl[0].style.setProperty('--f7-popup-push-scale', pushViewScale(pushOffset));\n } else if (!isPush && wasPush) {\n popup.$htmlEl.removeClass('with-modal-popup-push');\n popup.$htmlEl[0].style.removeProperty('--f7-popup-push-scale');\n }\n };\n\n const setPushOffset = () => {\n app.off('resize', updatePushOffset);\n if (popup.push) {\n isPush =\n popup.push &&\n (app.width < 630 || app.height < 630 || $el.hasClass('popup-tablet-fullscreen'));\n }\n if (isPush) {\n pushOffset = parseInt($el.css('--f7-popup-push-offset'), 10);\n if (Number.isNaN(pushOffset)) {\n pushOffset = 0;\n }\n if (!pushOffset) pushOffset = app.theme === 'ios' ? 44 : 48;\n popup.$htmlEl[0].style.setProperty('--f7-popup-push-offset', `${pushOffset}px`);\n $el.addClass('popup-push');\n popup.$htmlEl.addClass('with-modal-popup-push');\n popup.$htmlEl[0].style.setProperty('--f7-popup-push-scale', pushViewScale(pushOffset));\n }\n app.on('resize', updatePushOffset);\n };\n\n popup.on('open', () => {\n hasPreviousPushPopup = false;\n if (popup.params.closeOnEscape) {\n $(document).on('keydown', onKeyDown);\n }\n $el.prevAll('.popup.modal-in').addClass('popup-behind');\n setPushOffset();\n });\n popup.on('opened', () => {\n $el.removeClass('swipe-close-to-bottom swipe-close-to-top');\n if (popup.params.closeByBackdropClick) {\n app.on('click', handleClick);\n }\n });\n popup.on('close', () => {\n hasPreviousPushPopup = popup.$el.prevAll('.popup-push.modal-in').length > 0;\n if (popup.params.closeOnEscape) {\n $(document).off('keydown', onKeyDown);\n }\n if (popup.params.closeByBackdropClick) {\n app.off('click', handleClick);\n }\n $el.prevAll('.popup.modal-in').eq(0).removeClass('popup-behind');\n if (isPush && pushOffset && !hasPreviousPushPopup) {\n popup.$htmlEl.removeClass('with-modal-popup-push');\n popup.$htmlEl.addClass('with-modal-popup-push-closing');\n }\n app.off('resize', updatePushOffset);\n });\n popup.on('closed', () => {\n $el.removeClass('popup-behind');\n if (isPush && pushOffset && !hasPreviousPushPopup) {\n popup.$htmlEl.removeClass('with-modal-popup-push-closing');\n popup.$htmlEl[0].style.removeProperty('--f7-popup-push-scale');\n popup.$htmlEl[0].style.removeProperty('--f7-popup-push-offset');\n }\n });\n\n $el[0].f7Modal = popup;\n\n return popup;\n }\n}\nexport default Popup;\n","import Popup from './popup-class.js';\nimport ModalMethods from '../../shared/modal-methods.js';\n\nexport default {\n name: 'popup',\n params: {\n popup: {\n backdrop: true,\n backdropEl: undefined,\n backdropUnique: false,\n closeByBackdropClick: true,\n closeOnEscape: false,\n swipeToClose: false,\n swipeHandler: null,\n push: false,\n containerEl: null,\n },\n },\n static: {\n Popup,\n },\n create() {\n const app = this;\n app.popup = ModalMethods({\n app,\n constructor: Popup,\n defaultSelector: '.popup.modal-in',\n parentSelector: '.popup',\n });\n },\n clicks: {\n '.popup-open': function openPopup($clickedEl, data = {}) {\n const app = this;\n app.popup.open(data.popup, data.animate, $clickedEl);\n },\n '.popup-close': function closePopup($clickedEl, data = {}) {\n const app = this;\n app.popup.close(data.popup, data.animate, $clickedEl);\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Modal from '../modal/modal-class.js';\n\nclass LoginScreen extends Modal {\n constructor(app, params) {\n const extendedParams = extend(\n {\n on: {},\n },\n params,\n );\n\n // Extends with open/close Modal methods;\n super(app, extendedParams);\n\n const loginScreen = this;\n\n loginScreen.params = extendedParams;\n\n // Find Element\n let $el;\n if (!loginScreen.params.el) {\n $el = $(loginScreen.params.content)\n .filter((node) => node.nodeType === 1)\n .eq(0);\n } else {\n $el = $(loginScreen.params.el).eq(0);\n }\n\n if ($el && $el.length > 0 && $el[0].f7Modal) {\n return $el[0].f7Modal;\n }\n\n if ($el.length === 0) {\n return loginScreen.destroy();\n }\n\n extend(loginScreen, {\n app,\n $el,\n el: $el[0],\n type: 'loginScreen',\n });\n\n $el[0].f7Modal = loginScreen;\n\n return loginScreen;\n }\n}\nexport default LoginScreen;\n","import LoginScreen from './login-screen-class.js';\nimport ModalMethods from '../../shared/modal-methods.js';\n\nexport default {\n name: 'loginScreen',\n static: {\n LoginScreen,\n },\n create() {\n const app = this;\n app.loginScreen = ModalMethods({\n app,\n constructor: LoginScreen,\n defaultSelector: '.login-screen.modal-in',\n });\n },\n clicks: {\n '.login-screen-open': function openLoginScreen($clickedEl, data = {}) {\n const app = this;\n app.loginScreen.open(data.loginScreen, data.animate, $clickedEl);\n },\n '.login-screen-close': function closeLoginScreen($clickedEl, data = {}) {\n const app = this;\n app.loginScreen.close(data.loginScreen, data.animate, $clickedEl);\n },\n },\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport Modal from '../modal/modal-class.js';\n\nclass Popover extends Modal {\n constructor(app, params) {\n const extendedParams = extend({ on: {} }, app.params.popover, params);\n\n // Extends with open/close Modal methods;\n super(app, extendedParams);\n\n const popover = this;\n\n const device = getDevice();\n const window = getWindow();\n const document = getDocument();\n\n popover.params = extendedParams;\n\n // Find Element\n let $el;\n if (!popover.params.el) {\n $el = $(popover.params.content)\n .filter((node) => node.nodeType === 1)\n .eq(0);\n } else {\n $el = $(popover.params.el).eq(0);\n }\n\n if ($el && $el.length > 0 && $el[0].f7Modal) {\n return $el[0].f7Modal;\n }\n\n // Find Target\n const $targetEl = $(popover.params.targetEl).eq(0);\n\n if ($el.length === 0) {\n return popover.destroy();\n }\n\n // Backdrop\n let $backdropEl;\n const forceBackdropUnique =\n popover.params.backdrop &&\n app.$el.find('.popover.modal-in').filter((anotherPopoverEl) => anotherPopoverEl !== $el[0])\n .length > 0;\n if (popover.params.backdrop && popover.params.backdropEl) {\n $backdropEl = $(popover.params.backdropEl);\n } else if (popover.params.backdrop) {\n if (popover.params.backdropUnique || forceBackdropUnique) {\n $backdropEl = $('<div class=\"popover-backdrop popover-backdrop-unique\"></div>');\n $backdropEl[0].f7PopoverRef = popover;\n popover.$containerEl.append($backdropEl);\n } else {\n $backdropEl = popover.$containerEl.children('.popover-backdrop');\n }\n if ($backdropEl.length === 0) {\n $backdropEl = $('<div class=\"popover-backdrop\"></div>');\n popover.$containerEl.append($backdropEl);\n }\n }\n\n // Find Arrow\n let $arrowEl;\n if ($el.find('.popover-arrow').length === 0 && popover.params.arrow) {\n $arrowEl = $('<div class=\"popover-arrow\"></div>');\n $el.prepend($arrowEl);\n } else {\n $arrowEl = $el.find('.popover-arrow');\n }\n\n // Open\n const originalOpen = popover.open;\n\n extend(popover, {\n app,\n $el,\n el: $el[0],\n $targetEl,\n targetEl: $targetEl[0],\n $arrowEl,\n arrowEl: $arrowEl[0],\n $backdropEl,\n backdropEl: $backdropEl && $backdropEl[0],\n type: 'popover',\n forceBackdropUnique,\n open(...args) {\n let [targetEl, animate] = args;\n if (typeof args[0] === 'boolean') [animate, targetEl] = args;\n if (targetEl) {\n popover.$targetEl = $(targetEl);\n popover.targetEl = popover.$targetEl[0];\n }\n return originalOpen.call(popover, animate);\n },\n });\n\n function handleResize() {\n popover.resize();\n }\n popover.on('popoverOpen', () => {\n popover.resize();\n app.on('resize', handleResize);\n $(window).on('keyboardDidShow keyboardDidHide', handleResize);\n popover.on('popoverClose popoverBeforeDestroy', () => {\n app.off('resize', handleResize);\n $(window).off('keyboardDidShow keyboardDidHide', handleResize);\n });\n });\n\n let touchStartTarget = null;\n function handleTouchStart(e) {\n touchStartTarget = e.target;\n }\n\n function handleClick(e) {\n const target = e.target;\n const $target = $(target);\n const keyboardOpened =\n !device.desktop &&\n device.cordova &&\n ((window.Keyboard && window.Keyboard.isVisible) ||\n (window.cordova.plugins &&\n window.cordova.plugins.Keyboard &&\n window.cordova.plugins.Keyboard.isVisible));\n if (keyboardOpened) return;\n if ($target.closest(popover.el).length === 0) {\n if (\n popover.params.closeByBackdropClick &&\n popover.params.backdrop &&\n popover.backdropEl &&\n popover.backdropEl === target &&\n touchStartTarget === target\n ) {\n popover.close();\n } else if (popover.params.closeByOutsideClick && touchStartTarget === target) {\n const isAnotherPopoverBackdrop =\n ($target.hasClass('popover-backdrop-unique') && target.f7PopoverRef !== popover) ||\n ($target.hasClass('popover-backdrop') && target !== popover.backdropEl);\n const isAnotherPopoverTarget =\n target.closest('.popover') && target.closest('.popover') !== popover.$el[0];\n if (!isAnotherPopoverBackdrop && !isAnotherPopoverTarget) {\n popover.close();\n }\n }\n }\n }\n\n function onKeyDown(e) {\n const keyCode = e.keyCode;\n if (keyCode === 27 && popover.params.closeOnEscape) {\n popover.close();\n }\n }\n\n if (popover.params.closeOnEscape) {\n popover.on('popoverOpen', () => {\n $(document).on('keydown', onKeyDown);\n });\n popover.on('popoverClose', () => {\n $(document).off('keydown', onKeyDown);\n });\n }\n\n popover.on('popoverOpened', () => {\n if (popover.params.closeByOutsideClick || popover.params.closeByBackdropClick) {\n app.on('touchstart', handleTouchStart);\n app.on('click', handleClick);\n }\n });\n popover.on('popoverClose', () => {\n if (popover.params.closeByOutsideClick || popover.params.closeByBackdropClick) {\n app.off('touchstart', handleTouchStart);\n app.off('click', handleClick);\n }\n });\n\n $el[0].f7Modal = popover;\n\n return popover;\n }\n\n resize() {\n const popover = this;\n const { app, $el, $targetEl, $arrowEl } = popover;\n const { targetX, targetY, verticalPosition } = popover.params;\n $el.css({ left: '', top: '' });\n const [width, height] = [$el.width(), $el.height()];\n let arrowSize = 0;\n let arrowLeft;\n let arrowTop;\n const hasArrow = $arrowEl.length > 0;\n const arrowMin = app.theme === 'ios' ? 13 : 24;\n if (hasArrow) {\n $arrowEl.removeClass('on-left on-right on-top on-bottom').css({ left: '', top: '' });\n arrowSize = $arrowEl.width() / 2;\n }\n $el\n .removeClass(\n 'popover-on-left popover-on-right popover-on-top popover-on-bottom popover-on-middle',\n )\n .css({ left: '', top: '' });\n\n let targetWidth;\n let targetHeight;\n let targetOffsetLeft;\n let targetOffsetTop;\n let safeAreaTop = parseInt($('html').css('--f7-safe-area-top'), 10);\n let safeAreaLeft = parseInt($('html').css('--f7-safe-area-left'), 10);\n let safeAreaRight = parseInt($('html').css('--f7-safe-area-right'), 10);\n if (Number.isNaN(safeAreaTop)) safeAreaTop = 0;\n if (Number.isNaN(safeAreaLeft)) safeAreaLeft = 0;\n if (Number.isNaN(safeAreaRight)) safeAreaRight = 0;\n if ($targetEl && $targetEl.length > 0) {\n targetWidth = $targetEl.outerWidth();\n targetHeight = $targetEl.outerHeight();\n\n const targetOffset = $targetEl.offset();\n targetOffsetLeft = targetOffset.left - app.left;\n targetOffsetTop = targetOffset.top - app.top;\n\n const targetParentPage = $targetEl.parents('.page');\n if (targetParentPage.length > 0) {\n targetOffsetTop -= targetParentPage[0].scrollTop;\n }\n } else if (typeof targetX !== 'undefined' && targetY !== 'undefined') {\n targetOffsetLeft = targetX;\n targetOffsetTop = targetY;\n targetWidth = popover.params.targetWidth || 0;\n targetHeight = popover.params.targetHeight || 0;\n }\n\n let [left, top, diff] = [0, 0, 0];\n // Top Position\n const forcedPosition = verticalPosition === 'auto' ? false : verticalPosition;\n let position = forcedPosition || 'top';\n\n if (\n forcedPosition === 'top' ||\n (!forcedPosition && height + arrowSize < targetOffsetTop - safeAreaTop)\n ) {\n // On top\n top = targetOffsetTop - height - arrowSize;\n } else if (\n forcedPosition === 'bottom' ||\n (!forcedPosition && height + arrowSize < app.height - targetOffsetTop - targetHeight)\n ) {\n // On bottom\n position = 'bottom';\n top = targetOffsetTop + targetHeight + arrowSize;\n } else {\n // On middle\n position = 'middle';\n top = targetHeight / 2 + targetOffsetTop - height / 2;\n diff = top;\n top = Math.max(5, Math.min(top, app.height - height - 5));\n diff -= top;\n }\n\n // Horizontal Position\n if (position === 'top' || position === 'bottom') {\n left = targetWidth / 2 + targetOffsetLeft - width / 2;\n diff = left;\n left = Math.max(5, Math.min(left, app.width - width - 5));\n if (safeAreaLeft) {\n left = Math.max(left, safeAreaLeft);\n }\n if (safeAreaRight && left + width > app.width - 5 - safeAreaRight) {\n left = app.width - 5 - safeAreaRight - width;\n }\n\n diff -= left;\n if (hasArrow) {\n if (position === 'top') {\n $arrowEl.addClass('on-bottom');\n }\n if (position === 'bottom') {\n $arrowEl.addClass('on-top');\n }\n arrowLeft = width / 2 - arrowSize + diff;\n arrowLeft = Math.max(Math.min(arrowLeft, width - arrowSize * 2 - arrowMin), arrowMin);\n $arrowEl.css({ left: `${arrowLeft}px` });\n }\n } else if (position === 'middle') {\n left = targetOffsetLeft - width - arrowSize;\n if (hasArrow) $arrowEl.addClass('on-right');\n if (left < 5 || left + width + safeAreaRight > app.width || left < safeAreaLeft) {\n if (left < 5) left = targetOffsetLeft + targetWidth + arrowSize;\n if (left + width + safeAreaRight > app.width) left = app.width - width - 5 - safeAreaRight;\n if (left < safeAreaLeft) left = safeAreaLeft;\n if (hasArrow) $arrowEl.removeClass('on-right').addClass('on-left');\n }\n if (hasArrow) {\n arrowTop = height / 2 - arrowSize + diff;\n arrowTop = Math.max(Math.min(arrowTop, height - arrowSize * 2 - arrowMin), arrowMin);\n $arrowEl.css({ top: `${arrowTop}px` });\n }\n }\n\n // Horizontal Position\n let hPosition;\n if (targetOffsetLeft < app.width / 2) {\n hPosition = 'right';\n } else {\n hPosition = 'left';\n }\n $el.addClass(`popover-on-${position} popover-on-${hPosition}`);\n\n // Apply Styles\n $el.css({ top: `${top}px`, left: `${left}px` });\n }\n}\n\nexport default Popover;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Popover from './popover-class.js';\nimport ModalMethods from '../../shared/modal-methods.js';\n\nexport default {\n name: 'popover',\n params: {\n popover: {\n verticalPosition: 'auto',\n arrow: true,\n backdrop: true,\n backdropEl: undefined,\n backdropUnique: false,\n closeByBackdropClick: true,\n closeByOutsideClick: true,\n closeOnEscape: false,\n containerEl: null,\n },\n },\n static: {\n Popover,\n },\n create() {\n const app = this;\n app.popover = extend(\n ModalMethods({\n app,\n constructor: Popover,\n defaultSelector: '.popover.modal-in',\n }),\n {\n open(popoverEl, targetEl, animate) {\n let $popoverEl = $(popoverEl);\n if ($popoverEl.length > 1) {\n // check if same popover in other page\n const $targetPage = $(targetEl).parents('.page');\n if ($targetPage.length) {\n $popoverEl.each((el) => {\n const $el = $(el);\n if ($el.parents($targetPage)[0] === $targetPage[0]) {\n $popoverEl = $el;\n }\n });\n }\n }\n if ($popoverEl.length > 1) {\n $popoverEl = $popoverEl.eq($popoverEl.length - 1);\n }\n let popover = $popoverEl[0].f7Modal;\n const data = $popoverEl.dataset();\n if (!popover) {\n popover = new Popover(\n app,\n Object.assign(\n {\n el: $popoverEl,\n targetEl,\n },\n data,\n ),\n );\n }\n return popover.open(targetEl, animate);\n },\n },\n );\n },\n clicks: {\n '.popover-open': function openPopover($clickedEl, data = {}) {\n const app = this;\n app.popover.open(data.popover, $clickedEl, data.animate);\n },\n '.popover-close': function closePopover($clickedEl, data = {}) {\n const app = this;\n app.popover.close(data.popover, data.animate, $clickedEl);\n },\n },\n};\n","/* eslint indent: [\"off\"] */\nimport { getWindow, getDocument } from 'ssr-window';\nimport { getDevice } from '../../shared/get-device.js';\nimport { extend, nextTick } from '../../shared/utils.js';\nimport Modal from '../modal/modal-class.js';\nimport $ from '../../shared/dom7.js';\n/** @jsx $jsx */\nimport $jsx from '../../shared/$jsx.js';\n\nclass Actions extends Modal {\n constructor(app, params) {\n const extendedParams = extend({ on: {} }, app.params.actions, params);\n\n // Extends with open/close Modal methods;\n super(app, extendedParams);\n\n const actions = this;\n\n const device = getDevice();\n const window = getWindow();\n const document = getDocument();\n\n actions.params = extendedParams;\n\n // Buttons\n let groups;\n if (actions.params.buttons) {\n groups = actions.params.buttons;\n if (!Array.isArray(groups[0])) groups = [groups];\n }\n actions.groups = groups;\n\n // Find Element\n let $el;\n if (actions.params.el) {\n $el = $(actions.params.el).eq(0);\n } else if (actions.params.content) {\n $el = $(actions.params.content)\n .filter((node) => node.nodeType === 1)\n .eq(0);\n } else if (actions.params.buttons) {\n if (actions.params.convertToPopover) {\n actions.popoverHtml = actions.renderPopover();\n }\n actions.actionsHtml = actions.render();\n }\n\n if ($el && $el.length > 0 && $el[0].f7Modal) {\n return $el[0].f7Modal;\n }\n\n if ($el && $el.length === 0 && !(actions.actionsHtml || actions.popoverHtml)) {\n return actions.destroy();\n }\n\n // Backdrop\n let $backdropEl;\n if (actions.params.backdrop && actions.params.backdropEl) {\n $backdropEl = $(actions.params.backdropEl);\n } else if (actions.params.backdrop) {\n if (actions.params.backdropUnique) {\n $backdropEl = $('<div class=\"popup-backdrop popup-backdrop-unique\"></div>');\n actions.$containerEl.append($backdropEl);\n } else {\n $backdropEl = actions.$containerEl.children('.actions-backdrop');\n }\n if ($backdropEl.length === 0) {\n $backdropEl = $('<div class=\"actions-backdrop\"></div>');\n actions.$containerEl.append($backdropEl);\n }\n }\n\n const originalOpen = actions.open;\n const originalClose = actions.close;\n\n let popover;\n function buttonOnClick(e) {\n const $buttonEl = $(this);\n let buttonIndex;\n let groupIndex;\n if ($buttonEl.hasClass('list-button') || $buttonEl.hasClass('item-link')) {\n buttonIndex = $buttonEl.parents('li').index();\n groupIndex = $buttonEl.parents('.list').index();\n } else {\n buttonIndex = $buttonEl.index();\n groupIndex = $buttonEl.parents('.actions-group').index();\n }\n if (typeof groups !== 'undefined') {\n const button = groups[groupIndex][buttonIndex];\n if (button.onClick) button.onClick(actions, e);\n if (actions.params.onClick) actions.params.onClick(actions, e);\n if (button.close !== false) actions.close();\n }\n }\n actions.open = function open(animate) {\n let convertToPopover = false;\n const { targetEl, targetX, targetY, targetWidth, targetHeight } = actions.params;\n if (\n actions.params.convertToPopover &&\n (targetEl || (targetX !== undefined && targetY !== undefined))\n ) {\n // Popover\n if (\n actions.params.forceToPopover ||\n (device.ios && device.ipad) ||\n app.width >= 768 ||\n device.desktop\n ) {\n convertToPopover = true;\n }\n }\n if (convertToPopover && actions.popoverHtml) {\n popover = app.popover.create({\n containerEl: actions.params.containerEl,\n content: actions.popoverHtml,\n backdrop: actions.params.backdrop,\n targetEl,\n targetX,\n targetY,\n targetWidth,\n targetHeight,\n on: {\n open() {\n if (!actions.$el) {\n actions.$el = popover.$el;\n }\n actions.$el.trigger(`modal:open ${actions.type.toLowerCase()}:open`);\n actions.emit(`local::open modalOpen ${actions.type}Open`, actions);\n },\n opened() {\n if (!actions.$el) {\n actions.$el = popover.$el;\n }\n actions.$el.trigger(`modal:opened ${actions.type.toLowerCase()}:opened`);\n actions.emit(`local::opened modalOpened ${actions.type}Opened`, actions);\n },\n close() {\n if (!actions.$el) {\n actions.$el = popover.$el;\n }\n actions.$el.trigger(`modal:close ${actions.type.toLowerCase()}:close`);\n actions.emit(`local::close modalClose ${actions.type}Close`, actions);\n },\n closed() {\n if (!actions.$el) {\n actions.$el = popover.$el;\n }\n actions.$el.trigger(`modal:closed ${actions.type.toLowerCase()}:closed`);\n actions.emit(`local::closed modalClosed ${actions.type}Closed`, actions);\n },\n },\n });\n popover.open(animate);\n popover.once('popoverOpened', () => {\n popover.$el.find('.list-button, .item-link').each((buttonEl) => {\n $(buttonEl).on('click', buttonOnClick);\n });\n });\n popover.once('popoverClosed', () => {\n popover.$el.find('.list-button, .item-link').each((buttonEl) => {\n $(buttonEl).off('click', buttonOnClick);\n });\n nextTick(() => {\n popover.destroy();\n popover = undefined;\n });\n });\n } else {\n actions.$el = actions.actionsHtml ? $(actions.actionsHtml) : actions.$el;\n actions.$el[0].f7Modal = actions;\n if (actions.groups) {\n actions.$el.find('.actions-button').each((buttonEl) => {\n $(buttonEl).on('click', buttonOnClick);\n });\n actions.once('actionsClosed', () => {\n actions.$el.find('.actions-button').each((buttonEl) => {\n $(buttonEl).off('click', buttonOnClick);\n });\n });\n }\n actions.el = actions.$el[0];\n originalOpen.call(actions, animate);\n }\n return actions;\n };\n\n actions.close = function close(animate) {\n if (popover) {\n popover.close(animate);\n } else {\n originalClose.call(actions, animate);\n }\n return actions;\n };\n\n extend(actions, {\n app,\n $el,\n el: $el ? $el[0] : undefined,\n $backdropEl,\n backdropEl: $backdropEl && $backdropEl[0],\n type: 'actions',\n });\n\n function handleClick(e) {\n const target = e.target;\n const $target = $(target);\n const keyboardOpened =\n !device.desktop &&\n device.cordova &&\n ((window.Keyboard && window.Keyboard.isVisible) ||\n (window.cordova.plugins &&\n window.cordova.plugins.Keyboard &&\n window.cordova.plugins.Keyboard.isVisible));\n if (keyboardOpened) return;\n if ($target.closest(actions.el).length === 0) {\n if (\n actions.params.closeByBackdropClick &&\n actions.params.backdrop &&\n actions.backdropEl &&\n actions.backdropEl === target\n ) {\n actions.close();\n } else if (actions.params.closeByOutsideClick) {\n actions.close();\n }\n }\n }\n\n function onKeyDown(e) {\n const keyCode = e.keyCode;\n if (keyCode === 27 && actions.params.closeOnEscape) {\n actions.close();\n }\n }\n\n if (actions.params.closeOnEscape) {\n actions.on('open', () => {\n $(document).on('keydown', onKeyDown);\n });\n actions.on('close', () => {\n $(document).off('keydown', onKeyDown);\n });\n }\n\n actions.on('opened', () => {\n if (actions.params.closeByBackdropClick || actions.params.closeByOutsideClick) {\n app.on('click', handleClick);\n }\n });\n actions.on('close', () => {\n if (actions.params.closeByBackdropClick || actions.params.closeByOutsideClick) {\n app.off('click', handleClick);\n }\n });\n\n if ($el) {\n $el[0].f7Modal = actions;\n }\n\n return actions;\n }\n\n render() {\n const actions = this;\n if (actions.params.render) return actions.params.render.call(actions, actions);\n const { groups } = actions;\n const cssClass = actions.params.cssClass;\n return (\n <div class={`actions-modal${actions.params.grid ? ' actions-grid' : ''} ${cssClass || ''}`}>\n {groups.map((group) => (\n <div class=\"actions-group\">\n {group.map((button) => {\n const buttonClasses = [`actions-${button.label ? 'label' : 'button'}`];\n const { color, bg, strong, disabled, label, text, icon } = button;\n if (color) buttonClasses.push(`color-${color}`);\n if (bg) buttonClasses.push(`bg-color-${bg}`);\n if (strong) buttonClasses.push('actions-button-strong');\n if (disabled) buttonClasses.push('disabled');\n if (label) {\n return <div class={buttonClasses.join(' ')}>{text}</div>;\n }\n return (\n <div class={buttonClasses.join(' ')}>\n {icon && <div class=\"actions-button-media\">{icon}</div>}\n <div class=\"actions-button-text\">{text}</div>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n );\n }\n\n renderPopover() {\n const actions = this;\n if (actions.params.renderPopover) return actions.params.renderPopover.call(actions, actions);\n const { groups } = actions;\n const cssClass = actions.params.cssClass;\n return (\n <div class={`popover popover-from-actions ${cssClass || ''}`}>\n <div class=\"popover-inner\">\n {groups.map((group) => (\n <div class=\"list\">\n <ul>\n {group.map((button) => {\n const itemClasses = [];\n const { color, bg, strong, disabled, label, text, icon } = button;\n if (color) itemClasses.push(`color-${color}`);\n if (bg) itemClasses.push(`bg-color-${bg}`);\n if (strong) itemClasses.push('popover-from-actions-strong');\n if (disabled) itemClasses.push('disabled');\n if (label) {\n itemClasses.push('popover-from-actions-label');\n return `<li class=\"${itemClasses.join(' ')}\">${text}</li>`;\n }\n if (icon) {\n itemClasses.push('item-link item-content');\n return (\n <li>\n <a class={itemClasses.join(' ')}>\n <div class=\"item-media\">{icon}</div>\n <div class=\"item-inner\">\n <div class=\"item-title\">{text}</div>\n </div>\n </a>\n </li>\n );\n }\n itemClasses.push('list-button');\n return (\n <li>\n <a class={itemClasses.join(' ')}>{text}</a>\n </li>\n );\n })}\n </ul>\n </div>\n ))}\n </div>\n </div>\n );\n }\n}\n\nexport default Actions;\n","import Actions from './actions-class.js';\nimport ModalMethods from '../../shared/modal-methods.js';\n\nexport default {\n name: 'actions',\n params: {\n actions: {\n convertToPopover: true,\n forceToPopover: false,\n backdrop: true,\n backdropEl: undefined,\n backdropUnique: false,\n cssClass: null,\n closeByBackdropClick: true,\n closeOnEscape: false,\n render: null,\n renderPopover: null,\n containerEl: null,\n },\n },\n static: {\n Actions,\n },\n create() {\n const app = this;\n app.actions = ModalMethods({\n app,\n constructor: Actions,\n defaultSelector: '.actions-modal.modal-in',\n });\n },\n clicks: {\n '.actions-open': function openActions($clickedEl, data = {}) {\n const app = this;\n app.actions.open(data.actions, data.animate, $clickedEl);\n },\n '.actions-close': function closeActions($clickedEl, data = {}) {\n const app = this;\n app.actions.close(data.actions, data.animate, $clickedEl);\n },\n },\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, now, getTranslate } from '../../shared/utils.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport Modal from '../modal/modal-class.js';\n\nclass Sheet extends Modal {\n constructor(app, params) {\n const extendedParams = extend({ on: {} }, app.params.sheet, params);\n\n // Extends with open/close Modal methods;\n super(app, extendedParams);\n\n const sheet = this;\n const window = getWindow();\n const document = getDocument();\n const support = getSupport();\n const device = getDevice();\n\n sheet.params = extendedParams;\n if (typeof sheet.params.backdrop === 'undefined') {\n sheet.params.backdrop = app.theme !== 'ios';\n }\n\n // Find Element\n let $el;\n if (!sheet.params.el) {\n $el = $(sheet.params.content)\n .filter((node) => node.nodeType === 1)\n .eq(0);\n } else {\n $el = $(sheet.params.el).eq(0);\n }\n\n if ($el && $el.length > 0 && $el[0].f7Modal) {\n return $el[0].f7Modal;\n }\n\n if ($el.length === 0) {\n return sheet.destroy();\n }\n let $backdropEl;\n\n if (sheet.params.backdrop && sheet.params.backdropEl) {\n $backdropEl = $(sheet.params.backdropEl);\n } else if (sheet.params.backdrop) {\n if (sheet.params.backdropUnique) {\n $backdropEl = $('<div class=\"sheet-backdrop sheet-backdrop-unique\"></div>');\n sheet.$containerEl.append($backdropEl);\n } else {\n $backdropEl = sheet.$containerEl.children('.sheet-backdrop');\n }\n if ($backdropEl.length === 0) {\n $backdropEl = $('<div class=\"sheet-backdrop\"></div>');\n sheet.$containerEl.append($backdropEl);\n }\n }\n\n extend(sheet, {\n app,\n push: $el.hasClass('sheet-modal-push') || sheet.params.push,\n $el,\n el: $el[0],\n $backdropEl,\n backdropEl: $backdropEl && $backdropEl[0],\n type: 'sheet',\n $htmlEl: $('html'),\n });\n\n if (sheet.params.push) {\n $el.addClass('sheet-modal-push');\n }\n\n let $pageContentEl;\n function scrollToElementOnOpen() {\n const $scrollEl = $(sheet.params.scrollToEl).eq(0);\n if ($scrollEl.length === 0) return;\n $pageContentEl = $scrollEl.parents('.page-content');\n if ($pageContentEl.length === 0) return;\n\n const paddingTop = parseInt($pageContentEl.css('padding-top'), 10);\n const paddingBottom = parseInt($pageContentEl.css('padding-bottom'), 10);\n const pageHeight = $pageContentEl[0].offsetHeight - paddingTop - $el.height();\n const pageScrollHeight = $pageContentEl[0].scrollHeight - paddingTop - $el.height();\n const pageScroll = $pageContentEl.scrollTop();\n\n let newPaddingBottom;\n\n const scrollElTop = $scrollEl.offset().top - paddingTop + $scrollEl[0].offsetHeight;\n if (scrollElTop > pageHeight) {\n const scrollTop = pageScroll + scrollElTop - pageHeight;\n if (scrollTop + pageHeight > pageScrollHeight) {\n newPaddingBottom = scrollTop + pageHeight - pageScrollHeight + paddingBottom;\n if (pageHeight === pageScrollHeight) {\n newPaddingBottom = $el.height();\n }\n $pageContentEl.css({\n 'padding-bottom': `${newPaddingBottom}px`,\n });\n }\n $pageContentEl.scrollTop(scrollTop, 300);\n }\n }\n\n function scrollToElementOnClose() {\n if ($pageContentEl && $pageContentEl.length > 0) {\n $pageContentEl.css({\n 'padding-bottom': '',\n });\n }\n }\n function handleClick(e) {\n const target = e.target;\n const $target = $(target);\n const keyboardOpened =\n !device.desktop &&\n device.cordova &&\n ((window.Keyboard && window.Keyboard.isVisible) ||\n (window.cordova.plugins &&\n window.cordova.plugins.Keyboard &&\n window.cordova.plugins.Keyboard.isVisible));\n if (keyboardOpened) return;\n if ($target.closest(sheet.el).length === 0) {\n if (\n sheet.params.closeByBackdropClick &&\n sheet.params.backdrop &&\n sheet.backdropEl &&\n sheet.backdropEl === target\n ) {\n sheet.close();\n } else if (sheet.params.closeByOutsideClick) {\n sheet.close();\n }\n }\n }\n\n function onKeyDown(e) {\n const keyCode = e.keyCode;\n if (keyCode === 27 && sheet.params.closeOnEscape) {\n sheet.close();\n }\n }\n\n let pushOffset;\n\n function pushViewScale(offset) {\n return (app.height - offset * 2) / app.height;\n }\n\n const useBreakpoints = sheet.params.breakpoints && sheet.params.breakpoints.length > 0;\n let isTouched = false;\n let startTouch;\n let currentTouch;\n let isScrolling;\n let touchStartTime;\n let touchesDiff;\n let isMoved = false;\n let isTopSheetModal;\n let swipeStepTranslate;\n let startTranslate;\n let currentTranslate;\n let sheetElOffsetHeight;\n let minTranslate;\n let maxTranslate;\n let $pushViewEl;\n let pushBorderRadius;\n let sheetPageContentEl;\n let sheetPageContentScrollTop;\n let sheetPageContentScrollHeight;\n let sheetPageContentOffsetHeight;\n let breakpointsTranslate = [];\n let currentBreakpointIndex;\n let backdropBreakpointSet = true;\n\n function handleTouchStart(e) {\n if (isTouched || !(sheet.params.swipeToClose || sheet.params.swipeToStep) || !e.isTrusted)\n return;\n if (\n sheet.params.swipeHandler &&\n $(e.target).closest(sheet.params.swipeHandler).length === 0\n ) {\n return;\n }\n if ($(e.target).closest('.sortable-handler').length > 0) return;\n\n isTouched = true;\n isMoved = false;\n startTouch = {\n x: e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX,\n y: e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY,\n };\n touchStartTime = now();\n isScrolling = undefined;\n isTopSheetModal = $el.hasClass('sheet-modal-top');\n if (!sheet.params.swipeHandler && e.type === 'touchstart') {\n sheetPageContentEl = $(e.target).closest('.page-content')[0];\n }\n }\n function handleTouchMove(e) {\n if (!isTouched || !e.isTrusted) return;\n currentTouch = {\n x: e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX,\n y: e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY,\n };\n\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(\n isScrolling ||\n Math.abs(currentTouch.x - startTouch.x) > Math.abs(currentTouch.y - startTouch.y)\n );\n }\n if (isScrolling) {\n isTouched = false;\n isMoved = false;\n return;\n }\n\n touchesDiff = startTouch.y - currentTouch.y;\n\n const direction = touchesDiff < 0 ? 'to-bottom' : 'to-top';\n\n if (!isMoved) {\n if (sheetPageContentEl && !$el.hasClass('modal-in-swipe-step')) {\n sheetPageContentScrollTop = sheetPageContentEl.scrollTop;\n sheetPageContentScrollHeight = sheetPageContentEl.scrollHeight;\n sheetPageContentOffsetHeight = sheetPageContentEl.offsetHeight;\n if (\n !(sheetPageContentScrollHeight === sheetPageContentOffsetHeight) &&\n !(direction === 'to-bottom' && sheetPageContentScrollTop === 0) &&\n !(\n direction === 'to-top' &&\n sheetPageContentScrollTop ===\n sheetPageContentScrollHeight - sheetPageContentOffsetHeight\n )\n ) {\n $el.transform('');\n isTouched = false;\n isMoved = false;\n return;\n }\n }\n if (sheet.push && pushOffset) {\n $pushViewEl = app.$el.children('.view, .views');\n }\n sheetElOffsetHeight = $el[0].offsetHeight;\n startTranslate = getTranslate($el[0], 'y');\n if (isTopSheetModal) {\n minTranslate = sheet.params.swipeToClose ? -sheetElOffsetHeight : -swipeStepTranslate;\n maxTranslate = 0;\n } else {\n minTranslate = 0;\n maxTranslate = sheet.params.swipeToClose\n ? sheetElOffsetHeight\n : useBreakpoints\n ? breakpointsTranslate[0]\n : swipeStepTranslate;\n }\n isMoved = true;\n }\n currentTranslate = startTranslate - touchesDiff;\n currentTranslate = Math.min(Math.max(currentTranslate, minTranslate), maxTranslate);\n e.preventDefault();\n if (useBreakpoints) {\n let progress = isTopSheetModal\n ? 1 + currentTranslate / sheetElOffsetHeight\n : 1 - currentTranslate / sheetElOffsetHeight;\n progress = Math.abs(progress);\n progress = Math.min(Math.max(progress, 0), 1);\n // eslint-disable-next-line\n setBackdropBreakpoint(progress);\n // eslint-disable-next-line\n setPushBreakpoint(progress);\n }\n if (sheet.push && pushOffset && !useBreakpoints) {\n let progress = (currentTranslate - startTranslate) / sheetElOffsetHeight;\n if (sheet.params.swipeToStep) {\n if (isTopSheetModal) {\n progress = currentTranslate / swipeStepTranslate;\n } else {\n progress = 1 - (swipeStepTranslate - currentTranslate) / swipeStepTranslate;\n }\n }\n progress = Math.abs(progress);\n progress = Math.min(Math.max(progress, 0), 1);\n const pushProgress = 1 - progress;\n const scale = 1 - (1 - pushViewScale(pushOffset)) * pushProgress;\n $pushViewEl.transition(0).forEach((el) => {\n el.style.setProperty('transform', `translate3d(0,0,0) scale(${scale})`, 'important');\n });\n if (sheet.params.swipeToStep) {\n $pushViewEl.css('border-radius', `${pushBorderRadius * pushProgress}px`);\n }\n }\n $el.transition(0).transform(`translate3d(0,${currentTranslate}px,0)`);\n if (sheet.params.swipeToStep) {\n let progress;\n if (isTopSheetModal) {\n progress = 1 - currentTranslate / swipeStepTranslate;\n } else {\n progress = (swipeStepTranslate - currentTranslate) / swipeStepTranslate;\n }\n progress = Math.min(Math.max(progress, 0), 1);\n $el.trigger('sheet:stepprogress', progress);\n sheet.emit('local::stepProgress sheetStepProgress', sheet, progress);\n }\n }\n function handleTouchEnd() {\n isTouched = false;\n if (!isMoved) {\n return;\n }\n isMoved = false;\n $el.transform('').transition('');\n if (sheet.push && pushOffset) {\n $pushViewEl.transition('');\n if (!useBreakpoints) {\n $pushViewEl.transform('');\n $pushViewEl.css('border-radius', '');\n }\n }\n\n const direction = touchesDiff < 0 ? 'to-bottom' : 'to-top';\n\n const diff = Math.abs(touchesDiff);\n if (diff === 0 || currentTranslate === startTranslate) return;\n\n const timeDiff = new Date().getTime() - touchStartTime;\n\n if (!sheet.params.swipeToStep && !useBreakpoints) {\n if (direction !== (isTopSheetModal ? 'to-top' : 'to-bottom')) {\n return;\n }\n if ((timeDiff < 300 && diff > 20) || (timeDiff >= 300 && diff > sheetElOffsetHeight / 2)) {\n sheet.close();\n }\n return;\n }\n\n const openDirection = isTopSheetModal ? 'to-bottom' : 'to-top';\n const closeDirection = isTopSheetModal ? 'to-top' : 'to-bottom';\n const absCurrentTranslate = Math.abs(currentTranslate);\n const absSwipeStepTranslate = Math.abs(swipeStepTranslate);\n if (timeDiff < 300 && diff > 10 && useBreakpoints) {\n // SHORT SWIPES BREAKPOINTS\n if (direction === openDirection && typeof currentBreakpointIndex !== 'undefined') {\n if (currentBreakpointIndex === params.breakpoints.length - 1) {\n // open\n sheet.setBreakpoint(1);\n } else {\n // move to next breakpoint\n currentBreakpointIndex = Math.min(\n breakpointsTranslate.length - 1,\n currentBreakpointIndex + 1,\n );\n sheet.setBreakpoint(params.breakpoints[currentBreakpointIndex]);\n }\n }\n if (direction === closeDirection) {\n if (currentBreakpointIndex === 0) {\n // close\n sheet.close();\n } else {\n // move to prev breakpoint\n if (typeof currentBreakpointIndex === 'undefined') {\n currentBreakpointIndex = params.breakpoints.length - 1;\n } else {\n currentBreakpointIndex = Math.max(0, currentBreakpointIndex - 1);\n }\n sheet.setBreakpoint(params.breakpoints[currentBreakpointIndex]);\n }\n }\n } else if (timeDiff < 300 && diff > 10) {\n // SHORT SWIPES SWIPE STEP\n if (direction === openDirection && absCurrentTranslate < absSwipeStepTranslate) {\n // open step\n $el.removeClass('modal-in-swipe-step');\n $el.trigger('sheet:stepprogress', 1);\n sheet.emit('local::stepProgress sheetStepProgress', sheet, 1);\n sheet.emit('local::_swipeStep', false);\n $el.trigger('sheet:stepopen');\n sheet.emit('local::stepOpen sheetStepOpen', sheet);\n if (sheet.push && pushOffset) {\n sheet.$htmlEl[0].style.setProperty('--f7-sheet-push-scale', pushViewScale(pushOffset));\n $pushViewEl.css('border-radius', '');\n }\n }\n if (direction === closeDirection && absCurrentTranslate > absSwipeStepTranslate) {\n // close sheet\n if (sheet.params.swipeToClose) {\n sheet.close();\n } else {\n // close step\n $el.addClass('modal-in-swipe-step');\n $el.trigger('sheet:stepprogress', 0);\n sheet.emit('local::stepProgress sheetStepProgress', sheet, 0);\n sheet.emit('local::_swipeStep', true);\n $el.trigger('sheet:stepclose');\n sheet.emit('local::stepClose sheetStepClose', sheet);\n if (sheet.push && pushOffset) {\n sheet.$htmlEl[0].style.removeProperty('--f7-sheet-push-scale');\n $pushViewEl.css('border-radius', '0px');\n }\n }\n }\n if (direction === closeDirection && absCurrentTranslate <= absSwipeStepTranslate) {\n // close step\n $el.addClass('modal-in-swipe-step');\n $el.trigger('sheet:stepprogress', 0);\n sheet.emit('local::stepProgress sheetStepProgress', sheet, 0);\n sheet.emit('local::_swipeStep', true);\n $el.trigger('sheet:stepclose');\n sheet.emit('local::stepClose sheetStepClose', sheet);\n if (sheet.push && pushOffset) {\n sheet.$htmlEl[0].style.removeProperty('--f7-sheet-push-scale');\n $pushViewEl.css('border-radius', '0px');\n }\n }\n return;\n }\n if (timeDiff >= 300 && useBreakpoints) {\n // LONG SWIPES BREAKPOINTS\n const allBreakpoints = [sheetElOffsetHeight, ...breakpointsTranslate, 0];\n const closestTranslate = allBreakpoints.reduce((prev, curr) => {\n return Math.abs(curr - currentTranslate) < Math.abs(prev - currentTranslate)\n ? curr\n : prev;\n });\n const closestIndex = allBreakpoints.indexOf(closestTranslate);\n if (closestTranslate === 0) {\n // open\n sheet.setBreakpoint(1);\n } else if (closestIndex === 0) {\n // close\n sheet.close();\n } else {\n // set bp\n currentBreakpointIndex = closestIndex - 1;\n sheet.setBreakpoint(params.breakpoints[currentBreakpointIndex]);\n }\n } else if (timeDiff >= 300) {\n // LONG SWIPES SWIPE STEP\n const stepOpened = !$el.hasClass('modal-in-swipe-step');\n if (!stepOpened) {\n if (absCurrentTranslate < absSwipeStepTranslate / 2) {\n // open step\n $el.removeClass('modal-in-swipe-step');\n $el.trigger('sheet:stepprogress', 1);\n sheet.emit('local::stepProgress sheetStepProgress', sheet, 1);\n sheet.emit('local::_swipeStep', false);\n $el.trigger('sheet:stepopen');\n sheet.emit('local::stepOpen sheetStepOpen', sheet);\n if (sheet.push && pushOffset) {\n sheet.$htmlEl[0].style.setProperty(\n '--f7-sheet-push-scale',\n pushViewScale(pushOffset),\n );\n $pushViewEl.css('border-radius', '');\n }\n } else if (\n absCurrentTranslate - absSwipeStepTranslate >\n (sheetElOffsetHeight - absSwipeStepTranslate) / 2\n ) {\n // close sheet\n if (sheet.params.swipeToClose) sheet.close();\n }\n } else if (stepOpened) {\n if (\n absCurrentTranslate >\n absSwipeStepTranslate + (sheetElOffsetHeight - absSwipeStepTranslate) / 2\n ) {\n // close sheet\n if (sheet.params.swipeToClose) sheet.close();\n } else if (absCurrentTranslate > absSwipeStepTranslate / 2) {\n // close step\n $el.addClass('modal-in-swipe-step');\n $el.trigger('sheet:stepprogress', 0);\n sheet.emit('local::stepProgress sheetStepProgress', sheet, 0);\n sheet.emit('local::_swipeStep', true);\n $el.trigger('sheet:stepclose');\n sheet.emit('local::stepClose sheetStepClose', sheet);\n if (sheet.push && pushOffset) {\n sheet.$htmlEl[0].style.removeProperty('--f7-sheet-push-scale');\n $pushViewEl.css('border-radius', '0px');\n }\n }\n }\n }\n }\n\n const setPushBreakpoint = (breakpoint) => {\n const { pushBreakpoint } = params;\n if (\n pushBreakpoint === null ||\n typeof pushBreakpoint === 'undefined' ||\n !sheet.push ||\n !pushOffset\n )\n return;\n if (breakpoint >= pushBreakpoint) {\n sheet.$htmlEl\n .addClass('with-modal-sheet-push')\n .removeClass('with-modal-sheet-push-closing');\n $pushViewEl.transition('').forEach((el) => {\n el.style.setProperty(\n 'transform',\n `translate3d(0,0,0) scale(${pushViewScale(pushOffset)})`,\n 'important',\n );\n });\n $pushViewEl.css('border-radius', `${pushBorderRadius * 1}px`);\n } else {\n const pushBreakpoints = [0, ...params.breakpoints, 1];\n const pushTransparentBreakpoint =\n pushBreakpoints[pushBreakpoints.indexOf(pushBreakpoint) - 1];\n if (breakpoint <= pushTransparentBreakpoint) {\n $pushViewEl.transition('').css('transform', '');\n $pushViewEl.css('border-radius', '');\n sheet.$htmlEl.removeClass('with-modal-sheet-push');\n if (breakpoint === pushTransparentBreakpoint) {\n sheet.$htmlEl.addClass('with-modal-sheet-push-closing');\n }\n } else {\n const progress =\n (breakpoint - pushTransparentBreakpoint) / (pushBreakpoint - pushTransparentBreakpoint);\n sheet.$htmlEl\n .addClass('with-modal-sheet-push')\n .removeClass('with-modal-sheet-push-closing');\n $pushViewEl.transition(0).forEach((el) => {\n el.style.setProperty(\n 'transform',\n `translate3d(0,0,0) scale(${1 - (1 - pushViewScale(pushOffset)) * progress})`,\n 'important',\n );\n });\n $pushViewEl.css('border-radius', `${pushBorderRadius * progress}px`);\n }\n }\n };\n const setBackdropBreakpoint = (breakpoint) => {\n const { backdrop, backdropBreakpoint } = params;\n if (!backdropBreakpoint || !backdrop || !$backdropEl.length) return;\n\n if (breakpoint >= backdropBreakpoint) {\n if (!backdropBreakpointSet) {\n $backdropEl.transition('').css({ opacity: '', pointerEvents: '' });\n }\n backdropBreakpointSet = true;\n } else {\n const backdropBreakpoints = [0, ...params.breakpoints, 1];\n const backdropTransparentBreakpoint =\n backdropBreakpoints[backdropBreakpoints.indexOf(backdropBreakpoint) - 1];\n if (breakpoint <= backdropTransparentBreakpoint) {\n if (backdropBreakpointSet) {\n $backdropEl.transition('').css({ opacity: 0, pointerEvents: 'none' });\n }\n backdropBreakpointSet = false;\n } else {\n const progress =\n (breakpoint - backdropTransparentBreakpoint) /\n (backdropBreakpoint - backdropTransparentBreakpoint);\n $backdropEl.transition(0).css({ opacity: progress, pointerEvents: 'auto' });\n }\n }\n };\n\n sheet.calcBreakpoints = () => {\n if (!useBreakpoints) {\n return;\n }\n const fullSize = $el[0].offsetHeight;\n // eslint-disable-next-line\n const isTopSheetModal = $el.hasClass('sheet-modal-top');\n breakpointsTranslate = [];\n sheet.params.breakpoints.forEach((ratio) => {\n breakpointsTranslate.push((fullSize - fullSize * ratio) * (isTopSheetModal ? -1 : 1));\n });\n };\n\n sheet.setBreakpoint = (value) => {\n if (!useBreakpoints) {\n return sheet;\n }\n if (value === 1) {\n // open\n if (!sheet.opened) {\n sheet.open();\n }\n $el.removeClass('modal-in-breakpoint');\n currentBreakpointIndex = undefined;\n setBackdropBreakpoint(value);\n setPushBreakpoint(value);\n $el.trigger('sheet:breakpoint', value);\n sheet.emit('local::breakpoint sheetBreakpoint', sheet, value);\n } else if (value === 0) {\n // close\n $el.trigger('sheet:breakpoint', value);\n sheet.emit('local::breakpoint sheetBreakpoint', sheet, value);\n sheet.close();\n } else {\n const index = params.breakpoints.indexOf(value);\n if (index < 0) return sheet;\n if (!sheet.opened) {\n sheet.open();\n }\n setBackdropBreakpoint(value);\n setPushBreakpoint(value);\n $el.trigger('sheet:breakpoint', value);\n sheet.emit('local::breakpoint sheetBreakpoint', sheet, value);\n currentBreakpointIndex = index;\n $el[0].style.setProperty('--f7-sheet-breakpoint', `${breakpointsTranslate[index]}px`);\n $el.addClass('modal-in-breakpoint');\n }\n return sheet;\n };\n\n const setBreakpointsOnResize = () => {\n sheet.calcBreakpoints();\n if (typeof currentBreakpointIndex !== 'undefined') {\n sheet.setBreakpoint(params.breakpoints[currentBreakpointIndex]);\n }\n };\n\n sheet.setSwipeStep = function setSwipeStep(byResize = true) {\n const $swipeStepEl = $el.find('.sheet-modal-swipe-step').eq(0);\n if (!$swipeStepEl.length) return;\n\n // eslint-disable-next-line\n if ($el.hasClass('sheet-modal-top')) {\n swipeStepTranslate = -(\n $swipeStepEl.offset().top -\n $el.offset().top +\n $swipeStepEl[0].offsetHeight\n );\n } else {\n swipeStepTranslate =\n $el[0].offsetHeight -\n ($swipeStepEl.offset().top - $el.offset().top + $swipeStepEl[0].offsetHeight);\n }\n $el[0].style.setProperty('--f7-sheet-swipe-step', `${swipeStepTranslate}px`);\n if (!byResize) {\n $el.addClass('modal-in-swipe-step');\n sheet.emit('local::_swipeStep', true);\n }\n };\n\n function onResize() {\n if (useBreakpoints) {\n setBreakpointsOnResize();\n } else {\n sheet.setSwipeStep(true);\n }\n }\n\n const passive = support.passiveListener ? { passive: true } : false;\n if (sheet.params.swipeToClose || sheet.params.swipeToStep || useBreakpoints) {\n $el.on(app.touchEvents.start, handleTouchStart, passive);\n app.on('touchmove', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n sheet.once('sheetDestroy', () => {\n $el.off(app.touchEvents.start, handleTouchStart, passive);\n app.off('touchmove', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n });\n }\n\n sheet.on('open', () => {\n if (sheet.params.closeOnEscape) {\n $(document).on('keydown', onKeyDown);\n }\n $el.prevAll('.popup.modal-in').addClass('popup-behind');\n app.on('resize', onResize);\n if (sheet.params.scrollToEl) {\n scrollToElementOnOpen();\n }\n\n if (sheet.push) {\n pushOffset = parseInt($el.css('--f7-sheet-push-offset'), 10);\n if (Number.isNaN(pushOffset)) pushOffset = 0;\n if (!pushOffset) pushOffset = app.theme === 'ios' ? 44 : 48;\n sheet.$htmlEl[0].style.setProperty('--f7-sheet-push-offset', `${pushOffset}px`);\n $el.addClass('sheet-modal-push');\n if (!useBreakpoints) {\n sheet.$htmlEl.addClass('with-modal-sheet-push');\n }\n if (!sheet.params.swipeToStep && !useBreakpoints) {\n sheet.$htmlEl[0].style.setProperty('--f7-sheet-push-scale', pushViewScale(pushOffset));\n } else {\n $pushViewEl = app.$el.children('.view, .views');\n pushBorderRadius = app.theme === 'ios' ? 10 : 16;\n $pushViewEl.css('border-radius', '0px');\n }\n }\n\n if (useBreakpoints) {\n sheet.calcBreakpoints();\n sheet.setBreakpoint(params.breakpoints[0]);\n } else if (sheet.params.swipeToStep) {\n sheet.setSwipeStep(false);\n }\n });\n sheet.on('opened', () => {\n if (sheet.params.closeByOutsideClick || sheet.params.closeByBackdropClick) {\n app.on('click', handleClick);\n }\n });\n sheet.on('close', () => {\n currentBreakpointIndex = undefined;\n if (sheet.params.swipeToStep || useBreakpoints) {\n $el.removeClass('modal-in-swipe-step modal-in-breakpoint');\n sheet.emit('local::_swipeStep', false);\n }\n app.off('resize', onResize);\n if (sheet.params.closeOnEscape) {\n $(document).off('keydown', onKeyDown);\n }\n if (sheet.params.scrollToEl) {\n scrollToElementOnClose();\n }\n if (sheet.params.closeByOutsideClick || sheet.params.closeByBackdropClick) {\n app.off('click', handleClick);\n }\n $el.prevAll('.popup.modal-in').eq(0).removeClass('popup-behind');\n if (sheet.push && pushOffset) {\n sheet.$htmlEl.removeClass('with-modal-sheet-push');\n sheet.$htmlEl.addClass('with-modal-sheet-push-closing');\n if ($pushViewEl) {\n $pushViewEl.transform('');\n $pushViewEl.css('border-radius', '');\n }\n }\n });\n sheet.on('closed', () => {\n if (sheet.push && pushOffset) {\n sheet.$htmlEl.removeClass('with-modal-sheet-push-closing');\n sheet.$htmlEl[0].style.removeProperty('--f7-sheet-push-scale');\n sheet.$htmlEl[0].style.removeProperty('--f7-sheet-push-offset');\n }\n });\n\n sheet.stepOpen = function stepOpen() {\n $el.removeClass('modal-in-swipe-step');\n sheet.emit('local::_swipeStep', false);\n if (sheet.push) {\n if (!pushOffset) {\n pushOffset = parseInt($el.css('--f7-sheet-push-offset'), 10);\n if (Number.isNaN(pushOffset)) pushOffset = 0;\n }\n if (pushOffset) {\n sheet.$htmlEl[0].style.setProperty('--f7-sheet-push-scale', pushViewScale(pushOffset));\n }\n }\n };\n sheet.stepClose = function stepClose() {\n $el.addClass('modal-in-swipe-step');\n sheet.emit('local::_swipeStep', true);\n if (sheet.push) {\n sheet.$htmlEl[0].style.removeProperty('--f7-sheet-push-scale');\n }\n };\n sheet.stepToggle = function stepToggle() {\n $el.toggleClass('modal-in-swipe-step');\n sheet.emit('local::_swipeStep', $el.hasClass('modal-in-swipe-step'));\n };\n\n $el[0].f7Modal = sheet;\n\n return sheet;\n }\n}\nexport default Sheet;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Sheet from './sheet-class.js';\nimport ModalMethods from '../../shared/modal-methods.js';\n\nexport default {\n name: 'sheet',\n params: {\n sheet: {\n push: false,\n backdrop: undefined,\n backdropEl: undefined,\n backdropUnique: false,\n closeByBackdropClick: true,\n closeByOutsideClick: false,\n closeOnEscape: false,\n swipeToClose: false,\n swipeToStep: false,\n breakpoints: [],\n backdropBreakpoint: 0,\n pushBreakpoint: 0,\n swipeHandler: null,\n containerEl: null,\n },\n },\n static: {\n Sheet,\n },\n create() {\n const app = this;\n app.sheet = extend(\n {},\n ModalMethods({\n app,\n constructor: Sheet,\n defaultSelector: '.sheet-modal.modal-in',\n }),\n {\n stepOpen(sheet) {\n const sheetInstance = app.sheet.get(sheet);\n if (sheetInstance && sheetInstance.stepOpen) return sheetInstance.stepOpen();\n return undefined;\n },\n stepClose(sheet) {\n const sheetInstance = app.sheet.get(sheet);\n if (sheetInstance && sheetInstance.stepClose) return sheetInstance.stepClose();\n return undefined;\n },\n stepToggle(sheet) {\n const sheetInstance = app.sheet.get(sheet);\n if (sheetInstance && sheetInstance.stepToggle) return sheetInstance.stepToggle();\n return undefined;\n },\n setBreakpoint(sheet, breakpoint) {\n const sheetInstance = app.sheet.get(sheet);\n if (sheetInstance && sheetInstance.setBreakpoint)\n return sheetInstance.setBreakpoint(breakpoint);\n return undefined;\n },\n },\n );\n },\n clicks: {\n '.sheet-open': function openSheet($clickedEl, data = {}) {\n const app = this;\n if (\n $('.sheet-modal.modal-in').length > 0 &&\n data.sheet &&\n $(data.sheet)[0] !== $('.sheet-modal.modal-in')[0]\n ) {\n app.sheet.close('.sheet-modal.modal-in');\n }\n app.sheet.open(data.sheet, data.animate, $clickedEl);\n },\n '.sheet-close': function closeSheet($clickedEl, data = {}) {\n const app = this;\n app.sheet.close(data.sheet, data.animate, $clickedEl);\n },\n },\n};\n","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, nextTick } from '../../shared/utils.js';\nimport Modal from '../modal/modal-class.js';\n/** @jsx $jsx */\nimport $jsx from '../../shared/$jsx.js';\n\nclass Toast extends Modal {\n constructor(app, params) {\n const extendedParams = extend(\n {\n on: {},\n },\n app.params.toast,\n params,\n );\n\n // Extends with open/close Modal methods;\n super(app, extendedParams);\n\n const toast = this;\n const window = getWindow();\n\n toast.app = app;\n\n toast.params = extendedParams;\n\n const { closeButton, closeTimeout } = toast.params;\n\n let $el;\n if (!toast.params.el) {\n // Find Element\n const toastHtml = toast.render();\n\n $el = $(toastHtml);\n } else {\n $el = $(toast.params.el);\n }\n\n if ($el && $el.length > 0 && $el[0].f7Modal) {\n return $el[0].f7Modal;\n }\n\n if ($el.length === 0) {\n return toast.destroy();\n }\n\n extend(toast, {\n $el,\n el: $el[0],\n type: 'toast',\n });\n\n $el[0].f7Modal = toast;\n\n if (closeButton) {\n $el.find('.toast-button').on('click', () => {\n toast.emit('local::closeButtonClick toastCloseButtonClick', toast);\n toast.close();\n });\n\n toast.on('beforeDestroy', () => {\n $el.find('.toast-button').off('click');\n });\n }\n\n let timeoutId;\n toast.on('open', () => {\n $('.toast.modal-in').each((openedEl) => {\n const toastInstance = app.toast.get(openedEl);\n if (openedEl !== toast.el && toastInstance) {\n toastInstance.close();\n }\n });\n if (closeTimeout) {\n timeoutId = nextTick(() => {\n toast.close();\n }, closeTimeout);\n }\n });\n toast.on('close', () => {\n window.clearTimeout(timeoutId);\n });\n\n if (toast.params.destroyOnClose) {\n toast.once('closed', () => {\n setTimeout(() => {\n toast.destroy();\n }, 0);\n });\n }\n\n return toast;\n }\n\n render() {\n const toast = this;\n if (toast.params.render) return toast.params.render.call(toast, toast);\n const {\n position,\n horizontalPosition,\n cssClass,\n icon,\n text,\n closeButton,\n closeButtonColor,\n closeButtonText,\n } = toast.params;\n const horizontalClass =\n position === 'top' || position === 'bottom' ? `toast-horizontal-${horizontalPosition}` : '';\n return (\n <div\n class={`toast toast-${position} ${horizontalClass} ${cssClass || ''} ${\n icon ? 'toast-with-icon' : ''\n }`}\n >\n <div class=\"toast-content\">\n {icon && <div class=\"toast-icon\">{icon}</div>}\n <div class=\"toast-text\">{text}</div>\n {closeButton && !icon && (\n <a class={`toast-button button ${closeButtonColor ? `color-${closeButtonColor}` : ''}`}>\n {closeButtonText}\n </a>\n )}\n </div>\n </div>\n );\n }\n}\nexport default Toast;\n","import { extend } from '../../shared/utils.js';\nimport Toast from './toast-class.js';\nimport ModalMethods from '../../shared/modal-methods.js';\n\nexport default {\n name: 'toast',\n static: {\n Toast,\n },\n create() {\n const app = this;\n app.toast = extend(\n {},\n ModalMethods({\n app,\n constructor: Toast,\n defaultSelector: '.toast.modal-in',\n }),\n {\n // Shortcuts\n show(params) {\n extend(params, {\n destroyOnClose: true,\n });\n return new Toast(app, params).open();\n },\n },\n );\n },\n params: {\n toast: {\n icon: null,\n text: null,\n position: 'bottom',\n horizontalPosition: 'left',\n closeButton: false,\n closeButtonColor: null,\n closeButtonText: 'Ok',\n closeTimeout: null,\n cssClass: null,\n render: null,\n containerEl: null,\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { bindMethods, iosPreloaderContent, mdPreloaderContent } from '../../shared/utils.js';\n\nconst Preloader = {\n init(el) {\n const app = this;\n const preloaders = {\n iosPreloaderContent,\n mdPreloaderContent,\n };\n const $el = $(el);\n if (\n $el.length === 0 ||\n $el.children('.preloader-inner').length > 0 ||\n $el.children('.preloader-inner-line').length > 0\n )\n return;\n $el.append(preloaders[`${app.theme}PreloaderContent`]);\n },\n // Modal\n visible: false,\n show(color = 'white') {\n const app = this;\n if (Preloader.visible) return;\n const preloaders = {\n iosPreloaderContent,\n mdPreloaderContent,\n };\n const preloaderInner = preloaders[`${app.theme}PreloaderContent`] || '';\n $('html').addClass('with-modal-preloader');\n // prettier-ignore\n app.$el.append(`\n <div class=\"preloader-backdrop\"></div>\n <div class=\"preloader-modal\">\n <div class=\"preloader color-${color}\">${preloaderInner}</div>\n </div>\n `);\n Preloader.visible = true;\n },\n showIn(el, color = 'white') {\n const app = this;\n const preloaders = {\n iosPreloaderContent,\n mdPreloaderContent,\n };\n const preloaderInner = preloaders[`${app.theme}PreloaderContent`] || '';\n $(el || 'html').addClass('with-modal-preloader');\n // prettier-ignore\n $(el || app.$el).append(`\n <div class=\"preloader-backdrop\"></div>\n <div class=\"preloader-modal\">\n <div class=\"preloader color-${color}\">${preloaderInner}</div>\n </div>\n `);\n },\n hide() {\n const app = this;\n if (!Preloader.visible) return;\n $('html').removeClass('with-modal-preloader');\n app.$el.find('.preloader-backdrop, .preloader-modal').remove();\n Preloader.visible = false;\n },\n hideIn(el) {\n const app = this;\n $(el || 'html').removeClass('with-modal-preloader');\n $(el || app.$el)\n .find('.preloader-backdrop, .preloader-modal')\n .remove();\n },\n};\nexport default {\n name: 'preloader',\n create() {\n const app = this;\n bindMethods(app, {\n preloader: Preloader,\n });\n },\n on: {\n photoBrowserOpen(pb) {\n const app = this;\n pb.$el.find('.preloader').each((preloaderEl) => {\n app.preloader.init(preloaderEl);\n });\n },\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('.preloader')\n .each((preloaderEl) => {\n app.preloader.init(preloaderEl);\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.preloader').each((preloaderEl) => {\n app.preloader.init(preloaderEl);\n });\n },\n },\n vnode: {\n preloader: {\n insert(vnode) {\n const app = this;\n const preloaderEl = vnode.elm;\n app.preloader.init(preloaderEl);\n },\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { bindMethods } from '../../shared/utils.js';\n\nconst Progressbar = {\n set(...args) {\n const app = this;\n let [el, progress, duration] = args;\n if (typeof args[0] === 'number') {\n [progress, duration] = args;\n el = app.$el;\n }\n if (typeof progress === 'undefined' || progress === null) return el;\n if (!progress) progress = 0;\n\n const $el = $(el || app.$el);\n if ($el.length === 0) {\n return el;\n }\n const progressNormalized = Math.min(Math.max(progress, 0), 100);\n let $progressbarEl;\n if ($el.hasClass('progressbar')) $progressbarEl = $el.eq(0);\n else {\n $progressbarEl = $el.children('.progressbar');\n }\n if ($progressbarEl.length === 0 || $progressbarEl.hasClass('progressbar-infinite')) {\n return $progressbarEl;\n }\n let $progressbarLine = $progressbarEl.children('span');\n if ($progressbarLine.length === 0) {\n $progressbarLine = $('<span></span>');\n $progressbarEl.append($progressbarLine);\n }\n $progressbarLine\n .transition(typeof duration !== 'undefined' ? duration : '')\n .transform(`translate3d(${(-100 + progressNormalized) * (app.rtl ? -1 : 1)}%,0,0)`);\n\n return $progressbarEl[0];\n },\n show(...args) {\n const app = this;\n\n // '.page', 50, 'multi'\n let [el, progress, color] = args;\n let type = 'determined';\n\n if (args.length === 2) {\n if (\n (typeof args[0] === 'string' || typeof args[0] === 'object') &&\n typeof args[1] === 'string'\n ) {\n // '.page', 'multi'\n [el, color, progress] = args;\n type = 'infinite';\n } else if (typeof args[0] === 'number' && typeof args[1] === 'string') {\n // 50, 'multi'\n [progress, color] = args;\n el = app.$el;\n }\n } else if (args.length === 1) {\n if (typeof args[0] === 'number') {\n el = app.$el;\n progress = args[0];\n } else if (typeof args[0] === 'string') {\n type = 'infinite';\n el = app.$el;\n color = args[0];\n }\n } else if (args.length === 0) {\n type = 'infinite';\n el = app.$el;\n }\n\n const $el = $(el);\n if ($el.length === 0) return undefined;\n\n let $progressbarEl;\n if ($el.hasClass('progressbar') || $el.hasClass('progressbar-infinite')) {\n $progressbarEl = $el;\n } else {\n $progressbarEl = $el.children(\n '.progressbar:not(.progressbar-out), .progressbar-infinite:not(.progressbar-out)',\n );\n if ($progressbarEl.length === 0) {\n $progressbarEl = $(`\n <span class=\"progressbar${type === 'infinite' ? '-infinite' : ''}${\n color ? ` color-${color}` : ''\n } progressbar-in\">\n ${type === 'infinite' ? '' : '<span></span>'}\n </span>`);\n $el.append($progressbarEl);\n }\n }\n\n if (typeof progress !== 'undefined') {\n app.progressbar.set($progressbarEl, progress);\n }\n\n return $progressbarEl[0];\n },\n hide(el, removeAfterHide = true) {\n const app = this;\n const $el = $(el || app.$el);\n if ($el.length === 0) return undefined;\n let $progressbarEl;\n if ($el.hasClass('progressbar') || $el.hasClass('progressbar-infinite')) {\n $progressbarEl = $el;\n } else {\n $progressbarEl = $el.children('.progressbar, .progressbar-infinite');\n }\n if (\n $progressbarEl.length === 0 ||\n !$progressbarEl.hasClass('progressbar-in') ||\n $progressbarEl.hasClass('progressbar-out')\n ) {\n return $progressbarEl;\n }\n $progressbarEl\n .removeClass('progressbar-in')\n .addClass('progressbar-out')\n .animationEnd(() => {\n if (removeAfterHide) {\n $progressbarEl.remove();\n }\n });\n return $progressbarEl;\n },\n};\n\nexport default {\n name: 'progressbar',\n create() {\n const app = this;\n bindMethods(app, {\n progressbar: Progressbar,\n });\n },\n on: {\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('.progressbar')\n .each((progressbarEl) => {\n const $progressbarEl = $(progressbarEl);\n app.progressbar.set($progressbarEl, $progressbarEl.attr('data-progress'));\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.progressbar').each((progressbarEl) => {\n const $progressbarEl = $(progressbarEl);\n app.progressbar.set($progressbarEl, $progressbarEl.attr('data-progress'));\n });\n },\n },\n vnode: {\n progressbar: {\n insert(vnode) {\n const app = this;\n const el = vnode.elm;\n app.progressbar.set(el, el.getAttribute('data-progress'));\n },\n update(vnode) {\n const app = this;\n const el = vnode.elm;\n app.progressbar.set(el, el.getAttribute('data-progress'));\n },\n },\n },\n};\n","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { bindMethods } from '../../shared/utils.js';\nimport { getSupport } from '../../shared/get-support.js';\n\nconst Sortable = {\n init() {\n const app = this;\n const document = getDocument();\n let isTouched;\n let isMoved;\n let touchStartY;\n let touchesDiff;\n let $sortingEl;\n let $sortingItems;\n let $sortableContainer;\n let sortingElHeight;\n let minTop;\n let maxTop;\n let $insertAfterEl;\n let $insertBeforeEl;\n let indexFrom;\n let $pageEl;\n let $pageContentEl;\n let pageHeight;\n let pageOffset;\n let sortingElOffsetLocal;\n let sortingElOffsetTop;\n let initialScrollTop;\n let wasTapHold;\n\n function handleTouchStart(e, isTapHold) {\n isMoved = false;\n isTouched = true;\n wasTapHold = false;\n touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n $sortingEl = $(e.target).closest('li').eq(0);\n indexFrom = $sortingEl.index();\n $sortableContainer = $sortingEl.parents('.sortable');\n const $listGroup = $sortingEl.parents('.list-group');\n if ($listGroup.length && $listGroup.parents($sortableContainer).length) {\n $sortableContainer = $listGroup;\n }\n $sortingItems = $sortableContainer\n .children('ul')\n .children('li:not(.disallow-sorting):not(.no-sorting)');\n if (app.panel) app.panel.allowOpen = false;\n if (app.swipeout) app.swipeout.allow = false;\n if (isTapHold) {\n $sortingEl.addClass('sorting');\n $sortableContainer.addClass('sortable-sorting');\n wasTapHold = true;\n }\n }\n function handleTouchMove(e) {\n if (!isTouched || !$sortingEl) return;\n const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (!isMoved) {\n $pageEl = $sortingEl.parents('.page');\n $pageContentEl = $sortingEl.parents('.page-content');\n const paddingTop = parseInt($pageContentEl.css('padding-top'), 10);\n const paddingBottom = parseInt($pageContentEl.css('padding-bottom'), 10);\n initialScrollTop = $pageContentEl[0].scrollTop;\n pageOffset = $pageEl.offset().top + paddingTop;\n pageHeight = $pageEl.height() - paddingTop - paddingBottom;\n $sortingEl.addClass('sorting');\n $sortableContainer.addClass('sortable-sorting');\n sortingElOffsetLocal = $sortingEl[0].offsetTop;\n minTop = $sortingEl[0].offsetTop;\n maxTop = $sortingEl.parent().height() - sortingElOffsetLocal - $sortingEl.height();\n sortingElHeight = $sortingEl[0].offsetHeight;\n sortingElOffsetTop = $sortingEl.offset().top;\n }\n isMoved = true;\n\n e.preventDefault();\n e.f7PreventSwipePanel = true;\n\n touchesDiff = pageY - touchStartY;\n\n const translateScrollOffset = $pageContentEl[0].scrollTop - initialScrollTop;\n const translate = Math.min(Math.max(touchesDiff + translateScrollOffset, -minTop), maxTop);\n $sortingEl.transform(`translate3d(0,${translate}px,0)`);\n\n const scrollAddition = 44;\n let allowScroll = true;\n if (touchesDiff + translateScrollOffset + scrollAddition < -minTop) {\n allowScroll = false;\n }\n if (touchesDiff + translateScrollOffset - scrollAddition > maxTop) {\n allowScroll = false;\n }\n\n $insertBeforeEl = undefined;\n $insertAfterEl = undefined;\n\n let scrollDiff;\n if (allowScroll) {\n if (\n sortingElOffsetTop + touchesDiff + sortingElHeight + scrollAddition >\n pageOffset + pageHeight\n ) {\n // To Bottom\n scrollDiff =\n sortingElOffsetTop +\n touchesDiff +\n sortingElHeight +\n scrollAddition -\n (pageOffset + pageHeight);\n }\n if (sortingElOffsetTop + touchesDiff < pageOffset + scrollAddition) {\n // To Top\n scrollDiff = sortingElOffsetTop + touchesDiff - pageOffset - scrollAddition;\n }\n if (scrollDiff) {\n $pageContentEl[0].scrollTop += scrollDiff;\n }\n }\n\n $sortingItems.each((el) => {\n const $currentEl = $(el);\n if ($currentEl[0] === $sortingEl[0]) return;\n const currentElOffset = $currentEl[0].offsetTop;\n const currentElHeight = $currentEl.height();\n const sortingElOffset = sortingElOffsetLocal + translate;\n\n let currentTranslate;\n const prevTranslate = $currentEl[0].f7Translate;\n\n if (\n sortingElOffset >= currentElOffset - currentElHeight / 2 &&\n $sortingEl.index() < $currentEl.index()\n ) {\n currentTranslate = -sortingElHeight;\n $currentEl.transform(`translate3d(0, ${currentTranslate}px,0)`);\n $insertAfterEl = $currentEl;\n $insertBeforeEl = undefined;\n } else if (\n sortingElOffset <= currentElOffset + currentElHeight / 2 &&\n $sortingEl.index() > $currentEl.index()\n ) {\n currentTranslate = sortingElHeight;\n $currentEl[0].f7Translate = currentTranslate;\n $currentEl.transform(`translate3d(0, ${currentTranslate}px,0)`);\n $insertAfterEl = undefined;\n if (!$insertBeforeEl) $insertBeforeEl = $currentEl;\n } else {\n currentTranslate = undefined;\n $currentEl.transform('translate3d(0, 0%,0)');\n }\n\n if (prevTranslate !== currentTranslate) {\n $currentEl.trigger('sortable:move');\n app.emit('sortableMove', $currentEl[0], $sortableContainer[0]);\n }\n\n $currentEl[0].f7Translate = currentTranslate;\n });\n }\n function handleTouchEnd() {\n if (!isTouched || !isMoved) {\n if (isTouched && !isMoved) {\n if (app.panel) app.panel.allowOpen = true;\n if (app.swipeout) app.swipeout.allow = true;\n if (wasTapHold) {\n $sortingEl.removeClass('sorting');\n $sortableContainer.removeClass('sortable-sorting');\n }\n }\n isTouched = false;\n isMoved = false;\n return;\n }\n if (app.panel) app.panel.allowOpen = true;\n if (app.swipeout) app.swipeout.allow = true;\n\n $sortingItems.transform('');\n $sortingEl.removeClass('sorting');\n $sortableContainer.removeClass('sortable-sorting');\n\n let indexTo;\n if ($insertAfterEl) indexTo = $insertAfterEl.index();\n else if ($insertBeforeEl) indexTo = $insertBeforeEl.index();\n\n let moveElements = $sortableContainer.dataset().sortableMoveElements;\n if (typeof moveElements === 'undefined') {\n moveElements = app.params.sortable.moveElements;\n }\n\n if (moveElements) {\n if ($insertAfterEl) {\n $sortingEl.insertAfter($insertAfterEl);\n }\n if ($insertBeforeEl) {\n $sortingEl.insertBefore($insertBeforeEl);\n }\n }\n\n if (($insertAfterEl || $insertBeforeEl) && $sortableContainer.hasClass('virtual-list')) {\n indexFrom = $sortingEl[0].f7VirtualListIndex;\n if (typeof indexFrom === 'undefined')\n indexFrom = $sortingEl.attr('data-virtual-list-index');\n if ($insertBeforeEl) {\n indexTo = $insertBeforeEl[0].f7VirtualListIndex;\n if (typeof indexTo === 'undefined')\n indexTo = $insertBeforeEl.attr('data-virtual-list-index');\n } else {\n indexTo = $insertAfterEl[0].f7VirtualListIndex;\n if (typeof indexTo === 'undefined')\n indexTo = $insertAfterEl.attr('data-virtual-list-index');\n }\n if (indexTo !== null) indexTo = parseInt(indexTo, 10);\n else indexTo = undefined;\n\n const virtualList = $sortableContainer[0].f7VirtualList;\n\n if (indexFrom) indexFrom = parseInt(indexFrom, 10);\n if (indexTo) indexTo = parseInt(indexTo, 10);\n if (virtualList) virtualList.moveItem(indexFrom, indexTo);\n }\n if (typeof indexTo !== 'undefined' && !Number.isNaN(indexTo) && indexTo !== indexFrom) {\n $sortingEl.trigger('sortable:sort', { from: indexFrom, to: indexTo });\n app.emit(\n 'sortableSort',\n $sortingEl[0],\n { from: indexFrom, to: indexTo, el: $sortingEl[0] },\n $sortableContainer[0],\n );\n }\n\n $insertBeforeEl = undefined;\n $insertAfterEl = undefined;\n isTouched = false;\n isMoved = false;\n }\n\n const activeListener = getSupport().passiveListener\n ? { passive: false, capture: false }\n : false;\n\n $(document).on(\n app.touchEvents.start,\n '.list.sortable .sortable-handler',\n handleTouchStart,\n activeListener,\n );\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n\n $(document).on('taphold', '.sortable-tap-hold', (e, pointerEvent) => {\n handleTouchStart(pointerEvent, true);\n });\n },\n enable(el = '.list.sortable') {\n const app = this;\n const $el = $(el);\n if ($el.length === 0) return;\n $el.addClass('sortable-enabled');\n $el.trigger('sortable:enable');\n app.emit('sortableEnable', $el[0]);\n },\n disable(el = '.list.sortable') {\n const app = this;\n const $el = $(el);\n if ($el.length === 0) return;\n $el.removeClass('sortable-enabled');\n $el.trigger('sortable:disable');\n app.emit('sortableDisable', $el[0]);\n },\n toggle(el = '.list.sortable') {\n const app = this;\n const $el = $(el);\n if ($el.length === 0) return;\n if ($el.hasClass('sortable-enabled')) {\n app.sortable.disable($el);\n } else {\n app.sortable.enable($el);\n }\n },\n};\nexport default {\n name: 'sortable',\n params: {\n sortable: {\n moveElements: true,\n },\n },\n create() {\n const app = this;\n bindMethods(app, {\n sortable: Sortable,\n });\n },\n on: {\n init() {\n const app = this;\n if (!app.params.sortable) return;\n app.sortable.init();\n },\n },\n clicks: {\n '.sortable-enable': function enable($clickedEl, data = {}) {\n const app = this;\n app.sortable.enable(data.sortable);\n },\n '.sortable-disable': function disable($clickedEl, data = {}) {\n const app = this;\n app.sortable.disable(data.sortable);\n },\n '.sortable-toggle': function toggle($clickedEl, data = {}) {\n const app = this;\n app.sortable.toggle(data.sortable);\n },\n },\n};\n","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { nextFrame, bindMethods } from '../../shared/utils.js';\nimport { getSupport } from '../../shared/get-support.js';\n\nconst Swipeout = {\n init() {\n const app = this;\n const document = getDocument();\n const touchesStart = {};\n let isTouched;\n let isMoved;\n let isScrolling;\n let touchStartTime;\n let touchesDiff;\n let $swipeoutEl;\n let $swipeoutContent;\n let $actionsRight;\n let $actionsLeft;\n let actionsLeftWidth;\n let actionsRightWidth;\n let translate;\n let opened;\n let openedActionsSide;\n let $leftButtons;\n let $rightButtons;\n let direction;\n let $overswipeLeftButton;\n let $overswipeRightButton;\n let overswipeLeft;\n let overswipeRight;\n\n function handleTouchStart(e) {\n if (!app.swipeout.allow) 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 = new Date().getTime();\n $swipeoutEl = $(this);\n }\n function handleTouchMove(e) {\n if (!isTouched) return;\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(\n isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)\n );\n }\n if (isScrolling) {\n isTouched = false;\n return;\n }\n\n if (!isMoved) {\n if ($('.list.sortable-opened').length > 0) return;\n $swipeoutContent = $swipeoutEl.find('.swipeout-content');\n $actionsRight = $swipeoutEl.find('.swipeout-actions-right');\n $actionsLeft = $swipeoutEl.find('.swipeout-actions-left');\n actionsLeftWidth = null;\n actionsRightWidth = null;\n $leftButtons = null;\n $rightButtons = null;\n $overswipeRightButton = null;\n $overswipeLeftButton = null;\n if ($actionsLeft.length > 0) {\n actionsLeftWidth = $actionsLeft.outerWidth();\n $leftButtons = $actionsLeft.children('a');\n $overswipeLeftButton = $actionsLeft.find('.swipeout-overswipe');\n }\n if ($actionsRight.length > 0) {\n actionsRightWidth = $actionsRight.outerWidth();\n $rightButtons = $actionsRight.children('a');\n $overswipeRightButton = $actionsRight.find('.swipeout-overswipe');\n }\n opened = $swipeoutEl.hasClass('swipeout-opened');\n if (opened) {\n openedActionsSide =\n $swipeoutEl.find('.swipeout-actions-left.swipeout-actions-opened').length > 0\n ? 'left'\n : 'right';\n }\n $swipeoutEl.removeClass('swipeout-transitioning');\n if (!app.params.swipeout.noFollow) {\n $swipeoutEl.find('.swipeout-actions-opened').removeClass('swipeout-actions-opened');\n $swipeoutEl.removeClass('swipeout-opened');\n }\n }\n isMoved = true;\n if (e.cancelable) {\n e.preventDefault();\n }\n\n touchesDiff = pageX - touchesStart.x;\n translate = touchesDiff;\n\n if (opened) {\n if (openedActionsSide === 'right') translate -= actionsRightWidth;\n else translate += actionsLeftWidth;\n }\n\n if (\n (translate > 0 && $actionsLeft.length === 0) ||\n (translate < 0 && $actionsRight.length === 0)\n ) {\n if (!opened) {\n isTouched = false;\n isMoved = false;\n $swipeoutContent.transform('');\n if ($rightButtons && $rightButtons.length > 0) {\n $rightButtons.transform('');\n }\n if ($leftButtons && $leftButtons.length > 0) {\n $leftButtons.transform('');\n }\n return;\n }\n translate = 0;\n }\n\n if (translate < 0) direction = 'to-left';\n else if (translate > 0) direction = 'to-right';\n else if (!direction) direction = 'to-left';\n\n let buttonOffset;\n let progress;\n\n e.f7PreventSwipePanel = true;\n if (app.params.swipeout.noFollow) {\n if (opened) {\n if (openedActionsSide === 'right' && touchesDiff > 0) {\n app.swipeout.close($swipeoutEl);\n }\n if (openedActionsSide === 'left' && touchesDiff < 0) {\n app.swipeout.close($swipeoutEl);\n }\n } else {\n if (touchesDiff < 0 && $actionsRight.length > 0) {\n app.swipeout.open($swipeoutEl, 'right');\n }\n if (touchesDiff > 0 && $actionsLeft.length > 0) {\n app.swipeout.open($swipeoutEl, 'left');\n }\n }\n isTouched = false;\n isMoved = false;\n return;\n }\n overswipeLeft = false;\n overswipeRight = false;\n if ($actionsRight.length > 0) {\n // Show right actions\n let buttonTranslate = translate;\n progress = buttonTranslate / actionsRightWidth;\n if (buttonTranslate < -actionsRightWidth) {\n const ratio = buttonTranslate / -actionsRightWidth;\n buttonTranslate = -actionsRightWidth - (-buttonTranslate - actionsRightWidth) ** 0.8;\n translate = buttonTranslate;\n if ($overswipeRightButton.length > 0 && ratio > app.params.swipeout.overswipeRatio) {\n overswipeRight = true;\n }\n }\n if (direction !== 'to-left') {\n progress = 0;\n buttonTranslate = 0;\n }\n $rightButtons.each((buttonEl) => {\n const $buttonEl = $(buttonEl);\n if (typeof buttonEl.f7SwipeoutButtonOffset === 'undefined') {\n $buttonEl[0].f7SwipeoutButtonOffset = buttonEl.offsetLeft;\n }\n buttonOffset = buttonEl.f7SwipeoutButtonOffset;\n if (\n $overswipeRightButton.length > 0 &&\n $buttonEl.hasClass('swipeout-overswipe') &&\n direction === 'to-left'\n ) {\n $buttonEl.css({ left: `${overswipeRight ? -buttonOffset : 0}px` });\n if (overswipeRight) {\n if (!$buttonEl.hasClass('swipeout-overswipe-active')) {\n $swipeoutEl.trigger('swipeout:overswipeenter');\n app.emit('swipeoutOverswipeEnter', $swipeoutEl[0]);\n }\n $buttonEl.addClass('swipeout-overswipe-active');\n } else {\n if ($buttonEl.hasClass('swipeout-overswipe-active')) {\n $swipeoutEl.trigger('swipeout:overswipeexit');\n app.emit('swipeoutOverswipeExit', $swipeoutEl[0]);\n }\n $buttonEl.removeClass('swipeout-overswipe-active');\n }\n }\n $buttonEl.transform(\n `translate3d(${buttonTranslate - buttonOffset * (1 + Math.max(progress, -1))}px,0,0)`,\n );\n });\n }\n if ($actionsLeft.length > 0) {\n // Show left actions\n let buttonTranslate = translate;\n progress = buttonTranslate / actionsLeftWidth;\n if (buttonTranslate > actionsLeftWidth) {\n const ratio = buttonTranslate / actionsRightWidth;\n buttonTranslate = actionsLeftWidth + (buttonTranslate - actionsLeftWidth) ** 0.8;\n translate = buttonTranslate;\n if ($overswipeLeftButton.length > 0 && ratio > app.params.swipeout.overswipeRatio) {\n overswipeLeft = true;\n }\n }\n if (direction !== 'to-right') {\n buttonTranslate = 0;\n progress = 0;\n }\n $leftButtons.each((buttonEl, index) => {\n const $buttonEl = $(buttonEl);\n if (typeof buttonEl.f7SwipeoutButtonOffset === 'undefined') {\n $buttonEl[0].f7SwipeoutButtonOffset =\n actionsLeftWidth - buttonEl.offsetLeft - buttonEl.offsetWidth;\n }\n buttonOffset = buttonEl.f7SwipeoutButtonOffset;\n if (\n $overswipeLeftButton.length > 0 &&\n $buttonEl.hasClass('swipeout-overswipe') &&\n direction === 'to-right'\n ) {\n $buttonEl.css({ left: `${overswipeLeft ? buttonOffset : 0}px` });\n if (overswipeLeft) {\n if (!$buttonEl.hasClass('swipeout-overswipe-active')) {\n $swipeoutEl.trigger('swipeout:overswipeenter');\n app.emit('swipeoutOverswipeEnter', $swipeoutEl[0]);\n }\n $buttonEl.addClass('swipeout-overswipe-active');\n } else {\n if ($buttonEl.hasClass('swipeout-overswipe-active')) {\n $swipeoutEl.trigger('swipeout:overswipeexit');\n app.emit('swipeoutOverswipeExit', $swipeoutEl[0]);\n }\n $buttonEl.removeClass('swipeout-overswipe-active');\n }\n }\n if ($leftButtons.length > 1) {\n $buttonEl.css('z-index', $leftButtons.length - index);\n }\n $buttonEl.transform(\n `translate3d(${buttonTranslate + buttonOffset * (1 - Math.min(progress, 1))}px,0,0)`,\n );\n });\n }\n $swipeoutEl.trigger('swipeout', progress);\n app.emit('swipeout', $swipeoutEl[0], progress);\n $swipeoutContent.transform(`translate3d(${translate}px,0,0)`);\n }\n function handleTouchEnd() {\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n\n isTouched = false;\n isMoved = false;\n const timeDiff = new Date().getTime() - touchStartTime;\n const $actions = direction === 'to-left' ? $actionsRight : $actionsLeft;\n const actionsWidth = direction === 'to-left' ? actionsRightWidth : actionsLeftWidth;\n let action;\n let $buttons;\n let i;\n\n if (\n (timeDiff < 300 &&\n ((touchesDiff < -10 && direction === 'to-left') ||\n (touchesDiff > 10 && direction === 'to-right'))) ||\n (timeDiff >= 300 && Math.abs(translate) > actionsWidth / 2)\n ) {\n action = 'open';\n } else {\n action = 'close';\n }\n if (timeDiff < 300) {\n if (Math.abs(translate) === 0) action = 'close';\n if (Math.abs(translate) === actionsWidth) action = 'open';\n }\n\n if (action === 'open') {\n Swipeout.el = $swipeoutEl[0];\n $swipeoutEl.trigger('swipeout:open');\n app.emit('swipeoutOpen', $swipeoutEl[0]);\n $swipeoutEl.addClass('swipeout-opened swipeout-transitioning');\n const newTranslate = direction === 'to-left' ? -actionsWidth : actionsWidth;\n $swipeoutContent.transform(`translate3d(${newTranslate}px,0,0)`);\n $actions.addClass('swipeout-actions-opened');\n $buttons = direction === 'to-left' ? $rightButtons : $leftButtons;\n if ($buttons) {\n for (i = 0; i < $buttons.length; i += 1) {\n $($buttons[i]).transform(`translate3d(${newTranslate}px,0,0)`);\n }\n }\n if (overswipeRight) {\n $actionsRight.find('.swipeout-overswipe').trigger('click', 'f7Overswipe');\n }\n if (overswipeLeft) {\n $actionsLeft.find('.swipeout-overswipe').trigger('click', 'f7Overswipe');\n }\n } else {\n $swipeoutEl.trigger('swipeout:close');\n app.emit('swipeoutClose', $swipeoutEl[0]);\n Swipeout.el = undefined;\n $swipeoutEl.addClass('swipeout-transitioning').removeClass('swipeout-opened');\n $swipeoutContent.transform('');\n $actions.removeClass('swipeout-actions-opened');\n }\n\n let buttonOffset;\n if ($leftButtons && $leftButtons.length > 0 && $leftButtons !== $buttons) {\n $leftButtons.each((buttonEl) => {\n const $buttonEl = $(buttonEl);\n buttonOffset = buttonEl.f7SwipeoutButtonOffset;\n if (typeof buttonOffset === 'undefined') {\n $buttonEl[0].f7SwipeoutButtonOffset =\n actionsLeftWidth - buttonEl.offsetLeft - buttonEl.offsetWidth;\n }\n $buttonEl.transform(`translate3d(${buttonOffset}px,0,0)`);\n });\n }\n if ($rightButtons && $rightButtons.length > 0 && $rightButtons !== $buttons) {\n $rightButtons.each((buttonEl) => {\n const $buttonEl = $(buttonEl);\n buttonOffset = buttonEl.f7SwipeoutButtonOffset;\n if (typeof buttonOffset === 'undefined') {\n $buttonEl[0].f7SwipeoutButtonOffset = buttonEl.offsetLeft;\n }\n $buttonEl.transform(`translate3d(${-buttonOffset}px,0,0)`);\n });\n }\n $swipeoutContent.transitionEnd(() => {\n if ((opened && action === 'open') || (!opened && action === 'close')) return;\n $swipeoutEl.trigger(action === 'open' ? 'swipeout:opened' : 'swipeout:closed');\n app.emit(action === 'open' ? 'swipeoutOpened' : 'swipeoutClosed', $swipeoutEl[0]);\n $swipeoutEl.removeClass('swipeout-transitioning');\n if (opened && action === 'close') {\n if ($actionsRight.length > 0) {\n $rightButtons.transform('');\n }\n if ($actionsLeft.length > 0) {\n $leftButtons.transform('');\n }\n }\n });\n }\n\n const passiveListener = getSupport().passiveListener ? { passive: true } : false;\n\n app.on('touchstart', (e) => {\n if (Swipeout.el) {\n const $targetEl = $(e.target);\n if (\n !(\n $(Swipeout.el).is($targetEl[0]) ||\n $targetEl.parents('.swipeout').is(Swipeout.el) ||\n $targetEl.hasClass('modal-in') ||\n ($targetEl.attr('class') || '').indexOf('-backdrop') > 0 ||\n $targetEl.hasClass('actions-modal') ||\n $targetEl.parents('.actions-modal.modal-in, .dialog.modal-in').length > 0\n )\n ) {\n app.swipeout.close(Swipeout.el);\n }\n }\n });\n $(document).on(app.touchEvents.start, 'li.swipeout', handleTouchStart, passiveListener);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n },\n allow: true,\n el: undefined,\n open(...args) {\n const app = this;\n let [el, side, callback] = args;\n if (typeof args[1] === 'function') {\n [el, callback, side] = args;\n }\n const $el = $(el).eq(0);\n\n if ($el.length === 0) return;\n if (!$el.hasClass('swipeout') || $el.hasClass('swipeout-opened')) return;\n if (!side) {\n if ($el.find('.swipeout-actions-right').length > 0) side = 'right';\n else side = 'left';\n }\n const $swipeoutActions = $el.find(`.swipeout-actions-${side}`);\n const $swipeoutContent = $el.find('.swipeout-content');\n if ($swipeoutActions.length === 0) return;\n $el.trigger('swipeout:open').addClass('swipeout-opened').removeClass('swipeout-transitioning');\n app.emit('swipeoutOpen', $el[0]);\n $swipeoutActions.addClass('swipeout-actions-opened');\n const $buttons = $swipeoutActions.children('a');\n const swipeoutActionsWidth = $swipeoutActions.outerWidth();\n const translate = side === 'right' ? -swipeoutActionsWidth : swipeoutActionsWidth;\n if ($buttons.length > 1) {\n $buttons.each((buttonEl, buttonIndex) => {\n const $buttonEl = $(buttonEl);\n if (side === 'right') {\n $buttonEl.transform(`translate3d(${-buttonEl.offsetLeft}px,0,0)`);\n } else {\n $buttonEl\n .css('z-index', $buttons.length - buttonIndex)\n .transform(\n `translate3d(${\n swipeoutActionsWidth - buttonEl.offsetWidth - buttonEl.offsetLeft\n }px,0,0)`,\n );\n }\n });\n }\n $el.addClass('swipeout-transitioning');\n $swipeoutContent.transitionEnd(() => {\n $el.trigger('swipeout:opened');\n app.emit('swipeoutOpened', $el[0]);\n if (callback) callback.call($el[0]);\n });\n nextFrame(() => {\n $buttons.transform(`translate3d(${translate}px,0,0)`);\n $swipeoutContent.transform(`translate3d(${translate}px,0,0)`);\n });\n Swipeout.el = $el[0];\n },\n close(el, callback) {\n const app = this;\n const $el = $(el).eq(0);\n if ($el.length === 0) return;\n if (!$el.hasClass('swipeout-opened')) return;\n const side = $el.find('.swipeout-actions-opened').hasClass('swipeout-actions-right')\n ? 'right'\n : 'left';\n const $swipeoutActions = $el\n .find('.swipeout-actions-opened')\n .removeClass('swipeout-actions-opened');\n const $buttons = $swipeoutActions.children('a');\n const swipeoutActionsWidth = $swipeoutActions.outerWidth();\n app.swipeout.allow = false;\n $el.trigger('swipeout:close');\n app.emit('swipeoutClose', $el[0]);\n $el.removeClass('swipeout-opened').addClass('swipeout-transitioning');\n\n let closeTimeout;\n function onSwipeoutClose() {\n app.swipeout.allow = true;\n if ($el.hasClass('swipeout-opened')) return;\n $el.removeClass('swipeout-transitioning');\n $buttons.transform('');\n $el.trigger('swipeout:closed');\n app.emit('swipeoutClosed', $el[0]);\n if (callback) callback.call($el[0]);\n if (closeTimeout) clearTimeout(closeTimeout);\n }\n $el.find('.swipeout-content').transform('').transitionEnd(onSwipeoutClose);\n closeTimeout = setTimeout(onSwipeoutClose, 500);\n\n $buttons.each((buttonEl) => {\n const $buttonEl = $(buttonEl);\n if (side === 'right') {\n $buttonEl.transform(`translate3d(${-buttonEl.offsetLeft}px,0,0)`);\n } else {\n $buttonEl.transform(\n `translate3d(${swipeoutActionsWidth - buttonEl.offsetWidth - buttonEl.offsetLeft}px,0,0)`,\n );\n }\n $buttonEl.css({ left: '0px' }).removeClass('swipeout-overswipe-active');\n });\n if (Swipeout.el && Swipeout.el === $el[0]) Swipeout.el = undefined;\n },\n delete(el, callback) {\n const app = this;\n const $el = $(el).eq(0);\n if ($el.length === 0) return;\n Swipeout.el = undefined;\n $el.trigger('swipeout:delete');\n app.emit('swipeoutDelete', $el[0]);\n $el.css({ height: `${$el.outerHeight()}px` });\n $el.transitionEnd(() => {\n $el.trigger('swipeout:deleted');\n app.emit('swipeoutDeleted', $el[0]);\n if (callback) callback.call($el[0]);\n if ($el.parents('.virtual-list').length > 0) {\n const virtualList = $el.parents('.virtual-list')[0].f7VirtualList;\n const virtualIndex = $el[0].f7VirtualListIndex;\n if (virtualList && typeof virtualIndex !== 'undefined')\n virtualList.deleteItem(virtualIndex);\n } else if (app.params.swipeout.removeElements) {\n if (app.params.swipeout.removeElementsWithTimeout) {\n setTimeout(() => {\n $el.remove();\n }, app.params.swipeout.removeElementsTimeout);\n } else {\n $el.remove();\n }\n } else {\n $el.removeClass('swipeout-deleting swipeout-transitioning');\n }\n });\n // eslint-disable-next-line\n // $el[0]._clientLeft = $el[0].clientLeft;\n nextFrame(() => {\n $el\n .addClass('swipeout-deleting swipeout-transitioning')\n .css({ height: '0px' })\n .find('.swipeout-content')\n .transform('translate3d(-100%,0,0)');\n });\n },\n};\nexport default {\n name: 'swipeout',\n params: {\n swipeout: {\n actionsNoFold: false,\n noFollow: false,\n removeElements: true,\n removeElementsWithTimeout: false,\n removeElementsTimeout: 0,\n overswipeRatio: 1.2,\n },\n },\n create() {\n const app = this;\n bindMethods(app, {\n swipeout: Swipeout,\n });\n },\n clicks: {\n '.swipeout-open': function openSwipeout($clickedEl, data = {}) {\n const app = this;\n app.swipeout.open(data.swipeout, data.side);\n },\n '.swipeout-close': function closeSwipeout($clickedEl) {\n const app = this;\n const $swipeoutEl = $clickedEl.closest('.swipeout');\n if ($swipeoutEl.length === 0) return;\n app.swipeout.close($swipeoutEl);\n },\n '.swipeout-delete': function deleteSwipeout($clickedEl, data = {}) {\n const app = this;\n const $swipeoutEl = $clickedEl.closest('.swipeout');\n if ($swipeoutEl.length === 0) return;\n const { confirm, confirmTitle } = data;\n if (data.confirm) {\n app.dialog.confirm(confirm, confirmTitle, () => {\n app.swipeout.delete($swipeoutEl);\n });\n } else {\n app.swipeout.delete($swipeoutEl);\n }\n },\n },\n on: {\n init() {\n const app = this;\n if (!app.params.swipeout) return;\n app.swipeout.init();\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { nextFrame, bindMethods } from '../../shared/utils.js';\n\nconst Accordion = {\n toggleClicked($clickedEl) {\n const app = this;\n let $accordionItemEl = $clickedEl.closest('.accordion-item').eq(0);\n if (!$accordionItemEl.length) $accordionItemEl = $clickedEl.parents('li').eq(0);\n\n const $accordionContent = $clickedEl.parents('.accordion-item-content').eq(0);\n if ($accordionContent.length) {\n if ($accordionContent.parents($accordionItemEl).length) return;\n }\n\n if ($clickedEl.parents('li').length > 1 && $clickedEl.parents('li')[0] !== $accordionItemEl[0])\n return;\n app.accordion.toggle($accordionItemEl);\n },\n open(el) {\n const app = this;\n const $el = $(el);\n let prevented = false;\n function prevent() {\n prevented = true;\n }\n $el.trigger('accordion:beforeopen', { prevent }, prevent);\n app.emit('accordionBeforeOpen', $el[0], prevent);\n if (prevented) return;\n const $list = $el.parents('.accordion-list').eq(0);\n let $contentEl = $el.children('.accordion-item-content');\n $contentEl.removeAttr('aria-hidden');\n if ($contentEl.length === 0) $contentEl = $el.find('.accordion-item-content');\n if ($contentEl.length === 0) return;\n const $openedItem = $list.length > 0 && $el.parent().children('.accordion-item-opened');\n if ($openedItem.length > 0) {\n app.accordion.close($openedItem);\n }\n $contentEl.transitionEnd(() => {\n if ($el.hasClass('accordion-item-opened')) {\n $contentEl.transition(0);\n $contentEl.css('height', 'auto');\n nextFrame(() => {\n $contentEl.transition('');\n $el.trigger('accordion:opened');\n app.emit('accordionOpened', $el[0]);\n });\n } else {\n $contentEl.css('height', '');\n $el.trigger('accordion:closed');\n app.emit('accordionClosed', $el[0]);\n }\n });\n $contentEl.css('height', `${$contentEl[0].scrollHeight}px`);\n $el.trigger('accordion:open');\n $el.addClass('accordion-item-opened');\n app.emit('accordionOpen', $el[0]);\n },\n close(el) {\n const app = this;\n const $el = $(el);\n let prevented = false;\n function prevent() {\n prevented = true;\n }\n $el.trigger('accordion:beforeclose', { prevent }, prevent);\n app.emit('accordionBeforeClose', $el[0], prevent);\n if (prevented) return;\n let $contentEl = $el.children('.accordion-item-content');\n if ($contentEl.length === 0) $contentEl = $el.find('.accordion-item-content');\n $el.removeClass('accordion-item-opened');\n $contentEl.attr('aria-hidden', true);\n $contentEl.transition(0);\n $contentEl.css('height', `${$contentEl[0].scrollHeight}px`);\n // Close\n $contentEl.transitionEnd(() => {\n if ($el.hasClass('accordion-item-opened')) {\n $contentEl.transition(0);\n $contentEl.css('height', 'auto');\n nextFrame(() => {\n $contentEl.transition('');\n $el.trigger('accordion:opened');\n app.emit('accordionOpened', $el[0]);\n });\n } else {\n $contentEl.css('height', '');\n $el.trigger('accordion:closed');\n app.emit('accordionClosed', $el[0]);\n }\n });\n nextFrame(() => {\n $contentEl.transition('');\n $contentEl.css('height', '');\n $el.trigger('accordion:close');\n app.emit('accordionClose', $el[0]);\n });\n },\n toggle(el) {\n const app = this;\n const $el = $(el);\n if ($el.length === 0) return;\n if ($el.hasClass('accordion-item-opened')) app.accordion.close(el);\n else app.accordion.open(el);\n },\n};\n\nexport default {\n name: 'accordion',\n create() {\n const app = this;\n bindMethods(app, {\n accordion: Accordion,\n });\n },\n clicks: {\n '.accordion-item .item-link, .accordion-item-toggle, .links-list.accordion-list > ul > li > a':\n function open($clickedEl) {\n const app = this;\n Accordion.toggleClicked.call(app, $clickedEl);\n },\n },\n};\n","export default {\n name: 'contactsList',\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';\nimport { getDevice } from '../../shared/get-device.js';\n\nclass VirtualList extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n const vl = this;\n const device = getDevice();\n const document = getDocument();\n\n let defaultHeight;\n if (app.theme === 'md') {\n defaultHeight = 48;\n } else if (app.theme === 'ios') {\n defaultHeight = 44;\n }\n\n const defaults = {\n cols: 1,\n height: defaultHeight,\n cache: true,\n dynamicHeightBufferSize: 1,\n showFilteredItemsOnly: false,\n renderExternal: undefined,\n setListHeight: true,\n searchByItem: undefined,\n searchAll: undefined,\n ul: null,\n createUl: true,\n scrollableParentEl: undefined,\n renderItem(item) {\n return `\n <li>\n <div class=\"item-content\">\n <div class=\"item-inner\">\n <div class=\"item-title\">${item}</div>\n </div>\n </div>\n </li>\n `.trim();\n },\n on: {},\n };\n\n // Extend defaults with modules params\n vl.useModulesParams(defaults);\n\n vl.params = extend(defaults, params);\n if (vl.params.height === undefined || !vl.params.height) {\n vl.params.height = defaultHeight;\n }\n\n vl.$el = $(params.el);\n vl.el = vl.$el[0];\n\n if (vl.$el.length === 0) return undefined;\n vl.$el[0].f7VirtualList = vl;\n\n vl.items = vl.params.items;\n if (vl.params.showFilteredItemsOnly) {\n vl.filteredItems = [];\n }\n if (vl.params.renderItem) {\n vl.renderItem = vl.params.renderItem;\n }\n vl.$pageContentEl = vl.$el.parents('.page-content');\n vl.pageContentEl = vl.$pageContentEl[0];\n\n vl.$scrollableParentEl = vl.params.scrollableParentEl\n ? $(vl.params.scrollableParentEl).eq(0)\n : vl.$pageContentEl;\n if (!vl.$scrollableParentEl.length && vl.$pageContentEl.length) {\n vl.$scrollableParentEl = vl.$pageContentEl;\n }\n vl.scrollableParentEl = vl.$scrollableParentEl[0];\n\n // Bad scroll\n if (typeof vl.params.updatableScroll !== 'undefined') {\n vl.updatableScroll = vl.params.updatableScroll;\n } else {\n vl.updatableScroll = true;\n if (device.ios && device.osVersion.split('.')[0] < 8) {\n vl.updatableScroll = false;\n }\n }\n\n // Append <ul>\n const ul = vl.params.ul;\n vl.$ul = ul ? $(vl.params.ul) : vl.$el.children('ul');\n if (vl.$ul.length === 0 && vl.params.createUl) {\n vl.$el.append('<ul></ul>');\n vl.$ul = vl.$el.children('ul');\n }\n vl.ul = vl.$ul[0];\n\n let $itemsWrapEl;\n if (!vl.ul && !vl.params.createUl) $itemsWrapEl = vl.$el;\n else $itemsWrapEl = vl.$ul;\n\n extend(vl, {\n $itemsWrapEl,\n itemsWrapEl: $itemsWrapEl[0],\n // DOM cached items\n domCache: {},\n // Temporary DOM Element\n tempDomElement: document.createElement('ul'),\n // Last repain position\n lastRepaintY: null,\n // Fragment\n fragment: document.createDocumentFragment(),\n // Props\n pageHeight: undefined,\n rowsPerScreen: undefined,\n rowsBefore: undefined,\n rowsAfter: undefined,\n rowsToRender: undefined,\n maxBufferHeight: 0,\n listHeight: undefined,\n dynamicHeight: typeof vl.params.height === 'function',\n autoHeight: vl.params.height === 'auto',\n });\n\n // Install Modules\n vl.useModules();\n\n // Attach events\n const handleScrollBound = vl.handleScroll.bind(vl);\n const handleResizeBound = vl.handleResize.bind(vl);\n let $pageEl;\n let $tabEl;\n let $panelEl;\n let $popupEl;\n vl.attachEvents = function attachEvents() {\n $pageEl = vl.$el.parents('.page').eq(0);\n $tabEl = vl.$el\n .parents('.tab')\n .filter((tabEl) => {\n return (\n $(tabEl).parent('.tabs').parent('.tabs-animated-wrap, swiper-container.tabs').length ===\n 0\n );\n })\n .eq(0);\n $panelEl = vl.$el.parents('.panel').eq(0);\n $popupEl = vl.$el.parents('.popup').eq(0);\n\n vl.$scrollableParentEl.on('scroll', handleScrollBound);\n if ($pageEl.length) $pageEl.on('page:reinit', handleResizeBound);\n if ($tabEl.length) $tabEl.on('tab:show', handleResizeBound);\n if ($panelEl.length) $panelEl.on('panel:open', handleResizeBound);\n if ($popupEl.length) $popupEl.on('popup:open', handleResizeBound);\n app.on('resize', handleResizeBound);\n };\n vl.detachEvents = function attachEvents() {\n vl.$scrollableParentEl.off('scroll', handleScrollBound);\n if ($pageEl.length) $pageEl.off('page:reinit', handleResizeBound);\n if ($tabEl.length) $tabEl.off('tab:show', handleResizeBound);\n if ($panelEl.length) $panelEl.off('panel:open', handleResizeBound);\n if ($popupEl.length) $popupEl.off('popup:open', handleResizeBound);\n app.off('resize', handleResizeBound);\n };\n // Init\n vl.init();\n\n return vl;\n }\n\n setListSize(autoHeightRerender) {\n const vl = this;\n const items = vl.filteredItems || vl.items;\n if (!autoHeightRerender) {\n vl.pageHeight = vl.$scrollableParentEl[0].offsetHeight;\n }\n if (vl.dynamicHeight) {\n vl.listHeight = 0;\n vl.heights = [];\n for (let i = 0; i < items.length; i += 1) {\n const itemHeight = vl.params.height(items[i]);\n vl.listHeight += itemHeight;\n vl.heights.push(itemHeight);\n }\n } else if (vl.autoHeight) {\n vl.listHeight = 0;\n if (!vl.heights) vl.heights = [];\n if (!vl.heightsCalculated) vl.heightsCalculated = [];\n const renderedItems = {};\n vl.$itemsWrapEl.find(`[data-virtual-list-index]`).forEach((el) => {\n renderedItems[parseInt(el.getAttribute('data-virtual-list-index'), 10)] = el;\n });\n for (let i = 0; i < items.length; i += 1) {\n const itemIndex = vl.items.indexOf(items[i]);\n const renderedItem = renderedItems[itemIndex];\n if (renderedItem) {\n if (!vl.heightsCalculated.includes(itemIndex)) {\n vl.heights[itemIndex] = renderedItem.offsetHeight;\n vl.heightsCalculated.push(itemIndex);\n }\n }\n if (typeof vl.heights[i] === 'undefined') {\n vl.heights[itemIndex] = 40;\n }\n vl.listHeight += vl.heights[itemIndex];\n }\n } else {\n vl.listHeight = Math.ceil(items.length / vl.params.cols) * vl.params.height;\n vl.rowsPerScreen = Math.ceil(vl.pageHeight / vl.params.height);\n vl.rowsBefore = vl.params.rowsBefore || vl.rowsPerScreen * 2;\n vl.rowsAfter = vl.params.rowsAfter || vl.rowsPerScreen;\n vl.rowsToRender = vl.rowsPerScreen + vl.rowsBefore + vl.rowsAfter;\n vl.maxBufferHeight = (vl.rowsBefore / 2) * vl.params.height;\n }\n\n if (vl.updatableScroll || vl.params.setListHeight) {\n vl.$itemsWrapEl.css({ height: `${vl.listHeight}px` });\n }\n }\n\n render(force, forceScrollTop) {\n const vl = this;\n if (force) vl.lastRepaintY = null;\n\n let scrollTop = -(\n vl.$el[0].getBoundingClientRect().top - vl.$scrollableParentEl[0].getBoundingClientRect().top\n );\n\n if (typeof forceScrollTop !== 'undefined') scrollTop = forceScrollTop;\n if (\n vl.lastRepaintY === null ||\n Math.abs(scrollTop - vl.lastRepaintY) > vl.maxBufferHeight ||\n (!vl.updatableScroll &&\n vl.$scrollableParentEl[0].scrollTop + vl.pageHeight >=\n vl.$scrollableParentEl[0].scrollHeight)\n ) {\n vl.lastRepaintY = scrollTop;\n } else {\n return;\n }\n\n const items = vl.filteredItems || vl.items;\n let fromIndex;\n let toIndex;\n let heightBeforeFirstItem = 0;\n let heightBeforeLastItem = 0;\n if (vl.dynamicHeight || vl.autoHeight) {\n let itemTop = 0;\n let itemHeight;\n vl.maxBufferHeight = vl.pageHeight;\n\n for (let j = 0; j < vl.heights.length; j += 1) {\n itemHeight = vl.heights[j];\n if (typeof fromIndex === 'undefined') {\n if (\n itemTop + itemHeight >=\n scrollTop - vl.pageHeight * 2 * vl.params.dynamicHeightBufferSize\n )\n fromIndex = j;\n else heightBeforeFirstItem += itemHeight;\n }\n\n if (typeof toIndex === 'undefined') {\n if (\n itemTop + itemHeight >=\n scrollTop + vl.pageHeight * 2 * vl.params.dynamicHeightBufferSize ||\n j === vl.heights.length - 1\n )\n toIndex = j + 1;\n heightBeforeLastItem += itemHeight;\n }\n itemTop += itemHeight;\n }\n toIndex = Math.min(toIndex, items.length);\n } else {\n fromIndex = (parseInt(scrollTop / vl.params.height, 10) - vl.rowsBefore) * vl.params.cols;\n if (fromIndex < 0) {\n fromIndex = 0;\n }\n toIndex = Math.min(fromIndex + vl.rowsToRender * vl.params.cols, items.length);\n }\n\n let topPosition;\n const renderExternalItems = [];\n vl.reachEnd = false;\n let i;\n for (i = fromIndex; i < toIndex; i += 1) {\n let itemEl;\n // Define real item index\n const index = vl.items.indexOf(items[i]);\n\n if (i === fromIndex) vl.currentFromIndex = index;\n if (i === toIndex - 1) vl.currentToIndex = index;\n if (vl.filteredItems) {\n if (vl.items[index] === vl.filteredItems[vl.filteredItems.length - 1]) vl.reachEnd = true;\n } else if (index === vl.items.length - 1) vl.reachEnd = true;\n\n // Find items\n if (vl.params.renderExternal) {\n renderExternalItems.push(items[i]);\n } else if (vl.domCache[index]) {\n itemEl = vl.domCache[index];\n itemEl.f7VirtualListIndex = index;\n } else {\n if (vl.renderItem) {\n vl.tempDomElement.innerHTML = vl.renderItem(items[i], index).trim();\n } else {\n vl.tempDomElement.innerHTML = items[i].toString().trim();\n }\n itemEl = vl.tempDomElement.childNodes[0];\n if (vl.params.cache) vl.domCache[index] = itemEl;\n itemEl.f7VirtualListIndex = index;\n }\n\n // Set item top position\n if (i === fromIndex) {\n if (vl.dynamicHeight || vl.autoHeight) {\n topPosition = heightBeforeFirstItem;\n } else {\n topPosition = (i * vl.params.height) / vl.params.cols;\n }\n }\n if (!vl.params.renderExternal) {\n itemEl.style.top = `${topPosition}px`;\n\n // Before item insert\n vl.emit('local::itemBeforeInsert vlItemBeforeInsert', vl, itemEl, items[i]);\n\n // Append item to fragment\n vl.fragment.appendChild(itemEl);\n }\n }\n\n // Update list height with not updatable scroll\n if (!vl.updatableScroll) {\n if (vl.dynamicHeight || vl.autoHeight) {\n vl.itemsWrapEl.style.height = `${heightBeforeLastItem}px`;\n } else {\n vl.itemsWrapEl.style.height = `${(i * vl.params.height) / vl.params.cols}px`;\n }\n }\n\n // Update list html\n if (vl.params.renderExternal) {\n if (items && items.length === 0) {\n vl.reachEnd = true;\n }\n } else {\n vl.emit('local::beforeClear vlBeforeClear', vl, vl.fragment);\n vl.itemsWrapEl.innerHTML = '';\n\n vl.emit('local::itemsBeforeInsert vlItemsBeforeInsert', vl, vl.fragment);\n\n if (items && items.length === 0) {\n vl.reachEnd = true;\n if (vl.params.emptyTemplate) vl.itemsWrapEl.innerHTML = vl.params.emptyTemplate;\n } else {\n vl.itemsWrapEl.appendChild(vl.fragment);\n }\n\n vl.emit('local::itemsAfterInsert vlItemsAfterInsert', vl, vl.fragment);\n }\n\n if (typeof forceScrollTop !== 'undefined' && force) {\n vl.$scrollableParentEl.scrollTop(forceScrollTop, 0);\n }\n if (vl.params.renderExternal) {\n vl.params.renderExternal(vl, {\n fromIndex,\n toIndex,\n listHeight: vl.listHeight,\n topPosition,\n items: renderExternalItems,\n });\n }\n if (vl.autoHeight) {\n requestAnimationFrame(() => {\n vl.setListSize(true);\n });\n }\n }\n\n // Filter\n filterItems(indexes, resetScrollTop = true) {\n const vl = this;\n vl.filteredItems = [];\n for (let i = 0; i < indexes.length; i += 1) {\n vl.filteredItems.push(vl.items[indexes[i]]);\n }\n if (resetScrollTop) {\n vl.$scrollableParentEl[0].scrollTop = 0;\n }\n vl.update();\n }\n\n resetFilter() {\n const vl = this;\n if (vl.params.showFilteredItemsOnly) {\n vl.filteredItems = [];\n } else {\n vl.filteredItems = null;\n delete vl.filteredItems;\n }\n vl.update();\n }\n\n scrollToItem(index) {\n const vl = this;\n if (index > vl.items.length) return false;\n let itemTop = 0;\n if (vl.dynamicHeight || vl.autoHeight) {\n for (let i = 0; i < index; i += 1) {\n itemTop += vl.heights[i];\n }\n } else {\n itemTop = index * vl.params.height;\n }\n const listTop = vl.$el[0].offsetTop;\n vl.render(true, listTop + itemTop - parseInt(vl.$scrollableParentEl.css('padding-top'), 10));\n return true;\n }\n\n handleScroll() {\n const vl = this;\n vl.render();\n }\n\n // Handle resize event\n isVisible() {\n const vl = this;\n return !!(vl.el.offsetWidth || vl.el.offsetHeight || vl.el.getClientRects().length);\n }\n\n handleResize() {\n const vl = this;\n if (vl.isVisible()) {\n vl.heightsCalculated = [];\n vl.setListSize();\n vl.render(true);\n }\n }\n\n // Append\n appendItems(items) {\n const vl = this;\n for (let i = 0; i < items.length; i += 1) {\n vl.items.push(items[i]);\n }\n vl.update();\n }\n\n appendItem(item) {\n const vl = this;\n vl.appendItems([item]);\n }\n\n // Replace\n replaceAllItems(items) {\n const vl = this;\n vl.items = items;\n delete vl.filteredItems;\n vl.domCache = {};\n vl.update();\n }\n\n replaceItem(index, item) {\n const vl = this;\n vl.items[index] = item;\n if (vl.params.cache) delete vl.domCache[index];\n vl.update();\n }\n\n // Prepend\n prependItems(items) {\n const vl = this;\n for (let i = items.length - 1; i >= 0; i -= 1) {\n vl.items.unshift(items[i]);\n }\n if (vl.params.cache) {\n const newCache = {};\n Object.keys(vl.domCache).forEach((cached) => {\n newCache[parseInt(cached, 10) + items.length] = vl.domCache[cached];\n });\n vl.domCache = newCache;\n }\n vl.update();\n }\n\n prependItem(item) {\n const vl = this;\n vl.prependItems([item]);\n }\n\n // Move\n moveItem(from, to) {\n const vl = this;\n const fromIndex = from;\n let toIndex = to;\n if (fromIndex === toIndex) return;\n // remove item from array\n const item = vl.items.splice(fromIndex, 1)[0];\n if (toIndex >= vl.items.length) {\n // Add item to the end\n vl.items.push(item);\n toIndex = vl.items.length - 1;\n } else {\n // Add item to new index\n vl.items.splice(toIndex, 0, item);\n }\n // Update cache\n if (vl.params.cache) {\n const newCache = {};\n Object.keys(vl.domCache).forEach((cached) => {\n const cachedIndex = parseInt(cached, 10);\n const leftIndex = fromIndex < toIndex ? fromIndex : toIndex;\n const rightIndex = fromIndex < toIndex ? toIndex : fromIndex;\n const indexShift = fromIndex < toIndex ? -1 : 1;\n if (cachedIndex < leftIndex || cachedIndex > rightIndex)\n newCache[cachedIndex] = vl.domCache[cachedIndex];\n if (cachedIndex === leftIndex) newCache[rightIndex] = vl.domCache[cachedIndex];\n if (cachedIndex > leftIndex && cachedIndex <= rightIndex)\n newCache[cachedIndex + indexShift] = vl.domCache[cachedIndex];\n });\n vl.domCache = newCache;\n }\n vl.update();\n }\n\n // Insert before\n insertItemBefore(index, item) {\n const vl = this;\n if (index === 0) {\n vl.prependItem(item);\n return;\n }\n if (index >= vl.items.length) {\n vl.appendItem(item);\n return;\n }\n vl.items.splice(index, 0, item);\n // Update cache\n if (vl.params.cache) {\n const newCache = {};\n Object.keys(vl.domCache).forEach((cached) => {\n const cachedIndex = parseInt(cached, 10);\n if (cachedIndex >= index) {\n newCache[cachedIndex + 1] = vl.domCache[cachedIndex];\n }\n });\n vl.domCache = newCache;\n }\n vl.update();\n }\n\n // Delete\n deleteItems(indexes) {\n const vl = this;\n let prevIndex;\n let indexShift = 0;\n for (let i = 0; i < indexes.length; i += 1) {\n let index = indexes[i];\n if (typeof prevIndex !== 'undefined') {\n if (index > prevIndex) {\n indexShift = -i;\n }\n }\n index += indexShift;\n prevIndex = indexes[i];\n // Delete item\n const deletedItem = vl.items.splice(index, 1)[0];\n\n // Delete from filtered\n if (vl.filteredItems && vl.filteredItems.indexOf(deletedItem) >= 0) {\n vl.filteredItems.splice(vl.filteredItems.indexOf(deletedItem), 1);\n }\n // Update cache\n if (vl.params.cache) {\n const newCache = {};\n Object.keys(vl.domCache).forEach((cached) => {\n const cachedIndex = parseInt(cached, 10);\n if (cachedIndex === index) {\n delete vl.domCache[index];\n } else if (parseInt(cached, 10) > index) {\n newCache[cachedIndex - 1] = vl.domCache[cached];\n } else {\n newCache[cachedIndex] = vl.domCache[cached];\n }\n });\n vl.domCache = newCache;\n }\n }\n vl.update();\n }\n\n deleteAllItems() {\n const vl = this;\n vl.items = [];\n delete vl.filteredItems;\n if (vl.params.cache) vl.domCache = {};\n vl.update();\n }\n\n deleteItem(index) {\n const vl = this;\n vl.deleteItems([index]);\n }\n\n // Clear cache\n clearCache() {\n const vl = this;\n vl.domCache = {};\n }\n\n // Update Virtual List\n update(deleteCache) {\n const vl = this;\n if (deleteCache && vl.params.cache) {\n vl.domCache = {};\n }\n vl.heightsCalculated = [];\n vl.setListSize();\n vl.render(true);\n }\n\n init() {\n const vl = this;\n vl.attachEvents();\n vl.setListSize();\n vl.render();\n }\n\n destroy() {\n let vl = this;\n vl.detachEvents();\n vl.$el[0].f7VirtualList = null;\n delete vl.$el[0].f7VirtualList;\n deleteProps(vl);\n vl = null;\n }\n}\n\nexport default VirtualList;\n","import VirtualList from './virtual-list-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'virtualList',\n static: {\n VirtualList,\n },\n create() {\n const app = this;\n app.virtualList = ConstructorMethods({\n defaultSelector: '.virtual-list',\n constructor: VirtualList,\n app,\n domProp: 'f7VirtualList',\n });\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\nimport { getSupport } from '../../shared/get-support.js';\n\nclass ListIndex extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n const index = this;\n\n const defaults = {\n el: null, // where to render indexes\n listEl: null, // list el to generate indexes\n indexes: 'auto', // or array of indexes\n iosItemHeight: 14,\n mdItemHeight: 14,\n scrollList: true,\n label: false,\n // eslint-disable-next-line\n renderItem(itemContent, itemIndex) {\n return `\n <li>${itemContent}</li>\n `.trim();\n },\n renderSkipPlaceholder() {\n return '<li class=\"list-index-skip-placeholder\"></li>';\n },\n on: {},\n };\n\n // Extend defaults with modules params\n index.useModulesParams(defaults);\n\n index.params = extend(defaults, params);\n\n let $el;\n let $listEl;\n let $pageContentEl;\n let $ul;\n\n if (index.params.el) {\n $el = $(index.params.el);\n } else {\n return index;\n }\n\n if ($el[0].f7ListIndex) {\n return $el[0].f7ListIndex;\n }\n\n $ul = $el.find('ul');\n if ($ul.length === 0) {\n $ul = $('<ul></ul>');\n $el.append($ul);\n }\n\n if (index.params.listEl) {\n $listEl = $(index.params.listEl);\n }\n\n if (index.params.indexes === 'auto' && !$listEl) {\n return index;\n }\n\n if ($listEl) {\n $pageContentEl = $listEl.parents('.page-content').eq(0);\n } else {\n $pageContentEl = $el.siblings('.page-content').eq(0);\n if ($pageContentEl.length === 0) {\n $pageContentEl = $el.parents('.page').eq(0).find('.page-content').eq(0);\n }\n }\n\n $el[0].f7ListIndex = index;\n\n extend(index, {\n app,\n $el,\n el: $el && $el[0],\n $ul,\n ul: $ul && $ul[0],\n $listEl,\n listEl: $listEl && $listEl[0],\n $pageContentEl,\n pageContentEl: $pageContentEl && $pageContentEl[0],\n indexes: params.indexes,\n height: 0,\n skipRate: 0,\n });\n\n // Install Modules\n index.useModules();\n\n // Attach events\n function handleResize() {\n const height = { index };\n index.calcSize();\n if (height !== index.height) {\n index.render();\n }\n }\n\n function handleClick(e) {\n const $clickedLi = $(e.target).closest('li');\n if (!$clickedLi.length) return;\n\n let itemIndex = $clickedLi.index();\n if (index.skipRate > 0) {\n const percentage = itemIndex / ($clickedLi.siblings('li').length - 1);\n itemIndex = Math.round((index.indexes.length - 1) * percentage);\n }\n const itemContent = index.indexes[itemIndex];\n\n index.$el.trigger('listindex:click', { content: itemContent, index: itemIndex });\n index.emit('local::click listIndexClick', index, itemContent, itemIndex);\n index.$el.trigger('listindex:select', { content: itemContent, index: itemIndex });\n index.emit('local::select listIndexSelect', index, itemContent, itemIndex);\n\n if (index.$listEl && index.params.scrollList) {\n index.scrollListToIndex(itemContent, itemIndex);\n }\n }\n\n const touchesStart = {};\n let isTouched;\n let isMoved;\n let topPoint;\n let bottomPoint;\n let $labelEl;\n let previousIndex = null;\n function handleTouchStart(e) {\n const $children = $ul.children();\n if (!$children.length) return;\n topPoint = $children[0].getBoundingClientRect().top;\n bottomPoint =\n $children[$children.length - 1].getBoundingClientRect().top + $children[0].offsetHeight;\n\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 isTouched = true;\n isMoved = false;\n previousIndex = null;\n }\n function handleTouchMove(e) {\n if (!isTouched) return;\n if (!isMoved && index.params.label) {\n $labelEl = $('<span class=\"list-index-label\"></span>');\n $el.append($labelEl);\n }\n isMoved = true;\n const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n e.preventDefault();\n\n let percentage = (pageY - topPoint) / (bottomPoint - topPoint);\n percentage = Math.min(Math.max(percentage, 0), 1);\n\n const itemIndex = Math.round((index.indexes.length - 1) * percentage);\n const itemContent = index.indexes[itemIndex];\n\n const ulHeight = bottomPoint - topPoint;\n const bubbleBottom = (index.height - ulHeight) / 2 + (1 - percentage) * ulHeight;\n\n if (itemIndex !== previousIndex) {\n if (index.params.label) {\n $labelEl.html(itemContent).transform(`translateY(-${bubbleBottom}px)`);\n }\n\n if (index.$listEl && index.params.scrollList) {\n index.scrollListToIndex(itemContent, itemIndex);\n }\n }\n\n previousIndex = itemIndex;\n\n index.$el.trigger('listindex:select');\n index.emit('local::select listIndexSelect', index, itemContent, itemIndex);\n }\n function handleTouchEnd() {\n if (!isTouched) return;\n isTouched = false;\n isMoved = false;\n if (index.params.label) {\n if ($labelEl) $labelEl.remove();\n $labelEl = undefined;\n }\n }\n const passiveListener = getSupport().passiveListener ? { passive: true } : false;\n index.attachEvents = function attachEvents() {\n $el.parents('.tab').on('tab:show', handleResize);\n $el.parents('.page').on('page:reinit', handleResize);\n $el.parents('.panel').on('panel:open', handleResize);\n $el\n .parents('.sheet-modal, .actions-modal, .popup, .popover, .login-screen, .dialog, .toast')\n .on('modal:open', handleResize);\n app.on('resize', handleResize);\n\n $el.on('click', handleClick);\n $el.on(app.touchEvents.start, handleTouchStart, passiveListener);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n };\n index.detachEvents = function attachEvents() {\n $el.parents('.tab').off('tab:show', handleResize);\n $el.parents('.page').off('page:reinit', handleResize);\n $el.parents('.panel').off('panel:open', handleResize);\n $el\n .parents('.sheet-modal, .actions-modal, .popup, .popover, .login-screen, .dialog, .toast')\n .off('modal:open', handleResize);\n app.off('resize', handleResize);\n\n $el.off('click', handleClick);\n $el.off(app.touchEvents.start, handleTouchStart, passiveListener);\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n };\n // Init\n index.init();\n\n return index;\n }\n // eslint-disable-next-line\n scrollListToIndex(itemContent, itemIndex) {\n const index = this;\n const { $listEl, $pageContentEl, app } = index;\n if (!$listEl || !$pageContentEl || $pageContentEl.length === 0) return index;\n\n let $scrollToEl;\n $listEl.find('.list-group-title').each((el) => {\n if ($scrollToEl) return;\n const $el = $(el);\n if ($el.text() === itemContent) {\n $scrollToEl = $el;\n }\n });\n if (!$scrollToEl || $scrollToEl.length === 0) return index;\n\n const parentTop = $scrollToEl.parent().offset().top;\n let paddingTop = parseInt($pageContentEl.css('padding-top'), 10);\n const scrollTop = $pageContentEl[0].scrollTop;\n const scrollToElTop = $scrollToEl.offset().top;\n if ($pageContentEl.parents('.page-with-navbar-large').length) {\n const navbarInnerEl = app.navbar.getElByPage(\n $pageContentEl.parents('.page-with-navbar-large').eq(0),\n );\n const $titleLargeEl = $(navbarInnerEl).find('.title-large');\n if ($titleLargeEl.length) {\n paddingTop -= $titleLargeEl[0].offsetHeight || 0;\n }\n }\n\n if (parentTop <= paddingTop) {\n $pageContentEl.scrollTop(parentTop + scrollTop - paddingTop);\n } else {\n $pageContentEl.scrollTop(scrollToElTop + scrollTop - paddingTop);\n }\n return index;\n }\n\n renderSkipPlaceholder() {\n const index = this;\n return index.params.renderSkipPlaceholder.call(index);\n }\n\n renderItem(itemContent, itemIndex) {\n const index = this;\n return index.params.renderItem.call(index, itemContent, itemIndex);\n }\n\n render() {\n const index = this;\n const { $ul, indexes, skipRate } = index;\n let wasSkipped;\n\n const html = indexes\n .map((itemContent, itemIndex) => {\n if (itemIndex % skipRate !== 0 && skipRate > 0) {\n wasSkipped = true;\n return '';\n }\n let itemHtml = index.renderItem(itemContent, itemIndex);\n if (wasSkipped) {\n itemHtml = index.renderSkipPlaceholder() + itemHtml;\n }\n wasSkipped = false;\n return itemHtml;\n })\n .join('');\n\n $ul.html(html);\n\n return index;\n }\n\n calcSize() {\n const index = this;\n const { app, params, el, indexes } = index;\n const height = el.offsetHeight;\n const itemHeight = params[`${app.theme}ItemHeight`];\n const maxItems = Math.floor(height / itemHeight);\n const items = indexes.length;\n let skipRate = 0;\n if (items > maxItems) {\n skipRate = Math.ceil((items * 2 - 1) / maxItems);\n }\n\n index.height = height;\n index.skipRate = skipRate;\n\n return index;\n }\n\n calcIndexes() {\n const index = this;\n if (index.params.indexes === 'auto') {\n index.indexes = [];\n\n index.$listEl.find('.list-group-title').each((el) => {\n const elContent = $(el).text();\n if (index.indexes.indexOf(elContent) < 0) {\n index.indexes.push(elContent);\n }\n });\n } else {\n index.indexes = index.params.indexes;\n }\n return index;\n }\n\n update() {\n const index = this;\n index.calcIndexes();\n index.calcSize();\n index.render();\n\n return index;\n }\n\n init() {\n const index = this;\n index.calcIndexes();\n index.calcSize();\n index.render();\n index.attachEvents();\n }\n\n destroy() {\n let index = this;\n index.$el.trigger('listindex:beforedestroy', index);\n index.emit('local::beforeDestroy listIndexBeforeDestroy');\n index.detachEvents();\n if (index.$el[0]) {\n index.$el[0].f7ListIndex = null;\n delete index.$el[0].f7ListIndex;\n }\n deleteProps(index);\n index = null;\n }\n}\n\nexport default ListIndex;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport ListIndex from './list-index-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'listIndex',\n static: {\n ListIndex,\n },\n create() {\n const app = this;\n app.listIndex = ConstructorMethods({\n defaultSelector: '.list-index',\n constructor: ListIndex,\n app,\n domProp: 'f7ListIndex',\n });\n },\n on: {\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('.list-index-init')\n .each((listIndexEl) => {\n const params = extend($(listIndexEl).dataset(), { el: listIndexEl });\n app.listIndex.create(params);\n });\n },\n tabBeforeRemove(tabEl) {\n $(tabEl)\n .find('.list-index-init')\n .each((listIndexEl) => {\n if (listIndexEl.f7ListIndex) listIndexEl.f7ListIndex.destroy();\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.list-index-init').each((listIndexEl) => {\n const params = extend($(listIndexEl).dataset(), { el: listIndexEl });\n app.listIndex.create(params);\n });\n },\n pageBeforeRemove(page) {\n page.$el.find('.list-index-init').each((listIndexEl) => {\n if (listIndexEl.f7ListIndex) listIndexEl.f7ListIndex.destroy();\n });\n },\n },\n vnode: {\n 'list-index-init': {\n insert(vnode) {\n const app = this;\n const listIndexEl = vnode.elm;\n const params = extend($(listIndexEl).dataset(), { el: listIndexEl });\n app.listIndex.create(params);\n },\n destroy(vnode) {\n const listIndexEl = vnode.elm;\n if (listIndexEl.f7ListIndex) listIndexEl.f7ListIndex.destroy();\n },\n },\n },\n};\n","export default {\n name: 'timeline',\n};\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\n\nconst Tab = {\n show(...args) {\n const app = this;\n\n let tabEl;\n let tabLinkEl;\n let animate;\n let tabRoute;\n let animatedInit;\n if (args.length === 1 && args[0] && args[0].constructor === Object) {\n tabEl = args[0].tabEl;\n tabLinkEl = args[0].tabLinkEl;\n animate = args[0].animate;\n tabRoute = args[0].tabRoute;\n animatedInit = args[0].animatedInit;\n } else {\n [tabEl, tabLinkEl, animate, tabRoute] = args;\n if (typeof args[1] === 'boolean') {\n [tabEl, animate, tabLinkEl, tabRoute] = args;\n if (args.length > 2 && tabLinkEl.constructor === Object) {\n [tabEl, animate, tabRoute, tabLinkEl] = args;\n }\n }\n }\n if (typeof animate === 'undefined') animate = true;\n\n const $newTabEl = $(tabEl);\n if (tabRoute && $newTabEl[0]) {\n $newTabEl[0].f7TabRoute = tabRoute;\n }\n\n if (!animatedInit && ($newTabEl.length === 0 || $newTabEl.hasClass('tab-active'))) {\n return {\n $newTabEl,\n newTabEl: $newTabEl[0],\n };\n }\n\n let $tabLinkEl;\n if (tabLinkEl) $tabLinkEl = $(tabLinkEl);\n\n const $tabsEl = $newTabEl.parent('.tabs');\n if ($tabsEl.length === 0) {\n return {\n $newTabEl,\n newTabEl: $newTabEl[0],\n };\n }\n\n // Release swipeouts in hidden tabs\n if (app.swipeout) app.swipeout.allowOpen = true;\n\n // Animated tabs\n const tabsChangedCallbacks = [];\n\n function onTabsChanged(callback) {\n tabsChangedCallbacks.push(callback);\n }\n function tabsChanged() {\n tabsChangedCallbacks.forEach((callback) => {\n callback();\n });\n }\n\n let animated = false;\n\n if ($tabsEl.parent().hasClass('tabs-animated-wrap')) {\n $tabsEl.parent()[animate ? 'removeClass' : 'addClass']('not-animated');\n\n const transitionDuration = parseFloat($tabsEl.css('transition-duration').replace(',', '.'));\n if (animate && transitionDuration) {\n $tabsEl.transitionEnd(tabsChanged);\n animated = true;\n }\n\n const tabsTranslate = (app.rtl ? $newTabEl.index() : -$newTabEl.index()) * 100;\n $tabsEl.transform(`translate3d(${tabsTranslate}%,0,0)`);\n }\n\n // Swipeable tabs\n let swiper;\n if ($tabsEl[0].nodeName.toLowerCase() === 'swiper-container' && app.swiper) {\n swiper = $tabsEl[0].swiper;\n const newTabIndex = swiper.slides.indexOf($newTabEl[0]);\n if (swiper && swiper.activeIndex !== newTabIndex) {\n animated = true;\n swiper\n .once('slideChangeTransitionEnd', () => {\n tabsChanged();\n })\n .slideTo(newTabIndex, animate ? undefined : 0);\n } else if (swiper && swiper.animating) {\n animated = true;\n swiper.once('slideChangeTransitionEnd', () => {\n tabsChanged();\n });\n }\n }\n\n // Remove active class from old tabs\n const $oldTabEl = $tabsEl.children('.tab-active');\n $oldTabEl.removeClass('tab-active');\n if (!animatedInit && (!swiper || (swiper && !swiper.animating) || (swiper && tabRoute))) {\n if ($oldTabEl.hasClass('view') && $oldTabEl.children('.page').length) {\n $oldTabEl.children('.page').each((pageEl) => {\n $(pageEl).trigger('page:tabhide');\n app.emit('pageTabHide', pageEl);\n });\n }\n $oldTabEl.trigger('tab:hide');\n app.emit('tabHide', $oldTabEl[0]);\n }\n\n // Trigger 'show' event on new tab\n $newTabEl.addClass('tab-active');\n if (!animatedInit && (!swiper || (swiper && !swiper.animating) || (swiper && tabRoute))) {\n if ($newTabEl.hasClass('view') && $newTabEl.children('.page').length) {\n $newTabEl.children('.page').each((pageEl) => {\n $(pageEl).trigger('page:tabshow');\n app.emit('pageTabShow', pageEl);\n });\n }\n $newTabEl.trigger('tab:show');\n app.emit('tabShow', $newTabEl[0]);\n }\n\n // Find related link for new tab\n if (!$tabLinkEl) {\n // Search by id\n if (typeof tabEl === 'string') $tabLinkEl = $(`.tab-link[href=\"${tabEl}\"]`);\n else $tabLinkEl = $(`.tab-link[href=\"#${$newTabEl.attr('id')}\"]`);\n // Search by data-tab\n if (!$tabLinkEl || ($tabLinkEl && $tabLinkEl.length === 0)) {\n $('[data-tab]').each((el) => {\n if ($newTabEl.is($(el).attr('data-tab'))) $tabLinkEl = $(el);\n });\n }\n if (tabRoute && (!$tabLinkEl || ($tabLinkEl && $tabLinkEl.length === 0))) {\n $tabLinkEl = $(`[data-route-tab-id=\"${tabRoute.route.tab.id}\"]`);\n if ($tabLinkEl.length === 0) {\n $tabLinkEl = $(`.tab-link[href=\"${tabRoute.url}\"]`);\n }\n }\n if ($tabLinkEl.length > 1 && $newTabEl.parents('.page').length) {\n // eslint-disable-next-line\n $tabLinkEl = $tabLinkEl.filter((tabLinkElement) => {\n return $(tabLinkElement).parents('.page')[0] === $newTabEl.parents('.page')[0];\n });\n if (app.theme === 'ios' && $tabLinkEl.length === 0 && tabRoute) {\n const $pageEl = $newTabEl.parents('.page');\n const $navbarEl = $(app.navbar.getElByPage($pageEl));\n $tabLinkEl = $navbarEl.find(`[data-route-tab-id=\"${tabRoute.route.tab.id}\"]`);\n if ($tabLinkEl.length === 0) {\n $tabLinkEl = $navbarEl.find(`.tab-link[href=\"${tabRoute.url}\"]`);\n }\n }\n }\n }\n if ($tabLinkEl.length > 0) {\n // Find related link for old tab\n let $oldTabLinkEl;\n if ($oldTabEl && $oldTabEl.length > 0) {\n // Search by id\n const oldTabId = $oldTabEl.attr('id');\n if (oldTabId) {\n $oldTabLinkEl = $(`.tab-link[href=\"#${oldTabId}\"]`);\n // Search by data-route-tab-id\n if (!$oldTabLinkEl || ($oldTabLinkEl && $oldTabLinkEl.length === 0)) {\n $oldTabLinkEl = $(`.tab-link[data-route-tab-id=\"${oldTabId}\"]`);\n }\n }\n // Search by data-tab\n if (!$oldTabLinkEl || ($oldTabLinkEl && $oldTabLinkEl.length === 0)) {\n $('[data-tab]').each((tabLinkElement) => {\n if ($oldTabEl.is($(tabLinkElement).attr('data-tab'))) $oldTabLinkEl = $(tabLinkElement);\n });\n }\n if (!$oldTabLinkEl || ($oldTabLinkEl && $oldTabLinkEl.length === 0)) {\n $oldTabLinkEl = $tabLinkEl.siblings('.tab-link-active');\n }\n } else if (tabRoute) {\n $oldTabLinkEl = $tabLinkEl.siblings('.tab-link-active');\n }\n\n if (\n $oldTabLinkEl &&\n $oldTabLinkEl.length > 1 &&\n $oldTabEl &&\n $oldTabEl.parents('.page').length\n ) {\n // eslint-disable-next-line\n $oldTabLinkEl = $oldTabLinkEl.filter((tabLinkElement) => {\n return $(tabLinkElement).parents('.page')[0] === $oldTabEl.parents('.page')[0];\n });\n }\n\n if ($oldTabLinkEl && $oldTabLinkEl.length > 0) $oldTabLinkEl.removeClass('tab-link-active');\n\n // Update links' classes\n if ($tabLinkEl && $tabLinkEl.length > 0) {\n $tabLinkEl.addClass('tab-link-active');\n // Material Highlight\n const $tabbarEl = $tabLinkEl.parents('.tabbar, .tabbar-icons');\n const hasHighlight =\n app.toolbar &&\n $tabbarEl.length > 0 &&\n ($tabbarEl.hasClass('tabbar-highlight') || app.theme !== 'ios');\n if (hasHighlight) {\n app.toolbar.setHighlight($tabbarEl);\n }\n }\n }\n return {\n $newTabEl,\n newTabEl: $newTabEl[0],\n $oldTabEl,\n oldTabEl: $oldTabEl[0],\n onTabsChanged,\n animated,\n };\n },\n};\nexport default {\n name: 'tabs',\n create() {\n const app = this;\n extend(app, {\n tab: {\n show: Tab.show.bind(app),\n },\n });\n },\n on: {\n 'pageInit tabMounted': function onInit(pageOrTabEl) {\n const $el = $(pageOrTabEl.el || pageOrTabEl);\n const animatedTabEl = $el.find('.tabs-animated-wrap > .tabs > .tab-active')[0];\n if (!animatedTabEl) return;\n const app = this;\n app.tab.show({ tabEl: animatedTabEl, animatedInit: true, animate: false });\n },\n },\n clicks: {\n '.tab-link': function tabLinkClick($clickedEl, data = {}) {\n if (\n ($clickedEl.attr('href') && $clickedEl.attr('href').indexOf('#') === 0) ||\n $clickedEl.attr('data-tab')\n ) {\n const app = this;\n app.tab.show({\n tabEl: data.tab || $clickedEl.attr('href'),\n tabLinkEl: $clickedEl,\n animate: data.animate,\n });\n }\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend, now, nextFrame } from '../../shared/utils.js';\n\nfunction swipePanel(panel) {\n const app = panel.app;\n if (panel.swipeInitialized) {\n return;\n }\n extend(panel, {\n swipeable: true,\n swipeInitialized: true,\n });\n const params = panel.params;\n const { $el, $backdropEl, side, effect } = panel;\n let otherPanel;\n\n let isTouched;\n let isGestureStarted;\n let isMoved;\n let isScrolling;\n let isInterrupted;\n const touchesStart = {};\n let touchStartTime;\n let touchesDiff;\n let translate;\n let backdropOpacity;\n let panelWidth;\n let direction;\n\n let $viewEl;\n\n let touchMoves = 0;\n function handleTouchStart(e) {\n if (!panel.swipeable || isGestureStarted) return;\n if (!app.panel.allowOpen || (!params.swipe && !params.swipeOnlyClose) || isTouched) return;\n if ($('.modal-in:not(.toast):not(.notification), .photo-browser-in').length > 0) return;\n otherPanel = app.panel.get(side === 'left' ? 'right' : 'left') || {};\n const otherPanelOpened =\n otherPanel.opened && otherPanel.$el && !otherPanel.$el.hasClass('panel-in-breakpoint');\n if (!panel.opened && otherPanelOpened) {\n return;\n }\n if (!params.swipeOnlyClose) {\n if (otherPanelOpened) return;\n }\n if (e.target && e.target.nodeName.toLowerCase() === 'input' && e.target.type === 'range')\n return;\n if (\n $(e.target).closest(\n '.range-slider, swiper-container.tabs, .calendar-months, .no-swipe-panel, .card-opened',\n ).length > 0\n )\n 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 if (params.swipeOnlyClose && !panel.opened) {\n return;\n }\n if (params.swipeActiveArea && !panel.opened) {\n if (side === 'left') {\n if (touchesStart.x > params.swipeActiveArea) return;\n }\n if (side === 'right') {\n if (touchesStart.x < app.width - params.swipeActiveArea) return;\n }\n }\n touchMoves = 0;\n $viewEl = $(panel.getViewEl());\n isMoved = false;\n isTouched = true;\n isScrolling = undefined;\n isInterrupted = false;\n\n touchStartTime = now();\n direction = undefined;\n }\n function handleTouchMove(e) {\n if (!isTouched || isGestureStarted || isInterrupted) return;\n touchMoves += 1;\n if (touchMoves < 2) return;\n if (e.f7PreventSwipePanel || app.preventSwipePanelBySwipeBack || app.preventSwipePanel) {\n isTouched = false;\n return;\n }\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(\n isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)\n );\n }\n if (isScrolling) {\n isTouched = false;\n return;\n }\n if (!direction) {\n if (pageX > touchesStart.x) {\n direction = 'to-right';\n } else {\n direction = 'to-left';\n }\n\n if (params.swipeActiveArea > 0 && !panel.opened) {\n if (side === 'left' && touchesStart.x > params.swipeActiveArea) {\n isTouched = false;\n return;\n }\n if (side === 'right' && touchesStart.x < app.width - params.swipeActiveArea) {\n isTouched = false;\n return;\n }\n }\n if ($el.hasClass('panel-in-breakpoint')) {\n isTouched = false;\n return;\n }\n\n if (\n (side === 'left' && direction === 'to-left' && !$el.hasClass('panel-in')) ||\n (side === 'right' && direction === 'to-right' && !$el.hasClass('panel-in'))\n ) {\n isTouched = false;\n return;\n }\n }\n\n let threshold = panel.opened ? 0 : -params.swipeThreshold;\n if (side === 'right') threshold = -threshold;\n\n if (!isMoved) {\n if (!panel.opened) {\n panel.insertToRoot();\n $el.addClass('panel-in-swipe');\n if ($backdropEl) $backdropEl.css('visibility', 'visible');\n $el.trigger('panel:swipeopen');\n panel.emit('local::swipeOpen panelSwipeOpen', panel);\n }\n panelWidth = $el[0].offsetWidth;\n if (effect === 'reveal' && $el.hasClass('panel-in-collapsed')) {\n panelWidth -= parseFloat($viewEl.css(`margin-${side}`));\n }\n $el.transition(0);\n }\n\n isMoved = true;\n if (e.cancelable) {\n e.preventDefault();\n }\n\n touchesDiff = pageX - touchesStart.x + threshold;\n\n const startTranslate = effect === 'floating' ? 8 : 0;\n if (side === 'right') {\n if (effect === 'cover' || effect === 'push' || effect === 'floating') {\n translate = touchesDiff + (panel.opened ? startTranslate : panelWidth);\n if (translate < 0 - startTranslate) translate = -startTranslate;\n if (translate > panelWidth) {\n translate = panelWidth;\n }\n } else {\n translate = touchesDiff - (panel.opened ? panelWidth : 0);\n if (translate > 0) translate = 0;\n if (translate < -panelWidth) {\n translate = -panelWidth;\n }\n }\n } else {\n translate = touchesDiff + (panel.opened ? panelWidth : startTranslate);\n if (translate < 0) translate = 0;\n if (translate > panelWidth + startTranslate) {\n translate = panelWidth + startTranslate;\n }\n }\n const noFollowProgress = Math.abs(translate / panelWidth);\n if (effect === 'reveal') {\n if (!params.swipeNoFollow) {\n $viewEl.transform(`translate3d(${translate}px,0,0)`).transition(0);\n if ($backdropEl) $backdropEl.transform(`translate3d(${translate}px,0,0)`).transition(0);\n }\n\n $el.trigger('panel:swipe', Math.abs(translate / panelWidth));\n panel.emit('local::swipe panelSwipe', panel, Math.abs(translate / panelWidth));\n } else {\n if (side === 'left') translate -= panelWidth;\n if (!params.swipeNoFollow) {\n backdropOpacity = 1 - Math.abs(translate / panelWidth);\n if ($backdropEl) {\n $backdropEl.transition(0);\n $backdropEl.css({ opacity: backdropOpacity });\n }\n\n $el.transform(`translate3d(${translate}px,0,0)`).transition(0);\n if (effect === 'push') {\n const viewTranslate = side === 'left' ? translate + panelWidth : translate - panelWidth;\n $viewEl.transform(`translate3d(${viewTranslate}px,0,0)`).transition(0);\n if ($backdropEl) {\n $backdropEl.transform(`translate3d(${viewTranslate}px,0,0)`).transition(0);\n }\n }\n }\n\n $el.trigger('panel:swipe', Math.abs(translate / panelWidth));\n panel.emit('local::swipe panelSwipe', panel, Math.abs(translate / panelWidth));\n }\n\n if (params.swipeNoFollow) {\n const stateChanged =\n (panel.opened && noFollowProgress === 0) || (!panel.opened && noFollowProgress === 1);\n if (stateChanged) {\n isInterrupted = true;\n // eslint-disable-next-line\n handleTouchEnd(e);\n }\n }\n }\n function handleTouchEnd(e) {\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n const isGesture = e.type === 'gesturestart' || isGestureStarted;\n isTouched = false;\n isMoved = false;\n const timeDiff = new Date().getTime() - touchStartTime;\n let action;\n const startTranslate = effect === 'floating' ? (side === 'left' ? 8 : -8) : 0;\n const edge =\n (translate === startTranslate || Math.abs(translate) === panelWidth) && !params.swipeNoFollow;\n const threshold = params.swipeThreshold || 0;\n if (isGesture) {\n action = 'reset';\n } else if (!panel.opened) {\n if (Math.abs(touchesDiff) < threshold) {\n action = 'reset';\n } else if (effect === 'cover' || effect === 'push' || effect === 'floating') {\n if (translate === 0 + startTranslate) {\n action = 'swap'; // open\n } else if (timeDiff < 300 && Math.abs(translate) > 0) {\n action = 'swap'; // open\n } else if (timeDiff >= 300 && Math.abs(translate) < panelWidth / 2) {\n action = 'swap'; // open\n } else {\n action = 'reset'; // close\n }\n } else if (translate === 0) {\n action = 'reset';\n } else if (\n (timeDiff < 300 && Math.abs(translate) > 0) ||\n (timeDiff >= 300 && Math.abs(translate) >= panelWidth / 2)\n ) {\n action = 'swap';\n } else {\n action = 'reset';\n }\n } else if (effect === 'cover' || effect === 'push' || effect === 'floating') {\n if (translate === 0) {\n action = 'reset'; // open\n } else if (timeDiff < 300 && Math.abs(translate) > 0) {\n action = 'swap'; // open\n } else if (timeDiff >= 300 && Math.abs(translate) < panelWidth / 2) {\n action = 'reset'; // open\n } else {\n action = 'swap'; // close\n }\n } else if (translate === -panelWidth) {\n action = 'reset';\n } else if (\n (timeDiff < 300 && Math.abs(translate) >= 0) ||\n (timeDiff >= 300 && Math.abs(translate) <= panelWidth / 2)\n ) {\n if (side === 'left' && translate === panelWidth) action = 'reset';\n else action = 'swap';\n } else {\n action = 'reset';\n }\n if (action === 'swap') {\n if (panel.opened) {\n panel.close(!edge);\n } else {\n panel.open(!edge);\n }\n }\n let removePanelInClass = true;\n if (action === 'reset') {\n if (!panel.opened) {\n if (edge) {\n // edge position\n $el.removeClass('panel-in-swipe');\n } else {\n removePanelInClass = false;\n const target = effect === 'reveal' ? $viewEl : $el;\n panel.setStateClasses('before-closing');\n target.transitionEnd(() => {\n if ($el.hasClass('panel-in')) return;\n $el.removeClass('panel-in-swipe');\n panel.setStateClasses('after-closing');\n });\n }\n }\n }\n if (effect === 'reveal' || effect === 'push') {\n nextFrame(() => {\n $viewEl.transition('');\n $viewEl.transform('');\n });\n }\n if (removePanelInClass) {\n $el.removeClass('panel-in-swipe');\n }\n $el.transition('').transform('');\n if ($backdropEl) {\n $backdropEl.transform('').transition('').css({ opacity: '', visibility: '' });\n }\n }\n function handleGestureStart(e) {\n isGestureStarted = true;\n handleTouchEnd(e);\n }\n function handleGestureEnd() {\n isGestureStarted = false;\n }\n\n // Add Events\n app.on('touchstart:passive', handleTouchStart);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n app.on('gesturestart', handleGestureStart);\n app.on('gestureend', handleGestureEnd);\n panel.on('panelDestroy', () => {\n app.off('touchstart:passive', handleTouchStart);\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n app.off('gesturestart', handleGestureStart);\n app.off('gestureend', handleGestureEnd);\n });\n}\n\nexport default swipePanel;\n","import $ from '../../shared/dom7.js';\nimport { extend, nextFrame } from '../../shared/utils.js';\nimport { getSupport } from '../../shared/get-support.js';\n\nfunction resizablePanel(panel) {\n const app = panel.app;\n const support = getSupport();\n if (panel.resizableInitialized) return;\n extend(panel, {\n resizable: true,\n resizableWidth: null,\n resizableInitialized: true,\n });\n const $htmlEl = $('html');\n const { $el, $backdropEl, side, effect } = panel;\n if (!$el) return;\n\n let isTouched;\n let isMoved;\n const touchesStart = {};\n let touchesDiff;\n let panelWidth;\n\n let $viewEl;\n\n let panelMinWidth;\n let panelMaxWidth;\n let visibleByBreakpoint;\n\n const isPushingPanel = effect !== 'cover' && effect !== 'floating';\n\n function transformCSSWidth(v) {\n if (!v) return null;\n if (v.indexOf('%') >= 0 || v.indexOf('vw') >= 0) {\n return (parseInt(v, 10) / 100) * app.width;\n }\n const newV = parseInt(v, 10);\n if (Number.isNaN(newV)) return null;\n return newV;\n }\n\n function isResizable() {\n return panel.resizable && $el.hasClass('panel-resizable');\n }\n\n function handleTouchStart(e) {\n if (!isResizable()) return;\n touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n isMoved = false;\n isTouched = true;\n panelMinWidth = transformCSSWidth($el.css('min-width'));\n panelMaxWidth = transformCSSWidth($el.css('max-width'));\n visibleByBreakpoint = $el.hasClass('panel-in-breakpoint');\n }\n function handleTouchMove(e) {\n if (!isTouched) return;\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n\n if (!isMoved) {\n panelWidth = $el[0].offsetWidth;\n $el.transition(0);\n $el.addClass('panel-resizing');\n $htmlEl.css('cursor', 'col-resize');\n if (isPushingPanel || visibleByBreakpoint) {\n $viewEl = $(panel.getViewEl());\n if (panel.$containerEl && panel.$containerEl.hasClass('page')) {\n $viewEl.add(panel.$containerEl.children('.page-content, .tabs, .fab'));\n }\n }\n if (isPushingPanel && !visibleByBreakpoint) {\n $backdropEl.transition(0);\n $viewEl.transition(0);\n }\n }\n\n isMoved = true;\n\n e.preventDefault();\n\n touchesDiff = pageX - touchesStart.x;\n\n let newPanelWidth = side === 'left' ? panelWidth + touchesDiff : panelWidth - touchesDiff;\n if (panelMinWidth && !Number.isNaN(panelMinWidth)) {\n newPanelWidth = Math.max(newPanelWidth, panelMinWidth);\n }\n if (panelMaxWidth && !Number.isNaN(panelMaxWidth)) {\n newPanelWidth = Math.min(newPanelWidth, panelMaxWidth);\n }\n newPanelWidth = Math.min(Math.max(newPanelWidth, 0), app.width);\n\n panel.resizableWidth = newPanelWidth;\n $el[0].style.width = `${newPanelWidth}px`;\n if (isPushingPanel && !visibleByBreakpoint) {\n if ($viewEl) {\n $viewEl.transform(\n `translate3d(${side === 'left' ? newPanelWidth : -newPanelWidth}px, 0, 0)`,\n );\n }\n if ($backdropEl) {\n $backdropEl.transform(\n `translate3d(${side === 'left' ? newPanelWidth : -newPanelWidth}px, 0, 0)`,\n );\n }\n } else if (visibleByBreakpoint && $viewEl) {\n $viewEl.css(`margin-${side}`, `${newPanelWidth}px`);\n }\n\n $el.trigger('panel:resize', newPanelWidth);\n panel.emit('local::resize panelResize', panel, newPanelWidth);\n }\n function handleTouchEnd() {\n $('html').css('cursor', '');\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n isTouched = false;\n isMoved = false;\n\n $htmlEl[0].style.setProperty(`--f7-panel-${side}-width`, `${panel.resizableWidth}px`);\n $el[0].style.width = '';\n if (isPushingPanel && !visibleByBreakpoint) {\n $viewEl.transform('');\n $backdropEl.transform('');\n }\n $el.removeClass('panel-resizing');\n nextFrame(() => {\n $el.transition('');\n if (isPushingPanel) {\n $backdropEl.transition('');\n if ($viewEl) $viewEl.transition('');\n }\n });\n }\n\n function handleResize() {\n if (!panel.opened || !panel.resizableWidth) return;\n panelMinWidth = transformCSSWidth($el.css('min-width'));\n panelMaxWidth = transformCSSWidth($el.css('max-width'));\n\n if (panelMinWidth && !Number.isNaN(panelMinWidth) && panel.resizableWidth < panelMinWidth) {\n panel.resizableWidth = Math.max(panel.resizableWidth, panelMinWidth);\n }\n if (panelMaxWidth && !Number.isNaN(panelMaxWidth) && panel.resizableWidth > panelMaxWidth) {\n panel.resizableWidth = Math.min(panel.resizableWidth, panelMaxWidth);\n }\n panel.resizableWidth = Math.min(Math.max(panel.resizableWidth, 0), app.width);\n\n $htmlEl[0].style.setProperty(`--f7-panel-${side}-width`, `${panel.resizableWidth}px`);\n }\n\n if (panel.$el.find('.panel-resize-handler').length === 0) {\n panel.$el.append('<div class=\"panel-resize-handler\"></div>');\n }\n panel.$resizeHandlerEl = panel.$el.children('.panel-resize-handler');\n\n $el.addClass('panel-resizable');\n\n // Add Events\n const passive = support.passiveListener ? { passive: true } : false;\n\n panel.$el.on(app.touchEvents.start, '.panel-resize-handler', handleTouchStart, passive);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n app.on('resize', handleResize);\n panel.on('beforeOpen', handleResize);\n\n panel.once('panelDestroy', () => {\n $el.removeClass('panel-resizable');\n panel.$resizeHandlerEl.remove();\n panel.$el.off(app.touchEvents.start, '.panel-resize-handler', handleTouchStart, passive);\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n app.off('resize', handleResize);\n panel.off('beforeOpen', handleResize);\n });\n}\n\nexport default resizablePanel;\n","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\nimport swipePanel from './swipe-panel.js';\nimport resizablePanel from './resizable-panel.js';\n\nclass Panel extends Framework7Class {\n constructor(app, params = {}) {\n const extendedParams = extend({ on: {} }, app.params.panel, params);\n super(extendedParams, [app]);\n\n const panel = this;\n\n panel.params = extendedParams;\n panel.$containerEl = panel.params.containerEl ? $(panel.params.containerEl).eq(0) : app.$el;\n panel.containerEl = panel.$containerEl[0];\n if (!panel.containerEl) {\n panel.$containerEl = app.$el;\n panel.containerEl = app.$el[0];\n }\n\n let $el;\n if (panel.params.el) {\n $el = $(panel.params.el).eq(0);\n } else if (panel.params.content) {\n $el = $(panel.params.content)\n .filter((node) => node.nodeType === 1)\n .eq(0);\n }\n\n if ($el.length === 0) return panel;\n if ($el[0].f7Panel) return $el[0].f7Panel;\n\n $el[0].f7Panel = panel;\n\n let { side, effect, resizable } = panel.params;\n if (typeof side === 'undefined') side = $el.hasClass('panel-left') ? 'left' : 'right';\n if (typeof effect === 'undefined')\n // eslint-disable-next-line\n effect = $el.hasClass('panel-cover')\n ? 'cover'\n : $el.hasClass('panel-push')\n ? 'push'\n : $el.hasClass('panel-floating')\n ? 'floating'\n : 'reveal';\n if (typeof resizable === 'undefined') resizable = $el.hasClass('panel-resizable');\n\n let $backdropEl;\n if (panel.params.backdrop && panel.params.backdropEl) {\n $backdropEl = $(panel.params.backdropEl);\n } else if (panel.params.backdrop) {\n $backdropEl = panel.$containerEl.children('.panel-backdrop');\n if ($backdropEl.length === 0) {\n $backdropEl = $('<div class=\"panel-backdrop\"></div>');\n panel.$containerEl.prepend($backdropEl);\n }\n }\n\n extend(panel, {\n app,\n side,\n effect,\n resizable,\n $el,\n el: $el[0],\n opened: false,\n $backdropEl,\n backdropEl: $backdropEl && $backdropEl[0],\n });\n\n // Install Modules\n panel.useModules();\n\n // Init\n panel.init();\n\n return panel;\n }\n\n getViewEl() {\n const panel = this;\n let viewEl;\n if (panel.$containerEl.children('.views').length > 0) {\n viewEl = panel.$containerEl.children('.views')[0];\n } else {\n viewEl = panel.$containerEl.children('.view')[0];\n }\n return viewEl;\n }\n\n setStateClasses(state) {\n const panel = this;\n const { side, el, effect } = panel;\n\n const viewEl = panel.getViewEl();\n const panelInView = viewEl && viewEl.contains(el);\n const $targetEl = !viewEl || panelInView ? panel.$containerEl : $('html');\n if (state === 'open') {\n $targetEl.addClass(`with-panel with-panel-${panel.side}-${panel.effect}`);\n }\n if (state === 'before-closing') {\n $targetEl.addClass('with-panel-closing');\n }\n if (state === 'closing') {\n $targetEl.addClass('with-panel-closing');\n $targetEl.removeClass(`with-panel with-panel-${panel.side}-${panel.effect}`);\n }\n if (state === 'after-closing') {\n $targetEl.removeClass('with-panel-closing');\n }\n if (state === 'closed') {\n $targetEl.removeClass(`with-panel-${side}-${effect}`);\n }\n }\n\n enableVisibleBreakpoint() {\n const panel = this;\n panel.visibleBreakpointDisabled = false;\n panel.setVisibleBreakpoint();\n return panel;\n }\n\n disableVisibleBreakpoint() {\n const panel = this;\n panel.visibleBreakpointDisabled = true;\n panel.setVisibleBreakpoint();\n return panel;\n }\n\n toggleVisibleBreakpoint() {\n const panel = this;\n panel.visibleBreakpointDisabled = !panel.visibleBreakpointDisabled;\n panel.setVisibleBreakpoint();\n return panel;\n }\n\n setVisibleBreakpoint(emitEvents = true) {\n const panel = this;\n const app = panel.app;\n if (!panel.visibleBreakpointResizeHandler) {\n panel.visibleBreakpointResizeHandler = function visibleBreakpointResizeHandler() {\n panel.setVisibleBreakpoint();\n };\n app.on('resize', panel.visibleBreakpointResizeHandler);\n }\n const { side, $el, $containerEl, params, visibleBreakpointDisabled } = panel;\n const breakpoint = params.visibleBreakpoint;\n const $viewEl = $(panel.getViewEl());\n const wasVisible = $el.hasClass('panel-in-breakpoint');\n if ($containerEl && $containerEl.hasClass('page')) {\n $viewEl.add($containerEl.children('.page-content, .tabs, .fab'));\n }\n\n if (\n app.width >= breakpoint &&\n typeof breakpoint !== 'undefined' &&\n breakpoint !== null &&\n !visibleBreakpointDisabled\n ) {\n if (!wasVisible) {\n panel.setStateClasses('closed');\n $el.addClass('panel-in-breakpoint').removeClass('panel-in panel-in-collapsed');\n panel.onOpen(false);\n panel.onOpened();\n $viewEl.css({\n [`margin-${side}`]: `${$el.width()}px`,\n });\n app.allowPanelOpen = true;\n if (emitEvents) {\n panel.emit('local::breakpoint panelBreakpoint', panel);\n panel.$el.trigger('panel:breakpoint');\n }\n } else {\n $viewEl.css({\n [`margin-${side}`]: `${$el.width()}px`,\n });\n }\n } else if (wasVisible) {\n $el.removeClass('panel-in-breakpoint panel-in');\n panel.onClose();\n panel.onClosed();\n $viewEl.css({\n [`margin-${side}`]: '',\n });\n if (emitEvents) {\n panel.emit('local::breakpoint panelBreakpoint', panel);\n panel.$el.trigger('panel:breakpoint');\n }\n }\n }\n\n enableCollapsedBreakpoint() {\n const panel = this;\n panel.collapsedBreakpointDisabled = false;\n panel.setCollapsedBreakpoint();\n return panel;\n }\n\n disableCollapsedBreakpoint() {\n const panel = this;\n panel.collapsedBreakpointDisabled = true;\n panel.setCollapsedBreakpoint();\n return panel;\n }\n\n toggleCollapsedBreakpoint() {\n const panel = this;\n panel.collapsedBreakpointDisabled = !panel.collapsedBreakpointDisabled;\n panel.setCollapsedBreakpoint();\n return panel;\n }\n\n setCollapsedBreakpoint(emitEvents = true) {\n const panel = this;\n const app = panel.app;\n if (!panel.collapsedBreakpointResizeHandler) {\n panel.collapsedBreakpointResizeHandler = function collapsedBreakpointResizeHandler() {\n panel.setCollapsedBreakpoint();\n };\n app.on('resize', panel.collapsedBreakpointResizeHandler);\n }\n const { $el, params, collapsedBreakpointDisabled } = panel;\n if ($el.hasClass('panel-in-breakpoint')) return;\n const breakpoint = params.collapsedBreakpoint;\n const wasVisible = $el.hasClass('panel-in-collapsed');\n\n if (\n app.width >= breakpoint &&\n typeof breakpoint !== 'undefined' &&\n breakpoint !== null &&\n !collapsedBreakpointDisabled\n ) {\n if (!wasVisible) {\n panel.setStateClasses('closed');\n $el.addClass('panel-in-collapsed').removeClass('panel-in');\n panel.collapsed = true;\n app.allowPanelOpen = true;\n if (emitEvents) {\n panel.emit('local::collapsedBreakpoint panelCollapsedBreakpoint', panel);\n panel.$el.trigger('panel:collapsedbreakpoint');\n }\n }\n } else if (wasVisible) {\n $el.removeClass('panel-in-collapsed panel-in');\n panel.collapsed = false;\n if (emitEvents) {\n panel.emit('local::collapsedBreakpoint panelCollapsedBreakpoint', panel);\n panel.$el.trigger('panel:collapsedbreakpoint');\n }\n }\n }\n\n enableResizable() {\n const panel = this;\n if (panel.resizableInitialized) {\n panel.resizable = true;\n panel.$el.addClass('panel-resizable');\n } else {\n resizablePanel(panel);\n }\n return panel;\n }\n\n disableResizable() {\n const panel = this;\n panel.resizable = false;\n panel.$el.removeClass('panel-resizable');\n return panel;\n }\n\n enableSwipe() {\n const panel = this;\n if (panel.swipeInitialized) {\n panel.swipeable = true;\n } else {\n swipePanel(panel);\n }\n return panel;\n }\n\n disableSwipe() {\n const panel = this;\n panel.swipeable = false;\n return panel;\n }\n\n onOpen(modifyHtmlClasses = true) {\n const panel = this;\n // eslint-disable-next-line\n panel._openTransitionStarted = false;\n const app = panel.app;\n\n panel.opened = true;\n app.panel.allowOpen = false;\n\n panel.$el.trigger('panel:beforeopen');\n panel.emit('local::beforeOpen panelBeforeOpen', panel);\n\n if (modifyHtmlClasses) {\n panel.setStateClasses('open');\n }\n\n panel.$el.trigger('panel:open');\n panel.emit('local::open panelOpen', panel);\n }\n\n onOpened() {\n const panel = this;\n const app = panel.app;\n\n app.panel.allowOpen = true;\n\n panel.$el.trigger('panel:opened');\n panel.emit('local::opened panelOpened', panel);\n }\n\n onClose() {\n const panel = this;\n const app = panel.app;\n\n panel.opened = false;\n app.panel.allowOpen = false;\n\n panel.$el.trigger('panel:beforeclose');\n panel.emit('local::beforeClose panelBeforeClose', panel);\n\n panel.setStateClasses('closing');\n\n panel.$el.trigger('panel:close');\n panel.emit('local::close panelClose', panel);\n }\n\n onClosed() {\n const panel = this;\n const app = panel.app;\n app.panel.allowOpen = true;\n panel.setStateClasses('after-closing');\n panel.$el.removeClass('panel-out');\n if (panel.$backdropEl) {\n const otherPanel = app.panel.get('.panel-in');\n const shouldHideBackdrop = !otherPanel || (otherPanel && !otherPanel.$backdropEl);\n if (shouldHideBackdrop) {\n panel.$backdropEl.removeClass('panel-backdrop-in');\n }\n }\n panel.$el.trigger('panel:closed');\n panel.emit('local::closed panelClosed', panel);\n }\n\n toggle(animate = true) {\n const panel = this;\n const breakpoint = panel.params.visibleBreakpoint;\n const app = panel.app;\n if (app.width >= breakpoint && typeof breakpoint !== 'undefined' && breakpoint !== null) {\n return panel.toggleVisibleBreakpoint();\n }\n if (panel.opened) panel.close(animate);\n else panel.open(animate);\n return panel;\n }\n\n insertToRoot() {\n const panel = this;\n const document = getDocument();\n const { $el, $backdropEl, $containerEl } = panel;\n const $panelParentEl = $el.parent();\n const wasInDom = $el.parents(document).length > 0;\n\n if (!$panelParentEl.is($containerEl) || $el.prevAll('.views, .view').length) {\n const $insertBeforeEl = $containerEl.children('.panel, .views, .view').eq(0);\n const $insertAfterEl = $containerEl.children('.panel-backdrop').eq(0);\n\n if ($insertBeforeEl.length) {\n $el.insertBefore($insertBeforeEl);\n } else if ($insertAfterEl) {\n $el.insertBefore($insertAfterEl);\n } else {\n $containerEl.prepend($el);\n }\n\n if (\n $backdropEl &&\n $backdropEl.length &&\n ((!$backdropEl.parent().is($containerEl) && $backdropEl.nextAll('.panel').length === 0) ||\n ($backdropEl.parent().is($containerEl) && $backdropEl.nextAll('.panel').length === 0))\n ) {\n $backdropEl.insertBefore($el);\n }\n\n panel.once('panelClosed', () => {\n if (wasInDom) {\n $panelParentEl.append($el);\n } else {\n $el.remove();\n }\n });\n }\n }\n\n open(animate = true) {\n const panel = this;\n const app = panel.app;\n\n if (!app.panel.allowOpen) return false;\n\n const { effect, $el, $backdropEl, opened, $containerEl } = panel;\n\n if (!$el || $el.hasClass('panel-in')) {\n return panel;\n }\n\n panel.insertToRoot();\n\n // Ignore if opened\n if (opened || $el.hasClass('panel-in-breakpoint') || $el.hasClass('panel-in')) return false;\n\n // Close if some panel is opened\n const otherOpenedPanel = app.panel.get('.panel-in');\n if (otherOpenedPanel && otherOpenedPanel !== panel) {\n otherOpenedPanel.close(animate);\n }\n\n $el[animate ? 'removeClass' : 'addClass']('not-animated');\n $el.addClass('panel-in');\n\n if ($backdropEl) {\n $backdropEl.addClass('panel-backdrop-in');\n $backdropEl[animate ? 'removeClass' : 'addClass']('not-animated');\n }\n\n if (['cover', 'push', 'floating'].includes(panel.effect)) {\n /* eslint no-underscore-dangle: [\"error\", { \"allow\": [\"_clientLeft\"] }] */\n panel._clientLeft = $el[0].clientLeft;\n }\n\n // Transitionend\n const $viewEl = $(panel.getViewEl());\n if ($containerEl && $containerEl.hasClass('page')) {\n $viewEl.add($containerEl.children('.page-content, .tabs'));\n }\n const transitionEndTarget = effect === 'reveal' ? $viewEl : $el;\n\n function panelTransitionStart() {\n transitionEndTarget.transitionStart(() => {\n // eslint-disable-next-line\n panel._openTransitionStarted = true;\n });\n }\n\n function panelTransitionEnd() {\n transitionEndTarget.transitionEnd((e) => {\n if ($(e.target).is(transitionEndTarget)) {\n if ($el.hasClass('panel-out')) {\n panel.onClosed();\n } else {\n panel.onOpened();\n }\n } else panelTransitionEnd();\n });\n }\n if (animate) {\n if ($backdropEl) {\n $backdropEl.removeClass('not-animated');\n }\n panelTransitionStart();\n panelTransitionEnd();\n $el.removeClass('panel-out not-animated').addClass('panel-in');\n panel.onOpen();\n } else {\n if ($backdropEl) {\n $backdropEl.addClass('not-animated');\n }\n $el.removeClass('panel-out').addClass('panel-in not-animated');\n panel.onOpen();\n panel.onOpened();\n // eslint-disable-next-line\n panel._openTransitionStarted = true;\n }\n\n return true;\n }\n\n close(animate = true) {\n const panel = this;\n const { effect, $el, $backdropEl, opened, $containerEl } = panel;\n if (!opened || $el.hasClass('panel-in-breakpoint') || !$el.hasClass('panel-in')) return panel;\n\n $el[animate ? 'removeClass' : 'addClass']('not-animated');\n if ($backdropEl) {\n $backdropEl[animate ? 'removeClass' : 'addClass']('not-animated');\n }\n\n const $viewEl = $(panel.getViewEl());\n if ($containerEl && $containerEl.hasClass('page')) {\n $viewEl.add($containerEl.children('.page-content, .tabs'));\n }\n const transitionEndTarget = effect === 'reveal' ? $viewEl : $el;\n // eslint-disable-next-line\n if (!panel._openTransitionStarted) {\n // eslint-disable-next-line\n animate = false;\n }\n\n function transitionEnd() {\n if ($el.hasClass('panel-out')) {\n panel.onClosed();\n } else if ($el.hasClass('panel-in')) {\n panel.onOpened();\n }\n panel.setStateClasses('after-closing');\n }\n if (animate) {\n transitionEndTarget.transitionEnd(() => {\n transitionEnd();\n });\n $el.removeClass('panel-in').addClass('panel-out');\n // Emit close\n panel.onClose();\n } else {\n $el.addClass('not-animated').removeClass('panel-in').addClass('panel-out');\n // Emit close\n panel.onClose();\n panel.onClosed();\n }\n\n return panel;\n }\n\n init() {\n const panel = this;\n // const app = panel.app;\n if (typeof panel.params.visibleBreakpoint !== 'undefined') {\n panel.setVisibleBreakpoint();\n }\n if (typeof panel.params.collapsedBreakpoint !== 'undefined') {\n panel.setCollapsedBreakpoint();\n }\n if (panel.params.swipe) {\n panel.enableSwipe();\n }\n if (panel.resizable) {\n panel.enableResizable();\n }\n }\n\n destroy() {\n let panel = this;\n const app = panel.app;\n const { $containerEl } = panel;\n\n if (!panel.$el) {\n // Panel already destroyed\n return;\n }\n\n panel.emit('local::beforeDestroy panelBeforeDestroy', panel);\n panel.$el.trigger('panel:beforedestroy');\n\n if (panel.visibleBreakpointResizeHandler) {\n app.off('resize', panel.visibleBreakpointResizeHandler);\n }\n if (panel.collapsedBreakpointResizeHandler) {\n app.off('resize', panel.collapsedBreakpointResizeHandler);\n }\n if (panel.$el.hasClass('panel-in-breakpoint') || panel.$el.hasClass('panel-in-collapsed')) {\n const $viewEl = $(panel.getViewEl());\n if ($containerEl && $containerEl.hasClass('page')) {\n $viewEl.add($containerEl.children('.page-content, .tabs'));\n }\n panel.$el.removeClass('panel-in-breakpoint panel-in-collapsed panel-in');\n $viewEl.css({\n [`margin-${panel.side}`]: '',\n });\n panel.emit('local::breakpoint panelBreakpoint', panel);\n panel.$el.trigger('panel:breakpoint');\n }\n\n panel.$el.trigger('panel:destroy');\n panel.emit('local::destroy panelDestroy', panel);\n if (panel.el) {\n panel.el.f7Panel = null;\n delete panel.el.f7Panel;\n }\n deleteProps(panel);\n\n panel = null;\n }\n}\n\nexport default Panel;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Panel from './panel-class.js';\n\nexport default {\n name: 'panel',\n params: {\n panel: {\n opened: undefined, // default based on panel-in class\n side: undefined, // default based on panel class\n effect: undefined, // default based on panel class\n resizable: undefined, // default based on panel-resizable class\n backdrop: true,\n backdropEl: undefined,\n visibleBreakpoint: undefined,\n collapsedBreakpoint: undefined,\n swipe: false, // or true\n swipeNoFollow: false, // or true\n swipeOnlyClose: false,\n swipeActiveArea: 0,\n swipeThreshold: 0,\n closeByBackdropClick: true,\n containerEl: undefined,\n },\n },\n static: {\n Panel,\n },\n create() {\n const app = this;\n extend(app, {\n panel: {\n allowOpen: true,\n create(params) {\n return new Panel(app, params);\n },\n get(el = '.panel') {\n if (el instanceof Panel) return el;\n if (el === 'left' || el === 'right') el = `.panel-${el}`; // eslint-disable-line\n const $el = $(el);\n if ($el.length === 0 || $el.length > 1) return undefined;\n return $el[0].f7Panel;\n },\n destroy(el = '.panel') {\n const panel = app.panel.get(el);\n if (panel && panel.destroy) return panel.destroy();\n return undefined;\n },\n open(el = '.panel', animate) {\n if (el === 'left' || el === 'right') el = `.panel-${el}`; // eslint-disable-line\n let panel = app.panel.get(el);\n if (panel && panel.open) return panel.open(animate);\n if (!panel) {\n panel = app.panel.create({ el });\n return panel.open(animate);\n }\n return undefined;\n },\n close(el = '.panel-in', animate) {\n if (el === 'left' || el === 'right') el = `.panel-${el}`; // eslint-disable-line\n let panel = app.panel.get(el);\n if (panel && panel.open) return panel.close(animate);\n if (!panel) {\n panel = app.panel.create({ el });\n return panel.close(animate);\n }\n return undefined;\n },\n toggle(el = '.panel', animate) {\n if (el === 'left' || el === 'right') el = `.panel-${el}`; // eslint-disable-line\n let panel = app.panel.get(el);\n if (panel && panel.toggle) return panel.toggle(animate);\n if (!panel) {\n panel = app.panel.create({ el });\n return panel.toggle(animate);\n }\n return undefined;\n },\n },\n });\n },\n on: {\n init() {\n const app = this;\n $('.panel-init').each((panelEl) => {\n const params = Object.assign({ el: panelEl }, $(panelEl).dataset() || {});\n app.panel.create(params);\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.panel-init').each((panelEl) => {\n const params = Object.assign({ el: panelEl }, $(panelEl).dataset() || {});\n app.panel.create(params);\n });\n },\n pageBeforeRemove(page) {\n const app = this;\n page.$el.find('.panel-init').each((panelEl) => {\n const panel = app.panel.get(panelEl);\n if (panel && panel.destroy) panel.destroy();\n });\n },\n },\n vnode: {\n 'panel-init': {\n insert(vnode) {\n const app = this;\n const panelEl = vnode.elm;\n const params = Object.assign({ el: panelEl }, $(panelEl).dataset() || {});\n app.panel.create(params);\n },\n destroy(vnode) {\n const app = this;\n const panelEl = vnode.elm;\n const panel = app.panel.get(panelEl);\n if (panel && panel.destroy) panel.destroy();\n },\n },\n },\n clicks: {\n '.panel-open': function open(clickedEl, data = {}) {\n const app = this;\n app.panel.open(data.panel, data.animate);\n },\n '.panel-close': function close(clickedEl, data = {}) {\n const app = this;\n app.panel.close(data.panel, data.animate);\n },\n '.panel-toggle': function close(clickedEl, data = {}) {\n const app = this;\n app.panel.toggle(data.panel, data.animate);\n },\n '.panel-backdrop': function close() {\n const app = this;\n const $panelEl = $('.panel-in:not(.panel-out)');\n if (!$panelEl.length) return;\n const instance = $panelEl[0] && $panelEl[0].f7Panel;\n $panelEl.trigger('panel:backdrop-click');\n if (instance) {\n instance.emit('backdropClick', instance);\n }\n app.emit('panelBackdropClick', instance || $panelEl[0]);\n if (instance && instance.params.closeByBackdropClick === false) return;\n if (app.params.panel.closeByBackdropClick) app.panel.close();\n },\n },\n};\n","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { bindMethods } from '../../shared/utils.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport $ from '../../shared/dom7.js';\n\nconst CardExpandable = {\n open(cardEl = '.card-expandable', animate = true) {\n const app = this;\n const device = getDevice();\n const document = getDocument();\n const support = getSupport();\n\n const $cardEl = $(cardEl).eq(0);\n if (!$cardEl || !$cardEl.length) return;\n if (\n $cardEl.hasClass('card-opened') ||\n $cardEl.hasClass('card-opening') ||\n $cardEl.hasClass('card-closing')\n )\n return;\n\n const $pageEl = $cardEl.parents('.page').eq(0);\n if (!$pageEl.length) return;\n\n if ($pageEl.find('.card-opened').length) {\n return;\n }\n\n let prevented;\n\n function prevent() {\n prevented = true;\n }\n\n $cardEl.trigger('card:beforeopen', { prevent });\n app.emit('cardBeforeOpen', $cardEl[0], prevent);\n\n if (prevented) return;\n\n const cardParams = Object.assign({ animate }, app.params.card, $cardEl.dataset());\n\n const $pageContentEl = $cardEl.parents('.page-content');\n\n let $backdropEl;\n if ($cardEl.attr('data-backdrop-el')) {\n $backdropEl = $($cardEl.attr('data-backdrop-el'));\n }\n if (!$backdropEl && cardParams.backdrop) {\n $backdropEl = $pageContentEl.find('.card-backdrop');\n if (!$backdropEl.length) {\n $backdropEl = $('<div class=\"card-backdrop\"></div>');\n $pageContentEl.append($backdropEl);\n }\n }\n\n let $navbarEl;\n let $toolbarEl;\n if (cardParams.hideNavbarOnOpen) {\n $navbarEl = $pageEl.children('.navbar');\n if (!$navbarEl.length) {\n if ($pageEl[0].f7Page) $navbarEl = $pageEl[0].f7Page.$navbarEl;\n }\n }\n if (cardParams.hideToolbarOnOpen) {\n $toolbarEl = $pageEl.children('.toolbar');\n if (!$toolbarEl.length) {\n $toolbarEl = $pageEl.parents('.view').children('.toolbar');\n }\n if (!$toolbarEl.length) {\n $toolbarEl = $pageEl.parents('.views').children('.toolbar');\n }\n }\n\n const currTransform = $cardEl.css('transform');\n let hasTransform;\n if (currTransform && currTransform.match(/[2-9]/)) {\n hasTransform = true;\n }\n const $cardContentEl = $cardEl.children('.card-content');\n\n const $cardSizeEl = $(document.createElement('div')).addClass('card-expandable-size');\n $cardEl.append($cardSizeEl);\n\n let cardWidth = $cardEl[0].offsetWidth;\n let cardHeight = $cardEl[0].offsetHeight;\n let pageWidth = $pageEl[0].offsetWidth;\n let pageHeight = $pageEl[0].offsetHeight;\n\n let maxWidth = $cardSizeEl[0].offsetWidth || pageWidth;\n let maxHeight = $cardSizeEl[0].offsetHeight || pageHeight;\n\n let statusbarHeight;\n if ($navbarEl && !cardParams.hideStatusbarOnOpen && maxHeight === pageHeight) {\n statusbarHeight = parseInt($navbarEl.css('--f7-safe-area-top'), 10);\n if (Number.isNaN(statusbarHeight)) statusbarHeight = 0;\n }\n if (statusbarHeight) {\n maxHeight -= statusbarHeight;\n }\n\n let scaleX = maxWidth / cardWidth;\n let scaleY = maxHeight / cardHeight;\n\n let offset = $cardEl.offset();\n let pageOffset = $pageEl.offset();\n if (statusbarHeight) {\n pageOffset.top += statusbarHeight / 2;\n }\n offset.left -= pageOffset.left;\n\n let cardLeftOffset;\n let cardTopOffset;\n\n if (hasTransform) {\n const transformValues = currTransform\n .replace(/matrix\\(|\\)/g, '')\n .split(',')\n .map((el) => el.trim());\n if (transformValues && transformValues.length > 1) {\n const scale = parseFloat(transformValues[0]);\n cardLeftOffset = offset.left - (cardWidth * (1 - scale)) / 2;\n cardTopOffset = offset.top - pageOffset.top - (cardHeight * (1 - scale)) / 2;\n if (app.rtl) cardLeftOffset -= $cardEl[0].scrollLeft;\n } else {\n cardLeftOffset = $cardEl[0].offsetLeft;\n cardTopOffset =\n $cardEl[0].offsetTop - ($pageContentEl.length ? $pageContentEl[0].scrollTop : 0);\n }\n } else {\n cardLeftOffset = offset.left;\n cardTopOffset = offset.top - pageOffset.top;\n if (app.rtl) cardLeftOffset -= $cardEl[0].scrollLeft;\n }\n\n cardLeftOffset -= (pageWidth - maxWidth) / 2;\n cardTopOffset -= (pageHeight - maxHeight) / 2;\n\n let cardRightOffset = maxWidth - cardWidth - cardLeftOffset;\n if (app.rtl) {\n [cardLeftOffset, cardRightOffset] = [cardRightOffset, cardLeftOffset];\n }\n let cardBottomOffset = maxHeight - cardHeight - cardTopOffset;\n let translateX = (cardRightOffset - cardLeftOffset) / 2;\n let translateY = (cardBottomOffset - cardTopOffset) / 2;\n if (cardParams.hideNavbarOnOpen && $navbarEl && $navbarEl.length) {\n if ($navbarEl.closest('.navbar-hidden').length) {\n // Was hidden\n $cardEl[0].f7KeepNavbarOnClose = true;\n } else {\n delete $cardEl[0].f7KeepNavbarOnClose;\n app.navbar.hide($navbarEl, cardParams.animate, cardParams.hideStatusbarOnOpen, true);\n }\n }\n if (cardParams.hideToolbarOnOpen && $toolbarEl && $toolbarEl.length) {\n if ($toolbarEl.closest('.toolbar-hidden').length) {\n // Was hidden\n $cardEl[0].f7KeepToolbarOnClose = true;\n } else {\n delete $cardEl[0].f7KeepToolbarOnClose;\n app.toolbar.hide($toolbarEl, cardParams.animate);\n }\n }\n if ($backdropEl) {\n $backdropEl.removeClass('card-backdrop-out').addClass('card-backdrop-in');\n }\n $cardEl.removeClass('card-transitioning');\n if (cardParams.animate) {\n $cardEl.addClass('card-opening');\n }\n $cardEl.trigger('card:open');\n app.emit('cardOpen', $cardEl[0]);\n function transitionEnd() {\n $pageEl.addClass('page-with-card-opened');\n if (device.ios && $pageContentEl.length) {\n $pageContentEl.css('height', `${$pageContentEl[0].offsetHeight + 1}px`);\n setTimeout(() => {\n $pageContentEl.css('height', '');\n });\n }\n $cardEl.addClass('card-opened');\n $cardEl.removeClass('card-opening');\n $cardEl.trigger('card:opened');\n app.emit('cardOpened', $cardEl[0], $pageEl[0]);\n }\n $cardContentEl\n .css({\n width: `${maxWidth}px`,\n height: `${maxHeight}px`,\n })\n .transform(\n `translate3d(${\n app.rtl ? cardLeftOffset + translateX : -cardLeftOffset - translateX\n }px, 0px, 0) scale(${1 / scaleX}, ${1 / scaleY})`,\n );\n\n $cardEl.transform(\n `translate3d(${\n app.rtl ? -translateX : translateX\n }px, ${translateY}px, 0) scale(${scaleX}, ${scaleY})`,\n );\n if (cardParams.animate) {\n $cardEl.transitionEnd(() => {\n transitionEnd();\n });\n } else {\n transitionEnd();\n }\n\n function onResize() {\n $cardEl.removeClass('card-transitioning');\n cardWidth = $cardEl[0].offsetWidth;\n cardHeight = $cardEl[0].offsetHeight;\n pageWidth = $pageEl[0].offsetWidth;\n pageHeight = $pageEl[0].offsetHeight;\n maxWidth = $cardSizeEl[0].offsetWidth || pageWidth;\n maxHeight = $cardSizeEl[0].offsetHeight || pageHeight;\n\n statusbarHeight = 0;\n if ($navbarEl && !cardParams.hideStatusbarOnOpen && maxHeight === pageHeight) {\n statusbarHeight = parseInt($navbarEl.css('--f7-safe-area-top'), 10);\n if (Number.isNaN(statusbarHeight)) statusbarHeight = 0;\n }\n if (statusbarHeight) {\n maxHeight -= statusbarHeight;\n }\n\n scaleX = maxWidth / cardWidth;\n scaleY = maxHeight / cardHeight;\n\n $cardEl.transform('translate3d(0px, 0px, 0) scale(1)');\n offset = $cardEl.offset();\n pageOffset = $pageEl.offset();\n if (statusbarHeight) {\n pageOffset.top += statusbarHeight / 2;\n }\n offset.left -= pageOffset.left;\n offset.top -= pageOffset.top;\n\n cardLeftOffset = offset.left - (pageWidth - maxWidth) / 2;\n if (app.rtl) cardLeftOffset -= $cardEl[0].scrollLeft;\n cardTopOffset = offset.top - (pageHeight - maxHeight) / 2;\n\n cardRightOffset = maxWidth - cardWidth - cardLeftOffset;\n cardBottomOffset = maxHeight - cardHeight - cardTopOffset;\n if (app.rtl) {\n [cardLeftOffset, cardRightOffset] = [cardRightOffset, cardLeftOffset];\n }\n translateX = (cardRightOffset - cardLeftOffset) / 2;\n translateY = (cardBottomOffset - cardTopOffset) / 2;\n\n $cardEl.transform(\n `translate3d(${\n app.rtl ? -translateX : translateX\n }px, ${translateY}px, 0) scale(${scaleX}, ${scaleY})`,\n );\n $cardContentEl\n .css({\n width: `${maxWidth}px`,\n height: `${maxHeight}px`,\n })\n .transform(\n `translate3d(${\n app.rtl ? cardLeftOffset + translateX : -cardLeftOffset - translateX\n }px, 0px, 0) scale(${1 / scaleX}, ${1 / scaleY})`,\n );\n }\n\n let cardScrollTop;\n let isTouched;\n let isMoved;\n let touchStartX;\n let touchStartY;\n let touchEndX;\n let touchEndY;\n let isScrolling;\n let progress;\n let isV;\n let isH;\n let $cardScrollableEl;\n function onTouchStart(e) {\n if (!$(e.target).closest($cardEl).length || !e.isTrusted) return;\n if (!$cardEl.hasClass('card-opened')) return;\n $cardScrollableEl = $cardEl.find(cardParams.scrollableEl);\n\n if (\n $cardScrollableEl[0] &&\n $cardScrollableEl[0] !== $cardContentEl[0] &&\n !$cardScrollableEl[0].contains(e.target)\n ) {\n cardScrollTop = 0;\n } else {\n cardScrollTop = $cardScrollableEl.scrollTop();\n }\n isTouched = true;\n touchStartX = e.targetTouches[0].pageX;\n touchStartY = e.targetTouches[0].pageY;\n isScrolling = undefined;\n isV = false;\n isH = false;\n }\n function onTouchMove(e) {\n if (!isTouched || !e.isTrusted) return;\n touchEndX = e.targetTouches[0].pageX;\n touchEndY = e.targetTouches[0].pageY;\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(\n isScrolling || Math.abs(touchEndY - touchStartY) > Math.abs(touchEndX - touchStartX)\n );\n }\n if (!isH && !isV) {\n if (!isScrolling && e.targetTouches[0].clientX <= 50) {\n isH = true;\n } else {\n isV = true;\n }\n }\n\n if (!(isH || isV) || (isV && cardScrollTop !== 0)) {\n isTouched = true;\n isMoved = true;\n return;\n }\n if (!isMoved) {\n $cardEl.removeClass('card-transitioning');\n }\n\n isMoved = true;\n progress = isV\n ? Math.max((touchEndY - touchStartY) / 150, 0)\n : Math.max((touchEndX - touchStartX) / (cardWidth / 2), 0);\n if ((progress > 0 && isV) || isH) {\n if (isV && device.ios && $cardScrollableEl[0] === $cardContentEl[0]) {\n $cardScrollableEl.css('-webkit-overflow-scrolling', 'auto');\n $cardScrollableEl.scrollTop(0);\n }\n e.preventDefault();\n }\n\n if (progress > 1) progress **= 0.3;\n if (progress > (isV ? 1.3 : 1.1)) {\n isTouched = false;\n isMoved = false;\n app.card.close($cardEl);\n } else {\n $cardEl.transform(\n `translate3d(${app.rtl ? -translateX : translateX}px, ${translateY}px, 0) scale(${\n scaleX * (1 - progress * 0.2)\n }, ${scaleY * (1 - progress * 0.2)})`,\n );\n }\n }\n function onTouchEnd(e) {\n if (!isTouched || !isMoved || !e.isTrusted) return;\n isTouched = false;\n isMoved = false;\n if (device.ios) {\n $cardScrollableEl.css('-webkit-overflow-scrolling', '');\n }\n if (progress >= 0.8) {\n app.card.close($cardEl);\n } else {\n $cardEl\n .addClass('card-transitioning')\n .transform(\n `translate3d(${\n app.rtl ? -translateX : translateX\n }px, ${translateY}px, 0) scale(${scaleX}, ${scaleY})`,\n );\n }\n }\n\n $cardEl[0].detachEventHandlers = function detachEventHandlers() {\n app.off('resize', onResize);\n if (support.touch && cardParams.swipeToClose) {\n app.off('touchstart:passive', onTouchStart);\n app.off('touchmove:active', onTouchMove);\n app.off('touchend:passive', onTouchEnd);\n }\n };\n\n app.on('resize', onResize);\n if (support.touch && cardParams.swipeToClose) {\n app.on('touchstart:passive', onTouchStart);\n app.on('touchmove:active', onTouchMove);\n app.on('touchend:passive', onTouchEnd);\n }\n },\n close(cardEl = '.card-expandable.card-opened', animate = true) {\n const app = this;\n const device = getDevice();\n const $cardEl = $(cardEl).eq(0);\n if (!$cardEl || !$cardEl.length) return;\n if (\n !$cardEl.hasClass('card-opened') ||\n $cardEl.hasClass('card-opening') ||\n $cardEl.hasClass('card-closing')\n )\n return;\n\n const $cardContentEl = $cardEl.children('.card-content');\n const $pageContentEl = $cardEl.parents('.page-content');\n\n const $pageEl = $cardEl.parents('.page').eq(0);\n if (!$pageEl.length) return;\n\n const cardParams = Object.assign({ animate }, app.params.card, $cardEl.dataset());\n const $cardScrollableEl = $cardEl.find(cardParams.scrollableEl);\n\n let $navbarEl;\n let $toolbarEl;\n\n let $backdropEl;\n if ($cardEl.attr('data-backdrop-el')) {\n $backdropEl = $($cardEl.attr('data-backdrop-el'));\n }\n if (cardParams.backdrop) {\n $backdropEl = $cardEl.parents('.page-content').find('.card-backdrop');\n }\n\n if (cardParams.hideNavbarOnOpen) {\n $navbarEl = $pageEl.children('.navbar');\n if (!$navbarEl.length) {\n if ($pageEl[0].f7Page) $navbarEl = $pageEl[0].f7Page.$navbarEl;\n }\n if ($navbarEl && $navbarEl.length && !$cardEl[0].f7KeepNavbarOnClose) {\n app.navbar.show($navbarEl, cardParams.animate, true);\n }\n }\n if (cardParams.hideToolbarOnOpen) {\n $toolbarEl = $pageEl.children('.toolbar');\n if (!$toolbarEl.length) {\n $toolbarEl = $pageEl.parents('.view').children('.toolbar');\n }\n if (!$toolbarEl.length) {\n $toolbarEl = $pageEl.parents('.views').children('.toolbar');\n }\n if ($toolbarEl && $toolbarEl.length && !$cardEl[0].f7KeepToolbarOnClose) {\n app.toolbar.show($toolbarEl, cardParams.animate);\n }\n }\n\n $pageEl.removeClass('page-with-card-opened');\n\n if (device.ios && $pageContentEl.length) {\n $pageContentEl.css('height', `${$pageContentEl[0].offsetHeight + 1}px`);\n setTimeout(() => {\n $pageContentEl.css('height', '');\n });\n }\n\n if ($backdropEl && $backdropEl.length) {\n $backdropEl.removeClass('card-backdrop-in').addClass('card-backdrop-out');\n }\n\n $cardEl.removeClass('card-opened card-transitioning');\n if (cardParams.animate) {\n $cardEl.addClass('card-closing');\n } else {\n $cardEl.addClass('card-no-transition');\n }\n $cardEl.transform('');\n $cardEl.trigger('card:close');\n app.emit('cardClose', $cardEl[0], $pageEl[0]);\n\n const animateWidth = $cardEl.hasClass('card-expandable-animate-width');\n\n function transitionEnd() {\n if (!animateWidth) {\n $cardContentEl.css({\n width: '',\n height: '',\n });\n }\n if ($backdropEl && $backdropEl.length) {\n $backdropEl.removeClass('card-backdrop-in card-backdrop-out');\n }\n $cardEl.removeClass('card-closing card-no-transition');\n $cardEl.trigger('card:closed');\n $cardEl.find('.card-expandable-size').remove();\n app.emit('cardClosed', $cardEl[0], $pageEl[0]);\n }\n if (animateWidth) {\n $cardContentEl.css({\n width: '',\n height: '',\n });\n }\n\n $cardContentEl.transform('').scrollTop(0, animate ? 300 : 0);\n if ($cardScrollableEl.length && $cardScrollableEl[0] !== $cardContentEl[0]) {\n $cardScrollableEl.scrollTop(0, animate ? 300 : 0);\n }\n if (animate) {\n $cardContentEl.transitionEnd(() => {\n transitionEnd();\n });\n } else {\n transitionEnd();\n }\n\n if ($cardEl[0].detachEventHandlers) {\n $cardEl[0].detachEventHandlers();\n delete $cardEl[0].detachEventHandlers;\n }\n },\n toggle(cardEl = '.card-expandable', animate) {\n const app = this;\n const $cardEl = $(cardEl).eq(0);\n if (!$cardEl.length) return;\n if ($cardEl.hasClass('card-opened')) {\n app.card.close($cardEl, animate);\n } else {\n app.card.open($cardEl, animate);\n }\n },\n};\n\nexport default {\n name: 'card',\n params: {\n card: {\n hideNavbarOnOpen: true,\n hideStatusbarOnOpen: true,\n hideToolbarOnOpen: true,\n scrollableEl: '.card-content',\n swipeToClose: true,\n closeByBackdropClick: true,\n backdrop: true,\n },\n },\n create() {\n const app = this;\n bindMethods(app, {\n card: CardExpandable,\n });\n },\n on: {\n pageBeforeIn(page) {\n const app = this;\n if (\n app.params.card.hideNavbarOnOpen &&\n page.navbarEl &&\n page.$el.find('.card-opened.card-expandable').length\n ) {\n app.navbar.hide(page.navbarEl, true, app.params.card.hideStatusbarOnOpen, true);\n }\n\n if (\n app.params.card.hideToolbarOnOpen &&\n page.$el.find('.card-opened.card-expandable').length\n ) {\n let $toolbarEl = page.$el.children('.toolbar');\n if (!$toolbarEl.length) {\n $toolbarEl = page.$el.parents('.view').children('.toolbar');\n }\n if (!$toolbarEl.length) {\n $toolbarEl = page.$el.parents('.views').children('.toolbar');\n }\n if ($toolbarEl && $toolbarEl.length) {\n app.toolbar.hide($toolbarEl);\n }\n }\n },\n },\n clicks: {\n '.card-close': function closeCard($clickedEl, data) {\n const app = this;\n app.card.close(data.card, data.animate);\n },\n '.card-open': function closeCard($clickedEl, data) {\n const app = this;\n app.card.open(data.card, data.animate);\n },\n '.card-expandable': function toggleExpandableCard($clickedEl, data, e) {\n const app = this;\n if (\n $clickedEl.hasClass('card-opened') ||\n $clickedEl.hasClass('card-opening') ||\n $clickedEl.hasClass('card-closing')\n )\n return;\n if ($(e.target).closest('.card-prevent-open, .card-close').length) return;\n app.card.open($clickedEl);\n },\n '.card-backdrop-in': function onBackdropClick() {\n const app = this;\n let needToClose = false;\n if (app.params.card.closeByBackdropClick) needToClose = true;\n const $openedCardEl = $('.card-opened');\n if (!$openedCardEl.length) return;\n if ($openedCardEl.attr('data-close-by-backdrop-click') === 'true') {\n needToClose = true;\n } else if ($openedCardEl.attr('data-close-by-backdrop-click') === 'false') {\n needToClose = false;\n }\n if (needToClose) app.card.close($openedCardEl);\n },\n },\n};\n","export default {\n name: 'chip',\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, serializeObject } from '../../shared/utils.js';\n\n// Form Data\nconst FormData = {\n store(form, data) {\n const app = this;\n const window = getWindow();\n let formId = form;\n\n const $formEl = $(form);\n if ($formEl.length && $formEl.is('form') && $formEl.attr('id')) {\n formId = $formEl.attr('id');\n }\n // Store form data in app.formsData\n app.form.data[`form-${formId}`] = data;\n\n // Store form data in local storage also\n window.localStorage[`f7form-${formId}`] = JSON.stringify(data);\n },\n get(form) {\n const app = this;\n const window = getWindow();\n let formId = form;\n\n const $formEl = $(form);\n if ($formEl.length && $formEl.is('form') && $formEl.attr('id')) {\n formId = $formEl.attr('id');\n }\n\n if (window.localStorage[`f7form-${formId}`]) {\n return JSON.parse(window.localStorage[`f7form-${formId}`]);\n }\n if (app.form.data[`form-${formId}`]) {\n return app.form.data[`form-${formId}`];\n }\n return undefined;\n },\n remove(form) {\n const app = this;\n const window = getWindow();\n let formId = form;\n\n const $formEl = $(form);\n if ($formEl.length && $formEl.is('form') && $formEl.attr('id')) {\n formId = $formEl.attr('id');\n }\n\n // Delete form data from app.formsData\n if (app.form.data[`form-${formId}`]) {\n app.form.data[`form-${formId}`] = '';\n delete app.form.data[`form-${formId}`];\n }\n\n // Delete form data from local storage also\n if (window.localStorage[`f7form-${formId}`]) {\n window.localStorage[`f7form-${formId}`] = '';\n window.localStorage.removeItem(`f7form-${formId}`);\n }\n },\n};\n\n// Form Storage\nconst FormStorage = {\n init(formEl) {\n const app = this;\n const $formEl = $(formEl);\n const formId = $formEl.attr('id');\n if (!formId) return;\n const initialData = app.form.getFormData(formId);\n if (initialData) {\n app.form.fillFromData($formEl, initialData);\n }\n function store() {\n const data = app.form.convertToData($formEl);\n if (!data) return;\n app.form.storeFormData(formId, data);\n $formEl.trigger('form:storedata', data);\n app.emit('formStoreData', $formEl[0], data);\n }\n $formEl.on('change submit', store);\n },\n destroy(formEl) {\n const $formEl = $(formEl);\n $formEl.off('change submit');\n },\n};\n\n// Form To/From Data\nfunction formToData(formEl) {\n const app = this;\n const $formEl = $(formEl).eq(0);\n if ($formEl.length === 0) return undefined;\n\n // Form data\n const data = {};\n\n // Skip input types\n const skipTypes = ['submit', 'image', 'button', 'file'];\n const skipNames = [];\n $formEl.find('input, select, textarea').each((inputEl) => {\n const $inputEl = $(inputEl);\n if ($inputEl.hasClass('ignore-store-data') || $inputEl.hasClass('no-store-data')) {\n return;\n }\n const name = $inputEl.attr('name');\n const type = $inputEl.attr('type');\n const tag = inputEl.nodeName.toLowerCase();\n if (skipTypes.indexOf(type) >= 0) return;\n if (skipNames.indexOf(name) >= 0 || !name) return;\n if (tag === 'select' && $inputEl.prop('multiple')) {\n skipNames.push(name);\n data[name] = [];\n $formEl.find(`select[name=\"${name}\"] option`).each((el) => {\n if (el.selected) data[name].push(el.value);\n });\n } else {\n switch (type) {\n case 'checkbox':\n skipNames.push(name);\n data[name] = [];\n $formEl.find(`input[name=\"${name}\"]`).each((el) => {\n if (el.checked) data[name].push(el.value);\n });\n break;\n case 'radio':\n skipNames.push(name);\n $formEl.find(`input[name=\"${name}\"]`).each((el) => {\n if (el.checked) data[name] = el.value;\n });\n break;\n default:\n data[name] = $inputEl.val();\n break;\n }\n }\n });\n $formEl.trigger('form:todata', data);\n app.emit('formToData', $formEl[0], data);\n\n return data;\n}\nfunction formFromData(formEl, formData) {\n const app = this;\n const $formEl = $(formEl).eq(0);\n if (!$formEl.length) return;\n\n let data = formData;\n const formId = $formEl.attr('id');\n\n if (!data && formId) {\n data = app.form.getFormData(formId);\n }\n\n if (!data) return;\n\n // Skip input types\n const skipTypes = ['submit', 'image', 'button', 'file'];\n const skipNames = [];\n\n $formEl.find('input, select, textarea').each((inputEl) => {\n const $inputEl = $(inputEl);\n if ($inputEl.hasClass('ignore-store-data') || $inputEl.hasClass('no-store-data')) {\n return;\n }\n const name = $inputEl.attr('name');\n const type = $inputEl.attr('type');\n const tag = inputEl.nodeName.toLowerCase();\n if (typeof data[name] === 'undefined' || data[name] === null) return;\n if (skipTypes.indexOf(type) >= 0) return;\n if (skipNames.indexOf(name) >= 0 || !name) return;\n if (tag === 'select' && $inputEl.prop('multiple')) {\n skipNames.push(name);\n $formEl.find(`select[name=\"${name}\"] option`).each((el) => {\n const selectEl = el;\n if (data[name].indexOf(el.value) >= 0) selectEl.selected = true;\n else selectEl.selected = false;\n });\n } else {\n switch (type) {\n case 'checkbox':\n skipNames.push(name);\n $formEl.find(`input[name=\"${name}\"]`).each((el) => {\n const checkboxEl = el;\n if (data[name].indexOf(el.value) >= 0) checkboxEl.checked = true;\n else checkboxEl.checked = false;\n });\n break;\n case 'radio':\n skipNames.push(name);\n $formEl.find(`input[name=\"${name}\"]`).each((el) => {\n const radioEl = el;\n if (data[name] === el.value) radioEl.checked = true;\n else radioEl.checked = false;\n });\n break;\n default:\n $inputEl.val(data[name]);\n break;\n }\n }\n if (tag === 'select' || tag === 'input' || tag === 'textarea') {\n $inputEl.trigger('change', 'fromdata');\n }\n });\n $formEl.trigger('form:fromdata', data);\n app.emit('formFromData', $formEl[0], data);\n}\n\nfunction initAjaxForm() {\n const app = this;\n const window = getWindow();\n const document = getDocument();\n\n function onSubmitChange(e, fromData) {\n const $formEl = $(this);\n if (e.type === 'change' && !$formEl.hasClass('form-ajax-submit-onchange')) return;\n if (e.type === 'submit') e.preventDefault();\n\n if (e.type === 'change' && fromData === 'fromdata') return;\n\n const method = ($formEl.attr('method') || 'GET').toUpperCase();\n const contentType = $formEl.attr('enctype') || $formEl.prop('enctype');\n\n let url = $formEl.attr('action');\n if (!url) return;\n\n let data;\n if (method === 'POST') {\n if (\n contentType === 'application/x-www-form-urlencoded' ||\n contentType === 'application/json'\n ) {\n data = app.form.convertToData($formEl[0]);\n if (contentType === 'application/json') {\n data = JSON.stringify(data);\n }\n } else {\n data = new window.FormData($formEl[0]);\n }\n } else {\n data = serializeObject(app.form.convertToData($formEl[0]));\n if (url.includes('?')) {\n url += `&${data}`;\n } else {\n url += `?${data}`;\n }\n }\n\n $formEl.trigger('formajax:beforesend', { data });\n app.emit('formAjaxBeforeSend', $formEl[0], data);\n\n fetch(url, {\n method,\n headers: { 'Content-Type': contentType || 'application/x-www-form-urlencoded' },\n ...(method === 'POST' || method === 'PUT' ? { body: data } : {}),\n })\n .then((response) => {\n $formEl.trigger('formajax:complete', { data, response });\n app.emit('formAjaxComplete', $formEl[0], data, response);\n\n $formEl.trigger('formajax:success', { data, response });\n app.emit('formAjaxSuccess', $formEl[0], data, response);\n })\n .catch((error) => {\n $formEl.trigger('formajax:error', { data, error });\n app.emit('formAjaxError', $formEl[0], data, error);\n });\n }\n $(document).on(\n 'submit change',\n 'form.form-ajax-submit, form.form-ajax-submit-onchange',\n onSubmitChange,\n );\n}\n\nexport default {\n name: 'form',\n create() {\n const app = this;\n extend(app, {\n form: {\n data: {},\n storeFormData: FormData.store.bind(app),\n getFormData: FormData.get.bind(app),\n removeFormData: FormData.remove.bind(app),\n convertToData: formToData.bind(app),\n fillFromData: formFromData.bind(app),\n storage: {\n init: FormStorage.init.bind(app),\n destroy: FormStorage.destroy.bind(app),\n },\n },\n });\n },\n on: {\n init() {\n const app = this;\n initAjaxForm.call(app);\n },\n tabBeforeRemove(tabEl) {\n const app = this;\n $(tabEl)\n .find('.form-store-data')\n .each((formEl) => {\n app.form.storage.destroy(formEl);\n });\n },\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('.form-store-data')\n .each((formEl) => {\n app.form.storage.init(formEl);\n });\n },\n pageBeforeRemove(page) {\n const app = this;\n page.$el.find('.form-store-data').each((formEl) => {\n app.form.storage.destroy(formEl);\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.form-store-data').each((formEl) => {\n app.form.storage.init(formEl);\n });\n },\n },\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { bindMethods } from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\n\nconst Input = {\n ignoreTypes: ['checkbox', 'button', 'submit', 'range', 'radio', 'image'],\n createTextareaResizableShadow() {\n const document = getDocument();\n const $shadowEl = $(document.createElement('textarea'));\n $shadowEl.addClass('textarea-resizable-shadow');\n $shadowEl.prop({\n disabled: true,\n readonly: true,\n });\n Input.textareaResizableShadow = $shadowEl;\n },\n textareaResizableShadow: undefined,\n resizeTextarea(textareaEl) {\n const app = this;\n const window = getWindow();\n const $textareaEl = $(textareaEl);\n if (!Input.textareaResizableShadow) {\n Input.createTextareaResizableShadow();\n }\n const $shadowEl = Input.textareaResizableShadow;\n if (!$textareaEl.length) return;\n if (!$textareaEl.hasClass('resizable')) return;\n if (Input.textareaResizableShadow.parents().length === 0) {\n app.$el.append($shadowEl);\n }\n\n const styles = window.getComputedStyle($textareaEl[0]);\n 'padding-top padding-bottom padding-left padding-right margin-left margin-right margin-top margin-bottom width font-size font-family font-style font-weight line-height font-variant text-transform letter-spacing border box-sizing display'\n .split(' ')\n .forEach((style) => {\n let styleValue = styles[style];\n if ('font-size line-height letter-spacing width'.split(' ').indexOf(style) >= 0) {\n styleValue = styleValue.replace(',', '.');\n }\n $shadowEl.css(style, styleValue);\n });\n const currentHeight = $textareaEl[0].clientHeight;\n\n $shadowEl.val('');\n const initialHeight = $shadowEl[0].scrollHeight;\n\n $shadowEl.val($textareaEl.val());\n $shadowEl.css('height', 0);\n const scrollHeight = $shadowEl[0].scrollHeight;\n\n if (currentHeight !== scrollHeight) {\n if (scrollHeight > initialHeight) {\n $textareaEl.css('height', `${scrollHeight}px`);\n } else if (scrollHeight < currentHeight) {\n $textareaEl.css('height', '');\n }\n if (scrollHeight > initialHeight || scrollHeight < currentHeight) {\n $textareaEl.trigger('textarea:resize', { initialHeight, currentHeight, scrollHeight });\n app.emit('textareaResize', { initialHeight, currentHeight, scrollHeight });\n }\n }\n },\n validate(inputEl) {\n const $inputEl = $(inputEl);\n if (!$inputEl.length) return true;\n const $itemInputEl = $inputEl.parents('.item-input');\n const $inputWrapEl = $inputEl.parents('.input');\n function unsetReadonly() {\n if ($inputEl[0].f7ValidateReadonly) {\n $inputEl[0].readOnly = false;\n }\n }\n function setReadonly() {\n if ($inputEl[0].f7ValidateReadonly) {\n $inputEl[0].readOnly = true;\n }\n }\n unsetReadonly();\n const validity = $inputEl[0].validity;\n const validationMessage =\n $inputEl.dataset().errorMessage || $inputEl[0].validationMessage || '';\n if (!validity) {\n setReadonly();\n return true;\n }\n if (!validity.valid) {\n let $errorEl = $inputEl.nextAll('.item-input-error-message, .input-error-message');\n if (validationMessage) {\n if ($errorEl.length === 0) {\n $errorEl = $(\n `<div class=\"${\n $inputWrapEl.length ? 'input-error-message' : 'item-input-error-message'\n }\"></div>`,\n );\n $errorEl.insertAfter($inputEl);\n }\n $errorEl.text(validationMessage);\n }\n if ($errorEl.length > 0) {\n $itemInputEl.addClass('item-input-with-error-message');\n $inputWrapEl.addClass('input-with-error-message');\n }\n $itemInputEl.addClass('item-input-invalid');\n $inputWrapEl.addClass('input-invalid');\n $inputEl.addClass('input-invalid');\n setReadonly();\n return false;\n }\n $itemInputEl.removeClass('item-input-invalid item-input-with-error-message');\n $inputWrapEl.removeClass('input-invalid input-with-error-message');\n $inputEl.removeClass('input-invalid');\n setReadonly();\n return true;\n },\n validateInputs(el) {\n const app = this;\n const validates = $(el)\n .find('input, textarea, select')\n .map((inputEl) => app.input.validate(inputEl));\n return validates.indexOf(false) < 0;\n },\n focus(inputEl) {\n const $inputEl = $(inputEl);\n const type = $inputEl.attr('type');\n if (Input.ignoreTypes.indexOf(type) >= 0) return;\n $inputEl.parents('.item-input').addClass('item-input-focused');\n $inputEl.parents('.input').addClass('input-focused');\n $inputEl.addClass('input-focused');\n },\n blur(inputEl) {\n const $inputEl = $(inputEl);\n $inputEl.parents('.item-input').removeClass('item-input-focused');\n $inputEl.parents('.input').removeClass('input-focused');\n $inputEl.removeClass('input-focused');\n },\n checkEmptyState(inputEl) {\n const app = this;\n let $inputEl = $(inputEl);\n if (!$inputEl.is('input, select, textarea, .item-input [contenteditable]')) {\n $inputEl = $inputEl.find('input, select, textarea, .item-input [contenteditable]').eq(0);\n }\n if (!$inputEl.length) return;\n const isContentEditable = $inputEl[0].hasAttribute('contenteditable');\n let value;\n if (isContentEditable) {\n if ($inputEl.find('.text-editor-placeholder').length) value = '';\n else value = $inputEl.html();\n } else {\n value = $inputEl.val();\n }\n const $itemInputEl = $inputEl.parents('.item-input');\n const $inputWrapEl = $inputEl.parents('.input');\n if (\n (value && typeof value === 'string' && value.trim() !== '') ||\n (Array.isArray(value) && value.length > 0)\n ) {\n $itemInputEl.addClass('item-input-with-value');\n $inputWrapEl.addClass('input-with-value');\n $inputEl.addClass('input-with-value');\n $inputEl.trigger('input:notempty');\n app.emit('inputNotEmpty', $inputEl[0]);\n } else {\n $itemInputEl.removeClass('item-input-with-value');\n $inputWrapEl.removeClass('input-with-value');\n $inputEl.removeClass('input-with-value');\n $inputEl.trigger('input:empty');\n app.emit('inputEmpty', $inputEl[0]);\n }\n },\n scrollIntoView(inputEl, duration = 0, centered, force) {\n const $inputEl = $(inputEl);\n const $scrollableEl = $inputEl\n .parents('.page-content, .panel, .card-expandable .card-content')\n .eq(0);\n if (!$scrollableEl.length) {\n return false;\n }\n const contentHeight = $scrollableEl[0].offsetHeight;\n const contentScrollTop = $scrollableEl[0].scrollTop;\n const contentPaddingTop = parseInt($scrollableEl.css('padding-top'), 10);\n const contentPaddingBottom = parseInt($scrollableEl.css('padding-bottom'), 10);\n const contentOffsetTop = $scrollableEl.offset().top - contentScrollTop;\n\n const inputOffsetTop = $inputEl.offset().top - contentOffsetTop;\n const inputHeight = $inputEl[0].offsetHeight;\n\n const min = inputOffsetTop + contentScrollTop - contentPaddingTop;\n const max =\n inputOffsetTop + contentScrollTop - contentHeight + contentPaddingBottom + inputHeight;\n const centeredPosition = min + (max - min) / 2;\n\n if (contentScrollTop > min) {\n $scrollableEl.scrollTop(centered ? centeredPosition : min, duration);\n return true;\n }\n if (contentScrollTop < max) {\n $scrollableEl.scrollTop(centered ? centeredPosition : max, duration);\n return true;\n }\n if (force) {\n $scrollableEl.scrollTop(centered ? centeredPosition : max, duration);\n }\n return false;\n },\n init() {\n const app = this;\n const device = getDevice();\n const window = getWindow();\n const document = getDocument();\n Input.createTextareaResizableShadow();\n function onFocus() {\n const inputEl = this;\n if (app.params.input.scrollIntoViewOnFocus) {\n if (device.android) {\n $(window).once('resize', () => {\n if (document && document.activeElement === inputEl) {\n app.input.scrollIntoView(\n inputEl,\n app.params.input.scrollIntoViewDuration,\n app.params.input.scrollIntoViewCentered,\n app.params.input.scrollIntoViewAlways,\n );\n }\n });\n } else {\n app.input.scrollIntoView(\n inputEl,\n app.params.input.scrollIntoViewDuration,\n app.params.input.scrollIntoViewCentered,\n app.params.input.scrollIntoViewAlways,\n );\n }\n }\n app.input.focus(inputEl);\n }\n function onBlur() {\n const $inputEl = $(this);\n const tag = $inputEl[0].nodeName.toLowerCase();\n app.input.blur($inputEl);\n if (\n $inputEl.dataset().validate ||\n $inputEl.attr('validate') !== null ||\n $inputEl.attr('data-validate-on-blur') !== null\n ) {\n app.input.validate($inputEl);\n }\n // Resize textarea\n if (tag === 'textarea' && $inputEl.hasClass('resizable')) {\n if (Input.textareaResizableShadow) Input.textareaResizableShadow.remove();\n }\n }\n function onChange() {\n const $inputEl = $(this);\n const type = $inputEl.attr('type');\n const tag = $inputEl[0].nodeName.toLowerCase();\n const isContentEditable = $inputEl[0].hasAttribute('contenteditable');\n if (Input.ignoreTypes.indexOf(type) >= 0) return;\n\n // Check Empty State\n app.input.checkEmptyState($inputEl);\n if (isContentEditable) return;\n\n // Check validation\n if (\n $inputEl.attr('data-validate-on-blur') === null &&\n ($inputEl.dataset().validate || $inputEl.attr('validate') !== null)\n ) {\n app.input.validate($inputEl);\n }\n\n // Resize textarea\n if (tag === 'textarea' && $inputEl.hasClass('resizable')) {\n app.input.resizeTextarea($inputEl);\n }\n }\n function onInvalid(e) {\n const $inputEl = $(this);\n if (\n $inputEl.attr('data-validate-on-blur') === null &&\n ($inputEl.dataset().validate || $inputEl.attr('validate') !== null)\n ) {\n e.preventDefault();\n app.input.validate($inputEl);\n }\n }\n function clearInput() {\n const $clicked = $(this);\n const $inputEl = $clicked.siblings('input, textarea').eq(0);\n const previousValue = $inputEl.val();\n $inputEl.val('').trigger('input change').focus().trigger('input:clear', previousValue);\n app.emit('inputClear', previousValue);\n }\n function preventDefault(e) {\n e.preventDefault();\n }\n $(document).on('click', '.input-clear-button', clearInput);\n $(document).on('mousedown', '.input-clear-button', preventDefault);\n $(document).on(\n 'change input',\n 'input, textarea, select, .item-input [contenteditable]',\n onChange,\n true,\n );\n $(document).on(\n 'focus',\n 'input, textarea, select, .item-input [contenteditable]',\n onFocus,\n true,\n );\n $(document).on('blur', 'input, textarea, select, .item-input [contenteditable]', onBlur, true);\n $(document).on('invalid', 'input, textarea, select', onInvalid, true);\n },\n};\n\nexport default {\n name: 'input',\n params: {\n input: {\n scrollIntoViewOnFocus: undefined,\n scrollIntoViewCentered: false,\n scrollIntoViewDuration: 0,\n scrollIntoViewAlways: false,\n },\n },\n create() {\n const app = this;\n if (typeof app.params.input.scrollIntoViewOnFocus === 'undefined') {\n app.params.input.scrollIntoViewOnFocus = getDevice().android;\n }\n bindMethods(app, {\n input: Input,\n });\n },\n on: {\n init() {\n const app = this;\n app.input.init();\n },\n tabMounted(tabEl) {\n const app = this;\n const $tabEl = $(tabEl);\n $tabEl.find('.item-input, .input').each((itemInputEl) => {\n const $itemInputEl = $(itemInputEl);\n $itemInputEl.find('input, select, textarea, [contenteditable]').each((inputEl) => {\n const $inputEl = $(inputEl);\n if (Input.ignoreTypes.indexOf($inputEl.attr('type')) >= 0) return;\n app.input.checkEmptyState($inputEl);\n });\n });\n $tabEl.find('textarea.resizable').each((textareaEl) => {\n app.input.resizeTextarea(textareaEl);\n });\n },\n pageInit(page) {\n const app = this;\n const $pageEl = page.$el;\n $pageEl.find('.item-input, .input').each((itemInputEl) => {\n const $itemInputEl = $(itemInputEl);\n $itemInputEl.find('input, select, textarea, [contenteditable]').each((inputEl) => {\n const $inputEl = $(inputEl);\n if (Input.ignoreTypes.indexOf($inputEl.attr('type')) >= 0) return;\n app.input.checkEmptyState($inputEl);\n });\n });\n $pageEl.find('textarea.resizable').each((textareaEl) => {\n app.input.resizeTextarea(textareaEl);\n });\n },\n 'panelBreakpoint panelCollapsedBreakpoint panelResize panelOpen panelSwipeOpen resize viewMasterDetailBreakpoint':\n function onPanelOpen(instance) {\n const app = this;\n if (instance && instance.$el) {\n instance.$el.find('textarea.resizable').each((textareaEl) => {\n app.input.resizeTextarea(textareaEl);\n });\n } else {\n $('textarea.resizable').each((textareaEl) => {\n app.input.resizeTextarea(textareaEl);\n });\n }\n },\n },\n};\n","export default {\n name: 'checkbox',\n};\n","export default {\n name: 'radio',\n};\n","import $ from '../../shared/dom7.js';\nimport { extend, now, nextTick, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\nimport { getSupport } from '../../shared/get-support.js';\n\nclass Toggle extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n const toggle = this;\n const support = getSupport();\n\n const defaults = {};\n\n // Extend defaults with modules params\n toggle.useModulesParams(defaults);\n\n toggle.params = extend(defaults, params);\n\n const el = toggle.params.el;\n if (!el) return toggle;\n\n const $el = $(el);\n if ($el.length === 0) return toggle;\n\n if ($el[0].f7Toggle) return $el[0].f7Toggle;\n\n const $inputEl = $el.children('input[type=\"checkbox\"]');\n\n extend(toggle, {\n app,\n $el,\n el: $el[0],\n $inputEl,\n inputEl: $inputEl[0],\n disabled:\n $el.hasClass('disabled') ||\n $inputEl.hasClass('disabled') ||\n $inputEl.attr('disabled') ||\n $inputEl[0].disabled,\n });\n\n Object.defineProperty(toggle, 'checked', {\n enumerable: true,\n configurable: true,\n set(checked) {\n if (!toggle || typeof toggle.$inputEl === 'undefined') return;\n if (toggle.checked === checked) return;\n $inputEl[0].checked = checked;\n toggle.$inputEl.trigger('change');\n },\n get() {\n return $inputEl[0].checked;\n },\n });\n\n $el[0].f7Toggle = toggle;\n\n let isTouched;\n const touchesStart = {};\n let isScrolling;\n let touchesDiff;\n let toggleWidth;\n let touchStartTime;\n let touchStartChecked;\n function handleTouchStart(e) {\n if (isTouched || toggle.disabled) 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 touchesDiff = 0;\n\n isTouched = true;\n isScrolling = undefined;\n touchStartTime = now();\n touchStartChecked = toggle.checked;\n\n toggleWidth = $el[0].offsetWidth;\n nextTick(() => {\n if (isTouched) {\n $el.addClass('toggle-active-state');\n }\n });\n }\n function handleTouchMove(e) {\n if (!isTouched || toggle.disabled) 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 const inverter = app.rtl ? -1 : 1;\n\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(\n isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)\n );\n }\n if (isScrolling) {\n isTouched = false;\n return;\n }\n e.preventDefault();\n\n touchesDiff = pageX - touchesStart.x;\n\n let changed;\n if (\n touchesDiff * inverter < 0 &&\n Math.abs(touchesDiff) > toggleWidth / 3 &&\n touchStartChecked\n ) {\n changed = true;\n }\n if (\n touchesDiff * inverter > 0 &&\n Math.abs(touchesDiff) > toggleWidth / 3 &&\n !touchStartChecked\n ) {\n changed = true;\n }\n if (changed) {\n touchesStart.x = pageX;\n toggle.checked = !touchStartChecked;\n touchStartChecked = !touchStartChecked;\n }\n }\n function handleTouchEnd() {\n if (!isTouched || toggle.disabled) {\n if (isScrolling) $el.removeClass('toggle-active-state');\n isTouched = false;\n return;\n }\n const inverter = app.rtl ? -1 : 1;\n isTouched = false;\n\n $el.removeClass('toggle-active-state');\n\n let changed;\n if (now() - touchStartTime < 300) {\n if (touchesDiff * inverter < 0 && touchStartChecked) {\n changed = true;\n }\n if (touchesDiff * inverter > 0 && !touchStartChecked) {\n changed = true;\n }\n if (changed) {\n toggle.checked = !touchStartChecked;\n }\n }\n }\n function handleInputChange() {\n toggle.$el.trigger('toggle:change');\n toggle.emit('local::change toggleChange', toggle);\n }\n toggle.attachEvents = function attachEvents() {\n const passive = support.passiveListener ? { passive: true } : false;\n $el.on(app.touchEvents.start, handleTouchStart, passive);\n app.on('touchmove', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n toggle.$inputEl.on('change', handleInputChange);\n };\n toggle.detachEvents = function detachEvents() {\n const passive = support.passiveListener ? { passive: true } : false;\n $el.off(app.touchEvents.start, handleTouchStart, passive);\n app.off('touchmove', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n toggle.$inputEl.off('change', handleInputChange);\n };\n\n // Install Modules\n toggle.useModules();\n\n // Init\n toggle.init();\n }\n\n toggle() {\n const toggle = this;\n toggle.checked = !toggle.checked;\n }\n\n init() {\n const toggle = this;\n toggle.attachEvents();\n }\n\n destroy() {\n let toggle = this;\n toggle.$el.trigger('toggle:beforedestroy');\n toggle.emit('local::beforeDestroy toggleBeforeDestroy', toggle);\n delete toggle.$el[0].f7Toggle;\n toggle.detachEvents();\n deleteProps(toggle);\n toggle = null;\n }\n}\n\nexport default Toggle;\n","import $ from '../../shared/dom7.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\nimport Toggle from './toggle-class.js';\n\nexport default {\n name: 'toggle',\n create() {\n const app = this;\n app.toggle = ConstructorMethods({\n defaultSelector: '.toggle',\n constructor: Toggle,\n app,\n domProp: 'f7Toggle',\n });\n },\n static: {\n Toggle,\n },\n on: {\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('.toggle-init')\n .each((toggleEl) => app.toggle.create({ el: toggleEl }));\n },\n tabBeforeRemove(tabEl) {\n $(tabEl)\n .find('.toggle-init')\n .each((toggleEl) => {\n if (toggleEl.f7Toggle) toggleEl.f7Toggle.destroy();\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.toggle-init').each((toggleEl) => app.toggle.create({ el: toggleEl }));\n },\n pageBeforeRemove(page) {\n page.$el.find('.toggle-init').each((toggleEl) => {\n if (toggleEl.f7Toggle) toggleEl.f7Toggle.destroy();\n });\n },\n },\n vnode: {\n 'toggle-init': {\n insert(vnode) {\n const app = this;\n const toggleEl = vnode.elm;\n app.toggle.create({ el: toggleEl });\n },\n destroy(vnode) {\n const toggleEl = vnode.elm;\n if (toggleEl.f7Toggle) toggleEl.f7Toggle.destroy();\n },\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend, nextTick, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\nimport { getSupport } from '../../shared/get-support.js';\n\nclass Range extends Framework7Class {\n constructor(app, params) {\n super(params, [app]);\n\n const range = this;\n const support = getSupport();\n\n const defaults = {\n el: null,\n inputEl: null,\n dual: false,\n step: 1,\n label: false,\n min: 0,\n max: 100,\n value: 0,\n draggableBar: true,\n vertical: false,\n verticalReversed: false,\n formatLabel: null,\n scale: false,\n scaleSteps: 5,\n scaleSubSteps: 0,\n formatScaleLabel: null,\n limitKnobPosition: app.theme === 'ios',\n };\n\n // Extend defaults with modules params\n range.useModulesParams(defaults);\n\n range.params = extend(defaults, params);\n\n const el = range.params.el;\n if (!el) return range;\n\n const $el = $(el);\n if ($el.length === 0) return range;\n\n if ($el[0].f7Range) return $el[0].f7Range;\n\n const dataset = $el.dataset();\n\n 'step min max value scaleSteps scaleSubSteps'.split(' ').forEach((paramName) => {\n if (typeof params[paramName] === 'undefined' && typeof dataset[paramName] !== 'undefined') {\n range.params[paramName] = parseFloat(dataset[paramName]);\n }\n });\n 'dual label vertical verticalReversed scale'.split(' ').forEach((paramName) => {\n if (typeof params[paramName] === 'undefined' && typeof dataset[paramName] !== 'undefined') {\n range.params[paramName] = dataset[paramName];\n }\n });\n\n if (!range.params.value) {\n if (typeof dataset.value !== 'undefined') range.params.value = dataset.value;\n if (typeof dataset.valueLeft !== 'undefined' && typeof dataset.valueRight !== 'undefined') {\n range.params.value = [parseFloat(dataset.valueLeft), parseFloat(dataset.valueRight)];\n }\n }\n\n let $inputEl;\n if (!range.params.dual) {\n if (range.params.inputEl) {\n $inputEl = $(range.params.inputEl);\n } else if ($el.find('input[type=\"range\"]').length) {\n $inputEl = $el.find('input[type=\"range\"]').eq(0);\n }\n }\n\n const {\n dual,\n step,\n label,\n min,\n max,\n value,\n vertical,\n verticalReversed,\n scale,\n scaleSteps,\n scaleSubSteps,\n limitKnobPosition,\n } = range.params;\n\n extend(range, {\n app,\n $el,\n el: $el[0],\n $inputEl,\n inputEl: $inputEl ? $inputEl[0] : undefined,\n dual,\n step,\n label,\n min,\n max,\n value,\n previousValue: value,\n vertical,\n verticalReversed,\n scale,\n scaleSteps,\n scaleSubSteps,\n limitKnobPosition,\n });\n\n if ($inputEl) {\n 'step min max'.split(' ').forEach((paramName) => {\n if (!params[paramName] && $inputEl.attr(paramName)) {\n range.params[paramName] = parseFloat($inputEl.attr(paramName));\n range[paramName] = parseFloat($inputEl.attr(paramName));\n }\n });\n if (typeof $inputEl.val() !== 'undefined') {\n range.params.value = parseFloat($inputEl.val());\n range.value = parseFloat($inputEl.val());\n }\n }\n\n // Dual\n if (range.dual) {\n $el.addClass('range-slider-dual');\n }\n if (range.label) {\n $el.addClass('range-slider-label');\n }\n\n // Vertical\n if (range.vertical) {\n $el.addClass('range-slider-vertical');\n if (range.verticalReversed) {\n $el.addClass('range-slider-vertical-reversed');\n }\n } else {\n $el.addClass('range-slider-horizontal');\n }\n\n // Check for layout\n const $barEl = $('<div class=\"range-bar\"></div>');\n const $barActiveEl = $('<div class=\"range-bar-active\"></div>');\n $barEl.append($barActiveEl);\n\n // Create Knobs\n // prettier-ignore\n const knobHTML = `\n <div class=\"range-knob-wrap\">\n <div class=\"range-knob\"></div>\n ${range.label ? '<div class=\"range-knob-label\"></div>' : ''}\n </div>\n `;\n const knobs = [$(knobHTML)];\n\n if (range.dual) {\n knobs.push($(knobHTML));\n }\n\n $el.append($barEl);\n knobs.forEach(($knobEl) => {\n $el.append($knobEl);\n });\n\n // Labels\n const labels = [];\n if (range.label) {\n labels.push(knobs[0].find('.range-knob-label'));\n if (range.dual) {\n labels.push(knobs[1].find('.range-knob-label'));\n }\n }\n\n // Scale\n let $scaleEl;\n if (range.scale && range.scaleSteps >= 1) {\n $scaleEl = $(`\n <div class=\"range-scale\">\n ${range.renderScale()}\n </div>\n `);\n $el.append($scaleEl);\n }\n\n extend(range, {\n knobs,\n labels,\n $barEl,\n $barActiveEl,\n $scaleEl,\n });\n\n $el[0].f7Range = range;\n\n // Touch Events\n let isTouched;\n const touchesStart = {};\n let isScrolling;\n let rangeOffset;\n let rangeOffsetLeft;\n let rangeOffsetTop;\n let $touchedKnobEl;\n let dualValueIndex;\n let valueChangedByTouch;\n let targetTouchIdentifier;\n function onTouchChange() {\n valueChangedByTouch = true;\n }\n function handleTouchStart(e) {\n if (isTouched) return;\n if (!range.params.draggableBar) {\n if ($(e.target).closest('.range-knob').length === 0) {\n return;\n }\n }\n valueChangedByTouch = false;\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 if (e.type === 'touchstart') {\n targetTouchIdentifier = e.targetTouches[0].identifier;\n }\n\n isTouched = true;\n isScrolling = undefined;\n rangeOffset = $el.offset();\n rangeOffsetLeft = rangeOffset.left;\n rangeOffsetTop = rangeOffset.top;\n\n let progress;\n if (range.vertical) {\n progress = (touchesStart.y - rangeOffsetTop) / range.rangeHeight;\n if (!range.verticalReversed) progress = 1 - progress;\n } else if (range.app.rtl) {\n progress = (rangeOffsetLeft + range.rangeWidth - touchesStart.x) / range.rangeWidth;\n } else {\n progress = (touchesStart.x - rangeOffsetLeft) / range.rangeWidth;\n }\n\n let newValue = progress * (range.max - range.min) + range.min;\n if (range.dual) {\n if (Math.abs(range.value[0] - newValue) < Math.abs(range.value[1] - newValue)) {\n dualValueIndex = 0;\n $touchedKnobEl = range.knobs[0];\n newValue = [newValue, range.value[1]];\n } else {\n dualValueIndex = 1;\n $touchedKnobEl = range.knobs[1];\n newValue = [range.value[0], newValue];\n }\n } else {\n $touchedKnobEl = range.knobs[0];\n newValue = progress * (range.max - range.min) + range.min;\n }\n nextTick(() => {\n if (isTouched) $touchedKnobEl.addClass('range-knob-active-state');\n }, 70);\n range.on('change', onTouchChange);\n range.setValue(newValue, true);\n }\n function handleTouchMove(e) {\n if (!isTouched) return;\n let pageX;\n let pageY;\n if (e.type === 'touchmove') {\n for (let i = 0; i < e.targetTouches.length; i += 1) {\n if (e.targetTouches[i].identifier === targetTouchIdentifier) {\n pageX = e.targetTouches[i].pageX;\n pageY = e.targetTouches[i].pageY;\n }\n }\n } else {\n pageX = e.pageX;\n pageY = e.pageY;\n }\n if (typeof pageX === 'undefined' && typeof pageY === 'undefined') return;\n\n if (typeof isScrolling === 'undefined' && !range.vertical) {\n isScrolling = !!(\n isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)\n );\n }\n if (isScrolling) {\n isTouched = false;\n return;\n }\n e.preventDefault();\n\n let progress;\n if (range.vertical) {\n progress = (pageY - rangeOffsetTop) / range.rangeHeight;\n if (!range.verticalReversed) progress = 1 - progress;\n } else if (range.app.rtl) {\n progress = (rangeOffsetLeft + range.rangeWidth - pageX) / range.rangeWidth;\n } else {\n progress = (pageX - rangeOffsetLeft) / range.rangeWidth;\n }\n\n let newValue = progress * (range.max - range.min) + range.min;\n if (range.dual) {\n let leftValue;\n let rightValue;\n if (dualValueIndex === 0) {\n leftValue = newValue;\n rightValue = range.value[1];\n if (leftValue > rightValue) {\n rightValue = leftValue;\n }\n } else {\n leftValue = range.value[0];\n rightValue = newValue;\n if (rightValue < leftValue) {\n leftValue = rightValue;\n }\n }\n newValue = [leftValue, rightValue];\n }\n range.setValue(newValue, true);\n }\n function handleTouchEnd(e) {\n if (e.type === 'touchend') {\n let touchEnded;\n for (let i = 0; i < e.changedTouches.length; i += 1) {\n if (e.changedTouches[i].identifier === targetTouchIdentifier) touchEnded = true;\n }\n if (!touchEnded) return;\n }\n if (!isTouched) {\n if (isScrolling) $touchedKnobEl.removeClass('range-knob-active-state');\n isTouched = false;\n return;\n }\n range.off('change', onTouchChange);\n isTouched = false;\n $touchedKnobEl.removeClass('range-knob-active-state');\n if (valueChangedByTouch && range.$inputEl && !range.dual) {\n range.$inputEl.trigger('change');\n }\n valueChangedByTouch = false;\n if (typeof range.previousValue !== 'undefined') {\n if (\n (range.dual &&\n (range.previousValue[0] !== range.value[0] ||\n range.previousValue[1] !== range.value[1])) ||\n (!range.dual && range.previousValue !== range.value)\n ) {\n range.$el.trigger('range:changed', range.value);\n range.emit('local::changed rangeChanged', range, range.value);\n }\n }\n }\n\n function handleResize() {\n range.calcSize();\n range.layout();\n }\n let parentModals;\n let parentPanel;\n let parentPage;\n range.attachEvents = function attachEvents() {\n const passive = support.passiveListener ? { passive: true } : false;\n range.$el.on(app.touchEvents.start, handleTouchStart, passive);\n app.on('touchmove', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n app.on('tabShow', handleResize);\n app.on('resize', handleResize);\n parentModals = range.$el.parents(\n '.sheet-modal, .actions-modal, .popup, .popover, .login-screen, .dialog, .toast',\n );\n parentModals.on('modal:open', handleResize);\n parentPanel = range.$el.parents('.panel');\n parentPanel.on('panel:open panel:resize', handleResize);\n parentPage = range.$el.parents('.page').eq(0);\n parentPage.on('page:reinit', handleResize);\n };\n range.detachEvents = function detachEvents() {\n const passive = support.passiveListener ? { passive: true } : false;\n range.$el.off(app.touchEvents.start, handleTouchStart, passive);\n app.off('touchmove', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n app.off('tabShow', handleResize);\n app.off('resize', handleResize);\n if (parentModals) {\n parentModals.off('modal:open', handleResize);\n }\n if (parentPanel) {\n parentPanel.off('panel:open panel:resize', handleResize);\n }\n if (parentPage) {\n parentPage.off('page:reinit', handleResize);\n }\n parentModals = null;\n parentPanel = null;\n parentPage = null;\n };\n\n // Install Modules\n range.useModules();\n\n // Init\n range.init();\n\n return range;\n }\n\n calcSize() {\n const range = this;\n if (range.vertical) {\n const height = range.$el.outerHeight();\n if (height === 0) return;\n range.rangeHeight = height;\n range.knobHeight = range.knobs[0].outerHeight();\n } else {\n const width = range.$el.outerWidth();\n if (width === 0) return;\n range.rangeWidth = width;\n range.knobWidth = range.knobs[0].outerWidth();\n }\n }\n\n layout() {\n const range = this;\n const {\n app,\n knobWidth,\n knobHeight,\n rangeWidth,\n rangeHeight,\n min,\n max,\n knobs,\n $barActiveEl,\n value,\n label,\n labels,\n vertical,\n verticalReversed,\n limitKnobPosition,\n } = range;\n const knobSize = vertical ? knobHeight : knobWidth;\n const rangeSize = vertical ? rangeHeight : rangeWidth;\n // eslint-disable-next-line\n const positionProperty = vertical\n ? verticalReversed\n ? 'top'\n : 'bottom'\n : app.rtl\n ? 'right'\n : 'left';\n if (range.dual) {\n const progress = [(value[0] - min) / (max - min), (value[1] - min) / (max - min)];\n $barActiveEl.css({\n [positionProperty]: `${progress[0] * 100}%`,\n [vertical ? 'height' : 'width']: `${(progress[1] - progress[0]) * 100}%`,\n });\n knobs.forEach(($knobEl, knobIndex) => {\n let startPos = rangeSize * progress[knobIndex];\n if (limitKnobPosition) {\n const realStartPos = rangeSize * progress[knobIndex] - knobSize / 2;\n if (realStartPos < 0) startPos = knobSize / 2;\n if (realStartPos + knobSize > rangeSize) startPos = rangeSize - knobSize / 2;\n }\n $knobEl.css(positionProperty, `${startPos}px`);\n if (label)\n labels[knobIndex].text(range.formatLabel(value[knobIndex], labels[knobIndex][0]));\n });\n } else {\n const progress = (value - min) / (max - min);\n $barActiveEl.css(vertical ? 'height' : 'width', `${progress * 100}%`);\n\n let startPos = rangeSize * progress;\n if (limitKnobPosition) {\n const realStartPos = rangeSize * progress - knobSize / 2;\n if (realStartPos < 0) startPos = knobSize / 2;\n if (realStartPos + knobSize > rangeSize) startPos = rangeSize - knobSize / 2;\n }\n knobs[0].css(positionProperty, `${startPos}px`);\n if (label) labels[0].text(range.formatLabel(value, labels[0][0]));\n }\n if ((range.dual && value.indexOf(min) >= 0) || (!range.dual && value === min)) {\n range.$el.addClass('range-slider-min');\n } else {\n range.$el.removeClass('range-slider-min');\n }\n if ((range.dual && value.indexOf(max) >= 0) || (!range.dual && value === max)) {\n range.$el.addClass('range-slider-max');\n } else {\n range.$el.removeClass('range-slider-max');\n }\n }\n\n setValue(newValue, byTouchMove) {\n const range = this;\n const { step, min, max } = range;\n let valueChanged;\n let oldValue;\n if (range.dual) {\n oldValue = [range.value[0], range.value[1]];\n let newValues = newValue;\n if (!Array.isArray(newValues)) newValues = [newValue, newValue];\n if (newValue[0] > newValue[1]) {\n newValues = [newValues[0], newValues[0]];\n }\n newValues = newValues.map((value) =>\n Math.max(Math.min(Math.round(value / step) * step, max), min),\n );\n if (newValues[0] === range.value[0] && newValues[1] === range.value[1]) {\n return range;\n }\n newValues.forEach((value, valueIndex) => {\n range.value[valueIndex] = value;\n });\n valueChanged = oldValue[0] !== newValues[0] || oldValue[1] !== newValues[1];\n range.layout();\n } else {\n oldValue = range.value;\n const value = Math.max(Math.min(Math.round(newValue / step) * step, max), min);\n range.value = value;\n range.layout();\n valueChanged = oldValue !== value;\n }\n\n if (valueChanged) {\n range.previousValue = oldValue;\n }\n // Events\n if (!valueChanged) return range;\n range.$el.trigger('range:change', range.value);\n if (range.$inputEl && !range.dual) {\n range.$inputEl.val(range.value);\n if (!byTouchMove) {\n range.$inputEl.trigger('input change');\n } else {\n range.$inputEl.trigger('input');\n }\n }\n if (!byTouchMove) {\n range.$el.trigger('range:changed', range.value);\n range.emit('local::changed rangeChanged', range, range.value);\n }\n range.emit('local::change rangeChange', range, range.value);\n return range;\n }\n\n getValue() {\n return this.value;\n }\n\n formatLabel(value, labelEl) {\n const range = this;\n if (range.params.formatLabel) return range.params.formatLabel.call(range, value, labelEl);\n return value;\n }\n\n formatScaleLabel(value) {\n const range = this;\n if (range.params.formatScaleLabel) return range.params.formatScaleLabel.call(range, value);\n return value;\n }\n\n renderScale() {\n const range = this;\n const { app, verticalReversed, vertical } = range;\n\n // eslint-disable-next-line\n const positionProperty = vertical\n ? verticalReversed\n ? 'top'\n : 'bottom'\n : app.rtl\n ? 'right'\n : 'left';\n\n let html = '';\n Array.from({ length: range.scaleSteps + 1 }).forEach((scaleEl, index) => {\n const scaleStepValue = (range.max - range.min) / range.scaleSteps;\n const scaleValue = range.min + scaleStepValue * index;\n const progress = (scaleValue - range.min) / (range.max - range.min);\n html += `<div class=\"range-scale-step\" style=\"${positionProperty}: ${\n progress * 100\n }%\">${range.formatScaleLabel(scaleValue)}</div>`;\n\n if (range.scaleSubSteps && range.scaleSubSteps > 1 && index < range.scaleSteps) {\n Array.from({ length: range.scaleSubSteps - 1 }).forEach((subStepEl, subIndex) => {\n const subStep = scaleStepValue / range.scaleSubSteps;\n const scaleSubValue = scaleValue + subStep * (subIndex + 1);\n const subProgress = (scaleSubValue - range.min) / (range.max - range.min);\n html += `<div class=\"range-scale-step range-scale-substep\" style=\"${positionProperty}: ${\n subProgress * 100\n }%\"></div>`;\n });\n }\n });\n\n return html;\n }\n\n updateScale() {\n const range = this;\n if (!range.scale || range.scaleSteps < 1) {\n if (range.$scaleEl) range.$scaleEl.remove();\n delete range.$scaleEl;\n return;\n }\n if (!range.$scaleEl) {\n range.$scaleEl = $('<div class=\"range-scale\"></div>');\n range.$el.append(range.$scaleEl);\n }\n\n range.$scaleEl.html(range.renderScale());\n }\n\n init() {\n const range = this;\n range.calcSize();\n range.layout();\n range.attachEvents();\n return range;\n }\n\n destroy() {\n let range = this;\n range.$el.trigger('range:beforedestroy');\n range.emit('local::beforeDestroy rangeBeforeDestroy', range);\n delete range.$el[0].f7Range;\n range.detachEvents();\n deleteProps(range);\n range = null;\n }\n}\n\nexport default Range;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Range from './range-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'range',\n create() {\n const app = this;\n app.range = extend(\n ConstructorMethods({\n defaultSelector: '.range-slider',\n constructor: Range,\n app,\n domProp: 'f7Range',\n }),\n {\n getValue(el = '.range-slider') {\n const range = app.range.get(el);\n if (range) return range.getValue();\n return undefined;\n },\n setValue(el = '.range-slider', value) {\n const range = app.range.get(el);\n if (range) return range.setValue(value);\n return undefined;\n },\n },\n );\n },\n static: {\n Range,\n },\n on: {\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('.range-slider-init')\n .each(\n (rangeEl) =>\n new Range(app, {\n el: rangeEl,\n }),\n );\n },\n tabBeforeRemove(tabEl) {\n $(tabEl)\n .find('.range-slider-init')\n .each((rangeEl) => {\n if (rangeEl.f7Range) rangeEl.f7Range.destroy();\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.range-slider-init').each(\n (rangeEl) =>\n new Range(app, {\n el: rangeEl,\n }),\n );\n },\n pageBeforeRemove(page) {\n page.$el.find('.range-slider-init').each((rangeEl) => {\n if (rangeEl.f7Range) rangeEl.f7Range.destroy();\n });\n },\n },\n vnode: {\n 'range-slider-init': {\n insert(vnode) {\n const rangeEl = vnode.elm;\n const app = this;\n app.range.create({ el: rangeEl });\n },\n destroy(vnode) {\n const rangeEl = vnode.elm;\n if (rangeEl.f7Range) rangeEl.f7Range.destroy();\n },\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\n\nclass Stepper extends Framework7Class {\n constructor(app, params) {\n super(params, [app]);\n const stepper = this;\n\n const defaults = {\n el: null,\n inputEl: null,\n valueEl: null,\n value: 0,\n formatValue: null,\n step: 1,\n min: 0,\n max: 100,\n watchInput: true,\n autorepeat: false,\n autorepeatDynamic: false,\n wraps: false,\n manualInputMode: false,\n decimalPoint: 4,\n buttonsEndInputMode: true,\n };\n\n // Extend defaults with modules params\n stepper.useModulesParams(defaults);\n\n stepper.params = extend(defaults, params);\n if (stepper.params.value < stepper.params.min) {\n stepper.params.value = stepper.params.min;\n }\n if (stepper.params.value > stepper.params.max) {\n stepper.params.value = stepper.params.max;\n }\n\n const el = stepper.params.el;\n if (!el) return stepper;\n\n const $el = $(el);\n if ($el.length === 0) return stepper;\n\n if ($el[0].f7Stepper) return $el[0].f7Stepper;\n\n let $inputEl;\n if (stepper.params.inputEl) {\n $inputEl = $(stepper.params.inputEl);\n } else if ($el.find('.stepper-input-wrap').find('input, textarea').length) {\n $inputEl = $el.find('.stepper-input-wrap').find('input, textarea').eq(0);\n }\n\n if ($inputEl && $inputEl.length) {\n 'step min max'.split(' ').forEach((paramName) => {\n if (!params[paramName] && $inputEl.attr(paramName)) {\n stepper.params[paramName] = parseFloat($inputEl.attr(paramName));\n }\n });\n\n const decimalPoint = parseInt(stepper.params.decimalPoint, 10);\n if (Number.isNaN(decimalPoint)) {\n stepper.params.decimalPoint = 0;\n } else {\n stepper.params.decimalPoint = decimalPoint;\n }\n\n const inputValue = parseFloat($inputEl.val());\n if (\n typeof params.value === 'undefined' &&\n !Number.isNaN(inputValue) &&\n (inputValue || inputValue === 0)\n ) {\n stepper.params.value = inputValue;\n }\n }\n\n let $valueEl;\n if (stepper.params.valueEl) {\n $valueEl = $(stepper.params.valueEl);\n } else if ($el.find('.stepper-value').length) {\n $valueEl = $el.find('.stepper-value').eq(0);\n }\n\n const $buttonPlusEl = $el.find('.stepper-button-plus');\n const $buttonMinusEl = $el.find('.stepper-button-minus');\n\n const { step, min, max, value, decimalPoint } = stepper.params;\n\n extend(stepper, {\n app,\n $el,\n el: $el[0],\n $buttonPlusEl,\n buttonPlusEl: $buttonPlusEl[0],\n $buttonMinusEl,\n buttonMinusEl: $buttonMinusEl[0],\n $inputEl,\n inputEl: $inputEl ? $inputEl[0] : undefined,\n $valueEl,\n valueEl: $valueEl ? $valueEl[0] : undefined,\n step,\n min,\n max,\n value,\n decimalPoint,\n typeModeChanged: false,\n });\n\n $el[0].f7Stepper = stepper;\n\n // Handle Events\n const touchesStart = {};\n let isTouched;\n let isScrolling;\n let preventButtonClick;\n let intervalId;\n let timeoutId;\n let autorepeatAction = null;\n let autorepeatInAction = false;\n let manualInput = false;\n\n function dynamicRepeat(current, progressions, startsIn, progressionStep, repeatEvery, action) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(\n () => {\n if (current === 1) {\n preventButtonClick = true;\n autorepeatInAction = true;\n }\n clearInterval(intervalId);\n action();\n intervalId = setInterval(() => {\n action();\n }, repeatEvery);\n if (current < progressions) {\n dynamicRepeat(\n current + 1,\n progressions,\n startsIn,\n progressionStep,\n repeatEvery / 2,\n action,\n );\n }\n },\n current === 1 ? startsIn : progressionStep,\n );\n }\n\n function onTouchStart(e) {\n if (isTouched) return;\n if (manualInput) {\n return;\n }\n if ($(e.target).closest($buttonPlusEl).length) {\n autorepeatAction = 'increment';\n } else if ($(e.target).closest($buttonMinusEl).length) {\n autorepeatAction = 'decrement';\n }\n if (!autorepeatAction) return;\n\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 isTouched = true;\n isScrolling = undefined;\n\n const progressions = stepper.params.autorepeatDynamic ? 4 : 1;\n dynamicRepeat(1, progressions, 500, 1000, 300, () => {\n stepper[autorepeatAction]();\n });\n }\n function onTouchMove(e) {\n if (!isTouched) return;\n if (manualInput) {\n return;\n }\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\n if (typeof isScrolling === 'undefined' && !autorepeatInAction) {\n isScrolling = !!(\n isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)\n );\n }\n const distance = ((pageX - touchesStart.x) ** 2 + (pageY - touchesStart.y) ** 2) ** 0.5;\n\n if (isScrolling || distance > 20) {\n isTouched = false;\n clearTimeout(timeoutId);\n clearInterval(intervalId);\n }\n }\n function onTouchEnd() {\n clearTimeout(timeoutId);\n clearInterval(intervalId);\n autorepeatAction = null;\n autorepeatInAction = false;\n isTouched = false;\n }\n\n function onMinusClick() {\n if (manualInput) {\n if (stepper.params.buttonsEndInputMode) {\n manualInput = false;\n stepper.endTypeMode(true);\n }\n return;\n }\n if (preventButtonClick) {\n preventButtonClick = false;\n return;\n }\n stepper.decrement(true);\n }\n function onPlusClick() {\n if (manualInput) {\n if (stepper.params.buttonsEndInputMode) {\n manualInput = false;\n stepper.endTypeMode(true);\n }\n return;\n }\n if (preventButtonClick) {\n preventButtonClick = false;\n return;\n }\n stepper.increment(true);\n }\n function onInputClick(e) {\n if (!e.target.readOnly && stepper.params.manualInputMode) {\n manualInput = true;\n if (typeof e.target.selectionStart === 'number') {\n e.target.selectionStart = e.target.value.length;\n e.target.selectionEnd = e.target.value.length;\n }\n }\n }\n function onInputKey(e) {\n if (e.keyCode === 13 || e.which === 13) {\n e.preventDefault();\n manualInput = false;\n stepper.endTypeMode();\n }\n }\n function onInputBlur() {\n manualInput = false;\n stepper.endTypeMode(true);\n }\n function onInput(e) {\n if (manualInput) {\n stepper.typeValue(e.target.value);\n return;\n }\n if (e.detail && e.detail.sentByF7Stepper) return;\n stepper.setValue(e.target.value, true);\n }\n stepper.attachEvents = function attachEvents() {\n $buttonMinusEl.on('click', onMinusClick);\n $buttonPlusEl.on('click', onPlusClick);\n if (stepper.params.watchInput && $inputEl && $inputEl.length) {\n $inputEl.on('input', onInput);\n $inputEl.on('click', onInputClick);\n $inputEl.on('blur', onInputBlur);\n $inputEl.on('keyup', onInputKey);\n }\n if (stepper.params.autorepeat) {\n app.on('touchstart:passive', onTouchStart);\n app.on('touchmove:active', onTouchMove);\n app.on('touchend:passive', onTouchEnd);\n }\n };\n stepper.detachEvents = function detachEvents() {\n $buttonMinusEl.off('click', onMinusClick);\n $buttonPlusEl.off('click', onPlusClick);\n if (stepper.params.watchInput && $inputEl && $inputEl.length) {\n $inputEl.off('input', onInput);\n $inputEl.off('click', onInputClick);\n $inputEl.off('blur', onInputBlur);\n $inputEl.off('keyup', onInputKey);\n }\n };\n\n // Install Modules\n stepper.useModules();\n\n // Init\n stepper.init();\n\n return stepper;\n }\n\n minus() {\n return this.decrement();\n }\n\n plus() {\n return this.increment();\n }\n\n decrement() {\n const stepper = this;\n return stepper.setValue(stepper.value - stepper.step, false, true);\n }\n\n increment() {\n const stepper = this;\n return stepper.setValue(stepper.value + stepper.step, false, true);\n }\n\n setValue(newValue, forceUpdate, withWraps) {\n const stepper = this;\n const { step, min, max } = stepper;\n\n const oldValue = stepper.value;\n\n let value = Math.round(newValue / step) * step;\n if (stepper.params.wraps && withWraps) {\n if (value > max) value = min;\n if (value < min) value = max;\n } else {\n value = Math.max(Math.min(value, max), min);\n }\n\n if (Number.isNaN(value)) {\n value = oldValue;\n }\n stepper.value = value;\n\n const valueChanged = oldValue !== value;\n\n // Events\n if (!valueChanged && !forceUpdate) return stepper;\n\n stepper.$el.trigger('stepper:change', stepper.value);\n const formattedValue = stepper.formatValue(stepper.value);\n if (stepper.$inputEl && stepper.$inputEl.length) {\n stepper.$inputEl.val(formattedValue);\n stepper.$inputEl.trigger('input change', { sentByF7Stepper: true });\n }\n if (stepper.$valueEl && stepper.$valueEl.length) {\n stepper.$valueEl.html(formattedValue);\n }\n stepper.emit('local::change stepperChange', stepper, stepper.value);\n return stepper;\n }\n\n endTypeMode(noBlur) {\n const stepper = this;\n const { min, max } = stepper;\n let value = parseFloat(stepper.value);\n\n if (Number.isNaN(value)) value = 0;\n\n value = Math.max(Math.min(value, max), min);\n\n stepper.value = value;\n if (!stepper.typeModeChanged) {\n if (stepper.$inputEl && stepper.$inputEl.length && !noBlur) {\n stepper.$inputEl.blur();\n }\n return stepper;\n }\n stepper.typeModeChanged = false;\n\n stepper.$el.trigger('stepper:change', stepper.value);\n const formattedValue = stepper.formatValue(stepper.value);\n if (stepper.$inputEl && stepper.$inputEl.length) {\n stepper.$inputEl.val(formattedValue);\n stepper.$inputEl.trigger('input change', { sentByF7Stepper: true });\n if (!noBlur) stepper.$inputEl.blur();\n }\n if (stepper.$valueEl && stepper.$valueEl.length) {\n stepper.$valueEl.html(formattedValue);\n }\n stepper.emit('local::change stepperChange', stepper, stepper.value);\n return stepper;\n }\n\n typeValue(value) {\n const stepper = this;\n stepper.typeModeChanged = true;\n let inputTxt = String(value);\n if (inputTxt.length === 1 && inputTxt === '-') return stepper;\n if (\n inputTxt.lastIndexOf('.') + 1 === inputTxt.length ||\n inputTxt.lastIndexOf(',') + 1 === inputTxt.length\n ) {\n if (\n inputTxt.lastIndexOf('.') !== inputTxt.indexOf('.') ||\n inputTxt.lastIndexOf(',') !== inputTxt.indexOf(',')\n ) {\n inputTxt = inputTxt.slice(0, -1);\n stepper.value = inputTxt;\n stepper.$inputEl.val(stepper.value);\n return stepper;\n }\n } else {\n let newValue = parseFloat(inputTxt.replace(',', '.'));\n if (newValue === 0) {\n stepper.value = inputTxt.replace(',', '.');\n stepper.$inputEl.val(stepper.value);\n return stepper;\n }\n if (Number.isNaN(newValue)) {\n stepper.value = 0;\n stepper.$inputEl.val(stepper.value);\n return stepper;\n }\n const powVal = 10 ** stepper.params.decimalPoint;\n newValue = Math.round(newValue * powVal).toFixed(stepper.params.decimalPoint + 1) / powVal;\n stepper.value = parseFloat(String(newValue).replace(',', '.'));\n stepper.$inputEl.val(stepper.value);\n return stepper;\n }\n stepper.value = inputTxt;\n stepper.$inputEl.val(inputTxt);\n return stepper;\n }\n\n getValue() {\n return this.value;\n }\n\n formatValue(value) {\n const stepper = this;\n if (!stepper.params.formatValue) return value;\n return stepper.params.formatValue.call(stepper, value);\n }\n\n init() {\n const stepper = this;\n stepper.attachEvents();\n if (stepper.$valueEl && stepper.$valueEl.length) {\n const formattedValue = stepper.formatValue(stepper.value);\n stepper.$valueEl.html(formattedValue);\n }\n return stepper;\n }\n\n destroy() {\n let stepper = this;\n stepper.$el.trigger('stepper:beforedestroy');\n stepper.emit('local::beforeDestroy stepperBeforeDestroy', stepper);\n delete stepper.$el[0].f7Stepper;\n stepper.detachEvents();\n deleteProps(stepper);\n stepper = null;\n }\n}\n\nexport default Stepper;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Stepper from './stepper-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'stepper',\n create() {\n const app = this;\n app.stepper = extend(\n ConstructorMethods({\n defaultSelector: '.stepper',\n constructor: Stepper,\n app,\n domProp: 'f7Stepper',\n }),\n {\n getValue(el = '.stepper') {\n const stepper = app.stepper.get(el);\n if (stepper) return stepper.getValue();\n return undefined;\n },\n setValue(el = '.stepper', value) {\n const stepper = app.stepper.get(el);\n if (stepper) return stepper.setValue(value);\n return undefined;\n },\n },\n );\n },\n static: {\n Stepper,\n },\n on: {\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('.stepper-init')\n .each((stepperEl) => {\n const dataset = $(stepperEl).dataset();\n app.stepper.create(extend({ el: stepperEl }, dataset || {}));\n });\n },\n tabBeforeRemove(tabEl) {\n $(tabEl)\n .find('.stepper-init')\n .each((stepperEl) => {\n if (stepperEl.f7Stepper) stepperEl.f7Stepper.destroy();\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.stepper-init').each((stepperEl) => {\n const dataset = $(stepperEl).dataset();\n app.stepper.create(extend({ el: stepperEl }, dataset || {}));\n });\n },\n pageBeforeRemove(page) {\n page.$el.find('.stepper-init').each((stepperEl) => {\n if (stepperEl.f7Stepper) stepperEl.f7Stepper.destroy();\n });\n },\n },\n vnode: {\n 'stepper-init': {\n insert(vnode) {\n const app = this;\n const stepperEl = vnode.elm;\n const dataset = $(stepperEl).dataset();\n app.stepper.create(extend({ el: stepperEl }, dataset || {}));\n },\n destroy(vnode) {\n const stepperEl = vnode.elm;\n if (stepperEl.f7Stepper) stepperEl.f7Stepper.destroy();\n },\n },\n },\n};\n","/* eslint no-control-regex: \"off\" */\nconst defaultDiacriticsRemovalap = [\n {\n base: 'A',\n letters:\n '\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F',\n },\n { base: 'AA', letters: '\\uA732' },\n { base: 'AE', letters: '\\u00C6\\u01FC\\u01E2' },\n { base: 'AO', letters: '\\uA734' },\n { base: 'AU', letters: '\\uA736' },\n { base: 'AV', letters: '\\uA738\\uA73A' },\n { base: 'AY', letters: '\\uA73C' },\n { base: 'B', letters: '\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181' },\n {\n base: 'C',\n letters: '\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E',\n },\n {\n base: 'D',\n letters: '\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779',\n },\n { base: 'DZ', letters: '\\u01F1\\u01C4' },\n { base: 'Dz', letters: '\\u01F2\\u01C5' },\n {\n base: 'E',\n letters:\n '\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E',\n },\n { base: 'F', letters: '\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B' },\n {\n base: 'G',\n letters:\n '\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E',\n },\n {\n base: 'H',\n letters: '\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D',\n },\n {\n base: 'I',\n letters:\n '\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197',\n },\n { base: 'J', letters: '\\u004A\\u24BF\\uFF2A\\u0134\\u0248' },\n {\n base: 'K',\n letters: '\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2',\n },\n {\n base: 'L',\n letters:\n '\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780',\n },\n { base: 'LJ', letters: '\\u01C7' },\n { base: 'Lj', letters: '\\u01C8' },\n { base: 'M', letters: '\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C' },\n {\n base: 'N',\n letters:\n '\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4',\n },\n { base: 'NJ', letters: '\\u01CA' },\n { base: 'Nj', letters: '\\u01CB' },\n {\n base: 'O',\n letters:\n '\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C',\n },\n { base: 'OI', letters: '\\u01A2' },\n { base: 'OO', letters: '\\uA74E' },\n { base: 'OU', letters: '\\u0222' },\n { base: 'OE', letters: '\\u008C\\u0152' },\n { base: 'oe', letters: '\\u009C\\u0153' },\n { base: 'P', letters: '\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754' },\n { base: 'Q', letters: '\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A' },\n {\n base: 'R',\n letters:\n '\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782',\n },\n {\n base: 'S',\n letters:\n '\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784',\n },\n {\n base: 'T',\n letters:\n '\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786',\n },\n { base: 'TZ', letters: '\\uA728' },\n {\n base: 'U',\n letters:\n '\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244',\n },\n { base: 'V', letters: '\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245' },\n { base: 'VY', letters: '\\uA760' },\n { base: 'W', letters: '\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72' },\n { base: 'X', letters: '\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C' },\n {\n base: 'Y',\n letters:\n '\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE',\n },\n {\n base: 'Z',\n letters: '\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762',\n },\n {\n base: 'a',\n letters:\n '\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250',\n },\n { base: 'aa', letters: '\\uA733' },\n { base: 'ae', letters: '\\u00E6\\u01FD\\u01E3' },\n { base: 'ao', letters: '\\uA735' },\n { base: 'au', letters: '\\uA737' },\n { base: 'av', letters: '\\uA739\\uA73B' },\n { base: 'ay', letters: '\\uA73D' },\n { base: 'b', letters: '\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253' },\n {\n base: 'c',\n letters: '\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184',\n },\n {\n base: 'd',\n letters: '\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A',\n },\n { base: 'dz', letters: '\\u01F3\\u01C6' },\n {\n base: 'e',\n letters:\n '\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD',\n },\n { base: 'f', letters: '\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C' },\n {\n base: 'g',\n letters:\n '\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F',\n },\n {\n base: 'h',\n letters:\n '\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265',\n },\n { base: 'hv', letters: '\\u0195' },\n {\n base: 'i',\n letters:\n '\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131',\n },\n { base: 'j', letters: '\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249' },\n {\n base: 'k',\n letters: '\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3',\n },\n {\n base: 'l',\n letters:\n '\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747',\n },\n { base: 'lj', letters: '\\u01C9' },\n { base: 'm', letters: '\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F' },\n {\n base: 'n',\n letters:\n '\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5',\n },\n { base: 'nj', letters: '\\u01CC' },\n {\n base: 'o',\n letters:\n '\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275',\n },\n { base: 'oi', letters: '\\u01A3' },\n { base: 'ou', letters: '\\u0223' },\n { base: 'oo', letters: '\\uA74F' },\n { base: 'p', letters: '\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755' },\n { base: 'q', letters: '\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759' },\n {\n base: 'r',\n letters:\n '\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783',\n },\n {\n base: 's',\n letters:\n '\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B',\n },\n {\n base: 't',\n letters:\n '\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787',\n },\n { base: 'tz', letters: '\\uA729' },\n {\n base: 'u',\n letters:\n '\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289',\n },\n { base: 'v', letters: '\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C' },\n { base: 'vy', letters: '\\uA761' },\n { base: 'w', letters: '\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73' },\n { base: 'x', letters: '\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D' },\n {\n base: 'y',\n letters:\n '\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF',\n },\n {\n base: 'z',\n letters: '\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763',\n },\n];\n\nconst diacriticsMap = {};\nfor (let i = 0; i < defaultDiacriticsRemovalap.length; i += 1) {\n const letters = defaultDiacriticsRemovalap[i].letters;\n for (let j = 0; j < letters.length; j += 1) {\n diacriticsMap[letters[j]] = defaultDiacriticsRemovalap[i].base;\n }\n}\n\nfunction removeDiacritics(str) {\n return str.replace(/[^\\u0000-\\u007E]/g, (a) => diacriticsMap[a] || a);\n}\n\nexport default removeDiacritics;\n","import $ from '../../shared/dom7.js';\nimport { extend, deleteProps, id, nextTick } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\nimport removeDiacritics from '../searchbar/remove-diacritics.js';\n\n/** @jsx $jsx */\nimport $jsx from '../../shared/$jsx.js';\n\nclass SmartSelect extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n const ss = this;\n\n const defaults = extend(\n {\n on: {},\n },\n app.params.smartSelect,\n );\n\n // Extend defaults with modules params\n ss.useModulesParams(defaults);\n\n ss.params = extend({}, defaults, params);\n\n ss.app = app;\n\n const $el = $(ss.params.el).eq(0);\n if ($el.length === 0) return ss;\n\n if ($el[0].f7SmartSelect) return $el[0].f7SmartSelect;\n\n const $selectEl = $el.find('select').eq(0);\n if ($selectEl.length === 0) return ss;\n\n let $valueEl;\n if (ss.params.setValueText) {\n $valueEl = $(ss.params.valueEl);\n if ($valueEl.length === 0) {\n $valueEl = $el.find('.item-after');\n }\n if ($valueEl.length === 0) {\n $valueEl = $('<div class=\"item-after\"></div>');\n $valueEl.insertAfter($el.find('.item-title'));\n }\n }\n\n // Url\n let url = params.url;\n if (!url) {\n if ($el.attr('href') && $el.attr('href') !== '#') url = $el.attr('href');\n else if ($selectEl.attr('name')) url = `${$selectEl.attr('name').toLowerCase()}-select/`;\n }\n if (!url) url = ss.params.url;\n\n const multiple = $selectEl[0].multiple;\n const inputType = multiple ? 'checkbox' : 'radio';\n const selectId = id();\n\n extend(ss, {\n $el,\n el: $el[0],\n $selectEl,\n selectEl: $selectEl[0],\n $valueEl,\n valueEl: $valueEl && $valueEl[0],\n url,\n multiple,\n inputType,\n id: selectId,\n inputName: `${inputType}-${selectId}`,\n selectName: $selectEl.attr('name'),\n maxLength: $selectEl.attr('maxlength') || params.maxLength,\n });\n\n $el[0].f7SmartSelect = ss;\n\n // Events\n function onClick() {\n ss.open();\n }\n function onChange() {\n const value = ss.$selectEl.val();\n ss.$el.trigger('smartselect:change', value);\n ss.emit('local::change smartSelectChange', ss, value);\n if (ss.vl) {\n ss.vl.clearCache();\n }\n ss.setValueText();\n }\n ss.attachEvents = function attachEvents() {\n $el.on('click', onClick);\n $el.on('change', 'select', onChange);\n };\n ss.detachEvents = function detachEvents() {\n $el.off('click', onClick);\n $el.off('change', 'select', onChange);\n };\n\n function handleInputChange() {\n let optionEl;\n let text;\n const inputEl = this;\n const value = inputEl.value;\n let optionText = [];\n let displayAs;\n if (inputEl.type === 'checkbox') {\n for (let i = 0; i < ss.selectEl.options.length; i += 1) {\n optionEl = ss.selectEl.options[i];\n if (optionEl.value === value) {\n optionEl.selected = inputEl.checked;\n }\n if (optionEl.selected) {\n displayAs = optionEl.dataset\n ? optionEl.dataset.displayAs\n : $(optionEl).data('display-value-as');\n text = displayAs && typeof displayAs !== 'undefined' ? displayAs : optionEl.textContent;\n optionText.push(text.trim());\n }\n }\n if (ss.maxLength) {\n ss.checkMaxLength();\n }\n } else {\n optionEl = ss.$selectEl.find(`option[value=\"${value}\"]`)[0];\n if (!optionEl) {\n optionEl = ss.$selectEl.find('option').filter((optEl) => optEl.value === value)[0];\n }\n displayAs = optionEl.dataset ? optionEl.dataset.displayAs : $(optionEl).data('display-as');\n text = displayAs && typeof displayAs !== 'undefined' ? displayAs : optionEl.textContent;\n optionText = [text];\n ss.selectEl.value = value;\n }\n\n ss.$selectEl.trigger('change');\n if (ss.params.setValueText) {\n ss.formatValueTextContent(optionText);\n }\n if (ss.params.closeOnSelect && ss.inputType === 'radio') {\n ss.close();\n }\n }\n\n ss.attachInputsEvents = function attachInputsEvents() {\n ss.$containerEl.on(\n 'change',\n 'input[type=\"checkbox\"], input[type=\"radio\"]',\n handleInputChange,\n );\n };\n ss.detachInputsEvents = function detachInputsEvents() {\n ss.$containerEl.off(\n 'change',\n 'input[type=\"checkbox\"], input[type=\"radio\"]',\n handleInputChange,\n );\n };\n\n // Install Modules\n ss.useModules();\n\n // Init\n ss.init();\n\n return ss;\n }\n\n setValue(value) {\n const ss = this;\n let newValue = value;\n let optionText = [];\n let optionEl;\n let displayAs;\n let text;\n if (ss.multiple) {\n if (!Array.isArray(newValue)) newValue = [newValue];\n for (let i = 0; i < ss.selectEl.options.length; i += 1) {\n optionEl = ss.selectEl.options[i];\n if (newValue.indexOf(optionEl.value) >= 0) {\n optionEl.selected = true;\n } else {\n optionEl.selected = false;\n }\n if (optionEl.selected) {\n displayAs = optionEl.dataset\n ? optionEl.dataset.displayAs\n : $(optionEl).data('display-value-as');\n text = displayAs && typeof displayAs !== 'undefined' ? displayAs : optionEl.textContent;\n optionText.push(text.trim());\n }\n }\n } else {\n optionEl = ss.$selectEl.find(`option[value=\"${newValue}\"]`)[0];\n if (optionEl) {\n displayAs = optionEl.dataset ? optionEl.dataset.displayAs : $(optionEl).data('display-as');\n text = displayAs && typeof displayAs !== 'undefined' ? displayAs : optionEl.textContent;\n optionText = [text];\n }\n ss.selectEl.value = newValue;\n }\n if (ss.params.setValueText) {\n ss.formatValueTextContent(optionText);\n }\n ss.$selectEl.trigger('change');\n return ss;\n }\n\n unsetValue() {\n const ss = this;\n if (ss.params.setValueText) {\n ss.formatValueTextContent([]);\n }\n ss.$selectEl.find('option').each((optionEl) => {\n optionEl.selected = false;\n optionEl.checked = false;\n });\n ss.$selectEl[0].value = null;\n\n if (ss.$containerEl) {\n ss.$containerEl\n .find(\n `input[name=\"${ss.inputName}\"][type=\"checkbox\"], input[name=\"${ss.inputName}\"][type=\"radio\"]`,\n )\n .prop('checked', false);\n }\n ss.$selectEl.trigger('change');\n }\n\n getValue() {\n const ss = this;\n return ss.$selectEl.val();\n }\n\n get view() {\n const { params, $el } = this;\n let view;\n if (params.view) {\n view = params.view;\n }\n if (!view) {\n view = $el.parents('.view').length && $el.parents('.view')[0].f7View;\n }\n if (!view && params.openIn === 'page') {\n throw Error('Smart Select requires initialized View');\n }\n return view;\n }\n\n checkMaxLength() {\n const ss = this;\n const $containerEl = ss.$containerEl;\n if (ss.selectEl.selectedOptions.length >= ss.maxLength) {\n $containerEl.find('input[type=\"checkbox\"]').each((inputEl) => {\n if (!inputEl.checked) {\n $(inputEl).parents('li').addClass('disabled');\n } else {\n $(inputEl).parents('li').removeClass('disabled');\n }\n });\n } else {\n $containerEl.find('.disabled').removeClass('disabled');\n }\n }\n\n formatValueTextContent(values) {\n const ss = this;\n const valueFormatted = ss.formatValueText(values);\n if (valueFormatted.includes('<') && valueFormatted.includes('>')) {\n ss.$valueEl.html(valueFormatted);\n } else {\n ss.$valueEl.text(valueFormatted);\n }\n }\n\n formatValueText(values) {\n const ss = this;\n let textValue;\n if (ss.params.formatValueText) {\n textValue = ss.params.formatValueText.call(ss, values, ss);\n } else {\n textValue = values.join(', ');\n }\n return textValue;\n }\n\n setValueText(value) {\n const ss = this;\n let valueArray = [];\n if (typeof value !== 'undefined') {\n if (Array.isArray(value)) {\n valueArray = value;\n } else {\n valueArray = [value];\n }\n } else {\n ss.$selectEl.find('option').each((optionEl) => {\n const $optionEl = $(optionEl);\n if (optionEl.selected) {\n const displayAs = optionEl.dataset\n ? optionEl.dataset.displayAs\n : $optionEl.data('display-value-as');\n if (displayAs && typeof displayAs !== 'undefined') {\n valueArray.push(displayAs);\n } else {\n valueArray.push(optionEl.textContent.trim());\n }\n }\n });\n }\n if (ss.params.setValueText) {\n ss.formatValueTextContent(valueArray);\n }\n }\n\n getItemsData() {\n const ss = this;\n const theme = ss.app.theme;\n const items = [];\n let previousGroupEl;\n ss.$selectEl.find('option').each((optionEl) => {\n const $optionEl = $(optionEl);\n const optionData = $optionEl.dataset();\n const optionImage = optionData.optionImage || ss.params.optionImage;\n const optionIcon = optionData.optionIcon || ss.params.optionIcon;\n const optionIconIos =\n theme === 'ios' && (optionData.optionIconIos || ss.params.optionIconIos);\n const optionIconMd = theme === 'md' && (optionData.optionIconMd || ss.params.optionIconMd);\n const optionInputIconPosition =\n optionData.inputIconPosition || ss.params.inputIconPosition || '';\n\n const optionHasMedia = optionImage || optionIcon || optionIconIos || optionIconMd;\n const optionColor = optionData.optionColor;\n\n let optionClassName = optionData.optionClass || '';\n if ($optionEl[0].disabled) optionClassName += ' disabled';\n\n const optionGroupEl = $optionEl.parent('optgroup')[0];\n const optionGroupLabel = optionGroupEl && optionGroupEl.label;\n let optionIsLabel = false;\n if (optionGroupEl && optionGroupEl !== previousGroupEl) {\n optionIsLabel = true;\n previousGroupEl = optionGroupEl;\n items.push({\n groupLabel: optionGroupLabel,\n isLabel: optionIsLabel,\n });\n }\n items.push({\n value: $optionEl[0].value,\n text: $optionEl[0].textContent.trim(),\n selected: $optionEl[0].selected,\n groupEl: optionGroupEl,\n groupLabel: optionGroupLabel,\n image: optionImage,\n icon: optionIcon,\n iconIos: optionIconIos,\n iconMd: optionIconMd,\n inputIconPosition: optionInputIconPosition,\n color: optionColor,\n className: optionClassName,\n disabled: $optionEl[0].disabled,\n id: ss.id,\n hasMedia: optionHasMedia,\n checkbox: ss.inputType === 'checkbox',\n radio: ss.inputType === 'radio',\n inputName: ss.inputName,\n inputType: ss.inputType,\n });\n });\n ss.items = items;\n return items;\n }\n\n renderSearchbar() {\n const ss = this;\n if (ss.params.renderSearchbar) return ss.params.renderSearchbar.call(ss);\n return (\n <form class=\"searchbar\">\n <div class=\"searchbar-inner\">\n <div class=\"searchbar-input-wrap\">\n <input\n type=\"search\"\n spellcheck={ss.params.searchbarSpellcheck || 'false'}\n placeholder={ss.params.searchbarPlaceholder}\n />\n <i class=\"searchbar-icon\"></i>\n <span class=\"input-clear-button\"></span>\n </div>\n {ss.params.searchbarDisableButton && (\n <span class=\"searchbar-disable-button\">{ss.params.searchbarDisableText}</span>\n )}\n </div>\n </form>\n );\n }\n\n renderItem(item, index) {\n const ss = this;\n if (ss.params.renderItem) return ss.params.renderItem.call(ss, item, index);\n\n function getIconContent(iconValue = '') {\n if (iconValue.indexOf(':') >= 0) {\n return iconValue.split(':')[1];\n }\n return '';\n }\n function getIconClass(iconValue = '') {\n if (iconValue.indexOf(':') >= 0) {\n let className = iconValue.split(':')[0];\n if (className === 'f7') className = 'f7-icons';\n if (className === 'material') className = 'material-icons';\n return className;\n }\n return iconValue;\n }\n\n let itemHtml;\n if (item.isLabel) {\n itemHtml = `<li class=\"list-group-title\">${item.groupLabel}</li>`;\n } else {\n let selected = item.selected;\n let disabled;\n if (ss.params.virtualList) {\n const ssValue = ss.getValue();\n selected = ss.multiple ? ssValue.indexOf(item.value) >= 0 : ssValue === item.value;\n if (ss.multiple) {\n disabled = ss.multiple && !selected && ssValue.length === parseInt(ss.maxLength, 10);\n }\n }\n\n const { icon, iconIos, iconMd } = item;\n const hasIcon = icon || iconIos || iconMd;\n const iconContent = getIconContent(icon || iconIos || iconMd || '');\n const iconClass = getIconClass(icon || iconIos || iconMd || '');\n\n itemHtml = (\n <li class={`${item.className || ''}${disabled ? ' disabled' : ''}`}>\n <label\n class={`item-${item.inputType} ${\n item.inputIconPosition ? `item-${item.inputType}-icon-${item.inputIconPosition}` : ''\n } item-content`}\n >\n <input\n type={item.inputType}\n name={item.inputName}\n value={item.value}\n _checked={selected}\n />\n <i class={`icon icon-${item.inputType}`}></i>\n {item.hasMedia && (\n <div class=\"item-media\">\n {hasIcon && <i class={`icon ${iconClass}`}>{iconContent}</i>}\n {item.image && <img src={item.image} />}\n </div>\n )}\n <div class=\"item-inner\">\n <div class={`item-title${item.color ? ` text-color-${item.color}` : ''}`}>\n {item.text}\n </div>\n </div>\n </label>\n </li>\n );\n }\n return itemHtml;\n }\n\n renderItems() {\n const ss = this;\n if (ss.params.renderItems) return ss.params.renderItems.call(ss, ss.items);\n const itemsHtml = `\n ${ss.items.map((item, index) => `${ss.renderItem(item, index)}`).join('')}\n `;\n return itemsHtml;\n }\n\n renderPage() {\n const ss = this;\n if (ss.params.renderPage) return ss.params.renderPage.call(ss, ss.items);\n let pageTitle = ss.params.pageTitle;\n if (typeof pageTitle === 'undefined') {\n const $itemTitleEl = ss.$el.find('.item-title');\n pageTitle = $itemTitleEl.length ? $itemTitleEl.text().trim() : '';\n }\n const cssClass = ss.params.cssClass;\n return (\n <div\n class={`page smart-select-page ${cssClass}`}\n data-name=\"smart-select-page\"\n data-select-name={ss.selectName}\n >\n <div\n class={`navbar ${\n ss.params.navbarColorTheme ? `color-${ss.params.navbarColorTheme}` : ''\n }`}\n >\n <div class=\"navbar-bg\"></div>\n <div\n class={`navbar-inner sliding ${\n ss.params.navbarColorTheme ? `color-${ss.params.navbarColorTheme}` : ''\n }`}\n >\n <div class=\"left\">\n <a class=\"link back\">\n <i class=\"icon icon-back\"></i>\n <span class=\"if-not-md\">{ss.params.pageBackLinkText}</span>\n </a>\n </div>\n {pageTitle && <div class=\"title\">{pageTitle}</div>}\n {ss.params.searchbar && <div class=\"subnavbar\">{ss.renderSearchbar()}</div>}\n </div>\n </div>\n {ss.params.searchbar && <div class=\"searchbar-backdrop\"></div>}\n <div class=\"page-content\">\n <div\n class={`list list-outline-ios list-strong-ios list-dividers-ios smart-select-list-${\n ss.id\n } ${ss.params.virtualList ? ' virtual-list' : ''} ${\n ss.params.formColorTheme ? `color-${ss.params.formColorTheme}` : ''\n }`}\n >\n <ul>{!ss.params.virtualList && ss.renderItems(ss.items)}</ul>\n </div>\n </div>\n </div>\n );\n }\n\n renderPopup() {\n const ss = this;\n if (ss.params.renderPopup) return ss.params.renderPopup.call(ss, ss.items);\n let pageTitle = ss.params.pageTitle;\n if (typeof pageTitle === 'undefined') {\n const $itemTitleEl = ss.$el.find('.item-title');\n pageTitle = $itemTitleEl.length ? $itemTitleEl.text().trim() : '';\n }\n const cssClass = ss.params.cssClass || '';\n return (\n <div\n class={`popup smart-select-popup ${cssClass} ${\n ss.params.popupTabletFullscreen ? 'popup-tablet-fullscreen' : ''\n }`}\n data-select-name={ss.selectName}\n >\n <div class=\"view\">\n <div\n class={`page smart-select-page ${ss.params.searchbar ? 'page-with-subnavbar' : ''}`}\n data-name=\"smart-select-page\"\n >\n <div\n class={`navbar ${\n ss.params.navbarColorTheme ? `color-${ss.params.navbarColorTheme}` : ''\n }`}\n >\n <div class=\"navbar-bg\"></div>\n <div class=\"navbar-inner sliding\">\n {pageTitle && <div class=\"title\">{pageTitle}</div>}\n <div class=\"right\">\n <a\n class=\"link popup-close\"\n data-popup={`.smart-select-popup[data-select-name='${ss.selectName}']`}\n >\n {ss.params.popupCloseLinkText}\n </a>\n </div>\n {ss.params.searchbar && <div class=\"subnavbar\">{ss.renderSearchbar()}</div>}\n </div>\n </div>\n {ss.params.searchbar && <div class=\"searchbar-backdrop\"></div>}\n <div class=\"page-content\">\n <div\n class={`list list-outline-ios list-strong-ios list-dividers-ios smart-select-list-${\n ss.id\n } ${ss.params.virtualList ? ' virtual-list' : ''} ${\n ss.params.formColorTheme ? `color-${ss.params.formColorTheme}` : ''\n }`}\n >\n <ul>{!ss.params.virtualList && ss.renderItems(ss.items)}</ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n renderSheet() {\n const ss = this;\n if (ss.params.renderSheet) return ss.params.renderSheet.call(ss, ss.items);\n const cssClass = ss.params.cssClass;\n // prettier-ignore\n return (\n <div class={`sheet-modal smart-select-sheet ${cssClass}`} data-select-name={ss.selectName}>\n <div class={`toolbar toolbar-top ${ss.params.toolbarColorTheme ? `color-${ss.params.toolbarColorTheme}` : ''}`}>\n <div class=\"toolbar-inner\">\n <div class=\"left\"></div>\n <div class=\"right\">\n <a class=\"link sheet-close\">{ss.params.sheetCloseLinkText}</a>\n </div>\n </div>\n </div>\n <div class=\"sheet-modal-inner\">\n <div class=\"page-content\">\n <div class={`list list-strong-ios list-dividers-ios smart-select-list-${ss.id} ${ss.params.virtualList ? ' virtual-list' : ''} ${ss.params.formColorTheme ? `color-${ss.params.formColorTheme}` : ''}`}>\n <ul>{!ss.params.virtualList && ss.renderItems(ss.items)}</ul>\n </div>\n </div>\n </div>\n </div>\n )\n }\n\n renderPopover() {\n const ss = this;\n if (ss.params.renderPopover) return ss.params.renderPopover.call(ss, ss.items);\n const cssClass = ss.params.cssClass;\n // prettier-ignore\n return (\n <div class={`popover smart-select-popover ${cssClass}`} data-select-name={ss.selectName}>\n <div class=\"popover-inner\">\n <div class={`list list-strong-ios list-dividers-ios smart-select-list-${ss.id} ${ss.params.virtualList ? ' virtual-list' : ''} ${ss.params.formColorTheme ? `color-${ss.params.formColorTheme}` : ''}`}>\n <ul>{!ss.params.virtualList && ss.renderItems(ss.items)}</ul>\n </div>\n </div>\n </div>\n\n )\n }\n\n scrollToSelectedItem() {\n const ss = this;\n const { params, $containerEl } = ss;\n if (!ss.opened) return ss;\n if (params.virtualList) {\n let selectedIndex;\n ss.vl.items.forEach((item, index) => {\n if (typeof selectedIndex === 'undefined' && item.selected) {\n selectedIndex = index;\n }\n });\n if (typeof selectedIndex !== 'undefined') {\n ss.vl.scrollToItem(selectedIndex);\n }\n } else {\n const $selectedItemEl = $containerEl.find('input:checked').parents('li');\n if (!$selectedItemEl.length) return ss;\n const $scrollableEl = $containerEl.find('.page-content, .popover-inner');\n if (!$scrollableEl.length) return ss;\n $scrollableEl.scrollTop(\n $selectedItemEl.offset().top -\n $scrollableEl.offset().top -\n parseInt($scrollableEl.css('padding-top'), 10),\n );\n }\n return ss;\n }\n\n onOpen(type, containerEl) {\n const ss = this;\n const app = ss.app;\n const $containerEl = $(containerEl);\n ss.$containerEl = $containerEl;\n ss.openedIn = type;\n ss.opened = true;\n\n // Init VL\n if (ss.params.virtualList) {\n ss.vl = app.virtualList.create({\n el: $containerEl.find('.virtual-list'),\n items: ss.items,\n renderItem: ss.renderItem.bind(ss),\n height: ss.params.virtualListHeight,\n searchByItem(query, item) {\n if (\n item.text &&\n removeDiacritics(item.text).toLowerCase().indexOf(query.trim().toLowerCase()) >= 0\n )\n return true;\n return false;\n },\n });\n }\n if (ss.params.scrollToSelectedItem) {\n ss.scrollToSelectedItem();\n }\n\n // Init SB\n if (ss.params.searchbar) {\n let $searchbarEl = $containerEl.find('.searchbar');\n if (type === 'page' && app.theme === 'ios') {\n $searchbarEl = $(app.navbar.getElByPage($containerEl)).find('.searchbar');\n }\n\n if (ss.params.appendSearchbarNotFound && (type === 'page' || type === 'popup')) {\n let $notFoundEl = null;\n\n if (typeof ss.params.appendSearchbarNotFound === 'string') {\n $notFoundEl = $(\n `<div class=\"block searchbar-not-found\">${ss.params.appendSearchbarNotFound}</div>`,\n );\n } else if (typeof ss.params.appendSearchbarNotFound === 'boolean') {\n $notFoundEl = $('<div class=\"block searchbar-not-found\">Nothing found</div>');\n } else {\n $notFoundEl = ss.params.appendSearchbarNotFound;\n }\n\n if ($notFoundEl) {\n $containerEl.find('.page-content').append($notFoundEl[0]);\n }\n }\n\n const searchbarParams = extend(\n {\n el: $searchbarEl,\n backdropEl: $containerEl.find('.searchbar-backdrop'),\n searchContainer: `.smart-select-list-${ss.id}`,\n searchIn: '.item-title',\n },\n typeof ss.params.searchbar === 'object' ? ss.params.searchbar : {},\n );\n\n ss.searchbar = app.searchbar.create(searchbarParams);\n }\n\n // Check for max length\n if (ss.maxLength) {\n ss.checkMaxLength();\n }\n\n // Close on select\n if (ss.params.closeOnSelect) {\n ss.$containerEl\n .find(`input[type=\"radio\"][name=\"${ss.inputName}\"]:checked`)\n .parents('label')\n .once('click', () => {\n ss.close();\n });\n }\n\n // Attach input events\n ss.attachInputsEvents();\n\n ss.$el.trigger('smartselect:open');\n ss.emit('local::open smartSelectOpen', ss);\n }\n\n onOpened() {\n const ss = this;\n\n ss.$el.trigger('smartselect:opened');\n ss.emit('local::opened smartSelectOpened', ss);\n }\n\n onClose() {\n const ss = this;\n if (ss.destroyed) return;\n\n // Destroy VL\n if (ss.vl && ss.vl.destroy) {\n ss.vl.destroy();\n ss.vl = null;\n delete ss.vl;\n }\n\n // Destroy SB\n if (ss.searchbar && ss.searchbar.destroy) {\n ss.searchbar.destroy();\n ss.searchbar = null;\n delete ss.searchbar;\n }\n // Detach events\n ss.detachInputsEvents();\n\n ss.$el.trigger('smartselect:close');\n ss.emit('local::close smartSelectClose', ss);\n }\n\n onClosed() {\n const ss = this;\n if (ss.destroyed) return;\n ss.opened = false;\n ss.$containerEl = null;\n delete ss.$containerEl;\n\n ss.$el.trigger('smartselect:closed');\n ss.emit('local::closed smartSelectClosed', ss);\n }\n\n openPage() {\n const ss = this;\n if (ss.opened) return ss;\n ss.getItemsData();\n const pageHtml = ss.renderPage(ss.items);\n\n ss.view.router.navigate({\n url: ss.url,\n route: {\n content: pageHtml,\n path: ss.url,\n on: {\n pageBeforeIn(e, page) {\n ss.onOpen('page', page.el);\n },\n pageAfterIn(e, page) {\n ss.onOpened('page', page.el);\n },\n pageBeforeOut(e, page) {\n ss.onClose('page', page.el);\n },\n pageAfterOut(e, page) {\n ss.onClosed('page', page.el);\n },\n },\n },\n });\n return ss;\n }\n\n openPopup() {\n const ss = this;\n if (ss.opened) return ss;\n ss.getItemsData();\n const popupHtml = ss.renderPopup(ss.items);\n\n const popupParams = {\n content: popupHtml,\n push: ss.params.popupPush,\n swipeToClose: ss.params.popupSwipeToClose,\n closeByBackdropClick: ss.params.closeByBackdropClick,\n on: {\n popupOpen(popup) {\n ss.onOpen('popup', popup.el);\n },\n popupOpened(popup) {\n ss.onOpened('popup', popup.el);\n },\n popupClose(popup) {\n ss.onClose('popup', popup.el);\n },\n popupClosed(popup) {\n ss.onClosed('popup', popup.el);\n },\n },\n };\n\n if (ss.params.routableModals && ss.view) {\n ss.view.router.navigate({\n url: ss.url,\n route: {\n path: ss.url,\n popup: popupParams,\n },\n });\n } else {\n ss.modal = ss.app.popup.create(popupParams).open();\n }\n return ss;\n }\n\n openSheet() {\n const ss = this;\n if (ss.opened) return ss;\n ss.getItemsData();\n const sheetHtml = ss.renderSheet(ss.items);\n\n const sheetParams = {\n content: sheetHtml,\n backdrop: ss.params.sheetBackdrop,\n scrollToEl: ss.$el,\n closeByOutsideClick: true,\n push: ss.params.sheetPush,\n swipeToClose: ss.params.sheetSwipeToClose,\n closeByBackdropClick: ss.params.closeByBackdropClick,\n on: {\n sheetOpen(sheet) {\n ss.onOpen('sheet', sheet.el);\n },\n sheetOpened(sheet) {\n ss.onOpened('sheet', sheet.el);\n },\n sheetClose(sheet) {\n ss.onClose('sheet', sheet.el);\n },\n sheetClosed(sheet) {\n ss.onClosed('sheet', sheet.el);\n },\n },\n };\n\n if (ss.params.routableModals && ss.view) {\n ss.view.router.navigate({\n url: ss.url,\n route: {\n path: ss.url,\n sheet: sheetParams,\n },\n });\n } else {\n ss.modal = ss.app.sheet.create(sheetParams).open();\n }\n return ss;\n }\n\n openPopover() {\n const ss = this;\n if (ss.opened) return ss;\n ss.getItemsData();\n const popoverHtml = ss.renderPopover(ss.items);\n const popoverParams = {\n content: popoverHtml,\n targetEl: ss.$el,\n closeByBackdropClick: ss.params.closeByBackdropClick,\n on: {\n popoverOpen(popover) {\n ss.onOpen('popover', popover.el);\n },\n popoverOpened(popover) {\n ss.onOpened('popover', popover.el);\n },\n popoverClose(popover) {\n ss.onClose('popover', popover.el);\n },\n popoverClosed(popover) {\n ss.onClosed('popover', popover.el);\n },\n },\n };\n if (ss.params.routableModals && ss.view) {\n ss.view.router.navigate({\n url: ss.url,\n route: {\n path: ss.url,\n popover: popoverParams,\n },\n });\n } else {\n ss.modal = ss.app.popover.create(popoverParams).open();\n }\n return ss;\n }\n\n open(type) {\n const ss = this;\n if (ss.opened) return ss;\n let prevented = false;\n function prevent() {\n prevented = true;\n }\n if (ss.$el) {\n ss.$el.trigger('smartselect:beforeopen', { prevent });\n }\n ss.emit('local::beforeOpen smartSelectBeforeOpen', ss, prevent);\n if (prevented) return ss;\n const openIn = type || ss.params.openIn;\n ss[\n `open${openIn\n .split('')\n .map((el, index) => {\n if (index === 0) return el.toUpperCase();\n return el;\n })\n .join('')}`\n ]();\n return ss;\n }\n\n close() {\n const ss = this;\n if (!ss.opened) return ss;\n if ((ss.params.routableModals && ss.view) || ss.openedIn === 'page') {\n ss.view.router.back();\n } else {\n ss.modal.once('modalClosed', () => {\n nextTick(() => {\n if (ss.destroyed) return;\n ss.modal.destroy();\n delete ss.modal;\n });\n });\n ss.modal.close();\n }\n return ss;\n }\n\n init() {\n const ss = this;\n ss.attachEvents();\n ss.setValueText();\n }\n\n destroy() {\n const ss = this;\n ss.emit('local::beforeDestroy smartSelectBeforeDestroy', ss);\n ss.$el.trigger('smartselect:beforedestroy');\n ss.detachEvents();\n delete ss.$el[0].f7SmartSelect;\n deleteProps(ss);\n ss.destroyed = true;\n }\n}\n\nexport default SmartSelect;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport SmartSelect from './smart-select-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'smartSelect',\n params: {\n smartSelect: {\n el: undefined,\n valueEl: undefined,\n setValueText: true,\n formatValueText: null,\n openIn: 'page', // or 'popup' or 'sheet' or 'popover'\n popupPush: false,\n popupSwipeToClose: undefined, // defaults to app\n sheetPush: false,\n sheetSwipeToClose: undefined, // defaults to app\n sheetBackdrop: false,\n pageTitle: undefined,\n pageBackLinkText: 'Back',\n popupCloseLinkText: 'Close',\n popupTabletFullscreen: false,\n closeByBackdropClick: true,\n sheetCloseLinkText: 'Done',\n searchbar: false,\n searchbarPlaceholder: 'Search',\n searchbarDisableText: 'Cancel',\n searchbarDisableButton: true,\n searchbarSpellcheck: false,\n closeOnSelect: false,\n virtualList: false,\n virtualListHeight: undefined,\n scrollToSelectedItem: false,\n formColorTheme: undefined,\n navbarColorTheme: undefined,\n routableModals: false,\n url: 'select/',\n inputIconPosition: 'start',\n cssClass: '',\n /*\n Custom render functions\n */\n renderPage: undefined,\n renderPopup: undefined,\n renderSheet: undefined,\n renderPopover: undefined,\n renderItems: undefined,\n renderItem: undefined,\n renderSearchbar: undefined,\n },\n },\n static: {\n SmartSelect,\n },\n create() {\n const app = this;\n app.smartSelect = extend(\n ConstructorMethods({\n defaultSelector: '.smart-select',\n constructor: SmartSelect,\n app,\n domProp: 'f7SmartSelect',\n }),\n {\n open(smartSelectEl) {\n const ss = app.smartSelect.get(smartSelectEl);\n if (ss && ss.open) return ss.open();\n return undefined;\n },\n close(smartSelectEl) {\n const ss = app.smartSelect.get(smartSelectEl);\n if (ss && ss.close) return ss.close();\n return undefined;\n },\n },\n );\n },\n\n on: {\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('.smart-select-init')\n .each((smartSelectEl) => {\n app.smartSelect.create(extend({ el: smartSelectEl }, $(smartSelectEl).dataset()));\n });\n },\n tabBeforeRemove(tabEl) {\n $(tabEl)\n .find('.smart-select-init')\n .each((smartSelectEl) => {\n if (smartSelectEl.f7SmartSelect && smartSelectEl.f7SmartSelect.destroy) {\n smartSelectEl.f7SmartSelect.destroy();\n }\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.smart-select-init').each((smartSelectEl) => {\n app.smartSelect.create(extend({ el: smartSelectEl }, $(smartSelectEl).dataset()));\n });\n },\n pageBeforeRemove(page) {\n page.$el.find('.smart-select-init').each((smartSelectEl) => {\n if (smartSelectEl.f7SmartSelect && smartSelectEl.f7SmartSelect.destroy) {\n smartSelectEl.f7SmartSelect.destroy();\n }\n });\n },\n },\n clicks: {\n '.smart-select': function open($clickedEl, data) {\n const app = this;\n if (!$clickedEl[0].f7SmartSelect) {\n const ss = app.smartSelect.create(extend({ el: $clickedEl }, data));\n ss.open();\n }\n },\n },\n vnode: {\n 'smart-select-init': {\n insert(vnode) {\n const app = this;\n const smartSelectEl = vnode.elm;\n app.smartSelect.create(extend({ el: smartSelectEl }, $(smartSelectEl).dataset()));\n },\n destroy(vnode) {\n const smartSelectEl = vnode.elm;\n if (smartSelectEl.f7SmartSelect && smartSelectEl.f7SmartSelect.destroy) {\n smartSelectEl.f7SmartSelect.destroy();\n }\n },\n },\n },\n};\n","export default {\n name: 'grid',\n};\n","import { extend, nextTick, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\nimport $ from '../../shared/dom7.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport { getSupport } from '../../shared/get-support.js';\n/** @jsx $jsx */\nimport $jsx from '../../shared/$jsx.js';\n\nclass Calendar extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n const calendar = this;\n\n calendar.params = extend({}, app.params.calendar, params);\n\n let $containerEl;\n if (calendar.params.containerEl) {\n $containerEl = $(calendar.params.containerEl);\n if ($containerEl.length === 0) return calendar;\n }\n\n let $inputEl;\n if (calendar.params.inputEl) {\n $inputEl = $(calendar.params.inputEl);\n }\n\n const isHorizontal = calendar.params.direction === 'horizontal';\n\n let inverter = 1;\n if (isHorizontal) {\n inverter = app.rtl ? -1 : 1;\n }\n\n extend(calendar, {\n app,\n $containerEl,\n containerEl: $containerEl && $containerEl[0],\n inline: $containerEl && $containerEl.length > 0,\n $inputEl,\n inputEl: $inputEl && $inputEl[0],\n initialized: false,\n opened: false,\n url: calendar.params.url,\n isHorizontal,\n inverter,\n animating: false,\n allowTouchMove: true,\n hasTimePicker:\n calendar.params.timePicker && !calendar.params.rangePicker && !calendar.params.multiple,\n });\n calendar.dayFormatter = (date) => {\n const formatter = new Intl.DateTimeFormat(calendar.params.locale, { day: 'numeric' });\n return formatter.format(date).replace(/æ—¥/, '');\n };\n calendar.monthFormatter = (date) => {\n const formatter = new Intl.DateTimeFormat(calendar.params.locale, { month: 'long' });\n return formatter.format(date);\n };\n calendar.yearFormatter = (date) => {\n const formatter = new Intl.DateTimeFormat(calendar.params.locale, { year: 'numeric' });\n return formatter.format(date);\n };\n calendar.timeSelectorFormatter = (date) => {\n const formatter = new Intl.DateTimeFormat(\n calendar.params.locale,\n calendar.params.timePickerFormat,\n );\n return formatter.format(date);\n };\n const timeFormatCheckDate = calendar.timeSelectorFormatter(new Date()).toLowerCase();\n calendar.is12HoursFormat =\n timeFormatCheckDate.indexOf('pm') >= 0 || timeFormatCheckDate.indexOf('am') >= 0;\n\n // Auto names\n let { monthNames, monthNamesShort, dayNames, dayNamesShort } = calendar.params;\n const { monthNamesIntl, monthNamesShortIntl, dayNamesIntl, dayNamesShortIntl } =\n calendar.getIntlNames();\n if (monthNames === 'auto') monthNames = monthNamesIntl;\n if (monthNamesShort === 'auto') monthNamesShort = monthNamesShortIntl;\n if (dayNames === 'auto') dayNames = dayNamesIntl;\n if (dayNamesShort === 'auto') dayNamesShort = dayNamesShortIntl;\n\n extend(calendar, {\n monthNames,\n monthNamesShort,\n dayNames,\n dayNamesShort,\n });\n\n function onInputClick() {\n calendar.open();\n }\n function onInputFocus(e) {\n e.preventDefault();\n }\n function onInputClear() {\n calendar.setValue([]);\n if (calendar.opened) {\n calendar.update();\n }\n }\n function onHtmlClick(e) {\n const $targetEl = $(e.target);\n if (calendar.destroyed || !calendar.params) return;\n if (calendar.isPopover()) return;\n if (!calendar.opened || calendar.closing) return;\n if ($targetEl.closest('[class*=\"backdrop\"]').length) return;\n if (calendar.monthPickerPopover || calendar.yearPickerPopover || calendar.timePickerPopover)\n return;\n if ($inputEl && $inputEl.length > 0) {\n if (\n $targetEl[0] !== $inputEl[0] &&\n $targetEl.closest('.sheet-modal, .calendar-modal').length === 0\n ) {\n calendar.close();\n }\n } else if ($(e.target).closest('.sheet-modal, .calendar-modal').length === 0) {\n calendar.close();\n }\n }\n\n // Events\n extend(calendar, {\n attachInputEvents() {\n calendar.$inputEl.on('click', onInputClick);\n calendar.$inputEl.on('input:clear', onInputClear);\n if (calendar.params.inputReadOnly) {\n calendar.$inputEl.on('focus mousedown', onInputFocus);\n if (calendar.$inputEl[0]) {\n calendar.$inputEl[0].f7ValidateReadonly = true;\n }\n }\n },\n detachInputEvents() {\n calendar.$inputEl.off('click', onInputClick);\n calendar.$inputEl.off('input:clear', onInputClear);\n if (calendar.params.inputReadOnly) {\n calendar.$inputEl.off('focus mousedown', onInputFocus);\n if (calendar.$inputEl[0]) {\n delete calendar.$inputEl[0].f7ValidateReadonly;\n }\n }\n },\n attachHtmlEvents() {\n app.on('click', onHtmlClick);\n },\n detachHtmlEvents() {\n app.off('click', onHtmlClick);\n },\n });\n calendar.attachCalendarEvents = function attachCalendarEvents() {\n let allowItemClick = true;\n let isTouched;\n let isMoved;\n let touchStartX;\n let touchStartY;\n let touchCurrentX;\n let touchCurrentY;\n let touchStartTime;\n let touchEndTime;\n let currentTranslate;\n let wrapperWidth;\n let wrapperHeight;\n let percentage;\n let touchesDiff;\n let isScrolling;\n\n const { $el, $wrapperEl } = calendar;\n\n function handleTouchStart(e) {\n if (isMoved || isTouched || !e.isTrusted) return;\n isTouched = true;\n touchStartX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touchCurrentX = touchStartX;\n touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n touchCurrentY = touchStartY;\n touchStartTime = new Date().getTime();\n percentage = 0;\n allowItemClick = true;\n isScrolling = undefined;\n currentTranslate = calendar.monthsTranslate;\n }\n function handleTouchMove(e) {\n if (!isTouched || !e.isTrusted) return;\n const { isHorizontal: isH } = calendar;\n\n touchCurrentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n touchCurrentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(\n isScrolling ||\n Math.abs(touchCurrentY - touchStartY) > Math.abs(touchCurrentX - touchStartX)\n );\n }\n if ((isH && isScrolling) || !calendar.allowTouchMove) {\n isTouched = false;\n return;\n }\n e.preventDefault();\n if (calendar.animating) {\n isTouched = false;\n return;\n }\n allowItemClick = false;\n if (!isMoved) {\n // First move\n isMoved = true;\n wrapperWidth = $wrapperEl[0].offsetWidth;\n wrapperHeight = $wrapperEl[0].offsetHeight;\n $wrapperEl.transition(0);\n }\n\n touchesDiff = isH ? touchCurrentX - touchStartX : touchCurrentY - touchStartY;\n percentage = touchesDiff / (isH ? wrapperWidth : wrapperHeight);\n currentTranslate = (calendar.monthsTranslate * calendar.inverter + percentage) * 100;\n\n // Transform wrapper\n $wrapperEl.transform(\n `translate3d(${isH ? currentTranslate : 0}%, ${isH ? 0 : currentTranslate}%, 0)`,\n );\n }\n function handleTouchEnd(e) {\n if (!isTouched || !isMoved || !e.isTrusted) {\n isTouched = false;\n isMoved = false;\n return;\n }\n isTouched = false;\n isMoved = false;\n\n touchEndTime = new Date().getTime();\n if (touchEndTime - touchStartTime < 300) {\n if (Math.abs(touchesDiff) < 10) {\n calendar.resetMonth();\n } else if (touchesDiff >= 10) {\n if (app.rtl) calendar.nextMonth();\n else calendar.prevMonth();\n } else if (app.rtl) calendar.prevMonth();\n else calendar.nextMonth();\n } else if (percentage <= -0.5) {\n if (app.rtl) calendar.prevMonth();\n else calendar.nextMonth();\n } else if (percentage >= 0.5) {\n if (app.rtl) calendar.nextMonth();\n else calendar.prevMonth();\n } else {\n calendar.resetMonth();\n }\n\n // Allow click\n setTimeout(() => {\n allowItemClick = true;\n }, 100);\n }\n\n function handleDayClick(e) {\n if (!allowItemClick) return;\n let $dayEl = $(e.target).parents('.calendar-day');\n if ($dayEl.length === 0 && $(e.target).hasClass('calendar-day')) {\n $dayEl = $(e.target);\n }\n if ($dayEl.length === 0) return;\n if ($dayEl.hasClass('calendar-day-disabled')) return;\n if (!calendar.params.rangePicker) {\n if ($dayEl.hasClass('calendar-day-next')) calendar.nextMonth();\n if ($dayEl.hasClass('calendar-day-prev')) calendar.prevMonth();\n }\n const dateYear = parseInt($dayEl.attr('data-year'), 10);\n const dateMonth = parseInt($dayEl.attr('data-month'), 10);\n const dateDay = parseInt($dayEl.attr('data-day'), 10);\n calendar.emit(\n 'local::dayClick calendarDayClick',\n calendar,\n $dayEl[0],\n dateYear,\n dateMonth,\n dateDay,\n );\n if (\n !$dayEl.hasClass('calendar-day-selected') ||\n calendar.params.multiple ||\n calendar.params.rangePicker\n ) {\n const valueToAdd = new Date(dateYear, dateMonth, dateDay, 0, 0, 0);\n if (calendar.hasTimePicker) {\n if (calendar.value && calendar.value[0]) {\n valueToAdd.setHours(calendar.value[0].getHours(), calendar.value[0].getMinutes());\n } else {\n valueToAdd.setHours(new Date().getHours(), new Date().getMinutes());\n }\n }\n calendar.addValue(valueToAdd);\n }\n if (calendar.params.closeOnSelect) {\n if (\n (calendar.params.rangePicker && calendar.value.length === 2) ||\n !calendar.params.rangePicker\n ) {\n calendar.close();\n }\n }\n }\n\n function onNextMonthClick() {\n calendar.nextMonth();\n }\n\n function onPrevMonthClick() {\n calendar.prevMonth();\n }\n\n function onNextYearClick() {\n calendar.nextYear();\n }\n\n function onPrevYearClick() {\n calendar.prevYear();\n }\n\n function onMonthSelectorClick() {\n calendar.openMonthPicker();\n }\n\n function onYearSelectorClick() {\n calendar.openYearPicker();\n }\n\n function onTimeSelectorClick() {\n calendar.openTimePicker();\n }\n\n const passiveListener =\n app.touchEvents.start === 'touchstart' && getSupport().passiveListener\n ? { passive: true, capture: false }\n : false;\n // Selectors clicks\n $el.find('.calendar-prev-month-button').on('click', onPrevMonthClick);\n $el.find('.calendar-next-month-button').on('click', onNextMonthClick);\n $el.find('.calendar-prev-year-button').on('click', onPrevYearClick);\n $el.find('.calendar-next-year-button').on('click', onNextYearClick);\n if (calendar.params.monthPicker) {\n $el.find('.current-month-value').on('click', onMonthSelectorClick);\n }\n if (calendar.params.yearPicker) {\n $el.find('.current-year-value').on('click', onYearSelectorClick);\n }\n if (calendar.hasTimePicker) {\n $el.find('.calendar-time-selector a').on('click', onTimeSelectorClick);\n }\n // Day clicks\n $wrapperEl.on('click', handleDayClick);\n // Touch events\n if (calendar.params.touchMove) {\n $wrapperEl.on(app.touchEvents.start, handleTouchStart, passiveListener);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n }\n\n calendar.detachCalendarEvents = function detachCalendarEvents() {\n $el.find('.calendar-prev-month-button').off('click', onPrevMonthClick);\n $el.find('.calendar-next-month-button').off('click', onNextMonthClick);\n $el.find('.calendar-prev-year-button').off('click', onPrevYearClick);\n $el.find('.calendar-next-year-button').off('click', onNextYearClick);\n if (calendar.params.monthPicker) {\n $el.find('.current-month-value').off('click', onMonthSelectorClick);\n }\n if (calendar.params.yearPicker) {\n $el.find('.current-year-value').off('click', onYearSelectorClick);\n }\n if (calendar.hasTimePicker) {\n $el.find('.calendar-time-selector a').off('click', onTimeSelectorClick);\n }\n $wrapperEl.off('click', handleDayClick);\n if (calendar.params.touchMove) {\n $wrapperEl.off(app.touchEvents.start, handleTouchStart, passiveListener);\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n }\n };\n };\n\n calendar.init();\n\n return calendar;\n }\n\n get view() {\n const { $inputEl, app, params } = this;\n let view;\n if (params.view) {\n view = params.view;\n } else if ($inputEl) {\n view = $inputEl.parents('.view').length && $inputEl.parents('.view')[0].f7View;\n }\n if (!view) view = app.views.main;\n return view;\n }\n\n getIntlNames() {\n const calendar = this;\n const locale = calendar.params.locale;\n\n const monthNamesIntl = [];\n const monthNamesShortIntl = [];\n const dayNamesIntl = [];\n const dayNamesShortIntl = [];\n const formatterMonthNames = new Intl.DateTimeFormat(locale, { month: 'long' });\n const formatterMonthNamesShort = new Intl.DateTimeFormat(locale, { month: 'short' });\n const formatterDayNames = new Intl.DateTimeFormat(locale, { weekday: 'long' });\n const formatterDayNamesShort = new Intl.DateTimeFormat(locale, { weekday: 'short' });\n let year;\n let yearStarted;\n let yearEnded;\n for (let i = 0; i < 24; i += 1) {\n const date = new Date().setMonth(i, 1);\n const currentYear = calendar.yearFormatter(date);\n\n if (year && currentYear !== year) {\n if (yearStarted) yearEnded = true;\n yearStarted = true;\n year = currentYear;\n }\n if (!year) {\n year = currentYear;\n }\n if (yearStarted && year === currentYear && !yearEnded) {\n monthNamesIntl.push(formatterMonthNames.format(date));\n monthNamesShortIntl.push(formatterMonthNamesShort.format(date));\n }\n }\n const weekDay = new Date().getDay();\n for (let i = 0; i < 7; i += 1) {\n const date = new Date().getTime() + (i - weekDay) * 24 * 60 * 60 * 1000;\n dayNamesIntl.push(formatterDayNames.format(date));\n dayNamesShortIntl.push(formatterDayNamesShort.format(date));\n }\n\n return {\n monthNamesIntl,\n monthNamesShortIntl,\n dayNamesIntl,\n dayNamesShortIntl,\n };\n }\n\n normalizeDate(date) {\n const calendar = this;\n const d = new Date(date);\n if (calendar.hasTimePicker) {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes());\n }\n return new Date(d.getFullYear(), d.getMonth(), d.getDate());\n }\n\n normalizeValues(values) {\n const calendar = this;\n let newValues = [];\n if (values && Array.isArray(values)) {\n newValues = values.map((val) => calendar.normalizeDate(val));\n }\n return newValues;\n }\n\n initInput() {\n const calendar = this;\n if (!calendar.$inputEl) return;\n if (calendar.params.inputReadOnly) calendar.$inputEl.prop('readOnly', true);\n }\n\n isPopover() {\n const calendar = this;\n const { app, modal, params } = calendar;\n const device = getDevice();\n if (params.openIn === 'sheet') return false;\n if (modal && modal.type !== 'popover') return false;\n\n if (!calendar.inline && calendar.inputEl) {\n if (params.openIn === 'popover') return true;\n if (device.ios) {\n return !!device.ipad;\n }\n if (app.width >= 768) {\n return true;\n }\n }\n return false;\n }\n\n formatDate(d) {\n const calendar = this;\n const date = new Date(d);\n const year = date.getFullYear();\n const month = date.getMonth();\n const month1 = month + 1;\n const day = date.getDate();\n const weekDay = date.getDay();\n const { monthNames, monthNamesShort, dayNames, dayNamesShort } = calendar;\n const { dateFormat, locale } = calendar.params;\n\n function twoDigits(number) {\n return number < 10 ? `0${number}` : number;\n }\n if (typeof dateFormat === 'string') {\n const tokens = {\n yyyy: year,\n yy: String(year).substring(2),\n mm: twoDigits(month1),\n m: month1,\n MM: monthNames[month],\n M: monthNamesShort[month],\n dd: twoDigits(day),\n d: day,\n DD: dayNames[weekDay],\n D: dayNamesShort[weekDay],\n };\n if (calendar.params.timePicker) {\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n let hours12 = hours;\n if (hours > 12) hours12 = hours - 12;\n if (hours === 0) hours12 = 12;\n const a = hours >= 12 && hours !== 0 ? 'pm' : 'am';\n\n Object.assign(tokens, {\n HH: twoDigits(hours),\n H: hours,\n hh: twoDigits(hours12),\n h: hours12,\n ss: twoDigits(seconds),\n s: seconds,\n ':mm': twoDigits(minutes),\n ':m': minutes,\n a,\n A: a.toUpperCase(),\n });\n }\n const regexp = new RegExp(\n Object.keys(tokens)\n .map((t) => `(${t})`)\n .join('|'),\n 'g',\n );\n return dateFormat.replace(regexp, (token) => {\n if (token in tokens) return tokens[token];\n return token;\n });\n }\n if (typeof dateFormat === 'function') {\n return dateFormat(date);\n }\n // Intl Object\n const formatter = new Intl.DateTimeFormat(locale, dateFormat);\n return formatter.format(date);\n }\n\n formatValue() {\n const calendar = this;\n const { value } = calendar;\n if (calendar.params.formatValue) {\n return calendar.params.formatValue.call(calendar, value);\n }\n return value\n .map((v) => calendar.formatDate(v))\n .join(calendar.params.rangePicker ? ' - ' : ', ');\n }\n\n addValue(newValue) {\n const calendar = this;\n const { multiple, rangePicker, rangePickerMinDays, rangePickerMaxDays } = calendar.params;\n if (multiple) {\n if (!calendar.value) calendar.value = [];\n let inValuesIndex;\n for (let i = 0; i < calendar.value.length; i += 1) {\n if (new Date(newValue).getTime() === new Date(calendar.value[i]).getTime()) {\n inValuesIndex = i;\n }\n }\n if (typeof inValuesIndex === 'undefined') {\n calendar.value.push(newValue);\n } else {\n calendar.value.splice(inValuesIndex, 1);\n }\n calendar.updateValue();\n } else if (rangePicker) {\n if (!calendar.value) calendar.value = [];\n if (calendar.value.length === 2 || calendar.value.length === 0) {\n calendar.value = [];\n }\n\n if (\n calendar.value.length === 0 ||\n (Math.abs(calendar.value[0].getTime() - newValue.getTime()) >=\n (rangePickerMinDays - 1) * 60 * 60 * 24 * 1000 &&\n (rangePickerMaxDays === 0 ||\n Math.abs(calendar.value[0].getTime() - newValue.getTime()) <=\n (rangePickerMaxDays - 1) * 60 * 60 * 24 * 1000))\n )\n calendar.value.push(newValue);\n else calendar.value = [];\n\n calendar.value.sort((a, b) => a - b);\n calendar.updateValue();\n } else {\n calendar.value = [newValue];\n calendar.updateValue();\n }\n }\n\n setValue(values) {\n const calendar = this;\n const currentValue = calendar.value;\n if (\n Array.isArray(currentValue) &&\n Array.isArray(values) &&\n currentValue.length === values.length\n ) {\n let equal = true;\n currentValue.forEach((v, index) => {\n if (v !== values[index]) equal = false;\n });\n if (equal) return;\n }\n calendar.value = values;\n calendar.updateValue();\n }\n\n getValue() {\n const calendar = this;\n return calendar.value;\n }\n\n updateValue(onlyHeader) {\n const calendar = this;\n const { $el, $wrapperEl, $inputEl, value, params } = calendar;\n let i;\n if ($el && $el.length > 0) {\n $wrapperEl\n .find('.calendar-day-selected')\n .removeClass(\n 'calendar-day-selected calendar-day-selected-range calendar-day-selected-left calendar-day-selected-right',\n );\n let valueDate;\n\n if (params.rangePicker && value.length === 2) {\n const leftDate = new Date(value[0]).getTime();\n const rightDate = new Date(value[1]).getTime();\n for (i = leftDate; i <= rightDate; i += 24 * 60 * 60 * 1000) {\n valueDate = new Date(i);\n let addClass = 'calendar-day-selected';\n if (leftDate !== rightDate) {\n if (i !== leftDate && i !== rightDate) {\n addClass += ' calendar-day-selected-range';\n }\n if (i === leftDate) {\n addClass += ' calendar-day-selected-left';\n }\n if (i === rightDate) {\n addClass += ' calendar-day-selected-right';\n }\n }\n $wrapperEl\n .find(\n `.calendar-day[data-date=\"${valueDate.getFullYear()}-${valueDate.getMonth()}-${valueDate.getDate()}\"]`,\n )\n .addClass(addClass);\n }\n valueDate = new Date(leftDate);\n $wrapperEl\n .find(\n `.calendar-day[data-date=\"${valueDate.getFullYear()}-${valueDate.getMonth()}-${valueDate.getDate()}\"]`,\n )\n .removeClass('calendar-day-selected-range')\n .addClass('calendar-day-selected calendar-day-selected-left');\n valueDate = new Date(rightDate);\n $wrapperEl\n .find(\n `.calendar-day[data-date=\"${valueDate.getFullYear()}-${valueDate.getMonth()}-${valueDate.getDate()}\"]`,\n )\n .removeClass('calendar-day-selected-range')\n .addClass('calendar-day-selected calendar-day-selected-right');\n } else {\n for (i = 0; i < calendar.value.length; i += 1) {\n valueDate = new Date(value[i]);\n $wrapperEl\n .find(\n `.calendar-day[data-date=\"${valueDate.getFullYear()}-${valueDate.getMonth()}-${valueDate.getDate()}\"]`,\n )\n .addClass('calendar-day-selected');\n }\n }\n }\n if (!onlyHeader) {\n calendar.emit('local::change calendarChange', calendar, value);\n }\n\n if ($el && $el.length > 0 && calendar.hasTimePicker) {\n $el\n .find('.calendar-time-selector a')\n .text(\n value && value.length\n ? calendar.timeSelectorFormatter(value[0])\n : calendar.params.timePickerPlaceholder,\n );\n }\n\n if (($inputEl && $inputEl.length) || params.header) {\n const inputValue = calendar.formatValue(value);\n if (params.header && $el && $el.length) {\n $el.find('.calendar-selected-date').text(inputValue);\n }\n if ($inputEl && $inputEl.length && !onlyHeader) {\n $inputEl.val(inputValue);\n $inputEl.trigger('change');\n }\n }\n }\n\n updateCurrentMonthYear(dir) {\n const calendar = this;\n const { $months, $el, monthNames } = calendar;\n let currentLocaleMonth;\n let currentLocaleYear;\n if (typeof dir === 'undefined') {\n calendar.currentMonth = parseInt($months.eq(1).attr('data-month'), 10);\n calendar.currentYear = parseInt($months.eq(1).attr('data-year'), 10);\n currentLocaleMonth = $months.eq(1).attr('data-locale-month');\n currentLocaleYear = $months.eq(1).attr('data-locale-year');\n } else {\n calendar.currentMonth = parseInt(\n $months.eq(dir === 'next' ? $months.length - 1 : 0).attr('data-month'),\n 10,\n );\n calendar.currentYear = parseInt(\n $months.eq(dir === 'next' ? $months.length - 1 : 0).attr('data-year'),\n 10,\n );\n currentLocaleMonth = $months\n .eq(dir === 'next' ? $months.length - 1 : 0)\n .attr('data-locale-month');\n currentLocaleYear = $months\n .eq(dir === 'next' ? $months.length - 1 : 0)\n .attr('data-locale-year');\n }\n $el.find('.current-month-value').text(monthNames[currentLocaleMonth]);\n $el.find('.current-year-value').text(currentLocaleYear);\n }\n\n update() {\n const calendar = this;\n const { currentYear, currentMonth, $wrapperEl } = calendar;\n const currentDate = new Date(currentYear, currentMonth);\n const prevMonthHtml = calendar.renderMonth(currentDate, 'prev');\n const currentMonthHtml = calendar.renderMonth(currentDate);\n const nextMonthHtml = calendar.renderMonth(currentDate, 'next');\n\n $wrapperEl\n .transition(0)\n .html(`${prevMonthHtml}${currentMonthHtml}${nextMonthHtml}`)\n .transform('translate3d(0,0,0)');\n calendar.$months = $wrapperEl.find('.calendar-month');\n calendar.monthsTranslate = 0;\n calendar.setMonthsTranslate();\n calendar.$months.each((monthEl) => {\n calendar.emit('local::monthAdd calendarMonthAdd', monthEl);\n });\n }\n\n onMonthChangeStart(dir) {\n const calendar = this;\n const { $months, currentYear, currentMonth } = calendar;\n calendar.updateCurrentMonthYear(dir);\n $months.removeClass('calendar-month-current calendar-month-prev calendar-month-next');\n const currentIndex = dir === 'next' ? $months.length - 1 : 0;\n\n $months.eq(currentIndex).addClass('calendar-month-current');\n $months\n .eq(dir === 'next' ? currentIndex - 1 : currentIndex + 1)\n .addClass(dir === 'next' ? 'calendar-month-prev' : 'calendar-month-next');\n\n calendar.emit(\n 'local::monthYearChangeStart calendarMonthYearChangeStart',\n calendar,\n currentYear,\n currentMonth,\n );\n }\n\n onMonthChangeEnd(dir, rebuildBoth) {\n const calendar = this;\n const { currentYear, currentMonth, $wrapperEl, monthsTranslate } = calendar;\n calendar.animating = false;\n let nextMonthHtml;\n let prevMonthHtml;\n let currentMonthHtml;\n $wrapperEl\n .find(\n '.calendar-month:not(.calendar-month-prev):not(.calendar-month-current):not(.calendar-month-next)',\n )\n .remove();\n\n if (typeof dir === 'undefined') {\n dir = 'next'; // eslint-disable-line\n rebuildBoth = true; // eslint-disable-line\n }\n if (!rebuildBoth) {\n currentMonthHtml = calendar.renderMonth(new Date(currentYear, currentMonth), dir);\n } else {\n $wrapperEl.find('.calendar-month-next, .calendar-month-prev').remove();\n prevMonthHtml = calendar.renderMonth(new Date(currentYear, currentMonth), 'prev');\n nextMonthHtml = calendar.renderMonth(new Date(currentYear, currentMonth), 'next');\n }\n if (dir === 'next' || rebuildBoth) {\n $wrapperEl.append(currentMonthHtml || nextMonthHtml);\n }\n if (dir === 'prev' || rebuildBoth) {\n $wrapperEl.prepend(currentMonthHtml || prevMonthHtml);\n }\n const $months = $wrapperEl.find('.calendar-month');\n calendar.$months = $months;\n calendar.setMonthsTranslate(monthsTranslate);\n calendar.emit(\n 'local::monthAdd calendarMonthAdd',\n calendar,\n dir === 'next' ? $months.eq($months.length - 1)[0] : $months.eq(0)[0],\n );\n calendar.emit(\n 'local::monthYearChangeEnd calendarMonthYearChangeEnd',\n calendar,\n currentYear,\n currentMonth,\n );\n }\n\n setMonthsTranslate(translate) {\n const calendar = this;\n const { $months, isHorizontal: isH, inverter } = calendar;\n // eslint-disable-next-line\n translate = translate || calendar.monthsTranslate || 0;\n if (typeof calendar.monthsTranslate === 'undefined') {\n calendar.monthsTranslate = translate;\n }\n $months.removeClass('calendar-month-current calendar-month-prev calendar-month-next');\n const prevMonthTranslate = -(translate + 1) * 100 * inverter;\n const currentMonthTranslate = -translate * 100 * inverter;\n const nextMonthTranslate = -(translate - 1) * 100 * inverter;\n $months\n .eq(0)\n .transform(\n `translate3d(${isH ? prevMonthTranslate : 0}%, ${isH ? 0 : prevMonthTranslate}%, 0)`,\n )\n .addClass('calendar-month-prev');\n $months\n .eq(1)\n .transform(\n `translate3d(${isH ? currentMonthTranslate : 0}%, ${isH ? 0 : currentMonthTranslate}%, 0)`,\n )\n .addClass('calendar-month-current');\n $months\n .eq(2)\n .transform(\n `translate3d(${isH ? nextMonthTranslate : 0}%, ${isH ? 0 : nextMonthTranslate}%, 0)`,\n )\n .addClass('calendar-month-next');\n }\n\n nextMonth(transition) {\n const calendar = this;\n const { params, $wrapperEl, inverter, isHorizontal: isH } = calendar;\n if (typeof transition === 'undefined' || typeof transition === 'object') {\n transition = ''; // eslint-disable-line\n if (!params.animate) transition = 0; // eslint-disable-line\n }\n const nextMonth = parseInt(\n calendar.$months.eq(calendar.$months.length - 1).attr('data-month'),\n 10,\n );\n const nextYear = parseInt(\n calendar.$months.eq(calendar.$months.length - 1).attr('data-year'),\n 10,\n );\n const nextDate = new Date(nextYear, nextMonth);\n const nextDateTime = nextDate.getTime();\n const transitionEndCallback = !calendar.animating;\n if (params.maxDate) {\n if (nextDateTime > new Date(params.maxDate).getTime()) {\n calendar.resetMonth();\n return;\n }\n }\n calendar.monthsTranslate -= 1;\n if (nextMonth === calendar.currentMonth) {\n const nextMonthTranslate = -calendar.monthsTranslate * 100 * inverter;\n const nextMonthHtml = $(calendar.renderMonth(nextDateTime, 'next'))\n .transform(\n `translate3d(${isH ? nextMonthTranslate : 0}%, ${isH ? 0 : nextMonthTranslate}%, 0)`,\n )\n .addClass('calendar-month-next');\n $wrapperEl.append(nextMonthHtml[0]);\n calendar.$months = $wrapperEl.find('.calendar-month');\n calendar.emit(\n 'local::monthAdd calendarMonthAdd',\n calendar.$months.eq(calendar.$months.length - 1)[0],\n );\n }\n calendar.animating = true;\n calendar.onMonthChangeStart('next');\n const translate = calendar.monthsTranslate * 100 * inverter;\n\n $wrapperEl\n .transition(transition)\n .transform(`translate3d(${isH ? translate : 0}%, ${isH ? 0 : translate}%, 0)`);\n if (transitionEndCallback) {\n $wrapperEl.transitionEnd(() => {\n calendar.onMonthChangeEnd('next');\n });\n }\n if (!params.animate) {\n calendar.onMonthChangeEnd('next');\n }\n }\n\n prevMonth(transition) {\n const calendar = this;\n const { params, $wrapperEl, inverter, isHorizontal: isH } = calendar;\n if (typeof transition === 'undefined' || typeof transition === 'object') {\n transition = ''; // eslint-disable-line\n if (!params.animate) transition = 0; // eslint-disable-line\n }\n const prevMonth = parseInt(calendar.$months.eq(0).attr('data-month'), 10);\n const prevYear = parseInt(calendar.$months.eq(0).attr('data-year'), 10);\n const prevDate = new Date(prevYear, prevMonth + 1, -1);\n const prevDateTime = prevDate.getTime();\n const transitionEndCallback = !calendar.animating;\n if (params.minDate) {\n let minDate = new Date(params.minDate);\n minDate = new Date(minDate.getFullYear(), minDate.getMonth(), 1);\n if (prevDateTime < minDate.getTime()) {\n calendar.resetMonth();\n return;\n }\n }\n calendar.monthsTranslate += 1;\n if (prevMonth === calendar.currentMonth) {\n const prevMonthTranslate = -calendar.monthsTranslate * 100 * inverter;\n const prevMonthHtml = $(calendar.renderMonth(prevDateTime, 'prev'))\n .transform(\n `translate3d(${isH ? prevMonthTranslate : 0}%, ${isH ? 0 : prevMonthTranslate}%, 0)`,\n )\n .addClass('calendar-month-prev');\n $wrapperEl.prepend(prevMonthHtml[0]);\n calendar.$months = $wrapperEl.find('.calendar-month');\n calendar.emit('local::monthAdd calendarMonthAdd', calendar.$months.eq(0)[0]);\n }\n calendar.animating = true;\n calendar.onMonthChangeStart('prev');\n const translate = calendar.monthsTranslate * 100 * inverter;\n $wrapperEl\n .transition(transition)\n .transform(`translate3d(${isH ? translate : 0}%, ${isH ? 0 : translate}%, 0)`);\n if (transitionEndCallback) {\n $wrapperEl.transitionEnd(() => {\n calendar.onMonthChangeEnd('prev');\n });\n }\n if (!params.animate) {\n calendar.onMonthChangeEnd('prev');\n }\n }\n\n resetMonth(transition = '') {\n const calendar = this;\n const { $wrapperEl, inverter, isHorizontal: isH, monthsTranslate } = calendar;\n const translate = monthsTranslate * 100 * inverter;\n $wrapperEl\n .transition(transition)\n .transform(`translate3d(${isH ? translate : 0}%, ${isH ? 0 : translate}%, 0)`);\n }\n // eslint-disable-next-line\n setYearMonth(year, month, transition) {\n const calendar = this;\n const { params, isHorizontal: isH, $wrapperEl, inverter } = calendar;\n // eslint-disable-next-line\n if (typeof year === 'undefined') year = calendar.currentYear;\n // eslint-disable-next-line\n if (typeof month === 'undefined') month = calendar.currentMonth;\n if (typeof transition === 'undefined' || typeof transition === 'object') {\n // eslint-disable-next-line\n transition = '';\n // eslint-disable-next-line\n if (!params.animate) transition = 0;\n }\n let targetDate;\n if (year < calendar.currentYear) {\n targetDate = new Date(year, month + 1, -1).getTime();\n } else {\n targetDate = new Date(year, month).getTime();\n }\n if (params.maxDate && targetDate > new Date(params.maxDate).getTime()) {\n return false;\n }\n if (params.minDate) {\n let minDate = new Date(params.minDate);\n minDate = new Date(minDate.getFullYear(), minDate.getMonth(), 1);\n if (targetDate < minDate.getTime()) {\n return false;\n }\n }\n const currentDate = new Date(calendar.currentYear, calendar.currentMonth).getTime();\n const dir = targetDate > currentDate ? 'next' : 'prev';\n const newMonthHTML = calendar.renderMonth(new Date(year, month));\n calendar.monthsTranslate = calendar.monthsTranslate || 0;\n const prevTranslate = calendar.monthsTranslate;\n let monthTranslate;\n const transitionEndCallback = !calendar.animating && transition !== 0;\n if (targetDate > currentDate) {\n // To next\n calendar.monthsTranslate -= 1;\n if (!calendar.animating) calendar.$months.eq(calendar.$months.length - 1).remove();\n $wrapperEl.append(newMonthHTML);\n calendar.$months = $wrapperEl.find('.calendar-month');\n monthTranslate = -(prevTranslate - 1) * 100 * inverter;\n calendar.$months\n .eq(calendar.$months.length - 1)\n .transform(`translate3d(${isH ? monthTranslate : 0}%, ${isH ? 0 : monthTranslate}%, 0)`)\n .addClass('calendar-month-next');\n } else {\n // To prev\n calendar.monthsTranslate += 1;\n if (!calendar.animating) calendar.$months.eq(0).remove();\n $wrapperEl.prepend(newMonthHTML);\n calendar.$months = $wrapperEl.find('.calendar-month');\n monthTranslate = -(prevTranslate + 1) * 100 * inverter;\n calendar.$months\n .eq(0)\n .transform(`translate3d(${isH ? monthTranslate : 0}%, ${isH ? 0 : monthTranslate}%, 0)`)\n .addClass('calendar-month-prev');\n }\n calendar.emit(\n 'local::monthAdd calendarMonthAdd',\n dir === 'next'\n ? calendar.$months.eq(calendar.$months.length - 1)[0]\n : calendar.$months.eq(0)[0],\n );\n\n calendar.animating = true;\n calendar.onMonthChangeStart(dir);\n const wrapperTranslate = calendar.monthsTranslate * 100 * inverter;\n $wrapperEl\n .transition(transition)\n .transform(`translate3d(${isH ? wrapperTranslate : 0}%, ${isH ? 0 : wrapperTranslate}%, 0)`);\n if (transitionEndCallback) {\n $wrapperEl.transitionEnd(() => {\n calendar.onMonthChangeEnd(dir, true);\n });\n }\n if (!params.animate || transition === 0) {\n calendar.onMonthChangeEnd(dir, true);\n }\n }\n\n nextYear() {\n const calendar = this;\n calendar.setYearMonth(calendar.currentYear + 1);\n }\n\n prevYear() {\n const calendar = this;\n calendar.setYearMonth(calendar.currentYear - 1);\n }\n // eslint-disable-next-line\n dateInRange(dayDate, range) {\n let match = false;\n let i;\n if (!range) return false;\n if (Array.isArray(range)) {\n for (i = 0; i < range.length; i += 1) {\n if (range[i].from || range[i].to) {\n if (range[i].from && range[i].to) {\n if (\n dayDate <= new Date(range[i].to).getTime() &&\n dayDate >= new Date(range[i].from).getTime()\n ) {\n match = true;\n }\n } else if (range[i].from) {\n if (dayDate >= new Date(range[i].from).getTime()) {\n match = true;\n }\n } else if (range[i].to) {\n if (dayDate <= new Date(range[i].to).getTime()) {\n match = true;\n }\n }\n } else if (range[i].date) {\n if (dayDate === new Date(range[i].date).getTime()) {\n match = true;\n }\n } else if (dayDate === new Date(range[i]).getTime()) {\n match = true;\n }\n }\n } else if (range.from || range.to) {\n if (range.from && range.to) {\n if (dayDate <= new Date(range.to).getTime() && dayDate >= new Date(range.from).getTime()) {\n match = true;\n }\n } else if (range.from) {\n if (dayDate >= new Date(range.from).getTime()) {\n match = true;\n }\n } else if (range.to) {\n if (dayDate <= new Date(range.to).getTime()) {\n match = true;\n }\n }\n } else if (range.date) {\n match = dayDate === new Date(range.date).getTime();\n } else if (typeof range === 'function') {\n match = range(new Date(dayDate));\n }\n return match;\n }\n // eslint-disable-next-line\n daysInMonth(date) {\n const d = new Date(date);\n return new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate();\n }\n\n renderMonths(date) {\n const calendar = this;\n if (calendar.params.renderMonths) {\n return calendar.params.renderMonths.call(calendar, date);\n }\n return (\n <div class=\"calendar-months-wrapper\">\n {calendar.renderMonth(date, 'prev')}\n {calendar.renderMonth(date)}\n {calendar.renderMonth(date, 'next')}\n </div>\n );\n }\n\n renderMonth(d, offset) {\n const calendar = this;\n const { params, value } = calendar;\n if (params.renderMonth) {\n return params.renderMonth.call(calendar, d, offset);\n }\n let date = new Date(d);\n let year = date.getFullYear();\n let month = date.getMonth();\n let localeMonth = calendar.monthNames.indexOf(calendar.monthFormatter(date));\n if (localeMonth < 0) localeMonth = month;\n let localeYear = calendar.yearFormatter(date);\n\n if (offset === 'next') {\n if (month === 11) date = new Date(year + 1, 0);\n else date = new Date(year, month + 1, 1);\n }\n if (offset === 'prev') {\n if (month === 0) date = new Date(year - 1, 11);\n else date = new Date(year, month - 1, 1);\n }\n if (offset === 'next' || offset === 'prev') {\n month = date.getMonth();\n year = date.getFullYear();\n localeMonth = calendar.monthNames.indexOf(calendar.monthFormatter(date));\n if (localeMonth < 0) localeMonth = month;\n localeYear = calendar.yearFormatter(date);\n }\n\n const currentValues = [];\n const today = new Date().setHours(0, 0, 0, 0);\n const minDate = params.minDate ? new Date(params.minDate).getTime() : null;\n const maxDate = params.maxDate ? new Date(params.maxDate).getTime() : null;\n const rows = 6;\n const cols = 7;\n const daysInPrevMonth = calendar.daysInMonth(\n new Date(date.getFullYear(), date.getMonth()).getTime() - 10 * 24 * 60 * 60 * 1000,\n );\n const daysInMonth = calendar.daysInMonth(date);\n const minDayNumber = params.firstDay === 6 ? 0 : 1;\n\n let monthHtml = '';\n let dayIndex = 0 + (params.firstDay - 1);\n let disabled;\n let hasEvents;\n let firstDayOfMonthIndex = new Date(date.getFullYear(), date.getMonth()).getDay();\n if (firstDayOfMonthIndex === 0) firstDayOfMonthIndex = 7;\n\n if (value && value.length) {\n for (let i = 0; i < value.length; i += 1) {\n currentValues.push(new Date(value[i]).setHours(0, 0, 0, 0));\n }\n }\n\n for (let row = 1; row <= rows; row += 1) {\n let rowHtml = '';\n for (let col = 1; col <= cols; col += 1) {\n dayIndex += 1;\n let dayDate;\n let dayNumber = dayIndex - firstDayOfMonthIndex;\n let addClass = '';\n if (row === 1 && col === 1 && dayNumber > minDayNumber && params.firstDay !== 1) {\n dayIndex -= 7;\n dayNumber = dayIndex - firstDayOfMonthIndex;\n }\n\n const weekDayIndex =\n col - 1 + params.firstDay > 6 ? col - 1 - 7 + params.firstDay : col - 1 + params.firstDay;\n\n if (dayNumber < 0) {\n dayNumber = daysInPrevMonth + dayNumber + 1;\n addClass += ' calendar-day-prev';\n dayDate = new Date(\n month - 1 < 0 ? year - 1 : year,\n month - 1 < 0 ? 11 : month - 1,\n dayNumber,\n ).getTime();\n } else {\n dayNumber += 1;\n if (dayNumber > daysInMonth) {\n dayNumber -= daysInMonth;\n addClass += ' calendar-day-next';\n dayDate = new Date(\n month + 1 > 11 ? year + 1 : year,\n month + 1 > 11 ? 0 : month + 1,\n dayNumber,\n ).getTime();\n } else {\n dayDate = new Date(year, month, dayNumber).getTime();\n }\n }\n // Today\n if (dayDate === today) addClass += ' calendar-day-today';\n\n // Selected\n if (params.rangePicker && currentValues.length === 2) {\n if (dayDate >= currentValues[0] && dayDate <= currentValues[1]) {\n addClass += ' calendar-day-selected';\n }\n if (currentValues[0] !== currentValues[1]) {\n if (dayDate > currentValues[0] && dayDate < currentValues[1]) {\n addClass += ' calendar-day-selected-range';\n }\n if (dayDate === currentValues[0]) {\n addClass += ' calendar-day-selected-left';\n }\n if (dayDate === currentValues[1]) {\n addClass += ' calendar-day-selected-right';\n }\n }\n } else if (currentValues.indexOf(dayDate) >= 0) addClass += ' calendar-day-selected';\n // Weekend\n if (params.weekendDays.indexOf(weekDayIndex) >= 0) {\n addClass += ' calendar-day-weekend';\n }\n // Events\n let eventsHtml = '';\n hasEvents = false;\n if (params.events) {\n if (calendar.dateInRange(dayDate, params.events)) {\n hasEvents = true;\n }\n }\n if (hasEvents) {\n addClass += ' calendar-day-has-events';\n // prettier-ignore\n eventsHtml = `\n <span class=\"calendar-day-events\">\n <span class=\"calendar-day-event\"></span>\n </span>\n `;\n if (Array.isArray(params.events)) {\n const eventDots = [];\n params.events.forEach((ev) => {\n const color = ev.color || '';\n if (eventDots.indexOf(color) < 0 && calendar.dateInRange(dayDate, ev)) {\n eventDots.push(color);\n }\n });\n // prettier-ignore\n eventsHtml = `\n <span class=\"calendar-day-events\">\n ${eventDots.map(color => `\n <span class=\"calendar-day-event\" style=\"${color ? `background-color: ${color}` : ''}\"></span>\n `.trim()).join('')}\n </span>\n `;\n }\n }\n // Custom Ranges\n if (params.rangesClasses) {\n for (let k = 0; k < params.rangesClasses.length; k += 1) {\n if (calendar.dateInRange(dayDate, params.rangesClasses[k].range)) {\n addClass += ` ${params.rangesClasses[k].cssClass}`;\n }\n }\n }\n // Disabled\n disabled = false;\n if ((minDate && dayDate < minDate) || (maxDate && dayDate > maxDate)) {\n disabled = true;\n }\n if (params.disabled) {\n if (calendar.dateInRange(dayDate, params.disabled)) {\n disabled = true;\n }\n }\n if (disabled) {\n addClass += ' calendar-day-disabled';\n }\n\n dayDate = new Date(dayDate);\n const dayYear = dayDate.getFullYear();\n const dayMonth = dayDate.getMonth();\n const dayNumberDisplay = calendar.dayFormatter(dayDate);\n // prettier-ignore\n rowHtml += `\n <div data-year=\"${dayYear}\" data-month=\"${dayMonth}\" data-day=\"${dayNumber}\" class=\"calendar-day${addClass}\" data-date=\"${dayYear}-${dayMonth}-${dayNumber}\">\n <span class=\"calendar-day-number\">${dayNumberDisplay}${eventsHtml}</span>\n </div>`.trim();\n }\n monthHtml += `<div class=\"calendar-row\">${rowHtml}</div>`;\n }\n monthHtml = `<div class=\"calendar-month\" data-year=\"${year}\" data-month=\"${month}\" data-locale-year=\"${localeYear}\" data-locale-month=\"${localeMonth}\">${monthHtml}</div>`;\n return monthHtml;\n }\n\n renderWeekHeader() {\n const calendar = this;\n if (calendar.params.renderWeekHeader) {\n return calendar.params.renderWeekHeader.call(calendar);\n }\n const { params } = calendar;\n let weekDaysHtml = '';\n for (let i = 0; i < 7; i += 1) {\n const dayIndex = i + params.firstDay > 6 ? i - 7 + params.firstDay : i + params.firstDay;\n const dayName = calendar.dayNamesShort[dayIndex];\n weekDaysHtml += `<div class=\"calendar-week-day\">${dayName}</div>`;\n }\n return <div class=\"calendar-week-header\">{weekDaysHtml}</div>;\n }\n\n renderMonthSelector() {\n const calendar = this;\n if (calendar.params.renderMonthSelector) {\n return calendar.params.renderMonthSelector.call(calendar);\n }\n return (\n <div class=\"calendar-month-selector\">\n <a class=\"link icon-only calendar-prev-month-button\">\n <i class=\"icon icon-prev\"></i>\n </a>\n {calendar.params.monthPicker ? (\n <a class=\"current-month-value link\"></a>\n ) : (\n <span class=\"current-month-value\"></span>\n )}\n <a class=\"link icon-only calendar-next-month-button\">\n <i class=\"icon icon-next\"></i>\n </a>\n </div>\n );\n }\n\n renderYearSelector() {\n const calendar = this;\n if (calendar.params.renderYearSelector) {\n return calendar.params.renderYearSelector.call(calendar);\n }\n return (\n <div class=\"calendar-year-selector\">\n <a class=\"link icon-only calendar-prev-year-button\">\n <i class=\"icon icon-prev\"></i>\n </a>\n {calendar.params.yearPicker ? (\n <a class=\"current-year-value link\"></a>\n ) : (\n <span class=\"current-year-value\"></span>\n )}\n <a class=\"link icon-only calendar-next-year-button\">\n <i class=\"icon icon-next\"></i>\n </a>\n </div>\n );\n }\n\n // eslint-disable-next-line\n renderTimeSelector() {\n const calendar = this;\n const value = calendar.value && calendar.value[0];\n let timeString;\n if (value) timeString = calendar.timeSelectorFormatter(value);\n return (\n <div class=\"calendar-time-selector\">\n <span>{calendar.params.timePickerLabel}</span>\n <a class=\"link\">{timeString || calendar.params.timePickerPlaceholder}</a>\n </div>\n );\n }\n\n renderHeader() {\n const calendar = this;\n if (calendar.params.renderHeader) {\n return calendar.params.renderHeader.call(calendar);\n }\n return (\n <div class=\"calendar-header\">\n <div class=\"calendar-selected-date\">{calendar.params.headerPlaceholder}</div>\n </div>\n );\n }\n\n renderFooter() {\n const calendar = this;\n const app = calendar.app;\n if (calendar.params.renderFooter) {\n return calendar.params.renderFooter.call(calendar);\n }\n return (\n <div class=\"calendar-footer\">\n <a\n class={`${\n app.theme === 'md' ? 'button button-round' : 'link'\n } calendar-close sheet-close popover-close`}\n >\n {calendar.params.toolbarCloseText}\n </a>\n </div>\n );\n }\n\n renderToolbar() {\n const calendar = this;\n if (calendar.params.renderToolbar) {\n return calendar.params.renderToolbar.call(calendar, calendar);\n }\n // prettier-ignore\n return (\n <div class=\"toolbar toolbar-top\">\n <div class=\"toolbar-inner\">\n {calendar.params.monthSelector ? calendar.renderMonthSelector() : ''}\n {calendar.params.yearSelector ? calendar.renderYearSelector() : ''}\n </div>\n </div>\n );\n }\n // eslint-disable-next-line\n renderInline() {\n const calendar = this;\n const { cssClass, toolbar, header, footer, rangePicker, weekHeader } = calendar.params;\n const { value, hasTimePicker } = calendar;\n const date = value && value.length ? value[0] : new Date().setHours(0, 0, 0);\n return (\n <div\n class={`calendar calendar-inline ${rangePicker ? 'calendar-range' : ''} ${cssClass || ''}`}\n >\n {header && calendar.renderHeader()}\n {toolbar && calendar.renderToolbar()}\n {weekHeader && calendar.renderWeekHeader()}\n <div class=\"calendar-months\">{calendar.renderMonths(date)}</div>\n {hasTimePicker && calendar.renderTimeSelector()}\n {footer && calendar.renderFooter()}\n </div>\n );\n }\n\n renderCustomModal() {\n const calendar = this;\n const { cssClass, toolbar, header, footer, rangePicker, weekHeader } = calendar.params;\n const { value, hasTimePicker } = calendar;\n const date = value && value.length ? value[0] : new Date().setHours(0, 0, 0);\n return (\n <div\n class={`calendar calendar-modal ${rangePicker ? 'calendar-range' : ''} ${cssClass || ''}`}\n >\n {header && calendar.renderHeader()}\n {toolbar && calendar.renderToolbar()}\n {weekHeader && calendar.renderWeekHeader()}\n <div class=\"calendar-months\">{calendar.renderMonths(date)}</div>\n {hasTimePicker && calendar.renderTimeSelector()}\n {footer && calendar.renderFooter()}\n </div>\n );\n }\n\n renderSheet() {\n const calendar = this;\n const { cssClass, toolbar, header, footer, rangePicker, weekHeader } = calendar.params;\n const { value, hasTimePicker } = calendar;\n const date = value && value.length ? value[0] : new Date().setHours(0, 0, 0);\n return (\n <div\n class={`sheet-modal calendar calendar-sheet ${rangePicker ? 'calendar-range' : ''} ${\n cssClass || ''\n }`}\n >\n {header && calendar.renderHeader()}\n {toolbar && calendar.renderToolbar()}\n {weekHeader && calendar.renderWeekHeader()}\n <div class=\"sheet-modal-inner calendar-months\">{calendar.renderMonths(date)}</div>\n {hasTimePicker && calendar.renderTimeSelector()}\n {footer && calendar.renderFooter()}\n </div>\n );\n }\n\n renderPopover() {\n const calendar = this;\n const { cssClass, toolbar, header, footer, rangePicker, weekHeader } = calendar.params;\n const { value, hasTimePicker } = calendar;\n const date = value && value.length ? value[0] : new Date().setHours(0, 0, 0);\n return (\n <div class=\"popover calendar-popover\">\n <div class=\"popover-inner\">\n <div class={`calendar ${rangePicker ? 'calendar-range' : ''} ${cssClass || ''}`}>\n {header && calendar.renderHeader()}\n {toolbar && calendar.renderToolbar()}\n {weekHeader && calendar.renderWeekHeader()}\n <div class=\"calendar-months\">{calendar.renderMonths(date)}</div>\n {hasTimePicker && calendar.renderTimeSelector()}\n {footer && calendar.renderFooter()}\n </div>\n </div>\n </div>\n );\n }\n\n render() {\n const calendar = this;\n const { params } = calendar;\n if (params.render) return params.render.call(calendar);\n if (!calendar.inline) {\n let modalType = params.openIn;\n if (modalType === 'auto') modalType = calendar.isPopover() ? 'popover' : 'sheet';\n\n if (modalType === 'popover') return calendar.renderPopover();\n if (modalType === 'sheet') return calendar.renderSheet();\n return calendar.renderCustomModal();\n }\n return calendar.renderInline();\n }\n\n openMonthPicker() {\n const calendar = this;\n const { $el, app } = calendar;\n if (!$el || !$el.length) return;\n\n $el.append(\n '<div class=\"popover calendar-popover calendar-month-picker-popover\"><div class=\"popover-inner\"><div class=\"calendar-month-picker\"></div></div></div>',\n );\n\n calendar.monthPickerPopover = app.popover.create({\n el: $el.find('.calendar-month-picker-popover'),\n targetEl: $el.find('.calendar-month-selector'),\n backdrop: true,\n backdropUnique: true,\n on: {\n close() {\n calendar.closeMonthPicker();\n },\n closed() {\n if (calendar.monthPickerPopover.$el) calendar.monthPickerPopover.$el.remove();\n calendar.monthPickerPopover.destroy();\n if (calendar.monthPickerInstance) {\n calendar.monthPickerInstance.close();\n calendar.monthPickerInstance.destroy();\n }\n delete calendar.monthPickerInstance;\n delete calendar.monthPickerPopover;\n },\n },\n });\n calendar.monthPickerPopover.open();\n\n const localeMonth = parseInt(\n calendar.$el.find('.calendar-month-current').attr('data-locale-month'),\n 10,\n );\n\n const values = [];\n const displayValues = [];\n calendar.monthNames.forEach((m, index) => {\n values.push(index);\n displayValues.push(m);\n });\n\n calendar.monthPickerInstance = app.picker.create({\n containerEl: calendar.monthPickerPopover.$el.find('.calendar-month-picker'),\n value: [localeMonth],\n toolbar: calendar.params.monthPickerToolbar,\n rotateEffect: false,\n toolbarCloseText: calendar.params.monthPickerCloseText,\n cols: [\n {\n values,\n displayValues,\n },\n ],\n });\n }\n\n closeMonthPicker() {\n const calendar = this;\n if (calendar.monthPickerPopover && calendar.monthPickerPopover.opened)\n calendar.monthPickerPopover.close();\n\n const index = calendar.monthPickerInstance.value[0];\n const localeMonthIndex = parseInt(\n calendar.$el.find('.calendar-month-current').attr('data-locale-month'),\n 10,\n );\n const monthIndex = calendar.currentMonth;\n const diff = localeMonthIndex - monthIndex;\n const diffIndex = index - diff;\n calendar.setYearMonth(calendar.currentYear, diffIndex, 0);\n }\n\n openYearPicker() {\n const calendar = this;\n const { $el, app } = calendar;\n if (!$el || !$el.length) return;\n\n $el.append(\n '<div class=\"popover calendar-popover calendar-year-picker-popover\"><div class=\"popover-inner\"><div class=\"calendar-year-picker\"></div></div></div>',\n );\n\n calendar.yearPickerPopover = app.popover.create({\n el: $el.find('.calendar-year-picker-popover'),\n targetEl: $el.find('.calendar-year-selector'),\n backdrop: true,\n backdropUnique: true,\n on: {\n close() {\n calendar.closeYearPicker();\n },\n closed() {\n if (calendar.yearPickerPopover.$el) calendar.yearPickerPopover.$el.remove();\n calendar.yearPickerPopover.destroy();\n if (calendar.yearPickerInstance) {\n calendar.yearPickerInstance.close();\n calendar.yearPickerInstance.destroy();\n }\n delete calendar.yearPickerInstance;\n delete calendar.yearPickerPopover;\n },\n },\n });\n calendar.yearPickerPopover.open();\n\n const currentYear = calendar.currentYear;\n let yearMin = calendar.params.yearPickerMin || new Date().getFullYear() - 100;\n if (calendar.params.minDate) {\n yearMin = Math.max(yearMin, new Date(calendar.params.minDate).getFullYear());\n }\n let yearMax = calendar.params.yearPickerMax || new Date().getFullYear() + 100;\n if (calendar.params.maxDate) {\n yearMax = Math.min(yearMax, new Date(calendar.params.maxDate).getFullYear());\n }\n const years = [];\n for (let i = yearMin; i <= yearMax; i += 1) {\n years.push(i);\n }\n\n calendar.yearPickerInstance = app.picker.create({\n containerEl: calendar.yearPickerPopover.$el.find('.calendar-year-picker'),\n value: [currentYear],\n toolbar: calendar.params.yearPickerToolbar,\n rotateEffect: false,\n toolbarCloseText: calendar.params.yearPickerCloseText,\n cols: [\n {\n values: years,\n },\n ],\n });\n }\n\n closeYearPicker() {\n const calendar = this;\n if (calendar.yearPickerPopover && calendar.yearPickerPopover.opened)\n calendar.yearPickerPopover.close();\n calendar.setYearMonth(calendar.yearPickerInstance.value[0], undefined, 0);\n }\n\n openTimePicker() {\n const calendar = this;\n const { $el, app, is12HoursFormat } = calendar;\n if (!$el || !$el.length) return;\n $el.append(\n '<div class=\"popover calendar-popover calendar-time-picker-popover\"><div class=\"popover-inner\"><div class=\"calendar-time-picker\"></div></div></div>',\n );\n const hoursArr = [];\n const minutesArr = [];\n const hoursMin = is12HoursFormat ? 1 : 0;\n const hoursMax = is12HoursFormat ? 12 : 23;\n for (let i = hoursMin; i <= hoursMax; i += 1) {\n hoursArr.push(i);\n }\n for (let i = 0; i <= 59; i += 1) {\n minutesArr.push(i);\n }\n let value;\n if (calendar.value && calendar.value.length) {\n value = [calendar.value[0].getHours(), calendar.value[0].getMinutes()];\n } else {\n value = [new Date().getHours(), new Date().getMinutes()];\n }\n if (is12HoursFormat) {\n value.push(value[0] < 12 ? 'AM' : 'PM');\n if (value[0] > 12) value[0] -= 12;\n if (value[0] === 0) value[0] = 12;\n }\n calendar.timePickerPopover = app.popover.create({\n el: $el.find('.calendar-time-picker-popover'),\n targetEl: $el.find('.calendar-time-selector .link'),\n backdrop: true,\n backdropUnique: true,\n on: {\n close() {\n calendar.closeTimePicker();\n },\n closed() {\n if (calendar.timePickerPopover.$el) calendar.timePickerPopover.$el.remove();\n calendar.timePickerPopover.destroy();\n if (calendar.timePickerInstance) {\n calendar.timePickerInstance.close();\n calendar.timePickerInstance.destroy();\n }\n delete calendar.timePickerInstance;\n delete calendar.timePickerPopover;\n },\n },\n });\n calendar.timePickerPopover.open();\n calendar.timePickerInstance = app.picker.create({\n containerEl: calendar.timePickerPopover.$el.find('.calendar-time-picker'),\n value,\n toolbar: calendar.params.timePickerToolbar,\n rotateEffect: false,\n toolbarCloseText: calendar.params.timePickerCloseText,\n cols: [\n {\n values: hoursArr,\n },\n {\n divider: true,\n content: ':',\n },\n {\n values: minutesArr,\n displayValues: minutesArr.map((m) => (m < 10 ? `0${m}` : m)),\n },\n ...(is12HoursFormat\n ? [\n {\n values: ['AM', 'PM'],\n },\n ]\n : []),\n ],\n });\n }\n\n closeTimePicker() {\n const calendar = this;\n const { is12HoursFormat } = calendar;\n if (calendar.timePickerInstance) {\n const timePickerValue = calendar.timePickerInstance.value;\n let hours = parseInt(timePickerValue[0], 10);\n const minutes = parseInt(timePickerValue[1], 10);\n const period = calendar.timePickerInstance.value[2];\n if (is12HoursFormat) {\n if (period === 'AM' && hours === 12) {\n hours = 0;\n } else if (period === 'PM' && hours !== 12) {\n hours += 12;\n }\n }\n\n let value = calendar.value && calendar.value.length && calendar.value[0];\n if (!value) {\n value = new Date();\n value.setHours(hours, minutes, 0, 0);\n } else {\n value = new Date(value);\n value.setHours(hours, minutes);\n }\n calendar.setValue([value]);\n if (calendar.timePickerPopover && calendar.timePickerPopover.opened)\n calendar.timePickerPopover.close();\n }\n }\n\n onOpen() {\n const calendar = this;\n const { initialized, $el, app, $inputEl, inline, value, params } = calendar;\n calendar.closing = false;\n calendar.opened = true;\n calendar.opening = true;\n\n // Init main events\n calendar.attachCalendarEvents();\n\n const updateValue = !value && params.value;\n\n // Set value\n if (!initialized) {\n if (value) calendar.setValue(value, 0);\n else if (params.value) {\n calendar.setValue(calendar.normalizeValues(params.value), 0);\n }\n } else if (value) {\n calendar.setValue(value, 0);\n }\n\n // Update current month and year\n calendar.updateCurrentMonthYear();\n\n // Set initial translate\n calendar.monthsTranslate = 0;\n calendar.setMonthsTranslate();\n\n // Update input value\n if (updateValue) calendar.updateValue();\n else if (params.header && value) {\n calendar.updateValue(true);\n }\n\n // Extra focus\n if (!inline && $inputEl && $inputEl.length && app.theme === 'md') {\n $inputEl.trigger('focus');\n }\n\n calendar.initialized = true;\n\n calendar.$months.each((monthEl) => {\n calendar.emit('local::monthAdd calendarMonthAdd', monthEl);\n });\n\n // Trigger events\n if ($el) {\n $el.trigger('calendar:open');\n }\n if ($inputEl) {\n $inputEl.trigger('calendar:open');\n }\n calendar.emit('local::open calendarOpen', calendar);\n }\n\n onOpened() {\n const calendar = this;\n calendar.opening = false;\n if (calendar.$el) {\n calendar.$el.trigger('calendar:opened');\n }\n if (calendar.$inputEl) {\n calendar.$inputEl.trigger('calendar:opened');\n }\n calendar.emit('local::opened calendarOpened', calendar);\n }\n\n onClose() {\n const calendar = this;\n const app = calendar.app;\n calendar.opening = false;\n calendar.closing = true;\n\n if (calendar.$inputEl) {\n if (app.theme === 'md') {\n calendar.$inputEl.trigger('blur');\n } else {\n const validate = calendar.$inputEl.attr('validate');\n const required = calendar.$inputEl.attr('required');\n if (validate && required) {\n app.input.validate(calendar.$inputEl);\n }\n }\n }\n if (calendar.detachCalendarEvents) {\n calendar.detachCalendarEvents();\n }\n\n if (calendar.$el) {\n calendar.$el.trigger('calendar:close');\n }\n if (calendar.$inputEl) {\n calendar.$inputEl.trigger('calendar:close');\n }\n calendar.emit('local::close calendarClose', calendar);\n }\n\n onClosed() {\n const calendar = this;\n calendar.opened = false;\n calendar.closing = false;\n\n if (!calendar.inline) {\n nextTick(() => {\n if (calendar.modal && calendar.modal.el && calendar.modal.destroy) {\n if (!calendar.params.routableModals) {\n calendar.modal.destroy();\n }\n }\n delete calendar.modal;\n });\n }\n if (calendar.timePickerInstance) {\n if (calendar.timePickerInstance.destroy) calendar.timePickerInstance.destroy();\n delete calendar.timePickerInstance;\n }\n if (calendar.$el) {\n calendar.$el.trigger('calendar:closed');\n }\n if (calendar.$inputEl) {\n calendar.$inputEl.trigger('calendar:closed');\n }\n calendar.emit('local::closed calendarClosed', calendar);\n }\n\n open() {\n const calendar = this;\n const { app, opened, inline, $inputEl, params } = calendar;\n if (opened) return;\n\n if (inline) {\n calendar.$el = $(calendar.render());\n calendar.$el[0].f7Calendar = calendar;\n calendar.$wrapperEl = calendar.$el.find('.calendar-months-wrapper');\n calendar.$months = calendar.$wrapperEl.find('.calendar-month');\n calendar.$containerEl.append(calendar.$el);\n calendar.onOpen();\n calendar.onOpened();\n return;\n }\n let modalType = params.openIn;\n if (modalType === 'auto') {\n modalType = calendar.isPopover() ? 'popover' : 'sheet';\n }\n const modalContent = calendar.render();\n\n const modalParams = {\n targetEl: $inputEl,\n scrollToEl: params.scrollToInput ? $inputEl : undefined,\n content: modalContent,\n backdrop:\n params.backdrop === true ||\n ((modalType === 'popover' || modalType === 'customModal') &&\n app.params.popover.backdrop !== false &&\n params.backdrop !== false),\n closeByBackdropClick: params.closeByBackdropClick,\n on: {\n open() {\n const modal = this;\n calendar.modal = modal;\n calendar.$el = modalType === 'popover' ? modal.$el.find('.calendar') : modal.$el;\n calendar.$wrapperEl = calendar.$el.find('.calendar-months-wrapper');\n calendar.$months = calendar.$wrapperEl.find('.calendar-month');\n calendar.$el[0].f7Calendar = calendar;\n if (modalType === 'customModal') {\n $(calendar.$el)\n .find('.calendar-close')\n .once('click', () => {\n calendar.close();\n });\n }\n calendar.onOpen();\n },\n opened() {\n calendar.onOpened();\n },\n close() {\n calendar.onClose();\n },\n closed() {\n calendar.onClosed();\n },\n },\n };\n if (modalType === 'sheet') {\n modalParams.push = params.sheetPush;\n modalParams.swipeToClose = params.sheetSwipeToClose;\n }\n if (params.routableModals && calendar.view) {\n calendar.view.router.navigate({\n url: calendar.url,\n route: {\n path: calendar.url,\n [modalType]: modalParams,\n },\n });\n } else {\n calendar.modal = app[modalType].create(modalParams);\n calendar.modal.open();\n }\n }\n\n close() {\n const calendar = this;\n const { opened, inline } = calendar;\n if (!opened) return;\n if (inline) {\n calendar.onClose();\n calendar.onClosed();\n return;\n }\n if (calendar.params.routableModals && calendar.view) {\n calendar.view.router.back();\n } else {\n calendar.modal.close();\n }\n }\n\n init() {\n const calendar = this;\n\n calendar.initInput();\n\n if (calendar.inline) {\n calendar.open();\n calendar.emit('local::init calendarInit', calendar);\n return;\n }\n\n if (!calendar.initialized && calendar.params.value) {\n calendar.setValue(calendar.normalizeValues(calendar.params.value));\n }\n\n // Attach input Events\n if (calendar.$inputEl) {\n calendar.attachInputEvents();\n }\n if (calendar.params.closeByOutsideClick) {\n calendar.attachHtmlEvents();\n }\n calendar.emit('local::init calendarInit', calendar);\n }\n\n destroy() {\n const calendar = this;\n if (calendar.destroyed) return;\n const { $el } = calendar;\n calendar.emit('local::beforeDestroy calendarBeforeDestroy', calendar);\n if ($el) $el.trigger('calendar:beforedestroy');\n\n calendar.close();\n\n // Detach Events\n if (calendar.$inputEl) {\n calendar.detachInputEvents();\n }\n if (calendar.params.closeByOutsideClick) {\n calendar.detachHtmlEvents();\n }\n\n if (calendar.timePickerInstance) {\n if (calendar.timePickerInstance.destroy) calendar.timePickerInstance.destroy();\n delete calendar.timePickerInstance;\n }\n\n if ($el && $el.length) delete calendar.$el[0].f7Calendar;\n deleteProps(calendar);\n calendar.destroyed = true;\n }\n}\n\nexport default Calendar;\n","import ConstructorMethods from '../../shared/constructor-methods.js';\nimport Calendar from './calendar-class.js';\nimport $ from '../../shared/dom7.js';\n\nexport default {\n name: 'calendar',\n static: {\n Calendar,\n },\n create() {\n const app = this;\n app.calendar = ConstructorMethods({\n defaultSelector: '.calendar',\n constructor: Calendar,\n app,\n domProp: 'f7Calendar',\n });\n app.calendar.close = function close(el = '.calendar') {\n const $el = $(el);\n if ($el.length === 0) return;\n const calendar = $el[0].f7Calendar;\n if (!calendar || (calendar && !calendar.opened)) return;\n calendar.close();\n };\n },\n params: {\n calendar: {\n // Calendar settings\n dateFormat: undefined,\n monthNames: 'auto',\n monthNamesShort: 'auto',\n dayNames: 'auto',\n dayNamesShort: 'auto',\n locale: undefined,\n firstDay: 1, // First day of the week, Monday\n weekendDays: [0, 6], // Sunday and Saturday\n multiple: false,\n rangePicker: false,\n rangePickerMinDays: 1, // when calendar is used as rangePicker\n rangePickerMaxDays: 0, // when calendar is used as rangePicker, 0 means unlimited\n direction: 'horizontal', // or 'vertical'\n minDate: null,\n maxDate: null,\n disabled: null, // dates range of disabled days\n events: null, // dates range of days with events\n rangesClasses: null, // array with custom classes date ranges\n touchMove: true,\n animate: true,\n closeOnSelect: false,\n monthSelector: true,\n monthPicker: true,\n monthPickerToolbar: true,\n monthPickerCloseText: 'Done',\n yearSelector: true,\n yearPicker: true,\n yearPickerToolbar: true,\n yearPickerMin: undefined,\n yearPickerMax: undefined,\n yearPickerCloseText: 'Done',\n timePicker: false,\n timePickerToolbar: true,\n timePickerLabel: 'Time',\n timePickerFormat: { hour: 'numeric', minute: 'numeric' },\n timePickerPlaceholder: 'Select time',\n timePickerCloseText: 'Done',\n weekHeader: true,\n value: null,\n // Common opener settings\n containerEl: null,\n openIn: 'auto', // or 'popover' or 'sheet' or 'customModal'\n sheetPush: false,\n sheetSwipeToClose: undefined,\n formatValue: null,\n inputEl: null,\n inputReadOnly: true,\n closeByOutsideClick: true,\n scrollToInput: true,\n header: false,\n headerPlaceholder: 'Select date',\n toolbar: true,\n toolbarCloseText: 'Done',\n footer: false,\n cssClass: null,\n routableModals: false,\n view: null,\n url: 'date/',\n backdrop: null,\n closeByBackdropClick: true,\n // Render functions\n renderWeekHeader: null,\n renderMonths: null,\n renderMonth: null,\n renderMonthSelector: null,\n renderYearSelector: null,\n renderHeader: null,\n renderFooter: null,\n renderToolbar: null,\n renderInline: null,\n renderPopover: null,\n renderSheet: null,\n render: null,\n },\n },\n};\n","import $ from '../../shared/dom7.js';\n\nexport default function pickerColumn(colEl, updateItems) {\n const picker = this;\n // const app = picker.app;\n const $colEl = $(colEl);\n const colIndex = $colEl.index();\n const col = picker.cols[colIndex];\n if (col.divider) return;\n\n col.$el = $colEl;\n col.el = $colEl[0];\n col.$itemsEl = col.$el.find('.picker-items');\n col.items = col.$itemsEl.find('.picker-item');\n\n let itemHeight;\n let colHeight;\n\n col.replaceValues = function replaceColValues(values, displayValues) {\n col.detachEvents();\n col.values = values;\n col.displayValues = displayValues;\n col.$itemsEl.html(picker.renderColumn(col, true));\n col.items = col.$itemsEl.find('.picker-item');\n col.calcSize();\n col.setValue(col.values[0], true);\n col.attachEvents();\n };\n col.calcSize = function calcColSize() {\n colHeight = col.$el[0].offsetHeight;\n itemHeight = col.items[0].offsetHeight;\n\n const hadPadding = col.el.style.getPropertyValue('--f7-picker-scroll-padding');\n col.el.style.setProperty('--f7-picker-scroll-padding', `${(colHeight - itemHeight) / 2}px`);\n if (!hadPadding) {\n col.$itemsEl[0].scrollTop = 0;\n }\n };\n\n col.setValue = function setColValue(newValue, valueCallbacks) {\n const newActiveIndex = col.$itemsEl\n .find(`.picker-item[data-picker-value=\"${newValue}\"]`)\n .index();\n if (typeof newActiveIndex === 'undefined' || newActiveIndex === -1) {\n return;\n }\n const newScrollTop = newActiveIndex * itemHeight;\n col.$itemsEl[0].scrollTop = newScrollTop;\n\n // Update items\n col.updateItems(newActiveIndex, newScrollTop, valueCallbacks);\n };\n\n col.updateItems = function updateColItems(activeIndex, scrollTop, valueCallbacks) {\n if (typeof scrollTop === 'undefined') {\n // eslint-disable-next-line\n scrollTop = col.$itemsEl[0].scrollTop;\n }\n\n /* eslint-disable no-param-reassign */\n if (typeof activeIndex === 'undefined') {\n activeIndex = Math.round(scrollTop / itemHeight);\n }\n if (activeIndex < 0) activeIndex = 0;\n if (activeIndex >= col.items.length) activeIndex = col.items.length - 1;\n /* eslint-enable no-param-reassign */\n const previousActiveIndex = col.activeIndex;\n col.activeIndex = activeIndex;\n col.$itemsEl.find('.picker-item-selected').removeClass('picker-item-selected');\n\n const selectedItem = col.items.eq(activeIndex);\n selectedItem.addClass('picker-item-selected').children().transform('');\n // Set 3D rotate effect\n if (picker.params.rotateEffect) {\n col.items.each((itemEl) => {\n const $itemEl = $(itemEl);\n\n const itemOffset = itemEl.offsetTop - (colHeight - itemHeight) / 2 - scrollTop;\n const percentage = itemOffset / itemHeight;\n const itemsFit = Math.ceil(col.height / itemHeight / 2) + 1;\n\n let angle = -24 * percentage;\n if (angle > 180) angle = 180;\n if (angle < -180) angle = -180;\n if (Math.abs(percentage) > itemsFit) {\n $itemEl.addClass('picker-item-far');\n } else {\n $itemEl.removeClass('picker-item-far');\n }\n $itemEl\n .children('span')\n .transform(`translate3d(0, ${-percentage * itemHeight}px, -100px) rotateX(${angle}deg)`);\n });\n }\n\n if (valueCallbacks || typeof valueCallbacks === 'undefined') {\n // Update values\n col.value = selectedItem.attr('data-picker-value');\n col.displayValue = col.displayValues ? col.displayValues[activeIndex] : col.value;\n // On change callback\n if (previousActiveIndex !== activeIndex) {\n if (col.onChange) {\n col.onChange(picker, col.value, col.displayValue);\n }\n picker.updateValue();\n }\n }\n };\n\n function handleScroll() {\n col.updateItems();\n }\n\n function handleClick() {\n const value = $(this).attr('data-picker-value');\n col.setValue(value);\n }\n\n col.attachEvents = function attachColEvents() {\n col.$itemsEl.on('scroll', handleScroll);\n col.items.on('click', handleClick);\n };\n col.detachEvents = function detachColEvents() {\n col.items.off('click', handleClick);\n };\n\n col.init = function initCol() {\n col.calcSize();\n if (colIndex === 0) col.$el.addClass('picker-column-first');\n if (colIndex === picker.cols.length - 1) col.$el.addClass('picker-column-last');\n if (picker.params.freeMode) col.$el.addClass('picker-column-free-mode');\n // Update items on init\n if (updateItems) col.updateItems(0);\n\n col.attachEvents();\n };\n\n col.destroy = function destroyCol() {\n col.detachEvents();\n };\n\n col.init();\n}\n","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, nextTick, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\nimport { getDevice } from '../../shared/get-device.js';\n\nimport pickerColumn from './picker-column.js';\n\n/** @jsx $jsx */\nimport $jsx from '../../shared/$jsx.js';\n\nclass Picker extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n const picker = this;\n const device = getDevice();\n const window = getWindow();\n picker.params = extend({}, app.params.picker, params);\n\n let $containerEl;\n if (picker.params.containerEl) {\n $containerEl = $(picker.params.containerEl);\n if ($containerEl.length === 0) return picker;\n }\n\n let $inputEl;\n if (picker.params.inputEl) {\n $inputEl = $(picker.params.inputEl);\n }\n\n let $scrollToEl = picker.params.scrollToInput ? $inputEl : undefined;\n if (picker.params.scrollToEl) {\n const scrollToEl = $(picker.params.scrollToEl);\n if (scrollToEl.length > 0) {\n $scrollToEl = scrollToEl;\n }\n }\n\n extend(picker, {\n app,\n $containerEl,\n containerEl: $containerEl && $containerEl[0],\n inline: $containerEl && $containerEl.length > 0,\n needsOriginFix:\n device.ios ||\n (window.navigator.userAgent.toLowerCase().indexOf('safari') >= 0 &&\n window.navigator.userAgent.toLowerCase().indexOf('chrome') < 0 &&\n !device.android),\n cols: [],\n $inputEl,\n inputEl: $inputEl && $inputEl[0],\n $scrollToEl,\n initialized: false,\n opened: false,\n url: picker.params.url,\n });\n\n function onResize() {\n picker.resizeCols();\n }\n function onInputClick() {\n picker.open();\n }\n function onInputFocus(e) {\n e.preventDefault();\n }\n let htmlTouchStartTarget = null;\n function onHtmlTouchStart(e) {\n htmlTouchStartTarget = e.target;\n }\n function onHtmlClick(e) {\n if (picker.destroyed || !picker.params) return;\n const $targetEl = $(e.target);\n if (picker.isPopover()) return;\n if (!picker.opened || picker.closing) return;\n if ($targetEl.closest('[class*=\"backdrop\"]').length) return;\n if ($inputEl && $inputEl.length > 0) {\n if (\n htmlTouchStartTarget === e.target &&\n $targetEl[0] !== $inputEl[0] &&\n $targetEl.closest('.sheet-modal').length === 0\n ) {\n picker.close();\n }\n } else if ($(e.target).closest('.sheet-modal').length === 0) {\n picker.close();\n }\n }\n\n // Events\n extend(picker, {\n attachResizeEvent() {\n app.on('resize', onResize);\n },\n detachResizeEvent() {\n app.off('resize', onResize);\n },\n attachInputEvents() {\n picker.$inputEl.on('click', onInputClick);\n if (picker.params.inputReadOnly) {\n picker.$inputEl.on('focus mousedown', onInputFocus);\n if (picker.$inputEl[0]) {\n picker.$inputEl[0].f7ValidateReadonly = true;\n }\n }\n },\n detachInputEvents() {\n picker.$inputEl.off('click', onInputClick);\n if (picker.params.inputReadOnly) {\n picker.$inputEl.off('focus mousedown', onInputFocus);\n if (picker.$inputEl[0]) {\n delete picker.$inputEl[0].f7ValidateReadonly;\n }\n }\n },\n attachHtmlEvents() {\n app.on('click', onHtmlClick);\n app.on('touchstart', onHtmlTouchStart);\n },\n detachHtmlEvents() {\n app.off('click', onHtmlClick);\n app.off('touchstart', onHtmlTouchStart);\n },\n });\n\n picker.init();\n\n return picker;\n }\n\n get view() {\n const { app, params, $inputEl } = this;\n let view;\n if (params.view) {\n view = params.view;\n } else if ($inputEl) {\n view = $inputEl.parents('.view').length && $inputEl.parents('.view')[0].f7View;\n }\n if (!view) view = app.views.main;\n return view;\n }\n\n initInput() {\n const picker = this;\n if (!picker.$inputEl) return;\n if (picker.params.inputReadOnly) picker.$inputEl.prop('readOnly', true);\n }\n\n resizeCols() {\n const picker = this;\n if (!picker.opened) return;\n for (let i = 0; i < picker.cols.length; i += 1) {\n if (!picker.cols[i].divider) {\n picker.cols[i].calcSize();\n picker.cols[i].setValue(picker.cols[i].value, false);\n }\n }\n }\n\n isPopover() {\n const picker = this;\n const { app, modal, params } = picker;\n const device = getDevice();\n if (params.openIn === 'sheet') return false;\n if (modal && modal.type !== 'popover') return false;\n\n if (!picker.inline && picker.inputEl) {\n if (params.openIn === 'popover') return true;\n if (device.ios) {\n return !!device.ipad;\n }\n if (app.width >= 768) {\n return true;\n }\n }\n return false;\n }\n\n formatValue() {\n const picker = this;\n const { value, displayValue } = picker;\n if (picker.params.formatValue) {\n return picker.params.formatValue.call(picker, value, displayValue);\n }\n return value.join(' ');\n }\n\n setValue(values) {\n const picker = this;\n let valueIndex = 0;\n if (picker.cols.length === 0) {\n picker.value = values;\n picker.updateValue(values);\n return;\n }\n for (let i = 0; i < picker.cols.length; i += 1) {\n if (picker.cols[i] && !picker.cols[i].divider) {\n picker.cols[i].setValue(values[valueIndex]);\n valueIndex += 1;\n }\n }\n }\n\n getValue() {\n const picker = this;\n return picker.value;\n }\n\n updateValue(forceValues) {\n const picker = this;\n const newValue = forceValues || [];\n const newDisplayValue = [];\n let column;\n if (picker.cols.length === 0) {\n const noDividerColumns = picker.params.cols.filter((c) => !c.divider);\n for (let i = 0; i < noDividerColumns.length; i += 1) {\n column = noDividerColumns[i];\n if (\n column.displayValues !== undefined &&\n column.values !== undefined &&\n column.values.indexOf(newValue[i]) !== -1\n ) {\n newDisplayValue.push(column.displayValues[column.values.indexOf(newValue[i])]);\n } else {\n newDisplayValue.push(newValue[i]);\n }\n }\n } else {\n for (let i = 0; i < picker.cols.length; i += 1) {\n if (!picker.cols[i].divider) {\n newValue.push(picker.cols[i].value);\n newDisplayValue.push(picker.cols[i].displayValue);\n }\n }\n }\n\n if (newValue.indexOf(undefined) >= 0) {\n return;\n }\n picker.value = newValue;\n picker.displayValue = newDisplayValue;\n picker.emit('local::change pickerChange', picker, picker.value, picker.displayValue);\n if (picker.inputEl) {\n picker.$inputEl.val(picker.formatValue());\n picker.$inputEl.trigger('change');\n }\n }\n\n initColumn(colEl, updateItems) {\n const picker = this;\n pickerColumn.call(picker, colEl, updateItems);\n }\n // eslint-disable-next-line\n destroyColumn(colEl) {\n const picker = this;\n const $colEl = $(colEl);\n const index = $colEl.index();\n if (picker.cols[index] && picker.cols[index].destroy) {\n picker.cols[index].destroy();\n }\n }\n\n renderToolbar() {\n const picker = this;\n if (picker.params.renderToolbar) return picker.params.renderToolbar.call(picker, picker);\n return (\n <div class=\"toolbar toolbar-top\">\n <div class=\"toolbar-inner\">\n <div class=\"left\"></div>\n <div class=\"right\">\n <a class=\"link sheet-close popover-close\">{picker.params.toolbarCloseText}</a>\n </div>\n </div>\n </div>\n );\n }\n // eslint-disable-next-line\n renderColumn(col, onlyItems) {\n const colClasses = `picker-column ${col.textAlign ? `picker-column-${col.textAlign}` : ''} ${\n col.cssClass || ''\n }`;\n let columnHtml;\n let columnItemsHtml;\n\n if (col.divider) {\n // prettier-ignore\n columnHtml = `\n <div class=\"${colClasses} picker-column-divider\">${col.content}</div>\n `;\n } else {\n // prettier-ignore\n columnItemsHtml = col.values.map((value, index) => `\n <div class=\"picker-item\" data-picker-value=\"${value}\">\n <span>${col.displayValues ? col.displayValues[index] : value}</span>\n </div>\n `).join('');\n // prettier-ignore\n columnHtml = `\n <div class=\"${colClasses}\">\n <div class=\"picker-items\">${columnItemsHtml}</div>\n </div>\n `;\n }\n\n return onlyItems ? columnItemsHtml.trim() : columnHtml.trim();\n }\n\n renderInline() {\n const picker = this;\n const { rotateEffect, cssClass, toolbar } = picker.params;\n const inlineHtml = (\n <div class={`picker picker-inline ${rotateEffect ? 'picker-3d' : ''} ${cssClass || ''}`}>\n {toolbar && picker.renderToolbar()}\n <div class=\"picker-columns\">\n {picker.cols.map((col) => picker.renderColumn(col))}\n <div class=\"picker-center-highlight\"></div>\n </div>\n </div>\n );\n\n return inlineHtml;\n }\n\n renderSheet() {\n const picker = this;\n const { rotateEffect, cssClass, toolbar } = picker.params;\n const sheetHtml = (\n <div\n class={`sheet-modal picker picker-sheet ${rotateEffect ? 'picker-3d' : ''} ${\n cssClass || ''\n }`}\n >\n {toolbar && picker.renderToolbar()}\n <div class=\"sheet-modal-inner picker-columns\">\n {picker.cols.map((col) => picker.renderColumn(col))}\n <div class=\"picker-center-highlight\"></div>\n </div>\n </div>\n );\n\n return sheetHtml;\n }\n\n renderPopover() {\n const picker = this;\n const { rotateEffect, cssClass, toolbar } = picker.params;\n const popoverHtml = (\n <div class=\"popover picker-popover\">\n <div class=\"popover-inner\">\n <div class={`picker ${rotateEffect ? 'picker-3d' : ''} ${cssClass || ''}`}>\n {toolbar && picker.renderToolbar()}\n <div class=\"picker-columns\">\n {picker.cols.map((col) => picker.renderColumn(col))}\n <div class=\"picker-center-highlight\"></div>\n </div>\n </div>\n </div>\n </div>\n );\n\n return popoverHtml;\n }\n\n render() {\n const picker = this;\n if (picker.params.render) return picker.params.render.call(picker);\n if (!picker.inline) {\n if (picker.isPopover()) return picker.renderPopover();\n return picker.renderSheet();\n }\n return picker.renderInline();\n }\n\n onOpen() {\n const picker = this;\n const { initialized, $el, app, $inputEl, inline, value, params } = picker;\n picker.opened = true;\n picker.closing = false;\n picker.opening = true;\n\n // Init main events\n picker.attachResizeEvent();\n\n // Init cols\n $el.find('.picker-column').each((colEl) => {\n let updateItems = true;\n if ((!initialized && params.value) || (initialized && value)) {\n updateItems = false;\n }\n picker.initColumn(colEl, updateItems);\n });\n\n // Set value\n if (!initialized) {\n if (value) picker.setValue(value);\n else if (params.value) {\n picker.setValue(params.value);\n }\n } else if (value) {\n picker.setValue(value);\n }\n\n // Extra focus\n if (!inline && $inputEl && $inputEl.length && app.theme === 'md') {\n $inputEl.trigger('focus');\n }\n\n picker.initialized = true;\n\n // Trigger events\n if ($el) {\n $el.trigger('picker:open');\n }\n if ($inputEl) {\n $inputEl.trigger('picker:open');\n }\n picker.emit('local::open pickerOpen', picker);\n }\n\n onOpened() {\n const picker = this;\n picker.opening = false;\n\n if (picker.$el) {\n picker.$el.trigger('picker:opened');\n }\n if (picker.$inputEl) {\n picker.$inputEl.trigger('picker:opened');\n }\n picker.emit('local::opened pickerOpened', picker);\n }\n\n onClose() {\n const picker = this;\n const app = picker.app;\n picker.opening = false;\n picker.closing = true;\n\n // Detach events\n picker.detachResizeEvent();\n\n picker.cols.forEach((col) => {\n if (col.destroy) col.destroy();\n });\n\n if (picker.$inputEl) {\n if (app.theme === 'md') {\n picker.$inputEl.trigger('blur');\n } else {\n const validate = picker.$inputEl.attr('validate');\n const required = picker.$inputEl.attr('required');\n if (validate && required) {\n app.input.validate(picker.$inputEl);\n }\n }\n }\n\n if (picker.$el) {\n picker.$el.trigger('picker:close');\n }\n if (picker.$inputEl) {\n picker.$inputEl.trigger('picker:close');\n }\n picker.emit('local::close pickerClose', picker);\n }\n\n onClosed() {\n const picker = this;\n picker.opened = false;\n picker.closing = false;\n\n if (!picker.inline) {\n nextTick(() => {\n if (picker.modal && picker.modal.el && picker.modal.destroy) {\n if (!picker.params.routableModals) {\n picker.modal.destroy();\n }\n }\n delete picker.modal;\n });\n }\n\n if (picker.$el) {\n picker.$el.trigger('picker:closed');\n }\n if (picker.$inputEl) {\n picker.$inputEl.trigger('picker:closed');\n }\n picker.emit('local::closed pickerClosed', picker);\n }\n\n open() {\n const picker = this;\n const { app, opened, inline, $inputEl, $scrollToEl, params } = picker;\n if (opened) return;\n if (picker.cols.length === 0 && params.cols.length) {\n params.cols.forEach((col) => {\n picker.cols.push(col);\n });\n }\n if (inline) {\n picker.$el = $(picker.render());\n picker.$el[0].f7Picker = picker;\n picker.$containerEl.append(picker.$el);\n picker.onOpen();\n picker.onOpened();\n return;\n }\n const isPopover = picker.isPopover();\n const modalType = isPopover ? 'popover' : 'sheet';\n const modalParams = {\n targetEl: $inputEl,\n scrollToEl: $scrollToEl,\n content: picker.render(),\n backdrop: typeof params.backdrop !== 'undefined' ? params.backdrop : isPopover,\n on: {\n open() {\n const modal = this;\n picker.modal = modal;\n picker.$el = isPopover ? modal.$el.find('.picker') : modal.$el;\n picker.$el[0].f7Picker = picker;\n picker.onOpen();\n },\n opened() {\n picker.onOpened();\n },\n close() {\n picker.onClose();\n },\n closed() {\n picker.onClosed();\n },\n },\n };\n if (modalType === 'sheet') {\n modalParams.push = params.sheetPush;\n modalParams.swipeToClose = params.sheetSwipeToClose;\n }\n if (params.routableModals && picker.view) {\n picker.view.router.navigate({\n url: picker.url,\n route: {\n path: picker.url,\n [modalType]: modalParams,\n },\n });\n } else {\n picker.modal = app[modalType].create(modalParams);\n picker.modal.open();\n }\n }\n\n close() {\n const picker = this;\n const { opened, inline } = picker;\n if (!opened) return;\n if (inline) {\n picker.onClose();\n picker.onClosed();\n return;\n }\n if (picker.params.routableModals && picker.view) {\n picker.view.router.back();\n } else {\n picker.modal.close();\n }\n }\n\n init() {\n const picker = this;\n\n picker.initInput();\n\n if (picker.inline) {\n picker.open();\n picker.emit('local::init pickerInit', picker);\n return;\n }\n\n if (!picker.initialized && picker.params.value) {\n picker.setValue(picker.params.value);\n }\n\n // Attach input Events\n if (picker.$inputEl) {\n picker.attachInputEvents();\n }\n if (picker.params.closeByOutsideClick) {\n picker.attachHtmlEvents();\n }\n picker.emit('local::init pickerInit', picker);\n }\n\n destroy() {\n const picker = this;\n if (picker.destroyed) return;\n const { $el } = picker;\n picker.emit('local::beforeDestroy pickerBeforeDestroy', picker);\n if ($el) $el.trigger('picker:beforedestroy');\n\n picker.close();\n\n // Detach Events\n if (picker.$inputEl) {\n picker.detachInputEvents();\n }\n if (picker.params.closeByOutsideClick) {\n picker.detachHtmlEvents();\n }\n\n if ($el && $el.length) delete picker.$el[0].f7Picker;\n deleteProps(picker);\n picker.destroyed = true;\n }\n}\n\nexport default Picker;\n","import $ from '../../shared/dom7.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\nimport Picker from './picker-class.js';\n\nexport default {\n name: 'picker',\n static: {\n Picker,\n },\n create() {\n const app = this;\n app.picker = ConstructorMethods({\n defaultSelector: '.picker',\n constructor: Picker,\n app,\n domProp: 'f7Picker',\n });\n app.picker.close = function close(el = '.picker') {\n const $el = $(el);\n if ($el.length === 0) return;\n const picker = $el[0].f7Picker;\n if (!picker || (picker && !picker.opened)) return;\n picker.close();\n };\n },\n params: {\n picker: {\n // Picker settings\n rotateEffect: false,\n freeMode: false,\n cols: [],\n // Common opener settings\n containerEl: null,\n openIn: 'auto', // or 'popover' or 'sheet'\n sheetPush: false,\n sheetSwipeToClose: undefined,\n backdrop: undefined, // uses Popover or Sheet defaults\n formatValue: null,\n inputEl: null,\n inputReadOnly: true,\n closeByOutsideClick: true,\n scrollToInput: true,\n scrollToEl: undefined,\n toolbar: true,\n toolbarCloseText: 'Done',\n cssClass: null,\n routableModals: false,\n view: null,\n url: 'select/',\n // Render functions\n renderToolbar: null,\n render: null,\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { bindMethods } from '../../shared/utils.js';\n\nconst InfiniteScroll = {\n handle(el, e) {\n const app = this;\n const $el = $(el);\n const scrollTop = $el[0].scrollTop;\n const scrollHeight = $el[0].scrollHeight;\n const height = $el[0].offsetHeight;\n let distance = $el[0].getAttribute('data-infinite-distance');\n\n const virtualListContainer = $el.find('.virtual-list');\n let virtualList;\n\n const onTop = $el.hasClass('infinite-scroll-top');\n if (!distance) distance = 50;\n if (typeof distance === 'string' && distance.indexOf('%') >= 0) {\n distance = (parseInt(distance, 10) / 100) * height;\n }\n if (distance > height) distance = height;\n if (onTop) {\n if (scrollTop < distance) {\n $el.trigger('infinite', e);\n app.emit('infinite', $el[0], e);\n }\n } else if (scrollTop + height >= scrollHeight - distance) {\n if (virtualListContainer.length > 0) {\n virtualList = virtualListContainer.eq(-1)[0].f7VirtualList;\n if (virtualList && !virtualList.reachEnd && !virtualList.params.updatableScroll) {\n return;\n }\n }\n $el.trigger('infinite', e);\n app.emit('infinite', $el[0], e);\n }\n },\n create(el) {\n const $el = $(el);\n const app = this;\n function scrollHandler(e) {\n app.infiniteScroll.handle(this, e);\n }\n $el.each((element) => {\n element.f7InfiniteScrollHandler = scrollHandler;\n element.addEventListener('scroll', element.f7InfiniteScrollHandler);\n });\n },\n destroy(el) {\n const $el = $(el);\n $el.each((element) => {\n element.removeEventListener('scroll', element.f7InfiniteScrollHandler);\n delete element.f7InfiniteScrollHandler;\n });\n },\n};\nexport default {\n name: 'infiniteScroll',\n create() {\n const app = this;\n bindMethods(app, {\n infiniteScroll: InfiniteScroll,\n });\n },\n on: {\n tabMounted(tabEl) {\n const app = this;\n const $tabEl = $(tabEl);\n const $isEls = $tabEl.find('.infinite-scroll-content');\n if ($tabEl.is('.infinite-scroll-content')) $isEls.add($tabEl);\n $isEls.each((el) => {\n app.infiniteScroll.create(el);\n });\n },\n tabBeforeRemove(tabEl) {\n const $tabEl = $(tabEl);\n const app = this;\n const $isEls = $tabEl.find('.infinite-scroll-content');\n if ($tabEl.is('.infinite-scroll-content')) $isEls.add($tabEl);\n $isEls.each((el) => {\n app.infiniteScroll.destroy(el);\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.infinite-scroll-content').each((el) => {\n app.infiniteScroll.create(el);\n });\n },\n pageBeforeRemove(page) {\n const app = this;\n page.$el.find('.infinite-scroll-content').each((el) => {\n app.infiniteScroll.destroy(el);\n });\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport { getDevice } from '../../shared/get-device.js';\n\nclass PullToRefresh extends Framework7Class {\n constructor(app, el) {\n super({}, [app]);\n const ptr = this;\n const device = getDevice();\n const support = getSupport();\n const $el = $(el);\n const $preloaderEl = $el.find('.ptr-preloader');\n\n ptr.$el = $el;\n ptr.el = $el[0];\n ptr.app = app;\n\n ptr.bottom = ptr.$el.hasClass('ptr-bottom');\n\n // Extend defaults with modules params\n ptr.useModulesParams({});\n\n const isMaterial = app.theme === 'md';\n const isIos = app.theme === 'ios';\n\n // Done\n ptr.done = function done() {\n const $transitionTarget = isMaterial ? $preloaderEl : $el;\n const onTranstionEnd = (e) => {\n if ($(e.target).closest($preloaderEl).length) return;\n $el.removeClass('ptr-transitioning ptr-pull-up ptr-pull-down ptr-closing');\n $el.trigger('ptr:done');\n ptr.emit('local::done ptrDone', $el[0]);\n $transitionTarget.off('transitionend', onTranstionEnd);\n };\n $transitionTarget.on('transitionend', onTranstionEnd);\n $el.removeClass('ptr-refreshing').addClass('ptr-transitioning ptr-closing');\n return ptr;\n };\n\n ptr.refresh = function refresh() {\n if ($el.hasClass('ptr-refreshing')) return ptr;\n $el.addClass('ptr-transitioning ptr-refreshing');\n $el.trigger('ptr:refresh', ptr.done);\n ptr.emit('local::refresh ptrRefresh', $el[0], ptr.done);\n return ptr;\n };\n\n // Mousewheel\n ptr.mousewheel = $el.attr('data-ptr-mousewheel') === 'true';\n\n // Events handling\n let touchId;\n let isTouched;\n let isMoved;\n const touchesStart = {};\n let isScrolling;\n let touchesDiff;\n let refresh = false;\n let useTranslate = false;\n let forceUseTranslate = false;\n let startTranslate = 0;\n let translate;\n let scrollTop;\n let wasScrolled;\n let triggerDistance;\n let dynamicTriggerDistance;\n let pullStarted;\n let hasNavbar = false;\n let scrollHeight;\n let offsetHeight;\n let maxScrollTop;\n const $pageEl = $el.parents('.page');\n\n if (\n $pageEl.find('.navbar').length > 0 ||\n $pageEl.parents('.view').children('.navbars').length > 0\n )\n hasNavbar = true;\n if ($pageEl.hasClass('no-navbar')) hasNavbar = false;\n if (!ptr.bottom) {\n const pageNavbarEl = app.navbar.getElByPage($pageEl[0]);\n if (pageNavbarEl) {\n const $pageNavbarEl = $(pageNavbarEl);\n const isLargeTransparent =\n $pageNavbarEl.hasClass('navbar-large-transparent') ||\n ($pageNavbarEl.hasClass('navbar-large') && $pageNavbarEl.hasClass('navbar-transparent'));\n const isTransparent =\n $pageNavbarEl.hasClass('navbar-transparent') && !$pageNavbarEl.hasClass('navbar-large');\n if (isLargeTransparent) {\n $el.addClass('ptr-with-navbar-large-transparent');\n } else if (isTransparent) {\n $el.addClass('ptr-with-navbar-transparent');\n }\n }\n }\n if (!hasNavbar && !ptr.bottom) $el.addClass('ptr-no-navbar');\n\n // Define trigger distance\n if ($el.attr('data-ptr-distance')) {\n dynamicTriggerDistance = true;\n } else if (isMaterial) {\n triggerDistance = 66;\n } else if (isIos) {\n triggerDistance = 44;\n }\n\n function setPreloaderProgress(progress = 0) {\n const $bars = $preloaderEl.find('.preloader-inner-line');\n const perBarProgress = 1 / $bars.length;\n\n $bars.forEach((barEl, barIndex) => {\n const barProgress = (progress - barIndex * perBarProgress) / perBarProgress;\n barEl.style.opacity = Math.max(Math.min(barProgress, 1), 0) * 0.27;\n });\n }\n\n function unsetPreloaderProgress() {\n $preloaderEl.find('.preloader-inner-line').css('opacity', '');\n }\n\n function handleTouchStart(e) {\n if (!e.isTrusted) return;\n if (isTouched) {\n if (device.os === 'android') {\n if ('targetTouches' in e && e.targetTouches.length > 1) return;\n } else return;\n }\n\n if ($el.hasClass('ptr-refreshing')) {\n return;\n }\n if (\n $(e.target).closest('.sortable-handler, .ptr-ignore, .card-expandable.card-opened').length\n )\n return;\n\n isMoved = false;\n pullStarted = false;\n isTouched = true;\n isScrolling = undefined;\n wasScrolled = undefined;\n if (e.type === 'touchstart') touchId = e.targetTouches[0].identifier;\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 }\n\n function handleTouchMove(e) {\n if (!isTouched || !e.isTrusted) return;\n let pageX;\n let pageY;\n let touch;\n if (e.type === 'touchmove') {\n if (touchId && e.touches) {\n for (let i = 0; i < e.touches.length; i += 1) {\n if (e.touches[i].identifier === touchId) {\n touch = e.touches[i];\n }\n }\n }\n if (!touch) touch = e.targetTouches[0];\n pageX = touch.pageX;\n pageY = touch.pageY;\n } else {\n pageX = e.pageX;\n pageY = e.pageY;\n }\n if (!pageX || !pageY) return;\n\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(\n isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)\n );\n }\n if (!isScrolling) {\n isTouched = false;\n return;\n }\n\n scrollTop = $el[0].scrollTop;\n\n if (!isMoved) {\n $el.removeClass('ptr-transitioning');\n if (isIos) {\n setPreloaderProgress(0);\n }\n let targetIsScrollable;\n scrollHeight = $el[0].scrollHeight;\n offsetHeight = $el[0].offsetHeight;\n if (ptr.bottom) {\n maxScrollTop = scrollHeight - offsetHeight;\n }\n if (scrollTop > scrollHeight) {\n isTouched = false;\n return;\n }\n const $ptrWatchScrollable = $(e.target).closest('.ptr-watch-scroll');\n if ($ptrWatchScrollable.length) {\n $ptrWatchScrollable.each((ptrScrollableEl) => {\n if (ptrScrollableEl === el) return;\n if (\n ptrScrollableEl.scrollHeight > ptrScrollableEl.offsetHeight &&\n $(ptrScrollableEl).css('overflow') === 'auto' &&\n ((!ptr.bottom && ptrScrollableEl.scrollTop > 0) ||\n (ptr.bottom &&\n ptrScrollableEl.scrollTop <\n ptrScrollableEl.scrollHeight - ptrScrollableEl.offsetHeight))\n ) {\n targetIsScrollable = true;\n }\n });\n }\n if (targetIsScrollable) {\n isTouched = false;\n return;\n }\n if (dynamicTriggerDistance) {\n triggerDistance = $el.attr('data-ptr-distance');\n if (triggerDistance.indexOf('%') >= 0)\n triggerDistance = (scrollHeight * parseInt(triggerDistance, 10)) / 100;\n }\n startTranslate = $el.hasClass('ptr-refreshing') ? triggerDistance : 0;\n if (scrollHeight === offsetHeight || device.os !== 'ios' || isMaterial) {\n useTranslate = true;\n } else {\n useTranslate = false;\n }\n forceUseTranslate = false;\n }\n isMoved = true;\n touchesDiff = pageY - touchesStart.y;\n\n if (\n typeof wasScrolled === 'undefined' &&\n (ptr.bottom ? scrollTop !== maxScrollTop : scrollTop !== 0)\n )\n wasScrolled = true;\n\n const ptrStarted = ptr.bottom\n ? (touchesDiff < 0 && scrollTop >= maxScrollTop) || scrollTop > maxScrollTop\n : (touchesDiff > 0 && scrollTop <= 0) || scrollTop < 0;\n\n if (ptrStarted) {\n // iOS 8 fix\n if (device.os === 'ios' && parseInt(device.osVersion.split('.')[0], 10) > 7) {\n if (!ptr.bottom && scrollTop === 0 && !wasScrolled) useTranslate = true;\n if (ptr.bottom && scrollTop === maxScrollTop && !wasScrolled) useTranslate = true;\n }\n\n if (!useTranslate && ptr.bottom && !isMaterial) {\n $el.css('-webkit-overflow-scrolling', 'auto');\n $el.scrollTop(maxScrollTop);\n forceUseTranslate = true;\n }\n\n if (useTranslate || forceUseTranslate) {\n if (e.cancelable) {\n e.preventDefault();\n }\n translate =\n (ptr.bottom ? -1 * Math.abs(touchesDiff) ** 0.85 : touchesDiff ** 0.85) +\n startTranslate;\n if (isMaterial) {\n $preloaderEl\n .transform(`translate3d(0,${translate}px,0)`)\n .find('.ptr-arrow')\n .transform(`rotate(${180 * (Math.abs(touchesDiff) / 66) + 100}deg)`);\n } else {\n // eslint-disable-next-line\n if (ptr.bottom || isIos) {\n $el.children().transform(`translate3d(0,${translate}px,0)`);\n } else {\n // eslint-disable-next-line\n $el.transform(`translate3d(0,${translate}px,0)`);\n }\n if (isIos) {\n $preloaderEl.transform(`translate3d(0,0px,0)`);\n }\n }\n } else if (isIos && !ptr.bottom) {\n $preloaderEl.transform(`translate3d(0,${scrollTop}px,0)`);\n }\n\n let progress;\n if (isIos && !refresh) {\n progress =\n useTranslate || forceUseTranslate\n ? Math.abs(touchesDiff) ** 0.85 / triggerDistance\n : Math.abs(touchesDiff) / (triggerDistance * 2);\n setPreloaderProgress(progress);\n }\n\n if (\n ((useTranslate || forceUseTranslate) &&\n Math.abs(touchesDiff) ** 0.85 > triggerDistance) ||\n (!useTranslate && Math.abs(touchesDiff) >= triggerDistance * 2)\n ) {\n refresh = true;\n $el.addClass('ptr-pull-up').removeClass('ptr-pull-down');\n unsetPreloaderProgress();\n } else {\n refresh = false;\n $el.removeClass('ptr-pull-up').addClass('ptr-pull-down');\n }\n if (!pullStarted) {\n $el.trigger('ptr:pullstart');\n ptr.emit('local::pullStart ptrPullStart', $el[0]);\n pullStarted = true;\n }\n $el.trigger('ptr:pullmove', {\n event: e,\n scrollTop,\n translate,\n touchesDiff,\n });\n ptr.emit('local::pullMove ptrPullMove', $el[0], {\n event: e,\n scrollTop,\n translate,\n touchesDiff,\n });\n } else {\n pullStarted = false;\n $el.removeClass('ptr-pull-up ptr-pull-down');\n refresh = false;\n }\n }\n function handleTouchEnd(e) {\n if (!e.isTrusted) return;\n\n if (e.type === 'touchend' && e.changedTouches && e.changedTouches.length > 0 && touchId) {\n if (e.changedTouches[0].identifier !== touchId) {\n isTouched = false;\n isScrolling = false;\n isMoved = false;\n touchId = null;\n return;\n }\n }\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n if (translate) {\n $el.addClass('ptr-transitioning');\n translate = 0;\n }\n if (isMaterial) {\n $preloaderEl.transform('').find('.ptr-arrow').transform('');\n } else {\n $preloaderEl.transform('');\n if (ptr.bottom || isIos) {\n $el.children().transform('');\n } else {\n $el.transform('');\n }\n }\n\n if (!useTranslate && ptr.bottom && !isMaterial) {\n $el.css('-webkit-overflow-scrolling', '');\n }\n\n if (refresh) {\n $el.addClass('ptr-refreshing');\n $el.trigger('ptr:refresh', ptr.done);\n ptr.emit('local::refresh ptrRefresh', $el[0], ptr.done);\n } else {\n $el.removeClass('ptr-pull-down');\n }\n isTouched = false;\n isMoved = false;\n if (pullStarted) {\n $el.trigger('ptr:pullend');\n ptr.emit('local::pullEnd ptrPullEnd', $el[0]);\n }\n }\n\n let mousewheelTimeout;\n let mousewheelMoved;\n let mousewheelAllow = true;\n let mousewheelTranslate = 0;\n\n function handleMouseWheelRelease() {\n mousewheelAllow = true;\n mousewheelMoved = false;\n mousewheelTranslate = 0;\n if (translate) {\n $el.addClass('ptr-transitioning');\n translate = 0;\n }\n if (isMaterial) {\n $preloaderEl.transform('').find('.ptr-arrow').transform('');\n } else {\n $preloaderEl.transform('');\n if (ptr.bottom) {\n $el.children().transform('');\n } else {\n $el.transform('');\n }\n }\n\n if (refresh) {\n $el.addClass('ptr-refreshing');\n $el.trigger('ptr:refresh', ptr.done);\n ptr.emit('local::refresh ptrRefresh', $el[0], ptr.done);\n } else {\n $el.removeClass('ptr-pull-down');\n }\n if (pullStarted) {\n $el.trigger('ptr:pullend');\n ptr.emit('local::pullEnd ptrPullEnd', $el[0]);\n }\n }\n function handleMouseWheel(e) {\n if (!mousewheelAllow) return;\n const { deltaX, deltaY } = e;\n if (Math.abs(deltaX) > Math.abs(deltaY)) return;\n if ($el.hasClass('ptr-refreshing')) {\n return;\n }\n if (\n $(e.target).closest('.sortable-handler, .ptr-ignore, .card-expandable.card-opened').length\n )\n return;\n\n clearTimeout(mousewheelTimeout);\n\n scrollTop = $el[0].scrollTop;\n\n if (!mousewheelMoved) {\n $el.removeClass('ptr-transitioning');\n if (isIos) {\n setPreloaderProgress(0);\n }\n let targetIsScrollable;\n scrollHeight = $el[0].scrollHeight;\n offsetHeight = $el[0].offsetHeight;\n if (ptr.bottom) {\n maxScrollTop = scrollHeight - offsetHeight;\n }\n if (scrollTop > scrollHeight) {\n mousewheelAllow = false;\n return;\n }\n const $ptrWatchScrollable = $(e.target).closest('.ptr-watch-scroll');\n if ($ptrWatchScrollable.length) {\n $ptrWatchScrollable.each((ptrScrollableEl) => {\n if (ptrScrollableEl === el) return;\n if (\n ptrScrollableEl.scrollHeight > ptrScrollableEl.offsetHeight &&\n $(ptrScrollableEl).css('overflow') === 'auto' &&\n ((!ptr.bottom && ptrScrollableEl.scrollTop > 0) ||\n (ptr.bottom &&\n ptrScrollableEl.scrollTop <\n ptrScrollableEl.scrollHeight - ptrScrollableEl.offsetHeight))\n ) {\n targetIsScrollable = true;\n }\n });\n }\n if (targetIsScrollable) {\n mousewheelAllow = false;\n return;\n }\n if (dynamicTriggerDistance) {\n triggerDistance = $el.attr('data-ptr-distance');\n if (triggerDistance.indexOf('%') >= 0)\n triggerDistance = (scrollHeight * parseInt(triggerDistance, 10)) / 100;\n }\n }\n isMoved = true;\n mousewheelTranslate -= deltaY;\n touchesDiff = mousewheelTranslate; // pageY - touchesStart.y;\n\n if (\n typeof wasScrolled === 'undefined' &&\n (ptr.bottom ? scrollTop !== maxScrollTop : scrollTop !== 0)\n )\n wasScrolled = true;\n\n const ptrStarted = ptr.bottom\n ? (touchesDiff < 0 && scrollTop >= maxScrollTop) || scrollTop > maxScrollTop\n : (touchesDiff > 0 && scrollTop <= 0) || scrollTop < 0;\n\n if (ptrStarted) {\n if (e.cancelable) {\n e.preventDefault();\n }\n\n translate = touchesDiff;\n if (Math.abs(translate) > triggerDistance) {\n translate = triggerDistance + (Math.abs(translate) - triggerDistance) ** 0.7;\n if (ptr.bottom) translate = -translate;\n }\n\n if (isMaterial) {\n $preloaderEl\n .transform(`translate3d(0,${translate}px,0)`)\n .find('.ptr-arrow')\n .transform(`rotate(${180 * (Math.abs(touchesDiff) / 66) + 100}deg)`);\n } else {\n // eslint-disable-next-line\n if (ptr.bottom) {\n $el.children().transform(`translate3d(0,${translate}px,0)`);\n } else {\n $el.transform(`translate3d(0,${translate}px,0)`);\n if (isIos) {\n $preloaderEl.transform(`translate3d(0,${-translate}px,0)`);\n }\n }\n }\n\n let progress;\n if (isIos && !refresh) {\n progress = Math.abs(translate) / triggerDistance;\n setPreloaderProgress(progress);\n }\n\n if (Math.abs(translate) > triggerDistance) {\n refresh = true;\n $el.addClass('ptr-pull-up').removeClass('ptr-pull-down');\n unsetPreloaderProgress();\n } else {\n refresh = false;\n $el.removeClass('ptr-pull-up').addClass('ptr-pull-down');\n }\n if (!pullStarted) {\n $el.trigger('ptr:pullstart');\n ptr.emit('local::pullStart ptrPullStart', $el[0]);\n pullStarted = true;\n }\n $el.trigger('ptr:pullmove', {\n event: e,\n scrollTop,\n translate,\n touchesDiff,\n });\n ptr.emit('local::pullMove ptrPullMove', $el[0], {\n event: e,\n scrollTop,\n translate,\n touchesDiff,\n });\n } else {\n pullStarted = false;\n $el.removeClass('ptr-pull-up ptr-pull-down');\n refresh = false;\n }\n\n mousewheelTimeout = setTimeout(handleMouseWheelRelease, 300);\n }\n\n if (!$pageEl.length || !$el.length) return ptr;\n\n $el[0].f7PullToRefresh = ptr;\n\n // Events\n ptr.attachEvents = function attachEvents() {\n const passive = support.passiveListener ? { passive: true } : false;\n $el.on(app.touchEvents.start, handleTouchStart, passive);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n if (ptr.mousewheel && !ptr.bottom) {\n $el.on('wheel', handleMouseWheel);\n }\n };\n ptr.detachEvents = function detachEvents() {\n const passive = support.passiveListener ? { passive: true } : false;\n $el.off(app.touchEvents.start, handleTouchStart, passive);\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n if (ptr.mousewheel && !ptr.bottom) {\n $el.off('wheel', handleMouseWheel);\n }\n };\n\n // Install Modules\n ptr.useModules();\n\n // Init\n ptr.init();\n\n return ptr;\n }\n\n init() {\n const ptr = this;\n ptr.attachEvents();\n }\n\n destroy() {\n let ptr = this;\n ptr.emit('local::beforeDestroy ptrBeforeDestroy', ptr);\n ptr.$el.trigger('ptr:beforedestroy');\n delete ptr.el.f7PullToRefresh;\n ptr.detachEvents();\n deleteProps(ptr);\n ptr = null;\n }\n}\n\nexport default PullToRefresh;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport PullToRefresh from './pull-to-refresh-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'pullToRefresh',\n create() {\n const app = this;\n app.ptr = extend(\n ConstructorMethods({\n defaultSelector: '.ptr-content',\n constructor: PullToRefresh,\n app,\n domProp: 'f7PullToRefresh',\n }),\n {\n done(el) {\n const ptr = app.ptr.get(el);\n if (ptr) return ptr.done();\n return undefined;\n },\n refresh(el) {\n const ptr = app.ptr.get(el);\n if (ptr) return ptr.refresh();\n return undefined;\n },\n },\n );\n },\n static: {\n PullToRefresh,\n },\n on: {\n tabMounted(tabEl) {\n const app = this;\n const $tabEl = $(tabEl);\n const $ptrEls = $tabEl.find('.ptr-content');\n if ($tabEl.is('.ptr-content')) $ptrEls.add($tabEl);\n $ptrEls.each((el) => {\n app.ptr.create(el);\n });\n },\n tabBeforeRemove(tabEl) {\n const $tabEl = $(tabEl);\n const app = this;\n const $ptrEls = $tabEl.find('.ptr-content');\n if ($tabEl.is('.ptr-content')) $ptrEls.add($tabEl);\n $ptrEls.each((el) => {\n app.ptr.destroy(el);\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.ptr-content').each((el) => {\n app.ptr.create(el);\n });\n },\n pageBeforeRemove(page) {\n const app = this;\n page.$el.find('.ptr-content').each((el) => {\n app.ptr.destroy(el);\n });\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\n\nclass DataTable extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n\n const table = this;\n\n const defaults = {};\n\n // Extend defaults with modules params\n table.useModulesParams(defaults);\n\n table.params = extend(defaults, params);\n\n // El\n const $el = $(table.params.el);\n if ($el.length === 0) return undefined;\n\n table.$el = $el;\n table.el = $el[0];\n\n if (table.$el[0].f7DataTable) {\n const instance = table.$el[0].f7DataTable;\n table.destroy();\n return instance;\n }\n\n table.$el[0].f7DataTable = table;\n\n extend(table, {\n collapsible: $el.hasClass('data-table-collapsible'),\n // Headers\n $headerEl: $el.find('.data-table-header'),\n $headerSelectedEl: $el.find('.data-table-header-selected'),\n });\n\n // Events\n function handleChange(e) {\n if (e.detail && e.detail.sentByF7DataTable) {\n // Scripted event, don't do anything\n return;\n }\n const $inputEl = $(this);\n const checked = $inputEl[0].checked;\n const columnIndex = $inputEl.parents('td,th').index();\n\n if ($inputEl.parents('thead').length > 0) {\n if (columnIndex === 0) {\n $el.find('tbody tr')[checked ? 'addClass' : 'removeClass']('data-table-row-selected');\n }\n $el\n .find(`tbody tr td:nth-child(${columnIndex + 1}) input`)\n .prop('checked', checked)\n .trigger('change', { sentByF7DataTable: true });\n $inputEl.prop('indeterminate', false);\n } else {\n if (columnIndex === 0) {\n $inputEl.parents('tr')[checked ? 'addClass' : 'removeClass']('data-table-row-selected');\n }\n const checkedRows = $el.find(\n `tbody .checkbox-cell:nth-child(${columnIndex + 1}) input[type=\"checkbox\"]:checked`,\n ).length;\n const totalRows = $el.find('tbody tr').length;\n const $headCheckboxEl = $el.find(\n `thead .checkbox-cell:nth-child(${columnIndex + 1}) input[type=\"checkbox\"]`,\n );\n if (!checked) {\n $headCheckboxEl.prop('checked', false);\n } else if (checkedRows === totalRows) {\n $headCheckboxEl.prop('checked', true).trigger('change', { sentByF7DataTable: true });\n }\n $headCheckboxEl.prop('indeterminate', checkedRows > 0 && checkedRows < totalRows);\n }\n table.checkSelectedHeader();\n }\n function handleSortableClick() {\n const $cellEl = $(this);\n const isActive = $cellEl.hasClass('sortable-cell-active');\n const currentSort = $cellEl.hasClass('sortable-desc') ? 'desc' : 'asc';\n let newSort;\n if (isActive) {\n newSort = currentSort === 'desc' ? 'asc' : 'desc';\n $cellEl.removeClass('sortable-desc sortable-asc').addClass(`sortable-${newSort}`);\n } else {\n $el.find('thead .sortable-cell-active').removeClass('sortable-cell-active');\n $cellEl.addClass('sortable-cell-active');\n newSort = currentSort;\n }\n $cellEl.trigger('datatable:sort', newSort);\n table.emit('local::sort dataTableSort', table, newSort);\n }\n table.attachEvents = function attachEvents() {\n table.$el.on('change', '.checkbox-cell input[type=\"checkbox\"]', handleChange);\n table.$el.find('thead .sortable-cell').on('click', handleSortableClick);\n };\n table.detachEvents = function detachEvents() {\n table.$el.off('change', '.checkbox-cell input[type=\"checkbox\"]', handleChange);\n table.$el.find('thead .sortable-cell').off('click', handleSortableClick);\n };\n\n // Install Modules\n table.useModules();\n\n // Init\n table.init();\n\n return table;\n }\n\n setCollapsibleLabels() {\n const table = this;\n if (!table.collapsible) return;\n table.$el.find('tbody td:not(.checkbox-cell)').each((el) => {\n const $el = $(el);\n const elIndex = $el.index();\n const collapsibleTitle = $el.attr('data-collapsible-title');\n if (!collapsibleTitle && collapsibleTitle !== '') {\n $el.attr('data-collapsible-title', table.$el.find('thead th').eq(elIndex).text());\n }\n });\n }\n\n checkSelectedHeader() {\n const table = this;\n if (table.$headerEl.length > 0 && table.$headerSelectedEl.length > 0) {\n const checkedItems = table.$el.find('tbody .checkbox-cell input:checked').length;\n table.$el[checkedItems > 0 ? 'addClass' : 'removeClass']('data-table-has-checked');\n table.$headerSelectedEl.find('.data-table-selected-count').text(checkedItems);\n }\n }\n\n init() {\n const table = this;\n table.attachEvents();\n table.setCollapsibleLabels();\n table.checkSelectedHeader();\n }\n\n destroy() {\n let table = this;\n\n table.$el.trigger('datatable:beforedestroy');\n table.emit('local::beforeDestroy dataTableBeforeDestroy', table);\n\n table.detachEvents();\n\n if (table.$el[0]) {\n table.$el[0].f7DataTable = null;\n delete table.$el[0].f7DataTable;\n }\n deleteProps(table);\n table = null;\n }\n}\n\nexport default DataTable;\n","import $ from '../../shared/dom7.js';\nimport DataTable from './data-table-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'dataTable',\n static: {\n DataTable,\n },\n create() {\n const app = this;\n app.dataTable = ConstructorMethods({\n defaultSelector: '.data-table',\n constructor: DataTable,\n app,\n domProp: 'f7DataTable',\n });\n },\n on: {\n tabBeforeRemove(tabEl) {\n const app = this;\n $(tabEl)\n .find('.data-table-init')\n .each((tableEl) => {\n app.dataTable.destroy(tableEl);\n });\n },\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('.data-table-init')\n .each((tableEl) => {\n app.dataTable.create({ el: tableEl });\n });\n },\n pageBeforeRemove(page) {\n const app = this;\n page.$el.find('.data-table-init').each((tableEl) => {\n app.dataTable.destroy(tableEl);\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.data-table-init').each((tableEl) => {\n app.dataTable.create({ el: tableEl });\n });\n },\n },\n vnode: {\n 'data-table-init': {\n insert(vnode) {\n const app = this;\n const tableEl = vnode.elm;\n app.dataTable.create({ el: tableEl });\n },\n destroy(vnode) {\n const app = this;\n const tableEl = vnode.elm;\n app.dataTable.destroy(tableEl);\n },\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { bindMethods, getTranslate, nextFrame } from '../../shared/utils.js';\n\nconst Fab = {\n morphOpen(fabEl, targetEl) {\n const app = this;\n const $fabEl = $(fabEl);\n const $targetEl = $(targetEl);\n if ($targetEl.length === 0) return;\n\n $targetEl.transition(0).addClass('fab-morph-target-visible');\n const target = {\n width: $targetEl[0].offsetWidth,\n height: $targetEl[0].offsetHeight,\n offset: $targetEl.offset(),\n borderRadius: $targetEl.css('border-radius'),\n zIndex: $targetEl.css('z-index'),\n };\n const fab = {\n width: $fabEl[0].offsetWidth,\n height: $fabEl[0].offsetHeight,\n offset: $fabEl.offset(),\n translateX: getTranslate($fabEl[0], 'x'),\n translateY: getTranslate($fabEl[0], 'y'),\n };\n\n $fabEl[0].f7FabMorphData = {\n $targetEl,\n target,\n fab,\n };\n\n const diffX =\n fab.offset.left + fab.width / 2 - (target.offset.left + target.width / 2) - fab.translateX;\n const diffY =\n fab.offset.top + fab.height / 2 - (target.offset.top + target.height / 2) - fab.translateY;\n const scaleX = target.width / fab.width;\n const scaleY = target.height / fab.height;\n\n let borderRadius = Math.ceil(parseInt(target.borderRadius, 10) / Math.max(scaleX, scaleY));\n if (borderRadius > 0) borderRadius += 2;\n\n $fabEl[0].f7FabMorphResizeHandler = function resizeHandler() {\n $fabEl.transition(0).transform('');\n $targetEl.transition(0);\n target.width = $targetEl[0].offsetWidth;\n target.height = $targetEl[0].offsetHeight;\n target.offset = $targetEl.offset();\n fab.offset = $fabEl.offset();\n\n const diffXNew =\n fab.offset.left + fab.width / 2 - (target.offset.left + target.width / 2) - fab.translateX;\n const diffYNew =\n fab.offset.top + fab.height / 2 - (target.offset.top + target.height / 2) - fab.translateY;\n const scaleXNew = target.width / fab.width;\n const scaleYNew = target.height / fab.height;\n\n $fabEl.transform(\n `translate3d(${-diffXNew}px, ${-diffYNew}px, 0) scale(${scaleXNew}, ${scaleYNew})`,\n );\n };\n\n $targetEl.css('opacity', 0).transform(`scale(${1 / scaleX}, ${1 / scaleY})`);\n $fabEl\n .addClass('fab-opened')\n .css('z-index', target.zIndex - 1)\n .transform(`translate3d(${-diffX}px, ${-diffY}px, 0)`);\n $fabEl.transitionEnd(() => {\n $targetEl.transition('');\n nextFrame(() => {\n $targetEl.css('opacity', 1).transform('scale(1,1)');\n $fabEl\n .transform(`translate3d(${-diffX}px, ${-diffY}px, 0) scale(${scaleX}, ${scaleY})`)\n .css('border-radius', `${borderRadius}px`)\n .css('box-shadow', 'none')\n .css('opacity', '0');\n });\n app.on('resize', $fabEl[0].f7FabMorphResizeHandler);\n if ($targetEl.parents('.page-content').length > 0) {\n $targetEl.parents('.page-content').on('scroll', $fabEl[0].f7FabMorphResizeHandler);\n }\n });\n },\n morphClose(fabEl) {\n const app = this;\n const $fabEl = $(fabEl);\n const morphData = $fabEl[0].f7FabMorphData;\n if (!morphData) return;\n const { $targetEl, target, fab } = morphData;\n if ($targetEl.length === 0) return;\n\n const diffX =\n fab.offset.left + fab.width / 2 - (target.offset.left + target.width / 2) - fab.translateX;\n const diffY =\n fab.offset.top + fab.height / 2 - (target.offset.top + target.height / 2) - fab.translateY;\n const scaleX = target.width / fab.width;\n const scaleY = target.height / fab.height;\n\n app.off('resize', $fabEl[0].f7FabMorphResizeHandler);\n if ($targetEl.parents('.page-content').length > 0) {\n $targetEl.parents('.page-content').off('scroll', $fabEl[0].f7FabMorphResizeHandler);\n }\n\n $targetEl.css('opacity', 0).transform(`scale(${1 / scaleX}, ${1 / scaleY})`);\n $fabEl\n .transition('')\n .css('box-shadow', '')\n .css('border-radius', '')\n .css('opacity', '1')\n .transform(`translate3d(${-diffX}px, ${-diffY}px, 0)`);\n $fabEl.transitionEnd(() => {\n $fabEl.css('z-index', '').removeClass('fab-opened').transform('');\n nextFrame(() => {\n $fabEl.transitionEnd(() => {\n $targetEl\n .removeClass('fab-morph-target-visible')\n .css('opacity', '')\n .transform('')\n .transition('');\n });\n });\n });\n },\n open(fabEl, targetEl) {\n const app = this;\n const $fabEl = $(fabEl).eq(0);\n const $buttonsEl = $fabEl.find('.fab-buttons');\n if (!$fabEl.length) return;\n if ($fabEl.hasClass('fab-opened')) return;\n if (!$buttonsEl.length && !$fabEl.hasClass('fab-morph')) return;\n\n if (app.fab.openedEl) {\n if (app.fab.openedEl === $fabEl[0]) return;\n app.fab.close(app.fab.openedEl);\n }\n app.fab.openedEl = $fabEl[0];\n if ($fabEl.hasClass('fab-morph')) {\n app.fab.morphOpen($fabEl, targetEl || $fabEl.attr('data-morph-to'));\n } else {\n $fabEl.addClass('fab-opened');\n }\n $fabEl.siblings('.fab-backdrop').addClass('backdrop-in');\n $fabEl.trigger('fab:open');\n },\n close(fabEl = '.fab-opened') {\n const app = this;\n const $fabEl = $(fabEl).eq(0);\n const $buttonsEl = $fabEl.find('.fab-buttons');\n if (!$fabEl.length) return;\n if (!$fabEl.hasClass('fab-opened')) return;\n if (!$buttonsEl.length && !$fabEl.hasClass('fab-morph')) return;\n app.fab.openedEl = null;\n if ($fabEl.hasClass('fab-morph')) {\n app.fab.morphClose($fabEl);\n } else {\n $fabEl.removeClass('fab-opened');\n }\n $fabEl.siblings('.fab-backdrop').removeClass('backdrop-in');\n $fabEl.trigger('fab:close');\n },\n toggle(fabEl) {\n const app = this;\n const $fabEl = $(fabEl);\n if (!$fabEl.hasClass('fab-opened')) app.fab.open(fabEl);\n else app.fab.close(fabEl);\n },\n};\n\nexport default {\n name: 'fab',\n create() {\n const app = this;\n bindMethods(app, {\n fab: {\n openedEl: null,\n ...Fab,\n },\n });\n },\n clicks: {\n '.fab > a': function open($clickedEl) {\n const app = this;\n app.fab.toggle($clickedEl.parents('.fab'));\n },\n '.fab-open': function open($clickedEl, data = {}) {\n const app = this;\n app.fab.open(data.fab);\n },\n '.fab-close': function close($clickedEl, data = {}) {\n const app = this;\n app.fab.close(data.fab);\n },\n '.fab-backdrop': function close() {\n const app = this;\n app.fab.close();\n },\n },\n};\n","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, nextTick, deleteProps } from '../../shared/utils.js';\nimport FrameworkClass from '../../shared/class.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport removeDiacritics from './remove-diacritics.js';\n\nclass Searchbar extends FrameworkClass {\n constructor(app, params = {}) {\n super(params, [app]);\n\n const sb = this;\n\n const defaults = {\n el: undefined,\n inputEl: undefined,\n inputEvents: 'change input compositionend',\n disableButton: true,\n disableButtonEl: undefined,\n backdropEl: undefined,\n searchContainer: undefined, // container to search, HTMLElement or CSS selector\n searchItem: 'li', // single item selector, CSS selector\n searchIn: undefined, // where to search in item, CSS selector\n searchGroup: '.list-group',\n searchGroupTitle: '.list-group-title',\n ignore: '.searchbar-ignore',\n foundEl: '.searchbar-found',\n notFoundEl: '.searchbar-not-found',\n hideOnEnableEl: '.searchbar-hide-on-enable',\n hideOnSearchEl: '.searchbar-hide-on-search',\n backdrop: true,\n removeDiacritics: true,\n customSearch: false,\n hideGroupTitles: true,\n hideGroups: true,\n disableOnBackdropClick: true,\n expandable: false,\n inline: false,\n };\n\n // Extend defaults with modules params\n sb.useModulesParams(defaults);\n\n sb.params = extend(defaults, params);\n\n const $el = $(sb.params.el);\n if ($el.length === 0) return sb;\n\n if ($el[0].f7Searchbar) return $el[0].f7Searchbar;\n\n $el[0].f7Searchbar = sb;\n\n let $pageEl;\n const $navbarEl = $el.parents('.navbar');\n if ($el.parents('.page').length > 0) {\n $pageEl = $el.parents('.page');\n } else if ($navbarEl.length > 0) {\n $pageEl = $(app.navbar.getPageByEl($navbarEl[0]));\n if (!$pageEl.length) {\n const $currentPageEl = $el.parents('.view').find('.page-current');\n if (\n $currentPageEl[0] &&\n $currentPageEl[0].f7Page &&\n $currentPageEl[0].f7Page.navbarEl === $navbarEl[0]\n ) {\n $pageEl = $currentPageEl;\n }\n }\n }\n\n let $foundEl;\n if (params.foundEl) {\n $foundEl = $(params.foundEl);\n } else if (typeof sb.params.foundEl === 'string' && $pageEl) {\n $foundEl = $pageEl.find(sb.params.foundEl);\n }\n\n let $notFoundEl;\n if (params.notFoundEl) {\n $notFoundEl = $(params.notFoundEl);\n } else if (typeof sb.params.notFoundEl === 'string' && $pageEl) {\n $notFoundEl = $pageEl.find(sb.params.notFoundEl);\n }\n\n let $hideOnEnableEl;\n if (params.hideOnEnableEl) {\n $hideOnEnableEl = $(params.hideOnEnableEl);\n } else if (typeof sb.params.hideOnEnableEl === 'string' && $pageEl) {\n $hideOnEnableEl = $pageEl.find(sb.params.hideOnEnableEl);\n }\n\n let $hideOnSearchEl;\n if (params.hideOnSearchEl) {\n $hideOnSearchEl = $(params.hideOnSearchEl);\n } else if (typeof sb.params.hideOnSearchEl === 'string' && $pageEl) {\n $hideOnSearchEl = $pageEl.find(sb.params.hideOnSearchEl);\n }\n\n const expandable = sb.params.expandable || $el.hasClass('searchbar-expandable');\n const inline = sb.params.inline || $el.hasClass('searchbar-inline');\n\n if (typeof sb.params.backdrop === 'undefined') {\n sb.params.backdrop = !inline;\n }\n\n let $backdropEl;\n if (sb.params.backdrop) {\n if (sb.params.backdropEl) {\n $backdropEl = $(sb.params.backdropEl);\n } else if ($pageEl && $pageEl.length > 0) {\n $backdropEl = $pageEl.find('.searchbar-backdrop');\n } else {\n $backdropEl = $el.siblings('.searchbar-backdrop');\n }\n if ($backdropEl.length === 0) {\n $backdropEl = $('<div class=\"searchbar-backdrop\"></div>');\n if ($pageEl && $pageEl.length) {\n if ($el.parents($pageEl).length > 0 && $navbarEl && $el.parents($navbarEl).length === 0) {\n $backdropEl.insertBefore($el);\n } else {\n $backdropEl.insertBefore($pageEl.find('.page-content').eq(0));\n }\n } else {\n $backdropEl.insertBefore($el);\n }\n }\n }\n\n let $searchContainer;\n if (sb.params.searchContainer) {\n $searchContainer = $(sb.params.searchContainer);\n }\n\n let $inputEl;\n if (sb.params.inputEl) {\n $inputEl = $(sb.params.inputEl);\n } else {\n $inputEl = $el.find('input[type=\"search\"]').eq(0);\n }\n\n let $disableButtonEl;\n if (sb.params.disableButton) {\n if (sb.params.disableButtonEl) {\n $disableButtonEl = $(sb.params.disableButtonEl);\n } else {\n $disableButtonEl = $el.find('.searchbar-disable-button');\n }\n }\n\n extend(sb, {\n app,\n view: app.views.get($el.parents('.view')),\n $el,\n el: $el[0],\n $backdropEl,\n backdropEl: $backdropEl && $backdropEl[0],\n $searchContainer,\n searchContainer: $searchContainer && $searchContainer[0],\n $inputEl,\n inputEl: $inputEl[0],\n $disableButtonEl,\n disableButtonEl: $disableButtonEl && $disableButtonEl[0],\n disableButtonHasMargin: false,\n $pageEl,\n pageEl: $pageEl && $pageEl[0],\n $navbarEl,\n navbarEl: $navbarEl && $navbarEl[0],\n $foundEl,\n foundEl: $foundEl && $foundEl[0],\n $notFoundEl,\n notFoundEl: $notFoundEl && $notFoundEl[0],\n $hideOnEnableEl,\n hideOnEnableEl: $hideOnEnableEl && $hideOnEnableEl[0],\n $hideOnSearchEl,\n hideOnSearchEl: $hideOnSearchEl && $hideOnSearchEl[0],\n previousQuery: '',\n query: '',\n isVirtualList: $searchContainer && $searchContainer.hasClass('virtual-list'),\n virtualList: undefined,\n enabled: false,\n expandable,\n inline,\n });\n\n // Events\n function preventSubmit(e) {\n e.preventDefault();\n }\n function onInputFocus(e) {\n sb.enable(e);\n sb.$el.addClass('searchbar-focused');\n }\n function onInputBlur() {\n sb.$el.removeClass('searchbar-focused');\n }\n function onInputChange() {\n const value = sb.$inputEl.val().trim();\n if (\n (sb.$searchContainer &&\n sb.$searchContainer.length > 0 &&\n (sb.params.searchIn ||\n sb.isVirtualList ||\n sb.params.searchIn === sb.params.searchItem)) ||\n sb.params.customSearch\n ) {\n sb.search(value, true);\n }\n }\n function onInputClear(e, previousValue) {\n sb.$el.trigger('searchbar:clear', previousValue);\n sb.emit('local::clear searchbarClear', sb, previousValue);\n }\n function disableOnClick(e) {\n sb.disable(e);\n }\n function onPageBeforeOut() {\n if (!sb || (sb && !sb.$el)) return;\n if (sb.enabled) {\n sb.$el.removeClass('searchbar-enabled');\n if (sb.expandable) {\n sb.$el\n .parents('.navbar')\n .removeClass(\n 'with-searchbar-expandable-enabled with-searchbar-expandable-enabled-no-transition',\n );\n }\n }\n }\n function onPageBeforeIn() {\n if (!sb || (sb && !sb.$el)) return;\n if (sb.enabled) {\n sb.$el.addClass('searchbar-enabled');\n if (sb.expandable) {\n sb.$el.parents('.navbar').addClass('with-searchbar-expandable-enabled-no-transition');\n }\n }\n }\n sb.attachEvents = function attachEvents() {\n $el.on('submit', preventSubmit);\n if (sb.params.disableButton) {\n sb.$disableButtonEl.on('click', disableOnClick);\n }\n if (sb.params.disableOnBackdropClick && sb.$backdropEl) {\n sb.$backdropEl.on('click', disableOnClick);\n }\n if (sb.expandable && app.theme === 'ios' && sb.view && $navbarEl.length && sb.$pageEl) {\n sb.$pageEl.on('page:beforeout', onPageBeforeOut);\n sb.$pageEl.on('page:beforein', onPageBeforeIn);\n }\n sb.$inputEl.on('focus', onInputFocus);\n sb.$inputEl.on('blur', onInputBlur);\n sb.$inputEl.on(sb.params.inputEvents, onInputChange);\n sb.$inputEl.on('input:clear', onInputClear);\n };\n sb.detachEvents = function detachEvents() {\n $el.off('submit', preventSubmit);\n if (sb.params.disableButton) {\n sb.$disableButtonEl.off('click', disableOnClick);\n }\n if (sb.params.disableOnBackdropClick && sb.$backdropEl) {\n sb.$backdropEl.off('click', disableOnClick);\n }\n if (sb.expandable && app.theme === 'ios' && sb.view && $navbarEl.length && sb.$pageEl) {\n sb.$pageEl.off('page:beforeout', onPageBeforeOut);\n sb.$pageEl.off('page:beforein', onPageBeforeIn);\n }\n sb.$inputEl.off('focus', onInputFocus);\n sb.$inputEl.off('blur', onInputBlur);\n sb.$inputEl.off(sb.params.inputEvents, onInputChange);\n sb.$inputEl.off('input:clear', onInputClear);\n };\n\n // Install Modules\n sb.useModules();\n\n // Init\n sb.init();\n\n return sb;\n }\n\n clear(e) {\n const sb = this;\n if (!sb.query && e && $(e.target).hasClass('searchbar-clear')) {\n sb.disable();\n return sb;\n }\n const previousQuery = sb.value;\n sb.$inputEl.val('').trigger('change').focus();\n sb.$el.trigger('searchbar:clear', previousQuery);\n sb.emit('local::clear searchbarClear', sb, previousQuery);\n return sb;\n }\n\n setDisableButtonMargin() {\n const sb = this;\n if (sb.expandable) return;\n const app = sb.app;\n sb.$disableButtonEl.transition(0).show();\n sb.$disableButtonEl.css(\n `margin-${app.rtl ? 'left' : 'right'}`,\n `${-sb.disableButtonEl.offsetWidth}px`,\n );\n /* eslint no-underscore-dangle: [\"error\", { \"allow\": [\"_clientLeft\"] }] */\n sb._clientLeft = sb.$disableButtonEl[0].clientLeft;\n sb.$disableButtonEl.transition('');\n sb.disableButtonHasMargin = true;\n }\n\n enable(setFocus) {\n const sb = this;\n if (sb.enabled) return sb;\n const app = sb.app;\n const document = getDocument();\n const device = getDevice();\n\n sb.enabled = true;\n function enable() {\n if (\n sb.$backdropEl &&\n ((sb.$searchContainer && sb.$searchContainer.length) || sb.params.customSearch) &&\n !sb.$el.hasClass('searchbar-enabled') &&\n !sb.query\n ) {\n sb.backdropShow();\n }\n sb.$el.addClass('searchbar-enabled');\n if (!sb.$disableButtonEl || (sb.$disableButtonEl && sb.$disableButtonEl.length === 0)) {\n sb.$el.addClass('searchbar-enabled-no-disable-button');\n }\n if (\n !sb.expandable &&\n sb.$disableButtonEl &&\n sb.$disableButtonEl.length > 0 &&\n app.theme !== 'md'\n ) {\n if (!sb.disableButtonHasMargin) {\n sb.setDisableButtonMargin();\n }\n sb.$disableButtonEl.css(`margin-${app.rtl ? 'left' : 'right'}`, '0px');\n }\n if (sb.expandable) {\n const $navbarEl = sb.$el.parents('.navbar');\n if ($navbarEl.hasClass('navbar-large') && sb.$pageEl) {\n const $pageContentEl = sb.$pageEl.find('.page-content');\n const $titleLargeEl = $navbarEl.find('.title-large');\n $pageContentEl.addClass('with-searchbar-expandable-enabled');\n if (\n $navbarEl.hasClass('navbar-large') &&\n $navbarEl.hasClass('navbar-large-collapsed') &&\n $titleLargeEl.length &&\n $pageContentEl.length\n ) {\n $pageContentEl.transition(0);\n $pageContentEl[0].scrollTop -= $titleLargeEl[0].offsetHeight;\n setTimeout(() => {\n $pageContentEl.transition('');\n }, 200);\n }\n }\n if (app.theme === 'md' && $navbarEl.length) {\n $navbarEl.addClass('with-searchbar-expandable-enabled');\n } else {\n $navbarEl.addClass('with-searchbar-expandable-enabled');\n if ($navbarEl.hasClass('navbar-large')) {\n $navbarEl.addClass('navbar-large-collapsed');\n }\n }\n }\n if (sb.$hideOnEnableEl) sb.$hideOnEnableEl.addClass('hidden-by-searchbar');\n sb.$el.trigger('searchbar:enable');\n sb.emit('local::enable searchbarEnable', sb);\n }\n let needsFocus = false;\n if (setFocus === true) {\n if (document.activeElement !== sb.inputEl) {\n needsFocus = true;\n }\n }\n const isIos = device.ios && app.theme === 'ios';\n if (isIos) {\n if (sb.expandable) {\n if (needsFocus) sb.$inputEl.focus();\n enable();\n } else {\n if (needsFocus) sb.$inputEl.focus();\n if (setFocus && (setFocus.type === 'focus' || setFocus === true)) {\n nextTick(() => {\n enable();\n }, 400);\n } else {\n enable();\n }\n }\n } else {\n if (needsFocus) sb.$inputEl.focus();\n if (app.theme === 'md' && sb.expandable) {\n sb.$el.parents('.page, .view, .navbar-inner, .navbar').scrollLeft(app.rtl ? 100 : 0);\n }\n enable();\n }\n return sb;\n }\n\n disable() {\n const sb = this;\n if (!sb.enabled) return sb;\n const app = sb.app;\n sb.$inputEl.val('').trigger('change');\n sb.$el.removeClass('searchbar-enabled searchbar-focused searchbar-enabled-no-disable-button');\n if (sb.expandable) {\n const $navbarEl = sb.$el.parents('.navbar');\n const $pageContentEl = sb.$pageEl && sb.$pageEl.find('.page-content');\n\n if ($navbarEl.hasClass('navbar-large') && $pageContentEl.length) {\n const $titleLargeEl = $navbarEl.find('.title-large');\n sb.$el.transitionEnd(() => {\n $pageContentEl.removeClass('with-searchbar-expandable-closing');\n });\n if (\n $navbarEl.hasClass('navbar-large') &&\n $navbarEl.hasClass('navbar-large-collapsed') &&\n $titleLargeEl.length\n ) {\n const scrollTop = $pageContentEl[0].scrollTop;\n const titleLargeHeight = $titleLargeEl[0].offsetHeight;\n if (scrollTop > titleLargeHeight) {\n $pageContentEl.transition(0);\n $pageContentEl[0].scrollTop = scrollTop + titleLargeHeight;\n setTimeout(() => {\n $pageContentEl.transition('');\n }, 200);\n }\n }\n $pageContentEl\n .removeClass('with-searchbar-expandable-enabled')\n .addClass('with-searchbar-expandable-closing');\n }\n if (app.theme === 'md' && $navbarEl.length) {\n $navbarEl\n .removeClass(\n 'with-searchbar-expandable-enabled with-searchbar-expandable-enabled-no-transition',\n )\n .addClass('with-searchbar-expandable-closing');\n sb.$el.transitionEnd(() => {\n $navbarEl.removeClass('with-searchbar-expandable-closing');\n });\n } else {\n $navbarEl\n .removeClass(\n 'with-searchbar-expandable-enabled with-searchbar-expandable-enabled-no-transition',\n )\n .addClass('with-searchbar-expandable-closing');\n sb.$el.transitionEnd(() => {\n $navbarEl.removeClass('with-searchbar-expandable-closing');\n });\n if (sb.$pageEl) {\n sb.$pageEl.find('.page-content').trigger('scroll');\n }\n }\n }\n if (\n !sb.expandable &&\n sb.$disableButtonEl &&\n sb.$disableButtonEl.length > 0 &&\n app.theme !== 'md'\n ) {\n sb.$disableButtonEl.css(\n `margin-${app.rtl ? 'left' : 'right'}`,\n `${-sb.disableButtonEl.offsetWidth}px`,\n );\n }\n if (\n sb.$backdropEl &&\n ((sb.$searchContainer && sb.$searchContainer.length) || sb.params.customSearch)\n ) {\n sb.backdropHide();\n }\n\n sb.enabled = false;\n\n sb.$inputEl.blur();\n\n if (sb.$hideOnEnableEl) sb.$hideOnEnableEl.removeClass('hidden-by-searchbar');\n\n sb.$el.trigger('searchbar:disable');\n sb.emit('local::disable searchbarDisable', sb);\n return sb;\n }\n\n toggle() {\n const sb = this;\n if (sb.enabled) sb.disable();\n else sb.enable(true);\n return sb;\n }\n\n backdropShow() {\n const sb = this;\n if (sb.$backdropEl) {\n sb.$backdropEl.addClass('searchbar-backdrop-in');\n }\n return sb;\n }\n\n backdropHide() {\n const sb = this;\n if (sb.$backdropEl) {\n sb.$backdropEl.removeClass('searchbar-backdrop-in');\n }\n return sb;\n }\n\n search(query, internal) {\n const sb = this;\n sb.previousQuery = sb.query || '';\n if (query === sb.previousQuery) return sb;\n\n if (!internal) {\n if (!sb.enabled) {\n sb.enable();\n }\n sb.$inputEl.val(query);\n sb.$inputEl.trigger('input');\n }\n sb.query = query;\n sb.value = query;\n\n const { $searchContainer, $el, $foundEl, $notFoundEl, $hideOnSearchEl, isVirtualList } = sb;\n\n // Hide on search element\n if (query.length > 0 && $hideOnSearchEl) {\n $hideOnSearchEl.addClass('hidden-by-searchbar');\n } else if ($hideOnSearchEl) {\n $hideOnSearchEl.removeClass('hidden-by-searchbar');\n }\n // Add active/inactive classes on overlay\n if (\n ($searchContainer && $searchContainer.length && $el.hasClass('searchbar-enabled')) ||\n (sb.params.customSearch && $el.hasClass('searchbar-enabled'))\n ) {\n if (query.length === 0) {\n sb.backdropShow();\n } else {\n sb.backdropHide();\n }\n }\n\n if (sb.params.customSearch) {\n $el.trigger('searchbar:search', { query, previousQuery: sb.previousQuery });\n sb.emit('local::search searchbarSearch', sb, query, sb.previousQuery);\n return sb;\n }\n\n let foundItems = [];\n let vlQuery;\n if (isVirtualList) {\n sb.virtualList = $searchContainer[0].f7VirtualList;\n if (query.trim() === '') {\n sb.virtualList.resetFilter();\n if ($notFoundEl) $notFoundEl.hide();\n if ($foundEl) $foundEl.show();\n $el.trigger('searchbar:search', { query, previousQuery: sb.previousQuery });\n sb.emit('local::search searchbarSearch', sb, query, sb.previousQuery);\n return sb;\n }\n vlQuery = sb.params.removeDiacritics ? removeDiacritics(query) : query;\n if (sb.virtualList.params.searchAll) {\n foundItems = sb.virtualList.params.searchAll(vlQuery, sb.virtualList.items) || [];\n } else if (sb.virtualList.params.searchByItem) {\n for (let i = 0; i < sb.virtualList.items.length; i += 1) {\n if (sb.virtualList.params.searchByItem(vlQuery, sb.virtualList.items[i], i)) {\n foundItems.push(i);\n }\n }\n }\n } else {\n let values;\n if (sb.params.removeDiacritics)\n values = removeDiacritics(query.trim().toLowerCase()).split(' ');\n else {\n values = query.trim().toLowerCase().split(' ');\n }\n $searchContainer\n .find(sb.params.searchItem)\n .removeClass('hidden-by-searchbar')\n .each((itemEl) => {\n const $itemEl = $(itemEl);\n let compareWithText = [];\n let $searchIn = sb.params.searchIn ? $itemEl.find(sb.params.searchIn) : $itemEl;\n if (sb.params.searchIn === sb.params.searchItem) {\n $searchIn = $itemEl;\n }\n $searchIn.each((searchInEl) => {\n let itemText = $(searchInEl).text().trim().toLowerCase();\n if (sb.params.removeDiacritics) itemText = removeDiacritics(itemText);\n compareWithText.push(itemText);\n });\n compareWithText = compareWithText.join(' ');\n let wordsMatch = 0;\n for (let i = 0; i < values.length; i += 1) {\n if (compareWithText.indexOf(values[i]) >= 0) wordsMatch += 1;\n }\n if (wordsMatch !== values.length && !(sb.params.ignore && $itemEl.is(sb.params.ignore))) {\n $itemEl.addClass('hidden-by-searchbar');\n } else {\n foundItems.push($itemEl[0]);\n }\n });\n\n if (sb.params.hideGroupTitles) {\n $searchContainer.find(sb.params.searchGroupTitle).each((titleEl) => {\n const $titleEl = $(titleEl);\n const $nextElements = $titleEl.nextAll(sb.params.searchItem);\n let hide = true;\n for (let i = 0; i < $nextElements.length; i += 1) {\n const $nextEl = $nextElements.eq(i);\n if ($nextEl.is(sb.params.searchGroupTitle)) break;\n if (!$nextEl.hasClass('hidden-by-searchbar')) {\n hide = false;\n }\n }\n const ignore = sb.params.ignore && $titleEl.is(sb.params.ignore);\n if (hide && !ignore) $titleEl.addClass('hidden-by-searchbar');\n else $titleEl.removeClass('hidden-by-searchbar');\n });\n }\n if (sb.params.hideGroups) {\n $searchContainer.find(sb.params.searchGroup).each((groupEl) => {\n const $groupEl = $(groupEl);\n const ignore = sb.params.ignore && $groupEl.is(sb.params.ignore);\n // eslint-disable-next-line\n const notHidden = $groupEl.find(sb.params.searchItem).filter((el) => {\n return !$(el).hasClass('hidden-by-searchbar');\n });\n if (notHidden.length === 0 && !ignore) {\n $groupEl.addClass('hidden-by-searchbar');\n } else {\n $groupEl.removeClass('hidden-by-searchbar');\n }\n });\n }\n }\n\n if (foundItems.length === 0) {\n if ($notFoundEl) $notFoundEl.show();\n if ($foundEl) $foundEl.hide();\n } else {\n if ($notFoundEl) $notFoundEl.hide();\n if ($foundEl) $foundEl.show();\n }\n if (isVirtualList && sb.virtualList) {\n sb.virtualList.filterItems(foundItems);\n }\n\n $el.trigger('searchbar:search', { query, previousQuery: sb.previousQuery, foundItems });\n sb.emit('local::search searchbarSearch', sb, query, sb.previousQuery, foundItems);\n\n return sb;\n }\n\n init() {\n const sb = this;\n if (sb.expandable && sb.$el) sb.$el.addClass('searchbar-expandable');\n if (sb.inline && sb.$el) sb.$el.addClass('searchbar-inline');\n sb.attachEvents();\n }\n\n destroy() {\n const sb = this;\n sb.emit('local::beforeDestroy searchbarBeforeDestroy', sb);\n sb.$el.trigger('searchbar:beforedestroy');\n sb.detachEvents();\n if (sb.$el[0]) {\n sb.$el[0].f7Searchbar = null;\n delete sb.$el[0].f7Searchbar;\n }\n deleteProps(sb);\n }\n}\n\nexport default Searchbar;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Searchbar from './searchbar-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'searchbar',\n static: {\n Searchbar,\n },\n create() {\n const app = this;\n app.searchbar = ConstructorMethods({\n defaultSelector: '.searchbar',\n constructor: Searchbar,\n app,\n domProp: 'f7Searchbar',\n addMethods: 'clear enable disable toggle search'.split(' '),\n });\n },\n on: {\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('.searchbar-init')\n .each((searchbarEl) => {\n const $searchbarEl = $(searchbarEl);\n app.searchbar.create(extend($searchbarEl.dataset(), { el: searchbarEl }));\n });\n },\n tabBeforeRemove(tabEl) {\n $(tabEl)\n .find('.searchbar-init')\n .each((searchbarEl) => {\n if (searchbarEl.f7Searchbar && searchbarEl.f7Searchbar.destroy) {\n searchbarEl.f7Searchbar.destroy();\n }\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.searchbar-init').each((searchbarEl) => {\n const $searchbarEl = $(searchbarEl);\n app.searchbar.create(extend($searchbarEl.dataset(), { el: searchbarEl }));\n });\n if (\n app.theme === 'ios' &&\n page.view &&\n page.view.router.dynamicNavbar &&\n page.$navbarEl &&\n page.$navbarEl.length > 0\n ) {\n page.$navbarEl.find('.searchbar-init').each((searchbarEl) => {\n const $searchbarEl = $(searchbarEl);\n app.searchbar.create(extend($searchbarEl.dataset(), { el: searchbarEl }));\n });\n }\n },\n pageBeforeRemove(page) {\n const app = this;\n page.$el.find('.searchbar-init').each((searchbarEl) => {\n if (searchbarEl.f7Searchbar && searchbarEl.f7Searchbar.destroy) {\n searchbarEl.f7Searchbar.destroy();\n }\n });\n if (\n app.theme === 'ios' &&\n page.view &&\n page.view.router.dynamicNavbar &&\n page.$navbarEl &&\n page.$navbarEl.length > 0\n ) {\n page.$navbarEl.find('.searchbar-init').each((searchbarEl) => {\n if (searchbarEl.f7Searchbar && searchbarEl.f7Searchbar.destroy) {\n searchbarEl.f7Searchbar.destroy();\n }\n });\n }\n },\n },\n clicks: {\n '.searchbar-clear': function clear($clickedEl, data = {}) {\n const app = this;\n const sb = app.searchbar.get(data.searchbar);\n if (sb) sb.clear();\n },\n '.searchbar-enable': function enable($clickedEl, data = {}) {\n const app = this;\n const sb = app.searchbar.get(data.searchbar);\n if (sb) sb.enable(true);\n },\n '.searchbar-disable': function disable($clickedEl, data = {}) {\n const app = this;\n const sb = app.searchbar.get(data.searchbar);\n if (sb) sb.disable();\n },\n '.searchbar-toggle': function toggle($clickedEl, data = {}) {\n const app = this;\n const sb = app.searchbar.get(data.searchbar);\n if (sb) sb.toggle();\n },\n },\n vnode: {\n 'searchbar-init': {\n insert(vnode) {\n const app = this;\n const searchbarEl = vnode.elm;\n const $searchbarEl = $(searchbarEl);\n app.searchbar.create(extend($searchbarEl.dataset(), { el: searchbarEl }));\n },\n destroy(vnode) {\n const searchbarEl = vnode.elm;\n if (searchbarEl.f7Searchbar && searchbarEl.f7Searchbar.destroy) {\n searchbarEl.f7Searchbar.destroy();\n }\n },\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\n/** @jsx $jsx */\nimport $jsx from '../../shared/$jsx.js';\n\nclass Messages extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n\n const m = this;\n\n const defaults = {\n autoLayout: true,\n messages: [],\n newMessagesFirst: false,\n scrollMessages: true,\n scrollMessagesOnEdge: true,\n firstMessageRule: undefined,\n lastMessageRule: undefined,\n tailMessageRule: undefined,\n sameNameMessageRule: undefined,\n sameHeaderMessageRule: undefined,\n sameFooterMessageRule: undefined,\n sameAvatarMessageRule: undefined,\n customClassMessageRule: undefined,\n renderMessage: undefined,\n };\n\n // Extend defaults with modules params\n m.useModulesParams(defaults);\n\n m.params = extend(defaults, params);\n\n const $el = $(params.el).eq(0);\n if ($el.length === 0) return m;\n\n if ($el[0].f7Messages) return $el[0].f7Messages;\n\n $el[0].f7Messages = m;\n\n const $pageContentEl = $el.closest('.page-content').eq(0);\n\n extend(m, {\n messages: m.params.messages,\n $el,\n el: $el[0],\n $pageContentEl,\n pageContentEl: $pageContentEl[0],\n });\n // Install Modules\n m.useModules();\n\n // Init\n m.init();\n\n return m;\n }\n // eslint-disable-next-line\n getMessageData(messageEl) {\n const $messageEl = $(messageEl);\n const data = {\n name: $messageEl.find('.message-name').html(),\n header: $messageEl.find('.message-header').html(),\n textHeader: $messageEl.find('.message-text-header').html(),\n textFooter: $messageEl.find('.message-text-footer').html(),\n footer: $messageEl.find('.message-footer').html(),\n isTitle: $messageEl.hasClass('messages-title'),\n type: $messageEl.hasClass('message-sent') ? 'sent' : 'received',\n text: $messageEl.find('.message-text').html(),\n image: $messageEl.find('.message-image').html(),\n imageSrc: $messageEl.find('.message-image img').attr('src'),\n typing: $messageEl.hasClass('message-typing'),\n };\n if (data.isTitle) {\n data.text = $messageEl.html();\n }\n if (data.text && data.textHeader) {\n data.text = data.text.replace(\n `<div class=\"message-text-header\">${data.textHeader}</div>`,\n '',\n );\n }\n if (data.text && data.textFooter) {\n data.text = data.text.replace(\n `<div class=\"message-text-footer\">${data.textFooter}</div>`,\n '',\n );\n }\n let avatar = $messageEl.find('.message-avatar').css('background-image');\n if (avatar === 'none' || avatar === '') avatar = undefined;\n if (avatar && typeof avatar === 'string') {\n avatar = avatar.replace('url(', '').replace(')', '').replace(/\"/g, '').replace(/'/g, '');\n } else {\n avatar = undefined;\n }\n data.avatar = avatar;\n\n return data;\n }\n\n getMessagesData() {\n const m = this;\n const data = [];\n m.$el.find('.message, .messages-title').each((messageEl) => {\n data.push(m.getMessageData(messageEl));\n });\n return data;\n }\n\n renderMessage(messageToRender) {\n const m = this;\n const message = extend(\n {\n type: 'sent',\n attrs: {},\n },\n messageToRender,\n );\n if (m.params.renderMessage) {\n return m.params.renderMessage.call(m, message);\n }\n if (message.isTitle) {\n return `<div class=\"messages-title\">${message.text}</div>`;\n }\n return (\n <div\n class={`message message-${message.type} ${message.isTyping ? 'message-typing' : ''} ${\n message.cssClass || ''\n }`}\n {...message.attrs}\n >\n {message.avatar && (\n <div class=\"message-avatar\" style={`background-image:url(${message.avatar})`}></div>\n )}\n <div class=\"message-content\">\n {message.name && <div class=\"message-name\">{message.name}</div>}\n {message.header && <div class=\"message-header\">{message.header}</div>}\n <div class=\"message-bubble\">\n {message.textHeader && <div class=\"message-text-header\">{message.textHeader}</div>}\n {message.image && <div class=\"message-image\">{message.image}</div>}\n {message.imageSrc && !message.image && (\n <div class=\"message-image\">\n <img src={message.imageSrc} />\n </div>\n )}\n {(message.text || message.isTyping) && (\n <div class=\"message-text\">\n {message.text || ''}\n {message.isTyping && (\n <div class=\"message-typing-indicator\">\n <div></div>\n <div></div>\n <div></div>\n </div>\n )}\n </div>\n )}\n {message.textFooter && <div class=\"message-text-footer\">{message.textFooter}</div>}\n </div>\n {message.footer && <div class=\"message-footer\">{message.footer}</div>}\n </div>\n </div>\n );\n }\n\n renderMessages(\n messagesToRender = this.messages,\n method = this.params.newMessagesFirst ? 'prepend' : 'append',\n ) {\n const m = this;\n const html = messagesToRender.map((message) => m.renderMessage(message)).join('');\n m.$el[method](html);\n }\n\n isFirstMessage(...args) {\n const m = this;\n if (m.params.firstMessageRule) return m.params.firstMessageRule(...args);\n return false;\n }\n\n isLastMessage(...args) {\n const m = this;\n if (m.params.lastMessageRule) return m.params.lastMessageRule(...args);\n return false;\n }\n\n isTailMessage(...args) {\n const m = this;\n if (m.params.tailMessageRule) return m.params.tailMessageRule(...args);\n return false;\n }\n\n isSameNameMessage(...args) {\n const m = this;\n if (m.params.sameNameMessageRule) return m.params.sameNameMessageRule(...args);\n return false;\n }\n\n isSameHeaderMessage(...args) {\n const m = this;\n if (m.params.sameHeaderMessageRule) return m.params.sameHeaderMessageRule(...args);\n return false;\n }\n\n isSameFooterMessage(...args) {\n const m = this;\n if (m.params.sameFooterMessageRule) return m.params.sameFooterMessageRule(...args);\n return false;\n }\n\n isSameAvatarMessage(...args) {\n const m = this;\n if (m.params.sameAvatarMessageRule) return m.params.sameAvatarMessageRule(...args);\n return false;\n }\n\n isCustomClassMessage(...args) {\n const m = this;\n if (m.params.customClassMessageRule) return m.params.customClassMessageRule(...args);\n return undefined;\n }\n\n layout() {\n const m = this;\n m.$el.find('.message, .messages-title').each((messageEl, index) => {\n const $messageEl = $(messageEl);\n if (!m.messages) {\n m.messages = m.getMessagesData();\n }\n const classes = [];\n const message = m.messages[index];\n const previousMessage = m.messages[index - 1];\n const nextMessage = m.messages[index + 1];\n if (m.isFirstMessage(message, previousMessage, nextMessage)) {\n classes.push('message-first');\n }\n if (m.isLastMessage(message, previousMessage, nextMessage)) {\n classes.push('message-last');\n }\n if (m.isTailMessage(message, previousMessage, nextMessage)) {\n classes.push('message-tail');\n }\n if (m.isSameNameMessage(message, previousMessage, nextMessage)) {\n classes.push('message-same-name');\n }\n if (m.isSameHeaderMessage(message, previousMessage, nextMessage)) {\n classes.push('message-same-header');\n }\n if (m.isSameFooterMessage(message, previousMessage, nextMessage)) {\n classes.push('message-same-footer');\n }\n if (m.isSameAvatarMessage(message, previousMessage, nextMessage)) {\n classes.push('message-same-avatar');\n }\n let customMessageClasses = m.isCustomClassMessage(message, previousMessage, nextMessage);\n if (customMessageClasses && customMessageClasses.length) {\n if (typeof customMessageClasses === 'string') {\n customMessageClasses = customMessageClasses.split(' ');\n }\n customMessageClasses.forEach((customClass) => {\n classes.push(customClass);\n });\n }\n $messageEl.removeClass(\n 'message-first message-last message-tail message-same-name message-same-header message-same-footer message-same-avatar',\n );\n classes.forEach((className) => {\n $messageEl.addClass(className);\n });\n });\n }\n\n clear() {\n const m = this;\n m.messages = [];\n m.$el.html('');\n }\n\n removeMessage(messageToRemove, layout = true) {\n const m = this;\n // Index or El\n let index;\n let $el;\n if (typeof messageToRemove === 'number') {\n index = messageToRemove;\n $el = m.$el.find('.message, .messages-title').eq(index);\n } else if (m.messages && m.messages.indexOf(messageToRemove) >= 0) {\n index = m.messages.indexOf(messageToRemove);\n $el = m.$el.children().eq(index);\n } else {\n $el = $(messageToRemove);\n index = $el.index();\n }\n if ($el.length === 0) {\n return m;\n }\n $el.remove();\n m.messages.splice(index, 1);\n if (m.params.autoLayout && layout) m.layout();\n return m;\n }\n\n removeMessages(messagesToRemove, layout = true) {\n const m = this;\n if (Array.isArray(messagesToRemove)) {\n const messagesToRemoveEls = [];\n messagesToRemove.forEach((messageToRemoveIndex) => {\n messagesToRemoveEls.push(m.$el.find('.message, .messages-title').eq(messageToRemoveIndex));\n });\n messagesToRemoveEls.forEach((messageToRemove) => {\n m.removeMessage(messageToRemove, false);\n });\n } else {\n $(messagesToRemove).each((messageToRemove) => {\n m.removeMessage(messageToRemove, false);\n });\n }\n if (m.params.autoLayout && layout) m.layout();\n return m;\n }\n\n addMessage(...args) {\n const m = this;\n let messageToAdd;\n let animate;\n let method;\n if (typeof args[1] === 'boolean') {\n [messageToAdd, animate, method] = args;\n } else {\n [messageToAdd, method, animate] = args;\n }\n if (typeof animate === 'undefined') {\n animate = true;\n }\n if (typeof method === 'undefined') {\n method = m.params.newMessagesFirst ? 'prepend' : 'append';\n }\n\n return m.addMessages([messageToAdd], animate, method);\n }\n\n setScrollData() {\n const m = this;\n // Define scroll positions before new messages added\n const scrollHeightBefore = m.pageContentEl.scrollHeight;\n const heightBefore = m.pageContentEl.offsetHeight;\n const scrollBefore = m.pageContentEl.scrollTop;\n m.scrollData = {\n scrollHeightBefore,\n heightBefore,\n scrollBefore,\n };\n return {\n scrollHeightBefore,\n heightBefore,\n scrollBefore,\n };\n }\n\n addMessages(...args) {\n const m = this;\n let messagesToAdd;\n let animate;\n let method;\n if (typeof args[1] === 'boolean') {\n [messagesToAdd, animate, method] = args;\n } else {\n [messagesToAdd, method, animate] = args;\n }\n if (typeof animate === 'undefined') {\n animate = true;\n }\n if (typeof method === 'undefined') {\n method = m.params.newMessagesFirst ? 'prepend' : 'append';\n }\n\n const { scrollHeightBefore, scrollBefore } = m.setScrollData();\n\n // Add message to DOM and data\n let messagesHTML = '';\n const typingMessage = m.messages.filter((el) => el.isTyping)[0];\n messagesToAdd.forEach((messageToAdd) => {\n if (typingMessage) {\n if (method === 'append') {\n m.messages.splice(m.messages.indexOf(typingMessage), 0, messageToAdd);\n } else {\n m.messages.splice(m.messages.indexOf(typingMessage) + 1, 0, messageToAdd);\n }\n } else {\n m.messages[method === 'append' ? 'push' : 'unshift'](messageToAdd);\n }\n messagesHTML += m.renderMessage(messageToAdd);\n });\n const $messagesEls = $(messagesHTML);\n if (animate) {\n if (method === 'append' && !m.params.newMessagesFirst) {\n $messagesEls.addClass('message-appear-from-bottom');\n }\n if (method === 'prepend' && m.params.newMessagesFirst) {\n $messagesEls.addClass('message-appear-from-top');\n }\n }\n if (typingMessage) {\n if (method === 'append') {\n $messagesEls.insertBefore(m.$el.find('.message-typing'));\n } else {\n $messagesEls.insertAfter(m.$el.find('.message-typing'));\n }\n } else {\n m.$el[method]($messagesEls);\n }\n\n // Layout\n if (m.params.autoLayout) m.layout();\n\n if (method === 'prepend' && !typingMessage) {\n m.pageContentEl.scrollTop =\n scrollBefore + (m.pageContentEl.scrollHeight - scrollHeightBefore);\n }\n\n if (\n m.params.scrollMessages &&\n ((method === 'append' && !m.params.newMessagesFirst) ||\n (method === 'prepend' && m.params.newMessagesFirst && !typingMessage))\n ) {\n m.scrollWithEdgeCheck(animate);\n }\n\n return m;\n }\n\n showTyping(message = {}) {\n const m = this;\n const typingMessage = m.messages.filter((el) => el.isTyping)[0];\n if (typingMessage) {\n m.removeMessage(m.messages.indexOf(typingMessage));\n }\n m.addMessage(\n extend(\n {\n type: 'received',\n isTyping: true,\n },\n message,\n ),\n );\n return m;\n }\n\n hideTyping() {\n const m = this;\n let typingMessageIndex;\n let typingFound;\n m.messages.forEach((message, index) => {\n if (message.isTyping) typingMessageIndex = index;\n });\n if (typeof typingMessageIndex !== 'undefined') {\n if (m.$el.find('.message').eq(typingMessageIndex).hasClass('message-typing')) {\n typingFound = true;\n m.removeMessage(typingMessageIndex);\n }\n }\n if (!typingFound) {\n const $typingMessageEl = m.$el.find('.message-typing');\n if ($typingMessageEl.length) {\n m.removeMessage($typingMessageEl);\n }\n }\n return m;\n }\n\n scrollWithEdgeCheck(animate) {\n const m = this;\n const { scrollBefore, scrollHeightBefore, heightBefore } = m.scrollData;\n if (m.params.scrollMessagesOnEdge) {\n let onEdge = false;\n if (m.params.newMessagesFirst && scrollBefore === 0) {\n onEdge = true;\n }\n if (!m.params.newMessagesFirst && scrollBefore - (scrollHeightBefore - heightBefore) >= -10) {\n onEdge = true;\n }\n if (onEdge) m.scroll(animate ? undefined : 0);\n } else {\n m.scroll(animate ? undefined : 0);\n }\n }\n\n scroll(duration = 300, scrollTop) {\n const m = this;\n const currentScroll = m.pageContentEl.scrollTop;\n let newScrollTop;\n if (typeof scrollTop !== 'undefined') newScrollTop = scrollTop;\n else {\n newScrollTop = m.params.newMessagesFirst\n ? 0\n : m.pageContentEl.scrollHeight - m.pageContentEl.offsetHeight;\n if (newScrollTop === currentScroll) return m;\n }\n m.$pageContentEl.scrollTop(newScrollTop, duration);\n return m;\n }\n\n init() {\n const m = this;\n if (!m.messages || m.messages.length === 0) {\n m.messages = m.getMessagesData();\n }\n if (m.params.messages && m.params.messages.length) {\n m.renderMessages();\n }\n if (m.params.autoLayout) m.layout();\n if (m.params.scrollMessages) m.scroll(0);\n }\n\n destroy() {\n const m = this;\n m.emit('local::beforeDestroy messagesBeforeDestroy', m);\n m.$el.trigger('messages:beforedestroy');\n if (m.$el[0]) {\n m.$el[0].f7Messages = null;\n delete m.$el[0].f7Messages;\n }\n deleteProps(m);\n }\n}\n\nexport default Messages;\n","import $ from '../../shared/dom7.js';\nimport Messages from './messages-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'messages',\n static: {\n Messages,\n },\n create() {\n const app = this;\n app.messages = ConstructorMethods({\n defaultSelector: '.messages',\n constructor: Messages,\n app,\n domProp: 'f7Messages',\n addMethods:\n 'renderMessages layout scroll clear removeMessage removeMessages addMessage addMessages'.split(\n ' ',\n ),\n });\n },\n on: {\n tabBeforeRemove(tabEl) {\n const app = this;\n $(tabEl)\n .find('.messages-init')\n .each((messagesEl) => {\n app.messages.destroy(messagesEl);\n });\n },\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('.messages-init')\n .each((messagesEl) => {\n app.messages.create({ el: messagesEl });\n });\n },\n pageBeforeRemove(page) {\n const app = this;\n page.$el.find('.messages-init').each((messagesEl) => {\n app.messages.destroy(messagesEl);\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.messages-init').each((messagesEl) => {\n app.messages.create({ el: messagesEl });\n });\n },\n },\n vnode: {\n 'messages-init': {\n insert(vnode) {\n const app = this;\n const messagesEl = vnode.elm;\n app.messages.create({ el: messagesEl });\n },\n destroy(vnode) {\n const app = this;\n const messagesEl = vnode.elm;\n app.messages.destroy(messagesEl);\n },\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\n\nclass Messagebar extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n\n const messagebar = this;\n\n const defaults = {\n top: false,\n topOffset: 0,\n bottomOffset: 0,\n attachments: [],\n renderAttachments: undefined,\n renderAttachment: undefined,\n maxHeight: null,\n resizePage: true,\n };\n\n // Extend defaults with modules params\n messagebar.useModulesParams(defaults);\n\n messagebar.params = extend(defaults, params);\n\n // El\n const $el = $(messagebar.params.el);\n if ($el.length === 0) return messagebar;\n\n if ($el[0].f7Messagebar) return $el[0].f7Messagebar;\n\n $el[0].f7Messagebar = messagebar;\n\n // Page and PageContent\n const $pageEl = $el.parents('.page').eq(0);\n const $pageContentEl = $pageEl.find('.page-content').eq(0);\n\n // Area\n const $areaEl = $el.find('.messagebar-area');\n\n // Textarea\n let $textareaEl;\n if (messagebar.params.textareaEl) {\n $textareaEl = $(messagebar.params.textareaEl);\n } else {\n $textareaEl = $el.find('textarea');\n }\n\n // Attachments & Library\n const $attachmentsEl = $el.find('.messagebar-attachments');\n const $sheetEl = $el.find('.messagebar-sheet');\n\n if (messagebar.params.top) {\n $el.addClass('messagebar-top');\n }\n\n extend(messagebar, {\n $el,\n el: $el[0],\n $areaEl,\n areaEl: $areaEl[0],\n $textareaEl,\n textareaEl: $textareaEl[0],\n $attachmentsEl,\n attachmentsEl: $attachmentsEl[0],\n attachmentsVisible: $attachmentsEl.hasClass('messagebar-attachments-visible'),\n $sheetEl,\n sheetEl: $sheetEl[0],\n sheetVisible: $sheetEl.hasClass('messagebar-sheet-visible'),\n $pageEl,\n pageEl: $pageEl[0],\n $pageContentEl,\n pageContentEl: $pageContentEl,\n top: $el.hasClass('messagebar-top') || messagebar.params.top,\n attachments: [],\n });\n\n // Events\n function onAppResize() {\n if (messagebar.params.resizePage) {\n messagebar.resizePage();\n }\n }\n function onSubmit(e) {\n e.preventDefault();\n }\n function onAttachmentClick(e) {\n const index = $(this).index();\n if ($(e.target).closest('.messagebar-attachment-delete').length) {\n $(this).trigger('messagebar:attachmentdelete', index);\n messagebar.emit(\n 'local::attachmentDelete messagebarAttachmentDelete',\n messagebar,\n this,\n index,\n );\n } else {\n $(this).trigger('messagebar:attachmentclick', index);\n messagebar.emit(\n 'local::attachmentClick messagebarAttachmentClick',\n messagebar,\n this,\n index,\n );\n }\n }\n function onTextareaChange() {\n messagebar.checkEmptyState();\n messagebar.$el.trigger('messagebar:change');\n messagebar.emit('local::change messagebarChange', messagebar);\n }\n function onTextareaFocus() {\n messagebar.sheetHide();\n messagebar.$el.addClass('messagebar-focused');\n messagebar.$el.trigger('messagebar:focus');\n messagebar.emit('local::focus messagebarFocus', messagebar);\n }\n function onTextareaBlur() {\n messagebar.$el.removeClass('messagebar-focused');\n messagebar.$el.trigger('messagebar:blur');\n messagebar.emit('local::blur messagebarBlur', messagebar);\n }\n\n messagebar.attachEvents = function attachEvents() {\n $el.on('textarea:resize', onAppResize);\n $el.on('submit', onSubmit);\n $el.on('click', '.messagebar-attachment', onAttachmentClick);\n $textareaEl.on('change input', onTextareaChange);\n $textareaEl.on('focus', onTextareaFocus);\n $textareaEl.on('blur', onTextareaBlur);\n app.on('resize', onAppResize);\n };\n messagebar.detachEvents = function detachEvents() {\n $el.off('textarea:resize', onAppResize);\n $el.off('submit', onSubmit);\n $el.off('click', '.messagebar-attachment', onAttachmentClick);\n $textareaEl.off('change input', onTextareaChange);\n $textareaEl.off('focus', onTextareaFocus);\n $textareaEl.off('blur', onTextareaBlur);\n app.off('resize', onAppResize);\n };\n\n // Install Modules\n messagebar.useModules();\n\n // Init\n messagebar.init();\n\n return messagebar;\n }\n\n focus() {\n const messagebar = this;\n messagebar.$textareaEl.focus();\n return messagebar;\n }\n\n blur() {\n const messagebar = this;\n messagebar.$textareaEl.blur();\n return messagebar;\n }\n\n clear() {\n const messagebar = this;\n messagebar.$textareaEl.val('').trigger('change');\n return messagebar;\n }\n\n getValue() {\n const messagebar = this;\n return messagebar.$textareaEl.val().trim();\n }\n\n setValue(value) {\n const messagebar = this;\n messagebar.$textareaEl.val(value).trigger('change');\n return messagebar;\n }\n\n setPlaceholder(placeholder) {\n const messagebar = this;\n messagebar.$textareaEl.attr('placeholder', placeholder);\n return messagebar;\n }\n\n resizePage() {\n const messagebar = this;\n const {\n params,\n $el,\n top,\n $pageEl,\n $pageContentEl,\n $areaEl,\n $textareaEl,\n $sheetEl,\n $attachmentsEl,\n } = messagebar;\n const elHeight = $el[0].offsetHeight;\n let maxHeight = params.maxHeight;\n if (top) {\n /*\n Disable at the moment\n const requiredPaddingTop = elHeight + params.topOffset;\n const currentPaddingTop = parseInt($pageContentEl.css('padding-top'), 10);\n if (requiredPaddingTop !== currentPaddingTop) {\n if (!maxHeight) {\n maxHeight = $pageEl[0].offsetHeight - currentPaddingTop - $sheetEl.outerHeight() - $attachmentsEl.outerHeight() - parseInt($areaEl.css('margin-top'), 10) - parseInt($areaEl.css('margin-bottom'), 10);\n }\n $textareaEl.css('max-height', `${maxHeight}px`);\n $pageContentEl.css('padding-top', `${requiredPaddingTop}px`);\n $el.trigger('messagebar:resizePage');\n messagebar.emit('local::resizepage messagebarResizePage');\n }\n */\n } else {\n const currentPaddingBottom = parseInt($pageContentEl.css('padding-bottom'), 10);\n const requiredPaddingBottom = elHeight + params.bottomOffset;\n if (requiredPaddingBottom !== currentPaddingBottom && $pageContentEl.length) {\n const currentPaddingTop = parseInt($pageContentEl.css('padding-top'), 10);\n const pageScrollHeight = $pageContentEl[0].scrollHeight;\n const pageOffsetHeight = $pageContentEl[0].offsetHeight;\n const pageScrollTop = $pageContentEl[0].scrollTop;\n const scrollOnBottom = pageScrollTop === pageScrollHeight - pageOffsetHeight;\n if (!maxHeight) {\n maxHeight =\n $pageEl[0].offsetHeight -\n currentPaddingTop -\n $sheetEl.outerHeight() -\n $attachmentsEl.outerHeight() -\n parseInt($areaEl.css('margin-top'), 10) -\n parseInt($areaEl.css('margin-bottom'), 10);\n }\n $textareaEl.css('max-height', `${maxHeight}px`);\n $pageContentEl.css('padding-bottom', `${requiredPaddingBottom}px`);\n if (scrollOnBottom) {\n $pageContentEl.scrollTop($pageContentEl[0].scrollHeight - pageOffsetHeight);\n }\n $el.trigger('messagebar:resizepage');\n messagebar.emit('local::resizePage messagebarResizePage', messagebar);\n }\n }\n }\n\n checkEmptyState() {\n const messagebar = this;\n const { $el, $textareaEl } = messagebar;\n const value = $textareaEl.val().trim();\n if (value && value.length) {\n $el.addClass('messagebar-with-value');\n } else {\n $el.removeClass('messagebar-with-value');\n }\n }\n\n attachmentsCreate(innerHTML = '') {\n const messagebar = this;\n const $attachmentsEl = $(`<div class=\"messagebar-attachments\">${innerHTML}</div>`);\n $attachmentsEl.insertBefore(messagebar.$textareaEl);\n extend(messagebar, {\n $attachmentsEl,\n attachmentsEl: $attachmentsEl[0],\n });\n return messagebar;\n }\n\n attachmentsShow(innerHTML = '') {\n const messagebar = this;\n messagebar.$attachmentsEl = messagebar.$el.find('.messagebar-attachments');\n if (messagebar.$attachmentsEl.length === 0) {\n messagebar.attachmentsCreate(innerHTML);\n }\n messagebar.$el.addClass('messagebar-attachments-visible');\n messagebar.attachmentsVisible = true;\n if (messagebar.params.resizePage) {\n messagebar.resizePage();\n }\n return messagebar;\n }\n\n attachmentsHide() {\n const messagebar = this;\n messagebar.$el.removeClass('messagebar-attachments-visible');\n messagebar.attachmentsVisible = false;\n if (messagebar.params.resizePage) {\n messagebar.resizePage();\n }\n return messagebar;\n }\n\n attachmentsToggle() {\n const messagebar = this;\n if (messagebar.attachmentsVisible) {\n messagebar.attachmentsHide();\n } else {\n messagebar.attachmentsShow();\n }\n return messagebar;\n }\n\n renderAttachment(attachment) {\n const messagebar = this;\n if (messagebar.params.renderAttachment) {\n return messagebar.params.renderAttachment.call(messagebar, attachment);\n }\n return `\n <div class=\"messagebar-attachment\">\n <img src=\"${attachment}\">\n <span class=\"messagebar-attachment-delete\"></span>\n </div>\n `;\n }\n\n renderAttachments() {\n const messagebar = this;\n let html;\n if (messagebar.params.renderAttachments) {\n html = messagebar.params.renderAttachments.call(messagebar, messagebar.attachments);\n } else {\n html = `${messagebar.attachments\n .map((attachment) => messagebar.renderAttachment(attachment))\n .join('')}`;\n }\n if (messagebar.$attachmentsEl.length === 0) {\n messagebar.attachmentsCreate(html);\n } else {\n messagebar.$attachmentsEl.html(html);\n }\n }\n\n sheetCreate(innerHTML = '') {\n const messagebar = this;\n const $sheetEl = $(`<div class=\"messagebar-sheet\">${innerHTML}</div>`);\n messagebar.$el.append($sheetEl);\n extend(messagebar, {\n $sheetEl,\n sheetEl: $sheetEl[0],\n });\n return messagebar;\n }\n\n sheetShow(innerHTML = '') {\n const messagebar = this;\n messagebar.$sheetEl = messagebar.$el.find('.messagebar-sheet');\n if (messagebar.$sheetEl.length === 0) {\n messagebar.sheetCreate(innerHTML);\n }\n messagebar.$el.addClass('messagebar-sheet-visible');\n messagebar.sheetVisible = true;\n if (messagebar.params.resizePage) {\n messagebar.resizePage();\n }\n return messagebar;\n }\n\n sheetHide() {\n const messagebar = this;\n messagebar.$el.removeClass('messagebar-sheet-visible');\n messagebar.sheetVisible = false;\n if (messagebar.params.resizePage) {\n messagebar.resizePage();\n }\n return messagebar;\n }\n\n sheetToggle() {\n const messagebar = this;\n if (messagebar.sheetVisible) {\n messagebar.sheetHide();\n } else {\n messagebar.sheetShow();\n }\n return messagebar;\n }\n\n init() {\n const messagebar = this;\n messagebar.attachEvents();\n messagebar.checkEmptyState();\n return messagebar;\n }\n\n destroy() {\n const messagebar = this;\n messagebar.emit('local::beforeDestroy messagebarBeforeDestroy', messagebar);\n messagebar.$el.trigger('messagebar:beforedestroy');\n messagebar.detachEvents();\n if (messagebar.$el[0]) {\n messagebar.$el[0].f7Messagebar = null;\n delete messagebar.$el[0].f7Messagebar;\n }\n deleteProps(messagebar);\n }\n}\n\nexport default Messagebar;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport Messagebar from './messagebar-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'messagebar',\n static: {\n Messagebar,\n },\n create() {\n const app = this;\n app.messagebar = ConstructorMethods({\n defaultSelector: '.messagebar',\n constructor: Messagebar,\n app,\n domProp: 'f7Messagebar',\n addMethods:\n 'clear getValue setValue setPlaceholder resizePage focus blur attachmentsCreate attachmentsShow attachmentsHide attachmentsToggle renderAttachments sheetCreate sheetShow sheetHide sheetToggle'.split(\n ' ',\n ),\n });\n },\n on: {\n tabBeforeRemove(tabEl) {\n const app = this;\n $(tabEl)\n .find('.messagebar-init')\n .each((messagebarEl) => {\n app.messagebar.destroy(messagebarEl);\n });\n },\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('.messagebar-init')\n .each((messagebarEl) => {\n app.messagebar.create(extend({ el: messagebarEl }, $(messagebarEl).dataset()));\n });\n },\n pageBeforeRemove(page) {\n const app = this;\n page.$el.find('.messagebar-init').each((messagebarEl) => {\n app.messagebar.destroy(messagebarEl);\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.messagebar-init').each((messagebarEl) => {\n app.messagebar.create(extend({ el: messagebarEl }, $(messagebarEl).dataset()));\n });\n },\n },\n vnode: {\n 'messagebar-init': {\n insert(vnode) {\n const app = this;\n const messagebarEl = vnode.elm;\n app.messagebar.create(extend({ el: messagebarEl }, $(messagebarEl).dataset()));\n },\n destroy(vnode) {\n const app = this;\n const messagebarEl = vnode.elm;\n app.messagebar.destroy(messagebarEl);\n },\n },\n },\n};\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 && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\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}\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 { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction 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 = getComputedStyle(el);\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}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\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 (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : [classes]));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\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}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, elementIndex as g, getTranslate as h, elementTransitionEnd as i, isObject as j, getSlideTransformEl as k, elementStyle as l, elementNextAll as m, nextTick as n, elementPrevAll as o, animateCSSModeScroll as p, extend as q, deleteProps as r, setCSSProperty as s };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, l as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, m as elementNextAll, o as elementPrevAll, h as getTranslate, p as animateCSSModeScroll, n as nextTick, d as now, q as extend, g as elementIndex, c as createElement, r as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\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 };\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)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\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\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\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 (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\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.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\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.__emitterProxy && eventHandler.__emitterProxy === 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 || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\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 } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass);\n });\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides[i].classList.add(params.slideVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n activeSlide = slides[activeIndex];\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n\n // Next Slide\n let nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n }\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n }\n return;\n }\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (swiper.slides[activeIndex]) {\n realIndex = parseInt(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = e.closest(`.${params.slideClass}, swiper-slide`);\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled) return swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10));\n let loopedSlides = params.loopedSlides || slidesPerView;\n if (loopedSlides % params.slidesPerGroup !== 0) {\n loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup;\n }\n swiper.loopedSlides = loopedSlides;\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(swiper.slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n // prepend last slides before start\n if (activeSlideIndex < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n prependSlidesIndexes.push(slides.length - index - 1);\n }\n } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {\n slidesAppended = Math.max(activeSlideIndex - (swiper.slides.length - loopedSlides * 2), params.slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlidesIndexes.push(index);\n }\n }\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else {\n if (setTranslate) {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n data.evCache.push(event);\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) data.evCache[pointerIndex] = e;\n const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e;\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n prevX: swiper.touches.currentX,\n prevY: swiper.touches.currentY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n if (!data.isMoved) {\n if (isLoop) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && Math.abs(diff) >= 1) {\n // need another loop fix\n swiper.loopFix({\n direction: swiper.swipeDirection,\n setTranslate: true\n });\n loopFixed = true;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && !loopFixed && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && !loopFixed && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === event.pointerId);\n if (pointerIndex >= 0) {\n data.evCache.splice(pointerIndex, 1);\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(event.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(event.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n\n // Touch Events\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopedSlides: null,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n evCache: []\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === 'SWIPER-CONTAINER') {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.el.swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { s as setCSSProperty, e as elementChildren, c as createElement } from '../shared/utils.mjs';\n\nfunction Virtual(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n const document = getDocument();\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n const tempDOM = document.createElement('div');\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n // eslint-disable-next-line\n let slideEl;\n if (params.renderSlide) {\n slideEl = params.renderSlide.call(swiper, slide, index);\n if (typeof slideEl === 'string') {\n tempDOM.innerHTML = slideEl;\n slideEl = tempDOM.children[0];\n }\n } else if (swiper.isElement) {\n slideEl = createElement('swiper-slide');\n } else {\n slideEl = createElement('div', swiper.params.slideClass);\n }\n slideEl.setAttribute('data-swiper-slide-index', index);\n if (!params.renderSlide) {\n slideEl.innerHTML = slide;\n }\n if (params.cache) swiper.virtual.cache[index] = slideEl;\n return slideEl;\n }\n function update(force) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides,\n loop: isLoop\n } = swiper.params;\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;\n }\n let from = activeIndex - slidesBefore;\n let to = activeIndex + slidesAfter;\n if (!isLoop) {\n from = Math.max(from, 0);\n to = Math.min(to, slides.length - 1);\n }\n let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n if (isLoop && activeIndex >= slidesBefore) {\n from -= slidesBefore;\n if (!centeredSlides) offset += swiper.slidesGrid[0];\n } else if (isLoop && activeIndex < slidesBefore) {\n from = -slidesBefore;\n if (centeredSlides) offset += swiper.slidesGrid[0];\n }\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n slidesBefore,\n slidesAfter\n });\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n emit('virtualUpdate');\n }\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n }\n swiper.updateProgress();\n emit('virtualUpdate');\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()\n });\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n } else {\n emit('virtualUpdate');\n }\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n if (force) {\n swiper.slidesEl.querySelectorAll(`.${swiper.params.slideClass}, swiper-slide`).forEach(slideEl => {\n slideEl.remove();\n });\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n const slideIndex = getSlideIndex(i);\n swiper.slidesEl.querySelectorAll(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${slideIndex}\"], swiper-slide[data-swiper-slide-index=\"${slideIndex}\"]`).forEach(slideEl => {\n slideEl.remove();\n });\n }\n }\n }\n const loopFrom = isLoop ? -slides.length : 0;\n const loopTo = isLoop ? slides.length * 2 : slides.length;\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n const slideIndex = getSlideIndex(i);\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(slideIndex);\n } else {\n if (i > previousTo) appendIndexes.push(slideIndex);\n if (i < previousFrom) prependIndexes.push(slideIndex);\n }\n }\n }\n appendIndexes.forEach(index => {\n swiper.slidesEl.append(renderSlide(slides[index], index));\n });\n if (isLoop) {\n for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {\n const index = prependIndexes[i];\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n }\n } else {\n prependIndexes.sort((a, b) => b - a);\n prependIndexes.forEach(index => {\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n });\n }\n elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n onRendered();\n }\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n update(true);\n }\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const cachedEl = cache[cachedIndex];\n const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');\n if (cachedElIndex) {\n cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n function removeAllSlides() {\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n update(true);\n swiper.slideTo(0, 0);\n }\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n let domSlidesAssigned;\n if (typeof swiper.passedParams.virtual.slides === 'undefined') {\n const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));\n if (slides && slides.length) {\n swiper.virtual.slides = [...slides];\n domSlidesAssigned = true;\n slides.forEach((slideEl, slideIndex) => {\n slideEl.setAttribute('data-swiper-slide-index', slideIndex);\n swiper.virtual.cache[slideIndex] = slideEl;\n slideEl.remove();\n });\n }\n }\n if (!domSlidesAssigned) {\n swiper.virtual.slides = swiper.params.virtual.slides;\n }\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n if (!swiper.params.initialSlide) {\n update();\n }\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}\n\nexport { Virtual as default };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { a as elementParents, b as elementOffset } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Keyboard(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const el = swiper.el;\n const swiperWidth = el.clientWidth;\n const swiperHeight = el.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = elementOffset(el);\n if (rtl) swiperOffset.left -= el.scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n emit('keyPress', kc);\n return undefined;\n }\n function enable() {\n if (swiper.keyboard.enabled) return;\n document.addEventListener('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n function disable() {\n if (!swiper.keyboard.enabled) return;\n document.removeEventListener('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}\n\nexport { Keyboard as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { n as nextTick, d as now } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Mousewheel(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {\n return true;\n }\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}\n\nexport { Mousewheel as default };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { f as elementOuterSize, g as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const realIndex = swiper.realIndex;\n const newSlideIndex = swiper.getSlideIndexByData(index);\n const currentSlideIndex = swiper.getSlideIndexByData(swiper.realIndex);\n if (newSlideIndex > swiper.slides.length - swiper.loopedSlides) {\n const indexBeforeLoopFix = swiper.activeIndex;\n swiper.loopFix({\n direction: newSlideIndex > currentSlideIndex ? 'next' : 'prev',\n activeSlideIndex: newSlideIndex,\n slideTo: false\n });\n const indexAfterFix = swiper.activeIndex;\n if (indexBeforeLoopFix === indexAfterFix) {\n swiper.slideToLoop(realIndex, 0, false, true);\n }\n }\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\"></${params.bulletElement}>`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `<span class=\"${params.currentClass}\"></span>` + ' / ' + `<span class=\"${params.totalClass}\"></span>`;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { c as createElement, n as nextTick, b as elementOffset } from '../shared/utils.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\n\nfunction Scrollbar(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(`.${swiper.params.scrollbar.dragClass}`);\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n }\n disableDraggable();\n }\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}\n\nexport { Scrollbar as default };\n","import { e as elementChildren } from '../shared/utils.mjs';\n\nfunction Parallax(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n parallax: {\n enabled: false\n }\n });\n const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const rtlFactor = rtl ? -1 : 1;\n const p = el.getAttribute('data-swiper-parallax') || '0';\n let x = el.getAttribute('data-swiper-parallax-x');\n let y = el.getAttribute('data-swiper-parallax-y');\n const scale = el.getAttribute('data-swiper-parallax-scale');\n const opacity = el.getAttribute('data-swiper-parallax-opacity');\n const rotate = el.getAttribute('data-swiper-parallax-rotate');\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n el.style.opacity = currentOpacity;\n }\n let transform = `translate3d(${x}, ${y}, 0px)`;\n if (typeof scale !== 'undefined' && scale !== null) {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n transform += ` scale(${currentScale})`;\n }\n if (rotate && typeof rotate !== 'undefined' && rotate !== null) {\n const currentRotate = rotate * progress * -1;\n transform += ` rotate(${currentRotate}deg)`;\n }\n el.style.transform = transform;\n };\n const setTranslate = () => {\n const {\n el,\n slides,\n progress,\n snapGrid,\n isElement\n } = swiper;\n const elements = elementChildren(el, elementsSelector);\n if (swiper.isElement) {\n elements.push(...elementChildren(swiper.hostEl, elementsSelector));\n }\n elements.forEach(subEl => {\n setTransform(subEl, progress);\n });\n slides.forEach((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => {\n setTransform(subEl, slideProgress);\n });\n });\n };\n const setTransition = function (duration) {\n if (duration === void 0) {\n duration = swiper.params.speed;\n }\n const {\n el,\n hostEl\n } = swiper;\n const elements = [...el.querySelectorAll(elementsSelector)];\n if (swiper.isElement) {\n elements.push(...hostEl.querySelectorAll(elementsSelector));\n }\n elements.forEach(parallaxEl => {\n let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;\n });\n };\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}\n\nexport { Parallax as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren, a as elementParents, b as elementOffset, h as getTranslate } from '../shared/utils.mjs';\n\nfunction Zoom(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const evCache = [];\n const gesture = {\n originX: 0,\n originY: 0,\n slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n imageEl: undefined,\n imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.imageEl;\n const slideEl = gesture.slideEl;\n emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n }\n });\n function getDistanceBetweenTouches() {\n if (evCache.length < 2) return 1;\n const x1 = evCache[0].pageX;\n const y1 = evCache[0].pageY;\n const x2 = evCache[1].pageX;\n const y2 = evCache[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n }\n function getScaleOrigin() {\n if (evCache.length < 2) return {\n x: null,\n y: null\n };\n const box = gesture.imageEl.getBoundingClientRect();\n return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y) / currentScale];\n }\n function getSlideSelector() {\n return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n }\n function eventWithinSlide(e) {\n const slideSelector = getSlideSelector();\n if (e.target.matches(slideSelector)) return true;\n if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;\n return false;\n }\n function eventWithinZoomContainer(e) {\n const selector = `.${swiper.params.zoom.containerClass}`;\n if (e.target.matches(selector)) return true;\n if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;\n return false;\n }\n\n // Events\n function onGestureStart(e) {\n if (e.pointerType === 'mouse') {\n evCache.splice(0, evCache.length);\n }\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n evCache.push(e);\n if (evCache.length < 2) {\n return;\n }\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches();\n if (!gesture.slideEl) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n if (!gesture.imageWrapEl) {\n gesture.imageEl = undefined;\n return;\n }\n gesture.maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n }\n if (gesture.imageEl) {\n const [originX, originY] = getScaleOrigin();\n gesture.originX = originX;\n gesture.originY = originY;\n gesture.imageEl.style.transitionDuration = '0ms';\n }\n isScaling = true;\n }\n function onGestureChange(e) {\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache[pointerIndex] = e;\n if (evCache.length < 2) {\n return;\n }\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches();\n if (!gesture.imageEl) {\n return;\n }\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function onGestureEnd(e) {\n if (!eventWithinSlide(e)) return;\n if (e.pointerType === 'mouse' && e.type === 'pointerout') return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n if (!gesture.imageEl) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale > 1 && gesture.slideEl) {\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n } else if (zoom.scale <= 1 && gesture.slideEl) {\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n }\n if (zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n gesture.slideEl = undefined;\n }\n }\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.imageEl) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n const event = evCache.length > 0 ? evCache[0] : e;\n image.touchesStart.x = event.pageX;\n image.touchesStart.y = event.pageY;\n }\n function onTouchMove(e) {\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !gesture.slideEl) return;\n if (!image.isMoved) {\n image.width = gesture.imageEl.offsetWidth;\n image.height = gesture.imageEl.offsetHeight;\n image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0;\n image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;\n image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;\n const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));\n if (touchesDiff > 5) {\n swiper.allowClick = false;\n }\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n image.isMoved = true;\n const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);\n const {\n originX,\n originY\n } = gesture;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTouchEnd() {\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {\n if (gesture.imageEl) {\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n }\n if (gesture.imageWrapEl) {\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n }\n gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);\n zoom.scale = 1;\n currentScale = 1;\n gesture.slideEl = undefined;\n gesture.imageEl = undefined;\n gesture.imageWrapEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n }\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (e && e.target) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n }\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.pageX;\n touchY = e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n const forceZoomRatio = typeof e === 'number' ? e : null;\n if (currentScale === 1 && forceZoomRatio) {\n touchX = undefined;\n touchY = undefined;\n }\n zoom.scale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n currentScale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n if (e && !(currentScale === 1 && forceZoomRatio)) {\n slideWidth = gesture.slideEl.offsetWidth;\n slideHeight = gesture.slideEl.offsetHeight;\n offsetX = elementOffset(gesture.slideEl).left + window.scrollX;\n offsetY = elementOffset(gesture.slideEl).top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.imageEl.offsetWidth;\n imageHeight = gesture.imageEl.offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n if (forceZoomRatio && zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n }\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n zoom.scale = 1;\n currentScale = 1;\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n gesture.slideEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n\n // Toggle Zoom\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n function getListeners() {\n const passiveListener = swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = swiper.params.passiveListeners ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n // Attach/Detach Events\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd();\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}\n\nexport { Zoom as default };\n","import { n as nextTick, i as elementTransitionEnd } from '../shared/utils.mjs';\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nfunction Controller(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n }\n });\n\n swiper.controller = {\n control: undefined\n };\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n return this;\n }\n function getInterpolateFunction(c) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n function setControlledTranslate(c) {\n if (c.destroyed) return;\n\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {\n multiplier = 1;\n }\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n if (c.destroyed) return;\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n elementTransitionEnd(c.wrapperEl, () => {\n if (!controlled) return;\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n function removeSpline() {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n on('beforeInit', () => {\n if (typeof window !== 'undefined' && (\n // eslint-disable-line\n typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {\n const controlElement = document.querySelector(swiper.params.controller.control);\n if (controlElement && controlElement.swiper) {\n swiper.controller.control = controlElement.swiper;\n } else if (controlElement) {\n const onControllerSwiper = e => {\n swiper.controller.control = e.detail[0];\n swiper.update();\n controlElement.removeEventListener('init', onControllerSwiper);\n };\n controlElement.addEventListener('init', onControllerSwiper);\n }\n return;\n }\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}\n\nexport { Controller as default };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElement, g as elementIndex } from '../shared/utils.mjs';\n\nfunction A11y(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.innerHTML = '';\n notification.innerHTML = message;\n }\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n function makeElFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '0');\n });\n }\n function makeElNotFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '-1');\n });\n }\n function addElRole(el, role) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('role', role);\n });\n }\n function addElRoleDescription(el, description) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-roledescription', description);\n });\n }\n function addElControls(el, controls) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-controls', controls);\n });\n }\n function addElLabel(el, label) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-label', label);\n });\n }\n function addElId(el, id) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('id', id);\n });\n }\n function addElLive(el, live) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-live', live);\n });\n }\n function disableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', true);\n });\n }\n function enableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', false);\n });\n }\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const targetEl = e.target;\n if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {\n if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;\n }\n if (swiper.navigation && swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) {\n targetEl.click();\n }\n }\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (prevEl) {\n if (swiper.isBeginning) {\n disableEl(prevEl);\n makeElNotFocusable(prevEl);\n } else {\n enableEl(prevEl);\n makeElFocusable(prevEl);\n }\n }\n if (nextEl) {\n if (swiper.isEnd) {\n disableEl(nextEl);\n makeElNotFocusable(nextEl);\n } else {\n enableEl(nextEl);\n makeElFocusable(nextEl);\n }\n }\n }\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.forEach(bulletEl => {\n if (swiper.params.pagination.clickable) {\n makeElFocusable(bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n addElRole(bulletEl, 'button');\n addElLabel(bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, elementIndex(bulletEl) + 1));\n }\n }\n if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) {\n bulletEl.setAttribute('aria-current', 'true');\n } else {\n bulletEl.removeAttribute('aria-current');\n }\n });\n }\n const initNavEl = (el, wrapperId, message) => {\n makeElFocusable(el);\n if (el.tagName !== 'BUTTON') {\n addElRole(el, 'button');\n el.addEventListener('keydown', onEnterOrSpaceKey);\n }\n addElLabel(el, message);\n addElControls(el, wrapperId);\n };\n const handlePointerDown = () => {\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n const handleFocus = e => {\n if (swiper.a11y.clicked) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n };\n const initSlides = () => {\n const params = swiper.params.a11y;\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n }\n if (params.slideRole) {\n addElRole(swiper.slides, params.slideRole);\n }\n const slidesLength = swiper.slides.length;\n if (params.slideLabelMessage) {\n swiper.slides.forEach((slideEl, index) => {\n const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel(slideEl, ariaLabelMessage);\n });\n }\n };\n const init = () => {\n const params = swiper.params.a11y;\n swiper.el.append(liveRegion);\n\n // Container\n const containerEl = swiper.el;\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n addElLabel(containerEl, params.containerMessage);\n }\n\n // Wrapper\n const wrapperEl = swiper.wrapperEl;\n const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId(wrapperEl, wrapperId);\n addElLive(wrapperEl, live);\n\n // Slide\n initSlides();\n\n // Navigation\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));\n }\n if (prevEl) {\n prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el];\n paginationEl.forEach(el => {\n el.addEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n swiper.el.addEventListener('pointerup', handlePointerUp, true);\n };\n function destroy() {\n if (liveRegion) liveRegion.remove();\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n if (prevEl) {\n prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el];\n paginationEl.forEach(el => {\n el.removeEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n swiper.el.removeEventListener('focus', handleFocus, true);\n swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n }\n on('beforeInit', () => {\n liveRegion = createElement('span', swiper.params.a11y.notificationClass);\n liveRegion.setAttribute('aria-live', 'assertive');\n liveRegion.setAttribute('aria-atomic', 'true');\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}\n\nexport { A11y as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\n\nfunction History(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides',\n keepQuery: false\n }\n });\n let initialized = false;\n let paths = {};\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n const getPathValues = urlOverride => {\n const window = getWindow();\n let location;\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n const slide = swiper.slides[index];\n let value = slugify(slide.getAttribute('data-history'));\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key ? `${key}/` : ''}${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key ? `${key}/` : ''}${value}`;\n }\n if (swiper.params.history.keepQuery) {\n value += location.search;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides[i];\n const slideHistory = slugify(slide.getAttribute('data-history'));\n if (slideHistory === value) {\n const index = swiper.getSlideIndex(slide);\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n const init = () => {\n const window = getWindow();\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) {\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n return;\n }\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n const destroy = () => {\n const window = getWindow();\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}\n\nexport { History as default };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren } from '../shared/utils.mjs';\n\nfunction HashNavigation(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n on\n } = _ref;\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n getSlideIndex(_s, hash) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0];\n if (!slideWithHash) return 0;\n const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);\n return index;\n }\n return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash=\"${hash}\"], swiper-slide[data-hash=\"${hash}\"]`)[0]);\n }\n }\n });\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);\n if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;\n swiper.slideTo(newIndex);\n }\n };\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${activeSlideHash}` || '');\n emit('hashSet');\n } else {\n document.location.hash = activeSlideHash || '';\n emit('hashSet');\n }\n };\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);\n swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);\n }\n if (swiper.params.hashNavigation.watchState) {\n window.addEventListener('hashchange', onHashChange);\n }\n };\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n window.removeEventListener('hashchange', onHashChange);\n }\n };\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}\n\nexport { HashNavigation as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime;\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n autoplayStartTime = new Date().getTime();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { j as isObject, e as elementChildren } from '../shared/utils.mjs';\n\nfunction Thumb(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n swiper.slideToLoop(slideToIndex);\n } else {\n swiper.slideTo(slideToIndex);\n }\n }\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper.update();\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).forEach(slideEl => {\n slideEl.classList.add(thumbActiveClass);\n });\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n if (thumbsSwiper.slides[swiper.realIndex + i]) {\n thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);\n }\n }\n }\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n const currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0];\n newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n const document = getDocument();\n const getThumbsElementAndInit = () => {\n const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n if (thumbsElement && thumbsElement.swiper) {\n thumbs.swiper = thumbsElement.swiper;\n init();\n update(true);\n } else if (thumbsElement) {\n const onThumbsSwiper = e => {\n thumbs.swiper = e.detail[0];\n thumbsElement.removeEventListener('init', onThumbsSwiper);\n init();\n update(true);\n thumbs.swiper.update();\n swiper.update();\n };\n thumbsElement.addEventListener('init', onThumbsSwiper);\n }\n return thumbsElement;\n };\n const watchForThumbsToAppear = () => {\n if (swiper.destroyed) return;\n const thumbsElement = getThumbsElementAndInit();\n if (!thumbsElement) {\n requestAnimationFrame(watchForThumbsToAppear);\n }\n };\n requestAnimationFrame(watchForThumbsToAppear);\n } else {\n init();\n update(true);\n }\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}\n\nexport { Thumb as default };\n","import { d as now, i as elementTransitionEnd } from '../shared/utils.mjs';\n\nfunction freeMode(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n once\n } = _ref;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd(_ref2) {\n let {\n currentPos\n } = _ref2;\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}\n\nexport { freeMode as default };\n","function Grid(_ref) {\n let {\n swiper,\n extendParams\n } = _ref;\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n const getSpaceBetween = () => {\n let spaceBetween = swiper.params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n return spaceBetween;\n };\n const initSlides = slidesLength => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n numFullColumns = Math.floor(slidesLength / rows);\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n slidesPerRow = slidesNumberEvenToRows / rows;\n };\n const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\n const {\n slidesPerGroup\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows,\n fill\n } = swiper.params.grid;\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.style.order = newSlideOrderIndex;\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.row = row;\n slide.column = column;\n slide.style[getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';\n };\n const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\n const {\n centeredSlides,\n roundLengths\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n swiper.wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n if (centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid.splice(0, snapGrid.length);\n snapGrid.push(...newSlidesGrid);\n }\n };\n swiper.grid = {\n initSlides,\n updateSlide,\n updateWrapperSize\n };\n}\n\nexport { Grid as default };\n","function appendSlide(slides) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n const appendElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.append(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.append(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) appendElement(slides[i]);\n }\n } else {\n appendElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n}\n\nfunction prependSlide(slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n const prependElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.prepend(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.prepend(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) prependElement(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n prependElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide(index, slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.recalcSlides();\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides[i];\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) slidesEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n slidesEl.append(slides);\n }\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n slidesEl.append(slidesBuffer[i]);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nfunction Manipulation(_ref) {\n let {\n swiper\n } = _ref;\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}\n\nexport { Manipulation as default };\n","function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}\n\nexport { effectInit as e };\n","import { k as getSlideTransformEl } from './utils.mjs';\n\nfunction effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}\n\nexport { effectTarget as e };\n","import { i as elementTransitionEnd } from './utils.mjs';\n\nfunction effectVirtualTransitionEnd(_ref) {\n let {\n swiper,\n duration,\n transformElements,\n allSlides\n } = _ref;\n const {\n activeIndex\n } = swiper;\n const getSlide = el => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0];\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}\n\nexport { effectVirtualTransitionEnd as e };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { k as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectFade(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFade as default };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { c as createElement } from '../shared/utils.mjs';\n\nfunction EffectCube(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n const createSlideShadows = (slideEl, progress, isHorizontal) => {\n let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));\n slideEl.append(shadowBefore);\n }\n if (!shadowAfter) {\n shadowAfter = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));\n slideEl.append(shadowAfter);\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // create new ones\n const isHorizontal = swiper.isHorizontal();\n swiper.slides.forEach(slideEl => {\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows(slideEl, progress, isHorizontal);\n });\n };\n const setTranslate = () => {\n const {\n el,\n wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n swiper.wrapperEl.append(cubeShadowEl);\n }\n cubeShadowEl.style.height = `${swiperWidth}px`;\n } else {\n cubeShadowEl = el.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n el.append(cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) {\n tx = -tx;\n }\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n slideEl.style.transform = transform;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress, isHorizontal);\n }\n }\n wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;\n wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`;\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`;\n }\n }\n const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;\n wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`;\n wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n };\n const setTransition = duration => {\n const {\n el,\n slides\n } = swiper;\n slides.forEach(slideEl => {\n slideEl.style.transitionDuration = `${duration}ms`;\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {\n subEl.style.transitionDuration = `${duration}ms`;\n });\n });\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n const shadowEl = el.querySelector('.swiper-cube-shadow');\n if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;\n }\n };\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.cubeEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}\n\nexport { EffectCube as default };\n","import { k as getSlideTransformEl, c as createElement } from './utils.mjs';\n\nfunction createShadow(suffix, slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;\n const shadowContainer = getSlideTransformEl(slideEl);\n let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);\n if (!shadowEl) {\n shadowEl = createElement('div', shadowClass.split(' '));\n shadowContainer.append(shadowEl);\n }\n return shadowEl;\n}\n\nexport { createShadow as c };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { k as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectFlip(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n });\n const createSlideShadows = (slideEl, progress) => {\n let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n if (!shadowAfter) {\n shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // Set shadows\n swiper.params.flipEffect;\n swiper.slides.forEach(slideEl => {\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n createSlideShadows(slideEl, progress);\n });\n };\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n const offset = slideEl.swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress);\n }\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.flipEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFlip as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { k as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCoverflow(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n });\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const slideEl = slides[i];\n const slideSize = slidesSizesGrid[i];\n const slideOffset = slideEl.swiperSlideOffset;\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = slideTransform;\n slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBeforeEl) {\n shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top');\n }\n if (!shadowAfterEl) {\n shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');\n }\n if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n };\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}\n\nexport { EffectCoverflow as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { k as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCreative(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n creativeEffect: {\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n const setTranslate = () => {\n const {\n slides,\n wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);\n }\n const offset = slideEl.swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n }\n // set translate\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n });\n // set rotates\n r.forEach((value, index) => {\n r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n });\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\n\n // Set shadows\n if (custom && data.shadow || !custom) {\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl && data.shadow) {\n shadowEl = createShadow('creative', slideEl);\n }\n if (shadowEl) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n targetEl.style.opacity = opacityString;\n if (data.origin) {\n targetEl.style.transformOrigin = data.origin;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCreative as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { k as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCards(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cardsEffect: {\n slideShadows: true,\n rotate: true,\n perSlideRotate: 2,\n perSlideOffset: 8\n }\n });\n const setTranslate = () => {\n const {\n slides,\n activeIndex,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = rtl ? -swiper.translate : swiper.translate;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = slideEl.swiperSlideOffset;\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;\n }\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -params.perSlideRotate * progress;\n let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;\n const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n if (progress < 0) {\n // next\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n\n /* eslint-disable */\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)\n scale(${scaleString})\n `;\n /* eslint-enable */\n\n if (params.slideShadows) {\n // Set shadows\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl) {\n shadowEl = createShadow('cards', slideEl);\n }\n if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCards as default };\n","/**\n * Swiper 10.2.0\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2023 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: August 17, 2023\n */\n\nimport { S as Swiper } from './shared/swiper-core.mjs';\nimport Virtual from './modules/virtual.mjs';\nimport Keyboard from './modules/keyboard.mjs';\nimport Mousewheel from './modules/mousewheel.mjs';\nimport Navigation from './modules/navigation.mjs';\nimport Pagination from './modules/pagination.mjs';\nimport Scrollbar from './modules/scrollbar.mjs';\nimport Parallax from './modules/parallax.mjs';\nimport Zoom from './modules/zoom.mjs';\nimport Controller from './modules/controller.mjs';\nimport A11y from './modules/a11y.mjs';\nimport History from './modules/history.mjs';\nimport HashNavigation from './modules/hash-navigation.mjs';\nimport Autoplay from './modules/autoplay.mjs';\nimport Thumb from './modules/thumbs.mjs';\nimport freeMode from './modules/free-mode.mjs';\nimport Grid from './modules/grid.mjs';\nimport Manipulation from './modules/manipulation.mjs';\nimport EffectFade from './modules/effect-fade.mjs';\nimport EffectCube from './modules/effect-cube.mjs';\nimport EffectFlip from './modules/effect-flip.mjs';\nimport EffectCoverflow from './modules/effect-coverflow.mjs';\nimport EffectCreative from './modules/effect-creative.mjs';\nimport EffectCards from './modules/effect-cards.mjs';\n\n// Swiper Class\nconst modules = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Controller, A11y, History, HashNavigation, Autoplay, Thumb, freeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards];\nSwiper.use(modules);\n\nexport { Swiper, Swiper as default };\n","/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopedSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideNextClass', 'slidePrevClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nfunction attrToProp(attrName) {\n if (attrName === void 0) {\n attrName = '';\n }\n return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className) {\n if (className === void 0) {\n className = '';\n }\n if (!className) return 'swiper-wrapper';\n if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;\n return className;\n}\n\nfunction updateSwiper(_ref) {\n let {\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n } = _ref;\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n let loopNeedDestroy;\n let loopNeedEnable;\n let loopNeedReloop;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n if (swiper.isElement) {\n swiper[mod].prevEl.remove();\n swiper[mod].nextEl.remove();\n }\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n if (swiper.isElement) {\n swiper[mod].el.remove();\n }\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n if (changedParams.includes('loop') && swiper.isElement) {\n if (currentParams.loop && !passedParams.loop) {\n loopNeedDestroy = true;\n } else if (!currentParams.loop && passedParams.loop) {\n loopNeedEnable = true;\n } else {\n loopNeedReloop = true;\n }\n }\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n destroyModule(key);\n }\n } else {\n const newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n }\n if (changedParams.includes('children') && slides && currentParams.loop) {\n loopNeedReloop = true;\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n paginationEl = document.createElement('div');\n paginationEl.classList.add('swiper-pagination');\n paginationEl.part.add('pagination');\n swiper.el.appendChild(paginationEl);\n }\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n scrollbarEl = document.createElement('div');\n scrollbarEl.classList.add('swiper-scrollbar');\n scrollbarEl.part.add('scrollbar');\n swiper.el.appendChild(scrollbarEl);\n }\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (swiper.isElement) {\n if (!nextEl || typeof nextEl === 'string') {\n nextEl = document.createElement('div');\n nextEl.classList.add('swiper-button-next');\n nextEl.innerHTML = swiper.hostEl.constructor.nextButtonSvg;\n nextEl.part.add('button-next');\n swiper.el.appendChild(nextEl);\n }\n if (!prevEl || typeof prevEl === 'string') {\n prevEl = document.createElement('div');\n prevEl.classList.add('swiper-button-prev');\n prevEl.innerHTML = swiper.hostEl.constructor.prevButtonSvg;\n prevEl.part.add('button-prev');\n swiper.el.appendChild(prevEl);\n }\n }\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n if (loopNeedDestroy || loopNeedReloop) {\n swiper.loopDestroy();\n }\n if (loopNeedEnable || loopNeedReloop) {\n swiper.loopCreate();\n }\n swiper.update();\n}\n\nexport { needsPagination as a, needsScrollbar as b, attrToProp as c, uniqueClasses as d, extend as e, isObject as i, needsNavigation as n, paramsList as p, updateSwiper as u, wrapperClass as w };\n","import { e as extend, c as attrToProp, p as paramsList } from './update-swiper.mjs';\nimport { d as defaults } from './swiper-core.mjs';\n\nconst formatValue = val => {\n if (parseFloat(val) === Number(val)) return Number(val);\n if (val === 'true') return true;\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'null') return null;\n if (val === 'undefined') return undefined;\n if (typeof val === 'string' && val.includes('{') && val.includes('}') && val.includes('\"')) {\n let v;\n try {\n v = JSON.parse(val);\n } catch (err) {\n v = val;\n }\n return v;\n }\n return val;\n};\nconst modulesParamsList = ['a11y', 'autoplay', 'controller', 'cards-effect', 'coverflow-effect', 'creative-effect', 'cube-effect', 'fade-effect', 'flip-effect', 'free-mode', 'grid', 'hash-navigation', 'history', 'keyboard', 'mousewheel', 'navigation', 'pagination', 'parallax', 'scrollbar', 'thumbs', 'virtual', 'zoom'];\nfunction getParams(element, propName, propValue) {\n const params = {};\n const passedParams = {};\n extend(params, defaults);\n const localParamsList = [...paramsList, 'on'];\n const allowedParams = localParamsList.map(key => key.replace(/_/, ''));\n\n // First check props\n localParamsList.forEach(paramName => {\n paramName = paramName.replace('_', '');\n if (typeof element[paramName] !== 'undefined') {\n passedParams[paramName] = element[paramName];\n }\n });\n\n // Attributes\n const attrsList = [...element.attributes];\n if (typeof propName === 'string' && typeof propValue !== 'undefined') {\n attrsList.push({\n name: propName,\n value: propValue\n });\n }\n attrsList.forEach(attr => {\n const moduleParam = modulesParamsList.filter(mParam => attr.name.indexOf(`${mParam}-`) === 0)[0];\n if (moduleParam) {\n const parentObjName = attrToProp(moduleParam);\n const subObjName = attrToProp(attr.name.split(`${moduleParam}-`)[1]);\n if (typeof passedParams[parentObjName] === 'undefined') passedParams[parentObjName] = {};\n if (passedParams[parentObjName] === true) {\n passedParams[parentObjName] = {\n enabled: true\n };\n }\n passedParams[parentObjName][subObjName] = formatValue(attr.value);\n } else {\n const name = attrToProp(attr.name);\n if (!allowedParams.includes(name)) return;\n const value = formatValue(attr.value);\n if (passedParams[name] && modulesParamsList.includes(attr.name)) {\n if (passedParams[name].constructor !== Object) {\n passedParams[name] = {};\n }\n passedParams[name].enabled = value;\n } else {\n passedParams[name] = value;\n }\n }\n });\n extend(params, passedParams);\n if (params.navigation) {\n params.navigation = {\n prevEl: '.swiper-button-prev',\n nextEl: '.swiper-button-next',\n ...(params.navigation !== true ? params.navigation : {})\n };\n } else if (params.navigation === false) {\n delete params.navigation;\n }\n if (params.scrollbar) {\n params.scrollbar = {\n el: '.swiper-scrollbar',\n ...(params.scrollbar !== true ? params.scrollbar : {})\n };\n } else if (params.scrollbar === false) {\n delete params.scrollbar;\n }\n if (params.pagination) {\n params.pagination = {\n el: '.swiper-pagination',\n ...(params.pagination !== true ? params.pagination : {})\n };\n } else if (params.pagination === false) {\n delete params.pagination;\n }\n return {\n params,\n passedParams\n };\n}\n\nexport { getParams as g };\n","/**\n * Swiper Custom Element 10.2.0\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2023 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: August 17, 2023\n */\n\nimport './swiper-bundle.mjs';\nimport { p as paramsList, n as needsNavigation, a as needsPagination, b as needsScrollbar, u as updateSwiper, c as attrToProp } from './shared/update-swiper.mjs';\nimport { g as getParams } from './shared/get-element-params.mjs';\nimport { S as Swiper } from './shared/swiper-core.mjs';\n\n/* eslint-disable spaced-comment */\n\nconst SwiperCSS = `:host{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{width:100%;height:100%;margin-left:auto;margin-right:auto;position:relative;overflow:hidden;overflow:clip;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-virtual ::slotted(swiper-slide){-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:host{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;-ms-touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}::slotted(.swiper-slide-zoomed){cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode ::slotted(swiper-slide){transition-timing-function:ease-out}.swiper-fade ::slotted(swiper-slide){pointer-events:none;transition-property:opacity}.swiper-fade ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-fade ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-fade ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-cube.swiper-rtl ::slotted(swiper-slide){transform-origin:100% 0}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-next),.swiper-cube ::slotted(.swiper-slide-prev){pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube ::slotted(.swiper-slide-next)+::slotted(swiper-slide){pointer-events:auto;visibility:visible}.swiper-flip{overflow:visible}.swiper-flip ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-flip ::slotted(.swiper-slide-active),.swiper-flip ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-creative ::slotted(swiper-slide){-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards ::slotted(swiper-slide){transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}`\nconst SwiperSlideCSS = `::slotted(.swiper-slide-shadow),::slotted(.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-top){position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}::slotted(.swiper-slide-shadow){background:rgba(0,0,0,.15)}::slotted(.swiper-slide-shadow-left){background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-right){background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-top){background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-bottom){background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear;width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-zoom-container){width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}::slotted(.swiper-zoom-container)>canvas,::slotted(.swiper-zoom-container)>img,::slotted(.swiper-zoom-container)>svg{max-width:100%;max-height:100%;object-fit:contain}`\n\nclass DummyHTMLElement {}\nconst ClassToExtend = typeof window === 'undefined' || typeof HTMLElement === 'undefined' ? DummyHTMLElement : HTMLElement;\nconst arrowSvg = `<svg width=\"11\" height=\"20\" viewBox=\"0 0 11 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0.38296 20.0762C0.111788 19.805 0.111788 19.3654 0.38296 19.0942L9.19758 10.2796L0.38296 1.46497C0.111788 1.19379 0.111788 0.754138 0.38296 0.482966C0.654131 0.211794 1.09379 0.211794 1.36496 0.482966L10.4341 9.55214C10.8359 9.9539 10.8359 10.6053 10.4341 11.007L1.36496 20.0762C1.09379 20.3474 0.654131 20.3474 0.38296 20.0762Z\" fill=\"currentColor\"/></svg>\n `;\nconst addStyle = (shadowRoot, styles) => {\n if (typeof CSSStyleSheet !== 'undefined' && shadowRoot.adoptedStyleSheets) {\n const styleSheet = new CSSStyleSheet();\n styleSheet.replaceSync(styles);\n shadowRoot.adoptedStyleSheets = [styleSheet];\n } else {\n const style = document.createElement('style');\n style.rel = 'stylesheet';\n style.textContent = styles;\n shadowRoot.appendChild(style);\n }\n};\nclass SwiperContainer extends ClassToExtend {\n constructor() {\n super();\n this.attachShadow({\n mode: 'open'\n });\n }\n static get nextButtonSvg() {\n return arrowSvg;\n }\n static get prevButtonSvg() {\n return arrowSvg.replace('/></svg>', ' transform-origin=\"center\" transform=\"rotate(180)\"/></svg>');\n }\n cssStyles() {\n return [SwiperCSS,\n // eslint-disable-line\n ...(this.injectStyles && Array.isArray(this.injectStyles) ? this.injectStyles : [])].join('\\n');\n }\n cssLinks() {\n return this.injectStylesUrls || [];\n }\n calcSlideSlots() {\n const currentSideSlots = this.slideSlots || 0;\n // slide slots\n const slideSlotChildren = [...this.querySelectorAll(`[slot^=slide-]`)].map(child => {\n return parseInt(child.getAttribute('slot').split('slide-')[1], 10);\n });\n this.slideSlots = slideSlotChildren.length ? Math.max(...slideSlotChildren) + 1 : 0;\n if (!this.rendered) return;\n if (this.slideSlots > currentSideSlots) {\n for (let i = currentSideSlots; i < this.slideSlots; i += 1) {\n const slideEl = document.createElement('swiper-slide');\n slideEl.setAttribute('part', `slide slide-${i + 1}`);\n const slotEl = document.createElement('slot');\n slotEl.setAttribute('name', `slide-${i + 1}`);\n slideEl.appendChild(slotEl);\n this.shadowRoot.querySelector('.swiper-wrapper').appendChild(slideEl);\n }\n } else if (this.slideSlots < currentSideSlots) {\n const slides = this.swiper.slides;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (i > this.slideSlots) {\n slides[i].remove();\n }\n }\n }\n }\n render() {\n if (this.rendered) return;\n this.calcSlideSlots();\n\n // local styles\n let localStyles = this.cssStyles();\n if (this.slideSlots > 0) {\n localStyles = localStyles.replace(/::slotted\\(([a-z-0-9.]*)\\)/g, '$1');\n }\n if (localStyles.length) {\n addStyle(this.shadowRoot, localStyles);\n }\n this.cssLinks().forEach(url => {\n const linkExists = this.shadowRoot.querySelector(`link[href=\"${url}\"]`);\n if (linkExists) return;\n const linkEl = document.createElement('link');\n linkEl.rel = 'stylesheet';\n linkEl.href = url;\n this.shadowRoot.appendChild(linkEl);\n });\n // prettier-ignore\n const el = document.createElement('div');\n el.classList.add('swiper');\n el.part = 'container';\n\n // prettier-ignore\n el.innerHTML = `\n <slot name=\"container-start\"></slot>\n <div class=\"swiper-wrapper\" part=\"wrapper\">\n <slot></slot>\n ${Array.from({\n length: this.slideSlots\n }).map((_, index) => `\n <swiper-slide part=\"slide slide-${index}\">\n <slot name=\"slide-${index}\"></slot>\n </swiper-slide>\n `).join('')}\n </div>\n <slot name=\"container-end\"></slot>\n ${needsNavigation(this.passedParams) ? `\n <div part=\"button-prev\" class=\"swiper-button-prev\">${this.constructor.prevButtonSvg}</div>\n <div part=\"button-next\" class=\"swiper-button-next\">${this.constructor.nextButtonSvg}</div>\n ` : ''}\n ${needsPagination(this.passedParams) ? `\n <div part=\"pagination\" class=\"swiper-pagination\"></div>\n ` : ''}\n ${needsScrollbar(this.passedParams) ? `\n <div part=\"scrollbar\" class=\"swiper-scrollbar\"></div>\n ` : ''}\n `;\n this.shadowRoot.appendChild(el);\n this.rendered = true;\n }\n initialize() {\n var _this = this;\n if (this.initialized) return;\n this.initialized = true;\n const {\n params: swiperParams,\n passedParams\n } = getParams(this);\n this.swiperParams = swiperParams;\n this.passedParams = passedParams;\n delete this.swiperParams.init;\n this.render();\n\n // eslint-disable-next-line\n this.swiper = new Swiper(this.shadowRoot.querySelector('.swiper'), {\n ...(swiperParams.virtual ? {} : {\n observer: true,\n observeSlideChildren: this.slideSlots > 0\n }),\n ...swiperParams,\n touchEventsTarget: 'container',\n onAny: function (name) {\n if (name === 'observerUpdate') {\n _this.calcSlideSlots();\n }\n const eventName = swiperParams.eventsPrefix ? `${swiperParams.eventsPrefix}${name.toLowerCase()}` : name.toLowerCase();\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n const event = new CustomEvent(eventName, {\n detail: args,\n bubbles: true,\n cancelable: true\n });\n _this.dispatchEvent(event);\n }\n });\n }\n connectedCallback() {\n if (this.initialized && this.nested && this.closest('swiper-slide') && this.closest('swiper-slide').swiperLoopMoveDOM) {\n return;\n }\n if (this.init === false || this.getAttribute('init') === 'false') {\n return;\n }\n this.initialize();\n }\n disconnectedCallback() {\n if (this.nested && this.closest('swiper-slide') && this.closest('swiper-slide').swiperLoopMoveDOM) {\n return;\n }\n if (this.swiper && this.swiper.destroy) {\n this.swiper.destroy();\n }\n this.initialized = false;\n }\n updateSwiperOnPropChange(propName, propValue) {\n const {\n params: swiperParams,\n passedParams\n } = getParams(this, propName, propValue);\n this.passedParams = passedParams;\n this.swiperParams = swiperParams;\n updateSwiper({\n swiper: this.swiper,\n passedParams: this.passedParams,\n changedParams: [attrToProp(propName)],\n ...(propName === 'navigation' && passedParams[propName] ? {\n prevEl: '.swiper-button-prev',\n nextEl: '.swiper-button-next'\n } : {}),\n ...(propName === 'pagination' && passedParams[propName] ? {\n paginationEl: '.swiper-pagination'\n } : {}),\n ...(propName === 'scrollbar' && passedParams[propName] ? {\n scrollbarEl: '.swiper-scrollbar'\n } : {})\n });\n }\n attributeChangedCallback(attr, prevValue, newValue) {\n if (!this.initialized) return;\n if (prevValue === 'true' && newValue === null) {\n newValue = false;\n }\n this.updateSwiperOnPropChange(attr, newValue);\n }\n static get observedAttributes() {\n const attrs = paramsList.filter(param => param.includes('_')).map(param => param.replace(/[A-Z]/g, v => `-${v}`).replace('_', '').toLowerCase());\n return attrs;\n }\n}\nparamsList.forEach(paramName => {\n if (paramName === 'init') return;\n paramName = paramName.replace('_', '');\n Object.defineProperty(SwiperContainer.prototype, paramName, {\n configurable: true,\n get() {\n return (this.passedParams || {})[paramName];\n },\n set(value) {\n if (!this.passedParams) this.passedParams = {};\n this.passedParams[paramName] = value;\n if (!this.initialized) return;\n this.updateSwiperOnPropChange(paramName);\n }\n });\n});\nclass SwiperSlide extends ClassToExtend {\n constructor() {\n super();\n this.attachShadow({\n mode: 'open'\n });\n }\n render() {\n const lazy = this.lazy || this.getAttribute('lazy') === '' || this.getAttribute('lazy') === 'true';\n addStyle(this.shadowRoot, SwiperSlideCSS);\n this.shadowRoot.appendChild(document.createElement('slot'));\n if (lazy) {\n const lazyDiv = document.createElement('div');\n lazyDiv.classList.add('swiper-lazy-preloader');\n lazyDiv.part.add('preloader');\n this.shadowRoot.appendChild(lazyDiv);\n }\n }\n initialize() {\n this.render();\n }\n connectedCallback() {\n this.initialize();\n }\n}\n\n// eslint-disable-next-line\nconst register = () => {\n if (typeof window === 'undefined') return;\n if (!window.customElements.get('swiper-container')) window.customElements.define('swiper-container', SwiperContainer);\n if (!window.customElements.get('swiper-slide')) window.customElements.define('swiper-slide', SwiperSlide);\n};\nif (typeof window !== 'undefined') {\n window.SwiperElementRegisterParams = params => {\n paramsList.push(...params);\n };\n}\n\nexport { SwiperContainer, SwiperSlide, register };\n","// eslint-disable-next-line\nimport Swiper from 'swiper/bundle';\n// eslint-disable-next-line\nimport { register } from 'swiper/element/bundle';\nimport $ from '../../shared/dom7.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nregister();\n\n// UMD_ONLY_START\n/* eslint-disable */\nif (!window.Swiper) {\n window.Swiper = Swiper;\n}\n/* eslint-enable */\n// UMD_ONLY_END\n\nfunction initSwiper(swiperEl) {\n const app = this;\n const $swiperEl = $(swiperEl);\n if ($swiperEl.length === 0) return;\n const isElement = $swiperEl[0].swiper && $swiperEl[0].swiper.isElement;\n if ($swiperEl[0].swiper && !$swiperEl[0].swiper.isElement) return;\n let initialSlide;\n let params = {};\n let isTabs;\n let isRoutableTabs;\n if ($swiperEl.hasClass('tabs')) {\n initialSlide = $swiperEl.children('swiper-slide').indexOf($swiperEl.children('.tab-active')[0]);\n isTabs = true;\n isRoutableTabs = $swiperEl.find('.tabs-routable').length > 0;\n }\n if ($swiperEl.attr('data-swiper')) {\n params = JSON.parse($swiperEl.attr('data-swiper'));\n } else if ($swiperEl[0].f7SwiperParams) {\n params = $swiperEl[0].f7SwiperParams;\n } else {\n params = $swiperEl.dataset();\n Object.keys(params).forEach((key) => {\n const value = params[key];\n if (typeof value === 'string' && value.indexOf('{') === 0 && value.indexOf('}') > 0) {\n try {\n params[key] = JSON.parse(value);\n } catch (e) {\n // not JSON\n }\n }\n });\n }\n\n if (typeof params.initialSlide === 'undefined' && typeof initialSlide !== 'undefined') {\n params.initialSlide = initialSlide;\n }\n\n const swiper = isElement ? $swiperEl[0].swiper : app.swiper.create($swiperEl[0], params);\n\n if (isElement) {\n swiper.slideTo(initialSlide, 0);\n }\n\n function updateSwiper() {\n swiper.update();\n }\n\n const $tabEl = $swiperEl\n .parents('.tab')\n .filter((tabEl) => {\n return (\n $(tabEl).parent('.tabs').parent('.tabs-animated-wrap, swiper-container.tabs').length === 0\n );\n })\n .eq(0);\n $swiperEl.parents('.popup, .login-screen, .sheet-modal, .popover').on('modal:open', updateSwiper);\n $swiperEl.parents('.panel').on('panel:open', updateSwiper);\n if ($tabEl && $tabEl.length) {\n $tabEl.on('tab:show', updateSwiper);\n }\n\n swiper.on('beforeDestroy', () => {\n $swiperEl\n .parents('.popup, .login-screen, .sheet-modal, .popover')\n .off('modal:open', updateSwiper);\n $swiperEl.parents('.panel').off('panel:open', updateSwiper);\n if ($tabEl && $tabEl.length) {\n $tabEl.off('tab:show', updateSwiper);\n }\n });\n if (isTabs) {\n swiper.on('slideChange', () => {\n if (isRoutableTabs) {\n let view = app.views.get($swiperEl.parents('.view'));\n if (!view) view = app.views.main;\n const router = view.router;\n const tabRouteUrl = router.findTabRouteUrl($(swiper.slides).eq(swiper.activeIndex)[0]);\n if (tabRouteUrl) {\n setTimeout(() => {\n router.navigate(tabRouteUrl);\n }, 0);\n }\n } else {\n app.tab.show({\n tabEl: $(swiper.slides).eq(swiper.activeIndex),\n });\n }\n });\n }\n}\n\nexport default {\n name: 'swiper',\n static: {\n Swiper,\n },\n create() {\n const app = this;\n app.swiper = ConstructorMethods({\n defaultSelector: '.swiper',\n constructor: Swiper,\n domProp: 'swiper',\n });\n },\n on: {\n pageMounted(page) {\n const app = this;\n page.$el.find('swiper-container.tabs').each((swiperEl) => {\n initSwiper.call(app, swiperEl);\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('swiper-container.tabs').each((swiperEl) => {\n initSwiper.call(app, swiperEl);\n });\n },\n pageReinit(page) {\n const app = this;\n page.$el.find('swiper-container.tabs').each((swiperEl) => {\n const swiper = app.swiper.get(swiperEl);\n if (swiper && swiper.update) swiper.update();\n });\n },\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('swiper-container.tabs')\n .each((swiperEl) => {\n initSwiper.call(app, swiperEl);\n });\n },\n tabShow(tabEl) {\n const app = this;\n $(tabEl)\n .find('swiper-container.tabs')\n .each((swiperEl) => {\n const swiper = app.swiper.get(swiperEl);\n if (swiper && swiper.update) swiper.update();\n });\n },\n tabBeforeRemove(tabEl) {\n const app = this;\n $(tabEl)\n .find('swiper-container.tabs')\n .each((swiperEl) => {\n app.swiper.destroy(swiperEl);\n });\n },\n },\n};\n","/* eslint indent: [\"off\"] */\nimport { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, now, nextTick, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\n/** @jsx $jsx */\nimport $jsx from '../../shared/$jsx.js';\n\nclass PhotoBrowser extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n\n const pb = this;\n pb.app = app;\n\n const defaults = extend(\n {\n on: {},\n },\n app.params.photoBrowser,\n );\n\n // Extend defaults with modules params\n pb.useModulesParams(defaults);\n\n pb.params = extend(defaults, params);\n\n extend(pb, {\n exposed: false,\n opened: false,\n activeIndex: pb.params.swiper.initialSlide,\n url: pb.params.url,\n swipeToClose: {\n allow: true,\n isTouched: false,\n diff: undefined,\n start: undefined,\n current: undefined,\n started: false,\n activeSlide: undefined,\n timeStart: undefined,\n },\n });\n\n // Install Modules\n pb.useModules();\n\n // Init\n pb.init();\n }\n\n get view() {\n const { params, app } = this;\n return params.view || app.views.main;\n }\n\n onSlideChange(swiper) {\n const pb = this;\n pb.activeIndex = swiper.activeIndex;\n\n let current = swiper.activeIndex + 1;\n let total = pb.params.virtualSlides ? pb.params.photos.length : swiper.slides.length;\n if (swiper.params.loop) {\n total -= 2;\n current -= swiper.loopedSlides;\n if (current < 1) current = total + current;\n if (current > total) current -= total;\n }\n\n const $activeSlideEl = pb.params.virtualSlides\n ? $(swiper.wrapperEl).find(`.swiper-slide[data-swiper-slide-index=\"${swiper.activeIndex}\"]`)\n : $(swiper.slides).eq(swiper.activeIndex);\n const $previousSlideEl = pb.params.virtualSlides\n ? $(swiper.wrapperEl).find(`.swiper-slide[data-swiper-slide-index=\"${swiper.previousIndex}\"]`)\n : $(swiper.slides).eq(swiper.previousIndex);\n\n let $currentEl = pb.$el.find('.photo-browser-current');\n let $totalEl = pb.$el.find('.photo-browser-total');\n let navbarEl;\n if (\n pb.params.type === 'page' &&\n pb.params.navbar &&\n $currentEl.length === 0 &&\n pb.app.theme === 'ios'\n ) {\n navbarEl = pb.app.navbar.getElByPage(pb.$el);\n if (navbarEl) {\n $currentEl = $(navbarEl).find('.photo-browser-current');\n $totalEl = $(navbarEl).find('.photo-browser-total');\n }\n }\n if ($currentEl.length && $totalEl.length) {\n $currentEl.text(current);\n $totalEl.text(total);\n if (!navbarEl) navbarEl = $currentEl.parents('.navbar')[0];\n if (navbarEl) {\n pb.app.navbar.size(navbarEl);\n }\n }\n\n // Update captions\n if (pb.captions.length > 0) {\n const captionIndex = swiper.params.loop\n ? $activeSlideEl.attr('data-swiper-slide-index')\n : pb.activeIndex;\n pb.$captionsContainerEl\n .find('.photo-browser-caption-active')\n .removeClass('photo-browser-caption-active');\n pb.$captionsContainerEl\n .find(`[data-caption-index=\"${captionIndex}\"]`)\n .addClass('photo-browser-caption-active');\n }\n\n // Stop Video\n const previousSlideVideo = $previousSlideEl.find('video');\n if (previousSlideVideo.length > 0) {\n if ('pause' in previousSlideVideo[0]) previousSlideVideo[0].pause();\n }\n }\n\n onTouchStart() {\n const pb = this;\n const swipeToClose = pb.swipeToClose;\n if (!swipeToClose.allow) return;\n swipeToClose.isTouched = true;\n }\n\n onTouchMove(e) {\n const pb = this;\n const swipeToClose = pb.swipeToClose;\n\n if (!swipeToClose.isTouched) return;\n if (!swipeToClose.started) {\n swipeToClose.started = true;\n swipeToClose.start = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (pb.params.virtualSlides) {\n swipeToClose.activeSlide = $(pb.swiper.wrapperEl).children('.swiper-slide-active');\n } else {\n swipeToClose.activeSlide = $(pb.swiper.slides).eq(pb.swiper.activeIndex);\n }\n swipeToClose.timeStart = now();\n }\n e.preventDefault();\n swipeToClose.current = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n swipeToClose.diff = swipeToClose.start - swipeToClose.current;\n pb.$el.transition(0).transform(`translate3d(0,${-swipeToClose.diff}px,0)`);\n }\n\n onTouchEnd() {\n const pb = this;\n const swipeToClose = pb.swipeToClose;\n swipeToClose.isTouched = false;\n if (!swipeToClose.started) {\n swipeToClose.started = false;\n return;\n }\n swipeToClose.started = false;\n swipeToClose.allow = false;\n const diff = Math.abs(swipeToClose.diff);\n const timeDiff = new Date().getTime() - swipeToClose.timeStart;\n if ((timeDiff < 300 && diff > 20) || (timeDiff >= 300 && diff > 100)) {\n nextTick(() => {\n if (pb.$el) {\n if (swipeToClose.diff < 0) pb.$el.addClass('swipe-close-to-bottom');\n else pb.$el.addClass('swipe-close-to-top');\n }\n pb.emit('local::swipeToClose', pb);\n pb.$el.transform('').transition('');\n pb.close();\n swipeToClose.allow = true;\n });\n return;\n }\n if (diff !== 0) {\n pb.$el.addClass('photo-browser-transitioning').transitionEnd(() => {\n swipeToClose.allow = true;\n pb.$el.removeClass('photo-browser-transitioning');\n });\n } else {\n swipeToClose.allow = true;\n }\n nextTick(() => {\n pb.$el.transform('').transition('');\n });\n }\n\n // Render Functions\n renderNavbar() {\n const pb = this;\n if (pb.params.renderNavbar) return pb.params.renderNavbar.call(pb);\n\n const iconsColor = pb.params.iconsColor;\n\n const pageBackLinkText =\n pb.app.theme === 'ios' && pb.params.pageBackLinkText ? pb.params.pageBackLinkText : '';\n\n const renderNavbarCount =\n typeof pb.params.navbarShowCount === 'undefined'\n ? pb.params.photos.length > 1\n : pb.params.navbarShowCount;\n\n const isPopup = pb.params.type !== 'page';\n return (\n <div\n class={`navbar navbar-photo-browser ${\n pb.params.theme === 'dark' ? 'navbar-photo-browser-dark' : ''\n }`}\n >\n <div class=\"navbar-bg\"></div>\n <div class=\"navbar-inner navbar-inner-centered-title sliding\">\n {!isPopup && (\n <div class=\"left\">\n <a class={`link ${!pageBackLinkText ? 'icon-only' : ''} back`}>\n <i class={`icon icon-back ${iconsColor ? `color-${iconsColor}` : ''}`}></i>\n {pageBackLinkText && <span>{pageBackLinkText}</span>}\n </a>\n </div>\n )}\n {renderNavbarCount && (\n <div class=\"title\">\n <span class=\"photo-browser-current\"></span>\n <span class=\"photo-browser-of\">{pb.params.navbarOfText}</span>\n <span class=\"photo-browser-total\"></span>\n </div>\n )}\n {isPopup && (pb.params.popupCloseLinkText || pb.params.popupCloseLinkIcon) && (\n <div class=\"right\">\n <a class=\"link popup-close\" data-popup=\".photo-browser-popup\">\n {pb.params.popupCloseLinkIcon && pb.app.theme === 'ios' && (\n <i>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"56\"\n height=\"56\"\n viewBox=\"0 0 56 56\"\n >\n <path\n fill=\"currentColor\"\n d=\"M 10.0234 43.0234 C 9.2266 43.8203 9.2031 45.1797 10.0234 45.9766 C 10.8438 46.7734 12.1797 46.7734 13.0000 45.9766 L 28.0000 30.9766 L 43.0000 45.9766 C 43.7969 46.7734 45.1563 46.7969 45.9766 45.9766 C 46.7734 45.1562 46.7734 43.8203 45.9766 43.0234 L 30.9531 28.0000 L 45.9766 13.0000 C 46.7734 12.2031 46.7969 10.8437 45.9766 10.0469 C 45.1328 9.2266 43.7969 9.2266 43.0000 10.0469 L 28.0000 25.0469 L 13.0000 10.0469 C 12.1797 9.2266 10.8203 9.2031 10.0234 10.0469 C 9.2266 10.8672 9.2266 12.2031 10.0234 13.0000 L 25.0234 28.0000 Z\"\n />\n </svg>\n </i>\n )}\n {pb.params.popupCloseLinkIcon && pb.app.theme === 'md' && (\n <i>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"currentColor\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\" />\n </svg>\n </i>\n )}\n {pb.params.popupCloseLinkText && <span>{pb.params.popupCloseLinkText}</span>}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n }\n\n renderToolbar() {\n const pb = this;\n if (pb.params.renderToolbar) return pb.params.renderToolbar.call(pb);\n\n const iconsColor = pb.params.iconsColor;\n\n return (\n <div class=\"toolbar toolbar-bottom tabbar\">\n <div class=\"toolbar-inner\">\n <a class=\"link photo-browser-prev\">\n <i class={`icon icon-back ${iconsColor ? `color-${iconsColor}` : ''}`}></i>\n </a>\n <a class=\"link photo-browser-next\">\n <i class={`icon icon-forward ${iconsColor ? `color-${iconsColor}` : ''}`}></i>\n </a>\n </div>\n </div>\n );\n }\n\n renderThumbs() {\n const pb = this;\n\n return (\n <div class=\"toolbar toolbar-bottom photo-browser-thumbs\">\n <div class=\"swiper\">\n <div class=\"swiper-wrapper\">\n {pb.params.thumbs.map((thumb, index) => pb.renderThumb(thumb, index))}\n </div>\n </div>\n </div>\n );\n }\n\n renderCaption(caption, index) {\n const pb = this;\n if (pb.params.renderCaption) return pb.params.renderCaption.call(pb, caption, index);\n return (\n <div class=\"photo-browser-caption\" data-caption-index={index}>\n {caption}\n </div>\n );\n }\n\n renderObject(photo, index) {\n const pb = this;\n if (pb.params.renderObject) return pb.params.renderObject.call(pb, photo, index);\n return (\n <div\n class=\"photo-browser-slide photo-browser-object-slide swiper-slide\"\n data-swiper-slide-index={index}\n >\n {photo.html ? photo.html : photo}\n </div>\n );\n }\n\n renderLazyPhoto(photo, index) {\n const pb = this;\n if (pb.params.renderLazyPhoto) return pb.params.renderLazyPhoto.call(pb, photo, index);\n return (\n <div\n class=\"photo-browser-slide photo-browser-slide-lazy swiper-slide\"\n data-swiper-slide-index={index}\n >\n <div class=\"swiper-lazy-preloader\"></div>\n <span class=\"swiper-zoom-container\">\n <img loading=\"lazy\" src={photo.url ? photo.url : photo} />\n </span>\n </div>\n );\n }\n\n renderPhoto(photo, index) {\n const pb = this;\n if (pb.params.renderPhoto) return pb.params.renderPhoto.call(pb, photo, index);\n return (\n <div class=\"photo-browser-slide swiper-slide\" data-swiper-slide-index={index}>\n <span class=\"swiper-zoom-container\">\n <img src={photo.url ? photo.url : photo} />\n </span>\n </div>\n );\n }\n\n renderThumb(thumb, index) {\n const pb = this;\n const url = typeof thumb === 'string' ? thumb : thumb.url;\n if (pb.params.renderThumb) return pb.params.renderThumb.call(pb, thumb, index);\n return (\n <div class=\"photo-browser-thumbs-slide swiper-slide\" data-swiper-slide-index={index}>\n {url && <img src={url} loading=\"lazy\" />}\n </div>\n );\n }\n\n render() {\n const pb = this;\n if (pb.params.render) return pb.params.render.call(pb, pb.params);\n return (\n <div class={`photo-browser photo-browser-${pb.params.theme}`}>\n <div class=\"view\">\n <div\n class={`page photo-browser-page photo-browser-page-${pb.params.theme} no-toolbar ${\n !pb.params.navbar ? 'no-navbar' : ''\n }`}\n data-name=\"photo-browser-page\"\n >\n {pb.params.navbar && pb.renderNavbar()}\n {pb.params.toolbar && pb.renderToolbar()}\n {pb.params.thumbs && pb.params.thumbs.length && pb.renderThumbs()}\n <div\n class={`photo-browser-captions photo-browser-captions-${\n pb.params.captionsTheme || pb.params.theme\n }`}\n >\n {pb.params.photos.map((photo, index) => {\n if (photo.caption) return pb.renderCaption(photo.caption, index);\n return '';\n })}\n </div>\n <div class=\"photo-browser-swiper-container swiper\">\n <div class=\"photo-browser-swiper-wrapper swiper-wrapper\">\n {!pb.params.virtualSlides &&\n pb.params.photos.map((photo, index) => {\n if (\n photo.html ||\n ((typeof photo === 'string' || photo instanceof String) &&\n photo.indexOf('<') >= 0 &&\n photo.indexOf('>') >= 0)\n ) {\n return pb.renderObject(photo, index);\n }\n if (pb.params.lazy === true) {\n return pb.renderLazyPhoto(photo, index);\n }\n return pb.renderPhoto(photo, index);\n })}\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n renderStandalone() {\n const pb = this;\n if (pb.params.renderStandalone) return pb.params.renderStandalone.call(pb);\n const standaloneHtml = `<div class=\"popup photo-browser-popup photo-browser-standalone popup-tablet-fullscreen\">${pb.render()}</div>`;\n return standaloneHtml;\n }\n\n renderPage() {\n const pb = this;\n if (pb.params.renderPage) return pb.params.renderPage.call(pb);\n const pageHtml = pb.render();\n\n return pageHtml;\n }\n\n renderPopup() {\n const pb = this;\n if (pb.params.renderPopup) return pb.params.renderPopup.call(pb);\n const popupHtml = `<div class=\"popup photo-browser-popup\">${pb.render()}</div>`;\n\n return popupHtml;\n }\n\n // Callbacks\n onOpen(type, el) {\n const pb = this;\n const app = pb.app;\n const $el = $(el);\n\n $el[0].f7PhotoBrowser = pb;\n\n pb.$el = $el;\n pb.el = $el[0];\n pb.openedIn = type;\n pb.opened = true;\n\n pb.$swiperContainerEl = pb.$el.find('.photo-browser-swiper-container');\n pb.$swiperWrapperEl = pb.$el.find('.photo-browser-swiper-wrapper');\n pb.slides = pb.$el.find('.photo-browser-slide');\n pb.$captionsContainerEl = pb.$el.find('.photo-browser-captions');\n pb.captions = pb.$el.find('.photo-browser-caption');\n\n const hasThumbs = pb.params.thumbs && pb.params.thumbs.length > 0;\n\n // Init Swiper\n let clickTimeout;\n let preventThumbsSlide;\n let preventMainSlide;\n const initialSlide = pb.activeIndex;\n const swiperParams = extend({}, pb.params.swiper, {\n initialSlide,\n // cssMode:\n // typeof pb.params.swiper.cssMode === 'undefined' && (app.device.ios || app.device.android)\n // ? true\n // : pb.params.swiper.cssMode,\n on: {\n click(e) {\n clearTimeout(clickTimeout);\n if (pb.params.exposition) {\n clickTimeout = setTimeout(() => {\n pb.expositionToggle();\n }, 350);\n }\n pb.emit('local::tap', e);\n pb.emit('local::click', e);\n },\n doubleClick(e) {\n clearTimeout(clickTimeout);\n pb.emit('local::doubleTap', e);\n pb.emit('local::doubleClick', e);\n },\n slideChange(...args) {\n const swiper = this;\n if (hasThumbs && pb.thumbsSwiper && !preventMainSlide) {\n preventThumbsSlide = true;\n pb.thumbsSwiper.slideTo(pb.swiper.activeIndex);\n setTimeout(() => {\n preventThumbsSlide = false;\n });\n }\n pb.onSlideChange(swiper);\n pb.emit('local::slideChange', ...args);\n },\n transitionStart(...args) {\n pb.emit('local::transitionStart', ...args);\n },\n transitionEnd(...args) {\n pb.emit('local::transitionEnd', ...args);\n },\n slideChangeTransitionStart(...args) {\n const swiper = this;\n pb.onSlideChange(swiper);\n pb.emit('local::slideChangeTransitionStart', ...args);\n },\n slideChangeTransitionEnd(...args) {\n pb.emit('local::slideChangeTransitionEnd', ...args);\n },\n },\n });\n if (pb.params.swipeToClose && pb.params.type !== 'page') {\n extend(swiperParams.on, {\n touchStart(swiper, e) {\n pb.onTouchStart(e);\n pb.emit('local::touchStart', e);\n },\n touchMoveOpposite(swiper, e) {\n pb.onTouchMove(e);\n pb.emit('local::touchMoveOpposite', e);\n },\n touchEnd(swiper, e) {\n pb.onTouchEnd(e);\n pb.emit('local::touchEnd', e);\n },\n });\n }\n if (pb.params.virtualSlides) {\n extend(swiperParams, {\n virtual: {\n slides: pb.params.photos,\n renderSlide(photo, index) {\n if (\n photo.html ||\n ((typeof photo === 'string' || photo instanceof String) &&\n photo.indexOf('<') >= 0 &&\n photo.indexOf('>') >= 0)\n ) {\n return pb.renderObject(photo, index);\n }\n if (pb.params.lazy === true) {\n return pb.renderLazyPhoto(photo, index);\n }\n return pb.renderPhoto(photo, index);\n },\n },\n });\n }\n const window = getWindow();\n pb.swiper = app.swiper\n ? app.swiper.create(pb.$swiperContainerEl[0], swiperParams)\n : new window.Swiper(pb.$swiperContainerEl[0], swiperParams);\n\n if (pb.activeIndex === 0 || pb.params.virtualSlides) {\n pb.onSlideChange(pb.swiper);\n }\n if (hasThumbs) {\n const thumbsSwiperParams = {\n el: pb.$el.find('.photo-browser-thumbs .swiper')[0],\n slidesPerView: 'auto',\n centeredSlides: true,\n spaceBetween: 4,\n watchSlidesProgress: true,\n initialSlide,\n on: {\n touchMove() {\n preventMainSlide = true;\n },\n touchEnd() {\n preventMainSlide = false;\n },\n slideChange(s) {\n if (preventThumbsSlide) return;\n pb.swiper.slideTo(s.activeIndex, 0);\n },\n click(s) {\n if (!s.clickedSlide) return;\n const index = parseInt($(s.clickedSlide).attr('data-swiper-slide-index'), 10);\n s.slideTo(index, 0);\n },\n },\n };\n\n pb.thumbsSwiper = app.swiper\n ? app.swiper.create(thumbsSwiperParams)\n : new window.Swiper(thumbsSwiperParams);\n }\n\n if (pb.$el) {\n pb.$el.trigger('photobrowser:open');\n }\n pb.emit('local::open photoBrowserOpen', pb);\n }\n\n onOpened() {\n const pb = this;\n if (pb.$el && pb.params.type === 'standalone') {\n pb.$el.css('animation', 'none');\n }\n if (pb.$el) {\n pb.$el.trigger('photobrowser:opened');\n }\n pb.emit('local::opened photoBrowserOpened', pb);\n }\n\n onClose() {\n const pb = this;\n if (pb.destroyed) return;\n\n // Destroy Swiper\n if (pb.swiper && pb.swiper.destroy) {\n pb.swiper.destroy(true, false);\n pb.swiper = null;\n delete pb.swiper;\n }\n if (pb.thumbsSwiper && pb.thumbsSwiper.destroy) {\n pb.thumbsSwiper.destroy(true, false);\n pb.thumbsSwiper = null;\n delete pb.thumbsSwiper;\n }\n if (pb.$el) {\n pb.$el.trigger('photobrowser:close');\n }\n pb.emit('local::close photoBrowserClose', pb);\n }\n\n onClosed() {\n const pb = this;\n if (pb.destroyed) return;\n pb.opened = false;\n pb.$el = null;\n pb.el = null;\n delete pb.$el;\n delete pb.el;\n if (pb.$el) {\n pb.$el.trigger('photobrowser:closed');\n }\n pb.emit('local::closed photoBrowserClosed', pb);\n }\n\n // Open\n openPage() {\n const pb = this;\n if (pb.opened) return pb;\n\n const pageHtml = pb.renderPage();\n\n pb.view.router.navigate({\n url: pb.url,\n route: {\n content: pageHtml,\n path: pb.url,\n on: {\n pageBeforeIn(e, page) {\n pb.view.$el.addClass(\n `with-photo-browser-page with-photo-browser-page-${pb.params.theme}`,\n );\n pb.onOpen('page', page.el);\n },\n pageAfterIn(e, page) {\n pb.onOpened('page', page.el);\n },\n pageBeforeOut(e, page) {\n pb.view.$el.removeClass(\n `with-photo-browser-page with-photo-browser-page-exposed with-photo-browser-page-${pb.params.theme}`,\n );\n pb.onClose('page', page.el);\n },\n pageAfterOut(e, page) {\n pb.onClosed('page', page.el);\n },\n },\n },\n });\n return pb;\n }\n\n openStandalone() {\n const pb = this;\n if (pb.opened) return pb;\n\n const standaloneHtml = pb.renderStandalone();\n\n const popupParams = {\n backdrop: false,\n content: standaloneHtml,\n on: {\n popupOpen(popup) {\n pb.onOpen('popup', popup.el);\n },\n popupOpened(popup) {\n pb.onOpened('popup', popup.el);\n },\n popupClose(popup) {\n pb.onClose('popup', popup.el);\n },\n popupClosed(popup) {\n pb.onClosed('popup', popup.el);\n },\n },\n };\n\n if (pb.params.routableModals && pb.view) {\n pb.view.router.navigate({\n url: pb.url,\n route: {\n path: pb.url,\n popup: popupParams,\n },\n });\n } else {\n pb.modal = pb.app.popup.create(popupParams).open();\n }\n return pb;\n }\n\n openPopup() {\n const pb = this;\n if (pb.opened) return pb;\n\n const popupHtml = pb.renderPopup();\n\n const popupParams = {\n content: popupHtml,\n push: pb.params.popupPush,\n closeByBackdropClick: pb.params.closeByBackdropClick,\n on: {\n popupOpen(popup) {\n pb.onOpen('popup', popup.el);\n },\n popupOpened(popup) {\n pb.onOpened('popup', popup.el);\n },\n popupClose(popup) {\n pb.onClose('popup', popup.el);\n },\n popupClosed(popup) {\n pb.onClosed('popup', popup.el);\n },\n },\n };\n\n if (pb.params.routableModals && pb.view) {\n pb.view.router.navigate({\n url: pb.url,\n route: {\n path: pb.url,\n popup: popupParams,\n },\n });\n } else {\n pb.modal = pb.app.popup.create(popupParams).open();\n }\n return pb;\n }\n\n // Exposition\n expositionEnable() {\n const pb = this;\n if (pb.params.type === 'page') {\n pb.view.$el.addClass('with-photo-browser-page-exposed');\n }\n if (pb.$el) pb.$el.addClass('photo-browser-exposed');\n if (pb.params.expositionHideCaptions)\n pb.$captionsContainerEl.addClass('photo-browser-captions-exposed');\n pb.exposed = true;\n return pb;\n }\n\n expositionDisable() {\n const pb = this;\n if (pb.params.type === 'page') {\n pb.view.$el.removeClass('with-photo-browser-page-exposed');\n }\n if (pb.$el) pb.$el.removeClass('photo-browser-exposed');\n if (pb.params.expositionHideCaptions)\n pb.$captionsContainerEl.removeClass('photo-browser-captions-exposed');\n pb.exposed = false;\n return pb;\n }\n\n expositionToggle() {\n const pb = this;\n if (pb.params.type === 'page') {\n pb.view.$el.toggleClass('with-photo-browser-page-exposed');\n }\n if (pb.$el) pb.$el.toggleClass('photo-browser-exposed');\n if (pb.params.expositionHideCaptions)\n pb.$captionsContainerEl.toggleClass('photo-browser-captions-exposed');\n pb.exposed = !pb.exposed;\n return pb;\n }\n\n open(index) {\n const pb = this;\n const type = pb.params.type;\n if (pb.opened) {\n if (pb.swiper && typeof index !== 'undefined') {\n pb.swiper.slideTo(parseInt(index, 10));\n }\n return pb;\n }\n if (typeof index !== 'undefined') {\n pb.activeIndex = index;\n }\n if (type === 'standalone') {\n pb.openStandalone();\n }\n if (type === 'page') {\n pb.openPage();\n }\n if (type === 'popup') {\n pb.openPopup();\n }\n return pb;\n }\n\n close() {\n const pb = this;\n if (!pb.opened) return pb;\n if ((pb.params.routableModals && pb.view) || pb.openedIn === 'page') {\n pb.view.router.back();\n } else {\n pb.modal.once('modalClosed', () => {\n nextTick(() => {\n if (pb.destroyed) return;\n pb.modal.destroy();\n delete pb.modal;\n });\n });\n pb.modal.close();\n }\n return pb;\n }\n // eslint-disable-next-line\n init() {}\n\n destroy() {\n let pb = this;\n pb.emit('local::beforeDestroy photoBrowserBeforeDestroy', pb);\n if (pb.$el) {\n pb.$el.trigger('photobrowser:beforedestroy');\n pb.$el[0].f7PhotoBrowser = null;\n delete pb.$el[0].f7PhotoBrowser;\n }\n deleteProps(pb);\n pb.destroyed = true;\n pb = null;\n }\n}\n\nexport default PhotoBrowser;\n","import PhotoBrowser from './photo-browser-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'photoBrowser',\n params: {\n photoBrowser: {\n photos: [],\n thumbs: [],\n exposition: true,\n expositionHideCaptions: false,\n type: 'standalone',\n navbar: true,\n toolbar: true,\n theme: 'light',\n captionsTheme: undefined,\n iconsColor: undefined,\n popupPush: false,\n swipeToClose: true,\n pageBackLinkText: 'Back',\n popupCloseLinkText: undefined,\n popupCloseLinkIcon: true,\n navbarOfText: 'of',\n navbarShowCount: undefined,\n view: undefined,\n url: 'photos/',\n routableModals: false,\n virtualSlides: true,\n lazy: true,\n closeByBackdropClick: true,\n\n renderNavbar: undefined,\n renderToolbar: undefined,\n renderCaption: undefined,\n renderObject: undefined,\n renderLazyPhoto: undefined,\n renderPhoto: undefined,\n renderThumb: undefined,\n renderPage: undefined,\n renderPopup: undefined,\n renderStandalone: undefined,\n\n swiper: {\n cssMode: false,\n initialSlide: 0,\n spaceBetween: 20,\n speed: 300,\n loop: false,\n keyboard: {\n enabled: true,\n },\n navigation: {\n nextEl: '.photo-browser-next',\n prevEl: '.photo-browser-prev',\n },\n zoom: {\n enabled: true,\n maxRatio: 3,\n minRatio: 1,\n },\n },\n },\n },\n create() {\n const app = this;\n app.photoBrowser = ConstructorMethods({\n defaultSelector: '.photo-browser-popup, .photo-browser-page',\n constructor: PhotoBrowser,\n app,\n domProp: 'f7PhotoBrowser',\n });\n },\n static: {\n PhotoBrowser,\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend, now, nextTick } from '../../shared/utils.js';\nimport Modal from '../modal/modal-class.js';\n/** @jsx $jsx */\nimport $jsx from '../../shared/$jsx.js';\n\nclass Notification extends Modal {\n constructor(app, params) {\n const extendedParams = extend(\n {\n on: {},\n },\n app.params.notification,\n params,\n );\n\n // Extends with open/close Modal methods;\n super(app, extendedParams);\n\n const notification = this;\n\n notification.app = app;\n\n notification.params = extendedParams;\n\n const {\n icon,\n title,\n titleRightText,\n subtitle,\n text,\n closeButton,\n closeTimeout,\n cssClass,\n closeOnClick,\n } = notification.params;\n\n let $el;\n if (!notification.params.el) {\n // Find Element\n const notificationHtml = notification.render({\n icon,\n title,\n titleRightText,\n subtitle,\n text,\n closeButton,\n cssClass,\n });\n\n $el = $(notificationHtml);\n } else {\n $el = $(notification.params.el);\n }\n\n if ($el && $el.length > 0 && $el[0].f7Modal) {\n return $el[0].f7Modal;\n }\n\n if ($el.length === 0) {\n return notification.destroy();\n }\n\n extend(notification, {\n $el,\n el: $el[0],\n type: 'notification',\n });\n\n $el[0].f7Modal = notification;\n\n if (closeButton) {\n $el.find('.notification-close-button').on('click', () => {\n notification.close();\n });\n }\n $el.on('click', (e) => {\n if (closeButton && $(e.target).closest('.notification-close-button').length) {\n return;\n }\n notification.emit('local::click notificationClick', notification);\n if (closeOnClick) notification.close();\n });\n\n notification.on('beforeDestroy', () => {\n $el.off('click');\n });\n\n /* Touch Events */\n let isTouched;\n let isMoved;\n let isScrolling;\n let touchesDiff;\n let touchStartTime;\n let notificationHeight;\n const touchesStart = {};\n function handleTouchStart(e) {\n if (isTouched) return;\n isTouched = true;\n isMoved = false;\n isScrolling = undefined;\n touchStartTime = now();\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 }\n function handleTouchMove(e) {\n if (!isTouched) return;\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(\n isScrolling || Math.abs(pageY - touchesStart.y) < Math.abs(pageX - touchesStart.x)\n );\n }\n if (isScrolling) {\n isTouched = false;\n return;\n }\n e.preventDefault();\n if (!isMoved) {\n notification.$el.removeClass('notification-transitioning');\n notification.$el.transition(0);\n notificationHeight = notification.$el[0].offsetHeight / 2;\n }\n isMoved = true;\n touchesDiff = pageY - touchesStart.y;\n let newTranslate = touchesDiff;\n if (touchesDiff > 0) {\n newTranslate = touchesDiff ** 0.8;\n }\n notification.$el.transform(`translate3d(0, ${newTranslate}px, 0)`);\n }\n function handleTouchEnd() {\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n isTouched = false;\n isMoved = false;\n if (touchesDiff === 0) {\n return;\n }\n\n const timeDiff = now() - touchStartTime;\n notification.$el.transition('');\n notification.$el.addClass('notification-transitioning');\n notification.$el.transform('');\n\n if ((touchesDiff < -10 && timeDiff < 300) || -touchesDiff >= notificationHeight / 1) {\n notification.close();\n }\n }\n\n function attachTouchEvents() {\n notification.$el.on(app.touchEvents.start, handleTouchStart, { passive: true });\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n }\n function detachTouchEvents() {\n notification.$el.off(app.touchEvents.start, handleTouchStart, { passive: true });\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n }\n\n let timeoutId;\n function closeOnTimeout() {\n timeoutId = nextTick(() => {\n if (isTouched && isMoved) {\n closeOnTimeout();\n return;\n }\n notification.close();\n }, closeTimeout);\n }\n notification.on('open', () => {\n if (notification.params.swipeToClose) {\n attachTouchEvents();\n }\n $('.notification.modal-in').each((openedEl) => {\n const notificationInstance = app.notification.get(openedEl);\n if (openedEl !== notification.el && notificationInstance) {\n notificationInstance.close();\n }\n });\n if (closeTimeout) {\n closeOnTimeout();\n }\n });\n notification.on('close beforeDestroy', () => {\n if (notification.params.swipeToClose) {\n detachTouchEvents();\n }\n clearTimeout(timeoutId);\n });\n\n return notification;\n }\n\n render() {\n const notification = this;\n if (notification.params.render)\n return notification.params.render.call(notification, notification);\n const { icon, title, titleRightText, subtitle, text, closeButton, cssClass } =\n notification.params;\n return (\n <div class={`notification ${icon ? 'notification-with-icon' : ''} ${cssClass || ''}`}>\n <div class=\"notification-header\">\n {icon && <div class=\"notification-icon\">{icon}</div>}\n {title && <div class=\"notification-title\">{title}</div>}\n {titleRightText && <div class=\"notification-title-right-text\">{titleRightText}</div>}\n {closeButton && <span class=\"notification-close-button\"></span>}\n </div>\n <div class=\"notification-content\">\n {subtitle && <div class=\"notification-subtitle\">{subtitle}</div>}\n {text && <div class=\"notification-text\">{text}</div>}\n </div>\n </div>\n );\n }\n}\nexport default Notification;\n","import { extend } from '../../shared/utils.js';\nimport Notification from './notification-class.js';\nimport ModalMethods from '../../shared/modal-methods.js';\n\nexport default {\n name: 'notification',\n static: {\n Notification,\n },\n create() {\n const app = this;\n app.notification = extend(\n {},\n ModalMethods({\n app,\n constructor: Notification,\n defaultSelector: '.notification.modal-in',\n }),\n );\n },\n params: {\n notification: {\n icon: null,\n title: null,\n titleRightText: null,\n subtitle: null,\n text: null,\n closeButton: false,\n closeTimeout: null,\n closeOnClick: false,\n swipeToClose: true,\n cssClass: null,\n render: null,\n containerEl: null,\n },\n },\n};\n","/* eslint \"no-useless-escape\": \"off\" */\nimport $ from '../../shared/dom7.js';\nimport {\n extend,\n id,\n nextTick,\n deleteProps,\n iosPreloaderContent,\n mdPreloaderContent,\n} from '../../shared/utils.js';\nimport { getDevice } from '../../shared/get-device.js';\nimport Framework7Class from '../../shared/class.js';\n/** @jsx $jsx */\nimport $jsx from '../../shared/$jsx.js';\n\nclass Autocomplete extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n\n const ac = this;\n ac.app = app;\n\n const device = getDevice();\n\n const defaults = extend(\n {\n on: {},\n },\n app.params.autocomplete,\n );\n\n // Extend defaults with modules params\n ac.useModulesParams(defaults);\n\n ac.params = extend(defaults, params);\n\n let $openerEl;\n if (ac.params.openerEl) {\n $openerEl = $(ac.params.openerEl);\n if ($openerEl.length) $openerEl[0].f7Autocomplete = ac;\n }\n\n let $inputEl;\n if (ac.params.inputEl) {\n $inputEl = $(ac.params.inputEl);\n if ($inputEl.length) $inputEl[0].f7Autocomplete = ac;\n }\n\n const uniqueId = id();\n\n let url = params.url;\n if (!url && $openerEl && $openerEl.length) {\n if ($openerEl.attr('href')) url = $openerEl.attr('href');\n else if ($openerEl.find('a').length > 0) {\n url = $openerEl.find('a').attr('href');\n }\n }\n if (!url || url === '#' || url === '') url = ac.params.url;\n\n const inputType = ac.params.multiple ? 'checkbox' : 'radio';\n\n extend(ac, {\n $openerEl,\n openerEl: $openerEl && $openerEl[0],\n $inputEl,\n inputEl: $inputEl && $inputEl[0],\n id: uniqueId,\n url,\n value: ac.params.value || [],\n inputType,\n inputName: `${inputType}-${uniqueId}`,\n $modalEl: undefined,\n $dropdownEl: undefined,\n });\n\n let previousQuery = '';\n function onInputChange() {\n let query = ac.$inputEl.val().trim();\n\n if (!ac.params.source) return;\n ac.params.source.call(ac, query, (items) => {\n let itemsHTML = '';\n const limit = ac.params.limit ? Math.min(ac.params.limit, items.length) : items.length;\n ac.items = items;\n let regExp;\n if (ac.params.highlightMatches) {\n query = query.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n regExp = new RegExp(`(${query})`, 'i');\n }\n\n let firstValue;\n let firstItem;\n for (let i = 0; i < limit; i += 1) {\n const itemValue =\n typeof items[i] === 'object' ? items[i][ac.params.valueProperty] : items[i];\n const itemText =\n typeof items[i] === 'object' ? items[i][ac.params.textProperty] : items[i];\n if (i === 0) {\n firstValue = itemValue;\n firstItem = ac.items[i];\n }\n itemsHTML += ac.renderItem(\n {\n value: itemValue,\n text: ac.params.highlightMatches ? itemText.replace(regExp, '<b>$1</b>') : itemText,\n },\n i,\n );\n }\n if (itemsHTML === '' && query === '' && ac.params.dropdownPlaceholderText) {\n itemsHTML += ac.renderItem({\n placeholder: true,\n text: ac.params.dropdownPlaceholderText,\n });\n }\n ac.$dropdownEl.find('ul').html(itemsHTML);\n if (ac.params.typeahead) {\n if (!firstValue || !firstItem) {\n return;\n }\n if (firstValue.toLowerCase().indexOf(query.toLowerCase()) !== 0) {\n return;\n }\n if (previousQuery.toLowerCase() === query.toLowerCase()) {\n ac.value = [];\n return;\n }\n\n if (previousQuery.toLowerCase().indexOf(query.toLowerCase()) === 0) {\n previousQuery = query;\n ac.value = [];\n return;\n }\n $inputEl.val(firstValue);\n $inputEl[0].setSelectionRange(query.length, firstValue.length);\n\n const previousValue =\n typeof ac.value[0] === 'object' ? ac.value[0][ac.params.valueProperty] : ac.value[0];\n if (!previousValue || firstValue.toLowerCase() !== previousValue.toLowerCase()) {\n ac.value = [firstItem];\n ac.emit('local::change autocompleteChange', [firstItem]);\n }\n }\n\n previousQuery = query;\n });\n }\n function onPageInputChange() {\n const inputEl = this;\n const value = inputEl.value;\n const isValues = $(inputEl).parents('.autocomplete-values').length > 0;\n let item;\n let itemValue;\n let aValue;\n if (isValues) {\n if (ac.inputType === 'checkbox' && !inputEl.checked) {\n for (let i = 0; i < ac.value.length; i += 1) {\n aValue =\n typeof ac.value[i] === 'string' ? ac.value[i] : ac.value[i][ac.params.valueProperty];\n if (aValue === value || aValue * 1 === value * 1) {\n ac.value.splice(i, 1);\n }\n }\n ac.updateValues();\n ac.emit('local::change autocompleteChange', ac.value);\n }\n return;\n }\n\n // Find Related Item\n for (let i = 0; i < ac.items.length; i += 1) {\n itemValue =\n typeof ac.items[i] === 'object' ? ac.items[i][ac.params.valueProperty] : ac.items[i];\n if (itemValue === value || itemValue * 1 === value * 1) item = ac.items[i];\n }\n if (ac.inputType === 'radio') {\n ac.value = [item];\n } else if (inputEl.checked) {\n ac.value.push(item);\n } else {\n for (let i = 0; i < ac.value.length; i += 1) {\n aValue =\n typeof ac.value[i] === 'object' ? ac.value[i][ac.params.valueProperty] : ac.value[i];\n if (aValue === value || aValue * 1 === value * 1) {\n ac.value.splice(i, 1);\n }\n }\n }\n\n // Update Values Block\n ac.updateValues();\n\n // On Select Callback\n if ((ac.inputType === 'radio' && inputEl.checked) || ac.inputType === 'checkbox') {\n ac.emit('local::change autocompleteChange', ac.value);\n }\n }\n function onHtmlClick(e) {\n const $targetEl = $(e.target);\n if (\n $targetEl.is(ac.$inputEl[0]) ||\n (ac.$dropdownEl && $targetEl.closest(ac.$dropdownEl[0]).length)\n )\n return;\n ac.close();\n }\n function onOpenerClick() {\n ac.open();\n }\n function onInputFocus() {\n ac.open();\n }\n function onInputBlur() {\n if (ac.$dropdownEl.find('label.active-state').length > 0) return;\n setTimeout(() => {\n ac.close();\n }, 0);\n }\n function onResize() {\n ac.positionDropdown();\n }\n\n function onKeyDown(e) {\n if (!ac.opened) return;\n if (e.keyCode === 27) {\n // ESC\n e.preventDefault();\n ac.$inputEl.blur();\n return;\n }\n if (e.keyCode === 13) {\n // Enter\n const $selectedItemLabel = ac.$dropdownEl.find('.autocomplete-dropdown-selected label');\n if ($selectedItemLabel.length) {\n e.preventDefault();\n $selectedItemLabel.trigger('click');\n ac.$inputEl.blur();\n return;\n }\n if (ac.params.typeahead) {\n e.preventDefault();\n ac.$inputEl.blur();\n }\n return;\n }\n if (e.keyCode !== 40 && e.keyCode !== 38) return;\n e.preventDefault();\n const $selectedItem = ac.$dropdownEl.find('.autocomplete-dropdown-selected');\n let $newItem;\n if ($selectedItem.length) {\n $newItem = $selectedItem[e.keyCode === 40 ? 'next' : 'prev']('li');\n if (!$newItem.length) {\n $newItem = ac.$dropdownEl\n .find('li')\n .eq(e.keyCode === 40 ? 0 : ac.$dropdownEl.find('li').length - 1);\n }\n } else {\n $newItem = ac.$dropdownEl\n .find('li')\n .eq(e.keyCode === 40 ? 0 : ac.$dropdownEl.find('li').length - 1);\n }\n if ($newItem.hasClass('autocomplete-dropdown-placeholder')) return;\n $selectedItem.removeClass('autocomplete-dropdown-selected');\n $newItem.addClass('autocomplete-dropdown-selected');\n }\n function onDropdownClick() {\n const $clickedEl = $(this);\n let clickedItem;\n for (let i = 0; i < ac.items.length; i += 1) {\n const itemValue =\n typeof ac.items[i] === 'object' ? ac.items[i][ac.params.valueProperty] : ac.items[i];\n const value = $clickedEl.attr('data-value');\n if (itemValue === value || itemValue * 1 === value * 1) {\n clickedItem = ac.items[i];\n }\n }\n if (ac.params.updateInputValueOnSelect) {\n ac.$inputEl.val(\n typeof clickedItem === 'object' ? clickedItem[ac.params.valueProperty] : clickedItem,\n );\n ac.$inputEl.trigger('input change');\n }\n ac.value = [clickedItem];\n ac.emit('local::change autocompleteChange', [clickedItem]);\n ac.close();\n }\n\n ac.attachEvents = function attachEvents() {\n if (ac.params.openIn !== 'dropdown' && ac.$openerEl) {\n ac.$openerEl.on('click', onOpenerClick);\n }\n if (ac.params.openIn === 'dropdown' && ac.$inputEl) {\n ac.$inputEl.on('focus', onInputFocus);\n ac.$inputEl.on(ac.params.inputEvents, onInputChange);\n if (device.android) {\n $('html').on('click', onHtmlClick);\n } else {\n ac.$inputEl.on('blur', onInputBlur);\n }\n ac.$inputEl.on('keydown', onKeyDown);\n }\n };\n ac.detachEvents = function attachEvents() {\n if (ac.params.openIn !== 'dropdown' && ac.$openerEl) {\n ac.$openerEl.off('click', onOpenerClick);\n }\n if (ac.params.openIn === 'dropdown' && ac.$inputEl) {\n ac.$inputEl.off('focus', onInputFocus);\n ac.$inputEl.off(ac.params.inputEvents, onInputChange);\n if (device.android) {\n $('html').off('click', onHtmlClick);\n } else {\n ac.$inputEl.off('blur', onInputBlur);\n }\n ac.$inputEl.off('keydown', onKeyDown);\n }\n };\n ac.attachDropdownEvents = function attachDropdownEvents() {\n ac.$dropdownEl.on('click', 'label', onDropdownClick);\n app.on('resize', onResize);\n };\n ac.detachDropdownEvents = function detachDropdownEvents() {\n ac.$dropdownEl.off('click', 'label', onDropdownClick);\n app.off('resize', onResize);\n };\n\n ac.attachPageEvents = function attachPageEvents() {\n ac.$el.on('change', 'input[type=\"radio\"], input[type=\"checkbox\"]', onPageInputChange);\n if (ac.params.closeOnSelect && !ac.params.multiple) {\n ac.$el.once('click', '.list label', () => {\n nextTick(() => {\n ac.close();\n });\n });\n }\n };\n ac.detachPageEvents = function detachPageEvents() {\n ac.$el.off('change', 'input[type=\"radio\"], input[type=\"checkbox\"]', onPageInputChange);\n };\n\n // Install Modules\n ac.useModules();\n\n // Init\n ac.init();\n\n return ac;\n }\n\n get view() {\n const ac = this;\n const { $openerEl, $inputEl, app } = ac;\n let view;\n if (ac.params.view) {\n view = ac.params.view;\n } else if ($openerEl || $inputEl) {\n const $el = $openerEl || $inputEl;\n view = $el.closest('.view').length && $el.closest('.view')[0].f7View;\n }\n if (!view) view = app.views.main;\n return view;\n }\n\n positionDropdown() {\n const ac = this;\n const { $inputEl, app, $dropdownEl } = ac;\n\n const $pageContentEl = $inputEl.parents('.page-content');\n if ($pageContentEl.length === 0) return;\n const inputOffset = $inputEl.offset();\n const inputOffsetWidth = $inputEl[0].offsetWidth;\n const inputOffsetHeight = $inputEl[0].offsetHeight;\n const $listEl = $inputEl.parents('.list');\n\n let $listParent;\n $listEl.parents().each((parentEl) => {\n if ($listParent) return;\n const $parentEl = $(parentEl);\n if ($parentEl.parent($pageContentEl).length) $listParent = $parentEl;\n });\n\n const listOffset = $listEl.offset();\n const paddingBottom = parseInt($pageContentEl.css('padding-bottom'), 10);\n const listOffsetLeft = $listEl.length > 0 ? listOffset.left - $pageContentEl.offset().left : 0;\n const inputOffsetLeft =\n inputOffset.left - ($listEl.length > 0 ? listOffset.left : 0) - (app.rtl ? 0 : 0);\n const inputOffsetTop =\n inputOffset.top - ($pageContentEl.offset().top - $pageContentEl[0].scrollTop);\n\n const maxHeight =\n $pageContentEl[0].scrollHeight -\n paddingBottom -\n (inputOffsetTop + $pageContentEl[0].scrollTop) -\n $inputEl[0].offsetHeight;\n\n const paddingProp = app.rtl ? 'padding-right' : 'padding-left';\n let paddingValue;\n if ($listEl.length) {\n paddingValue =\n (app.rtl ? $listEl[0].offsetWidth - inputOffsetLeft - inputOffsetWidth : inputOffsetLeft) -\n (app.theme === 'md' ? 16 : 15);\n }\n\n $dropdownEl.css({\n left: `${$listEl.length > 0 ? listOffsetLeft : inputOffsetLeft}px`,\n top: `${inputOffsetTop + $pageContentEl[0].scrollTop + inputOffsetHeight}px`,\n width: `${$listEl.length > 0 ? $listEl[0].offsetWidth : inputOffsetWidth}px`,\n });\n $dropdownEl.children('.autocomplete-dropdown-inner').css({\n maxHeight: `${maxHeight}px`,\n [paddingProp]: $listEl.length > 0 ? `${paddingValue}px` : '',\n });\n }\n\n focus() {\n const ac = this;\n ac.$el.find('input[type=search]').focus();\n }\n\n source(query) {\n const ac = this;\n if (!ac.params.source) return;\n\n const { $el } = ac;\n\n ac.params.source.call(ac, query, (items) => {\n let itemsHTML = '';\n const limit = ac.params.limit ? Math.min(ac.params.limit, items.length) : items.length;\n ac.items = items;\n for (let i = 0; i < limit; i += 1) {\n let selected = false;\n const itemValue =\n typeof items[i] === 'object' ? items[i][ac.params.valueProperty] : items[i];\n for (let j = 0; j < ac.value.length; j += 1) {\n const aValue =\n typeof ac.value[j] === 'object' ? ac.value[j][ac.params.valueProperty] : ac.value[j];\n if (aValue === itemValue || aValue * 1 === itemValue * 1) selected = true;\n }\n itemsHTML += ac.renderItem(\n {\n value: itemValue,\n text: typeof items[i] === 'object' ? items[i][ac.params.textProperty] : items[i],\n inputType: ac.inputType,\n id: ac.id,\n inputName: ac.inputName,\n selected,\n },\n i,\n );\n }\n $el.find('.autocomplete-found ul').html(itemsHTML);\n if (items.length === 0) {\n if (query.length !== 0) {\n $el.find('.autocomplete-not-found').show();\n $el.find('.autocomplete-found, .autocomplete-values').hide();\n } else {\n $el.find('.autocomplete-values').show();\n $el.find('.autocomplete-found, .autocomplete-not-found').hide();\n }\n } else {\n $el.find('.autocomplete-found').show();\n $el.find('.autocomplete-not-found, .autocomplete-values').hide();\n }\n });\n }\n\n updateValues() {\n const ac = this;\n let valuesHTML = '';\n for (let i = 0; i < ac.value.length; i += 1) {\n valuesHTML += ac.renderItem(\n {\n value:\n typeof ac.value[i] === 'object' ? ac.value[i][ac.params.valueProperty] : ac.value[i],\n text: typeof ac.value[i] === 'object' ? ac.value[i][ac.params.textProperty] : ac.value[i],\n inputType: ac.inputType,\n id: ac.id,\n inputName: `${ac.inputName}-checked}`,\n selected: true,\n },\n i,\n );\n }\n ac.$el.find('.autocomplete-values ul').html(valuesHTML);\n }\n\n preloaderHide() {\n const ac = this;\n if (ac.params.openIn === 'dropdown' && ac.$dropdownEl) {\n ac.$dropdownEl.find('.autocomplete-preloader').removeClass('autocomplete-preloader-visible');\n } else {\n $('.autocomplete-preloader').removeClass('autocomplete-preloader-visible');\n }\n }\n\n preloaderShow() {\n const ac = this;\n if (ac.params.openIn === 'dropdown' && ac.$dropdownEl) {\n ac.$dropdownEl.find('.autocomplete-preloader').addClass('autocomplete-preloader-visible');\n } else {\n $('.autocomplete-preloader').addClass('autocomplete-preloader-visible');\n }\n }\n\n renderPreloader() {\n const ac = this;\n const preloaders = {\n iosPreloaderContent,\n mdPreloaderContent,\n };\n\n return (\n <div\n class={`autocomplete-preloader preloader ${\n ac.params.preloaderColor ? `color-${ac.params.preloaderColor}` : ''\n }`}\n >\n {preloaders[`${ac.app.theme}PreloaderContent`] || ''}\n </div>\n );\n }\n\n renderSearchbar() {\n const ac = this;\n if (ac.params.renderSearchbar) return ac.params.renderSearchbar.call(ac);\n\n return (\n <form class=\"searchbar\">\n <div class=\"searchbar-inner\">\n <div class=\"searchbar-input-wrap\">\n <input\n type=\"search\"\n spellcheck={ac.params.searchbarSpellcheck || 'false'}\n placeholder={ac.params.searchbarPlaceholder}\n />\n <i class=\"searchbar-icon\"></i>\n <span class=\"input-clear-button\"></span>\n </div>\n {ac.params.searchbarDisableButton && (\n <span class=\"searchbar-disable-button\">{ac.params.searchbarDisableText}</span>\n )}\n </div>\n </form>\n );\n }\n\n renderItem(item, index) {\n const ac = this;\n if (ac.params.renderItem) return ac.params.renderItem.call(ac, item, index);\n\n const itemValue =\n item.value && typeof item.value === 'string'\n ? item.value.replace(/\"/g, '"')\n : item.value;\n if (ac.params.openIn !== 'dropdown') {\n return (\n <li>\n <label class={`item-${item.inputType} item-content`}>\n <input\n type={item.inputType}\n name={item.inputName}\n value={itemValue}\n _checked={item.selected}\n />\n <i class={`icon icon-${item.inputType}`} />\n <div class=\"item-inner\">\n <div class=\"item-title\">{item.text}</div>\n </div>\n </label>\n </li>\n );\n }\n // Dropdown\n if (!item.placeholder) {\n return (\n <li>\n <label class=\"item-radio item-content\" data-value={itemValue}>\n <div class=\"item-inner\">\n <div class=\"item-title\">{item.text}</div>\n </div>\n </label>\n </li>\n );\n }\n\n // Dropwdown placeholder\n return (\n <li class=\"autocomplete-dropdown-placeholder\">\n <label class=\"item-content\">\n <div class=\"item-inner\">\n <div class=\"item-title\">{item.text}</div>\n </div>\n </label>\n </li>\n );\n }\n\n renderNavbar() {\n const ac = this;\n if (ac.params.renderNavbar) return ac.params.renderNavbar.call(ac);\n let pageTitle = ac.params.pageTitle;\n if (typeof pageTitle === 'undefined' && ac.$openerEl && ac.$openerEl.length) {\n pageTitle = ac.$openerEl.find('.item-title').text().trim();\n }\n const inPopup = ac.params.openIn === 'popup';\n\n // eslint-disable-next-line\n const navbarLeft = inPopup ? (\n ac.params.preloader && <div class=\"left\">{ac.renderPreloader()}</div>\n ) : (\n <div class=\"left sliding\">\n <a class=\"link back\">\n <i class=\"icon icon-back\"></i>\n <span class=\"if-not-md\">{ac.params.pageBackLinkText}</span>\n </a>\n </div>\n );\n const navbarRight = inPopup ? (\n <div class=\"right\">\n <a class=\"link popup-close\" data-popup=\".autocomplete-popup\">\n {ac.params.popupCloseLinkText}\n </a>\n </div>\n ) : (\n ac.params.preloader && <div class=\"right\">{ac.renderPreloader()}</div>\n );\n return (\n <div\n class={`navbar ${ac.params.navbarColorTheme ? `color-${ac.params.navbarColorTheme}` : ''}`}\n >\n <div class=\"navbar-bg\"></div>\n <div\n class={`navbar-inner ${\n ac.params.navbarColorTheme ? `color-${ac.params.navbarColorTheme}` : ''\n }`}\n >\n {navbarLeft}\n {pageTitle && <div class=\"title sliding\">{pageTitle}</div>}\n {navbarRight}\n <div class=\"subnavbar sliding\">{ac.renderSearchbar()}</div>\n </div>\n </div>\n );\n }\n\n renderDropdown() {\n const ac = this;\n if (ac.params.renderDropdown) return ac.params.renderDropdown.call(ac, ac.items);\n\n return (\n <div class=\"autocomplete-dropdown\">\n <div class=\"autocomplete-dropdown-inner\">\n <div class={`list no-safe-areas`}>\n <ul></ul>\n </div>\n </div>\n {ac.params.preloader && ac.renderPreloader()}\n </div>\n );\n }\n\n renderPage(inPopup) {\n const ac = this;\n if (ac.params.renderPage) return ac.params.renderPage.call(ac, ac.items);\n\n return (\n <div class=\"page page-with-subnavbar autocomplete-page\" data-name=\"autocomplete-page\">\n {ac.renderNavbar(inPopup)}\n <div class=\"searchbar-backdrop\"></div>\n <div class=\"page-content\">\n <div\n class={`list autocomplete-list autocomplete-found autocomplete-list-${ac.id} ${\n ac.params.formColorTheme ? `color-${ac.params.formColorTheme}` : ''\n }`}\n >\n <ul></ul>\n </div>\n <div class=\"list autocomplete-not-found\">\n <ul>\n <li class=\"item-content\">\n <div class=\"item-inner\">\n <div class=\"item-title\">{ac.params.notFoundText}</div>\n </div>\n </li>\n </ul>\n </div>\n <div class=\"list autocomplete-values\">\n <ul></ul>\n </div>\n </div>\n </div>\n );\n }\n\n renderPopup() {\n const ac = this;\n if (ac.params.renderPopup) return ac.params.renderPopup.call(ac, ac.items);\n return (\n <div class=\"popup autocomplete-popup\">\n <div class=\"view\">{ac.renderPage(true)};</div>\n </div>\n );\n }\n\n onOpen(type, el) {\n const ac = this;\n const app = ac.app;\n const $el = $(el);\n ac.$el = $el;\n ac.el = $el[0];\n ac.openedIn = type;\n ac.opened = true;\n\n if (ac.params.openIn === 'dropdown') {\n ac.attachDropdownEvents();\n\n ac.$dropdownEl.addClass('autocomplete-dropdown-in');\n ac.$inputEl.trigger('input');\n } else {\n // Init SB\n let $searchbarEl = $el.find('.searchbar');\n if (ac.params.openIn === 'page' && app.theme === 'ios' && $searchbarEl.length === 0) {\n $searchbarEl = $(app.navbar.getElByPage($el)).find('.searchbar');\n }\n ac.searchbar = app.searchbar.create({\n el: $searchbarEl,\n backdropEl: $el.find('.searchbar-backdrop'),\n customSearch: true,\n on: {\n search(sb, query) {\n if (query.length === 0 && ac.searchbar.enabled) {\n ac.searchbar.backdropShow();\n } else {\n ac.searchbar.backdropHide();\n }\n ac.source(query);\n },\n },\n });\n\n // Attach page events\n ac.attachPageEvents();\n\n // Update Values On Page Init\n ac.updateValues();\n\n // Source on load\n if (ac.params.requestSourceOnOpen) ac.source('');\n }\n\n ac.emit('local::open autocompleteOpen', ac);\n }\n\n autoFocus() {\n const ac = this;\n if (ac.searchbar && ac.searchbar.$inputEl) {\n ac.searchbar.$inputEl.focus();\n }\n return ac;\n }\n\n onOpened() {\n const ac = this;\n if (ac.params.openIn !== 'dropdown' && ac.params.autoFocus) {\n ac.autoFocus();\n }\n ac.emit('local::opened autocompleteOpened', ac);\n }\n\n onClose() {\n const ac = this;\n if (ac.destroyed) return;\n\n // Destroy SB\n if (ac.searchbar && ac.searchbar.destroy) {\n ac.searchbar.destroy();\n ac.searchbar = null;\n delete ac.searchbar;\n }\n\n if (ac.params.openIn === 'dropdown') {\n ac.detachDropdownEvents();\n ac.$dropdownEl.removeClass('autocomplete-dropdown-in').remove();\n } else {\n ac.detachPageEvents();\n }\n\n ac.emit('local::close autocompleteClose', ac);\n }\n\n onClosed() {\n const ac = this;\n if (ac.destroyed) return;\n ac.opened = false;\n ac.$el = null;\n ac.el = null;\n delete ac.$el;\n delete ac.el;\n\n ac.emit('local::closed autocompleteClosed', ac);\n }\n\n openPage() {\n const ac = this;\n if (ac.opened) return ac;\n const pageHtml = ac.renderPage();\n ac.view.router.navigate({\n url: ac.url,\n route: {\n content: pageHtml,\n path: ac.url,\n on: {\n pageBeforeIn(e, page) {\n ac.onOpen('page', page.el);\n },\n pageAfterIn(e, page) {\n ac.onOpened('page', page.el);\n },\n pageBeforeOut(e, page) {\n ac.onClose('page', page.el);\n },\n pageAfterOut(e, page) {\n ac.onClosed('page', page.el);\n },\n },\n options: {\n animate: ac.params.animate,\n },\n },\n });\n return ac;\n }\n\n openPopup() {\n const ac = this;\n if (ac.opened) return ac;\n const popupHtml = ac.renderPopup();\n\n const popupParams = {\n content: popupHtml,\n animate: ac.params.animate,\n push: ac.params.popupPush,\n swipeToClose: ac.params.popupSwipeToClose,\n on: {\n popupOpen(popup) {\n ac.onOpen('popup', popup.el);\n },\n popupOpened(popup) {\n ac.onOpened('popup', popup.el);\n },\n popupClose(popup) {\n ac.onClose('popup', popup.el);\n },\n popupClosed(popup) {\n ac.onClosed('popup', popup.el);\n },\n },\n };\n\n if (ac.params.routableModals && ac.view) {\n ac.view.router.navigate({\n url: ac.url,\n route: {\n path: ac.url,\n popup: popupParams,\n },\n });\n } else {\n ac.modal = ac.app.popup.create(popupParams).open(ac.params.animate);\n }\n return ac;\n }\n\n openDropdown() {\n const ac = this;\n\n if (!ac.$dropdownEl) {\n ac.$dropdownEl = $(ac.renderDropdown());\n }\n\n const $pageContentEl = ac.$inputEl.parents('.page-content');\n if (ac.params.dropdownContainerEl) {\n $(ac.params.dropdownContainerEl).append(ac.$dropdownEl);\n } else if ($pageContentEl.length === 0) {\n ac.$dropdownEl.insertAfter(ac.$inputEl);\n } else {\n ac.positionDropdown();\n $pageContentEl.append(ac.$dropdownEl);\n }\n ac.onOpen('dropdown', ac.$dropdownEl);\n ac.onOpened('dropdown', ac.$dropdownEl);\n }\n\n open() {\n const ac = this;\n if (ac.opened) return ac;\n const openIn = ac.params.openIn;\n ac[\n `open${openIn\n .split('')\n .map((el, index) => {\n if (index === 0) return el.toUpperCase();\n return el;\n })\n .join('')}`\n ]();\n return ac;\n }\n\n close() {\n const ac = this;\n if (!ac.opened) return ac;\n if (ac.params.openIn === 'dropdown') {\n ac.onClose();\n ac.onClosed();\n } else if ((ac.params.routableModals && ac.view) || ac.openedIn === 'page') {\n ac.view.router.back({ animate: ac.params.animate });\n } else {\n ac.modal.once('modalClosed', () => {\n nextTick(() => {\n if (ac.destroyed) return;\n ac.modal.destroy();\n delete ac.modal;\n });\n });\n ac.modal.close();\n }\n return ac;\n }\n\n init() {\n const ac = this;\n ac.attachEvents();\n }\n\n destroy() {\n const ac = this;\n ac.emit('local::beforeDestroy autocompleteBeforeDestroy', ac);\n ac.detachEvents();\n if (ac.$inputEl && ac.$inputEl[0]) {\n delete ac.$inputEl[0].f7Autocomplete;\n }\n if (ac.$openerEl && ac.$openerEl[0]) {\n delete ac.$openerEl[0].f7Autocomplete;\n }\n deleteProps(ac);\n ac.destroyed = true;\n }\n}\n\nexport default Autocomplete;\n","import { extend } from '../../shared/utils.js';\nimport Autocomplete from './autocomplete-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'autocomplete',\n params: {\n autocomplete: {\n openerEl: undefined,\n inputEl: undefined,\n view: undefined,\n\n // DropDown\n dropdownContainerEl: undefined,\n dropdownPlaceholderText: undefined,\n typeahead: false,\n highlightMatches: true,\n updateInputValueOnSelect: true,\n inputEvents: 'input',\n\n value: undefined,\n multiple: false,\n\n source: undefined,\n limit: undefined,\n valueProperty: 'id',\n textProperty: 'text',\n\n openIn: 'page', // or 'popup' or 'dropdown'\n pageBackLinkText: 'Back',\n popupCloseLinkText: 'Close',\n pageTitle: undefined,\n searchbarPlaceholder: 'Search...',\n searchbarDisableText: 'Cancel',\n searchbarDisableButton: true,\n searchbarSpellcheck: false,\n\n popupPush: false,\n popupSwipeToClose: undefined,\n\n animate: true,\n\n autoFocus: false,\n closeOnSelect: false,\n notFoundText: 'Nothing found',\n requestSourceOnOpen: false,\n\n // Preloader\n preloaderColor: undefined,\n preloader: false,\n\n // Colors\n formColorTheme: undefined,\n navbarColorTheme: undefined,\n\n // Routing\n routableModals: false,\n url: 'select/',\n\n // Custom render functions\n renderDropdown: undefined,\n renderPage: undefined,\n renderPopup: undefined,\n renderItem: undefined,\n renderSearchbar: undefined,\n renderNavbar: undefined,\n },\n },\n static: {\n Autocomplete,\n },\n create() {\n const app = this;\n app.autocomplete = extend(\n ConstructorMethods({\n defaultSelector: undefined,\n constructor: Autocomplete,\n app,\n domProp: 'f7Autocomplete',\n }),\n {\n open(autocompleteEl) {\n const ac = app.autocomplete.get(autocompleteEl);\n if (ac && ac.open) return ac.open();\n return undefined;\n },\n close(autocompleteEl) {\n const ac = app.autocomplete.get(autocompleteEl);\n if (ac && ac.close) return ac.close();\n return undefined;\n },\n },\n );\n },\n};\n","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, deleteProps } from '../../shared/utils.js';\nimport { getSupport } from '../../shared/get-support.js';\nimport Framework7Class from '../../shared/class.js';\n\nclass Tooltip extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n\n const tooltip = this;\n const support = getSupport();\n\n const defaults = extend({}, app.params.tooltip);\n\n const document = getDocument();\n\n // Extend defaults with modules params\n tooltip.useModulesParams(defaults);\n\n tooltip.params = extend(defaults, params);\n if (\n typeof params.offset === 'undefined' &&\n support.touch &&\n tooltip.params.trigger === 'hover'\n ) {\n tooltip.params.offset = 10;\n }\n\n const { targetEl, containerEl } = tooltip.params;\n if (!targetEl && !tooltip.params.delegated) return tooltip;\n\n const $targetEl = $(targetEl);\n if ($targetEl.length === 0 && !tooltip.params.delegated) return tooltip;\n\n if ($targetEl[0] && $targetEl[0].f7Tooltip && !tooltip.params.delegated)\n return $targetEl[0].f7Tooltip;\n\n let $containerEl = $(containerEl || app.$el).eq(0);\n if ($containerEl.length === 0) {\n $containerEl = app.$el;\n }\n\n const $el = $(tooltip.render()).eq(0);\n\n extend(tooltip, {\n app,\n $targetEl,\n targetEl: $targetEl && $targetEl[0],\n $containerEl,\n containerEl: $containerEl && $containerEl[0],\n $el,\n el: $el && $el[0],\n text: tooltip.params.text || '',\n visible: false,\n opened: false,\n });\n\n if ($targetEl[0]) $targetEl[0].f7Tooltip = tooltip;\n\n const touchesStart = {};\n let isTouched;\n function handleClick() {\n if (tooltip.opened) tooltip.hide();\n else tooltip.show(this);\n }\n function handleClickOut(e) {\n if (\n tooltip.opened &&\n ($(e.target).closest($targetEl).length || $(e.target).closest(tooltip.$el).length)\n )\n return;\n tooltip.hide();\n }\n function handleTouchStart(e) {\n if (isTouched) return;\n isTouched = true;\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 tooltip.show(this);\n }\n function handleTouchMove(e) {\n if (!isTouched) return;\n const x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n const y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n const distance = ((x - touchesStart.x) ** 2 + (y - touchesStart.y) ** 2) ** 0.5;\n if (distance > 50) {\n isTouched = false;\n tooltip.hide();\n }\n }\n function handleTouchEnd() {\n if (!isTouched) return;\n isTouched = false;\n tooltip.hide();\n }\n function handleMouseEnter() {\n tooltip.show(this);\n }\n function handleMouseLeave() {\n tooltip.hide();\n }\n function handleTransitionEnd() {\n if (!$el.hasClass('tooltip-in')) {\n $el.removeClass('tooltip-out').remove();\n }\n }\n\n tooltip.attachEvents = function attachEvents() {\n $el.on('transitionend', handleTransitionEnd);\n if (tooltip.params.trigger === 'click') {\n if (tooltip.params.delegated) {\n $(document).on('click', tooltip.params.targetEl, handleClick);\n } else {\n tooltip.$targetEl.on('click', handleClick);\n }\n $('html').on('click', handleClickOut);\n return;\n }\n if (tooltip.params.trigger === 'manual') return;\n if (support.touch) {\n const passive = support.passiveListener ? { passive: true } : false;\n if (tooltip.params.delegated) {\n $(document).on(app.touchEvents.start, tooltip.params.targetEl, handleTouchStart, passive);\n } else {\n tooltip.$targetEl.on(app.touchEvents.start, handleTouchStart, passive);\n }\n app.on('touchmove', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n } else {\n // eslint-disable-next-line\n if (tooltip.params.delegated) {\n $(document).on(\n support.pointerEvents ? 'pointerenter' : 'mouseenter',\n tooltip.params.targetEl,\n handleMouseEnter,\n true,\n );\n $(document).on(\n support.pointerEvents ? 'pointerleave' : 'mouseleave',\n tooltip.params.targetEl,\n handleMouseLeave,\n true,\n );\n } else {\n tooltip.$targetEl.on(\n support.pointerEvents ? 'pointerenter' : 'mouseenter',\n handleMouseEnter,\n );\n tooltip.$targetEl.on(\n support.pointerEvents ? 'pointerleave' : 'mouseleave',\n handleMouseLeave,\n );\n }\n }\n };\n tooltip.detachEvents = function detachEvents() {\n $el.off('transitionend', handleTransitionEnd);\n if (tooltip.params.trigger === 'click') {\n if (tooltip.params.delegated) {\n $(document).on('click', tooltip.params.targetEl, handleClick);\n } else {\n tooltip.$targetEl.off('click', handleClick);\n }\n $('html').off('click', handleClickOut);\n return;\n }\n if (tooltip.params.trigger === 'manual') return;\n if (support.touch) {\n const passive = support.passiveListener ? { passive: true } : false;\n if (tooltip.params.delegated) {\n $(document).off(\n app.touchEvents.start,\n tooltip.params.targetEl,\n handleTouchStart,\n passive,\n );\n } else {\n tooltip.$targetEl.off(app.touchEvents.start, handleTouchStart, passive);\n }\n app.off('touchmove', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n } else {\n // eslint-disable-next-line\n if (tooltip.params.delegated) {\n $(document).off(\n support.pointerEvents ? 'pointerenter' : 'mouseenter',\n tooltip.params.targetEl,\n handleMouseEnter,\n true,\n );\n $(document).off(\n support.pointerEvents ? 'pointerleave' : 'mouseleave',\n tooltip.params.targetEl,\n handleMouseLeave,\n true,\n );\n } else {\n tooltip.$targetEl.off(\n support.pointerEvents ? 'pointerenter' : 'mouseenter',\n handleMouseEnter,\n );\n tooltip.$targetEl.off(\n support.pointerEvents ? 'pointerleave' : 'mouseleave',\n handleMouseLeave,\n );\n }\n }\n };\n\n // Install Modules\n tooltip.useModules();\n\n tooltip.init();\n\n return tooltip;\n }\n\n setTargetEl(targetEl) {\n const tooltip = this;\n tooltip.detachEvents();\n tooltip.$targetEl = $(targetEl);\n tooltip.targetEl = tooltip.$targetEl[0];\n tooltip.attachEvents();\n return tooltip;\n }\n\n position(targetEl) {\n const tooltip = this;\n const { $el, app, $containerEl } = tooltip;\n const hasContainerEl = !!tooltip.params.containerEl;\n const tooltipOffset = tooltip.params.offset || 0;\n $el.css({ left: '', top: '' });\n const $targetEl = $(targetEl || tooltip.targetEl);\n const [width, height] = [$el.width(), $el.height()];\n\n $el.css({ left: '', top: '' });\n\n let targetWidth;\n let targetHeight;\n let targetOffsetLeft;\n let targetOffsetTop;\n\n const boundaries =\n hasContainerEl && $containerEl.length ? $containerEl[0].getBoundingClientRect() : app;\n\n if ($targetEl && $targetEl.length > 0) {\n targetWidth = $targetEl.outerWidth();\n targetHeight = $targetEl.outerHeight();\n if (typeof targetWidth === 'undefined' && typeof targetHeight === 'undefined') {\n const clientRect = $targetEl[0].getBoundingClientRect();\n targetWidth = clientRect.width;\n targetHeight = clientRect.height;\n }\n\n const targetOffset = $targetEl.offset();\n targetOffsetLeft = targetOffset.left - boundaries.left;\n targetOffsetTop = targetOffset.top - boundaries.top;\n\n const targetParentPage = $targetEl.parents('.page');\n if (targetParentPage.length > 0) {\n targetOffsetTop -= targetParentPage[0].scrollTop;\n }\n }\n let [left, top] = [0, 0, 0];\n\n // Top Position\n let position = 'top';\n\n if (height + tooltipOffset < targetOffsetTop) {\n // On top\n top = targetOffsetTop - height - tooltipOffset;\n } else if (height < boundaries.height - targetOffsetTop - targetHeight) {\n // On bottom\n position = 'bottom';\n top = targetOffsetTop + targetHeight + tooltipOffset;\n } else {\n // On middle\n position = 'middle';\n top = targetHeight / 2 + targetOffsetTop - height / 2;\n if (top <= 0) {\n top = 8;\n } else if (top + height >= boundaries.height) {\n top = boundaries.height - height - 8;\n }\n }\n\n // Horizontal Position\n if (position === 'top' || position === 'bottom') {\n left = targetWidth / 2 + targetOffsetLeft - width / 2;\n if (left < 8) left = 8;\n if (left + width > boundaries.width) left = boundaries.width - width - 8;\n if (left < 0) left = 0;\n } else if (position === 'middle') {\n left = targetOffsetLeft - width;\n if (left < 8 || left + width > boundaries.width) {\n if (left < 8) left = targetOffsetLeft + targetWidth;\n if (left + width > boundaries.width) left = boundaries.width - width - 8;\n }\n }\n\n // Apply Styles\n $el.css({ top: `${top}px`, left: `${left}px` });\n }\n\n show(aroundEl) {\n const tooltip = this;\n const { $el, $targetEl, $containerEl } = tooltip;\n if ($containerEl[0] && $el[0] && !$containerEl[0].contains($el[0])) {\n $containerEl.append($el);\n }\n tooltip.position(aroundEl);\n const $aroundEl = $(aroundEl);\n tooltip.visible = true;\n tooltip.opened = true;\n $targetEl.trigger('tooltip:show');\n $el.trigger('tooltip:show');\n if ($aroundEl.length && $aroundEl[0] !== $targetEl[0]) {\n $aroundEl.trigger('tooltip:show');\n }\n tooltip.emit('local::show tooltipShow', tooltip);\n $el.removeClass('tooltip-out').addClass('tooltip-in');\n return tooltip;\n }\n\n hide() {\n const tooltip = this;\n const { $el, $targetEl } = tooltip;\n tooltip.visible = false;\n tooltip.opened = false;\n $targetEl.trigger('tooltip:hide');\n $el.trigger('tooltip:hide');\n tooltip.emit('local::hide tooltipHide', tooltip);\n $el.addClass('tooltip-out').removeClass('tooltip-in');\n return tooltip;\n }\n\n render() {\n const tooltip = this;\n if (tooltip.params.render) return tooltip.params.render.call(tooltip, tooltip);\n const { cssClass, text } = tooltip.params;\n return `\n <div class=\"tooltip ${cssClass || ''}\">\n <div class=\"tooltip-content\">${text || ''}</div>\n </div>\n `.trim();\n }\n\n setText(newText) {\n const tooltip = this;\n if (typeof newText === 'undefined') {\n return tooltip;\n }\n tooltip.params.text = newText;\n tooltip.text = newText;\n if (tooltip.$el) {\n tooltip.$el.children('.tooltip-content').html(newText);\n }\n if (tooltip.opened) {\n tooltip.position();\n }\n return tooltip;\n }\n\n init() {\n const tooltip = this;\n tooltip.attachEvents();\n }\n\n destroy() {\n const tooltip = this;\n if (!tooltip.$targetEl || tooltip.destroyed) return;\n tooltip.$targetEl.trigger('tooltip:beforedestroy');\n tooltip.emit('local::beforeDestroy tooltipBeforeDestroy', tooltip);\n tooltip.$el.remove();\n if (tooltip.$targetEl[0]) delete tooltip.$targetEl[0].f7Tooltip;\n tooltip.detachEvents();\n deleteProps(tooltip);\n tooltip.destroyed = true;\n }\n}\nexport default Tooltip;\n","import $ from '../../shared/dom7.js';\nimport Tooltip from './tooltip-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'tooltip',\n static: {\n Tooltip,\n },\n create() {\n const app = this;\n app.tooltip = ConstructorMethods({\n defaultSelector: '.tooltip',\n constructor: Tooltip,\n app,\n domProp: 'f7Tooltip',\n });\n app.tooltip.show = function show(el) {\n const $el = $(el);\n if ($el.length === 0) return undefined;\n const tooltip = $el[0].f7Tooltip;\n if (!tooltip) return undefined;\n tooltip.show($el[0]);\n return tooltip;\n };\n app.tooltip.hide = function hide(el) {\n const $el = $(el);\n if ($el.length === 0) return undefined;\n const tooltip = $el[0].f7Tooltip;\n if (!tooltip) return undefined;\n tooltip.hide();\n return tooltip;\n };\n app.tooltip.setText = function text(el, newText) {\n const $el = $(el);\n if ($el.length === 0) return undefined;\n const tooltip = $el[0].f7Tooltip;\n if (!tooltip) return undefined;\n tooltip.setText(newText);\n return tooltip;\n };\n },\n params: {\n tooltip: {\n targetEl: null,\n delegated: false,\n text: null,\n cssClass: null,\n render: null,\n offset: 0,\n trigger: 'hover',\n containerEl: undefined,\n },\n },\n on: {\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('.tooltip-init')\n .each((el) => {\n const text = $(el).attr('data-tooltip');\n if (!text) return;\n app.tooltip.create({ targetEl: el, text });\n });\n },\n tabBeforeRemove(tabEl) {\n $(tabEl)\n .find('.tooltip-init')\n .each((el) => {\n if (el.f7Tooltip) el.f7Tooltip.destroy();\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.tooltip-init').each((el) => {\n const text = $(el).attr('data-tooltip');\n if (!text) return;\n app.tooltip.create({ targetEl: el, text });\n });\n if (\n app.theme === 'ios' &&\n page.view &&\n page.view.router.dynamicNavbar &&\n page.$navbarEl &&\n page.$navbarEl.length > 0\n ) {\n page.$navbarEl.find('.tooltip-init').each((el) => {\n const text = $(el).attr('data-tooltip');\n if (!text) return;\n app.tooltip.create({ targetEl: el, text });\n });\n }\n },\n pageBeforeRemove(page) {\n const app = this;\n page.$el.find('.tooltip-init').each((el) => {\n if (el.f7Tooltip) el.f7Tooltip.destroy();\n });\n if (\n app.theme === 'ios' &&\n page.view &&\n page.view.router.dynamicNavbar &&\n page.$navbarEl &&\n page.$navbarEl.length > 0\n ) {\n page.$navbarEl.find('.tooltip-init').each((el) => {\n if (el.f7Tooltip) el.f7Tooltip.destroy();\n });\n }\n },\n },\n vnode: {\n 'tooltip-init': {\n insert(vnode) {\n const app = this;\n const el = vnode.elm;\n const text = $(el).attr('data-tooltip');\n if (!text) return;\n app.tooltip.create({ targetEl: el, text });\n },\n update(vnode) {\n const el = vnode.elm;\n if (!el.f7Tooltip) return;\n if (vnode && vnode.data && vnode.data.attrs && vnode.data.attrs['data-tooltip']) {\n el.f7Tooltip.setText(vnode.data.attrs['data-tooltip']);\n }\n },\n destroy(vnode) {\n const el = vnode.elm;\n if (el.f7Tooltip) el.f7Tooltip.destroy();\n },\n },\n },\n};\n","/* eslint no-nested-ternary: off */\nimport { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\n/** @jsx $jsx */\nimport $jsx from '../../shared/$jsx.js';\n\nclass Gauge extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n\n const self = this;\n\n const defaults = extend({}, app.params.gauge);\n\n // Extend defaults with modules params\n self.useModulesParams(defaults);\n\n self.params = extend(defaults, params);\n\n const { el } = self.params;\n if (!el) return self;\n\n const $el = $(el);\n if ($el.length === 0) return self;\n\n if ($el[0].f7Gauge) return $el[0].f7Gauge;\n\n extend(self, {\n app,\n $el,\n el: $el && $el[0],\n });\n\n $el[0].f7Gauge = self;\n\n // Install Modules\n self.useModules();\n\n self.init();\n\n return self;\n }\n\n calcRadius() {\n const self = this;\n const { size, borderWidth } = self.params;\n return size / 2 - borderWidth / 2;\n }\n\n calcBorderLength() {\n const self = this;\n const radius = self.calcRadius();\n return 2 * Math.PI * radius;\n }\n\n render() {\n const self = this;\n if (self.params.render) return self.params.render.call(self, self);\n\n const {\n type,\n value,\n size,\n bgColor,\n borderBgColor,\n borderColor,\n borderWidth,\n valueText,\n valueTextColor,\n valueFontSize,\n valueFontWeight,\n labelText,\n labelTextColor,\n labelFontSize,\n labelFontWeight,\n } = self.params;\n\n const semiCircle = type === 'semicircle';\n const radius = self.calcRadius();\n const length = self.calcBorderLength();\n const progress = Math.max(Math.min(value, 1), 0);\n\n return (\n <svg\n class=\"gauge-svg\"\n width={`${size}px`}\n height={`${semiCircle ? size / 2 : size}px`}\n viewBox={`0 0 ${size} ${semiCircle ? size / 2 : size}`}\n >\n {semiCircle && (\n <path\n class=\"gauge-back-semi\"\n d={`M${size - borderWidth / 2},${size / 2} a1,1 0 0,0 -${size - borderWidth},0`}\n stroke={borderBgColor}\n stroke-width={borderWidth}\n fill={bgColor || 'none'}\n />\n )}\n {semiCircle && (\n <path\n class=\"gauge-front-semi\"\n d={`M${size - borderWidth / 2},${size / 2} a1,1 0 0,0 -${size - borderWidth},0`}\n stroke={borderColor}\n stroke-width={borderWidth}\n stroke-dasharray={length / 2}\n stroke-dashoffset={(length / 2) * (1 + progress)}\n fill={borderBgColor ? 'none' : bgColor || 'none'}\n />\n )}\n {!semiCircle && borderBgColor && (\n <circle\n class=\"gauge-back-circle\"\n stroke={borderBgColor}\n stroke-width={borderWidth}\n fill={bgColor || 'none'}\n cx={size / 2}\n cy={size / 2}\n r={radius}\n />\n )}\n {!semiCircle && (\n <circle\n class=\"gauge-front-circle\"\n transform={`rotate(-90 ${size / 2} ${size / 2})`}\n stroke={borderColor}\n stroke-width={borderWidth}\n stroke-dasharray={length}\n stroke-dashoffset={length * (1 - progress)}\n fill={borderBgColor ? 'none' : bgColor || 'none'}\n cx={size / 2}\n cy={size / 2}\n r={radius}\n />\n )}\n\n {valueText && (\n <text\n class=\"gauge-value-text\"\n x=\"50%\"\n y={semiCircle ? '100%' : '50%'}\n font-weight={valueFontWeight}\n font-size={valueFontSize}\n fill={valueTextColor}\n dy={semiCircle ? (labelText ? -labelFontSize - 15 : -5) : 0}\n text-anchor=\"middle\"\n dominant-baseline={!semiCircle && 'middle'}\n >\n {valueText}\n </text>\n )}\n {labelText && (\n <text\n class=\"gauge-label-text\"\n x=\"50%\"\n y={semiCircle ? '100%' : '50%'}\n font-weight={labelFontWeight}\n font-size={labelFontSize}\n fill={labelTextColor}\n dy={semiCircle ? -5 : valueText ? valueFontSize / 2 + 10 : 0}\n text-anchor=\"middle\"\n dominant-baseline={!semiCircle && 'middle'}\n >\n {labelText}\n </text>\n )}\n </svg>\n );\n }\n\n update(newParams = {}) {\n const self = this;\n const document = getDocument();\n const { params, $svgEl } = self;\n\n Object.keys(newParams).forEach((param) => {\n if (typeof newParams[param] !== 'undefined') {\n params[param] = newParams[param];\n }\n });\n if ($svgEl.length === 0) return self;\n\n const {\n value,\n size,\n bgColor,\n borderBgColor,\n borderColor,\n borderWidth,\n valueText,\n valueTextColor,\n valueFontSize,\n valueFontWeight,\n labelText,\n labelTextColor,\n labelFontSize,\n labelFontWeight,\n } = params;\n\n const length = self.calcBorderLength();\n const progress = Math.max(Math.min(value, 1), 0);\n const radius = self.calcRadius();\n const semiCircle = params.type === 'semicircle';\n\n const svgAttrs = {\n width: `${size}px`,\n height: `${semiCircle ? size / 2 : size}px`,\n viewBox: `0 0 ${size} ${semiCircle ? size / 2 : size}`,\n };\n Object.keys(svgAttrs).forEach((attr) => {\n $svgEl.attr(attr, svgAttrs[attr]);\n });\n if (semiCircle) {\n const backAttrs = {\n d: `M${size - borderWidth / 2},${size / 2} a1,1 0 0,0 -${size - borderWidth},0`,\n stroke: borderBgColor,\n 'stroke-width': borderWidth,\n fill: bgColor || 'none',\n };\n const frontAttrs = {\n d: `M${size - borderWidth / 2},${size / 2} a1,1 0 0,0 -${size - borderWidth},0`,\n stroke: borderColor,\n 'stroke-width': borderWidth,\n 'stroke-dasharray': length / 2,\n 'stroke-dashoffset': (length / 2) * (1 + progress),\n fill: borderBgColor ? 'none' : bgColor || 'none',\n };\n Object.keys(backAttrs).forEach((attr) => {\n $svgEl.find('.gauge-back-semi').attr(attr, backAttrs[attr]);\n });\n Object.keys(frontAttrs).forEach((attr) => {\n $svgEl.find('.gauge-front-semi').attr(attr, frontAttrs[attr]);\n });\n } else {\n const backAttrs = {\n stroke: borderBgColor,\n 'stroke-width': borderWidth,\n fill: bgColor || 'none',\n cx: size / 2,\n cy: size / 2,\n r: radius,\n };\n const frontAttrs = {\n transform: `rotate(-90 ${size / 2} ${size / 2})`,\n stroke: borderColor,\n 'stroke-width': borderWidth,\n 'stroke-dasharray': length,\n 'stroke-dashoffset': length * (1 - progress),\n fill: borderBgColor ? 'none' : bgColor || 'none',\n cx: size / 2,\n cy: size / 2,\n r: radius,\n };\n Object.keys(backAttrs).forEach((attr) => {\n $svgEl.find('.gauge-back-circle').attr(attr, backAttrs[attr]);\n });\n Object.keys(frontAttrs).forEach((attr) => {\n $svgEl.find('.gauge-front-circle').attr(attr, frontAttrs[attr]);\n });\n }\n if (valueText) {\n if (!$svgEl.find('.gauge-value-text').length) {\n const textEl = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n textEl.classList.add('gauge-value-text');\n $svgEl.append(textEl);\n }\n const textAttrs = {\n x: '50%',\n y: semiCircle ? '100%' : '50%',\n 'font-weight': valueFontWeight,\n 'font-size': valueFontSize,\n fill: valueTextColor,\n dy: semiCircle ? (labelText ? -labelFontSize - 15 : -5) : 0,\n 'text-anchor': 'middle',\n 'dominant-baseline': !semiCircle && 'middle',\n };\n Object.keys(textAttrs).forEach((attr) => {\n $svgEl.find('.gauge-value-text').attr(attr, textAttrs[attr]);\n });\n $svgEl.find('.gauge-value-text').text(valueText);\n } else {\n $svgEl.find('.gauge-value-text').remove();\n }\n if (labelText) {\n if (!$svgEl.find('.gauge-label-text').length) {\n const textEl = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n textEl.classList.add('gauge-label-text');\n $svgEl.append(textEl);\n }\n const labelAttrs = {\n x: '50%',\n y: semiCircle ? '100%' : '50%',\n 'font-weight': labelFontWeight,\n 'font-size': labelFontSize,\n fill: labelTextColor,\n dy: semiCircle ? -5 : valueText ? valueFontSize / 2 + 10 : 0,\n 'text-anchor': 'middle',\n 'dominant-baseline': !semiCircle && 'middle',\n };\n Object.keys(labelAttrs).forEach((attr) => {\n $svgEl.find('.gauge-label-text').attr(attr, labelAttrs[attr]);\n });\n $svgEl.find('.gauge-label-text').text(labelText);\n } else {\n $svgEl.find('.gauge-label-text').remove();\n }\n return self;\n }\n\n init() {\n const self = this;\n const $svgEl = $(self.render()).eq(0);\n $svgEl.f7Gauge = self;\n extend(self, {\n $svgEl,\n svgEl: $svgEl && $svgEl[0],\n });\n self.$el.append($svgEl);\n return self;\n }\n\n destroy() {\n const self = this;\n if (!self.$el || self.destroyed) return;\n self.$el.trigger('gauge:beforedestroy');\n self.emit('local::beforeDestroy gaugeBeforeDestroy', self);\n self.$svgEl.remove();\n delete self.$el[0].f7Gauge;\n deleteProps(self);\n self.destroyed = true;\n }\n}\nexport default Gauge;\n","import $ from '../../shared/dom7.js';\nimport Gauge from './gauge-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\nimport { extend } from '../../shared/utils.js';\n\nexport default {\n name: 'gauge',\n static: {\n Gauge,\n },\n create() {\n const app = this;\n app.gauge = ConstructorMethods({\n defaultSelector: '.gauge',\n constructor: Gauge,\n app,\n domProp: 'f7Gauge',\n });\n app.gauge.update = function update(el, newParams) {\n const $el = $(el);\n if ($el.length === 0) return undefined;\n const gauge = app.gauge.get(el);\n if (!gauge) return undefined;\n gauge.update(newParams);\n return gauge;\n };\n },\n params: {\n gauge: {\n el: null,\n type: 'circle',\n value: 0,\n size: 200,\n bgColor: 'transparent',\n borderBgColor: '#eeeeee',\n borderColor: '#000000',\n borderWidth: 10,\n valueText: null,\n valueTextColor: '#000000',\n valueFontSize: 31,\n valueFontWeight: 500,\n labelText: null,\n labelTextColor: '#888888',\n labelFontSize: 14,\n labelFontWeight: 400,\n },\n },\n on: {\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('.gauge-init')\n .each((el) => {\n app.gauge.create(extend({ el }, $(el).dataset() || {}));\n });\n },\n tabBeforeRemove(tabEl) {\n $(tabEl)\n .find('.gauge-init')\n .each((el) => {\n if (el.f7Gauge) el.f7Gauge.destroy();\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.gauge-init').each((el) => {\n app.gauge.create(extend({ el }, $(el).dataset() || {}));\n });\n },\n pageBeforeRemove(page) {\n page.$el.find('.gauge-init').each((el) => {\n if (el.f7Gauge) el.f7Gauge.destroy();\n });\n },\n },\n vnode: {\n 'gauge-init': {\n insert(vnode) {\n const app = this;\n const el = vnode.elm;\n app.gauge.create(extend({ el }, $(el).dataset() || {}));\n },\n destroy(vnode) {\n const el = vnode.elm;\n if (el.f7Gauge) el.f7Gauge.destroy();\n },\n },\n },\n};\n","export default {\n name: 'skeleton',\n};\n","/** @jsx $jsx */\nimport $jsx from '../../../shared/$jsx.js';\n\nexport default {\n render(self) {\n const { sliderLabel, sliderValue, sliderValueEditable, alphaLabelText } = self.params;\n return (\n <div class=\"color-picker-module color-picker-module-alpha-slider\">\n <div class=\"color-picker-slider-wrap\">\n {sliderLabel && <div class=\"color-picker-slider-label\">{alphaLabelText}</div>}\n <div class=\"range-slider color-picker-slider color-picker-slider-alpha\"></div>\n {sliderValue && (\n <div class=\"color-picker-slider-value\">\n {sliderValueEditable ? (\n <input type=\"number\" step=\"0.01\" min=\"0\" max=\"1\" class=\"color-picker-value-alpha\" />\n ) : (\n <span class=\"color-picker-value-alpha\"></span>\n )}\n </div>\n )}\n </div>\n </div>\n );\n },\n init(self) {\n self.alphaRangeSlider = self.app.range.create({\n el: self.$el.find('.color-picker-slider-alpha'),\n min: 0,\n max: 1,\n step: 0.01,\n value: 1,\n on: {\n change(range, value) {\n const alpha = Math.floor(value * 100) / 100;\n self.setValue({ alpha });\n },\n },\n });\n function handleInputChange(e) {\n const alpha = self.value.alpha;\n let value = parseFloat(e.target.value);\n if (Number.isNaN(value)) {\n e.target.value = alpha;\n return;\n }\n value = Math.max(0, Math.min(1, value));\n self.setValue({ alpha: value });\n }\n\n self.$el.on('change', '.color-picker-module-alpha-slider input', handleInputChange);\n\n self.destroyAlphaSliderEvents = function destroyAlphaSliderEvents() {\n self.$el.off('change', '.color-picker-module-alpha-slider input', handleInputChange);\n };\n },\n update(self) {\n const { value } = self;\n const { sliderValue, sliderValueEditable } = self.params;\n\n const { alpha } = value;\n self.alphaRangeSlider.value = alpha;\n self.alphaRangeSlider.layout();\n if (sliderValue && sliderValueEditable) {\n self.$el.find('input.color-picker-value-alpha').val(alpha);\n } else {\n self.$el.find('span.color-picker-value-alpha').text(alpha);\n }\n },\n destroy(self) {\n if (self.alphaRangeSlider && self.alphaRangeSlider.destroy) {\n self.alphaRangeSlider.destroy();\n }\n delete self.alphaRangeSlider;\n\n if (self.destroyAlphaSliderEvents) self.destroyAlphaSliderEvents();\n delete self.destroyAlphaSliderEvents;\n },\n};\n","/** @jsx $jsx */\nimport $jsx from '../../../shared/$jsx.js';\n\nexport default {\n render() {\n return (\n <div class=\"color-picker-module color-picker-module-current-color\">\n <div class=\"color-picker-current-color\"></div>\n </div>\n );\n },\n update(self) {\n self.$el\n .find('.color-picker-module-current-color .color-picker-current-color')\n .css('background-color', self.value.hex);\n },\n};\n","/** @jsx $jsx */\nimport $jsx from '../../../shared/$jsx.js';\n\nexport default {\n render(self) {\n const { hexLabel, hexLabelText, hexValueEditable } = self.params;\n return (\n <div class=\"color-picker-module color-picker-module-hex\">\n <div class=\"color-picker-hex-wrap\">\n {hexLabel && <div class=\"color-picker-hex-label\">{hexLabelText}</div>}\n <div class=\"color-picker-hex-value\">\n {hexValueEditable ? (\n <input type=\"text\" class=\"color-picker-value-hex\" />\n ) : (\n <span class=\"color-picker-value-hex\"></span>\n )}\n </div>\n </div>\n </div>\n );\n },\n init(self) {\n function handleInputChange(e) {\n const hex = self.value.hex;\n let value = e.target.value.replace(/#/g, '');\n if (Number.isNaN(value) || !value || (value.length !== 3 && value.length !== 6)) {\n e.target.value = hex;\n return;\n }\n const min = 0;\n const current = parseInt(value, 16);\n const max = parseInt('ffffff', 16); // eslint-disable-line\n if (current > max) {\n value = 'fff';\n }\n if (current < min) {\n value = '000';\n }\n self.setValue({ hex: value });\n }\n\n self.$el.on('change', '.color-picker-module-hex input', handleInputChange);\n\n self.destroyHexEvents = function destroyHexEvents() {\n self.$el.off('change', '.color-picker-module-hex input', handleInputChange);\n };\n },\n update(self) {\n const { value } = self;\n\n const { hexValueEditable } = self.params;\n\n const { hex } = value;\n if (hexValueEditable) {\n self.$el.find('input.color-picker-value-hex').val(hex);\n } else {\n self.$el.find('span.color-picker-value-hex').text(hex);\n }\n },\n destroy(self) {\n if (self.destroyHexEvents) self.destroyHexEvents();\n delete self.destroyHexEvents;\n },\n};\n","import $ from '../../../shared/dom7.js';\nimport { colorHsbToHsl } from '../../../shared/utils.js';\n/** @jsx $jsx */\nimport $jsx from '../../../shared/$jsx.js';\n\nexport default {\n render(self) {\n const {\n sliderLabel,\n sliderValue,\n sliderValueEditable,\n hueLabelText,\n saturationLabelText,\n brightnessLabelText,\n } = self.params;\n return (\n <div class=\"color-picker-module color-picker-module-hsb-sliders\">\n <div class=\"color-picker-slider-wrap\">\n {sliderLabel && <div class=\"color-picker-slider-label\">{hueLabelText}</div>}\n <div class=\"range-slider color-picker-slider color-picker-slider-hue\"></div>\n {sliderValue && (\n <div class=\"color-picker-slider-value\">\n {sliderValueEditable ? (\n <input\n type=\"number\"\n step=\"0.1\"\n min=\"0\"\n max=\"360\"\n class=\"color-picker-value-hue\"\n data-color-index=\"0\"\n />\n ) : (\n <span class=\"color-picker-value-hue\"></span>\n )}\n </div>\n )}\n </div>\n <div class=\"color-picker-slider-wrap\">\n {sliderLabel && <div class=\"color-picker-slider-label\">{saturationLabelText}</div>}\n <div class=\"range-slider color-picker-slider color-picker-slider-saturation\"></div>\n {sliderValue && (\n <div class=\"color-picker-slider-value\">\n {sliderValueEditable ? (\n <input\n type=\"number\"\n step=\"0.1\"\n min=\"0\"\n max=\"100\"\n class=\"color-picker-value-saturation\"\n data-color-index=\"1\"\n />\n ) : (\n <span class=\"color-picker-value-saturation\"></span>\n )}\n </div>\n )}\n </div>\n <div class=\"color-picker-slider-wrap\">\n {sliderLabel && <div class=\"color-picker-slider-label\">{brightnessLabelText}</div>}\n <div class=\"range-slider color-picker-slider color-picker-slider-brightness\"></div>\n {sliderValue && (\n <div class=\"color-picker-slider-value\">\n {sliderValueEditable ? (\n <input\n type=\"number\"\n step=\"0.1\"\n min=\"0\"\n max=\"100\"\n class=\"color-picker-value-brightness\"\n data-color-index=\"2\"\n />\n ) : (\n <span class=\"color-picker-value-brightness\"></span>\n )}\n </div>\n )}\n </div>\n </div>\n );\n },\n init(self) {\n self.hueRangeSlider = self.app.range.create({\n el: self.$el.find('.color-picker-slider-hue'),\n min: 0,\n max: 360,\n step: 0.1,\n value: 0,\n on: {\n change(range, value) {\n self.setValue({ hue: value });\n },\n },\n });\n self.saturationRangeSlider = self.app.range.create({\n el: self.$el.find('.color-picker-slider-saturation'),\n min: 0,\n max: 1,\n step: 0.001,\n value: 0,\n on: {\n change(range, value) {\n const s = Math.floor(value * 1000) / 1000;\n self.setValue({ hsb: [self.value.hsb[0], s, self.value.hsb[2]] });\n },\n },\n });\n self.brightnessRangeSlider = self.app.range.create({\n el: self.$el.find('.color-picker-slider-brightness'),\n min: 0,\n max: 1,\n step: 0.001,\n value: 0,\n on: {\n change(range, value) {\n const b = Math.floor(value * 1000) / 1000;\n self.setValue({ hsb: [self.value.hsb[0], self.value.hsb[1], b] });\n },\n },\n });\n\n function handleInputChange(e) {\n const hsb = [...self.value.hsb];\n const index = parseInt($(e.target).attr('data-color-index'), 10);\n let value = parseFloat(e.target.value);\n if (Number.isNaN(value)) {\n e.target.value = hsb[index];\n return;\n }\n if (index === 0) {\n value = Math.max(0, Math.min(360, value));\n } else {\n value = Math.max(0, Math.min(100, value)) / 100;\n }\n\n hsb[index] = value;\n self.setValue({ hsb });\n }\n\n self.$el.on('change', '.color-picker-module-hsb-sliders input', handleInputChange);\n\n self.destroyHsbSlidersEvents = function destroyHsbSlidersEvents() {\n self.$el.off('change', '.color-picker-module-hsb-sliders input', handleInputChange);\n };\n },\n update(self) {\n const { app, value } = self;\n const { sliderValue, sliderValueEditable } = self.params;\n\n const { hsb, hue } = value;\n\n self.hueRangeSlider.value = hue;\n self.saturationRangeSlider.value = hsb[1];\n self.brightnessRangeSlider.value = hsb[2];\n\n self.hueRangeSlider.layout();\n self.saturationRangeSlider.layout();\n self.brightnessRangeSlider.layout();\n\n const hslCurrent = colorHsbToHsl(hsb[0], hsb[1], 1);\n const hslLeft = colorHsbToHsl(hsb[0], 0, 1);\n const hslRight = colorHsbToHsl(hsb[0], 1, 1);\n const brightness = hsb[2];\n\n self.hueRangeSlider.$el[0].style.setProperty('--f7-range-knob-color', `hsl(${hue}, 100%, 50%)`);\n self.saturationRangeSlider.$el[0].style.setProperty(\n '--f7-range-knob-color',\n `hsl(${hslCurrent[0]}, ${hslCurrent[1] * 100}%, ${hslCurrent[2] * 100}%)`,\n );\n self.brightnessRangeSlider.$el[0].style.setProperty(\n '--f7-range-knob-color',\n `rgb(${brightness * 255}, ${brightness * 255}, ${brightness * 255})`,\n );\n self.saturationRangeSlider.$el\n .find('.range-bar')\n .css(\n 'background-image',\n `linear-gradient(${app.rtl ? 'to left' : 'to right'}, hsl(${hslLeft[0]}, ${\n hslLeft[1] * 100\n }%, ${hslLeft[2] * 100}%), hsl(${hslRight[0]}, ${hslRight[1] * 100}%, ${\n hslRight[2] * 100\n }%))`,\n );\n\n if (sliderValue && sliderValueEditable) {\n self.$el.find('input.color-picker-value-hue').val(`${hue}`);\n self.$el.find('input.color-picker-value-saturation').val(`${(hsb[1] * 1000) / 10}`);\n self.$el.find('input.color-picker-value-brightness').val(`${(hsb[2] * 1000) / 10}`);\n } else if (sliderValue) {\n self.$el.find('span.color-picker-value-hue').text(`${hue}`);\n self.$el.find('span.color-picker-value-saturation').text(`${(hsb[1] * 1000) / 10}`);\n self.$el.find('span.color-picker-value-brightness').text(`${(hsb[2] * 1000) / 10}`);\n }\n },\n destroy(self) {\n if (self.hueRangeSlider && self.hueRangeSlider.destroy) {\n self.hueRangeSlider.destroy();\n }\n if (self.saturationRangeSlider && self.saturationRangeSlider.destroy) {\n self.saturationRangeSlider.destroy();\n }\n if (self.brightnessRangeSlider && self.brightnessRangeSlider.destroy) {\n self.brightnessRangeSlider.destroy();\n }\n\n delete self.hueRangeSlider;\n delete self.saturationRangeSlider;\n delete self.brightnessRangeSlider;\n\n if (self.destroyHsbSlidersEvents) self.destroyHsbSlidersEvents();\n delete self.destroyHsbSlidersEvents;\n },\n};\n","/** @jsx $jsx */\nimport $jsx from '../../../shared/$jsx.js';\n\nexport default {\n render(self) {\n const { sliderLabel, sliderValue, sliderValueEditable, hueLabelText } = self.params;\n return (\n <div class=\"color-picker-module color-picker-module-hue-slider\">\n <div class=\"color-picker-slider-wrap\">\n {sliderLabel && <div class=\"color-picker-slider-label\">{hueLabelText}</div>}\n <div class=\"range-slider color-picker-slider color-picker-slider-hue\"></div>\n {sliderValue && (\n <div class=\"color-picker-slider-value\">\n {sliderValueEditable ? (\n <input type=\"number\" step=\"0.1\" min=\"0\" max=\"360\" class=\"color-picker-value-hue\" />\n ) : (\n <span class=\"color-picker-value-hue\"></span>\n )}\n </div>\n )}\n </div>\n </div>\n );\n },\n init(self) {\n self.hueRangeSlider = self.app.range.create({\n el: self.$el.find('.color-picker-slider-hue'),\n min: 0,\n max: 360,\n step: 0.1,\n value: 0,\n on: {\n change(range, value) {\n self.setValue({ hue: value });\n },\n },\n });\n },\n update(self) {\n const { value } = self;\n const { sliderValue, sliderValueEditable } = self.params;\n\n const { hue } = value;\n\n self.hueRangeSlider.value = hue;\n self.hueRangeSlider.layout();\n self.hueRangeSlider.$el[0].style.setProperty('--f7-range-knob-color', `hsl(${hue}, 100%, 50%)`);\n if (sliderValue && sliderValueEditable) {\n self.$el.find('input.color-picker-value-hue').val(`${hue}`);\n } else if (sliderValue) {\n self.$el.find('span.color-picker-value-hue').text(`${hue}`);\n }\n },\n destroy(self) {\n if (self.hueRangeSlider && self.hueRangeSlider.destroy) {\n self.hueRangeSlider.destroy();\n }\n delete self.hueRangeSlider;\n },\n};\n","import { colorHsbToHsl } from '../../../shared/utils.js';\n/** @jsx $jsx */\nimport $jsx from '../../../shared/$jsx.js';\n\nexport default {\n render(self) {\n const { sliderLabel, sliderValue, sliderValueEditable, brightnessLabelText } = self.params;\n return (\n <div class=\"color-picker-module color-picker-module-brightness-slider\">\n <div class=\"color-picker-slider-wrap\">\n {sliderLabel && <div class=\"color-picker-slider-label\">{brightnessLabelText}</div>}\n <div class=\"range-slider color-picker-slider color-picker-slider-brightness\"></div>\n {sliderValue && (\n <div class=\"color-picker-slider-value\">\n {sliderValueEditable ? (\n <input\n type=\"number\"\n step=\"0.1\"\n min=\"0\"\n max=\"100\"\n class=\"color-picker-value-brightness\"\n />\n ) : (\n <span class=\"color-picker-value-brightness\"></span>\n )}\n </div>\n )}\n </div>\n </div>\n );\n },\n init(self) {\n self.brightnessRangeSlider = self.app.range.create({\n el: self.$el.find('.color-picker-slider-brightness'),\n min: 0,\n max: 1,\n step: 0.001,\n value: 0,\n on: {\n change(range, value) {\n const b = Math.floor(value * 1000) / 1000;\n self.setValue({ hsb: [self.value.hsb[0], self.value.hsb[1], b] });\n },\n },\n });\n },\n update(self) {\n const { value, app } = self;\n const { sliderValue, sliderValueEditable } = self.params;\n\n const { hsb } = value;\n\n self.brightnessRangeSlider.value = hsb[2];\n self.brightnessRangeSlider.layout();\n\n const hslCurrent = colorHsbToHsl(hsb[0], hsb[1], hsb[2]);\n const hslLeft = colorHsbToHsl(hsb[0], hsb[1], 0);\n const hslRight = colorHsbToHsl(hsb[0], hsb[1], 1);\n\n self.brightnessRangeSlider.$el[0].style.setProperty(\n '--f7-range-knob-color',\n `hsl(${hslCurrent[0]}, ${hslCurrent[1] * 100}%, ${hslCurrent[2] * 100}%)`,\n );\n self.brightnessRangeSlider.$el\n .find('.range-bar')\n .css(\n 'background-image',\n `linear-gradient(${app.rtl ? 'to left' : 'to right'}, hsl(${hslLeft[0]}, ${\n hslLeft[1] * 100\n }%, ${hslLeft[2] * 100}%), hsl(${hslRight[0]}, ${hslRight[1] * 100}%, ${\n hslRight[2] * 100\n }%))`,\n );\n if (sliderValue && sliderValueEditable) {\n self.$el.find('input.color-picker-value-brightness').val(`${(hsb[2] * 1000) / 10}`);\n } else if (sliderValue) {\n self.$el.find('span.color-picker-value-brightness').text(`${(hsb[2] * 1000) / 10}`);\n }\n },\n destroy(self) {\n if (self.brightnessRangeSlider && self.brightnessRangeSlider.destroy) {\n self.brightnessRangeSlider.destroy();\n }\n delete self.brightnessRangeSlider;\n },\n};\n","/* eslint indent: [\"off\"] */\nimport $ from '../../../shared/dom7.js';\n/** @jsx $jsx */\nimport $jsx from '../../../shared/$jsx.js';\n\nexport default {\n render(self) {\n return (\n <div class=\"color-picker-module color-picker-module-palette\">\n <div class=\"color-picker-palette\">\n {self.params.palette.map((p) => {\n if (Array.isArray(p)) {\n let row = '<div class=\"color-picker-palette-row\">';\n // prettier-ignore\n row += p.map((c) => `\n <div class=\"color-picker-palette-value\" data-palette-color=\"${c}\" style=\"background-color: ${c}\"></div>\n `).join('');\n row += '</div>';\n return row;\n }\n return (\n <div\n class=\"color-picker-palette-value\"\n data-palette-color={p}\n style={`background-color: ${p}`}\n ></div>\n );\n })}\n </div>\n </div>\n );\n },\n init(self) {\n function handlePaletteClick(e) {\n const hex = $(e.target).attr('data-palette-color');\n self.setValue({\n hex,\n });\n }\n\n self.$el.on(\n 'click',\n '.color-picker-module-palette .color-picker-palette-value',\n handlePaletteClick,\n );\n\n self.destroyPaletteEvents = function destroyPaletteEvents() {\n self.$el.off('click', '.color-picker-module-hex input', handlePaletteClick);\n };\n },\n destroy(self) {\n if (self.destroyPaletteEvents) {\n self.destroyPaletteEvents();\n }\n delete self.destroyPaletteEvents;\n },\n};\n","/** @jsx $jsx */\nimport $jsx from '../../../shared/$jsx.js';\n\nexport default {\n render() {\n return (\n <div class=\"color-picker-module color-picker-module-initial-current-colors\">\n <div class=\"color-picker-initial-current-colors\">\n <div class=\"color-picker-initial-color\"></div>\n <div class=\"color-picker-current-color\"></div>\n </div>\n </div>\n );\n },\n init(self) {\n function handleInitialColorClick() {\n if (self.initialValue) {\n const { hex, alpha } = self.initialValue;\n self.setValue({\n hex,\n alpha,\n });\n }\n }\n self.$el.on('click', '.color-picker-initial-color', handleInitialColorClick);\n self.destroyInitialCurrentEvents = function destroyInitialCurrentEvents() {\n self.$el.off('click', '.color-picker-initial-color', handleInitialColorClick);\n };\n },\n update(self) {\n self.$el\n .find('.color-picker-module-initial-current-colors .color-picker-initial-color')\n .css('background-color', self.initialValue.hex);\n self.$el\n .find('.color-picker-module-initial-current-colors .color-picker-current-color')\n .css('background-color', self.value.hex);\n },\n destroy(self) {\n if (self.destroyInitialCurrentEvents) {\n self.destroyInitialCurrentEvents();\n }\n delete self.destroyInitialCurrentEvents;\n },\n};\n","import $ from '../../../shared/dom7.js';\n/** @jsx $jsx */\nimport $jsx from '../../../shared/$jsx.js';\n\nexport default {\n render(self) {\n const { barLabel, barValue, barValueEditable, redLabelText, greenLabelText, blueLabelText } =\n self.params;\n return (\n <div class=\"color-picker-module color-picker-module-rgb-bars\">\n <div class=\"color-picker-bar-wrap\">\n {barLabel && <div class=\"color-picker-bar-label\">{redLabelText}</div>}\n <div class=\"range-slider color-picker-bar color-picker-bar-red\"></div>\n {barValue && (\n <div class=\"color-picker-bar-value\">\n {barValueEditable ? (\n <input\n type=\"number\"\n step=\"1\"\n min=\"0\"\n max=\"255\"\n class=\"color-picker-value-bar-red\"\n data-color-index=\"0\"\n />\n ) : (\n <span class=\"color-picker-value-bar-red\"></span>\n )}\n </div>\n )}\n </div>\n <div class=\"color-picker-bar-wrap\">\n {barLabel && <div class=\"color-picker-bar-label\">{greenLabelText}</div>}\n <div class=\"range-slider color-picker-bar color-picker-bar-green\"></div>\n {barValue && (\n <div class=\"color-picker-bar-value\">\n {barValueEditable ? (\n <input\n type=\"number\"\n step=\"1\"\n min=\"0\"\n max=\"255\"\n class=\"color-picker-value-bar-green\"\n data-color-index=\"1\"\n />\n ) : (\n <span class=\"color-picker-value-bar-green\"></span>\n )}\n </div>\n )}\n </div>\n <div class=\"color-picker-bar-wrap\">\n {barLabel && <div class=\"color-picker-bar-label\">{blueLabelText}</div>}\n <div class=\"range-slider color-picker-bar color-picker-bar-blue\"></div>\n {barValue && (\n <div class=\"color-picker-bar-value\">\n {barValueEditable ? (\n <input\n type=\"number\"\n step=\"1\"\n min=\"0\"\n max=\"255\"\n class=\"color-picker-value-bar-blue\"\n data-color-index=\"2\"\n />\n ) : (\n <span class=\"color-picker-value-bar-blue\"></span>\n )}\n </div>\n )}\n </div>\n </div>\n );\n },\n init(self) {\n self.redBar = self.app.range.create({\n el: self.$el.find('.color-picker-bar-red'),\n min: 0,\n max: 255,\n step: 1,\n value: 0,\n vertical: true,\n on: {\n change(range, value) {\n self.setValue({ rgb: [value, self.value.rgb[1], self.value.rgb[2]] });\n },\n },\n });\n self.greenBar = self.app.range.create({\n el: self.$el.find('.color-picker-bar-green'),\n min: 0,\n max: 255,\n step: 1,\n value: 0,\n vertical: true,\n on: {\n change(range, value) {\n self.setValue({ rgb: [self.value.rgb[0], value, self.value.rgb[2]] });\n },\n },\n });\n self.blueBar = self.app.range.create({\n el: self.$el.find('.color-picker-bar-blue'),\n min: 0,\n max: 255,\n step: 1,\n value: 0,\n vertical: true,\n on: {\n change(range, value) {\n self.setValue({ rgb: [self.value.rgb[0], self.value.rgb[1], value] });\n },\n },\n });\n\n function handleInputChange(e) {\n const rgb = [...self.value.rgb];\n const index = parseInt($(e.target).attr('data-color-index'), 10);\n let value = parseInt(e.target.value, 10);\n if (Number.isNaN(value)) {\n e.target.value = rgb[index];\n return;\n }\n value = Math.max(0, Math.min(255, value));\n rgb[index] = value;\n self.setValue({ rgb });\n }\n\n self.$el.on('change', '.color-picker-module-rgb-bars input', handleInputChange);\n\n self.destroyRgbBarsEvents = function destroyRgbBarsEvents() {\n self.$el.off('change', '.color-picker-module-rgb-bars input', handleInputChange);\n };\n },\n update(self) {\n const { value, redBar, greenBar, blueBar } = self;\n\n const { barValue, barValueEditable } = self.params;\n\n const { rgb } = value;\n\n redBar.value = rgb[0];\n greenBar.value = rgb[1];\n blueBar.value = rgb[2];\n\n redBar.layout();\n greenBar.layout();\n blueBar.layout();\n\n redBar.$el\n .find('.range-bar')\n .css(\n 'background-image',\n `linear-gradient(to top, rgb(0, ${rgb[1]}, ${rgb[2]}), rgb(255, ${rgb[1]}, ${rgb[2]}))`,\n );\n greenBar.$el\n .find('.range-bar')\n .css(\n 'background-image',\n `linear-gradient(to top, rgb(${rgb[0]}, 0, ${rgb[2]}), rgb(${rgb[0]}, 255, ${rgb[2]}))`,\n );\n blueBar.$el\n .find('.range-bar')\n .css(\n 'background-image',\n `linear-gradient(to top, rgb(${rgb[0]}, ${rgb[1]}, 0), rgb(${rgb[0]}, ${rgb[1]}, 255))`,\n );\n\n if (barValue && barValueEditable) {\n self.$el.find('input.color-picker-value-bar-red').val(rgb[0]);\n self.$el.find('input.color-picker-value-bar-green').val(rgb[1]);\n self.$el.find('input.color-picker-value-bar-blue').val(rgb[2]);\n } else if (barValue) {\n self.$el.find('span.color-picker-value-bar-red').text(rgb[0]);\n self.$el.find('span.color-picker-value-bar-green').text(rgb[1]);\n self.$el.find('span.color-picker-value-bar-blue').text(rgb[2]);\n }\n },\n destroy(self) {\n if (self.redBar && self.redBar.destroy) {\n self.redBar.destroy();\n }\n if (self.greenBar && self.greenBar.destroy) {\n self.greenBar.destroy();\n }\n if (self.blueBar && self.blueBar.destroy) {\n self.blueBar.destroy();\n }\n\n delete self.redBar;\n delete self.greenBar;\n delete self.blueBar;\n\n if (self.destroyRgbBarsEvents) self.destroyRgbBarsEvents();\n delete self.destroyRgbBarsEvents;\n },\n};\n","import $ from '../../../shared/dom7.js';\n/** @jsx $jsx */\nimport $jsx from '../../../shared/$jsx.js';\n\nexport default {\n render(self) {\n const {\n sliderLabel,\n sliderValue,\n sliderValueEditable,\n redLabelText,\n greenLabelText,\n blueLabelText,\n } = self.params;\n return (\n <div class=\"color-picker-module color-picker-module-rgb-sliders\">\n <div class=\"color-picker-slider-wrap\">\n {sliderLabel && <div class=\"color-picker-slider-label\">{redLabelText}</div>}\n <div class=\"range-slider color-picker-slider color-picker-slider-red\"></div>\n {sliderValue && (\n <div class=\"color-picker-slider-value\">\n {sliderValueEditable ? (\n <input\n type=\"number\"\n step=\"1\"\n min=\"0\"\n max=\"255\"\n class=\"color-picker-value-red\"\n data-color-index=\"0\"\n />\n ) : (\n <span class=\"color-picker-value-red\"></span>\n )}\n </div>\n )}\n </div>\n <div class=\"color-picker-slider-wrap\">\n {sliderLabel && <div class=\"color-picker-slider-label\">{greenLabelText}</div>}\n <div class=\"range-slider color-picker-slider color-picker-slider-green\"></div>\n {sliderValue && (\n <div class=\"color-picker-slider-value\">\n {sliderValueEditable ? (\n <input\n type=\"number\"\n step=\"1\"\n min=\"0\"\n max=\"255\"\n class=\"color-picker-value-green\"\n data-color-index=\"1\"\n />\n ) : (\n <span class=\"color-picker-value-green\"></span>\n )}\n </div>\n )}\n </div>\n <div class=\"color-picker-slider-wrap\">\n {sliderLabel && <div class=\"color-picker-slider-label\">{blueLabelText}</div>}\n <div class=\"range-slider color-picker-slider color-picker-slider-blue\"></div>\n {sliderValue && (\n <div class=\"color-picker-slider-value\">\n {sliderValueEditable ? (\n <input\n type=\"number\"\n step=\"1\"\n min=\"0\"\n max=\"255\"\n class=\"color-picker-value-blue\"\n data-color-index=\"2\"\n />\n ) : (\n <span class=\"color-picker-value-blue\"></span>\n )}\n </div>\n )}\n </div>\n </div>\n );\n },\n init(self) {\n self.redRangeSlider = self.app.range.create({\n el: self.$el.find('.color-picker-slider-red'),\n min: 0,\n max: 255,\n step: 1,\n value: 0,\n on: {\n change(range, value) {\n self.setValue({ rgb: [value, self.value.rgb[1], self.value.rgb[2]] });\n },\n },\n });\n self.greenRangeSlider = self.app.range.create({\n el: self.$el.find('.color-picker-slider-green'),\n min: 0,\n max: 255,\n step: 1,\n value: 0,\n on: {\n change(range, value) {\n self.setValue({ rgb: [self.value.rgb[0], value, self.value.rgb[2]] });\n },\n },\n });\n self.blueRangeSlider = self.app.range.create({\n el: self.$el.find('.color-picker-slider-blue'),\n min: 0,\n max: 255,\n step: 1,\n value: 0,\n on: {\n change(range, value) {\n self.setValue({ rgb: [self.value.rgb[0], self.value.rgb[1], value] });\n },\n },\n });\n\n function handleInputChange(e) {\n const rgb = [...self.value.rgb];\n const index = parseInt($(e.target).attr('data-color-index'), 10);\n let value = parseInt(e.target.value, 10);\n if (Number.isNaN(value)) {\n e.target.value = rgb[index];\n return;\n }\n value = Math.max(0, Math.min(255, value));\n rgb[index] = value;\n self.setValue({ rgb });\n }\n\n self.$el.on('change', '.color-picker-module-rgb-sliders input', handleInputChange);\n\n self.destroyRgbSlidersEvents = function destroyRgbSlidersEvents() {\n self.$el.off('change', '.color-picker-module-rgb-sliders input', handleInputChange);\n };\n },\n update(self) {\n const { app, value, redRangeSlider, greenRangeSlider, blueRangeSlider } = self;\n\n const { sliderValue, sliderValueEditable } = self.params;\n\n const { rgb } = value;\n\n redRangeSlider.value = rgb[0];\n greenRangeSlider.value = rgb[1];\n blueRangeSlider.value = rgb[2];\n\n redRangeSlider.layout();\n greenRangeSlider.layout();\n blueRangeSlider.layout();\n\n redRangeSlider.$el[0].style.setProperty(\n '--f7-range-knob-color',\n `rgb(${rgb[0]}, ${rgb[1]}, ${rgb[2]})`,\n );\n greenRangeSlider.$el[0].style.setProperty(\n '--f7-range-knob-color',\n `rgb(${rgb[0]}, ${rgb[1]}, ${rgb[2]})`,\n );\n blueRangeSlider.$el[0].style.setProperty(\n '--f7-range-knob-color',\n `rgb(${rgb[0]}, ${rgb[1]}, ${rgb[2]})`,\n );\n\n const direction = app.rtl ? 'to left' : 'to right';\n\n redRangeSlider.$el\n .find('.range-bar')\n .css(\n 'background-image',\n `linear-gradient(${direction}, rgb(0, ${rgb[1]}, ${rgb[2]}), rgb(255, ${rgb[1]}, ${rgb[2]}))`,\n );\n greenRangeSlider.$el\n .find('.range-bar')\n .css(\n 'background-image',\n `linear-gradient(${direction}, rgb(${rgb[0]}, 0, ${rgb[2]}), rgb(${rgb[0]}, 255, ${rgb[2]}))`,\n );\n blueRangeSlider.$el\n .find('.range-bar')\n .css(\n 'background-image',\n `linear-gradient(${direction}, rgb(${rgb[0]}, ${rgb[1]}, 0), rgb(${rgb[0]}, ${rgb[1]}, 255))`,\n );\n\n if (sliderValue && sliderValueEditable) {\n self.$el.find('input.color-picker-value-red').val(rgb[0]);\n self.$el.find('input.color-picker-value-green').val(rgb[1]);\n self.$el.find('input.color-picker-value-blue').val(rgb[2]);\n } else if (sliderValue) {\n self.$el.find('span.color-picker-value-red').text(rgb[0]);\n self.$el.find('span.color-picker-value-green').text(rgb[1]);\n self.$el.find('span.color-picker-value-blue').text(rgb[2]);\n }\n },\n destroy(self) {\n if (self.redRangeSlider && self.redRangeSlider.destroy) {\n self.redRangeSlider.destroy();\n }\n if (self.greenRangeSlider && self.greenRangeSlider.destroy) {\n self.greenRangeSlider.destroy();\n }\n if (self.blueRangeSlider && self.blueRangeSlider.destroy) {\n self.blueRangeSlider.destroy();\n }\n\n delete self.redRangeSlider;\n delete self.greenRangeSlider;\n delete self.blueRangeSlider;\n\n if (self.destroyRgbSlidersEvents) self.destroyRgbSlidersEvents();\n delete self.destroyRgbSlidersEvents;\n },\n};\n","import $ from '../../../shared/dom7.js';\nimport { getSupport } from '../../../shared/get-support.js';\n/** @jsx $jsx */\nimport $jsx from '../../../shared/$jsx.js';\n\nexport default {\n render() {\n return (\n <div class=\"color-picker-module color-picker-module-sb-spectrum\">\n <div class=\"color-picker-sb-spectrum\" style=\"background-color: hsl(0, 100%, 50%)\">\n <div class=\"color-picker-sb-spectrum-handle\"></div>\n </div>\n </div>\n );\n },\n init(self) {\n const { app } = self;\n\n let isTouched;\n let isMoved;\n let touchStartX;\n let touchStartY;\n let touchCurrentX;\n let touchCurrentY;\n\n let specterRect;\n let specterIsTouched;\n let specterHandleIsTouched;\n\n const { $el } = self;\n\n function setSBFromSpecterCoords(x, y) {\n let s = (x - specterRect.left) / specterRect.width;\n let b = (y - specterRect.top) / specterRect.height;\n s = Math.max(0, Math.min(1, s));\n b = 1 - Math.max(0, Math.min(1, b));\n\n self.setValue({ hsb: [self.value.hue, s, b] });\n }\n\n function handleTouchStart(e) {\n if (isMoved || isTouched) return;\n touchStartX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touchCurrentX = touchStartX;\n touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n touchCurrentY = touchStartY;\n const $targetEl = $(e.target);\n specterHandleIsTouched = $targetEl.closest('.color-picker-sb-spectrum-handle').length > 0;\n if (!specterHandleIsTouched) {\n specterIsTouched = $targetEl.closest('.color-picker-sb-spectrum').length > 0;\n }\n if (specterIsTouched) {\n specterRect = $el.find('.color-picker-sb-spectrum')[0].getBoundingClientRect();\n setSBFromSpecterCoords(touchStartX, touchStartY);\n }\n if (specterHandleIsTouched || specterIsTouched) {\n $el\n .find('.color-picker-sb-spectrum-handle')\n .addClass('color-picker-sb-spectrum-handle-pressed');\n }\n }\n function handleTouchMove(e) {\n if (!(specterIsTouched || specterHandleIsTouched)) return;\n touchCurrentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n touchCurrentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n e.preventDefault();\n if (!isMoved) {\n // First move\n isMoved = true;\n if (specterHandleIsTouched) {\n specterRect = $el.find('.color-picker-sb-spectrum')[0].getBoundingClientRect();\n }\n }\n if (specterIsTouched || specterHandleIsTouched) {\n setSBFromSpecterCoords(touchCurrentX, touchCurrentY);\n }\n }\n function handleTouchEnd() {\n isMoved = false;\n if (specterIsTouched || specterHandleIsTouched) {\n $el\n .find('.color-picker-sb-spectrum-handle')\n .removeClass('color-picker-sb-spectrum-handle-pressed');\n }\n specterIsTouched = false;\n specterHandleIsTouched = false;\n }\n\n function handleResize() {\n self.modules['sb-spectrum'].update(self);\n }\n\n const passiveListener =\n app.touchEvents.start === 'touchstart' && getSupport().passiveListener\n ? { passive: true, capture: false }\n : false;\n\n self.$el.on(app.touchEvents.start, handleTouchStart, passiveListener);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n app.on('resize', handleResize);\n\n self.destroySpectrumEvents = function destroySpectrumEvents() {\n self.$el.off(app.touchEvents.start, handleTouchStart, passiveListener);\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n app.off('resize', handleResize);\n };\n },\n update(self) {\n const { value } = self;\n\n const { hsl, hsb } = value;\n\n const specterWidth = self.$el.find('.color-picker-sb-spectrum')[0].offsetWidth;\n const specterHeight = self.$el.find('.color-picker-sb-spectrum')[0].offsetHeight;\n\n self.$el.find('.color-picker-sb-spectrum').css('background-color', `hsl(${hsl[0]}, 100%, 50%)`);\n\n self.$el\n .find('.color-picker-sb-spectrum-handle')\n .css('background-color', `hsl(${hsl[0]}, ${hsl[1] * 100}%, ${hsl[2] * 100}%)`)\n .transform(`translate(${specterWidth * hsb[1]}px, ${specterHeight * (1 - hsb[2])}px)`);\n },\n destroy(self) {\n if (self.destroySpectrumEvents) self.destroySpectrumEvents();\n delete self.destroySpectrumEvents;\n },\n};\n","import $ from '../../../shared/dom7.js';\nimport { colorHsbToHsl } from '../../../shared/utils.js';\nimport { getSupport } from '../../../shared/get-support.js';\n/** @jsx $jsx */\nimport $jsx from '../../../shared/$jsx.js';\n\nexport default {\n render() {\n return (\n <div class=\"color-picker-module color-picker-module-hs-spectrum\">\n <div class=\"color-picker-hs-spectrum\">\n <div class=\"color-picker-hs-spectrum-handle\"></div>\n </div>\n </div>\n );\n },\n init(self) {\n const { app } = self;\n\n let isTouched;\n let isMoved;\n let touchStartX;\n let touchStartY;\n let touchCurrentX;\n let touchCurrentY;\n\n let specterRect;\n let specterIsTouched;\n let specterHandleIsTouched;\n\n const { $el } = self;\n\n function setHSFromSpecterCoords(x, y) {\n let h = ((x - specterRect.left) / specterRect.width) * 360;\n let s = (y - specterRect.top) / specterRect.height;\n h = Math.max(0, Math.min(360, h));\n s = 1 - Math.max(0, Math.min(1, s));\n\n self.setValue({ hsb: [h, s, self.value.hsb[2]] });\n }\n\n function handleTouchStart(e) {\n if (isMoved || isTouched) return;\n touchStartX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touchCurrentX = touchStartX;\n touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n touchCurrentY = touchStartY;\n const $targetEl = $(e.target);\n specterHandleIsTouched = $targetEl.closest('.color-picker-hs-spectrum-handle').length > 0;\n if (!specterHandleIsTouched) {\n specterIsTouched = $targetEl.closest('.color-picker-hs-spectrum').length > 0;\n }\n if (specterIsTouched) {\n specterRect = $el.find('.color-picker-hs-spectrum')[0].getBoundingClientRect();\n setHSFromSpecterCoords(touchStartX, touchStartY);\n }\n if (specterHandleIsTouched || specterIsTouched) {\n $el\n .find('.color-picker-hs-spectrum-handle')\n .addClass('color-picker-hs-spectrum-handle-pressed');\n }\n }\n function handleTouchMove(e) {\n if (!(specterIsTouched || specterHandleIsTouched)) return;\n touchCurrentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n touchCurrentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n e.preventDefault();\n if (!isMoved) {\n // First move\n isMoved = true;\n if (specterHandleIsTouched) {\n specterRect = $el.find('.color-picker-hs-spectrum')[0].getBoundingClientRect();\n }\n }\n if (specterIsTouched || specterHandleIsTouched) {\n setHSFromSpecterCoords(touchCurrentX, touchCurrentY);\n }\n }\n function handleTouchEnd() {\n isMoved = false;\n if (specterIsTouched || specterHandleIsTouched) {\n $el\n .find('.color-picker-hs-spectrum-handle')\n .removeClass('color-picker-hs-spectrum-handle-pressed');\n }\n specterIsTouched = false;\n specterHandleIsTouched = false;\n }\n\n function handleResize() {\n self.modules['hs-spectrum'].update(self);\n }\n\n const passiveListener =\n app.touchEvents.start === 'touchstart' && getSupport().passiveListener\n ? { passive: true, capture: false }\n : false;\n\n self.$el.on(app.touchEvents.start, handleTouchStart, passiveListener);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n app.on('resize', handleResize);\n\n self.destroySpectrumEvents = function destroySpectrumEvents() {\n self.$el.off(app.touchEvents.start, handleTouchStart, passiveListener);\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n app.off('resize', handleResize);\n };\n },\n update(self) {\n const { value } = self;\n\n const { hsb } = value;\n\n const specterWidth = self.$el.find('.color-picker-hs-spectrum')[0].offsetWidth;\n const specterHeight = self.$el.find('.color-picker-hs-spectrum')[0].offsetHeight;\n\n const hslBright = colorHsbToHsl(hsb[0], hsb[1], 1);\n\n self.$el\n .find('.color-picker-hs-spectrum-handle')\n .css(\n 'background-color',\n `hsl(${hslBright[0]}, ${hslBright[1] * 100}%, ${hslBright[2] * 100}%)`,\n )\n .transform(\n `translate(${specterWidth * (hsb[0] / 360)}px, ${specterHeight * (1 - hsb[1])}px)`,\n );\n },\n destroy(self) {\n if (self.destroySpectrumEvents) self.destroySpectrumEvents();\n delete self.destroySpectrumEvents;\n },\n};\n","import $ from '../../../shared/dom7.js';\nimport { getSupport } from '../../../shared/get-support.js';\n/** @jsx $jsx */\nimport $jsx from '../../../shared/$jsx.js';\n\nfunction svgWheelCircles() {\n const total = 256;\n let circles = '';\n for (let i = total; i > 0; i -= 1) {\n const angle = (i * Math.PI) / (total / 2);\n const hue = (360 / total) * i;\n circles += `<circle cx=\"${150 - Math.sin(angle) * 125}\" cy=\"${\n 150 - Math.cos(angle) * 125\n }\" r=\"25\" fill=\"hsl(${hue}, 100%, 50%)\"></circle>`;\n }\n return circles;\n}\nexport default {\n render() {\n return (\n <div class=\"color-picker-module color-picker-module-wheel\">\n <div class=\"color-picker-wheel\">\n <svg viewBox=\"0 0 300 300\" width=\"300\" height=\"300\">\n {svgWheelCircles()}\n </svg>\n <div class=\"color-picker-wheel-handle\"></div>\n <div class=\"color-picker-sb-spectrum\" style=\"background-color: hsl(0, 100%, 50%)\">\n <div class=\"color-picker-sb-spectrum-handle\"></div>\n </div>\n </div>\n </div>\n );\n },\n init(self) {\n const { app } = self;\n\n let isTouched;\n let isMoved;\n let touchStartX;\n let touchStartY;\n let touchCurrentX;\n let touchCurrentY;\n\n let wheelRect;\n let wheelIsTouched;\n let wheelHandleIsTouched;\n let specterRect;\n let specterIsTouched;\n let specterHandleIsTouched;\n\n const { $el } = self;\n\n function setHueFromWheelCoords(x, y) {\n const wheelCenterX = wheelRect.left + wheelRect.width / 2;\n const wheelCenterY = wheelRect.top + wheelRect.height / 2;\n const angleRad = Math.atan2(y - wheelCenterY, x - wheelCenterX);\n let angleDeg = (angleRad * 180) / Math.PI + 90;\n if (angleDeg < 0) angleDeg += 360;\n angleDeg = 360 - angleDeg;\n self.setValue({ hue: angleDeg });\n }\n function setSBFromSpecterCoords(x, y) {\n let s = (x - specterRect.left) / specterRect.width;\n let b = (y - specterRect.top) / specterRect.height;\n s = Math.max(0, Math.min(1, s));\n b = 1 - Math.max(0, Math.min(1, b));\n\n self.setValue({ hsb: [self.value.hue, s, b] });\n }\n\n function handleTouchStart(e) {\n if (isMoved || isTouched) return;\n touchStartX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touchCurrentX = touchStartX;\n touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n touchCurrentY = touchStartY;\n const $targetEl = $(e.target);\n wheelHandleIsTouched = $targetEl.closest('.color-picker-wheel-handle').length > 0;\n wheelIsTouched = $targetEl.closest('circle').length > 0;\n specterHandleIsTouched = $targetEl.closest('.color-picker-sb-spectrum-handle').length > 0;\n if (!specterHandleIsTouched) {\n specterIsTouched = $targetEl.closest('.color-picker-sb-spectrum').length > 0;\n }\n if (wheelIsTouched) {\n wheelRect = $el.find('.color-picker-wheel')[0].getBoundingClientRect();\n setHueFromWheelCoords(touchStartX, touchStartY);\n }\n if (specterIsTouched) {\n specterRect = $el.find('.color-picker-sb-spectrum')[0].getBoundingClientRect();\n setSBFromSpecterCoords(touchStartX, touchStartY);\n }\n if (specterHandleIsTouched || specterIsTouched) {\n $el\n .find('.color-picker-sb-spectrum-handle')\n .addClass('color-picker-sb-spectrum-handle-pressed');\n }\n }\n function handleTouchMove(e) {\n if (\n !(wheelIsTouched || wheelHandleIsTouched) &&\n !(specterIsTouched || specterHandleIsTouched)\n )\n return;\n touchCurrentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n touchCurrentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n e.preventDefault();\n if (!isMoved) {\n // First move\n isMoved = true;\n if (wheelHandleIsTouched) {\n wheelRect = $el.find('.color-picker-wheel')[0].getBoundingClientRect();\n }\n if (specterHandleIsTouched) {\n specterRect = $el.find('.color-picker-sb-spectrum')[0].getBoundingClientRect();\n }\n }\n if (wheelIsTouched || wheelHandleIsTouched) {\n setHueFromWheelCoords(touchCurrentX, touchCurrentY);\n }\n if (specterIsTouched || specterHandleIsTouched) {\n setSBFromSpecterCoords(touchCurrentX, touchCurrentY);\n }\n }\n function handleTouchEnd() {\n isMoved = false;\n if (specterIsTouched || specterHandleIsTouched) {\n $el\n .find('.color-picker-sb-spectrum-handle')\n .removeClass('color-picker-sb-spectrum-handle-pressed');\n }\n wheelIsTouched = false;\n wheelHandleIsTouched = false;\n specterIsTouched = false;\n specterHandleIsTouched = false;\n }\n\n function handleResize() {\n self.modules.wheel.update(self);\n }\n\n const passiveListener =\n app.touchEvents.start === 'touchstart' && getSupport().passiveListener\n ? { passive: true, capture: false }\n : false;\n\n self.$el.on(app.touchEvents.start, handleTouchStart, passiveListener);\n app.on('touchmove:active', handleTouchMove);\n app.on('touchend:passive', handleTouchEnd);\n app.on('resize', handleResize);\n\n self.destroyWheelEvents = function destroyWheelEvents() {\n self.$el.off(app.touchEvents.start, handleTouchStart, passiveListener);\n app.off('touchmove:active', handleTouchMove);\n app.off('touchend:passive', handleTouchEnd);\n app.off('resize', handleResize);\n };\n },\n update(self) {\n const { value } = self;\n\n const { hsl, hsb } = value;\n\n const specterWidth = self.$el.find('.color-picker-sb-spectrum')[0].offsetWidth;\n const specterHeight = self.$el.find('.color-picker-sb-spectrum')[0].offsetHeight;\n const wheelSize = self.$el.find('.color-picker-wheel')[0].offsetWidth;\n const wheelHalfSize = wheelSize / 2;\n const angleRad = (value.hue * Math.PI) / 180;\n const handleSize = wheelSize / 6;\n const handleHalfSize = handleSize / 2;\n const tX =\n wheelHalfSize - Math.sin(angleRad) * (wheelHalfSize - handleHalfSize) - handleHalfSize;\n const tY =\n wheelHalfSize - Math.cos(angleRad) * (wheelHalfSize - handleHalfSize) - handleHalfSize;\n self.$el\n .find('.color-picker-wheel-handle')\n .css('background-color', `hsl(${hsl[0]}, 100%, 50%)`)\n .transform(`translate(${tX}px, ${tY}px)`);\n\n self.$el.find('.color-picker-sb-spectrum').css('background-color', `hsl(${hsl[0]}, 100%, 50%)`);\n\n self.$el\n .find('.color-picker-sb-spectrum-handle')\n .css('background-color', `hsl(${hsl[0]}, ${hsl[1] * 100}%, ${hsl[2] * 100}%)`)\n .transform(`translate(${specterWidth * hsb[1]}px, ${specterHeight * (1 - hsb[2])}px)`);\n },\n destroy(self) {\n if (self.destroyWheelEvents) self.destroyWheelEvents();\n delete self.destroyWheelEvents;\n },\n};\n","import {\n extend,\n colorRgbToHex,\n colorRgbToHsl,\n colorHslToHsb,\n colorHslToRgb,\n colorHsbToHsl,\n colorHexToRgb,\n nextTick,\n deleteProps,\n} from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\nimport $ from '../../shared/dom7.js';\nimport { getDevice } from '../../shared/get-device.js';\n\nimport moduleAlphaSlider from './modules/alpha-slider.js';\nimport moduleCurrentColor from './modules/current-color.js';\nimport moduleHex from './modules/hex.js';\nimport moduleHsbSliders from './modules/hsb-sliders.js';\nimport moduleHueSlider from './modules/hue-slider.js';\nimport moduleBrightnessSlider from './modules/brightness-slider.js';\nimport modulePalette from './modules/palette.js';\nimport moduleInitialCurrentColors from './modules/initial-current-colors.js';\nimport moduleRgbBars from './modules/rgb-bars.js';\nimport moduleRgbSliders from './modules/rgb-sliders.js';\nimport moduleSbSpectrum from './modules/sb-spectrum.js';\nimport moduleHsSpectrum from './modules/hs-spectrum.js';\nimport moduleWheel from './modules/wheel.js';\n\n/** @jsx $jsx */\nimport $jsx from '../../shared/$jsx.js';\n\nclass ColorPicker extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n const self = this;\n\n self.params = extend({}, app.params.colorPicker, params);\n\n let $containerEl;\n if (self.params.containerEl) {\n $containerEl = $(self.params.containerEl);\n if ($containerEl.length === 0) return self;\n }\n\n let $inputEl;\n if (self.params.inputEl) {\n $inputEl = $(self.params.inputEl);\n }\n\n let $targetEl;\n if (self.params.targetEl) {\n $targetEl = $(self.params.targetEl);\n }\n\n extend(self, {\n app,\n $containerEl,\n containerEl: $containerEl && $containerEl[0],\n inline: $containerEl && $containerEl.length > 0,\n $inputEl,\n inputEl: $inputEl && $inputEl[0],\n $targetEl,\n targetEl: $targetEl && $targetEl[0],\n initialized: false,\n opened: false,\n url: self.params.url,\n modules: {\n 'alpha-slider': moduleAlphaSlider,\n 'current-color': moduleCurrentColor,\n hex: moduleHex, // eslint-disable-line\n 'hsb-sliders': moduleHsbSliders,\n 'hue-slider': moduleHueSlider,\n 'brightness-slider': moduleBrightnessSlider,\n palette: modulePalette, // eslint-disable-line\n 'initial-current-colors': moduleInitialCurrentColors,\n 'rgb-bars': moduleRgbBars,\n 'rgb-sliders': moduleRgbSliders,\n 'sb-spectrum': moduleSbSpectrum,\n 'hs-spectrum': moduleHsSpectrum,\n wheel: moduleWheel, // eslint-disable-line\n },\n });\n\n function onInputClick() {\n self.open();\n }\n function onInputFocus(e) {\n e.preventDefault();\n }\n function onTargetClick() {\n self.open();\n }\n function onHtmlClick(e) {\n if (self.destroyed || !self.params) return;\n if (self.params.openIn === 'page') return;\n const $clickTargetEl = $(e.target);\n if (!self.opened || self.closing) return;\n if ($clickTargetEl.closest('[class*=\"backdrop\"]').length) return;\n if ($clickTargetEl.closest('.color-picker-popup, .color-picker-popover').length) return;\n if ($inputEl && $inputEl.length > 0) {\n if (\n $clickTargetEl[0] !== $inputEl[0] &&\n $clickTargetEl.closest('.sheet-modal').length === 0\n ) {\n self.close();\n }\n } else if ($(e.target).closest('.sheet-modal').length === 0) {\n self.close();\n }\n }\n\n // Events\n extend(self, {\n attachInputEvents() {\n self.$inputEl.on('click', onInputClick);\n if (self.params.inputReadOnly) {\n self.$inputEl.on('focus mousedown', onInputFocus);\n if (self.$inputEl[0]) {\n self.$inputEl[0].f7ValidateReadonly = true;\n }\n }\n },\n detachInputEvents() {\n self.$inputEl.off('click', onInputClick);\n if (self.params.inputReadOnly) {\n self.$inputEl.off('focus mousedown', onInputFocus);\n if (self.$inputEl[0]) {\n delete self.$inputEl[0].f7ValidateReadonly;\n }\n }\n },\n attachTargetEvents() {\n self.$targetEl.on('click', onTargetClick);\n },\n detachTargetEvents() {\n self.$targetEl.off('click', onTargetClick);\n },\n attachHtmlEvents() {\n app.on('click', onHtmlClick);\n },\n detachHtmlEvents() {\n app.off('click', onHtmlClick);\n },\n });\n\n self.init();\n\n return self;\n }\n\n get view() {\n const { $inputEl, $targetEl, app, params } = this;\n let view;\n if (params.view) {\n view = params.view;\n } else {\n if ($inputEl) {\n view = $inputEl.parents('.view').length && $inputEl.parents('.view')[0].f7View;\n }\n if (!view && $targetEl) {\n view = $targetEl.parents('.view').length && $targetEl.parents('.view')[0].f7View;\n }\n }\n if (!view) view = app.views.main;\n\n return view;\n }\n\n attachEvents() {\n const self = this;\n self.centerModules = self.centerModules.bind(self);\n if (self.params.centerModules) {\n self.app.on('resize', self.centerModules);\n }\n }\n\n detachEvents() {\n const self = this;\n if (self.params.centerModules) {\n self.app.off('resize', self.centerModules);\n }\n }\n\n centerModules() {\n const self = this;\n if (!self.opened || !self.$el || self.inline) return;\n const $pageContentEl = self.$el.find('.page-content');\n if (!$pageContentEl.length) return;\n const { scrollHeight, offsetHeight } = $pageContentEl[0];\n if (scrollHeight <= offsetHeight) {\n $pageContentEl.addClass('justify-content-center');\n } else {\n $pageContentEl.removeClass('justify-content-center');\n }\n }\n\n initInput() {\n const self = this;\n if (!self.$inputEl) return;\n if (self.params.inputReadOnly) self.$inputEl.prop('readOnly', true);\n }\n\n getModalType() {\n const self = this;\n const { app, modal, params } = self;\n const { openIn, openInPhone } = params;\n const device = getDevice();\n if (modal && modal.type) return modal.type;\n if (openIn !== 'auto') return openIn;\n if (self.inline) return null;\n if (device.ios) {\n return device.ipad ? 'popover' : openInPhone;\n }\n if (app.width >= 768) {\n return 'popover';\n }\n\n return openInPhone;\n }\n\n formatValue() {\n const self = this;\n const { value } = self;\n if (self.params.formatValue) {\n return self.params.formatValue.call(self, value);\n }\n return value.hex;\n }\n\n // eslint-disable-next-line\n normalizeHsValues(arr) {\n return [\n Math.floor(arr[0] * 10) / 10,\n Math.floor(arr[1] * 1000) / 1000,\n Math.floor(arr[2] * 1000) / 1000,\n ];\n }\n\n setValue(value = {}, updateModules = true) {\n const self = this;\n if (typeof value === 'undefined') return;\n\n let { hex, rgb, hsl, hsb, alpha = 1, hue, rgba, hsla } = self.value || {};\n\n const needChangeEvent = self.value || (!self.value && !self.params.value);\n let valueChanged;\n Object.keys(value).forEach((k) => {\n if (!self.value || typeof self.value[k] === 'undefined') {\n valueChanged = true;\n return;\n }\n const v = value[k];\n if (Array.isArray(v)) {\n v.forEach((subV, subIndex) => {\n if (subV !== self.value[k][subIndex]) {\n valueChanged = true;\n }\n });\n } else if (v !== self.value[k]) {\n valueChanged = true;\n }\n });\n if (!valueChanged) return;\n\n if (value.rgb || value.rgba) {\n const [r, g, b, a = alpha] = value.rgb || value.rgba;\n rgb = [r, g, b];\n hex = colorRgbToHex(...rgb);\n hsl = colorRgbToHsl(...rgb);\n hsb = colorHslToHsb(...hsl);\n hsl = self.normalizeHsValues(hsl);\n hsb = self.normalizeHsValues(hsb);\n hue = hsb[0];\n alpha = a;\n rgba = [rgb[0], rgb[1], rgb[2], a];\n hsla = [hsl[0], hsl[1], hsl[2], a];\n }\n\n if (value.hsl || value.hsla) {\n const [h, s, l, a = alpha] = value.hsl || value.hsla;\n hsl = [h, s, l];\n rgb = colorHslToRgb(...hsl);\n hex = colorRgbToHex(...rgb);\n hsb = colorHslToHsb(...hsl);\n hsl = self.normalizeHsValues(hsl);\n hsb = self.normalizeHsValues(hsb);\n hue = hsb[0];\n alpha = a;\n rgba = [rgb[0], rgb[1], rgb[2], a];\n hsla = [hsl[0], hsl[1], hsl[2], a];\n }\n\n if (value.hsb) {\n const [h, s, b, a = alpha] = value.hsb;\n hsb = [h, s, b];\n hsl = colorHsbToHsl(...hsb);\n rgb = colorHslToRgb(...hsl);\n hex = colorRgbToHex(...rgb);\n hsl = self.normalizeHsValues(hsl);\n hsb = self.normalizeHsValues(hsb);\n hue = hsb[0];\n alpha = a;\n rgba = [rgb[0], rgb[1], rgb[2], a];\n hsla = [hsl[0], hsl[1], hsl[2], a];\n }\n\n if (value.hex) {\n rgb = colorHexToRgb(value.hex);\n hex = colorRgbToHex(...rgb);\n hsl = colorRgbToHsl(...rgb);\n hsb = colorHslToHsb(...hsl);\n hsl = self.normalizeHsValues(hsl);\n hsb = self.normalizeHsValues(hsb);\n hue = hsb[0];\n rgba = [rgb[0], rgb[1], rgb[2], alpha];\n hsla = [hsl[0], hsl[1], hsl[2], alpha];\n }\n\n if (typeof value.alpha !== 'undefined') {\n alpha = value.alpha;\n if (typeof rgb !== 'undefined') {\n rgba = [rgb[0], rgb[1], rgb[2], alpha];\n }\n if (typeof hsl !== 'undefined') {\n hsla = [hsl[0], hsl[1], hsl[2], alpha];\n }\n }\n\n if (typeof value.hue !== 'undefined') {\n const [h, s, l] = hsl; // eslint-disable-line\n hsl = [value.hue, s, l];\n hsb = colorHslToHsb(...hsl);\n rgb = colorHslToRgb(...hsl);\n hex = colorRgbToHex(...rgb);\n hsl = self.normalizeHsValues(hsl);\n hsb = self.normalizeHsValues(hsb);\n hue = hsb[0];\n rgba = [rgb[0], rgb[1], rgb[2], alpha];\n hsla = [hsl[0], hsl[1], hsl[2], alpha];\n }\n self.value = {\n hex,\n alpha,\n hue,\n rgb,\n hsl,\n hsb,\n rgba,\n hsla,\n };\n if (!self.initialValue) self.initialValue = extend({}, self.value);\n self.updateValue(needChangeEvent);\n if (self.opened && updateModules) {\n self.updateModules();\n }\n }\n\n getValue() {\n const self = this;\n return self.value;\n }\n\n updateValue(fireEvents = true) {\n const self = this;\n const { $inputEl, value, $targetEl } = self;\n if ($targetEl && self.params.targetElSetBackgroundColor) {\n const { rgba } = value;\n $targetEl.css('background-color', `rgba(${rgba.join(', ')})`);\n }\n if (fireEvents) {\n self.emit('local::change colorPickerChange', self, value);\n }\n\n if ($inputEl && $inputEl.length) {\n const inputValue = self.formatValue(value);\n if ($inputEl && $inputEl.length) {\n $inputEl.val(inputValue);\n if (fireEvents) {\n $inputEl.trigger('change');\n }\n }\n }\n }\n\n updateModules() {\n const self = this;\n const { modules } = self;\n self.params.modules.forEach((m) => {\n if (typeof m === 'string' && modules[m] && modules[m].update) {\n modules[m].update(self);\n } else if (m && m.update) {\n m.update(self);\n }\n });\n }\n\n update() {\n const self = this;\n self.updateModules();\n }\n\n renderPicker() {\n const self = this;\n const { params, modules } = self;\n let html = '';\n\n params.modules.forEach((m) => {\n if (typeof m === 'string' && modules[m] && modules[m].render) {\n html += modules[m].render(self);\n } else if (m && m.render) {\n html += m.render(self);\n }\n });\n\n return html;\n }\n\n renderNavbar() {\n const self = this;\n if (self.params.renderNavbar) {\n return self.params.renderNavbar.call(self, self);\n }\n const { openIn, navbarTitleText, navbarBackLinkText, navbarCloseText } = self.params;\n return (\n <div class=\"navbar\">\n <div class=\"navbar-bg\"></div>\n <div class=\"navbar-inner sliding\">\n {openIn === 'page' && (\n <div class=\"left\">\n <a class=\"link back\">\n <i class=\"icon icon-back\"></i>\n <span class=\"if-not-md\">{navbarBackLinkText}</span>\n </a>\n </div>\n )}\n <div class=\"title\">{navbarTitleText}</div>\n {openIn !== 'page' && (\n <div class=\"right\">\n <a class=\"link popup-close\" data-popup=\".color-picker-popup\">\n {navbarCloseText}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n }\n\n renderToolbar() {\n const self = this;\n if (self.params.renderToolbar) {\n return self.params.renderToolbar.call(self, self);\n }\n return (\n <div class=\"toolbar toolbar-top\">\n <div class=\"toolbar-inner\">\n <div class=\"left\"></div>\n <div class=\"right\">\n <a\n class=\"link sheet-close popover-close\"\n data-sheet=\".color-picker-sheet-modal\"\n data-popover=\".color-picker-popover\"\n >\n {self.params.toolbarCloseText}\n </a>\n </div>\n </div>\n </div>\n );\n }\n\n renderInline() {\n const self = this;\n const { cssClass, groupedModules } = self.params;\n return (\n <div\n class={`color-picker color-picker-inline ${\n groupedModules ? 'color-picker-grouped-modules' : ''\n } ${cssClass || ''}`}\n >\n {self.renderPicker()}\n </div>\n );\n }\n\n renderSheet() {\n const self = this;\n const { cssClass, toolbarSheet, groupedModules } = self.params;\n return (\n <div\n class={`sheet-modal color-picker color-picker-sheet-modal ${\n groupedModules ? 'color-picker-grouped-modules' : ''\n } ${cssClass || ''}`}\n >\n {toolbarSheet && self.renderToolbar()}\n <div class=\"sheet-modal-inner\">\n <div class=\"page-content\">{self.renderPicker()}</div>\n </div>\n </div>\n );\n }\n\n renderPopover() {\n const self = this;\n const { cssClass, toolbarPopover, groupedModules } = self.params;\n return (\n <div class={`popover color-picker-popover ${cssClass || ''}`}>\n <div class=\"popover-inner\">\n <div class={`color-picker ${groupedModules ? 'color-picker-grouped-modules' : ''}`}>\n {toolbarPopover && self.renderToolbar()}\n <div class=\"page-content\">{self.renderPicker()}</div>\n </div>\n </div>\n </div>\n );\n }\n\n renderPopup() {\n const self = this;\n const { cssClass, navbarPopup, groupedModules } = self.params;\n return (\n <div class={`popup color-picker-popup ${cssClass || ''}`}>\n <div class=\"page\">\n {navbarPopup && self.renderNavbar()}\n <div class={`color-picker ${groupedModules ? 'color-picker-grouped-modules' : ''}`}>\n <div class=\"page-content\">{self.renderPicker()}</div>\n </div>\n </div>\n </div>\n );\n }\n\n renderPage() {\n const self = this;\n const { cssClass, groupedModules } = self.params;\n return (\n <div class={`page color-picker-page ${cssClass || ''}`} data-name=\"color-picker-page\">\n {self.renderNavbar()}\n <div class={`color-picker ${groupedModules ? 'color-picker-grouped-modules' : ''}`}>\n <div class=\"page-content\">{self.renderPicker()}</div>\n </div>\n </div>\n );\n }\n\n // eslint-disable-next-line\n render() {\n const self = this;\n const { params } = self;\n if (params.render) return params.render.call(self);\n if (self.inline) return self.renderInline();\n if (params.openIn === 'page') {\n return self.renderPage();\n }\n\n const modalType = self.getModalType();\n if (modalType === 'popover') return self.renderPopover();\n if (modalType === 'sheet') return self.renderSheet();\n if (modalType === 'popup') return self.renderPopup();\n }\n\n onOpen() {\n const self = this;\n const { initialized, $el, app, $inputEl, inline, value, params, modules } = self;\n self.closing = false;\n self.opened = true;\n self.opening = true;\n\n // Init main events\n self.attachEvents();\n\n params.modules.forEach((m) => {\n if (typeof m === 'string' && modules[m] && modules[m].init) {\n modules[m].init(self);\n } else if (m && m.init) {\n m.init(self);\n }\n });\n\n const updateValue = !value && params.value;\n\n // Set value\n if (!initialized) {\n if (value) self.setValue(value);\n else if (params.value) {\n self.setValue(params.value, false);\n } else if (!params.value) {\n self.setValue({ hex: '#ff0000' }, false);\n }\n } else if (value) {\n self.initialValue = extend({}, value);\n self.setValue(value, false);\n }\n\n // Update input value\n if (updateValue) self.updateValue();\n self.updateModules();\n\n // Center modules\n if (params.centerModules) {\n self.centerModules();\n }\n\n // Extra focus\n if (!inline && $inputEl && $inputEl.length && app.theme === 'md') {\n $inputEl.trigger('focus');\n }\n\n self.initialized = true;\n\n // Trigger events\n if ($el) {\n $el.trigger('colorpicker:open');\n }\n if ($inputEl) {\n $inputEl.trigger('colorpicker:open');\n }\n self.emit('local::open colorPickerOpen', self);\n }\n\n onOpened() {\n const self = this;\n self.opening = false;\n if (self.$el) {\n self.$el.trigger('colorpicker:opened');\n }\n if (self.$inputEl) {\n self.$inputEl.trigger('colorpicker:opened');\n }\n self.emit('local::opened colorPickerOpened', self);\n }\n\n onClose() {\n const self = this;\n const { app, params, modules } = self;\n self.opening = false;\n self.closing = true;\n\n // Detach events\n self.detachEvents();\n\n if (self.$inputEl) {\n if (app.theme === 'md') {\n self.$inputEl.trigger('blur');\n } else {\n const validate = self.$inputEl.attr('validate');\n const required = self.$inputEl.attr('required');\n if (validate && required) {\n app.input.validate(self.$inputEl);\n }\n }\n }\n params.modules.forEach((m) => {\n if (typeof m === 'string' && modules[m] && modules[m].destroy) {\n modules[m].destroy(self);\n } else if (m && m.destroy) {\n m.destroy(self);\n }\n });\n\n if (self.$el) {\n self.$el.trigger('colorpicker:close');\n }\n if (self.$inputEl) {\n self.$inputEl.trigger('colorpicker:close');\n }\n self.emit('local::close colorPickerClose', self);\n }\n\n onClosed() {\n const self = this;\n self.opened = false;\n self.closing = false;\n\n if (!self.inline) {\n nextTick(() => {\n if (self.modal && self.modal.el && self.modal.destroy) {\n if (!self.params.routableModals) {\n self.modal.destroy();\n }\n }\n delete self.modal;\n });\n }\n if (self.$el) {\n self.$el.trigger('colorpicker:closed');\n }\n if (self.$inputEl) {\n self.$inputEl.trigger('colorpicker:closed');\n }\n self.emit('local::closed colorPickerClosed', self);\n }\n\n open() {\n const self = this;\n const { app, opened, inline, $inputEl, $targetEl, params } = self;\n if (opened) return;\n\n if (inline) {\n self.$el = $(self.render());\n self.$el[0].f7ColorPicker = self;\n self.$containerEl.append(self.$el);\n self.onOpen();\n self.onOpened();\n return;\n }\n\n const colorPickerContent = self.render();\n\n if (params.openIn === 'page') {\n self.view.router.navigate({\n url: self.url,\n route: {\n content: colorPickerContent,\n path: self.url,\n on: {\n pageBeforeIn(e, page) {\n self.$el = page.$el.find('.color-picker');\n self.$el[0].f7ColorPicker = self;\n self.onOpen();\n },\n pageAfterIn() {\n self.onOpened();\n },\n pageBeforeOut() {\n self.onClose();\n },\n pageAfterOut() {\n self.onClosed();\n if (self.$el && self.$el[0]) {\n self.$el[0].f7ColorPicker = null;\n delete self.$el[0].f7ColorPicker;\n }\n },\n },\n },\n });\n } else {\n const modalType = self.getModalType();\n let backdrop = params.backdrop;\n if (backdrop === null || typeof backdrop === 'undefined') {\n if (modalType === 'popover' && app.params.popover.backdrop !== false) backdrop = true;\n if (modalType === 'popup') backdrop = true;\n }\n const modalParams = {\n targetEl: $targetEl || $inputEl,\n scrollToEl: params.scrollToInput ? $targetEl || $inputEl : undefined,\n content: colorPickerContent,\n backdrop,\n closeByBackdropClick: params.closeByBackdropClick,\n on: {\n open() {\n const modal = this;\n self.modal = modal;\n self.$el =\n modalType === 'popover' || modalType === 'popup'\n ? modal.$el.find('.color-picker')\n : modal.$el;\n self.$el[0].f7ColorPicker = self;\n self.onOpen();\n },\n opened() {\n self.onOpened();\n },\n close() {\n self.onClose();\n },\n closed() {\n self.onClosed();\n if (self.$el && self.$el[0]) {\n self.$el[0].f7ColorPicker = null;\n delete self.$el[0].f7ColorPicker;\n }\n },\n },\n };\n if (modalType === 'popup') {\n modalParams.push = params.popupPush;\n modalParams.swipeToClose = params.popupSwipeToClose;\n }\n if (modalType === 'sheet') {\n modalParams.push = params.sheetPush;\n modalParams.swipeToClose = params.sheetSwipeToClose;\n }\n if (params.routableModals && self.view) {\n self.view.router.navigate({\n url: self.url,\n route: {\n path: self.url,\n [modalType]: modalParams,\n },\n });\n } else {\n self.modal = app[modalType].create(modalParams);\n self.modal.open();\n }\n }\n }\n\n close() {\n const self = this;\n const { opened, inline } = self;\n if (!opened) return;\n if (inline) {\n self.onClose();\n self.onClosed();\n return;\n }\n if ((self.params.routableModals && self.view) || self.params.openIn === 'page') {\n self.view.router.back();\n } else {\n self.modal.close();\n }\n }\n\n init() {\n const self = this;\n\n self.initInput();\n\n if (self.inline) {\n self.open();\n self.emit('local::init colorPickerInit', self);\n return;\n }\n\n if (!self.initialized && self.params.value) {\n self.setValue(self.params.value);\n }\n\n // Attach input Events\n if (self.$inputEl) {\n self.attachInputEvents();\n }\n if (self.$targetEl) {\n self.attachTargetEvents();\n }\n if (self.params.closeByOutsideClick) {\n self.attachHtmlEvents();\n }\n self.emit('local::init colorPickerInit', self);\n }\n\n destroy() {\n const self = this;\n if (self.destroyed) return;\n const { $el } = self;\n self.emit('local::beforeDestroy colorPickerBeforeDestroy', self);\n if ($el) $el.trigger('colorpicker:beforedestroy');\n\n self.close();\n\n // Detach Events\n self.detachEvents();\n if (self.$inputEl) {\n self.detachInputEvents();\n }\n if (self.$targetEl) {\n self.detachTargetEvents();\n }\n if (self.params.closeByOutsideClick) {\n self.detachHtmlEvents();\n }\n\n if ($el && $el.length) delete self.$el[0].f7ColorPicker;\n deleteProps(self);\n self.destroyed = true;\n }\n}\n\nexport default ColorPicker;\n","import $ from '../../shared/dom7.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\nimport ColorPicker from './color-picker-class.js';\n\nexport default {\n name: 'colorPicker',\n static: {\n ColorPicker,\n },\n create() {\n const app = this;\n app.colorPicker = ConstructorMethods({\n defaultSelector: '.color-picker',\n constructor: ColorPicker,\n app,\n domProp: 'f7ColorPicker',\n });\n app.colorPicker.close = function close(el = '.color-picker') {\n const $el = $(el);\n if ($el.length === 0) return;\n const colorPicker = $el[0].f7ColorPicker;\n if (!colorPicker || (colorPicker && !colorPicker.opened)) return;\n colorPicker.close();\n };\n },\n params: {\n colorPicker: {\n // Color picker settings\n value: null,\n modules: ['wheel'],\n palette: [\n [\n '#FFEBEE',\n '#FFCDD2',\n '#EF9A9A',\n '#E57373',\n '#EF5350',\n '#F44336',\n '#E53935',\n '#D32F2F',\n '#C62828',\n '#B71C1C',\n ],\n [\n '#F3E5F5',\n '#E1BEE7',\n '#CE93D8',\n '#BA68C8',\n '#AB47BC',\n '#9C27B0',\n '#8E24AA',\n '#7B1FA2',\n '#6A1B9A',\n '#4A148C',\n ],\n [\n '#E8EAF6',\n '#C5CAE9',\n '#9FA8DA',\n '#7986CB',\n '#5C6BC0',\n '#3F51B5',\n '#3949AB',\n '#303F9F',\n '#283593',\n '#1A237E',\n ],\n [\n '#E1F5FE',\n '#B3E5FC',\n '#81D4FA',\n '#4FC3F7',\n '#29B6F6',\n '#03A9F4',\n '#039BE5',\n '#0288D1',\n '#0277BD',\n '#01579B',\n ],\n [\n '#E0F2F1',\n '#B2DFDB',\n '#80CBC4',\n '#4DB6AC',\n '#26A69A',\n '#009688',\n '#00897B',\n '#00796B',\n '#00695C',\n '#004D40',\n ],\n [\n '#F1F8E9',\n '#DCEDC8',\n '#C5E1A5',\n '#AED581',\n '#9CCC65',\n '#8BC34A',\n '#7CB342',\n '#689F38',\n '#558B2F',\n '#33691E',\n ],\n [\n '#FFFDE7',\n '#FFF9C4',\n '#FFF59D',\n '#FFF176',\n '#FFEE58',\n '#FFEB3B',\n '#FDD835',\n '#FBC02D',\n '#F9A825',\n '#F57F17',\n ],\n [\n '#FFF3E0',\n '#FFE0B2',\n '#FFCC80',\n '#FFB74D',\n '#FFA726',\n '#FF9800',\n '#FB8C00',\n '#F57C00',\n '#EF6C00',\n '#E65100',\n ],\n ],\n groupedModules: false,\n centerModules: true,\n\n sliderLabel: false,\n sliderValue: false,\n sliderValueEdiable: false,\n\n barLabel: false,\n barValue: false,\n barValueEdiable: false,\n\n hexLabel: false,\n hexValueEditable: false,\n\n redLabelText: 'R',\n greenLabelText: 'G',\n blueLabelText: 'B',\n hueLabelText: 'H',\n saturationLabelText: 'S',\n brightnessLabelText: 'B',\n hexLabelText: 'HEX',\n alphaLabelText: 'A',\n\n // Common opener settings\n containerEl: null,\n openIn: 'popover', // or 'popover' or 'sheet' or 'popup' or 'page' or 'auto'\n openInPhone: 'popup', // or 'popover' or 'sheet' or 'popup' or 'page'\n popupPush: false,\n popupSwipeToClose: undefined,\n sheetPush: false,\n sheetSwipeToClose: undefined,\n formatValue: null,\n targetEl: null,\n targetElSetBackgroundColor: false,\n inputEl: null,\n inputReadOnly: true,\n closeByOutsideClick: true,\n scrollToInput: true,\n toolbarSheet: true,\n toolbarPopover: false,\n toolbarCloseText: 'Done',\n navbarPopup: true,\n navbarCloseText: 'Done',\n navbarTitleText: 'Color',\n navbarBackLinkText: 'Back',\n cssClass: null,\n routableModals: false,\n view: null,\n url: 'color/',\n backdrop: null,\n closeByBackdropClick: true,\n // Render functions\n renderToolbar: null,\n renderNavbar: null,\n renderInline: null,\n renderPopover: null,\n renderSheet: null,\n renderPopup: null,\n render: null,\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { bindMethods, iosPreloaderContent, mdPreloaderContent } from '../../shared/utils.js';\n\nconst Treeview = {\n open(itemEl) {\n const app = this;\n const $itemEl = $(itemEl).eq(0);\n if (!$itemEl.length) return;\n $itemEl.addClass('treeview-item-opened');\n $itemEl.trigger('treeview:open');\n app.emit('treeviewOpen', $itemEl[0]);\n function done(cancel) {\n if (cancel) {\n $itemEl.removeClass('treeview-item-opened');\n $itemEl.trigger('treeview:close');\n app.emit('treeviewClose', $itemEl[0]);\n } else {\n $itemEl[0].f7TreeviewChildrenLoaded = true;\n }\n $itemEl.find('.treeview-toggle').removeClass('treeview-toggle-hidden');\n $itemEl.find('.treeview-preloader').remove();\n }\n\n if ($itemEl.hasClass('treeview-load-children') && !$itemEl[0].f7TreeviewChildrenLoaded) {\n const preloaders = { iosPreloaderContent, mdPreloaderContent };\n $itemEl.trigger('treeview:loadchildren', done);\n app.emit('treeviewLoadChildren', $itemEl[0], done);\n $itemEl.find('.treeview-toggle').addClass('treeview-toggle-hidden');\n $itemEl\n .find('.treeview-item-root')\n .prepend(\n `<div class=\"preloader treeview-preloader\">${\n preloaders[`${app.theme}PreloaderContent`]\n }</div>`,\n );\n }\n },\n close(itemEl) {\n const app = this;\n const $itemEl = $(itemEl).eq(0);\n if (!$itemEl.length) return;\n $itemEl.removeClass('treeview-item-opened');\n $itemEl.trigger('treeview:close');\n app.emit('treeviewClose', $itemEl[0]);\n },\n toggle(itemEl) {\n const app = this;\n const $itemEl = $(itemEl).eq(0);\n if (!$itemEl.length) return;\n const wasOpened = $itemEl.hasClass('treeview-item-opened');\n app.treeview[wasOpened ? 'close' : 'open']($itemEl);\n },\n};\n\nexport default {\n name: 'treeview',\n create() {\n const app = this;\n bindMethods(app, {\n treeview: Treeview,\n });\n },\n clicks: {\n '.treeview-toggle': function toggle($clickedEl, clickedData, e) {\n const app = this;\n if ($clickedEl.parents('.treeview-item-toggle').length) return;\n const $treeviewItemEl = $clickedEl.parents('.treeview-item').eq(0);\n if (!$treeviewItemEl.length) return;\n e.preventF7Router = true;\n app.treeview.toggle($treeviewItemEl[0]);\n },\n '.treeview-item-toggle': function toggle($clickedEl, clickedData, e) {\n const app = this;\n const $treeviewItemEl = $clickedEl.closest('.treeview-item').eq(0);\n if (!$treeviewItemEl.length) return;\n e.preventF7Router = true;\n app.treeview.toggle($treeviewItemEl[0]);\n },\n },\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom7.js';\nimport { extend, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\nimport { getDevice } from '../../shared/get-device.js';\n\nconst textEditorButtonsMap = {\n // f7-icon, material-icon, command\n bold: ['bold', 'format_bold', 'bold'],\n italic: ['italic', 'format_italic', 'italic'],\n underline: ['underline', 'format_underlined', 'underline'],\n strikeThrough: ['strikethrough', 'strikethrough_s', 'strikeThrough'],\n orderedList: ['list_number', 'format_list_numbered', 'insertOrderedList'],\n unorderedList: ['list_bullet', 'format_list_bulleted', 'insertUnorderedList'],\n link: ['link', 'link', 'createLink'],\n image: ['photo', 'image', 'insertImage'],\n paragraph: ['paragraph', '<i class=\"icon\">¶</i>', 'formatBlock.P'],\n h1: ['<i class=\"icon\">H<sub>1</sub></i>', '<i class=\"icon\">H<sub>1</sub></i>', 'formatBlock.H1'],\n h2: ['<i class=\"icon\">H<sub>2</sub></i>', '<i class=\"icon\">H<sub>2</sub></i>', 'formatBlock.H2'],\n h3: ['<i class=\"icon\">H<sub>3</sub></i>', '<i class=\"icon\">H<sub>3</sub></i>', 'formatBlock.H3'],\n alignLeft: ['text_alignleft', 'format_align_left', 'justifyLeft'],\n alignCenter: ['text_aligncenter', 'format_align_center', 'justifyCenter'],\n alignRight: ['text_alignright', 'format_align_right', 'justifyRight'],\n alignJustify: ['text_justify', 'format_align_justify', 'justifyFull'],\n subscript: ['textformat_subscript', '<i class=\"icon\">A<sub>1</sub></i>', 'subscript'],\n superscript: ['textformat_superscript', '<i class=\"icon\">A<sup>1</sup></i>', 'superscript'],\n indent: ['increase_indent', 'format_indent_increase', 'indent'],\n outdent: ['decrease_indent', 'format_indent_decrease', 'outdent'],\n};\n\nclass TextEditor extends Framework7Class {\n constructor(app, params) {\n super(params, [app]);\n const self = this;\n const document = getDocument();\n const device = getDevice();\n\n const defaults = extend({}, app.params.textEditor);\n\n // Extend defaults with modules params\n self.useModulesParams(defaults);\n\n self.params = extend(defaults, params);\n\n const el = self.params.el;\n if (!el) return self;\n\n const $el = $(el);\n if ($el.length === 0) return self;\n\n if ($el[0].f7TextEditor) return $el[0].f7TextEditor;\n\n let $contentEl = $el.children('.text-editor-content');\n if (!$contentEl.length) {\n $el.append('<div class=\"text-editor-content\" contenteditable></div>');\n $contentEl = $el.children('.text-editor-content');\n }\n\n extend(self, {\n app,\n $el,\n el: $el[0],\n $contentEl,\n contentEl: $contentEl[0],\n });\n if ('value' in params) {\n self.value = self.params.value;\n }\n\n if (self.params.mode === 'keyboard-toolbar') {\n if (!(device.cordova || device.capacitor) && !device.android) {\n self.params.mode = 'popover';\n }\n }\n\n if (typeof self.params.buttons === 'string') {\n try {\n self.params.buttons = JSON.parse(self.params.buttons);\n } catch (err) {\n throw new Error('Framework7: TextEditor: wrong \"buttons\" parameter format');\n }\n }\n\n $el[0].f7TextEditor = self;\n\n // Bind\n self.onButtonClick = self.onButtonClick.bind(self);\n self.onFocus = self.onFocus.bind(self);\n self.onBlur = self.onBlur.bind(self);\n self.onInput = self.onInput.bind(self);\n self.onPaste = self.onPaste.bind(self);\n self.onSelectionChange = self.onSelectionChange.bind(self);\n self.closeKeyboardToolbar = self.closeKeyboardToolbar.bind(self);\n\n // Handle Events\n self.attachEvents = function attachEvents() {\n if (self.params.mode === 'toolbar') {\n self.$el.find('.text-editor-toolbar').on('click', 'button', self.onButtonClick);\n }\n if (self.params.mode === 'keyboard-toolbar') {\n self.$keyboardToolbarEl.on('click', 'button', self.onButtonClick);\n self.$el.parents('.page').on('page:beforeout', self.closeKeyboardToolbar);\n }\n if (self.params.mode === 'popover' && self.popover) {\n self.popover.$el.on('click', 'button', self.onButtonClick);\n }\n self.$contentEl.on('paste', self.onPaste);\n self.$contentEl.on('focus', self.onFocus);\n self.$contentEl.on('blur', self.onBlur);\n self.$contentEl.on('input', self.onInput, true);\n $(document).on('selectionchange', self.onSelectionChange);\n };\n self.detachEvents = function detachEvents() {\n if (self.params.mode === 'toolbar') {\n self.$el.find('.text-editor-toolbar').off('click', 'button', self.onButtonClick);\n }\n if (self.params.mode === 'keyboard-toolbar') {\n self.$keyboardToolbarEl.off('click', 'button', self.onButtonClick);\n self.$el.parents('.page').off('page:beforeout', self.closeKeyboardToolbar);\n }\n if (self.params.mode === 'popover' && self.popover) {\n self.popover.$el.off('click', 'button', self.onButtonClick);\n }\n self.$contentEl.off('paste', self.onPaste);\n self.$contentEl.off('focus', self.onFocus);\n self.$contentEl.off('blur', self.onBlur);\n self.$contentEl.off('input', self.onInput, true);\n $(document).off('selectionchange', self.onSelectionChange);\n };\n\n // Install Modules\n self.useModules();\n\n // Init\n self.init();\n\n return self;\n }\n\n setValue(newValue) {\n const self = this;\n const currentValue = self.value;\n if (currentValue === newValue) return self;\n self.value = newValue;\n self.$contentEl.html(newValue);\n self.$el.trigger('texteditor:change', self.value);\n self.emit('local::change textEditorChange', self, self.value);\n return self;\n }\n\n getValue() {\n const self = this;\n return self.value;\n }\n\n clearValue() {\n const self = this;\n self.setValue('');\n if (self.params.placeholder && !self.$contentEl.html()) {\n self.insertPlaceholder();\n }\n return self;\n }\n\n createLink() {\n const self = this;\n const window = getWindow();\n const document = getDocument();\n const currentSelection = window.getSelection();\n const selectedNodes = [];\n let $selectedLinks;\n if (\n currentSelection &&\n currentSelection.anchorNode &&\n $(currentSelection.anchorNode).parents(self.$el).length\n ) {\n let anchorNode = currentSelection.anchorNode;\n while (anchorNode) {\n selectedNodes.push(anchorNode);\n if (!anchorNode.nextSibling || anchorNode === currentSelection.focusNode) {\n anchorNode = null;\n }\n if (anchorNode) {\n anchorNode = anchorNode.nextSibling;\n }\n }\n\n const selectedNodesLinks = [];\n const $selectedNodes = $(selectedNodes);\n for (let i = 0; i < $selectedNodes.length; i += 1) {\n const childNodes = $selectedNodes[i].children;\n if (childNodes) {\n for (let j = 0; j < childNodes.length; j += 1) {\n if ($(childNodes[j]).is('a')) {\n selectedNodesLinks.push(childNodes[j]);\n }\n }\n }\n }\n $selectedLinks = $selectedNodes.closest('a').add($(selectedNodesLinks));\n }\n if ($selectedLinks && $selectedLinks.length) {\n $selectedLinks.each((linkNode) => {\n const selection = window.getSelection();\n const range = document.createRange();\n range.selectNodeContents(linkNode);\n selection.removeAllRanges();\n selection.addRange(range);\n document.execCommand('unlink', false);\n selection.removeAllRanges();\n });\n return self;\n }\n const currentRange = self.getSelectionRange();\n if (!currentRange) return self;\n const dialog = self.app.dialog.prompt('', self.params.linkUrlText, (link) => {\n if (link && link.trim().length) {\n self.setSelectionRange(currentRange);\n document.execCommand('createLink', false, link.trim());\n self.$el.trigger('texteditor:insertlink', { url: link.trim() });\n self.emit('local:insertLink textEditorInsertLink', self, link.trim());\n }\n });\n dialog.$el.find('input').focus();\n return self;\n }\n\n insertImage() {\n const self = this;\n const document = getDocument();\n const currentRange = self.getSelectionRange();\n if (!currentRange) return self;\n const dialog = self.app.dialog.prompt('', self.params.imageUrlText, (imageUrl) => {\n if (imageUrl && imageUrl.trim().length) {\n self.setSelectionRange(currentRange);\n document.execCommand('insertImage', false, imageUrl.trim());\n self.$el.trigger('texteditor:insertimage', { url: imageUrl.trim() });\n self.emit('local:insertImage textEditorInsertImage', self, imageUrl.trim());\n }\n });\n dialog.$el.find('input').focus();\n return self;\n }\n\n removePlaceholder() {\n const self = this;\n self.$contentEl.find('.text-editor-placeholder').remove();\n }\n\n insertPlaceholder() {\n const self = this;\n self.$contentEl.append(`<div class=\"text-editor-placeholder\">${self.params.placeholder}</div>`);\n }\n\n onSelectionChange() {\n const self = this;\n const window = getWindow();\n const document = getDocument();\n if (self.params.mode === 'toolbar') return;\n const selection = window.getSelection();\n const selectionIsInContent =\n $(selection.anchorNode).parents(self.contentEl).length ||\n selection.anchorNode === self.contentEl;\n if (self.params.mode === 'keyboard-toolbar') {\n if (!selectionIsInContent) {\n self.closeKeyboardToolbar();\n } else {\n self.openKeyboardToolbar();\n }\n return;\n }\n if (self.params.mode === 'popover') {\n const selectionIsInPopover =\n $(selection.anchorNode).parents(self.popover.el).length ||\n selection.anchorNode === self.popover.el;\n if (!selectionIsInContent && !selectionIsInPopover) {\n self.closePopover();\n return;\n }\n if (!selection.isCollapsed && selection.rangeCount) {\n const range = selection.getRangeAt(0);\n const rect = range.getBoundingClientRect();\n const rootEl = self.app.$el[0] || document.body;\n self.openPopover(\n rect.x + (window.scrollX || 0) - rootEl.offsetLeft,\n rect.y + (window.scrollY || 0) - rootEl.offsetTop,\n rect.width,\n rect.height,\n );\n } else if (selection.isCollapsed) {\n self.closePopover();\n }\n }\n }\n\n onPaste(e) {\n const self = this;\n const document = getDocument();\n if (self.params.clearFormattingOnPaste && e.clipboardData && e.clipboardData.getData) {\n const text = e.clipboardData.getData('text/plain');\n e.preventDefault();\n document.execCommand('insertText', false, text);\n }\n }\n\n onInput() {\n const self = this;\n const value = self.$contentEl.html();\n\n self.value = value;\n\n self.$el.trigger('texteditor:input');\n self.emit('local:input textEditorInput', self, self.value);\n\n self.$el.trigger('texteditor:change', self.value);\n self.emit('local::change textEditorChange', self, self.value);\n }\n\n onFocus() {\n const self = this;\n self.removePlaceholder();\n self.$contentEl.focus();\n self.$el.trigger('texteditor:focus');\n self.emit('local::focus textEditorFocus', self);\n }\n\n onBlur() {\n const self = this;\n const window = getWindow();\n const document = getDocument();\n if (self.params.placeholder && self.$contentEl.html() === '') {\n self.insertPlaceholder();\n }\n if (self.params.mode === 'popover') {\n const selection = window.getSelection();\n const selectionIsInContent =\n $(selection.anchorNode).parents(self.contentEl).length ||\n selection.anchorNode === self.contentEl;\n const inPopover =\n document.activeElement &&\n self.popover &&\n $(document.activeElement).closest(self.popover.$el).length;\n if (!inPopover && !selectionIsInContent) {\n self.closePopover();\n }\n }\n if (self.params.mode === 'keyboard-toolbar') {\n const selection = window.getSelection();\n const selectionIsInContent =\n $(selection.anchorNode).parents(self.contentEl).length ||\n selection.anchorNode === self.contentEl;\n if (!selectionIsInContent) {\n self.closeKeyboardToolbar();\n }\n }\n self.$el.trigger('texteditor:blur');\n self.emit('local::blur textEditorBlur', self);\n }\n\n onButtonClick(e) {\n const self = this;\n const window = getWindow();\n const document = getDocument();\n const selection = window.getSelection();\n const selectionIsInContent =\n $(selection.anchorNode).parents(self.contentEl).length ||\n selection.anchorNode === self.contentEl;\n if (!selectionIsInContent) return;\n const $buttonEl = $(e.target).closest('button');\n if ($buttonEl.parents('form').length) {\n e.preventDefault();\n }\n const button = $buttonEl.attr('data-button');\n const buttonData = self.params.customButtons && self.params.customButtons[button];\n if (!button || !(textEditorButtonsMap[button] || buttonData)) return;\n $buttonEl.trigger('texteditor:buttonclick', button);\n self.emit('local::buttonClick textEditorButtonClick', self, button);\n if (buttonData) {\n if (buttonData.onClick) buttonData.onClick(self, $buttonEl[0]);\n return;\n }\n const command = textEditorButtonsMap[button][2];\n if (command === 'createLink') {\n self.createLink();\n return;\n }\n if (command === 'insertImage') {\n self.insertImage();\n return;\n }\n if (command.indexOf('formatBlock') === 0) {\n const tagName = command.split('.')[1];\n const $anchorNode = $(selection.anchorNode);\n if ($anchorNode.parents(tagName.toLowerCase()).length || $anchorNode.is(tagName)) {\n document.execCommand('formatBlock', false, 'div');\n } else {\n document.execCommand('formatBlock', false, tagName);\n }\n return;\n }\n document.execCommand(command, false);\n }\n\n // eslint-disable-next-line\n getSelectionRange() {\n const window = getWindow();\n const document = getDocument();\n if (window.getSelection) {\n const sel = window.getSelection();\n if (sel.getRangeAt && sel.rangeCount) {\n return sel.getRangeAt(0);\n }\n } else if (document.selection && document.selection.createRange) {\n return document.selection.createRange();\n }\n return null;\n }\n\n // eslint-disable-next-line\n setSelectionRange(range) {\n const window = getWindow();\n const document = getDocument();\n if (range) {\n if (window.getSelection) {\n const sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (document.selection && range.select) {\n range.select();\n }\n }\n }\n\n renderButtons() {\n const self = this;\n let html = '';\n function renderButton(button) {\n const iconClass = self.app.theme === 'md' ? 'material-icons' : 'f7-icons';\n if (self.params.customButtons && self.params.customButtons[button]) {\n const buttonData = self.params.customButtons[button];\n return `<button type=\"button\" class=\"text-editor-button\" data-button=\"${button}\">${\n buttonData.content || ''\n }</button>`;\n }\n if (!textEditorButtonsMap[button]) return '';\n const iconContent = textEditorButtonsMap[button][self.app.theme === 'md' ? 1 : 0];\n return `<button type=\"button\" class=\"text-editor-button\" data-button=\"${button}\">${\n iconContent.indexOf('<') >= 0 ? iconContent : `<i class=\"${iconClass}\">${iconContent}</i>`\n }</button>`.trim();\n }\n self.params.buttons.forEach((button, buttonIndex) => {\n if (Array.isArray(button)) {\n button.forEach((b) => {\n html += renderButton(b);\n });\n if (buttonIndex < self.params.buttons.length - 1 && self.params.dividers) {\n html += '<div class=\"text-editor-button-divider\"></div>';\n }\n } else {\n html += renderButton(button);\n }\n });\n return html;\n }\n\n createToolbar() {\n const self = this;\n self.$el.prepend(`<div class=\"text-editor-toolbar\">${self.renderButtons()}</div>`);\n }\n\n createKeyboardToolbar() {\n const self = this;\n self.$keyboardToolbarEl = $(\n `<div class=\"toolbar toolbar-bottom text-editor-keyboard-toolbar\"><div class=\"toolbar-inner\">${self.renderButtons()}</div></div>`,\n );\n }\n\n createPopover() {\n const self = this;\n self.popover = self.app.popover.create({\n content: `\n <div class=\"popover dark text-editor-popover\">\n <div class=\"popover-inner\">${self.renderButtons()}</div>\n </div>\n `,\n closeByOutsideClick: false,\n backdrop: false,\n });\n }\n\n openKeyboardToolbar() {\n const self = this;\n if (self.$keyboardToolbarEl.parent(self.app.$el).length) return;\n self.$el.trigger('texteditor:keyboardopen');\n self.emit('local::keyboardOpen textEditorKeyboardOpen', self);\n self.app.$el.append(self.$keyboardToolbarEl);\n }\n\n closeKeyboardToolbar() {\n const self = this;\n self.$keyboardToolbarEl.remove();\n self.$el.trigger('texteditor:keyboardclose');\n self.emit('local::keyboardClose textEditorKeyboardClose', self);\n }\n\n openPopover(targetX, targetY, targetWidth, targetHeight) {\n const self = this;\n\n if (!self.popover) return;\n Object.assign(self.popover.params, {\n targetX,\n targetY,\n targetWidth,\n targetHeight,\n });\n clearTimeout(self.popoverTimeout);\n self.popoverTimeout = setTimeout(() => {\n if (!self.popover) return;\n if (self.popover.opened) {\n self.popover.resize();\n } else {\n self.$el.trigger('texteditor:popoveropen');\n self.emit('local::popoverOpen textEditorPopoverOpen', self);\n self.popover.open();\n }\n }, 400);\n }\n\n closePopover() {\n const self = this;\n clearTimeout(self.popoverTimeout);\n if (!self.popover || !self.popover.opened) return;\n self.popoverTimeout = setTimeout(() => {\n if (!self.popover) return;\n self.$el.trigger('texteditor:popoverclose');\n self.emit('local::popoverClose textEditorPopoverClose', self);\n self.popover.close();\n }, 400);\n }\n\n init() {\n const self = this;\n if (self.value) {\n self.$contentEl.html(self.value);\n } else {\n self.value = self.$contentEl.html();\n }\n if (self.params.placeholder && self.value === '') {\n self.insertPlaceholder();\n }\n if (self.params.mode === 'toolbar') {\n self.createToolbar();\n } else if (self.params.mode === 'popover') {\n self.createPopover();\n } else if (self.params.mode === 'keyboard-toolbar') {\n self.createKeyboardToolbar();\n }\n\n self.attachEvents();\n self.$el.trigger('texteditor:init');\n self.emit('local::init textEditorInit', self);\n return self;\n }\n\n destroy() {\n let self = this;\n self.$el.trigger('texteditor:beforedestroy');\n self.emit('local::beforeDestroy textEditorBeforeDestroy', self);\n self.detachEvents();\n if (self.params.mode === 'keyboard-toolbar' && self.$keyboardToolbarEl) {\n self.$keyboardToolbarEl.remove();\n }\n if (self.popover) {\n self.popover.close(false);\n self.popover.destroy();\n }\n delete self.$el[0].f7TextEditor;\n deleteProps(self);\n self = null;\n }\n}\n\nexport default TextEditor;\n","import $ from '../../shared/dom7.js';\nimport { extend } from '../../shared/utils.js';\nimport TextEditor from './text-editor-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'textEditor',\n params: {\n textEditor: {\n el: null,\n mode: 'toolbar', // or 'popover'\n value: undefined, // will use html content\n customButtons: null,\n buttons: [\n ['bold', 'italic', 'underline', 'strikeThrough'],\n ['orderedList', 'unorderedList'],\n ['link', 'image'],\n ['paragraph', 'h1', 'h2', 'h3'],\n ['alignLeft', 'alignCenter', 'alignRight', 'alignJustify'],\n ['subscript', 'superscript'],\n ['indent', 'outdent'],\n ],\n dividers: true,\n imageUrlText: 'Insert image URL',\n linkUrlText: 'Insert link URL',\n placeholder: null,\n clearFormattingOnPaste: true,\n },\n },\n create() {\n const app = this;\n app.textEditor = extend(\n ConstructorMethods({\n defaultSelector: '.text-editor',\n constructor: TextEditor,\n app,\n domProp: 'f7TextEditor',\n }),\n );\n },\n static: {\n TextEditor,\n },\n on: {\n tabMounted(tabEl) {\n const app = this;\n $(tabEl)\n .find('.text-editor-init')\n .each((editorEl) => {\n const dataset = $(editorEl).dataset();\n app.textEditor.create(extend({ el: editorEl }, dataset || {}));\n });\n },\n tabBeforeRemove(tabEl) {\n $(tabEl)\n .find('.text-editor-init')\n .each((editorEl) => {\n if (editorEl.f7TextEditor) editorEl.f7TextEditor.destroy();\n });\n },\n pageInit(page) {\n const app = this;\n page.$el.find('.text-editor-init').each((editorEl) => {\n const dataset = $(editorEl).dataset();\n app.textEditor.create(extend({ el: editorEl }, dataset || {}));\n });\n },\n pageBeforeRemove(page) {\n page.$el.find('.text-editor-init').each((editorEl) => {\n if (editorEl.f7TextEditor) editorEl.f7TextEditor.destroy();\n });\n },\n },\n vnode: {\n 'text-editor-init': {\n insert(vnode) {\n const app = this;\n const editorEl = vnode.elm;\n const dataset = $(editorEl).dataset();\n app.textEditor.create(extend({ el: editorEl }, dataset || {}));\n },\n destroy(vnode) {\n const editorEl = vnode.elm;\n if (editorEl.f7TextEditor) editorEl.f7TextEditor.destroy();\n },\n },\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\n/** @jsx $jsx */\nimport $jsx from '../../shared/$jsx.js';\n\nclass PieChart extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n\n const self = this;\n\n const defaults = extend({}, app.params.pieChart);\n\n // Extend defaults with modules params\n self.useModulesParams(defaults);\n\n self.params = extend(defaults, params);\n\n const { el } = self.params;\n if (!el) return self;\n\n const $el = $(el);\n if ($el.length === 0) return self;\n\n if ($el[0].f7PieChart) return $el[0].f7PieChart;\n\n extend(self, {\n app,\n $el,\n el: $el && $el[0],\n currentIndex: null,\n f7Tooltip: null,\n });\n\n $el[0].f7PieChart = self;\n\n // Install Modules\n self.useModules();\n\n self.showTooltip = self.showTooltip.bind(this);\n self.hideTooltip = self.hideTooltip.bind(this);\n\n self.init();\n\n return self;\n }\n\n getSummValue() {\n const { datasets } = this.params;\n let summ = 0;\n datasets\n .map((d) => d.value || 0)\n .forEach((value) => {\n summ += value;\n });\n return summ;\n }\n\n getPaths() {\n const { datasets, size } = this.params;\n const paths = [];\n\n let cumulativePercentage = 0;\n\n function getCoordinatesForPercentage(percentage) {\n const x = Math.cos(2 * Math.PI * percentage) * (size / 3);\n const y = Math.sin(2 * Math.PI * percentage) * (size / 3);\n return [x, y];\n }\n\n datasets.forEach(({ value, label, color }) => {\n const percentage = value / this.getSummValue();\n\n const [startX, startY] = getCoordinatesForPercentage(cumulativePercentage);\n cumulativePercentage += percentage;\n const [endX, endY] = getCoordinatesForPercentage(cumulativePercentage);\n const largeArcFlag = percentage > 0.5 ? 1 : 0;\n const points = [\n `M ${startX} ${startY}`, // Move\n `A ${size / 3} ${size / 3} 0 ${largeArcFlag} 1 ${endX} ${endY}`, // Arc\n 'L 0 0', // Line\n ].join(' ');\n\n paths.push({\n points,\n label,\n color,\n });\n });\n return paths;\n }\n\n formatTooltipText() {\n const { datasets } = this.params;\n const { currentIndex } = this;\n if (currentIndex === null) return '';\n const { value, label, color } = datasets[currentIndex];\n const percentage = (value / this.getSummValue()) * 100;\n\n const round = (v) => {\n if (parseInt(v, 10) === v) return v;\n return Math.round(v * 100) / 100;\n };\n\n if (this.params.formatTooltip) {\n return this.params.formatTooltip.call(this, {\n index: currentIndex,\n value,\n label,\n color,\n percentage,\n });\n }\n\n const tooltipText = `${label ? `${label}: ` : ''}${round(value)} (${round(percentage)}%)`;\n\n return `\n <div class=\"pie-chart-tooltip-label\">\n <span class=\"pie-chart-tooltip-color\" style=\"background-color: ${color};\"></span> ${tooltipText}\n </div>\n `;\n }\n\n setTooltip() {\n const self = this;\n const { currentIndex, el, app, params } = self;\n const { tooltip } = params;\n if (currentIndex === null && !self.f7Tooltip) return;\n if (!tooltip || !el) return;\n\n if (currentIndex !== null && !self.f7Tooltip) {\n self.f7Tooltip = app.tooltip.create({\n trigger: 'manual',\n containerEl: el,\n targetEl: el.querySelector(`path[data-index=\"${currentIndex}\"]`),\n text: self.formatTooltipText(),\n cssClass: 'pie-chart-tooltip',\n });\n self.f7Tooltip.show();\n return;\n }\n if (!self.f7Tooltip) return;\n if (currentIndex !== null) {\n self.f7Tooltip.setText(self.formatTooltipText());\n self.f7Tooltip.setTargetEl(el.querySelector(`path[data-index=\"${currentIndex}\"]`));\n\n self.f7Tooltip.show();\n } else {\n self.f7Tooltip.hide();\n }\n }\n\n render() {\n const self = this;\n const size = self.params.size;\n const paths = self.getPaths();\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n viewBox={`-${size / 3} -${size / 3} ${(size * 2) / 3} ${(size * 2) / 3}`}\n style=\"transform: rotate(-90deg)\"\n >\n {paths.map((path, index) => (\n <path d={path.points} fill={path.color} data-index={index} />\n ))}\n </svg>\n );\n }\n\n update(newParams = {}) {\n const self = this;\n const { params } = self;\n Object.keys(newParams).forEach((param) => {\n if (typeof newParams[param] !== 'undefined') {\n params[param] = newParams[param];\n }\n });\n if (self.$svgEl.length === 0) return self;\n self.$svgEl.remove();\n delete self.$svgEl.f7PieChart;\n const $svgEl = $(self.render()).eq(0);\n $svgEl.f7PieChart = self;\n extend(self, {\n $svgEl,\n svgEl: $svgEl && $svgEl[0],\n });\n self.$el.append($svgEl);\n return self;\n }\n\n setCurrentIndex(index) {\n const self = this;\n if (index === self.currentIndex) return;\n const { datasets } = self.params;\n self.currentIndex = index;\n self.$el.trigger('piechart:select', { index, dataset: datasets[index] });\n self.emit('local::select pieChartSelect', self, index, datasets[index]);\n }\n\n showTooltip(e) {\n const newIndex = parseInt(e.target.getAttribute('data-index'), 10);\n this.setCurrentIndex(newIndex);\n this.$svgEl\n .find('path')\n .removeClass('pie-chart-hidden')\n .forEach((el, index) => {\n if (index !== this.currentIndex) $(el).addClass('pie-chart-hidden');\n });\n this.setTooltip();\n }\n\n hideTooltip() {\n this.setCurrentIndex(null);\n this.$svgEl.find('path').removeClass('pie-chart-hidden');\n this.setTooltip();\n }\n\n init() {\n const self = this;\n const $svgEl = $(self.render()).eq(0);\n $svgEl.f7PieChart = self;\n extend(self, {\n $svgEl,\n svgEl: $svgEl && $svgEl[0],\n });\n self.$el.append($svgEl);\n self.$el.on('click mouseenter', 'path', self.showTooltip, true);\n self.$el.on('mouseleave', 'path', self.hideTooltip, true);\n return self;\n }\n\n destroy() {\n const self = this;\n if (!self.$el || self.destroyed) return;\n self.$el.trigger('piechart:beforedestroy');\n self.emit('local::beforeDestroy pieChartBeforeDestroy', self);\n self.$el.off('click mouseenter', 'path', self.showTooltip, true);\n self.$el.off('mouseleave', 'path', self.hideTooltip, true);\n self.$svgEl.remove();\n if (self.f7Tooltip && self.f7Tooltip.destroy) {\n self.f7Tooltip.destroy();\n }\n delete self.$el[0].f7PieChart;\n deleteProps(self);\n self.destroyed = true;\n }\n}\n\nexport default PieChart;\n","import $ from '../../shared/dom7.js';\nimport PieChart from './pie-chart-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'pieChart',\n params: {\n pieChart: {\n el: null,\n datasets: [],\n size: 320,\n tooltip: false,\n formatTooltip: null,\n },\n },\n create() {\n const app = this;\n app.pieChart = ConstructorMethods({\n defaultSelector: '.pie-chart',\n constructor: PieChart,\n app,\n domProp: 'f7PieChart',\n });\n app.pieChart.update = function update(el, newParams) {\n const $el = $(el);\n if ($el.length === 0) return undefined;\n const pieChart = app.pieChart.get(el);\n if (!pieChart) return undefined;\n pieChart.update(newParams);\n return pieChart;\n };\n },\n};\n","import $ from '../../shared/dom7.js';\nimport { extend, deleteProps } from '../../shared/utils.js';\nimport Framework7Class from '../../shared/class.js';\n/** @jsx $jsx */\nimport $jsx from '../../shared/$jsx.js';\n\nclass AreaChart extends Framework7Class {\n constructor(app, params = {}) {\n super(params, [app]);\n\n const self = this;\n\n const defaults = extend({}, app.params.areaChart);\n\n // Extend defaults with modules params\n self.useModulesParams(defaults);\n\n self.params = extend(defaults, params);\n\n const { el } = self.params;\n if (!el) return self;\n\n const $el = $(el);\n if ($el.length === 0) return self;\n\n if ($el[0].f7AreaChart) return $el[0].f7AreaChart;\n\n extend(self, {\n app,\n $el,\n el: $el && $el[0],\n currentIndex: null,\n hiddenDatasets: [],\n f7Tooltip: null,\n linesOffsets: null,\n });\n\n $el[0].f7AreaChart = self;\n\n // Install Modules\n self.useModules();\n\n self.onMouseEnter = self.onMouseEnter.bind(self);\n self.onMouseMove = self.onMouseMove.bind(self);\n self.onMouseLeave = self.onMouseLeave.bind(self);\n self.onLegendClick = self.onLegendClick.bind(self);\n\n self.init();\n\n return self;\n }\n\n getVisibleLabels() {\n const { maxAxisLabels, axisLabels } = this.params;\n if (!maxAxisLabels || axisLabels.length <= maxAxisLabels) return axisLabels;\n const skipStep = Math.ceil(axisLabels.length / maxAxisLabels);\n const filtered = axisLabels.filter((label, index) => index % skipStep === 0);\n return filtered;\n }\n\n getSummValues() {\n const { datasets } = this.params;\n const { hiddenDatasets } = this;\n const summValues = [];\n datasets\n .filter((dataset, index) => !hiddenDatasets.includes(index))\n .forEach(({ values }) => {\n values.forEach((value, valueIndex) => {\n if (!summValues[valueIndex]) summValues[valueIndex] = 0;\n summValues[valueIndex] += value;\n });\n });\n return summValues;\n }\n\n getChartData() {\n const { datasets, lineChart, width, height } = this.params;\n const { hiddenDatasets } = this;\n const data = [];\n if (!datasets.length) {\n return data;\n }\n const lastValues = datasets[0].values.map(() => 0);\n let maxValue = 0;\n if (lineChart) {\n datasets\n .filter((dataset, index) => !hiddenDatasets.includes(index))\n .forEach(({ values }) => {\n const datasetMaxValue = Math.max(...values);\n if (datasetMaxValue > maxValue) maxValue = datasetMaxValue;\n });\n } else {\n maxValue = Math.max(...this.getSummValues());\n }\n\n datasets\n .filter((dataset, index) => !hiddenDatasets.includes(index))\n .forEach(({ label, values, color }) => {\n const points = values.map((originalValue, valueIndex) => {\n lastValues[valueIndex] += originalValue;\n const value = lineChart ? originalValue : lastValues[valueIndex];\n const x = (valueIndex / (values.length - 1)) * width;\n const y = height - (value / maxValue) * height;\n if (lineChart) {\n return `${valueIndex === 0 ? 'M' : 'L'}${x},${y}`;\n }\n return `${x} ${y}`;\n });\n if (!lineChart) {\n points.push(`${width} ${height} 0 ${height}`);\n }\n\n data.push({\n label,\n points: points.join(' '),\n color,\n });\n });\n return data.reverse();\n }\n\n getVerticalLines() {\n const { datasets, width } = this.params;\n const lines = [];\n if (!datasets.length) {\n return lines;\n }\n const values = datasets[0].values;\n values.forEach((value, valueIndex) => {\n const x = (valueIndex / (values.length - 1)) * width;\n lines.push(x);\n });\n return lines;\n }\n\n toggleDataset(index) {\n const {\n hiddenDatasets,\n params: { toggleDatasets },\n } = this;\n if (!toggleDatasets) return;\n if (hiddenDatasets.includes(index)) {\n hiddenDatasets.splice(hiddenDatasets.indexOf(index), 1);\n } else {\n hiddenDatasets.push(index);\n }\n if (this.$legendEl) {\n this.$legendEl.find('.area-chart-legend-item').removeClass('area-chart-legend-item-hidden');\n hiddenDatasets.forEach((i) => {\n this.$legendEl\n .find(`.area-chart-legend-item[data-index=\"${i}\"]`)\n .addClass('area-chart-legend-item-hidden');\n });\n }\n this.update({}, true);\n }\n\n formatAxisLabel(label) {\n const { formatAxisLabel } = this.params;\n if (formatAxisLabel) return formatAxisLabel.call(this, label);\n return label;\n }\n\n formatLegendLabel(label) {\n const { formatLegendLabel } = this.params;\n if (formatLegendLabel) return formatLegendLabel.call(this, label);\n return label;\n }\n\n calcLinesOffsets() {\n const lines = this.svgEl.querySelectorAll('line');\n this.linesOffsets = [];\n for (let i = 0; i < lines.length; i += 1) {\n this.linesOffsets.push(lines[i].getBoundingClientRect().left);\n }\n }\n\n formatTooltip() {\n const self = this;\n const {\n currentIndex,\n hiddenDatasets,\n params: {\n datasets,\n axisLabels,\n formatTooltip,\n formatTooltipTotal,\n formatTooltipAxisLabel,\n formatTooltipDataset,\n },\n } = self;\n if (currentIndex === null) return '';\n let total = 0;\n const currentValues = datasets\n .filter((dataset, index) => !hiddenDatasets.includes(index))\n .map((dataset) => ({\n color: dataset.color,\n label: dataset.label,\n value: dataset.values[currentIndex],\n }));\n currentValues.forEach((dataset) => {\n total += dataset.value;\n });\n if (formatTooltip) {\n return formatTooltip({\n index: currentIndex,\n total,\n datasets: currentValues,\n });\n }\n let labelText = formatTooltipAxisLabel\n ? formatTooltipAxisLabel.call(self, axisLabels[currentIndex])\n : this.formatAxisLabel(axisLabels[currentIndex]);\n if (!labelText) labelText = '';\n const totalText = formatTooltipTotal ? formatTooltipTotal.call(self, total) : total;\n // prettier-ignore\n const datasetsText = currentValues.length > 0 ? `\n <ul class=\"area-chart-tooltip-list\">\n ${currentValues\n .map(({ label, color, value }) => {\n const valueText = formatTooltipDataset\n ? formatTooltipDataset.call(self, label, value, color)\n : `${label ? `${label}: ` : ''}${value}`;\n return `\n <li><span style=\"background-color: ${color};\"></span>${valueText}</li>\n `;\n }).join('')}\n </ul>` : '';\n // prettier-ignore\n return `\n <div class=\"area-chart-tooltip-label\">${labelText}</div>\n <div class=\"area-chart-tooltip-total\">${totalText}</div>\n ${datasetsText}\n `;\n }\n\n setTooltip() {\n const self = this;\n const {\n app,\n el,\n svgEl,\n hiddenDatasets,\n currentIndex,\n params: { tooltip, datasets },\n } = self;\n if (!tooltip) return;\n const hasVisibleDataSets =\n datasets.filter((dataset, index) => !hiddenDatasets.includes(index)).length > 0;\n if (!hasVisibleDataSets) {\n if (self.f7Tooltip && self.f7Tooltip.hide) self.f7Tooltip.hide();\n return;\n }\n\n if (currentIndex !== null && !self.f7Tooltip) {\n self.f7Tooltip = app.tooltip.create({\n trigger: 'manual',\n containerEl: el,\n targetEl: svgEl.querySelector(`line[data-index=\"${currentIndex}\"]`),\n text: self.formatTooltip(),\n cssClass: 'area-chart-tooltip',\n });\n if (self.f7Tooltip && self.f7Tooltip.show) {\n self.f7Tooltip.show();\n }\n return;\n }\n if (!self.f7Tooltip || !self.f7Tooltip.hide || !self.f7Tooltip.show) {\n return;\n }\n if (currentIndex !== null) {\n self.f7Tooltip.setText(self.formatTooltip());\n self.f7Tooltip.setTargetEl(svgEl.querySelector(`line[data-index=\"${currentIndex}\"]`));\n self.f7Tooltip.show();\n } else {\n self.f7Tooltip.hide();\n }\n }\n\n setCurrentIndex(index) {\n if (index === this.currentIndex) return;\n this.currentIndex = index;\n this.$el.trigger('areachart:select', { index });\n this.emit('local::select areaChartSelect', this, index);\n this.$svgEl.find('line').removeClass('area-chart-current-line');\n this.$svgEl.find(`line[data-index=\"${index}\"]`).addClass('area-chart-current-line');\n this.setTooltip();\n }\n\n onLegendClick(e) {\n const index = parseInt($(e.target).closest('.area-chart-legend-item').attr('data-index'), 10);\n this.toggleDataset(index);\n }\n\n onMouseEnter() {\n this.calcLinesOffsets();\n }\n\n onMouseMove(e) {\n const self = this;\n if (!self.linesOffsets) {\n self.calcLinesOffsets();\n }\n let currentLeft = e.pageX;\n if (typeof currentLeft === 'undefined') currentLeft = 0;\n const distances = self.linesOffsets.map((left) => Math.abs(currentLeft - left));\n const minDistance = Math.min(...distances);\n const closestIndex = distances.indexOf(minDistance);\n self.setCurrentIndex(closestIndex);\n }\n\n onMouseLeave() {\n this.setCurrentIndex(null);\n }\n\n attachEvents() {\n const { svgEl, $el } = this;\n if (!svgEl) return;\n svgEl.addEventListener('mouseenter', this.onMouseEnter);\n svgEl.addEventListener('mousemove', this.onMouseMove);\n svgEl.addEventListener('mouseleave', this.onMouseLeave);\n $el.on('click', '.area-chart-legend-item', this.onLegendClick);\n }\n\n detachEvents() {\n const { svgEl, $el } = this;\n if (!svgEl) return;\n svgEl.removeEventListener('mouseenter', this.onMouseEnter);\n svgEl.removeEventListener('mousemove', this.onMouseMove);\n svgEl.removeEventListener('mouseleave', this.onMouseLeave);\n $el.off('click', '.area-chart-legend-item', this.onLegendClick);\n }\n\n render() {\n const self = this;\n const { lineChart, toggleDatasets, width, height, axis, axisLabels, legend, datasets } =\n self.params;\n const chartData = self.getChartData();\n const verticalLines = self.getVerticalLines();\n const visibleLegends = self.getVisibleLabels();\n\n const LegendItemTag = toggleDatasets ? 'button' : 'span';\n return (\n <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={width}\n height={height}\n viewBox={`0 0 ${width} ${height}`}\n preserveAspectRatio=\"none\"\n >\n {chartData.map((data) =>\n lineChart ? (\n <path stroke={data.color} fill-rule=\"evenodd\" d={data.points} />\n ) : (\n <polygon fill={data.color} fill-rule=\"evenodd\" points={data.points} />\n ),\n )}\n\n {verticalLines.map((line, index) => (\n <line data-index={index} fill=\"#000\" x1={line} y1={0} x2={line} y2={height} />\n ))}\n </svg>\n {axis && (\n <div class=\"area-chart-axis\">\n {axisLabels.map((label) => (\n <span>\n {visibleLegends.includes(label) && <span>{self.formatAxisLabel(label)}</span>}\n </span>\n ))}\n </div>\n )}\n {legend && (\n <div class=\"area-chart-legend\">\n {datasets.map((dataset, index) => (\n <LegendItemTag\n data-index={index}\n class={`area-chart-legend-item ${toggleDatasets ? 'area-chart-legend-button' : ''}`}\n _type={toggleDatasets ? 'button' : undefined}\n >\n <span style={`background-color: ${dataset.color}`}></span>\n {self.formatLegendLabel(dataset.label)}\n </LegendItemTag>\n ))}\n </div>\n )}\n </div>\n );\n }\n\n update(newParams = {}, onlySvg = false) {\n const self = this;\n const { params } = self;\n Object.keys(newParams).forEach((param) => {\n if (typeof newParams[param] !== 'undefined') {\n params[param] = newParams[param];\n }\n });\n if (self.$svgEl.length === 0) return self;\n self.detachEvents();\n self.$svgEl.remove();\n if (!onlySvg) {\n self.$axisEl.remove();\n self.$legendEl.remove();\n }\n const $rendered = $(self.render());\n const $svgEl = $rendered.find('svg');\n extend(self, {\n svgEl: $svgEl && $svgEl[0],\n $svgEl,\n });\n\n if (!onlySvg) {\n const $axisEl = $rendered.find('.area-chart-axis');\n const $legendEl = $rendered.find('.area-chart-legend');\n extend(self, {\n $axisEl,\n $legendEl,\n });\n self.$el.append($axisEl);\n self.$el.append($legendEl);\n }\n self.$el.prepend($svgEl);\n\n self.attachEvents();\n return self;\n }\n\n init() {\n const self = this;\n const $rendered = $(self.render());\n const $svgEl = $rendered.find('svg');\n const $axisEl = $rendered.find('.area-chart-axis');\n const $legendEl = $rendered.find('.area-chart-legend');\n extend(self, {\n svgEl: $svgEl && $svgEl[0],\n $svgEl,\n $axisEl,\n $legendEl,\n });\n self.$el.append($svgEl);\n self.$el.append($axisEl);\n self.$el.append($legendEl);\n self.attachEvents();\n return self;\n }\n\n destroy() {\n const self = this;\n if (!self.$el || self.destroyed) return;\n self.$el.trigger('piechart:beforedestroy');\n self.emit('local::beforeDestroy areaChartBeforeDestroy', self);\n self.detachEvents();\n self.$svgEl.remove();\n self.$axisEl.remove();\n self.$legendEl.remove();\n if (self.f7Tooltip && self.f7Tooltip.destroy) {\n self.f7Tooltip.destroy();\n }\n delete self.$el[0].f7AreaChart;\n deleteProps(self);\n self.destroyed = true;\n }\n}\n\nexport default AreaChart;\n","import $ from '../../shared/dom7.js';\nimport AreaChart from './area-chart-class.js';\nimport ConstructorMethods from '../../shared/constructor-methods.js';\n\nexport default {\n name: 'areaChart',\n params: {\n areaChart: {\n el: null,\n lineChart: false,\n datasets: [],\n axis: false,\n axisLabels: [],\n tooltip: false,\n legend: false,\n toggleDatasets: false,\n width: 640,\n height: 320,\n maxAxisLabels: 8,\n formatAxisLabel: null,\n formatLegendLabel: null,\n formatTooltip: null,\n formatTooltipAxisLabel: null,\n formatTooltipTotal: null,\n formatTooltipDataset: null,\n },\n },\n create() {\n const app = this;\n app.areaChart = ConstructorMethods({\n defaultSelector: '.area-chart',\n constructor: AreaChart,\n app,\n domProp: 'f7AreaChart',\n });\n app.areaChart.update = function update(el, newParams) {\n const $el = $(el);\n if ($el.length === 0) return undefined;\n const areaChart = app.areaChart.get(el);\n if (!areaChart) return undefined;\n areaChart.update(newParams);\n return areaChart;\n };\n },\n};\n","import { bindMethods } from '../../shared/utils.js';\n\nconst Breadcrumbs = {};\n\nexport default {\n name: 'breadrumbs',\n create() {\n const app = this;\n bindMethods(app, {\n breadrumbs: Breadcrumbs,\n });\n },\n};\n","export default {\n name: 'typography',\n};\n","import $ from './shared/dom7.js';\n\nimport Framework7 from './components/app/app-class.js';\n\n//IMPORT_HELPERS\n\nimport DeviceModule from './modules/device/device.js';\nimport SupportModule from './modules/support/support.js';\nimport UtilsModule from './modules/utils/utils.js';\nimport ResizeModule from './modules/resize/resize.js';\nimport TouchModule from './modules/touch/touch.js';\nimport ClicksModule from './modules/clicks/clicks.js';\nimport RouterModule from './modules/router/router.js';\nimport RouterComponentLoaderModule from './modules/router/component-loader.js';\nimport ComponentModule, { Component, $jsx } from './modules/component/component.js';\nimport HistoryModule from './modules/history/history.js';\nimport ServiceWorkerModule from './modules/service-worker/service-worker.js';\nimport StoreModule, { createStore } from './modules/store/store.js';\n\nimport Statusbar from './components/statusbar/statusbar.js';\nimport View from './components/view/view.js';\nimport Navbar from './components/navbar/navbar.js';\nimport Toolbar from './components/toolbar/toolbar.js';\nimport Subnavbar from './components/subnavbar/subnavbar.js';\nimport TouchRipple from './components/touch-ripple/touch-ripple.js';\nimport Modal from './components/modal/modal.js';\nimport Router from './modules/router/router-class.js';\n\n//IMPORT_COMPONENTS\n\n// UMD_ONLY_START\nif (typeof window !== 'undefined') {\n // Dom7\n if (!window.Dom7) window.Dom7 = $;\n}\n// UMD_ONLY_END\n\nRouter.use([RouterComponentLoaderModule]);\n\nFramework7.use([\n DeviceModule,\n SupportModule,\n UtilsModule,\n ResizeModule,\n TouchModule,\n ClicksModule,\n RouterModule,\n HistoryModule,\n ComponentModule,\n ServiceWorkerModule,\n StoreModule,\n Statusbar,\n View,\n Navbar,\n Toolbar,\n Subnavbar,\n TouchRipple,\n Modal,\n //INSTALL_COMPONENTS\n]);\n\n//NAMED_EXPORT\nexport default Framework7;\n"],"names":["isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","makeReactive","proto","__proto__","defineProperty","get","set","value","Dom7","Array","items","arrayFlat","arr","res","el","isArray","push","arrayFilter","prototype","filter","call","arrayUnique","uniqueArray","i","indexOf","toCamelCase","string","toLowerCase","replace","match","group","toUpperCase","qsa","selector","context","a","$","html","trim","toCreate","tempParent","innerHTML","nodeType","fn","addClass","_len","arguments","classes","_key","classNames","map","c","split","classList","add","removeClass","_len2","_key2","remove","toggleClass","_len3","_key3","className","toggle","hasClass","_len4","_key4","contains","attr","attrs","getAttribute","undefined","attrName","removeAttr","removeAttribute","prop","props","propName","data","dom7ElementDataStorage","dataKey","removeData","dataset","attributes","name","parseFloat","val","multiple","values","selectedOptions","j","options","selected","transform","transition","duration","transitionDuration","on","_len5","args","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","e","eventData","dom7EventData","unshift","is","apply","parents","k","handleEvent","events","event","dom7Listeners","proxyListener","dom7LiveListeners","off","_len6","_key6","handlers","handler","splice","dom7proxy","once","dom","_len7","_key7","eventName","onceHandler","_len8","eventArgs","_key8","trigger","_len9","_key9","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionStart","fireCallBack","transitionEnd","animationEnd","width","innerWidth","css","outerWidth","includeMargins","styles","offsetWidth","height","innerHeight","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","hide","display","show","each","index","result","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","appendTo","parent","prepend","insertBefore","prependTo","before","parentNode","cloneNode","insertAfter","after","nextSibling","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","siblings","closest","find","foundElements","found","removeChild","detach","_len10","els","_key10","toAdd","empty","scrollTo","_len11","_key11","easing","animate","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","scrollHeight","Math","max","min","scrollWidth","startTime","render","time","getTime","progress","easeProgress","cos","PI","done","_len12","_key12","_len13","_key13","initialProps","initialParams","assign","params","elements","animating","que","easingProgress","stop","frameId","element","dom7AnimateInstance","complete","shift","initialFullValue","initialValue","unit","finalValue","finalFullValue","container","currentValue","elementsDone","propsDone","began","begin","animateInstance","noTrigger","shortcut","eventHandler","_len14","_key14","click","focus","focusin","focusout","keyup","keydown","keypress","submit","change","mousedown","mousemove","mouseup","mouseenter","mouseleave","mouseout","mouseover","touchstart","touchend","touchmove","resize","scroll","methods","methodName","signum","num","lerp","start","amount","clampInt","input","clampDouble","sanitizeDegreesDouble","degrees","rotationDirection","from","to","differenceDegrees","b","abs","matrixMultiply","row","matrix","SRGB_TO_XYZ","XYZ_TO_SRGB","WHITE_POINT_D65","argbFromRgb","red","green","blue","argbFromLinrgb","linrgb","delinearized","redFromArgb","argb","greenFromArgb","blueFromArgb","argbFromXyz","x","y","z","linearR","linearG","linearB","xyzFromArgb","linearized","argbFromLstar","lstar","component","yFromLstar","lstarFromArgb","labF","labInvf","lstarFromY","rgbComponent","normalized","pow","round","whitePointD65","t","ft","ft3","ViewingConditions","make","whitePoint","adaptingLuminance","backgroundLstar","surround","discountingIlluminant","xyz","rW","gW","bW","f","d","exp","nc","rgbD","k4","k4F","fl","cbrt","n","sqrt","nbb","ncb","rgbAFactors","rgbA","aw","fLRoot","DEFAULT","Cam16","hue","chroma","q","m","s","jstar","astar","bstar","distance","other","dJ","dA","dB","dEPrime","fromInt","fromIntInViewingConditions","viewingConditions","redL","greenL","blueL","rC","gC","bC","rD","gD","bD","rAF","gAF","bAF","rA","gA","bA","u","p2","atanDegrees","atan2","hueRadians","ac","huePrime","alpha","mstar","log","sin","fromJch","h","fromJchInViewingConditions","fromUcs","fromUcsInViewingConditions","toInt","viewed","hRad","eHue","p1","hSin","hCos","gamma","rCBase","gCBase","bCBase","rF","gF","bF","fromXyzInViewingConditions","J","Q","C","M","xyzInViewingConditions","HctSolver","sanitizeRadians","angle","trueDelinearized","chromaticAdaptation","af","hueOf","scaledDiscount","SCALED_DISCOUNT_FROM_LINRGB","areInCyclicOrder","intercept","source","mid","lerpPoint","setCoordinate","coordinate","axis","isBounded","nthVertex","kR","Y_FROM_LINRGB","kG","kB","coordA","coordB","g","r","bisectToSegment","targetHue","right","leftHue","rightHue","initialized","uncut","midHue","midpoint","criticalPlaneBelow","floor","criticalPlaneAbove","ceil","bisectToLimit","segment","lPlane","rPlane","mPlane","midPlaneCoordinate","CRITICAL_PLANES","inverseChromaticAdaptation","adapted","adaptedAbs","base","findResultByJ","tInnerCoeff","iterationRound","jNormalized","LINRGB_FROM_SCALED_DISCOUNT","fnj","solveToInt","hueDegrees","exactAnswer","solveToCam","Hct","tone","internalHue","newHue","setInternalState","internalChroma","internalTone","newChroma","newTone","cam","inViewingConditions","vc","viewedInVc","recastInVc","Blend","harmonize","designColor","sourceColor","fromHct","toHct","differenceDegrees$1","rotationDegrees","outputHue","hctHue","ucs","cam16Ucs","ucsCam","fromCam","toCam","fromJ","fromA","fromB","Contrast","ratioOfTones","toneA","toneB","ratioOfYs","y1","y2","lighter","ratio","darkY","lightY","realContrast","delta","returnValue","darker","lighterUnsafe","lighterSafe","darkerUnsafe","darkerSafe","DislikeAnalyzer","isDisliked","hct","huePasses","chromaPasses","tonePasses","fixIfDisliked","DynamicColor","fromPalette","palette","isBackground","background","secondBackground","contrastCurve","toneDeltaPair","hctCache","Map","Error","getArgb","scheme","getHct","cachedAnswer","getTone","answer","size","clear","decreasingContrast","contrastLevel","roleA","roleB","polarity","stayTogether","bgTone","aIsNearer","isDark","nearer","farther","amNearer","expansionDir","nContrast","getContrast","fContrast","nInitialTone","nTone","foregroundTone","fInitialTone","fTone","desiredRatio","bg1","bg2","bgTone1","bgTone2","upper","lower","lightOption","darkOption","availables","tonePrefersLightForeground","lighterTone","darkerTone","lighterRatio","darkerRatio","negligibleDifference","toneAllowsLightForeground","enableLightForeground","Variant","MONOCHROME","NEUTRAL","TONAL_SPOT","VIBRANT","EXPRESSIVE","FIDELITY","CONTENT","RAINBOW","FRUIT_SALAD","ContrastCurve","low","normal","medium","high","ToneDeltaPair","isFidelity","variant","isMonochrome","findDesiredChromaByTone","byDecreasingTone","closestToChroma","chromaPeak","potentialSolution","viewingConditionsForAlbers","performAlbers","prealbers","albersd","MaterialDynamicColors","highestSurface","surfaceBright","surfaceDim","contentAccentToneDelta","primaryPaletteKeyColor","primaryPalette","keyColor","secondaryPaletteKeyColor","secondaryPalette","tertiaryPaletteKeyColor","tertiaryPalette","neutralPaletteKeyColor","neutralPalette","neutralVariantPaletteKeyColor","neutralVariantPalette","onBackground","surface","surfaceContainerLowest","surfaceContainerLow","surfaceContainer","surfaceContainerHigh","surfaceContainerHighest","onSurface","surfaceVariant","onSurfaceVariant","inverseSurface","inverseOnSurface","outline","outlineVariant","shadow","scrim","surfaceTint","primary","primaryContainer","onPrimary","sourceColorHct","onPrimaryContainer","inversePrimary","secondary","secondaryContainer","onSecondary","initialTone","onSecondaryContainer","tertiary","tertiaryContainer","onTertiary","albersTone","proposedHct","onTertiaryContainer","error","errorPalette","errorContainer","onError","onErrorContainer","primaryFixed","primaryFixedDim","onPrimaryFixed","onPrimaryFixedVariant","secondaryFixed","secondaryFixedDim","onSecondaryFixed","onSecondaryFixedVariant","tertiaryFixed","tertiaryFixedDim","onTertiaryFixed","onTertiaryFixedVariant","TonalPalette","fromHueAndChroma","createKeyColor","cache","smallestDeltaHct","smallestDelta","hctAdd","hctAddDelta","hctSubtract","hctSubtractDelta","CorePalette","of","contentOf","fromColors","colors","createPaletteFromColors","contentFromColors","content","p","a2","a1","a3","neutral","n1","neutralVariant","n2","isContent","Scheme","light","lightFromCorePalette","dark","darkFromCorePalette","lightContent","darkContent","core","toJSON","hexFromArgb","outParts","toString","part","entries","join","argbFromHex","hex","isThree","isSix","isEight","parseIntHex","slice","repeat","parseInt","themeFromSourceColor","customColors","schemes","palettes","customColor","color","blend","tones","onColor","colorContainer","onColorContainer","toRGBA","l","rgba","String","materialColors","hexColor","theme","char","shouldSkip","skip","v","includes","uniqueNum","uniqueNumber","mask","random","mdPreloaderContent","iosPreloaderContent","eventNameToColonCase","hasColon","deleteProps","object","nextTick","delay","nextFrame","now","parseUrlQuery","url","query","urlToParse","param","paramsPart","decodeURIComponent","getTranslate","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","serializeObject","resultArray","separator","newParents","varName","parentParts","encodeURIComponent","varValue","toPush","o","merge","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","deep","colorHexToRgb","exec","colorRgbToHex","colorRgbToHsl","colorHslToRgb","hp","rgb1","Number","isNaN","colorHsbToHsl","HSL","HSB","colorHslToHsb","getShadeTintColors","rgb","hsl","hslShade","hslTint","shade","tint","colorThemeCSSProperties","shadeTintIos","shadeTintMdLight","shadeTintMdDark","ios","md","bindMethods","instance","subKey","bind","flattenArray","arg","colorThemeCSSStyles","stringifyObject","colorVars","colorName","restVars","colorValue","rest","whiteColorVars","blackColorVars","lightString","darkString","support","calcSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","passiveListener","checkPassiveListener","supportsPassive","opts","intersectionObserver","checkObserver","getSupport","deviceCalculated","calcDevice","_temp","platform","ua","device","android","androidChrome","desktop","iphone","ipod","ipad","edge","ie","firefox","macos","windows","cordova","electron","capacitor","Capacitor","nwjs","screenWidth","screenHeight","nw","process","versions","iPadScreens","os","osVersion","webView","standalone","webview","pixelRatio","devicePixelRatio","DARK","LIGHT","prefersColorScheme","prefersColorTheme","IS_BROWSER","Boolean","getDevice","overrides","reset","EventsClass","self","eventsParents","eventsListeners","priority","method","f7proxy","emit","local","eventsArray","localEvents","parentEvents","eventsParent","Framework7Class","useModuleParams","module","instanceParams","originalParams","paramKey","useModulesParams","modules","moduleName","useModule","moduleParams","modulePropName","moduleProp","moduleEventName","vnode","vnodeHooks","vnodeId","hookName","create","useModules","modulesParams","components","Class","use","installModule","static","install","ConstructorMethods","parameters","defaultSelector","Constructor","domProp","app","addMethods","$el","destroy","ModalMethods","open","targetEl","$targetPage","modalEl","$modalEl","f7Modal","close","$parentEl","$targetEl","fetchedModules","loadModule","moduleToLoad","Framework7","Promise","resolve","reject","modulePath","moduleObj","moduleFunc","matchNamePattern","lazyModulesPath","scriptLoad","resolveScript","rejectScript","fetch","then","scriptContent","callbackId","callbackLoadName","scriptEl","componentLoader","catch","err","styleLoad","resolveStyle","rtl","styleContent","styleEl","all","$jsx","tag","attrsString","childrenContent","passedParams","w","defaults","routes","initOnDeviceReady","init","darkMode","iosTranslucentBars","iosTranslucentModals","componentUrl","pink","yellow","orange","purple","deeppurple","lightblue","teal","lime","deeporange","white","black","getTheme","online","onLine","store","f7","initStore","setColorTheme","setColors","colorsStyleEl","head","utils","mount","rootEl","$rootEl","mq","colorSchemeListener","_ref","media","__store","createStore","enableAutoDarkMode","disableAutoDarkMode","setDarkMode","mode","initAppComponent","router","componentOptions","$elComponent","f7Component","loadModules","getVnodeHooks","hook","Events","metaStatusbar","getSize","orientationchange","initTouch","useRipple","touchStartX","touchStartY","targetElement","isMoved","tapHoldFired","tapHoldTimeout","preventClick","activableElement","activeTimeout","rippleWave","rippleTarget","rippleTimeout","findActivableElement","activeStateElements","activable","newActivable","preventPropagation","isInsideScrollableView","pageContent","addActive","removeActive","findRippleElement","rippleElements","touchRippleElements","rippleParent","createRipple","touchRipple","removeRipple","rippleTouchStart","inScrollable","rippleTouchMove","rippleTouchEnd","handleMouseDown","$activableEl","which","pageX","pageY","handleMouseMove","activeStateOnMouseMove","handleMouseUp","handleTouchCancel","activeState","isScrolling","isSegmentedStrong","segmentedStrongEl","touchMoveActivableIos","isTouchMoveActivable","touchmoveActivableEl","handleTouchStart","isTrusted","targetTouches","touches","tapHold","preventDefault","tapHoldDelay","handleTouchMove","shouldRemoveActive","type","touchClicksDistanceThreshold","touchCurrentX","touchCurrentY","elementFromPoint","clientX","clientY","buttonEl","handleTouchEnd","tapHoldPreventClicks","handleClick","isOverswipe","isSegmented","localPreventClick","stopImmediatePropagation","stopPropagation","emitAppTouchEvent","appClick","appTouchStartActive","appTouchMoveActive","appTouchEndActive","appTouchStartPassive","appTouchMovePassive","appTouchEndPassive","passive","passiveListenerCapture","activeListener","activeListenerCapture","touchEvents","move","end","disableContextMenu","isNative","mdTouchRipple","iosTouchRipple","touchRippleInsetElements","lexer","str","tokens","code","charCodeAt","TypeError","concat","count","pattern","parse","_a","prefixes","defaultPattern","escapeString","delimiter","path","tryConsume","mustConsume","nextType","consumeText","prefix","suffix","modifier","name_1","pattern_1","compile","tokensToFunction","reFlags","flags","encode","_b","validate","token","RegExp","optional","test","typeOfMessage","re","pathToRegexp","regexpToFunction","decode","sensitive","regexpToRegexp","groupsRegex","execResult","arrayToRegexp","paths","parts","stringToRegexp","tokensToRegexp","strict","_c","_d","_e","_f","endsWith","endsWithRe","delimiterRe","route","_i","tokens_1","mod","endToken","isEndDelimited","History","queue","clearQueue","currentQueue","routerQueue","clearRouterQueue","pop","stateUrl","action","browserHistoryAnimate","browserHistory","navigate","handle","blockPopstate","state","previousState","allowChange","views","view","viewState","allowPageChange","initViewState","viewId","newState","substr","readyState","SwipeBack","$navbarsEl","isTouched","touchesStart","$currentPageEl","$previousPageEl","viewContainerWidth","touchesDiff","allowViewTouchMove","touchStartTime","$currentNavbarEl","$previousNavbarEl","dynamicNavbar","$pageShadowEl","$pageOpacityEl","animatableNavEls","paramsSwipeBackAnimateShadow","paramsSwipeBackAnimateOpacity","paramsSwipeBackActiveArea","paramsSwipeBackThreshold","transformOrigin","transformOriginTitleLarge","animatableNavElements","inverter","currentNavIsTransparent","currentNavIsLarge","currentNavIsCollapsed","currentNavIsLargeTransparent","previousNavIsTransparent","previousNavIsLarge","previousNavIsCollapsed","previousNavIsLargeTransparent","fromLarge","toLarge","$currentNavElements","$previousNavElements","activeNavBackIconText","previousNavBackIconText","iosAnimateNavbarBackIcon","f7NavbarLeftOffset","navEl","$navEl","isSubnavbar","isLeft","isTitle","isBg","overflow","subNavEl","opacity","isSliding","transformTarget","textEl","activeNavTranslate","f7NavbarRightOffset","previousNavTranslate","setAnimatableNavElements","reflow","_clientLeft","classNameSet","styleProp","swipeBackEnabled","swipeout","masterDetailBreakpoint","f7PreventSwipeBack","preventSwipeBack","cancel","notFromBorder","sheet","f7PreventSwipePanel","preventSwipePanelBySwipeBack","percentage","callbackData","currentPageEl","previousPageEl","currentNavbarEl","previousNavbarEl","currentPageTranslate","previousPageTranslate","swipeBackActive","$pages","timeDiff","pageChanged","setNavbarPosition","currentRoute","f7Page","currentPage","pageCallback","swipeBack","saveHistory","removePage","removeNavbar","previousRoute","preloadPreviousPage","preload","attachEvents","detachEvents","redirect","direction","initial","redirectResolve","redirectUrl","redirectOptions","redirectReject","processQueue","routeQueue","queueItem","processRouteQueue","enterNextRoute","routesBeforeEnter","beforeEnter","leaveCurrentRoute","routesBeforeLeave","beforeLeave","appRouterCheck","asyncComponent","resolvePromise","componentPromise","default","_default","cause","asyncComponentResult","refreshPage","ignoreCache","reloadCurrent","forward","forwardOptions","reloadPages","reloadPrevious","reloadAll","clearPreviousHistory","reloadDetail","masterDetailEnabled","isMaster","master","masterPageEl","otherDetailPageEl","detailsInBetweenRemoved","currentRouteIsModal","modal","modalType","modalLoadProp","modalToClose","modalInstance","previousUrl","findMatchingRoute","modalRemove","$viewEl","$newPage","reload","$oldPage","$newNavbarEl","$oldNavbarEl","removeThemeElements","$navbarEl","keepAlive","keepAliveData","pageEl","$pagesInView","pageInView","$navbarsInView","navbarInView","isDetail","isDetailRoot","newPagePosition","position","role","root","detailRoot","navbar","getElByPage","navbarEl","removedPageEls","removedNavbarEls","oldNavbarEl","browserHistoryRoot","browserHistorySeparator","propsHistory","newPageInDom","componentEl","f7PageMounted","$oldPageEl","$oldNavbarElEl","tab","tabLoad","checkMasterDetailBreakpoint","setPagePosition","afterAnimation","keepOldPage","setPositionClasses","f7PageTransition","load","loadParams","loadOptions","ignorePageChange","pageName","parentPath","sameParams","paramName","allowDuplicateUrls","parseRouteUrl","newOptions","getPageEl","pageComponentLoader","routerEl","xhrAbortController","abort","xhrRequest","navigateParams","navigateOptions","createRoute","generateUrl","navigateUrl","currentPath","viewName","anotherViewName","anotherView","openIn","ignoreOpenIn","routerLoaded","modalLoad","pageLoadProp","asyncResolve","resolveParams","resolveOptions","resolvedAsModal","modalRoute","asyncReject","async","masterRoute","preloadMaster","masterLoaded","pageAfterIn","tabRoute","parentPageEl","browserHistoryTabs","$parentPageEl","tabEl","tabShowResult","$newTabEl","$oldTabEl","animated","onTabsChanged","tabParentPageData","onTabLoaded","contentEl","tabEventTarget","unloadTabContent","tabRemove","f7RouterTabLoaded","loadTab","loadTabParams","loadTabOptions","tabComponentLoader","tabContent","hasContentLoadProp","tabLoadProp","hasTabComponentChild","tabChild","removeTabContent","isPanel","modalOrPanel","modalParams","routeCallback","modalOpen","panelOpen","modalClose","panelClose","modalClosed","panelClosed","onModalLoaded","hasEl","closeOnSwipeBack","closeByRouter","modalComponent","removeModal","loadModal","loadModalParams","loadModalOptions","modalComponentLoader","modalContent","foundLoadProp","backward","backwardOptions","masterPageRemoved","initialPreload","currentIsMaster","backIndex","force","$pageToRemove","$navbarToRemove","insertPage","$previousPages","pageToRemove","loadBack","backParams","backOptions","navigateProps","prevOpenedModals","forceOtherUrl","isBrokenBrowserHistory","needHistoryBack","currentRouteWithoutBrowserHistory","$previousPage","skipMaster","$previousMaster","expectedPreviousPageUrl","expectedPreviousPageRoute","previousPageObj","previousPageRoute","clearPreviousPages","$pagesToRemove","panel","Router","isAppRouter","routerId","scrollHistory","iosDynamicNavbar","initialPages","initialNavbars","configurable","newRoute","tempDom","navbarsEl","animateIcon","newNavEls","oldNavEls","animatableNavEl","$navbarInner","needsOpacityTransition","$iconEl","isIconLabel","leftOffset","rightOffset","navEls","otherEls","otherNavEl","iconTextEl","offsetLeft","$newPageEl","animateCustom","routerCustomTransitionClass","onCustomTransitionDone","routerTransitionClass","toDifferent","oldIsLarge","newIsLarge","betweenMasterAndDetail","animateNavbars","setProperty","onDone","removeEl","$tabEl","removeElements","removeElementsWithTimeout","removeElementsTimeout","findElement","stringSelector","modalsSelector","$container","viewMainClass","flattenRoutes","flattenedRoutes","hasTabRoutes","tabs","mergedPathsRoutes","tRoute","detailRoutes","detailRoute","dRoute","masterRoutePath","childRoute","cRoute","findRouteByKey","constructRouteUrl","toUrl","findTabRouteUrl","tabId","foundTabRouteUrl","matchingRoute","pathsToMatch","alias","aliasPath","matched","pathToMatch","keyObj","paramValue","replaceRequestUrlParams","compiledUrl","regExp","removeFromXhrCache","xhrCache","xhr","requestUrl","hasQuery","passRouteQueryToRequest","passRouteParamsToRequest","xhrCacheIgnoreGetParameters","xhrCacheIgnore","cachedUrl","xhrCacheDuration","AbortController","fetchRes","signal","responseText","status","ariaHidden","toRemove","getPageData","pageFromEl","$pageEl","pageFrom","fromPage","$pageFromEl","page","restoreScrollTopOnBack","camelName","colonName","f7RouteEventsAttached","f7RouteEventsOn","f7RouteEventsOnce","$pageContent","pageContentEl","f7PageInitialized","browserHistoryStoreHistory","localStorage","JSON","stringify","restoreHistory","clearHistory","updateCurrentUrl","newUrl","getInitialUrl","initialUrl","historyRestored","URL","documentUrl","browserHistoryOnLoad","console","warn","substring","iosSwipeBack","mdSwipeBack","browserHistoryAnimateOnLoad","browserHistoryInitialMatch","initUrl","loadInitialPage","hasTabRoute","initOptions","routerProp","templates","resizableView","resizableInitialized","resizable","resizableWidth","$htmlEl","$resizeHandlerEl","minWidth","maxWidth","transformCSSWidth","newV","isResizable","$pageMasterEl","newWidth","handleResize","View","viewParams","ssr","routesAdd","message","main","f7View","viewProp","wasMasterDetail","isMasterDetail","initMasterDetail","masterDetailResizable","viewEl","initRouterOnTabShow","initClicks","handleClicks","$clickedEl","$clickedLinkEl","isLink","clicks","externalLinks","InAppBrowser","Plugins","Browser","moduleClicks","preventF7Router","clickSelector","matchingClickedElement","clickedLinkData","clickedEl","validUrl","current","linksView","ViewClass","f7RouteProps","ctx","$h","$onMounted","$f7","side","effect","popup","loginScreen","popover","componentFunction","componentContext","f7route","f7router","componentProps","routeProps","componentRoot","createdComponent","cachedComponent","componentCache","cached","loadedComponent","parsedComponent","_temp2","_temp3","ignoreChildren","htm","sel","elm","array","primitive","addNS","ns","childData","SELF_CLOSING","PROPS_ATTRS","BOOLEAN_PROPS","getTagName","treeNode","word","propsFromAttrs","createCustomComponent","customComponents","__component__","updateCustomComponent","newProps","update","destroyCustomComponent","isCustomComponent","treeNodeType","getHooks","isRoot","hooks","insert","postpatch","isFakeElement","tagName","isCustom","oldVnode","class","vn","getEventHandler","prevent","fired","getData","attrValue","eventNamePart","eventNameIndex","prepatch","getChildren","nodes","childNode","treeNodeToVNode","getSlots","slotName","slotNodes","childTreeNode","childSlotName","slot","subTreeNode","isTreeNode","vdom","tree","namespaceURI","qualifiedName","createTextNode","createComment","newNode","referenceNode","node","setTextContent","getTextContent","isElement","isText","isComment","htmlDomApi","copyToThunk","thunk","cur","old","oldArgs","isUndef","isDef","emptyNode","sameVnode","vnode1","vnode2","isVnode","createKeyToOldIdx","beginIdx","endIdx","ch","domApi","cbs","api","emptyNodeAt","createRmCb","childElm","listeners","rmCb","parent_1","createElm","insertedVnodeQueue","hashIdx","dotIdx","dot","addVnodes","parentElm","vnodes","startIdx","invokeDestroyHook","removeVnodes","i_1","rm","updateChildren","oldCh","newCh","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","oldKeyToIdx","idxInOld","elmToMove","patchVnode","patch","pre","post","xlinkNS","xmlNS","colonChar","xChar","updateAttrs","oldAttrs","setAttributeNS","attributesModule","updateProps","oldProps","propsModule","raf","setNextFrame","updateStyle","oldStyle","oldHasDel","removeProperty","delayed","name2","applyDestroyStyle","applyRemoveStyle","compStyle","applied","ev","styleModule","invokeHandler","createListener","updateEvents","oldOn","oldListener","oldElm","eventListenersModule","flatChildren","types","flat","swap","fromTo","_","sort","every","getPrototypeOf","Component","generateId","__updateQueue","__eventHandlers","__onceEventHandlers","__onBeforeMount","__onMounted","__onBeforeUpdate","__onUpdated","__onBeforeUnmount","__onUnmounted","createComponent","getComponentContext","getRenderFuncion","componentResult","renderFunction","getComponentRef","getComponentStore","_gettersPlain","dispatch","$store","getters","Proxy","onUpdated","getUseState","_this","reduce","_x","Symbol","iterator","Iterate","includeHooks","$f7route","$f7router","$id","$f7ready","f7ready","$theme","$tick","tick","$update","$emit","$ref","$useState","$on","$once","$onBeforeMount","$onBeforeUpdate","$onUpdated","$onBeforeUnmount","$onUnmounted","_ref2","_ref3","_ref4","startUpdateQueue","__requestAnimationFrameId","newVNode","__updateIsPending","resolvers","resolver","__destroyed","setState","mountMethod","parseComponent","componentString","componentId","callbackCreateName","template","hasTemplate","item","scripts","registerComponent","unregisterComponent","SW","registrations","register","scope","serviceWorker","reg","unregister","registration","toRegister","storeParams","originalState","actions","propsQueue","gettersDependencies","gettersCallbacks","getterKey","getGetterValue","addGetterDependencies","deps","dep","addGetterCallback","runGetterCallbacks","stateKey","removeGetterCallback","callbacks","__removeCallback","getterValue","addCallback","__callback","actionName","isCapacitor","StatusBar","Statusbar","onClick","setTextColor","styleLightContent","styleDefault","setStyle","setBackgroundColor","backgroundColorByHexString","isVisible","getInfo","info","visible","overlaysWebView","overlays","setOverlaysWebView","overlay","statusbar","enabled","isCordova","isCap","scrollTopOnClick","iosOverlaysWebView","iosTextColor","androidOverlaysWebView","androidTextColor","iosBackgroundColor","androidBackgroundColor","getCurrentView","$popoverView","$popupView","$panelView","$viewsEl","iosSwipeBackAnimateShadow","iosSwipeBackAnimateOpacity","iosSwipeBackActiveArea","iosSwipeBackThreshold","mdSwipeBackAnimateShadow","mdSwipeBackAnimateOpacity","mdSwipeBackActiveArea","mdSwipeBackThreshold","iosPageLoadDelay","mdPageLoadDelay","onOpen","onClose","Navbar","$innerEl","needCenterTitle","needLeftTitle","iosCenterTitle","title","subnavbar","noLeft","noRight","leftWidth","rightWidth","titleWidth","navbarStyles","navbarWidth","navbarInnerWidth","paddingLeft","paddingRight","isPrevious","sliding","currLeft","diff","requiredLeft","titleLeftOffset","titleRightOffset","activeNavbarBackLink","titleLeft","hideStatusbar","hideOnlyCurrent","isDynamic","currentIsLarge","subEl","pageData","getPageByEl","collapseLargeTitle","expandLargeTitle","toggleLargeTitle","initNavbarOnScroll","needHide","needCollapse","needTransparent","$titleLargeEl","isLarge","navbarHideHeight","snapPageScrollToLargeTitle","snapPageScrollToTransparentNavbar","previousScrollTop","currentScrollTop","reachEnd","navbarHidden","navbarCollapsed","navbarTitleLargeHeight","navbarOffsetHeight","scrollChanged","scrollContent","scrollTimeoutId","touchEndTimeoutId","touchSnapTimeout","desktopSnapTimeout","calcScrollableDistance","f7ScrollableDistance","snapLargeNavbar","inSearchbarExpanded","snapTransparentNavbar","handleNavbarTransparent","isHidden","notTransparent","previousCollapseProgress","collapseProgress","handleLargeNavbarCollapse","isLargeTransparent","scrollableDistance","previousCollapseWasInMiddle","$bgEl","handleTitleHideShow","showOnPageScrollEnd","showOnPageScrollTop","handleScroll","handeTouchStart","f7DetachNavbarScrollHandlers","scrollTopOnTitleClick","mdCenterTitle","hideOnPageScroll","collapseLargeTitleOnScroll","onPanelResize","pageBeforeRemove","pageBeforeIn","pageReinit","pageInit","needCollapseOnScrollHandler","needTransparentOnScroll","needHideOnScrollHandler","onPanelModalOpen","tabShow","onTitleClick","clickedData","$pageContentEl","Toolbar","setHighlight","tabbarEl","$tabbarEl","$highlightEl","tabLinksCount","$activeLink","highlightWidth","highlightTranslate","activeIndex","toolbar","initToolbarOnScroll","$toolbarEl","toolbarHidden","f7ScrollToolbarHandler","tabbar","$innerSubnavbars","subnavbarEl","TouchRipple","ripple","center","diameter","isInset","insetElements","distanceFromCenter","scale","rippleTransform","$rippleWaveEl","shouldBeRemoved","out","removeTimeout","openedModals","dialogsQueue","clearDialogsQueue","dialog","Modal","opened","$containerEl","containerEl","onOpened","onClosed","backdrop","backdropUnique","forceBackdropUnique","$backdropEl","animateModal","queueDialogs","pushToQueue","openedModal","$modalParentEl","wasInDom","needToHideBackdrop","popupEl","popupInstance","closeByBackdropClick","backdropEl","destroyed","CustomModal","extendedParams","customModal","Dialog","buttons","verticalButtons","cssClass","destroyOnClose","dialogClasses","buttonsHTML","button","strong","dialogHtml","buttonOnClick","addKeyboardHander","onKeyDown","keyCode","keyCodes","setProgress","progressbar","setText","newText","$textEl","setTitle","newTitle","$titleEl","$target","buttonOk","buttonCancel","usernamePlaceholder","passwordPlaceholder","preloaderTitle","progressTitle","destroyPredefinedDialogs","keyboardActions","autoFocus","defaultDialogTitle","autoFocusHandler","isIosTheme","alert","callbackOk","prompt","callbackCancel","defaultValue","inputValue","confirm","login","username","password","preloader","preloaders","preloaderInner","infinite","Popup","keyboardOpened","Keyboard","plugins","needToClose","closeOnEscape","pushOffset","isPush","pushViewScale","allowSwipeToClose","startTouch","currentTouch","pageContentScrollTop","pageContentOffsetHeight","pageContentScrollHeight","popupHeight","$pushEl","swipeToClose","swipeHandler","pushProgress","hasPreviousPushPopup","updatePushOffset","wasPush","setPushOffset","parentSelector","openPopup","closePopup","LoginScreen","openLoginScreen","closeLoginScreen","Popover","anotherPopoverEl","f7PopoverRef","$arrowEl","arrow","originalOpen","arrowEl","touchStartTarget","closeByOutsideClick","isAnotherPopoverBackdrop","isAnotherPopoverTarget","targetX","targetY","verticalPosition","arrowSize","arrowLeft","arrowTop","hasArrow","arrowMin","targetWidth","targetHeight","targetOffsetLeft","targetOffsetTop","safeAreaTop","safeAreaLeft","safeAreaRight","targetOffset","targetParentPage","forcedPosition","hPosition","popoverEl","$popoverEl","openPopover","closePopover","Actions","groups","convertToPopover","popoverHtml","renderPopover","actionsHtml","originalClose","$buttonEl","buttonIndex","groupIndex","forceToPopover","closed","grid","buttonClasses","label","bg","disabled","icon","itemClasses","openActions","closeActions","Sheet","scrollToElementOnOpen","$scrollEl","scrollToEl","paddingTop","paddingBottom","pageHeight","pageScrollHeight","pageScroll","newPaddingBottom","scrollElTop","scrollToElementOnClose","useBreakpoints","breakpoints","isTopSheetModal","swipeStepTranslate","startTranslate","currentTranslate","sheetElOffsetHeight","minTranslate","maxTranslate","$pushViewEl","pushBorderRadius","sheetPageContentEl","sheetPageContentScrollTop","sheetPageContentScrollHeight","sheetPageContentOffsetHeight","breakpointsTranslate","currentBreakpointIndex","backdropBreakpointSet","swipeToStep","setBackdropBreakpoint","setPushBreakpoint","openDirection","closeDirection","absCurrentTranslate","absSwipeStepTranslate","setBreakpoint","allBreakpoints","closestTranslate","curr","closestIndex","stepOpened","breakpoint","pushBreakpoint","pushBreakpoints","pushTransparentBreakpoint","backdropBreakpoint","backdropBreakpoints","backdropTransparentBreakpoint","calcBreakpoints","fullSize","setBreakpointsOnResize","setSwipeStep","byResize","$swipeStepEl","onResize","stepOpen","stepClose","stepToggle","sheetInstance","openSheet","closeSheet","Toast","toast","closeButton","closeTimeout","toastHtml","timeoutId","openedEl","toastInstance","horizontalPosition","closeButtonColor","closeButtonText","horizontalClass","Preloader","showIn","hideIn","photoBrowserOpen","pb","preloaderEl","tabMounted","Progressbar","progressNormalized","$progressbarEl","$progressbarLine","removeAfterHide","progressbarEl","Sortable","$sortingEl","$sortingItems","$sortableContainer","sortingElHeight","minTop","$insertAfterEl","$insertBeforeEl","indexFrom","pageOffset","sortingElOffsetLocal","sortingElOffsetTop","initialScrollTop","wasTapHold","isTapHold","$listGroup","allowOpen","allow","offsetTop","translateScrollOffset","translate","scrollAddition","allowScroll","scrollDiff","$currentEl","currentElOffset","currentElHeight","sortingElOffset","prevTranslate","f7Translate","indexTo","moveElements","sortableMoveElements","sortable","f7VirtualListIndex","virtualList","f7VirtualList","moveItem","pointerEvent","enable","disable","Swipeout","$swipeoutEl","$swipeoutContent","$actionsRight","$actionsLeft","actionsLeftWidth","actionsRightWidth","openedActionsSide","$leftButtons","$rightButtons","$overswipeLeftButton","$overswipeRightButton","overswipeLeft","overswipeRight","noFollow","buttonOffset","buttonTranslate","overswipeRatio","f7SwipeoutButtonOffset","$actions","actionsWidth","$buttons","newTranslate","$swipeoutActions","swipeoutActionsWidth","onSwipeoutClose","delete","virtualIndex","deleteItem","actionsNoFold","openSwipeout","closeSwipeout","deleteSwipeout","confirmTitle","Accordion","toggleClicked","$accordionItemEl","$accordionContent","accordion","prevented","$list","$contentEl","$openedItem","VirtualList","vl","defaultHeight","cols","dynamicHeightBufferSize","showFilteredItemsOnly","renderExternal","setListHeight","searchByItem","searchAll","ul","createUl","scrollableParentEl","renderItem","filteredItems","$scrollableParentEl","updatableScroll","$ul","$itemsWrapEl","itemsWrapEl","domCache","tempDomElement","lastRepaintY","fragment","createDocumentFragment","rowsPerScreen","rowsBefore","rowsAfter","rowsToRender","maxBufferHeight","listHeight","dynamicHeight","autoHeight","handleScrollBound","handleResizeBound","$panelEl","$popupEl","setListSize","autoHeightRerender","heights","itemHeight","heightsCalculated","renderedItems","itemIndex","renderedItem","forceScrollTop","fromIndex","toIndex","heightBeforeFirstItem","heightBeforeLastItem","itemTop","topPosition","renderExternalItems","itemEl","currentFromIndex","currentToIndex","emptyTemplate","filterItems","indexes","resetScrollTop","resetFilter","scrollToItem","listTop","getClientRects","appendItems","appendItem","replaceAllItems","replaceItem","prependItems","newCache","prependItem","cachedIndex","leftIndex","rightIndex","indexShift","insertItemBefore","deleteItems","prevIndex","deletedItem","deleteAllItems","clearCache","deleteCache","ListIndex","listEl","iosItemHeight","mdItemHeight","scrollList","itemContent","renderSkipPlaceholder","$listEl","f7ListIndex","skipRate","calcSize","$clickedLi","scrollListToIndex","topPoint","bottomPoint","$labelEl","previousIndex","$children","ulHeight","bubbleBottom","$scrollToEl","parentTop","scrollToElTop","navbarInnerEl","wasSkipped","itemHtml","maxItems","calcIndexes","elContent","listIndex","listIndexEl","tabBeforeRemove","Tab","tabLinkEl","animatedInit","f7TabRoute","newTabEl","$tabLinkEl","$tabsEl","tabsChangedCallbacks","tabsChanged","tabsTranslate","swiper","newTabIndex","slides","slideTo","tabLinkElement","$oldTabLinkEl","oldTabId","hasHighlight","oldTabEl","onInit","pageOrTabEl","animatedTabEl","tabLinkClick","swipePanel","swipeInitialized","swipeable","otherPanel","isGestureStarted","isInterrupted","backdropOpacity","panelWidth","touchMoves","swipe","swipeOnlyClose","otherPanelOpened","swipeActiveArea","getViewEl","preventSwipePanel","threshold","swipeThreshold","insertToRoot","noFollowProgress","swipeNoFollow","viewTranslate","stateChanged","isGesture","removePanelInClass","setStateClasses","visibility","handleGestureStart","handleGestureEnd","resizablePanel","panelMinWidth","panelMaxWidth","visibleByBreakpoint","isPushingPanel","newPanelWidth","Panel","f7Panel","panelInView","enableVisibleBreakpoint","visibleBreakpointDisabled","setVisibleBreakpoint","disableVisibleBreakpoint","toggleVisibleBreakpoint","emitEvents","visibleBreakpointResizeHandler","visibleBreakpoint","wasVisible","allowPanelOpen","enableCollapsedBreakpoint","collapsedBreakpointDisabled","setCollapsedBreakpoint","disableCollapsedBreakpoint","toggleCollapsedBreakpoint","collapsedBreakpointResizeHandler","collapsedBreakpoint","collapsed","enableResizable","disableResizable","enableSwipe","disableSwipe","modifyHtmlClasses","_openTransitionStarted","shouldHideBackdrop","$panelParentEl","otherOpenedPanel","transitionEndTarget","panelTransitionStart","panelTransitionEnd","panelEl","CardExpandable","cardEl","$cardEl","cardParams","card","hideNavbarOnOpen","hideToolbarOnOpen","currTransform","hasTransform","$cardContentEl","$cardSizeEl","cardWidth","cardHeight","pageWidth","maxHeight","statusbarHeight","hideStatusbarOnOpen","scaleX","scaleY","cardLeftOffset","cardTopOffset","transformValues","cardRightOffset","cardBottomOffset","translateX","translateY","f7KeepNavbarOnClose","f7KeepToolbarOnClose","cardScrollTop","touchEndX","touchEndY","isV","isH","$cardScrollableEl","onTouchStart","scrollableEl","onTouchMove","onTouchEnd","detachEventHandlers","animateWidth","closeCard","toggleExpandableCard","onBackdropClick","$openedCardEl","FormData","form","formId","$formEl","removeItem","FormStorage","formEl","initialData","getFormData","fillFromData","convertToData","storeFormData","formToData","skipTypes","skipNames","inputEl","$inputEl","checked","formFromData","formData","selectEl","checkboxEl","radioEl","initAjaxForm","onSubmitChange","fromData","contentType","headers","response","removeFormData","storage","Input","ignoreTypes","createTextareaResizableShadow","$shadowEl","readonly","textareaResizableShadow","resizeTextarea","textareaEl","$textareaEl","styleValue","currentHeight","clientHeight","initialHeight","$itemInputEl","$inputWrapEl","unsetReadonly","f7ValidateReadonly","readOnly","setReadonly","validity","validationMessage","errorMessage","valid","$errorEl","validateInputs","validates","checkEmptyState","isContentEditable","hasAttribute","scrollIntoView","centered","$scrollableEl","contentHeight","contentScrollTop","contentPaddingTop","contentPaddingBottom","contentOffsetTop","inputOffsetTop","inputHeight","centeredPosition","onFocus","scrollIntoViewOnFocus","scrollIntoViewDuration","scrollIntoViewCentered","scrollIntoViewAlways","onBlur","onChange","onInvalid","clearInput","$clicked","previousValue","itemInputEl","onPanelOpen","Toggle","f7Toggle","toggleWidth","touchStartChecked","changed","handleInputChange","toggleEl","Range","range","dual","step","draggableBar","vertical","verticalReversed","formatLabel","scaleSteps","scaleSubSteps","formatScaleLabel","limitKnobPosition","f7Range","valueLeft","valueRight","$barEl","$barActiveEl","knobHTML","knobs","$knobEl","labels","$scaleEl","renderScale","rangeOffset","rangeOffsetLeft","rangeOffsetTop","$touchedKnobEl","dualValueIndex","valueChangedByTouch","targetTouchIdentifier","onTouchChange","identifier","rangeHeight","rangeWidth","newValue","setValue","leftValue","rightValue","touchEnded","changedTouches","layout","parentModals","parentPanel","parentPage","knobHeight","knobWidth","knobSize","rangeSize","positionProperty","knobIndex","startPos","realStartPos","byTouchMove","valueChanged","oldValue","newValues","valueIndex","getValue","labelEl","scaleEl","scaleStepValue","scaleValue","subStepEl","subIndex","subStep","scaleSubValue","subProgress","updateScale","rangeEl","Stepper","stepper","valueEl","formatValue","watchInput","autorepeat","autorepeatDynamic","wraps","manualInputMode","decimalPoint","buttonsEndInputMode","f7Stepper","$valueEl","$buttonPlusEl","$buttonMinusEl","buttonPlusEl","buttonMinusEl","typeModeChanged","preventButtonClick","intervalId","autorepeatAction","autorepeatInAction","manualInput","dynamicRepeat","progressions","startsIn","progressionStep","repeatEvery","clearInterval","setInterval","onMinusClick","endTypeMode","decrement","onPlusClick","increment","onInputClick","selectionStart","selectionEnd","onInputKey","onInputBlur","onInput","typeValue","sentByF7Stepper","minus","plus","forceUpdate","withWraps","formattedValue","noBlur","inputTxt","lastIndexOf","powVal","toFixed","stepperEl","defaultDiacriticsRemovalap","letters","diacriticsMap","removeDiacritics","SmartSelect","ss","smartSelect","f7SmartSelect","$selectEl","setValueText","inputType","selectId","inputName","selectName","maxLength","optionEl","optionText","displayAs","checkMaxLength","optEl","formatValueTextContent","closeOnSelect","attachInputsEvents","detachInputsEvents","unsetValue","valueFormatted","formatValueText","textValue","valueArray","$optionEl","getItemsData","previousGroupEl","optionData","optionImage","optionIcon","optionIconIos","optionIconMd","optionInputIconPosition","inputIconPosition","optionHasMedia","optionColor","optionClassName","optionClass","optionGroupEl","optionGroupLabel","optionIsLabel","groupLabel","isLabel","groupEl","image","iconIos","iconMd","hasMedia","checkbox","radio","renderSearchbar","spellcheck","searchbarSpellcheck","placeholder","searchbarPlaceholder","searchbarDisableButton","searchbarDisableText","getIconContent","iconValue","getIconClass","ssValue","hasIcon","iconContent","iconClass","_checked","renderItems","itemsHtml","renderPage","pageTitle","$itemTitleEl","navbarColorTheme","pageBackLinkText","searchbar","formColorTheme","renderPopup","popupTabletFullscreen","popupCloseLinkText","renderSheet","toolbarColorTheme","sheetCloseLinkText","scrollToSelectedItem","selectedIndex","$selectedItemEl","openedIn","virtualListHeight","$searchbarEl","appendSearchbarNotFound","$notFoundEl","searchbarParams","searchContainer","searchIn","openPage","pageHtml","pageBeforeOut","pageAfterOut","popupHtml","popupParams","popupPush","popupSwipeToClose","popupOpen","popupOpened","popupClose","popupClosed","routableModals","sheetHtml","sheetParams","sheetBackdrop","sheetPush","sheetSwipeToClose","sheetOpen","sheetOpened","sheetClose","sheetClosed","popoverParams","popoverOpen","popoverOpened","popoverClose","popoverClosed","smartSelectEl","Calendar","calendar","isHorizontal","inline","allowTouchMove","hasTimePicker","timePicker","rangePicker","dayFormatter","date","formatter","Intl","DateTimeFormat","locale","day","format","monthFormatter","month","yearFormatter","year","timeSelectorFormatter","timePickerFormat","timeFormatCheckDate","is12HoursFormat","monthNames","monthNamesShort","dayNames","dayNamesShort","monthNamesIntl","monthNamesShortIntl","dayNamesIntl","dayNamesShortIntl","getIntlNames","onInputFocus","onInputClear","onHtmlClick","isPopover","closing","monthPickerPopover","yearPickerPopover","timePickerPopover","attachInputEvents","inputReadOnly","detachInputEvents","attachHtmlEvents","detachHtmlEvents","attachCalendarEvents","allowItemClick","touchEndTime","wrapperWidth","wrapperHeight","$wrapperEl","monthsTranslate","resetMonth","nextMonth","prevMonth","handleDayClick","$dayEl","dateYear","dateMonth","dateDay","valueToAdd","setHours","getHours","getMinutes","addValue","onNextMonthClick","onPrevMonthClick","onNextYearClick","nextYear","onPrevYearClick","prevYear","onMonthSelectorClick","openMonthPicker","onYearSelectorClick","openYearPicker","onTimeSelectorClick","openTimePicker","monthPicker","yearPicker","touchMove","detachCalendarEvents","formatterMonthNames","formatterMonthNamesShort","formatterDayNames","weekday","formatterDayNamesShort","yearStarted","yearEnded","setMonth","currentYear","weekDay","getDay","normalizeDate","getFullYear","getMonth","getDate","normalizeValues","initInput","formatDate","month1","dateFormat","twoDigits","number","yyyy","yy","mm","MM","dd","DD","D","hours","minutes","seconds","getSeconds","hours12","HH","H","hh","A","regexp","rangePickerMinDays","rangePickerMaxDays","inValuesIndex","updateValue","equal","onlyHeader","valueDate","leftDate","rightDate","timePickerPlaceholder","header","updateCurrentMonthYear","dir","$months","currentLocaleMonth","currentLocaleYear","currentMonth","currentDate","prevMonthHtml","renderMonth","currentMonthHtml","nextMonthHtml","setMonthsTranslate","monthEl","onMonthChangeStart","currentIndex","onMonthChangeEnd","rebuildBoth","prevMonthTranslate","currentMonthTranslate","nextMonthTranslate","nextDate","nextDateTime","transitionEndCallback","maxDate","prevDate","prevDateTime","minDate","setYearMonth","targetDate","newMonthHTML","monthTranslate","wrapperTranslate","dateInRange","dayDate","daysInMonth","renderMonths","localeMonth","localeYear","currentValues","today","rows","daysInPrevMonth","minDayNumber","firstDay","monthHtml","dayIndex","hasEvents","firstDayOfMonthIndex","rowHtml","col","dayNumber","weekDayIndex","weekendDays","eventsHtml","eventDots","rangesClasses","dayYear","dayMonth","dayNumberDisplay","renderWeekHeader","weekDaysHtml","dayName","renderMonthSelector","renderYearSelector","renderTimeSelector","timeString","timePickerLabel","renderHeader","headerPlaceholder","renderFooter","toolbarCloseText","renderToolbar","monthSelector","yearSelector","renderInline","footer","weekHeader","renderCustomModal","closeMonthPicker","monthPickerInstance","displayValues","picker","monthPickerToolbar","rotateEffect","monthPickerCloseText","localeMonthIndex","monthIndex","diffIndex","closeYearPicker","yearPickerInstance","yearMin","yearPickerMin","yearMax","yearPickerMax","years","yearPickerToolbar","yearPickerCloseText","hoursArr","minutesArr","hoursMin","hoursMax","closeTimePicker","timePickerInstance","timePickerToolbar","timePickerCloseText","divider","timePickerValue","period","opening","required","f7Calendar","scrollToInput","hour","minute","pickerColumn","colEl","updateItems","$colEl","colIndex","$itemsEl","colHeight","replaceValues","replaceColValues","renderColumn","calcColSize","hadPadding","setColValue","valueCallbacks","newActiveIndex","newScrollTop","updateColItems","previousActiveIndex","selectedItem","$itemEl","itemOffset","itemsFit","displayValue","attachColEvents","detachColEvents","initCol","freeMode","destroyCol","Picker","needsOriginFix","resizeCols","htmlTouchStartTarget","onHtmlTouchStart","attachResizeEvent","detachResizeEvent","forceValues","newDisplayValue","column","noDividerColumns","initColumn","destroyColumn","onlyItems","colClasses","textAlign","columnHtml","columnItemsHtml","inlineHtml","f7Picker","InfiniteScroll","virtualListContainer","onTop","scrollHandler","infiniteScroll","f7InfiniteScrollHandler","$isEls","PullToRefresh","ptr","$preloaderEl","bottom","isMaterial","isIos","$transitionTarget","onTranstionEnd","refresh","mousewheel","touchId","useTranslate","forceUseTranslate","wasScrolled","triggerDistance","dynamicTriggerDistance","pullStarted","hasNavbar","maxScrollTop","pageNavbarEl","$pageNavbarEl","isTransparent","setPreloaderProgress","$bars","perBarProgress","barEl","barIndex","barProgress","unsetPreloaderProgress","targetIsScrollable","$ptrWatchScrollable","ptrScrollableEl","ptrStarted","mousewheelTimeout","mousewheelMoved","mousewheelAllow","mousewheelTranslate","handleMouseWheelRelease","handleMouseWheel","deltaX","deltaY","f7PullToRefresh","$ptrEls","DataTable","table","f7DataTable","collapsible","$headerEl","$headerSelectedEl","handleChange","sentByF7DataTable","columnIndex","checkedRows","totalRows","$headCheckboxEl","checkSelectedHeader","handleSortableClick","$cellEl","isActive","currentSort","newSort","setCollapsibleLabels","elIndex","collapsibleTitle","checkedItems","dataTable","tableEl","Fab","morphOpen","fabEl","$fabEl","borderRadius","zIndex","fab","f7FabMorphData","diffX","diffY","f7FabMorphResizeHandler","resizeHandler","diffXNew","diffYNew","scaleXNew","scaleYNew","morphClose","morphData","$buttonsEl","Searchbar","FrameworkClass","sb","inputEvents","disableButton","disableButtonEl","searchItem","searchGroup","searchGroupTitle","ignore","foundEl","notFoundEl","hideOnEnableEl","hideOnSearchEl","customSearch","hideGroupTitles","hideGroups","disableOnBackdropClick","expandable","f7Searchbar","$foundEl","$hideOnEnableEl","$hideOnSearchEl","$searchContainer","$disableButtonEl","disableButtonHasMargin","previousQuery","isVirtualList","preventSubmit","onInputChange","disableOnClick","onPageBeforeOut","onPageBeforeIn","setDisableButtonMargin","setFocus","backdropShow","needsFocus","titleLargeHeight","backdropHide","internal","foundItems","vlQuery","compareWithText","$searchIn","searchInEl","itemText","wordsMatch","titleEl","$nextElements","$nextEl","$groupEl","notHidden","searchbarEl","Messages","autoLayout","messages","newMessagesFirst","scrollMessages","scrollMessagesOnEdge","firstMessageRule","lastMessageRule","tailMessageRule","sameNameMessageRule","sameHeaderMessageRule","sameFooterMessageRule","sameAvatarMessageRule","customClassMessageRule","renderMessage","f7Messages","getMessageData","messageEl","$messageEl","textHeader","textFooter","imageSrc","typing","avatar","getMessagesData","messageToRender","_extends","isTyping","renderMessages","messagesToRender","isFirstMessage","isLastMessage","isTailMessage","isSameNameMessage","isSameHeaderMessage","isSameFooterMessage","isSameAvatarMessage","isCustomClassMessage","previousMessage","nextMessage","customMessageClasses","customClass","removeMessage","messageToRemove","removeMessages","messagesToRemove","messagesToRemoveEls","messageToRemoveIndex","addMessage","messageToAdd","addMessages","setScrollData","scrollHeightBefore","heightBefore","scrollBefore","scrollData","messagesToAdd","messagesHTML","typingMessage","$messagesEls","scrollWithEdgeCheck","showTyping","hideTyping","typingMessageIndex","typingFound","$typingMessageEl","onEdge","currentScroll","messagesEl","Messagebar","messagebar","topOffset","bottomOffset","attachments","renderAttachments","renderAttachment","resizePage","f7Messagebar","$areaEl","$attachmentsEl","$sheetEl","areaEl","attachmentsEl","attachmentsVisible","sheetEl","sheetVisible","onAppResize","onSubmit","onAttachmentClick","onTextareaChange","onTextareaFocus","sheetHide","onTextareaBlur","setPlaceholder","elHeight","currentPaddingBottom","requiredPaddingBottom","currentPaddingTop","pageOffsetHeight","pageScrollTop","scrollOnBottom","attachmentsCreate","attachmentsShow","attachmentsHide","attachmentsToggle","attachment","sheetCreate","sheetShow","sheetToggle","messagebarEl","currentStyle","isNode","HTMLElement","noExtend","__swiper__","setCSSProperty","animateCSSModeScroll","targetPosition","startPosition","speed","wrapperEl","scrollSnapType","cssModeFrameID","isOutOfBound","currentPosition","getSlideTransformEl","slideEl","shadowRoot","elementChildren","elementOffset","elementPrevAll","elementNextAll","elementStyle","elementIndex","elementParents","parentElement","elementTransitionEnd","elementOuterSize","smoothScroll","documentElement","deviceCached","browser","calcBrowser","needPerspectiveFix","isSafari","major","minor","isWebView","getBrowser","Resize","observer","animationFrame","createObserver","ResizeObserver","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","observe","removeObserver","unobserve","orientationChangeHandler","resizeObserver","Observer","extendParams","observers","attach","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","__preventObserver__","observerUpdate","childList","characterData","observeParents","containerParents","hostEl","observeSlideChildren","disconnect","eventsEmitter","__emitterProxy","onAny","eventsAnyListeners","offAny","updateSize","clientWidth","isVertical","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","slidesEl","swiperSize","rtlTranslate","wrongRTL","isVirtual","virtual","previousSlidesLength","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","initSlides","slideSize","shouldResetSlideSize","slidesPerView","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","boxSizing","swiperSlideSize","slidesPerGroup","slidesPerGroupSkip","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","loop","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","minusOffset","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","originalProgress","updateProgress","multiplier","translatesDiff","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","updateSlidesClasses","getFilteredSlide","slideActiveClass","slideNextClass","slidePrevClass","activeSlide","nextSlide","prevSlide","emitSlidesClasses","processLazyPreloader","imageEl","slideSelector","lazyEl","lazyPreloaderClass","unlazy","lazyPreloadPrevNext","slidesPerViewDynamic","activeColumn","preloadColumns","slideIndexLastInView","rewind","realIndex","getActiveIndexByTranslate","normalizeSlideIndex","updateActiveIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getSwiperTranslate","virtualTranslate","setTranslate","byController","previousTranslate","newProgress","translateTo","runCallbacks","translateBounds","preventInteractionOnTransition","behavior","onTranslateToWrapperTransitionEnd","transitionDelay","transitionEmit","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","indexAsNumber","newIndex","slideNext","perGroup","slidesPerGroupAuto","loopPreventsSliding","loopFix","slidePrev","normalize","normalizedSnapGrid","prevSnap","prevSnapIndex","lastIndex","slideReset","slideToClosest","currentSnap","nextSnap","slideToIndex","loopedSlides","getSlideIndex","loopCreate","slideRealIndex","activeSlideIndex","byMousewheel","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","swiperLoopMoveDOM","recalcSlides","currentSlideTranslate","newSlideTranslate","touchEventsData","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","setGrabCursor","moving","simulateTouch","isLocked","touchEventsTarget","cursor","unsetGrabCursor","grabCursor","closestElement","__closestFrom","assignedSlot","getRootNode","evCache","pointerType","originalEvent","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","allowClick","currentX","currentY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","startMoving","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","touchStartPreventDefault","touchStartForcePreventDefault","pointerIndex","findIndex","cachedEv","pointerId","targetTouch","preventedByNestedSwiper","prevX","prevY","touchReleaseOnEdges","touchAngle","zoom","touchMoveStopPropagation","nested","previousX","previousY","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowMomentumBounce","loopFixed","disableParentSwiper","resistanceRatio","resistance","followFinger","proceed","pathTree","lastClickTime","currentPos","stopIndex","rewindFirstIndex","rewindLastIndex","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","prevEl","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","preventClicks","preventClicksPropagation","onScroll","onLoad","dummyEventAttached","dummyEventListener","domMethod","swiperMethod","updateOnWindowResize","events$1","isGridEnabled","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","changeDirection","isEnabled","points","point","minRatio","prepareClasses","resultClasses","addClasses","suffixes","removeClasses","wasLocked","lastSlideRightEdge","checkOverflow$1","createElements","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","auto","prototypes","extendedDefaults","Swiper","swipers","newParams","__modules__","swiperParams","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","cls","getSlideClasses","updates","exact","spv","breakLoop","slideInView","translateValue","translated","newDirection","needUpdate","currentDirection","changeLanguageDirection","mounted","getWrapperSelector","getWrapper","slideSlots","lazyElements","deleteInstance","cleanStyles","extendDefaults","newDefaults","prototypeGroup","protoMethod","Virtual","renderSlide","renderExternalUpdate","addSlidesBefore","addSlidesAfter","cssModeTimeout","tempDOM","previousFrom","previousTo","previousSlidesGrid","previousOffset","offsetProp","onRendered","getSlides","slidesToRender","prependIndexes","appendIndexes","loopFrom","loopTo","appendSlide","prependSlide","numberOfNewSlides","cachedEl","cachedElIndex","removeSlide","slidesIndexes","removeAllSlides","domSlidesAssigned","keyboard","onlyInViewport","pageUpDown","kc","charCode","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","Mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","noMousewheelClass","timeout","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","raw","releaseScroll","targetElContainsTarget","rtlFactor","positions","sign","prevEvent","ignoreWheelEvents","sticky","firstEvent","snapToThreshold","autoplayDisableOnInteraction","createElementIfNotDefined","checkProps","Navigation","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","getEl","onPrevClick","onNextClick","initButton","destroyButton","_s","pagination","clickable","classesToSelector","Pagination","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","verticalClass","paginationDisabledClass","bullets","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","onBulletClick","newSlideIndex","currentSlideIndex","indexBeforeLoopFix","indexAfterFix","total","firstIndex","midIndex","classesToRemove","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","subElIndex","fractionEl","totalEl","progressbarDirection","progressEl","paginationHTML","numberOfBullets","Scrollbar","dragTimeout","dragStartPos","dragSize","trackSize","scrollbar","draggable","snapOnRelease","dragClass","scrollbarDisabledClass","dragEl","newSize","newPos","getPointerPosition","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","eventMethod","enableDraggable","disableDraggable","swiperEl","Parallax","parallax","elementsSelector","setTransform","rotate","currentOpacity","currentScale","currentRotate","parallaxEl","parallaxDuration","_swiper","Zoom","maxRatio","containerClass","zoomedSlideClass","isScaling","fakeGestureTouched","fakeGestureMoved","gesture","originX","originY","slideWidth","slideHeight","imageWrapEl","minX","minY","maxX","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","getDistanceBetweenTouches","x1","x2","getScaleOrigin","getSlideSelector","eventWithinSlide","eventWithinZoomContainer","onGestureStart","scaleStart","onGestureChange","scaleMove","onGestureEnd","scaledWidth","scaledHeight","scaleRatio","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","onTransitionEnd","zoomIn","touchAction","touchX","touchY","offsetX","offsetY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","forceZoomRatio","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","in","Controller","inverse","by","LinearSpline","binarySearch","maxIndex","minIndex","guess","i1","i3","interpolate","getInterpolateFunction","spline","_t","controlled","controlledTranslate","setControlledTranslate","isFinite","setControlledTransition","removeSpline","controlElement","onControllerSwiper","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","clicked","liveRegion","notify","notification","getRandomNumber","randomChar","makeElFocusable","makeElNotFocusable","addElRole","addElRoleDescription","description","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","updateNavigation","hasPagination","hasClickablePagination","updatePagination","initNavEl","wrapperId","handlePointerDown","handlePointerUp","handleFocus","sourceCapabilities","firesTouchEvents","ariaLabelMessage","paginationEl","keepQuery","slugify","getPathValues","urlOverride","pathArray","setHistory","currentState","scrollToSlide","slideHistory","setHistoryPopState","hashNavigation","HashNavigation","watchState","slideWithHash","onHashChange","newHash","activeSlideEl","activeSlideHash","setHash","Autoplay","timeLeft","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayDelayTotal","autoplayDelayCurrent","autoplayTimeLeft","autoplayStartTime","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","calcTimeLeft","getSlideDelay","currentSlideDelay","run","delayForce","pause","onVisibilityChange","visibilityState","onPointerEnter","onPointerLeave","attachMouseEvents","detachMouseEvents","attachDocumentEvents","detachDocumentEvents","Thumb","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","currentThumbsIndex","newThumbsIndex","newThumbsSlide","getThumbsElementAndInit","thumbsElement","onThumbsSwiper","watchForThumbsToAppear","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","lastMoveEvent","velocityEvent","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","needsLoopFix","moveDistance","currentSlideSize","Grid","slidesNumberEvenToRows","slidesPerRow","numFullColumns","getSpaceBetween","newSlideOrderIndex","slideIndexInGroup","columnsInGroup","order","appendElement","prependElement","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","indexToRemove","Manipulation","effectInit","overwriteParams","perspective","recreateShadows","getEffectParams","overwriteParamsResult","slideShadows","shadowEl","requireUpdateOnVirtual","effectTarget","effectParams","transformEl","backfaceVisibility","effectVirtualTransitionEnd","transformElements","allSlides","getSlide","eventTriggered","EffectFade","fadeEffect","crossFade","tx","ty","slideOpacity","EffectCube","cubeEffect","shadowOffset","shadowScale","createSlideShadows","shadowBefore","shadowAfter","wrapperRotate","cubeShadowEl","slideAngle","tz","shadowAngle","scale1","scale2","zFactor","createShadow","shadowClass","shadowContainer","EffectFlip","flipEffect","limitRotation","rotateY","rotateX","EffectCoverflow","coverflowEffect","stretch","depth","centerOffset","offsetMultiplier","translateZ","slideTransform","shadowBeforeEl","shadowAfterEl","EffectCreative","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","getTranslateValue","isCenteredSlides","margin","custom","translateString","rotateString","scaleString","opacityString","shadowOpacity","EffectCards","cardsEffect","perSlideRotate","perSlideOffset","tX","tY","tZ","tXAdd","isSwipeToNext","isSwipeToPrev","paramsList","needsNavigation","needsPagination","needsScrollbar","uniqueClasses","unique","attrToProp","updateSwiper","changedParams","scrollbarEl","updateParams","currentParams","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","destroyModule","nextButtonSvg","prevButtonSvg","modulesParamsList","getParams","propValue","localParamsList","allowedParams","attrsList","moduleParam","mParam","parentObjName","subObjName","SwiperCSS","SwiperSlideCSS","DummyHTMLElement","ClassToExtend","arrowSvg","addStyle","CSSStyleSheet","adoptedStyleSheets","styleSheet","replaceSync","rel","SwiperContainer","attachShadow","cssStyles","injectStyles","cssLinks","injectStylesUrls","calcSlideSlots","currentSideSlots","slideSlotChildren","rendered","slotEl","localStyles","linkExists","linkEl","initialize","eventsPrefix","connectedCallback","disconnectedCallback","updateSwiperOnPropChange","attributeChangedCallback","prevValue","observedAttributes","SwiperSlide","lazy","lazyDiv","customElements","define","SwiperElementRegisterParams","initSwiper","$swiperEl","isTabs","isRoutableTabs","f7SwiperParams","tabRouteUrl","pageMounted","PhotoBrowser","photoBrowser","exposed","started","timeStart","onSlideChange","virtualSlides","photos","$activeSlideEl","$previousSlideEl","$totalEl","captions","captionIndex","$captionsContainerEl","previousSlideVideo","renderNavbar","iconsColor","renderNavbarCount","navbarShowCount","isPopup","navbarOfText","popupCloseLinkIcon","xmlns","viewBox","renderThumbs","thumb","renderThumb","renderCaption","caption","renderObject","photo","renderLazyPhoto","loading","renderPhoto","captionsTheme","renderStandalone","standaloneHtml","f7PhotoBrowser","$swiperContainerEl","$swiperWrapperEl","hasThumbs","preventThumbsSlide","preventMainSlide","exposition","expositionToggle","doubleClick","slideChange","slideChangeTransitionStart","slideChangeTransitionEnd","touchStart","touchMoveOpposite","touchEnd","openStandalone","expositionEnable","expositionHideCaptions","expositionDisable","Notification","titleRightText","subtitle","closeOnClick","notificationHtml","notificationHeight","attachTouchEvents","detachTouchEvents","closeOnTimeout","notificationInstance","Autocomplete","autocomplete","$openerEl","openerEl","f7Autocomplete","uniqueId","$dropdownEl","itemsHTML","limit","highlightMatches","firstValue","firstItem","itemValue","valueProperty","textProperty","dropdownPlaceholderText","typeahead","setSelectionRange","onPageInputChange","isValues","aValue","updateValues","onOpenerClick","positionDropdown","$selectedItemLabel","$selectedItem","$newItem","onDropdownClick","clickedItem","updateInputValueOnSelect","attachDropdownEvents","detachDropdownEvents","attachPageEvents","detachPageEvents","inputOffset","inputOffsetWidth","inputOffsetHeight","$listParent","parentEl","listOffset","listOffsetLeft","inputOffsetLeft","paddingProp","paddingValue","valuesHTML","preloaderHide","preloaderShow","renderPreloader","preloaderColor","inPopup","navbarLeft","navbarRight","renderDropdown","notFoundText","requestSourceOnOpen","openDropdown","dropdownContainerEl","autocompleteEl","Tooltip","tooltip","delegated","f7Tooltip","handleClickOut","handleTransitionEnd","setTargetEl","hasContainerEl","tooltipOffset","boundaries","clientRect","aroundEl","$aroundEl","Gauge","gauge","f7Gauge","calcRadius","borderWidth","calcBorderLength","radius","bgColor","borderBgColor","borderColor","valueText","valueTextColor","valueFontSize","valueFontWeight","labelText","labelTextColor","labelFontSize","labelFontWeight","semiCircle","stroke","cx","cy","dy","$svgEl","svgAttrs","backAttrs","frontAttrs","textAttrs","labelAttrs","svgEl","sliderLabel","sliderValue","sliderValueEditable","alphaLabelText","alphaRangeSlider","destroyAlphaSliderEvents","hexLabel","hexLabelText","hexValueEditable","destroyHexEvents","hueLabelText","saturationLabelText","brightnessLabelText","hueRangeSlider","saturationRangeSlider","hsb","brightnessRangeSlider","destroyHsbSlidersEvents","hslCurrent","hslLeft","hslRight","brightness","handlePaletteClick","destroyPaletteEvents","handleInitialColorClick","destroyInitialCurrentEvents","barLabel","barValue","barValueEditable","redLabelText","greenLabelText","blueLabelText","redBar","greenBar","blueBar","destroyRgbBarsEvents","redRangeSlider","greenRangeSlider","blueRangeSlider","destroyRgbSlidersEvents","specterRect","specterIsTouched","specterHandleIsTouched","setSBFromSpecterCoords","destroySpectrumEvents","specterWidth","specterHeight","setHSFromSpecterCoords","hslBright","svgWheelCircles","circles","wheelRect","wheelIsTouched","wheelHandleIsTouched","setHueFromWheelCoords","wheelCenterX","wheelCenterY","angleRad","angleDeg","wheel","destroyWheelEvents","wheelSize","wheelHalfSize","handleSize","handleHalfSize","ColorPicker","colorPicker","moduleAlphaSlider","moduleCurrentColor","moduleHex","moduleHsbSliders","moduleHueSlider","moduleBrightnessSlider","modulePalette","moduleInitialCurrentColors","moduleRgbBars","moduleRgbSliders","moduleSbSpectrum","moduleHsSpectrum","moduleWheel","onTargetClick","$clickTargetEl","attachTargetEvents","detachTargetEvents","centerModules","getModalType","openInPhone","normalizeHsValues","updateModules","hsla","needChangeEvent","subV","fireEvents","targetElSetBackgroundColor","renderPicker","navbarTitleText","navbarBackLinkText","navbarCloseText","groupedModules","toolbarSheet","toolbarPopover","navbarPopup","f7ColorPicker","colorPickerContent","sliderValueEdiable","barValueEdiable","Treeview","f7TreeviewChildrenLoaded","wasOpened","treeview","$treeviewItemEl","textEditorButtonsMap","bold","italic","underline","strikeThrough","orderedList","unorderedList","link","paragraph","h1","h2","h3","alignLeft","alignCenter","alignRight","alignJustify","subscript","superscript","indent","outdent","TextEditor","textEditor","f7TextEditor","onButtonClick","onPaste","onSelectionChange","closeKeyboardToolbar","$keyboardToolbarEl","clearValue","insertPlaceholder","createLink","currentSelection","getSelection","selectedNodes","$selectedLinks","anchorNode","focusNode","selectedNodesLinks","$selectedNodes","linkNode","selection","createRange","selectNodeContents","removeAllRanges","addRange","execCommand","currentRange","getSelectionRange","linkUrlText","insertImage","imageUrlText","imageUrl","removePlaceholder","selectionIsInContent","openKeyboardToolbar","selectionIsInPopover","isCollapsed","rangeCount","getRangeAt","rect","clearFormattingOnPaste","clipboardData","inPopover","buttonData","customButtons","command","$anchorNode","select","renderButtons","renderButton","dividers","createToolbar","createKeyboardToolbar","createPopover","popoverTimeout","editorEl","PieChart","pieChart","f7PieChart","showTooltip","hideTooltip","getSummValue","datasets","summ","getPaths","cumulativePercentage","getCoordinatesForPercentage","endX","endY","largeArcFlag","formatTooltipText","formatTooltip","tooltipText","setTooltip","setCurrentIndex","AreaChart","areaChart","f7AreaChart","hiddenDatasets","linesOffsets","onMouseEnter","onMouseMove","onMouseLeave","onLegendClick","getVisibleLabels","maxAxisLabels","axisLabels","skipStep","filtered","getSummValues","summValues","getChartData","lineChart","lastValues","maxValue","datasetMaxValue","originalValue","reverse","getVerticalLines","lines","toggleDataset","toggleDatasets","$legendEl","formatAxisLabel","formatLegendLabel","calcLinesOffsets","formatTooltipTotal","formatTooltipAxisLabel","formatTooltipDataset","totalText","datasetsText","hasVisibleDataSets","distances","minDistance","legend","chartData","verticalLines","visibleLegends","LegendItemTag","preserveAspectRatio","line","_type","onlySvg","$axisEl","$rendered","Breadcrumbs","breadrumbs","RouterComponentLoaderModule","DeviceModule","SupportModule","UtilsModule","ResizeModule","TouchModule","ClicksModule","RouterModule","HistoryModule","ComponentModule","ServiceWorkerModule","StoreModule","Subnavbar","Typography"],"mappings":"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BAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,i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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","x_google_ignoreList":[0,1,20,38,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169]}