/** * Framework7 7.1.4 * Full featured mobile HTML framework for building iOS & Android apps * https://framework7.io/ * * Copyright 2014-2023 Vladimir Kharlampidi * * Released under the MIT License * * Released on: February 2, 2023 */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Framework7=t()}(this,(function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(a,r){void 0===a&&(a={}),void 0===r&&(r={}),Object.keys(r).forEach((s=>{void 0===a[s]?a[s]=r[s]:e(r[s])&&e(a[s])&&Object.keys(r[s]).length>0&&t(a[s],r[s])}))}const a={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function r(){const e="undefined"!=typeof document?document:{};return t(e,a),e}const s={document:a,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function o(){const e="undefined"!=typeof window?window:{};return t(e,s),e}class n extends Array{constructor(e){"number"==typeof e?super(e):(super(...e||[]),function(e){const t=e.__proto__;Object.defineProperty(e,"__proto__",{get:()=>t,set(e){t.__proto__=e}})}(this))}}function i(e){void 0===e&&(e=[]);const t=[];return e.forEach((e=>{Array.isArray(e)?t.push(...i(e)):t.push(e)})),t}function l(e,t){return Array.prototype.filter.call(e,t)}function c(e,t){const a=o(),s=r();let i=[];if(!t&&e instanceof n)return e;if(!e)return new n(i);if("string"==typeof e){const a=e.trim();if(a.indexOf("<")>=0&&a.indexOf(">")>=0){let e="div";0===a.indexOf("e.split(" "))));return this.forEach((e=>{e.classList.add(...r)})),this}function d(){for(var e=arguments.length,t=new Array(e),a=0;ae.split(" "))));return this.forEach((e=>{e.classList.remove(...r)})),this}function u(){for(var e=arguments.length,t=new Array(e),a=0;ae.split(" "))));this.forEach((e=>{r.forEach((t=>{e.classList.toggle(t)}))}))}function h(){for(var e=arguments.length,t=new Array(e),a=0;ae.split(" "))));return l(this,(e=>r.filter((t=>e.classList.contains(t))).length>0)).length>0}function m(e,t){if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(let a=0;a=0;e-=1){const s=r[e];o&&s.listener===o||o&&s.listener&&s.listener.dom7proxy&&s.listener.dom7proxy===o?(a.removeEventListener(t,s.proxyListener,n),r.splice(e,1)):o||(a.removeEventListener(t,s.proxyListener,n),r.splice(e,1))}}}return this}function y(){const e=o();for(var t=arguments.length,a=new Array(t),r=0;rt>0)),s.dispatchEvent(t),s.dom7EventData=[],delete s.dom7EventData}}}return this}function $(e){const t=this;return e&&t.on("transitionend",(function a(r){r.target===this&&(e.call(this,r),t.off("transitionend",a))})),this}function C(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetWidth+parseFloat(e.getPropertyValue("margin-right"))+parseFloat(e.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null}function E(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetHeight+parseFloat(e.getPropertyValue("margin-top"))+parseFloat(e.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null}function k(){if(this.length>0){const e=o(),t=r(),a=this[0],s=a.getBoundingClientRect(),n=t.body,i=a.clientTop||n.clientTop||0,l=a.clientLeft||n.clientLeft||0,c=a===e?e.scrollY:a.scrollTop,p=a===e?e.scrollX:a.scrollLeft;return{top:s.top+c-i,left:s.left+p-l}}return null}function x(){const e=o();return this[0]?e.getComputedStyle(this[0],null):{}}function T(e,t){const a=o();let r;if(1===arguments.length){if("string"!=typeof e){for(r=0;r{e.apply(t,[t,a])})),this):this}function P(e){return c(l(this,e))}function M(e){if(void 0===e)return this[0]?this[0].innerHTML:null;for(let t=0;tt-1)return c([]);if(e<0){const a=t+e;return c(a<0?[]:[this[a]])}return c([this[e]])}function R(){let e;const t=r();for(let a=0;a=0;s-=1)this[a].insertBefore(r.childNodes[s],this[a].childNodes[0])}else if(e instanceof n)for(s=0;s0?e?this[0].nextElementSibling&&c(this[0].nextElementSibling).is(e)?c([this[0].nextElementSibling]):c([]):this[0].nextElementSibling?c([this[0].nextElementSibling]):c([]):c([])}function z(e){const t=[];let a=this[0];if(!a)return c([]);for(;a.nextElementSibling;){const r=a.nextElementSibling;e?c(r).is(e)&&t.push(r):t.push(r),a=r}return c(t)}function H(e){if(this.length>0){const t=this[0];return e?t.previousElementSibling&&c(t.previousElementSibling).is(e)?c([t.previousElementSibling]):c([]):t.previousElementSibling?c([t.previousElementSibling]):c([])}return c([])}function N(e){const t=[];let a=this[0];if(!a)return c([]);for(;a.previousElementSibling;){const r=a.previousElementSibling;e?c(r).is(e)&&t.push(r):t.push(r),a=r}return c(t)}function V(e){const t=[];for(let a=0;a"swing"===e?.5-Math.cos(t*Math.PI)/2:"function"==typeof e?e(t):t,stop(){s.frameId&&a.cancelAnimationFrame(s.frameId),s.animating=!1,s.elements.each((e=>{delete e.dom7AnimateInstance})),s.que=[]},done(e){if(s.animating=!1,s.elements.each((e=>{delete e.dom7AnimateInstance})),e&&e(r),s.que.length>0){const e=s.que.shift();s.animate(e[0],e[1])}},animate(e,t){if(s.animating)return s.que.push([e,t]),s;const o=[];s.elements.each(((t,r)=>{let n,i,l,c,p;t.dom7AnimateInstance||(s.elements[r].dom7AnimateInstance=s),o[r]={container:t},Object.keys(e).forEach((s=>{n=a.getComputedStyle(t,null).getPropertyValue(s).replace(",","."),i=parseFloat(n),l=n.replace(i,""),c=parseFloat(e[s]),p=e[s]+l,o[r][s]={initialFullValue:n,initialValue:i,unit:l,finalValue:c,finalFullValue:p,currentValue:i}}))}));let n,i,l=null,c=0,p=0,d=!1;return s.animating=!0,s.frameId=a.requestAnimationFrame((function u(){let h,m;n=(new Date).getTime(),d||(d=!0,t.begin&&t.begin(r)),null===l&&(l=n),t.progress&&t.progress(r,Math.max(Math.min((n-l)/t.duration,1),0),l+t.duration-n<0?0:l+t.duration-n,l),o.forEach((a=>{const r=a;i||r.done||Object.keys(e).forEach((a=>{if(i||r.done)return;h=Math.max(Math.min((n-l)/t.duration,1),0),m=s.easingProgress(t.easing,h);const{initialValue:d,finalValue:u,unit:f}=r[a];r[a].currentValue=d+m*(u-d);const g=r[a].currentValue;(u>d&&g>=u||u=0&&(t[(a=s.name.split("data-")[1],a.toLowerCase().replace(/-(.)/g,((e,t)=>t.toUpperCase())))]=s.value)}var a;for(const e in t)"false"===t[e]?t[e]=!1:"true"===t[e]?t[e]=!0:parseFloat(t[e])===1*t[e]&&(t[e]*=1);return t},detach:function(){return this.remove()},each:S,empty:function(){for(let e=0;e0?parseFloat(this.css("height")):null},hide:function(){for(let e=0;e1)for(let a=0;a1)for(let a=0;a0?i[0].scrollLeft:null:i.scrollTo(r,void 0,s,o,n)},scrollTo:function(){const e=o();for(var t=arguments.length,a=new Array(t),r=0;r0||0===n,g=s>0||0===s;if(void 0===l&&(l="swing"),f&&(a=t.scrollTop,i||(t.scrollTop=n)),g&&(r=t.scrollLeft,i||(t.scrollLeft=s)),!i)return;f&&(o=t.scrollHeight-t.offsetHeight,d=Math.max(Math.min(n,o),0)),g&&(p=t.scrollWidth-t.offsetWidth,u=Math.max(Math.min(s,p),0));let v=null;f&&d===a&&(f=!1),g&&u===r&&(g=!1),e.requestAnimationFrame((function s(o){void 0===o&&(o=(new Date).getTime()),null===v&&(v=o);const n=Math.max(Math.min((o-v)/i,1),0),p="linear"===l?n:.5-Math.cos(n*Math.PI)/2;let b;f&&(h=a+p*(d-a)),g&&(m=r+p*(u-r)),f&&d>a&&h>=d&&(t.scrollTop=d,b=!0),f&&dr&&m>=u&&(t.scrollLeft=u,b=!0),g&&u0?i[0].scrollTop:null:i.scrollTo(void 0,r,s,o,n)},show:function(){const e=o();for(let t=0;t=0;else a.value=e}return this},value:function(e){return this.val(e)},width:function(){const e=o();return this[0]===e?e.innerWidth:this.length>0?parseFloat(this.css("width")):null}});Object.keys(ge).forEach((e=>{"$"!==e&&(c.fn[e]=ge[e])}));var ve=c;let be=0;function we(e,t){void 0===e&&(e="xxxxxxxxxx"),void 0===t&&(t="0123456789abcdef");const a=t.length;return e.replace(/x/g,(()=>t[Math.floor(Math.random()*a)]))}const ye='\n \n \n \n \n \n'.trim(),$e=`\n \n ${[0,1,2,3,4,5,6,7].map((()=>'')).join("")}\n \n`.trim(),Ce='\n \n \n \n';function Ee(e){let t;return e.split("").map(((e,a)=>e.match(/[A-Z]/)&&0!==a&&!t?(t=!0,`:${e.toLowerCase()}`):e.toLowerCase())).join("")}function ke(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}function xe(e){return o().requestAnimationFrame(e)}function Te(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function Se(e){return xe((()=>{xe(e)}))}function Pe(){return Date.now()}function Me(e){const t=o(),a={};let r,s,n,i,l=e||t.location.href;if("string"==typeof l&&l.length)for(l=l.indexOf("?")>-1?l.replace(/\S*\?/,""):"",s=l.split("&").filter((e=>""!==e)),i=s.length,r=0;r6&&(s=s.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new a.WebKitCSSMatrix("none"===s?"":s)):(n=i.MozTransform||i.OTransform||i.MsTransform||i.msTransform||i.transform||i.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),r=n.toString().split(",")),"x"===t&&(s=a.WebKitCSSMatrix?n.m41:16===r.length?parseFloat(r[12]):parseFloat(r[4])),"y"===t&&(s=a.WebKitCSSMatrix?n.m42:16===r.length?parseFloat(r[13]):parseFloat(r[5])),s||0}function Ie(e,t){if(void 0===t&&(t=[]),"string"==typeof e)return e;const a=[];let r;function s(e){if(t.length>0){let a="";for(let e=0;e{let i;if(Array.isArray(e[n])){i=[];for(let a=0;a0&&a.push(i.join("&"))}else null===e[n]||""===e[n]?a.push(`${s(n)}=`):"object"==typeof e[n]?(r=t.slice(),r.push(n),i=Ie(e[n],r),""!==i&&a.push(i)):void 0!==e[n]&&""!==e[n]?a.push(`${s(n)}=${o(e[n])}`):""===e[n]&&a.push(s(n))})),a.join("&")}function Be(e){return"object"==typeof e&&null!==e&&e.constructor&&e.constructor===Object}function Le(){for(var e=arguments.length,t=new Array(e),a=0;at+t+a+a+r+r)),a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return a?a.slice(1).map((e=>parseInt(e,16))):null}function De(e,t,a){const r=[e,t,a].map((e=>{const t=e.toString(16);return 1===t.length?`0${t}`:t})).join("");return`#${r}`}function ze(e,t,a){e/=255,t/=255,a/=255;const r=Math.max(e,t,a),s=Math.min(e,t,a),o=r-s;let n;0===o?n=0:r===e?n=(t-a)/o%6:r===t?n=(a-e)/o+2:r===a&&(n=(e-t)/o+4);const i=(s+r)/2;return n<0&&(n=6+n),[60*n,0===o?0:o/(1-Math.abs(2*i-1)),i]}function He(e,t,a){const r=(1-Math.abs(2*a-1))*t,s=e/60,o=r*(1-Math.abs(s%2-1));let n;Number.isNaN(e)||void 0===e?n=[0,0,0]:s<=1?n=[r,o,0]:s<=2?n=[o,r,0]:s<=3?n=[0,r,o]:s<=4?n=[0,o,r]:s<=5?n=[o,0,r]:s<=6&&(n=[r,0,o]);const i=a-r/2;return n.map((e=>Math.max(0,Math.min(255,Math.round(255*(e+i))))))}function Ne(e,t,a){const r={h:e,s:0,l:0},s=t,o=a;return r.l=(2-s)*o/2,r.s=r.l&&r.l<1?s*o/(r.l<.5?2*r.l:2-2*r.l):r.s,[r.h,r.s,r.l]}function Ve(e,t,a){const r={h:e,s:0,b:0},s=a,o=t*(s<.5?s:1-s);return r.b=s+o,r.s=s>0?2*o/r.b:r.s,[r.h,r.s,r.b]}function Fe(e,t){Object.keys(t).forEach((a=>{Be(t[a])&&Object.keys(t[a]).forEach((r=>{"function"==typeof t[a][r]&&(t[a][r]=t[a][r].bind(e))})),e[a]=t[a]}))}function qe(){const e=[];for(var t=arguments.length,a=new Array(t),r=0;r{Array.isArray(t)?e.push(...qe(...t)):e.push(t)})),e}var je=Object.freeze({__proto__:null,uniqueNumber:function(){return be+=1,be},id:we,mdPreloaderContent:ye,iosPreloaderContent:$e,auroraPreloaderContent:Ce,eventNameToColonCase:Ee,deleteProps:ke,requestAnimationFrame:xe,cancelAnimationFrame:function(e){return o().cancelAnimationFrame(e)},nextTick:Te,nextFrame:Se,now:Pe,parseUrlQuery:Me,getTranslate:Oe,serializeObject:Ie,isObject:Be,merge:Le,extend:Re,colorHexToRgb:Ae,colorRgbToHex:De,colorRgbToHsl:ze,colorHslToRgb:He,colorHsbToHsl:Ne,colorHslToHsb:Ve,colorThemeCSSProperties:function(){let e,t;for(var a=arguments.length,r=new Array(a),s=0;s=0,passiveListener:function(){let t=!1;try{const a=Object.defineProperty({},"passive",{get(){t=!0}});e.addEventListener("testPassiveListener",null,a)}catch(e){}return t}(),intersectionObserver:"IntersectionObserver"in e}}()),_e}function Xe(e,t){return void 0===e&&(e={}),Ye&&!t||(Ye=function(e){let{userAgent:t}=void 0===e?{}:e;const a=We(),r=o(),s=r.navigator.platform,n=t||r.navigator.userAgent,i={ios:!1,android:!1,androidChrome:!1,desktop:!1,iphone:!1,ipod:!1,ipad:!1,edge:!1,ie:!1,firefox:!1,macos:!1,windows:!1,cordova:!!r.cordova,electron:!1,capacitor:!!r.Capacitor,nwjs:!1},l=r.screen.width,c=r.screen.height,p=n.match(/(Android);?[\s\/]+([\d.]+)?/);let d=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),h=!d&&n.match(/(iPhone\sOS|iOS|iPhone;\sCPU\sOS)\s([\d_]+)/),m=n.indexOf("MSIE ")>=0||n.indexOf("Trident/")>=0,f=n.indexOf("Edge/")>=0,g=n.indexOf("Gecko/")>=0&&n.indexOf("Firefox/")>=0,v="Win32"===s,b=n.toLowerCase().indexOf("electron")>=0,w="undefined"!=typeof nw&&"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.nw;let y="MacIntel"===s;return!d&&y&&a.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${l}x${c}`)>=0&&(d=n.match(/(Version)\/([\d.]+)/),d||(d=[0,1,"13_0_0"]),y=!1),i.ie=m,i.edge=f,i.firefox=g,p&&(i.os="android",i.osVersion=p[2],i.android=!0,i.androidChrome=n.toLowerCase().indexOf("chrome")>=0),(d||h||u)&&(i.os="ios",i.ios=!0),h&&!u&&(i.osVersion=h[2].replace(/_/g,"."),i.iphone=!0),d&&(i.osVersion=d[2].replace(/_/g,"."),i.ipad=!0),u&&(i.osVersion=u[3]?u[3].replace(/_/g,"."):null,i.ipod=!0),i.ios&&i.osVersion&&n.indexOf("Version/")>=0&&"10"===i.osVersion.split(".")[0]&&(i.osVersion=n.toLowerCase().split("version/")[1].split(" ")[0]),i.webView=!(!(h||d||u)||!n.match(/.*AppleWebKit(?!.*Safari)/i)&&!r.navigator.standalone)||r.matchMedia&&r.matchMedia("(display-mode: standalone)").matches,i.webview=i.webView,i.standalone=i.webView,i.desktop=!(i.ios||i.android)||b||w,i.desktop&&(i.electron=b,i.nwjs=w,i.macos=y,i.windows=v,i.macos&&(i.os="macos"),i.windows&&(i.os="windows")),i.pixelRatio=r.devicePixelRatio||1,i.prefersColorScheme=function(){let e;return r.matchMedia&&r.matchMedia("(prefers-color-scheme: light)").matches&&(e="light"),r.matchMedia&&r.matchMedia("(prefers-color-scheme: dark)").matches&&(e="dark"),e},i}(e)),Ye}class Ue{constructor(e){void 0===e&&(e=[]);this.eventsParents=e,this.eventsListeners={}}on(e,t,a){const r=this;if("function"!=typeof t)return r;const s=a?"unshift":"push";return e.split(" ").forEach((e=>{r.eventsListeners[e]||(r.eventsListeners[e]=[]),r.eventsListeners[e][s](t)})),r}once(e,t,a){const r=this;if("function"!=typeof t)return r;function s(){r.off(e,s),s.f7proxy&&delete s.f7proxy;for(var a=arguments.length,o=new Array(a),n=0;n{void 0===t?a.eventsListeners[e]=[]:a.eventsListeners[e]&&a.eventsListeners[e].forEach(((r,s)=>{(r===t||r.f7proxy&&r.f7proxy===t)&&a.eventsListeners[e].splice(s,1)}))})),a):a}emit(){const e=this;if(!e.eventsListeners)return e;let t,a,r,s;for(var o=arguments.length,n=new Array(o),i=0;ie.replace("local::",""))),p=l.filter((e=>e.indexOf("local::")<0));return c.forEach((t=>{if(e.eventsListeners&&e.eventsListeners[t]){const s=[];e.eventsListeners[t].forEach((e=>{s.push(e)})),s.forEach((e=>{e.apply(r,a)}))}})),s&&s.length>0&&s.forEach((e=>{e.emit(p,...a)})),e}}class Ge extends Ue{constructor(e,t){void 0===e&&(e={}),void 0===t&&(t=[]),super(t);const a=this;a.params=e,a.params&&a.params.on&&Object.keys(a.params.on).forEach((e=>{a.on(e,a.params.on[e])}))}useModuleParams(e,t){if(e.params){const a={};Object.keys(e.params).forEach((e=>{void 0!==t[e]&&(a[e]=Re({},t[e]))})),Re(t,e.params),Object.keys(a).forEach((e=>{Re(t[e],a[e])}))}}useModulesParams(e){const t=this;t.modules&&Object.keys(t.modules).forEach((a=>{const r=t.modules[a];r.params&&Re(e,r.params)}))}useModule(e,t){void 0===e&&(e=""),void 0===t&&(t={});const a=this;if(!a.modules)return;const r="string"==typeof e?a.modules[e]:e;r&&(r.instance&&Object.keys(r.instance).forEach((e=>{const t=r.instance[e];a[e]="function"==typeof t?t.bind(a):t})),r.on&&a.on&&Object.keys(r.on).forEach((e=>{a.on(e,r.on[e])})),r.vnode&&(a.vnodeHooks||(a.vnodeHooks={}),Object.keys(r.vnode).forEach((e=>{Object.keys(r.vnode[e]).forEach((t=>{const s=r.vnode[e][t];a.vnodeHooks[t]||(a.vnodeHooks[t]={}),a.vnodeHooks[t][e]||(a.vnodeHooks[t][e]=[]),a.vnodeHooks[t][e].push(s.bind(a))}))}))),r.create&&r.create.bind(a)(t))}useModules(e){void 0===e&&(e={});const t=this;t.modules&&Object.keys(t.modules).forEach((a=>{const r=e[a]||{};t.useModule(a,r)}))}static set components(e){this.use&&this.use(e)}static installModule(e){const t=this;t.prototype.modules||(t.prototype.modules={});const a=e.name||`${Object.keys(t.prototype.modules).length}_${Pe()}`;if(t.prototype.modules[a]=e,e.proto&&Object.keys(e.proto).forEach((a=>{t.prototype[a]=e.proto[a]})),e.static&&Object.keys(e.static).forEach((a=>{t[a]=e.static[a]})),e.install){for(var r=arguments.length,s=new Array(r>1?r-1:0),o=1;ot.installModule(e))),t;for(var a=arguments.length,r=new Array(a>1?a-1:0),s=1;s{n[e]=function(a){void 0===a&&(a=t);const r=n.get(a);for(var s=arguments.length,o=new Array(s>1?s-1:0),i=1;i1&&s){const e=ve(s).parents(".page");e.length&&o.each((t=>{const a=ve(t);a.parents(e)[0]===e[0]&&(o=a)}))}if(o.length>1&&(o=o.eq(o.length-1)),!o.length)return;let n=o[0].f7Modal;if(!n){const e=o.dataset();n=new a(r,{el:o,...e})}return n.open(t)},close(e,s,o){void 0===e&&(e=t);let n=ve(e);if(!n.length)return;if(n.length>1){let e;if(o){const t=ve(o);t.length&&(e=t.parents(n))}n=e&&e.length>0?e:n.eq(n.length-1)}let i=n[0].f7Modal;if(!i){const e=n.dataset();i=new a(r,{el:n,...e})}return i.close(s)}});return s}const Je=[];const Ze=function(e,t){const a=t||{};for(var r=arguments.length,s=new Array(r>2?r-2:0),o=2;o"_"===e[0]?a[e]?e.replace("_",""):"":`${e}="${a[e]}"`)).filter((e=>!!e)).join(" ");if(["path","img","circle","polygon","line","input"].indexOf(e)>=0)return`<${e} ${i} />`.trim();const l=n.filter((e=>!!e)).map((e=>Array.isArray(e)?e.join(""):e)).join("");return`<${e} ${i}>${l}`.trim()};class et extends Ge{constructor(e){if(void 0===e&&(e={}),super(e),et.instance&&"undefined"!=typeof window)throw new Error("Framework7 is already initialized and can't be initialized more than once");const t=Xe({userAgent:e.userAgent||void 0}),a=We(),s=Re({},e),n=this;n.device=t,n.support=a;const i=o(),l=r();et.instance=n;const c={version:"1.0.0",id:"io.framework7.myapp",el:"body",theme:"auto",language:i.navigator.language,routes:[],name:"Framework7",lazyModulesPath:null,initOnDeviceReady:!0,init:!0,autoDarkMode:!1,iosTranslucentBars:!0,iosTranslucentModals:!0,component:void 0,componentUrl:void 0,userAgent:null,url:null};return n.useModulesParams(c),n.params=Re(c,e),Re(n,{id:n.params.id,name:n.params.name,version:n.params.version,routes:n.params.routes,language:n.params.language,theme:"auto"===n.params.theme?t.ios?"ios":t.desktop&&t.electron?"aurora":"md":n.params.theme,passedParams:s,online:i.navigator.onLine}),e.store&&(n.params.store=e.store),n.$el&&n.$el[0]&&(n.$el[0].f7=n),n.useModules(),n.initStore(),n.params.init&&(t.cordova&&n.params.initOnDeviceReady?ve(l).on("deviceready",(()=>{n.init()})):n.init()),n}mount(e){const t=this,a=o(),s=r(),n=ve(e||t.params.el).eq(0);t.$el=n,t.$el&&t.$el[0]&&(t.el=t.$el[0],t.el.f7=t,t.rtl="rtl"===n.css("direction"));const i="(prefers-color-scheme: dark)",l="(prefers-color-scheme: light)";t.mq={},a.matchMedia&&(t.mq.dark=a.matchMedia(i),t.mq.light=a.matchMedia(l)),t.colorSchemeListener=function(e){let{matches:a,media:r}=e;if(!a)return;const o=s.querySelector("html");r===i?(o.classList.add("dark"),t.darkMode=!0,t.emit("darkModeChange",!0)):r===l&&(o.classList.remove("dark"),t.darkMode=!1,t.emit("darkModeChange",!1))},t.emit("mount")}initStore(){const e=this;void 0!==e.params.store&&e.params.store.__store?e.store=e.params.store:e.store=e.createStore(e.params.store)}enableAutoDarkMode(){const e=o(),t=r();if(!e.matchMedia)return;const a=this,s=t.querySelector("html");a.mq.dark&&a.mq.light&&(a.mq.dark.addListener(a.colorSchemeListener),a.mq.light.addListener(a.colorSchemeListener)),a.mq.dark&&a.mq.dark.matches?(s.classList.add("dark"),a.darkMode=!0,a.emit("darkModeChange",!0)):a.mq.light&&a.mq.light.matches&&(s.classList.remove("dark"),a.darkMode=!1,a.emit("darkModeChange",!1))}disableAutoDarkMode(){if(!o().matchMedia)return;const e=this;e.mq.dark&&e.mq.dark.removeListener(e.colorSchemeListener),e.mq.light&&e.mq.light.removeListener(e.colorSchemeListener)}initAppComponent(e){const t=this;t.router.componentLoader(t.params.component,t.params.componentUrl,{componentOptions:{el:t.$el[0]}},(a=>{t.$el=ve(a),t.$el[0].f7=t,t.$elComponent=a.f7Component,t.el=t.$el[0],e&&e()}),(()=>{}))}init(e){const t=this;t.mount(e);const a=()=>{if(t.initialized)return;t.$el.addClass("framework7-initializing"),t.rtl&&ve("html").attr("dir","rtl"),t.params.autoDarkMode&&t.enableAutoDarkMode();const e=o();e.addEventListener("offline",(()=>{t.online=!1,t.emit("offline"),t.emit("connection",!1)})),e.addEventListener("online",(()=>{t.online=!0,t.emit("online"),t.emit("connection",!0)})),t.$el.addClass("framework7-root"),ve("html").removeClass("ios md aurora").addClass(t.theme);const a=t.device;t.params.iosTranslucentBars&&"ios"===t.theme&&a.ios&&ve("html").addClass("ios-translucent-bars"),t.params.iosTranslucentModals&&"ios"===t.theme&&a.ios&&ve("html").addClass("ios-translucent-modals"),Se((()=>{t.$el.removeClass("framework7-initializing")})),t.initialized=!0,t.emit("init")};return t.params.component||t.params.componentUrl?t.initAppComponent((()=>{a()})):a(),t}loadModule(){return et.loadModule(...arguments)}loadModules(){return et.loadModules(...arguments)}getVnodeHooks(e,t){const a=this;return a.vnodeHooks&&a.vnodeHooks[e]&&a.vnodeHooks[e][t]||[]}get $(){return ve}static get Dom7(){return ve}static get $(){return ve}static get device(){return Xe()}static get support(){return We()}static get Class(){return Ge}static get Events(){return Ue}}et.$jsx=Ze,et.ModalMethods=Qe,et.ConstructorMethods=Ke,et.loadModule=function(e){const t=this,a=o(),s=r();return new Promise(((r,o)=>{const n=t.instance;let i,l,c;if(e){if("string"==typeof e){const t=e.match(/([a-z0-9-]*)/i);if(e.indexOf(".")<0&&t&&t[0].length===e.length){if(!n||n&&!n.params.lazyModulesPath)return void o(new Error('Framework7: "lazyModulesPath" app parameter must be specified to fetch module by name'));i=`${n.params.lazyModulesPath}/${e}/${e}.lazy.js`}else i=e}else"function"==typeof e?c=e:l=e;if(c){const e=c(t,!1);if(!e)return void o(new Error("Framework7: Can't find Framework7 component in specified component function"));if(t.prototype.modules&&t.prototype.modules[e.name])return void r();p(e),r()}if(l){const e=l;if(!e)return void o(new Error("Framework7: Can't find Framework7 component in specified component"));if(t.prototype.modules&&t.prototype.modules[e.name])return void r();p(e),r()}if(i){if(Je.indexOf(i)>=0)return void r();Je.push(i);const e=new Promise(((e,r)=>{t.request.get(i,(o=>{const n=`f7_component_loader_callback_${we()}`,l=s.createElement("script");l.innerHTML=`window.${n} = function (Framework7, Framework7AutoInstallComponent) {return ${o.trim()}}`,ve("head").append(l);const c=a[n];delete a[n],ve(l).remove();const d=c(t,!1);d?(t.prototype.modules&&t.prototype.modules[d.name]||p(d),e()):r(new Error(`Framework7: Can't find Framework7 component in ${i} file`))}),((e,t)=>{r(e,t)}))})),l=new Promise((e=>{t.request.get(i.replace(".lazy.js",n.rtl?".rtl.css":".css").replace(".js",n.rtl?".rtl.css":".css"),(t=>{const a=s.createElement("style");a.innerHTML=t,ve("head").append(a),e()}),(()=>{e()}))}));Promise.all([e,l]).then((()=>{r()})).catch((e=>{o(e)}))}}else o(new Error("Framework7: Lazy module must be specified"));function p(e){t.use(e),n&&(n.useModuleParams(e,n.params),n.useModule(e))}}))},et.loadModules=function(e){return Promise.all(e.map((e=>et.loadModule(e))))};var tt={name:"device",static:{getDevice:Xe},on:{init(){const e=r(),t=Xe(),a=[],s=e.querySelector("html"),o=e.querySelector('meta[name="apple-mobile-web-app-status-bar-style"]');s&&(t.standalone&&t.ios&&o&&"black-translucent"===o.content&&a.push("device-full-viewport"),a.push(`device-pixel-ratio-${Math.floor(t.pixelRatio)}`),t.os&&!t.desktop?a.push(`device-${t.os}`):t.desktop&&(a.push("device-desktop"),t.os&&a.push(`device-${t.os}`)),t.cordova&&a.push("device-cordova"),t.capacitor&&a.push("device-capacitor"),a.forEach((e=>{s.classList.add(e)})))}}},at={name:"support",static:{getSupport:We}},rt={name:"utils",proto:{utils:je},static:{utils:je}},st={name:"resize",create(){const e=this;e.getSize=()=>{if(!e.el)return{width:0,height:0,left:0,top:0};const t=e.$el.offset(),[a,r,s,o]=[e.el.offsetWidth,e.el.offsetHeight,t.left,t.top];return e.width=a,e.height=r,e.left=s,e.top=o,{width:a,height:r,left:s,top:o}}},on:{init(){const e=this,t=o();e.getSize(),t.addEventListener("resize",(()=>{e.emit("resize")}),!1),t.addEventListener("orientationchange",(()=>{e.emit("orientationchange")}))},orientationchange(){const e=r();Xe().ipad&&(e.body.scrollLeft=0,setTimeout((()=>{e.body.scrollLeft=0}),0))},resize(){this.getSize()}}};const ot={};let nt=0;class it{constructor(e){Object.assign(this,e)}}class lt extends Error{constructor(e){super(),Object.assign(this,e)}}const ct=e=>new Promise(((t,a)=>{const s=o(),n=r(),i=Re({},ot);"beforeCreate beforeOpen beforeSend error complete success statusCode".split(" ").forEach((e=>{delete i[e]}));const l=Re({url:s.location.toString(),method:"GET",data:!1,async:!0,cache:!0,user:"",password:"",headers:{},xhrFields:{},statusCode:{},processData:!0,dataType:"text",contentType:"application/x-www-form-urlencoded",timeout:0},i);let c;const p=Re({},l,e);if(e.abortController&&(p.abortController=e.abortController),p.abortController&&p.abortController.canceled)return void a(new lt({options:p,status:"canceled",message:"canceled"}));function d(e){let t,a;for(var r=arguments.length,s=new Array(r>1?r-1:0),o=1;o=0?"&":"?";const h=p.method.toUpperCase();if(("GET"===h||"HEAD"===h||"OPTIONS"===h||"DELETE"===h)&&p.data){let e;e="string"==typeof p.data?p.data.indexOf("?")>=0?p.data.split("?")[1]:p.data:Ie(p.data),e.length&&(p.url+=u+e,"?"===u&&(u="&"))}if("json"===p.dataType&&p.url.indexOf("callback=")>=0){const e=`f7jsonp_${Date.now()+(nt+=1)}`;let r;const o=p.url.split("callback=");let i=`${o[0]}callback=${e}`;if(o[1].indexOf("&")>=0){const e=o[1].split("&").filter((e=>e.indexOf("=")>0)).join("&");e.length>0&&(i+=`&${e}`)}let l=n.createElement("script");return l.type="text/javascript",l.onerror=function(){clearTimeout(r),d("error",null,"scripterror","scripterror"),a(new lt({options:p,status:"scripterror",message:"scripterror"})),d("complete",null,"scripterror")},l.src=i,s[e]=function(a){clearTimeout(r),d("success",a),l.parentNode.removeChild(l),l=null,delete s[e],t(new it({options:p,data:a}))},n.querySelector("head").appendChild(l),void(p.timeout>0&&(r=setTimeout((()=>{l.parentNode.removeChild(l),l=null,d("error",null,"timeout","timeout"),a(new lt({options:p,status:"timeout",message:"timeout"}))}),p.timeout)))}"GET"!==h&&"HEAD"!==h&&"OPTIONS"!==h&&"DELETE"!==h||!1===p.cache&&(p.url+=`${u}_nocache${Date.now()}`);const m=new XMLHttpRequest;if(p.abortController){let e=!1;p.abortController.onAbort=()=>{e||(e=!0,m.abort(),a(new lt({options:p,xhr:m,status:"canceled",message:"canceled"})))}}if(m.requestUrl=p.url,m.requestParameters=p,c=d("beforeOpen",m,p),!1===c)return void a(new lt({options:p,xhr:m,status:"canceled",message:"canceled"}));m.open(h,p.url,p.async,p.user,p.password);let f=null;if(("POST"===h||"PUT"===h||"PATCH"===h)&&p.data)if(p.processData){if([ArrayBuffer,Blob,Document,FormData].indexOf(p.data.constructor)>=0)f=p.data;else{const e=`---------------------------${Date.now().toString(16)}`;"multipart/form-data"===p.contentType?m.setRequestHeader("Content-Type",`multipart/form-data; boundary=${e}`):m.setRequestHeader("Content-Type",p.contentType),f="";let t=Ie(p.data);if("multipart/form-data"===p.contentType){t=t.split("&");const a=[];for(let e=0;e{void 0!==p.headers[e]&&m.setRequestHeader(e,p.headers[e])})),void 0===p.crossDomain&&(p.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(p.url)&&RegExp.$2!==s.location.host),p.crossDomain||m.setRequestHeader("X-Requested-With","XMLHttpRequest"),p.xhrFields&&Re(m,p.xhrFields),m.onload=function(){if(m.status>=200&&m.status<300||0===m.status){let e;if("json"===p.dataType){let r;try{e=JSON.parse(m.responseText)}catch(e){r=!0}r?(d("error",m,"parseerror","parseerror"),a(new lt({options:p,xhr:m,status:"parseerror",message:"parseerror"}))):(d("success",e,m.status,m),t(new it({options:p,data:e,status:m.status,xhr:m})))}else e="text"===m.responseType||""===m.responseType?m.responseText:m.response,d("success",e,m.status,m),t(new it({options:p,data:e,status:m.status,xhr:m}))}else d("error",m,m.status,m.statusText),a(new lt({options:p,xhr:m,status:m.status,message:m.statusText}));p.statusCode&&(ot.statusCode&&ot.statusCode[m.status]&&ot.statusCode[m.status](m),p.statusCode[m.status]&&p.statusCode[m.status](m)),d("complete",m,m.status)},m.onerror=function(){d("error",m,m.status,m.status),a(new lt({options:p,xhr:m,status:m.status,message:m.statusText})),d("complete",m,"error")},p.timeout>0&&(m.timeout=p.timeout,m.ontimeout=()=>{d("error",m,"timeout","timeout"),a(new lt({options:p,xhr:m,status:"timeout",message:"timeout"})),d("complete",m,"timeout")}),c=d("beforeSend",m,p),!1!==c?m.send(f):a(new lt({options:p,xhr:m,status:"canceled",message:"canceled"}))}));function pt(e){let[t,a,r,s,o]=[];for(var n=arguments.length,i=new Array(n>1?n-1:0),l=1;l{"string"==typeof e&&(o=e,e===r?r=void 0:s=void 0)})),o=o||("json"===e||"postJSON"===e?"json":void 0);const c={url:t,method:"post"===e||"postJSON"===e?"POST":"GET",data:a,success:r,error:s,dataType:o};return"postJSON"===e&&Re(c,{contentType:"application/json",processData:!1,crossDomain:!0,data:"string"==typeof a?a:JSON.stringify(a)}),ct(c)}Object.assign(ct,{get:function(){for(var e=arguments.length,t=new Array(e),a=0;a{const e={canceled:!1,onAbort:null,abort(){e.canceled=!0,e.onAbort&&e.onAbort()}};return e},ct.setup=function(e){e.type&&!e.method&&Re(e,{method:e.type}),Re(ot,e)};var dt={name:"request",proto:{request:ct},static:{request:ct}};var ut={name:"touch",params:{touch:{touchClicksDistanceThreshold:5,disableContextMenu:!1,tapHold:!1,tapHoldDelay:750,tapHoldPreventClicks:!0,activeState:!0,activeStateElements:"a, button, label, span, .actions-button, .stepper-button, .stepper-button-plus, .stepper-button-minus, .card-expandable, .menu-item, .link, .item-link, .accordion-item-toggle",activeStateOnMouseMove:!1,mdTouchRipple:!0,iosTouchRipple:!1,auroraTouchRipple:!1,touchRippleElements:".ripple, .link, .item-link, .list-button, .links-list a, .button, button, .input-clear-button, .dialog-button, .tab-link, .item-radio, .item-checkbox, .actions-button, .searchbar-disable-button, .fab a, .checkbox, .radio, .data-table .sortable-cell:not(.input-cell), .notification-close-button, .stepper-button, .stepper-button-minus, .stepper-button-plus, .menu-item-content, .list.accordion-list .accordion-item-toggle",touchRippleInsetElements:".ripple-inset, .icon-only, .searchbar-disable-button, .input-clear-button, .notification-close-button, .md .navbar .link.back"}},create(){const e=We();Re(this,{touchEvents:{start:e.touch?"touchstart":e.pointerEvents?"pointerdown":"mousedown",move:e.touch?"touchmove":e.pointerEvents?"pointermove":"mousemove",end:e.touch?"touchend":e.pointerEvents?"pointerup":"mouseup"}})},on:{init:function(){const e=this,t=Xe(),a=We(),s=o(),n=r(),i=e.params.touch,l=i[`${e.theme}TouchRipple`];let c,p,d,u,h,m,f,g,v,b,w,y,$;function C(e){const t=ve(e),a=t.parents(i.activeStateElements);if(t.closest(".no-active-state").length)return null;let r;if(t.is(i.activeStateElements)&&(r=t),a.length>0&&(r=r?r.add(a):a),r&&r.length>1){const e=[];let t;for(let a=0;a0}function k(){g&&g.addClass("active-state")}function x(){g&&(g.removeClass("active-state"),g=null)}function T(t,a,r){t&&(b=e.touchRipple.create(e,t,a,r))}function S(){b&&(b.remove(),b=void 0,w=void 0)}function P(e){if(w=function(e){const t=i.touchRippleElements,a=ve(e);if(a.is(t))return!a.hasClass("no-ripple")&&a;if(a.parents(t).length>0){const e=a.parents(t).eq(0);return!e.hasClass("no-ripple")&&e}return!1}(e),!w||0===w.length)return void(w=void 0);E(w)?(clearTimeout(y),y=setTimeout((()=>{S(),T(w,c,p)}),80)):(S(),T(w,c,p))}function M(){clearTimeout(y),S()}function O(){b||!w||u?S():(clearTimeout(y),T(w,c,p),setTimeout(S,0))}function I(){ve(".active-state").removeClass("active-state"),l&&O()}t.ios&&t.webView&&s.addEventListener("touchstart",(()=>{}));let B=!1,L=null;const R=".dialog-button, .actions-button";let A=!1,D=null;function z(t,a){e.emit({events:t,data:[a]})}function H(e){z("touchstart touchstart:active",e)}function N(e){z("touchmove touchmove:active",e)}function V(e){z("touchend touchend:active",e)}function F(e){z("touchstart:passive",e)}function q(e){z("touchmove:passive",e)}function j(e){z("touchend:passive",e)}const _=!!a.passiveListener&&{passive:!0},Y=!a.passiveListener||{passive:!0,capture:!0},W=!!a.passiveListener&&{passive:!1},X=!a.passiveListener||{passive:!1,capture:!0};n.addEventListener("click",(function(e){z("click",e)}),!0),a.passiveListener?(n.addEventListener(e.touchEvents.start,H,X),n.addEventListener(e.touchEvents.move,N,W),n.addEventListener(e.touchEvents.end,V,W),n.addEventListener(e.touchEvents.start,F,Y),n.addEventListener(e.touchEvents.move,q,_),n.addEventListener(e.touchEvents.end,j,_)):(n.addEventListener(e.touchEvents.start,(e=>{H(e),F(e)}),!0),n.addEventListener(e.touchEvents.move,(e=>{N(e),q(e)}),!1),n.addEventListener(e.touchEvents.end,(e=>{V(e),j(e)}),!1)),a.touch?(e.on("click",(function(e){const a=e&&e.detail&&"f7Overswipe"===e.detail,r=e&&e.detail&&"f7Segmented"===e.detail,s=e&&e.detail&&"f7TouchMoveActivable"===e.detail;let o=f;return d&&e.target!==d?o=!(a||r||s):s&&(o=!1),i.tapHold&&i.tapHoldPreventClicks&&h&&(o=!0),o&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()),i.tapHold&&(m=setTimeout((()=>{h=!1}),t.ios||t.androidChrome?100:400)),f=!1,d=null,!o})),e.on("touchstart",(function(t){return u=!1,h=!1,f=!1,$=void 0,t.targetTouches.length>1?(g&&x(),!0):(t.touches.length>1&&g&&x(),i.tapHold&&(m&&clearTimeout(m),m=setTimeout((()=>{t&&t.touches&&t.touches.length>1||(h=!0,t.preventDefault(),f=!0,ve(t.target).trigger("taphold",t),e.emit("taphold",t))}),i.tapHoldDelay)),d=t.target,c=t.targetTouches[0].pageX,p=t.targetTouches[0].pageY,B=t.target.closest(".segmented-strong .button-active, .segmented-strong .tab-link-active"),A="ios"===e.theme&&t.target.closest(R),B&&(L=B.closest(".segmented-strong")),i.activeState&&(g=C(d),g&&!E(g)?k():g&&(v=setTimeout(k,80))),l&&P(d),!0)})),e.on("touchmove",(function(e){let t,a,r=!0;"touchmove"===e.type&&(t=e.targetTouches[0],a=i.touchClicksDistanceThreshold);const s=e.targetTouches[0].pageX,o=e.targetTouches[0].pageY;if(void 0===$&&($=!!($||Math.abs(o-p)>Math.abs(s-c))),(A||!$&&B&&L)&&e.cancelable&&e.preventDefault(),!$&&B&&L){const t=n.elementFromPoint(e.targetTouches[0].clientX,e.targetTouches[0].clientY).closest(".segmented-strong .button:not(.button-active):not(.tab-link-active)");t&&L.contains(t)&&(ve(t).trigger("click","f7Segmented"),d=t)}if(a&&t){const e=t.pageX,r=t.pageY;(Math.abs(e-c)>a||Math.abs(r-p)>a)&&(u=!0)}else u=!0;if(u){if(f=!0,A){const t=n.elementFromPoint(e.targetTouches[0].clientX,e.targetTouches[0].clientY);D=t.closest(R),D&&g&&g[0]===D?r=!1:D&&setTimeout((()=>{g=C(D),k()}))}i.tapHold&&clearTimeout(m),i.activeState&&r&&(clearTimeout(v),x()),l&&M()}})),e.on("touchend",(function(e){return $=void 0,B=!1,L=null,A=!1,clearTimeout(v),clearTimeout(m),D&&(ve(D).trigger("click","f7TouchMoveActivable"),D=null),n.activeElement===e.target?(i.activeState&&x(),l&&O(),!0):(i.activeState&&(k(),setTimeout(x,0)),l&&O(),!(i.tapHoldPreventClicks&&h||f)||(e.cancelable&&e.preventDefault(),f=!0,!1))})),n.addEventListener("touchcancel",(function(){d=null,clearTimeout(v),clearTimeout(m),i.activeState&&x(),l&&O()}),{passive:!0})):i.activeState&&(e.on("touchstart",(function(e){const t=C(e.target);t&&(t.addClass("active-state"),"which"in e&&3===e.which&&setTimeout((()=>{ve(".active-state").removeClass("active-state")}),0)),l&&(c=e.pageX,p=e.pageY,P(e.target,e.pageX,e.pageY))})),e.on("touchmove",(function(){i.activeStateOnMouseMove||ve(".active-state").removeClass("active-state"),l&&M()})),e.on("touchend",I),n.addEventListener("pointercancel",I,{passive:!0})),n.addEventListener("contextmenu",(e=>{i.disableContextMenu&&(t.ios||t.android||t.cordova||s.Capacitor&&s.Capacitor.isNative)&&e.preventDefault(),l&&(g&&x(),O())}))}}};function ht(e,t){void 0===t&&(t={});for(var a=function(e){for(var t=[],a=0;a=48&&l<=57||l>=65&&l<=90||l>=97&&l<=122||95===l))break;n+=e[i++]}if(!n)throw new TypeError("Missing parameter name at ".concat(a));t.push({type:"NAME",index:a,value:n}),a=i}else t.push({type:"CLOSE",index:a,value:e[a++]});else t.push({type:"OPEN",index:a,value:e[a++]});else t.push({type:"ESCAPED_CHAR",index:a++,value:e[a++]});else t.push({type:"MODIFIER",index:a,value:e[a++]})}return t.push({type:"END",index:a,value:""}),t}(e),r=t.prefixes,s=void 0===r?"./":r,o="[^".concat(ft(t.delimiter||"/#?"),"]+?"),n=[],i=0,l=0,c="",p=function(e){if(l-1:void 0===E;s||(g+="(?:".concat(f,"(?=").concat(m,"))?")),k||(g+="(?=".concat(f,"|").concat(m,")"))}return new RegExp(g,gt(a))}(ht(e,a),t,a)}function bt(e,t,a){return e instanceof RegExp?function(e,t){if(!t)return e;for(var a=/\((?:\?<(.*?)>)?(?!\?)/g,r=0,s=a.exec(e.source);s;)t.push({name:s[1]||r++,prefix:"",suffix:"",modifier:"",pattern:""}),s=a.exec(e.source);return e}(e,t):Array.isArray(e)?function(e,t,a){var r=e.map((function(e){return bt(e,t,a).source}));return new RegExp("(?:".concat(r.join("|"),")"),gt(a))}(e,t,a):vt(e,t,a)}const wt={queue:[],clearQueue(){if(0===wt.queue.length)return;wt.queue.shift()()},routerQueue:[],clearRouterQueue(){if(0===wt.routerQueue.length)return;const e=wt.routerQueue.pop(),{router:t,stateUrl:a,action:r}=e;let s=t.params.animate;!1===t.params.browserHistoryAnimate&&(s=!1),"back"===r&&t.back({animate:s,browserHistory:!1}),"load"===r&&t.navigate(a,{animate:s,browserHistory:!1})},handle(e){if(wt.blockPopstate)return;let t=e.state;wt.previousState=wt.state,wt.state=t,wt.allowChange=!0,wt.clearQueue(),t=wt.state,t||(t={}),this.views.forEach((e=>{const a=e.router;let r=t[e.id];if(!r&&e.params.browserHistory&&(r={url:e.router.history[0]}),!r)return;const s=r.url||void 0;let o=a.params.animate;!1===a.params.browserHistoryAnimate&&(o=!1),s!==a.url&&(a.history.indexOf(s)>=0?a.allowPageChange?a.back({animate:o,browserHistory:!1}):wt.routerQueue.push({action:"back",router:a}):a.allowPageChange?a.navigate(s,{animate:o,browserHistory:!1}):wt.routerQueue.unshift({action:"load",stateUrl:s,router:a}))}))},initViewState(e,t){const a=o(),r=Re({},wt.state||{},{[e]:t});wt.state=r,a.history.replaceState(r,"")},push(e,t,a){const s=o(),n=r();if("#!/"===a.substr(-3)&&""===(a=a.replace("#!/",""))&&(a=n.location.href).includes("#!/")&&(a=n.location.href.split("#!/")[0]),!wt.allowChange)return void wt.queue.push((()=>{wt.push(e,t,a)}));wt.previousState=wt.state;const i=Re({},wt.previousState||{},{[e]:t});wt.state=i,s.history.pushState(i,"",a)},replace(e,t,a){const r=o();if("#!/"===a.substr(-3)&&(a=a.replace("#!/","")),!wt.allowChange)return void wt.queue.push((()=>{wt.replace(e,t,a)}));wt.previousState=wt.state;const s=Re({},wt.previousState||{},{[e]:t});wt.state=s,r.history.replaceState(s,"",a)},go(e){const t=o();wt.allowChange=!1,t.history.go(e)},back(){const e=o();wt.allowChange=!1,e.history.back()},allowChange:!0,previousState:{},state:{},blockPopstate:!0,init(e){const t=o(),a=r();wt.state=t.history.state,ve(t).on("load",(()=>{setTimeout((()=>{wt.blockPopstate=!1}),0)})),a.readyState&&"complete"===a.readyState&&(wt.blockPopstate=!1),ve(t).on("popstate",wt.handle.bind(e))}};function yt(e){const t=e,{$el:a,$navbarsEl:r,app:s,params:o}=t,n=We(),i=Xe();let l=!1,c=!1;const p={};let d,u,h,m,f,g,v,b,w=[],y=[],$=!0,C=[],E=[];const k=o[`${s.theme}SwipeBackAnimateShadow`],x=o[`${s.theme}SwipeBackAnimateOpacity`],T=o[`${s.theme}SwipeBackActiveArea`],S=o[`${s.theme}SwipeBackThreshold`],P=s.rtl?"right center":"left center",M=s.rtl?"calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center":"calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center";function O(e){let{progress:t,reset:a,transition:r,reflow:s}=void 0===e?{}:e;const o=["overflow","transform","transform-origin","opacity"];if(!0===r||!1===r)for(let e=0;e0||ve(e.target).closest(".page-master, .page-master-detail").length>0&&o.masterDetailBreakpoint>0&&s.width>=o.masterDetailBreakpoint||(c=!1,l=!0,d=void 0,p.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,p.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY,m=Pe(),f=t.dynamicNavbar)}function B(e){if(!l)return;const n="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,m="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY;if(void 0===d&&(d=!!(d||Math.abs(m-p.y)>Math.abs(n-p.x))||np.x&&s.rtl),d||e.f7PreventSwipeBack||s.preventSwipeBack)return void(l=!1);if(!c){let t=!1;const n=ve(e.target),c=n.closest(".swipeout");c.length>0&&(!s.rtl&&c.find(".swipeout-actions-left").length>0&&(t=!0),s.rtl&&c.find(".swipeout-actions-right").length>0&&(t=!0)),w=n.closest(".page"),(w.hasClass("no-swipeback")||n.closest(".no-swipeback, .card-opened").length>0)&&(t=!0),y=a.find(".page-previous:not(.stacked)"),y.length>1&&(y=y.eq(y.length-1));let d=p.x-a.offset().left>T;if(u=a.width(),d=s.rtl?p.xT,d&&(t=!0),0!==y.length&&0!==w.length||(t=!0),t)return void(l=!1);k&&(g=w.find(".page-shadow-effect"),0===g.length&&(g=ve('
'),w.append(g))),x&&(v=y.find(".page-opacity-effect"),0===v.length&&(v=ve('
'),y.append(v))),f&&(C=r.find(".navbar-current:not(.stacked)"),E=r.find(".navbar-previous:not(.stacked)"),E.length>1&&(E=E.eq(E.length-1)),b=function(){const e=[],t=s.rtl?-1:1,a=C.hasClass("navbar-transparent")&&!C.hasClass("navbar-large")&&!C.hasClass("navbar-transparent-visible"),r=C.hasClass("navbar-large"),n=C.hasClass("navbar-large-collapsed"),l=C.hasClass("navbar-large-transparent")||C.hasClass("navbar-large")&&C.hasClass("navbar-transparent"),c=E.hasClass("navbar-transparent")&&!E.hasClass("navbar-large")&&!E.hasClass("navbar-transparent-visible"),p=E.hasClass("navbar-large"),d=E.hasClass("navbar-large-collapsed"),u=E.hasClass("navbar-large-transparent")||E.hasClass("navbar-large")&&E.hasClass("navbar-transparent"),h=r&&!n,m=p&&!d,f=C.find(".left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg"),g=E.find(".left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg");let v,b;return o.iosAnimateNavbarBackIcon&&(v=C.hasClass("sliding")||C.find(".navbar-inner.sliding").length?C.find(".left").find(".back .icon + span").eq(0):C.find(".left.sliding").find(".back .icon + span").eq(0),b=E.hasClass("sliding")||E.find(".navbar-inner.sliding").length?E.find(".left").find(".back .icon + span").eq(0):E.find(".left.sliding").find(".back .icon + span").eq(0),v.length&&g.each((e=>{ve(e).hasClass("title")&&(e.f7NavbarLeftOffset+=v.prev(".icon")[0].offsetWidth)}))),f.each((s=>{const c=ve(s),p=c.hasClass("subnavbar"),d=c.hasClass("left"),u=c.hasClass("title"),f=c.hasClass("navbar-bg");if((u||f)&&a)return;if(!h&&c.hasClass(".title-large"))return;const g={el:s};if(h){if(u)return;if(c.hasClass("title-large"))return e.indexOf(g)<0&&e.push(g),g.overflow="visible",void c.find(".title-large-text").each((a=>{e.push({el:a,transform:e=>`translateX(${100*e*t}%)`})}))}if(m&&(h||c.hasClass("title-large")&&(e.indexOf(g)<0&&e.push(g),g.opacity=0),d))return e.indexOf(g)<0&&e.push(g),g.opacity=e=>1-e**.33,void c.find(".back span").each((t=>{e.push({el:t,"transform-origin":P,transform:e=>`translateX(calc(${e} * (var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset)))) translateY(calc(${e} * (var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical) / 2))) scale(${1+1*e})`})}));if(f)return e.indexOf(g)<0&&e.push(g),h||m||(n?(l&&(g.className="ios-swipeback-navbar-bg-large"),g.transform=e=>`translateX(${100*e*t}%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))`):g.transform=e=>`translateX(${100*e*t}%)`),!h&&m&&(g.className="ios-swipeback-navbar-bg-large",g.transform=e=>`translateX(${100*e*t}%) translateY(calc(-1 * ${1-e} * var(--f7-navbar-large-title-height)))`),h&&m&&(g.transform=e=>`translateX(${100*e*t}%)`),void(h&&!m&&(g.transform=e=>`translateX(${100*e*t}%) translateY(calc(-${e} * var(--f7-navbar-large-title-height)))`));if(c.hasClass("title-large"))return;const b=c.hasClass("sliding")||c.parents(".navbar-inner.sliding").length;if(e.indexOf(g)<0&&e.push(g),(!p||p&&!b)&&(g.opacity=e=>1-e**.33),b){let t=g;if(d&&v.length&&o.iosAnimateNavbarBackIcon){const a={el:v[0]};t=a,e.push(a)}t.transform=e=>{let a=e*t.el.f7NavbarRightOffset;return 1===i.pixelRatio&&(a=Math.round(a)),p&&r?`translate3d(${a}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`:`translate3d(${a}px,0,0)`}}})),g.each((a=>{const r=ve(a),s=r.hasClass("subnavbar"),n=r.hasClass("left"),l=r.hasClass("title"),f=r.hasClass("navbar-bg");if((l||f)&&c)return;const g={el:a};if(m){if(l)return;if(e.indexOf(g)<0&&e.push(g),r.hasClass("title-large"))return g.opacity=1,g.overflow="visible",void r.find(".title-large-text").each((t=>{e.push({el:t,"transform-origin":M,opacity:e=>e**3,transform:e=>`translateX(calc(${1-e} * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(${e-1} * var(--f7-navbar-large-title-height) + ${1-e} * var(--f7-navbar-large-title-padding-vertical))) scale(${.5+.5*e})`})}))}if(f)return e.indexOf(g)<0&&e.push(g),h||m||(d?(u&&(g.className="ios-swipeback-navbar-bg-large"),g.transform=e=>`translateX(${(100*e-100)*t}%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))`):g.transform=e=>`translateX(${(100*e-100)*t}%)`),!h&&m&&(g.transform=e=>`translateX(${(100*e-100)*t}%) translateY(calc(-1 * ${1-e} * var(--f7-navbar-large-title-height)))`),h&&!m&&(g.className="ios-swipeback-navbar-bg-large",g.transform=e=>`translateX(${(100*e-100)*t}%) translateY(calc(-${e} * var(--f7-navbar-large-title-height)))`),void(h&&m&&(g.transform=e=>`translateX(${(100*e-100)*t}%)`));if(r.hasClass("title-large"))return;const v=r.hasClass("sliding")||E.children(".navbar-inner.sliding").length;if(e.indexOf(g)<0&&e.push(g),(!s||s&&!v)&&(g.opacity=e=>e**3),v){let t=g;if(n&&b.length&&o.iosAnimateNavbarBackIcon){const a={el:b[0]};t=a,e.push(a)}t.transform=e=>{let a=t.el.f7NavbarLeftOffset*(1-e);return 1===i.pixelRatio&&(a=Math.round(a)),s&&p?`translate3d(${a}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`:`translate3d(${a}px,0,0)`}}})),e}()),ve(".sheet.modal-in").length>0&&s.sheet&&s.sheet.close(ve(".sheet.modal-in"))}e.f7PreventSwipePanel=!0,c=!0,s.preventSwipePanelBySwipeBack=!0,e.preventDefault();const $=s.rtl?-1:1;h=(n-p.x-S)*$,h<0&&(h=0);const I=Math.min(Math.max(h/u,0),1),B={percentage:I,progress:I,currentPageEl:w[0],previousPageEl:y[0],currentNavbarEl:C[0],previousNavbarEl:E[0]};a.trigger("swipeback:move",B),t.emit("swipebackMove",B);let L=h*$,R=(h/5-u/5)*$;s.rtl?(L=Math.max(L,-u),R=Math.max(R,0)):(L=Math.min(L,u),R=Math.min(R,0)),1===i.pixelRatio&&(L=Math.round(L),R=Math.round(R)),t.swipeBackActive=!0,ve([w[0],y[0]]).addClass("page-swipeback-active"),w.transform(`translate3d(${L}px,0,0)`),k&&(g[0].style.opacity=1-1*I),"ios"===s.theme&&y.transform(`translate3d(${R}px,0,0)`),x&&(v[0].style.opacity=1-1*I),f&&O({progress:I})}function L(){if(s.preventSwipePanelBySwipeBack=!1,!l||!c)return l=!1,void(c=!1);l=!1,c=!1,t.swipeBackActive=!1;const e=ve([w[0],y[0]]);if(e.removeClass("page-swipeback-active"),0===h)return e.transform(""),g&&g.length>0&&g.remove(),v&&v.length>0&&v.remove(),void(f&&O({reset:!0}));const r=Pe()-m;let n=!1;(r<300&&h>10||r>=300&&h>u/2)&&(w.removeClass("page-current").addClass("page-next"+("ios"!==s.theme?" page-next-on-right":"")),y.removeClass("page-previous").addClass("page-current").removeAttr("aria-hidden"),g&&(g[0].style.opacity=""),v&&(v[0].style.opacity=""),f&&(t.setNavbarPosition(C,"next"),t.setNavbarPosition(E,"current",!1)),n=!0),e.addClass("page-transitioning page-transitioning-swipeback"),i.ios&&(w[0]._clientLeft=w[0].clientLeft),e.transform(""),f&&O({progress:n?1:0,transition:!0,reflow:!!i.ios}),$=!1,t.allowPageChange=!1;const p={currentPageEl:w[0],previousPageEl:y[0],currentNavbarEl:C[0],previousNavbarEl:E[0]};n?(t.currentRoute=y[0].f7Page.route,t.currentPage=y[0],t.pageCallback("beforeOut",w,C,"current","next",{route:w[0].f7Page.route,swipeBack:!0}),t.pageCallback("beforeIn",y,E,"previous","current",{route:y[0].f7Page.route,swipeBack:!0},w[0]),a.trigger("swipeback:beforechange",p),t.emit("swipebackBeforeChange",p)):(a.trigger("swipeback:beforereset",p),t.emit("swipebackBeforeReset",p)),w.transitionEnd((()=>{e.removeClass("page-transitioning page-transitioning-swipeback"),f&&O({reset:!0,transition:!1}),$=!0,t.allowPageChange=!0,n?(1===t.history.length&&t.history.unshift(t.url),t.history.pop(),t.saveHistory(),o.browserHistory&&wt.back(),t.pageCallback("afterOut",w,C,"current","next",{route:w[0].f7Page.route,swipeBack:!0}),t.pageCallback("afterIn",y,E,"previous","current",{route:y[0].f7Page.route,swipeBack:!0}),o.stackPages&&t.initialPages.indexOf(w[0])>=0?(w.addClass("stacked"),f&&C.addClass("stacked")):(t.pageCallback("beforeRemove",w,C,"next",{swipeBack:!0}),t.removePage(w),f&&t.removeNavbar(C)),a.trigger("swipeback:afterchange",p),t.emit("swipebackAfterChange",p),t.emit("routeChanged",t.currentRoute,t.previousRoute,t),o.preloadPreviousPage&&t.back(t.history[t.history.length-2],{preload:!0})):(a.trigger("swipeback:afterreset",p),t.emit("swipebackAfterReset",p)),g&&g.length>0&&g.remove(),v&&v.length>0&&v.remove()}))}!function(){const e=!("touchstart"!==s.touchEvents.start||!n.passiveListener)&&{passive:!0,capture:!1};a.on(s.touchEvents.start,I,e),s.on("touchmove:active",B),s.on("touchend:passive",L)}(),t.on("routerDestroy",(function(){const e=!("touchstart"!==s.touchEvents.start||!n.passiveListener)&&{passive:!0,capture:!1};a.off(s.touchEvents.start,I,e),s.off("touchmove:active",B),s.off("touchend:passive",L)}))}function $t(e,t,a){const r=this,s=t.route.redirect,o="forward"===e?"navigate":"back";if(a.initial&&r.params.browserHistory&&(a.replaceState=!0,a.history=!0),"function"==typeof s){r.allowPageChange=!1;const n=s.call(r,{router:r,to:t,resolve:function(e,t){void 0===t&&(t={}),r.allowPageChange=!0,r[o](e,Re({},a,t))},reject:function(){r.allowPageChange=!0},direction:e,app:r.app});return n&&"string"==typeof n?(r.allowPageChange=!0,r[o](n,a)):r}return r[o](s,a)}function Ct(e,t,a,r,s,o,n,i){const l=[];Array.isArray(a)?l.push(...a):a&&"function"==typeof a&&l.push(a),t&&(Array.isArray(t)?l.push(...t):l.push(t)),function t(){if(0===l.length)return void o();l.shift().call(e,{router:e,to:r,from:s,resolve(){t()},reject(){n()},direction:i,app:e.app})}()}function Et(e,t,a,r,s){const o=this;function n(){e&&e.route&&(o.params.routesBeforeEnter||e.route.beforeEnter)?(o.allowPageChange=!1,Ct(o,o.params.routesBeforeEnter,e.route.beforeEnter,e,t,(()=>{o.allowPageChange=!0,a()}),(()=>{r()}),s)):a()}t&&t.route&&(o.params.routesBeforeLeave||t.route.beforeLeave)?(o.allowPageChange=!1,Ct(o,o.params.routesBeforeLeave,t.route.beforeLeave,e,t,(()=>{o.allowPageChange=!0,n()}),(()=>{r()}),s)):n()}function kt(e,t){if(!e.view)throw new Error(`Framework7: it is not allowed to use router methods on global app router. Use router methods only on related View, e.g. app.views.main.router.${t}(...)`)}function xt(e,t,a,r){function s(e){e.then((e=>{a({component:e.default||e._default||e})})).catch((e=>{throw r(),new Error(e)}))}if(t instanceof Promise)return void s(t);const o=t.call(e);o instanceof Promise?s(o):a({component:o})}function Tt(e,t,a){void 0===a&&(a={});const s=r(),o=ve(t),n=e.app,i=e.view,l=Re(!1,{animate:e.params.animate,browserHistory:!0,replaceState:!1,history:!0,reloadCurrent:e.params.reloadPages,reloadPrevious:!1,reloadAll:!1,clearPreviousHistory:!1,reloadDetail:e.params.reloadDetail,on:{}},a),c=e.params.masterDetailBreakpoint>0,p=c&&l.route&&l.route.route&&(!0===l.route.route.master||"function"==typeof l.route.route.master&&l.route.route.master(n,e));let d,u,h,m=0,f=e.currentRoute.modal;if(f||"popup popover sheet loginScreen actions customModal panel".split(" ").forEach((t=>{e.currentRoute&&e.currentRoute.route&&e.currentRoute.route[t]&&(f=!0,h=t)})),f){const t=e.currentRoute.modal||e.currentRoute.route.modalInstance||n[h].get(),a=e.history[e.history.length-2];let r=e.findMatchingRoute(a);!r&&a&&(r={url:a,path:a.split("?")[0],query:Me(a),route:{path:a.split("?")[0],url:a}}),e.modalRemove(t)}const g=e.dynamicNavbar,v=e.$el,b=o,w=l.reloadPrevious||l.reloadCurrent||l.reloadAll;let y,$,C,E;if(e.allowPageChange=!1,0===b.length)return e.allowPageChange=!0,e;b.length&&e.removeThemeElements(b),g&&(C=b.children(".navbar"),$=e.$navbarsEl,0===C.length&&b[0]&&b[0].f7Page&&(C=b[0].f7Page.$navbarEl)),l.route&&l.route.route&&l.route.route.keepAlive&&!l.route.route.keepAliveData&&(l.route.route.keepAliveData={pageEl:o[0]});const k=v.children(".page:not(.stacked)").filter((e=>e!==b[0]));let x,T,S,P;if(g&&(x=$.children(".navbar:not(.stacked)").filter((e=>e!==C[0]))),l.reloadPrevious&&k.length<2)return e.allowPageChange=!0,e;if(c&&!l.reloadAll){for(let e=0;e=e.params.masterDetailBreakpoint&&d}T&&(P=!u||S||l.reloadAll||l.reloadCurrent);let M="next";if(l.reloadCurrent||l.reloadAll||S?M="current":l.reloadPrevious&&(M="previous"),b.removeClass("page-previous page-current page-next").addClass(`page-${M}${p?" page-master":""}${T?" page-master-detail":""}${P?" page-master-detail-root":""}`).removeClass("stacked").trigger("page:unstack").trigger("page:position",{position:M}),e.emit("pageUnstack",b[0]),e.emit("pagePosition",b[0],M),(p||T)&&(b.trigger("page:role",{role:p?"master":"detail",root:!!P}),e.emit("pageRole",b[0],{role:p?"master":"detail",detailRoot:!!P})),g&&C.length&&(C.removeClass("navbar-previous navbar-current navbar-next").addClass(`navbar-${M}${p?" navbar-master":""}${T?" navbar-master-detail":""}${P?" navbar-master-detail-root":""}`).removeClass("stacked"),C.trigger("navbar:position",{position:M}),e.emit("navbarPosition",C[0],M),(p||T)&&e.emit("navbarRole",C[0],{role:p?"master":"detail",detailRoot:!!P})),l.reloadCurrent||S)S?(y=k.filter((e=>!e.classList.contains("page-master"))),g&&(E=ve(y.map((e=>n.navbar.getElByPage(e))))),y.length>1&&d&&(m=y.length-1,ve(d).removeClass("page-master-stacked").trigger("page:masterunstack"),e.emit("pageMasterUnstack",d),g&&(ve(n.navbar.getElByPage(d)).removeClass("navbar-master-stacked"),e.emit("navbarMasterUnstack",n.navbar.getElByPage(d))))):(y=k.eq(k.length-1),g&&(E=ve(n.navbar.getElByPage(y))));else if(l.reloadPrevious)y=k.eq(k.length-2),g&&(E=ve(n.navbar.getElByPage(y)));else if(l.reloadAll)y=k.filter((e=>e!==b[0])),g&&(E=x.filter((e=>e!==C[0])));else{let t=[],a=[];if(k.length>1){let r=0;for(r=0;re!==b[0]&&t.indexOf(e)<0)),g&&(E=$.children(".navbar:not(.stacked)").filter((e=>e!==C[0]&&a.indexOf(a)<0))),t=[],a=[]}if(T&&!l.reloadAll&&((y.length>1||S)&&(y=y.filter((e=>!e.classList.contains("page-master")))),E&&(E.length>1||S)&&(E=E.filter((e=>!e.classList.contains("navbar-master"))))),e.params.browserHistory&&(l.browserHistory||l.replaceState)&&!l.reloadPrevious){const t=e.params.browserHistoryRoot||"";wt[l.reloadCurrent||S&&u||l.reloadAll||l.replaceState?"replace":"push"](i.id,{url:l.route.url},t+e.params.browserHistorySeparator+l.route.url)}l.reloadPrevious||(e.currentPageEl=b[0],g&&C.length?e.currentNavbarEl=C[0]:delete e.currentNavbarEl,e.currentRoute=l.route);const O=l.route.url;l.history&&(((l.reloadCurrent||S&&u)&&e.history.length)>0||l.replaceState?(S&&m>0&&(e.history=e.history.slice(0,e.history.length-m),e.propsHistory=e.propsHistory.slice(0,e.propsHistory.length-m)),e.history[e.history.length-(l.reloadPrevious?2:1)]=O,e.propsHistory[e.propsHistory.length-(l.reloadPrevious?2:1)]=l.props||{}):l.reloadPrevious?(e.history[e.history.length-2]=O,e.propsHistory[e.propsHistory.length-2]=l.props||{}):l.reloadAll?(e.history=[O],e.propsHistory=[l.props||{}]):(e.history.push(O),e.propsHistory.push(l.props||{}))),e.saveHistory();const I=b.parents(s).length>0,B=b[0].f7Component;if(l.reloadPrevious?(B&&!I?B.mount((e=>{ve(e).insertBefore(y)})):b.insertBefore(y),g&&C.length&&(C.find(".title-large").length&&C.addClass("navbar-large"),E.length?C.insertBefore(E):(e.$navbarsEl.parents(s).length||e.$el.prepend(e.$navbarsEl),$.append(C)))):(y.next(".page")[0]!==b[0]&&(B&&!I?B.mount((e=>{v.append(e)})):v.append(b[0])),g&&C.length&&(C.find(".title-large").length&&C.addClass("navbar-large"),e.$navbarsEl.parents(s).length||e.$el.prepend(e.$navbarsEl),$.append(C[0]))),I?l.route&&l.route.route&&l.route.route.keepAlive&&!b[0].f7PageMounted&&(b[0].f7PageMounted=!0,e.pageCallback("mounted",b,C,M,w?M:"current",l,y)):e.pageCallback("mounted",b,C,M,w?M:"current",l,y),(l.reloadCurrent||S)&&y.length>0?e.params.stackPages&&e.initialPages.indexOf(y[0])>=0?(y.addClass("stacked"),y.trigger("page:stack"),e.emit("pageStack",y[0]),g&&E.addClass("stacked")):(e.pageCallback("beforeOut",y,E,"current",void 0,l),e.pageCallback("afterOut",y,E,"current",void 0,l),e.pageCallback("beforeRemove",y,E,"current",void 0,l),e.removePage(y),g&&E&&E.length&&e.removeNavbar(E)):l.reloadAll?y.each(((t,a)=>{const r=ve(t),s=ve(n.navbar.getElByPage(r));e.params.stackPages&&e.initialPages.indexOf(r[0])>=0?(r.addClass("stacked"),r.trigger("page:stack"),e.emit("pageStack",r[0]),g&&s.addClass("stacked")):(r.hasClass("page-current")&&(e.pageCallback("beforeOut",y,E,"current",void 0,l),e.pageCallback("afterOut",y,E,"current",void 0,l)),e.pageCallback("beforeRemove",r,E&&E.eq(a),"previous",void 0,l),e.removePage(r),g&&s.length&&e.removeNavbar(s))})):l.reloadPrevious&&(e.params.stackPages&&e.initialPages.indexOf(y[0])>=0?(y.addClass("stacked"),y.trigger("page:stack"),e.emit("pageStack",y[0]),g&&E.addClass("stacked")):(e.pageCallback("beforeRemove",y,E,"previous",void 0,l),e.removePage(y),g&&E&&E.length&&e.removeNavbar(E))),l.route.route.tab&&e.tabLoad(l.route.route.tab,Re({},l,{history:!1,browserHistory:!1})),c&&i.checkMasterDetailBreakpoint(),e.pageCallback("init",b,C,M,w?M:"current",l,y),l.reloadCurrent||l.reloadAll||S)return e.allowPageChange=!0,e.pageCallback("beforeIn",b,C,M,"current",l),b.removeAttr("aria-hidden"),g&&C&&C.removeAttr("aria-hidden"),e.pageCallback("afterIn",b,C,M,"current",l),l.reloadCurrent&&l.clearPreviousHistory&&e.clearPreviousHistory(),S&&(e.setPagePosition(ve(d),"previous"),d.f7Page&&d.f7Page.navbarEl&&e.setNavbarPosition(ve(d.f7Page.navbarEl),"previous")),e;if(l.reloadPrevious)return e.allowPageChange=!0,e;function L(){e.setPagePosition(b,"current",!1),e.setPagePosition(y,"previous",!y.hasClass("page-master")),g&&(e.setNavbarPosition(C,"current",!1),e.setNavbarPosition(E,"previous",!E.hasClass("navbar-master"))),e.allowPageChange=!0,e.pageCallback("afterOut",y,E,"current","previous",l),e.pageCallback("afterIn",b,C,"next","current",l);let t=(e.params.preloadPreviousPage||e.params[`${n.theme}SwipeBack`])&&!p;t||(b.hasClass("smart-select-page")||b.hasClass("photo-browser-page")||b.hasClass("autocomplete-page")||b.hasClass("color-picker-page"))&&(t=!0),t||(e.params.stackPages?(y.addClass("stacked"),y.trigger("page:stack"),e.emit("pageStack",y[0]),g&&E.addClass("stacked")):b.attr("data-name")&&"smart-select-page"===b.attr("data-name")||(e.pageCallback("beforeRemove",y,E,"previous",void 0,l),e.removePage(y),g&&E.length&&e.removeNavbar(E))),l.clearPreviousHistory&&e.clearPreviousHistory(),e.emit("routeChanged",e.currentRoute,e.previousRoute,e),e.params.browserHistory&&wt.clearRouterQueue()}function R(){e.setPagePosition(y,"current",!1),e.setPagePosition(b,"next",!1),g&&(e.setNavbarPosition(E,"current",!1),e.setNavbarPosition(C,"next",!1))}if(e.pageCallback("beforeOut",y,E,"current","previous",l),e.pageCallback("beforeIn",b,C,"next","current",l),!l.animate||p&&n.width>=e.params.masterDetailBreakpoint)L();else{const t=e.params[`${e.app.theme}PageLoadDelay`];let a=e.params.transition;l.transition&&(a=l.transition),!a&&e.currentRoute&&e.currentRoute.route&&(a=e.currentRoute.route.transition),!a&&e.currentRoute&&e.currentRoute.route.options&&(a=e.currentRoute.route.options.transition),a&&(b[0].f7PageTransition=a),t?setTimeout((()=>{R(),e.animate(y,b,E,C,"forward",a,(()=>{L()}))}),t):(R(),e.animate(y,b,E,C,"forward",a,(()=>{L()})))}return e}function St(e,t,a,r){if(void 0===t&&(t={}),void 0===a&&(a={}),!e.allowPageChange&&!r)return e;const s=t,o=a,{url:n,content:i,el:l,pageName:c,component:p,componentUrl:d}=s;if(!o.reloadCurrent&&o.route&&o.route.route&&o.route.route.parentPath&&e.currentRoute.route&&e.currentRoute.route.parentPath===o.route.route.parentPath){if(o.route.url===e.url)return e.allowPageChange=!0,!1;let t=Object.keys(o.route.params).length===Object.keys(e.currentRoute.params).length;if(t&&Object.keys(o.route.params).forEach((a=>{a in e.currentRoute.params&&e.currentRoute.params[a]===o.route.params[a]||(t=!1)})),t)return!!o.route.route.tab&&e.tabLoad(o.route.route.tab,o);if(!t&&o.route.route.tab&&e.currentRoute.route.tab&&e.currentRoute.parentPath===o.route.parentPath)return e.tabLoad(o.route.route.tab,o)}if(o.route&&o.route.url&&e.url===o.route.url&&!o.reloadCurrent&&!o.reloadPrevious&&!e.params.allowDuplicateUrls)return e.allowPageChange=!0,!1;if(!o.route&&n&&(o.route=e.parseRouteUrl(n),Re(o.route,{route:{url:n,path:n}})),(n||d||p)&&(e.allowPageChange=!1),i)Tt(e,e.getPageEl(i),o);else if(l)Tt(e,e.getPageEl(l),o);else if(c)Tt(e,e.$el.children(`.page[data-name="${c}"]`).eq(0),o);else if(p||d)try{e.pageComponentLoader({routerEl:e.el,component:p,componentUrl:d,options:o,resolve:function(t,a){return Tt(e,t,Re(o,a))},reject:function(){return e.allowPageChange=!0,e}})}catch(t){throw e.allowPageChange=!0,t}else n&&(e.xhrAbortController&&(e.xhrAbortController.abort(),e.xhrAbortController=!1),e.xhrRequest(n,o).then((t=>{Tt(e,e.getPageEl(t),o)})).catch((()=>{e.allowPageChange=!0})));return e}function Pt(e,t,a){const s=Xe(),o=r(),n=ve(t),i=e.app,l=e.view,c=Re(!1,{animate:e.params.animate,browserHistory:!0,replaceState:!1},a),p=e.params.masterDetailBreakpoint>0,d=p&&c.route&&c.route.route&&(!0===c.route.route.master||"function"==typeof c.route.route.master&&c.route.route.master(i,e));let u,h;const m=e.dynamicNavbar,f=n,g=e.$el.children(".page-current"),v=0===g.length&&c.preload,b=p&&g.hasClass("page-master");let w,y,$,C,E,k;if(f.length&&e.removeThemeElements(f),m&&(y=f.children(".navbar"),w=e.$navbarsEl,0===y.length&&f[0]&&f[0].f7Page&&(y=f[0].f7Page.$navbarEl),$=w.find(".navbar-current")),e.allowPageChange=!1,0===f.length||0===g.length&&!c.preload)return e.allowPageChange=!0,e;if(e.removeThemeElements(f),c.route&&c.route.route&&c.route.route.keepAlive&&!c.route.route.keepAliveData&&(c.route.route.keepAliveData={pageEl:n[0]}),p){const t=e.$el.children(".page:not(.stacked)").filter((e=>e!==f[0]));for(let e=0;ee.history.indexOf(u.f7Page.route.url),!C&&!d&&u&&u.f7Page&&c.route.route.masterRoute&&(C=c.route.route.masterRoute.path===u.f7Page.route.route.path)}if(C&&u&&u.f7Page&&(E=e.history.indexOf(c.route.url)-e.history.indexOf(u.f7Page.route.url)==1),f.addClass(`page-${v?"current":"previous"}${d?" page-master":""}${C?" page-master-detail":""}${E?" page-master-detail-root":""}`).removeClass("stacked").removeAttr("aria-hidden").trigger("page:unstack").trigger("page:position",{position:v?"current":"previous"}),e.emit("pageUnstack",f[0]),e.emit("pagePosition",f[0],v?"current":"previous"),(d||C)&&(f.trigger("page:role",{role:d?"master":"detail",root:!!E}),e.emit("pageRole",f[0],{role:d?"master":"detail",detailRoot:!!E})),m&&y.length>0&&(y.addClass(`navbar-${v?"current":"previous"}${d?" navbar-master":""}${C?" navbar-master-detail":""}${E?" navbar-master-detail-root":""}`).removeClass("stacked").removeAttr("aria-hidden"),y.trigger("navbar:position",{position:v?"current":"previous"}),e.emit("navbarPosition",y[0],v?"current":"previous"),(d||E)&&e.emit("navbarRole",y[0],{role:d?"master":"detail",detailRoot:!!E})),c.force&&(g.prev(".page-previous:not(.stacked)").length>0||0===g.prev(".page-previous").length))if(e.history.indexOf(c.route.url)>=0?(k=e.history.length-e.history.indexOf(c.route.url)-1,e.history=e.history.slice(0,e.history.indexOf(c.route.url)+2),e.propsHistory=e.propsHistory.slice(0,e.history.indexOf(c.route.url)+2),l.history=e.history):e.history[[e.history.length-2]]?e.propsHistory[e.propsHistory.length-2]=c.props||{}:(e.history.unshift(e.url),e.propsHistory.unshift(c.props||{})),k&&e.params.stackPages)g.prevAll(".page-previous").each((t=>{const a=ve(t);let r;m&&(r=ve(i.navbar.getElByPage(a))),a[0]!==f[0]&&a.index()>f.index()&&(e.initialPages.indexOf(a[0])>=0?(a.addClass("stacked"),a.trigger("page:stack"),e.emit("pageStack",a[0]),m&&r.addClass("stacked")):(e.pageCallback("beforeRemove",a,r,"previous",void 0,c),a[0]===u&&(h=!0),e.removePage(a),m&&r.length>0&&e.removeNavbar(r)))}));else{const t=g.prev(".page-previous:not(.stacked)");let a;m&&(a=ve(i.navbar.getElByPage(t))),e.params.stackPages&&e.initialPages.indexOf(t[0])>=0?(t.addClass("stacked"),t.trigger("page:stack"),e.emit("pageStack",t[0]),a.addClass("stacked")):t.length>0&&(e.pageCallback("beforeRemove",t,a,"previous",void 0,c),t[0]===u&&(h=!0),e.removePage(t),m&&a.length&&e.removeNavbar(a))}const x=f.parents(o).length>0,T=f[0].f7Component;function S(){v&&(!x&&T?T.mount((t=>{e.$el.append(t)})):e.$el.append(f)),0===f.next(g).length&&(!x&&T?T.mount((e=>{ve(e).insertBefore(g)})):f.insertBefore(g)),m&&y.length&&(y.find(".title-large").length&&y.addClass("navbar-large"),y.insertBefore($),$.length>0?y.insertBefore($):(e.$navbarsEl.parents(o).length||e.$el.prepend(e.$navbarsEl),w.append(y))),x?c.route&&c.route.route&&c.route.route.keepAlive&&!f[0].f7PageMounted&&(f[0].f7PageMounted=!0,e.pageCallback("mounted",f,y,"previous","current",c,g)):e.pageCallback("mounted",f,y,"previous","current",c,g)}if(c.preload){S(),c.route.route.tab&&e.tabLoad(c.route.route.tab,Re({},c,{history:!1,browserHistory:!1,preload:!0})),d&&(f.removeClass("page-master-stacked").trigger("page:masterunstack"),e.emit("pageMasterUnstack",f[0]),m&&(ve(i.navbar.getElByPage(f)).removeClass("navbar-master-stacked"),e.emit("navbarMasterUnstack",i.navbar.getElByPage(f)))),e.pageCallback("init",f,y,"previous","current",c,g),v&&(e.pageCallback("beforeIn",f,y,"current",void 0,c),e.pageCallback("afterIn",f,y,"current",void 0,c));const t=f.prevAll(".page-previous:not(.stacked):not(.page-master)");return t.length>0&&t.each((t=>{const a=ve(t);let r;m&&(r=ve(i.navbar.getElByPage(a))),e.params.stackPages&&e.initialPages.indexOf(t)>=0?(a.addClass("stacked"),a.trigger("page:stack"),e.emit("pageStack",a[0]),m&&r.addClass("stacked")):(e.pageCallback("beforeRemove",a,r,"previous",void 0),e.removePage(a),m&&r.length&&e.removeNavbar(r))})),e.allowPageChange=!0,e}if(!(s.ie||s.edge||s.firefox&&!s.ios)&&e.params.browserHistory&&c.browserHistory)if(c.replaceState){const t=e.params.browserHistoryRoot||"";wt.replace(l.id,{url:c.route.url},t+e.params.browserHistorySeparator+c.route.url)}else k?wt.go(-k):wt.back();if(c.replaceState?(e.history[e.history.length-1]=c.route.url,e.propsHistory[e.propsHistory.length-1]=c.props||{}):(1===e.history.length&&(e.history.unshift(e.url),e.propsHistory.unshift(c.props||{})),e.history.pop(),e.propsHistory.pop()),e.saveHistory(),e.currentPageEl=f[0],m&&y.length?e.currentNavbarEl=y[0]:delete e.currentNavbarEl,e.currentRoute=c.route,(s.ie||s.edge||s.firefox&&!s.ios)&&e.params.browserHistory&&c.browserHistory)if(c.replaceState){const t=e.params.browserHistoryRoot||"";wt.replace(l.id,{url:c.route.url},t+e.params.browserHistorySeparator+c.route.url)}else k?wt.go(-k):wt.back();function P(){e.setPagePosition(f,"current",!1),e.setPagePosition(g,"next",!0),m&&(e.setNavbarPosition(y,"current",!1),e.setNavbarPosition($,"next",!0)),e.pageCallback("afterOut",g,$,"current","next",c),e.pageCallback("afterIn",f,y,"previous","current",c),e.params.stackPages&&e.initialPages.indexOf(g[0])>=0?(g.addClass("stacked"),g.trigger("page:stack"),e.emit("pageStack",g[0]),m&&$.addClass("stacked")):(e.pageCallback("beforeRemove",g,$,"next",void 0,c),e.removePage(g),m&&$.length&&e.removeNavbar($)),e.allowPageChange=!0,e.emit("routeChanged",e.currentRoute,e.previousRoute,e);(e.params.preloadPreviousPage||e.params[`${i.theme}SwipeBack`])&&e.history[e.history.length-2]&&!d&&e.back(e.history[e.history.length-2],{preload:!0,props:e.propsHistory[e.propsHistory.length-2]||{}}),e.params.browserHistory&&wt.clearRouterQueue()}if(S(),c.route.route.tab&&e.tabLoad(c.route.route.tab,Re({},c,{history:!1,browserHistory:!1})),p&&(b||h)&&l.checkMasterDetailBreakpoint(!1),e.pageCallback("init",f,y,"previous","current",c,g),e.pageCallback("beforeOut",g,$,"current","next",c),e.pageCallback("beforeIn",f,y,"previous","current",c),!c.animate||b&&i.width>=e.params.masterDetailBreakpoint)P();else{let t=e.params.transition;g[0]&&g[0].f7PageTransition&&(t=g[0].f7PageTransition,delete g[0].f7PageTransition),c.transition&&(t=c.transition),!t&&e.previousRoute&&e.previousRoute.route&&(t=e.previousRoute.route.transition),!t&&e.previousRoute&&e.previousRoute.route&&e.previousRoute.route.options&&(t=e.previousRoute.route.options.transition),e.setPagePosition(g,"current"),e.setPagePosition(f,"previous",!1),m&&(e.setNavbarPosition($,"current"),e.setNavbarPosition(y,"previous",!1)),e.animate(g,f,$,y,"backward",t,(()=>{P()}))}return e}function Mt(e,t,a,r){if(!e.allowPageChange&&!r)return e;const s=t,o=a,{url:n,content:i,el:l,pageName:c,component:p,componentUrl:d}=s;if(o.route.url&&e.url===o.route.url&&!o.reloadCurrent&&!o.reloadPrevious&&!e.params.allowDuplicateUrls)return e.allowPageChange=!0,!1;if(!o.route&&n&&(o.route=e.parseRouteUrl(n)),(n||d||p)&&(e.allowPageChange=!1),i)Pt(e,e.getPageEl(i),o);else if(l)Pt(e,e.getPageEl(l),o);else if(c)Pt(e,e.$el.children(`.page[data-name="${c}"]`).eq(0),o);else if(p||d)try{e.pageComponentLoader({routerEl:e.el,component:p,componentUrl:d,options:o,resolve:function(t,a){return Pt(e,t,Re(o,a))},reject:function(){return e.allowPageChange=!0,e}})}catch(t){throw e.allowPageChange=!0,t}else n&&(e.xhrAbortController&&(e.xhrAbortController.abort(),e.xhrAbortController=!1),e.xhrRequest(n,o).then((t=>{Pt(e,e.getPageEl(t),o)})).catch((()=>{e.allowPageChange=!0})));return e}class Ot extends Ge{constructor(e,t){super({},[void 0===t?e:t]);const a=this;a.isAppRouter=void 0===t,a.isAppRouter?Re(!1,a,{app:e,params:e.params.view,routes:e.routes||[],cache:e.cache}):Re(!1,a,{app:e,view:t,viewId:t.id,id:t.params.routerId,params:t.params,routes:t.routes,history:t.history,propsHistory:[],scrollHistory:t.scrollHistory,cache:e.cache,dynamicNavbar:"ios"===e.theme&&t.params.iosDynamicNavbar,initialPages:[],initialNavbars:[]}),a.useModules(),a.allowPageChange=!0;let r={},s={};return Object.defineProperty(a,"currentRoute",{enumerable:!0,configurable:!0,set(e){void 0===e&&(e={}),s=Re({},r),r=e,r&&(a.url=r.url,a.emit("routeChange",e,s,a))},get:()=>r}),Object.defineProperty(a,"previousRoute",{enumerable:!0,configurable:!0,get:()=>s,set(e){s=e}}),a}mount(){const e=this,t=e.view;Re(!1,e,{tempDom:r().createElement("div"),$el:t.$el,el:t.el,$navbarsEl:t.$navbarsEl,navbarsEl:t.navbarsEl}),e.emit("local::mount routerMount",e)}animatableNavElements(e,t,a,r,s){const o=this,n=o.dynamicNavbar,i=o.params.iosAnimateNavbarBackIcon;let l,c;function p(e,t){const a=e.hasClass("sliding")||t.hasClass("sliding"),r=e.hasClass("subnavbar"),s=!a||!r,o=e.find(".back .icon");let n;return a&&i&&e.hasClass("left")&&o.length>0&&o.next("span").length&&(e=o.next("span"),n=!0),{$el:e,isIconLabel:n,leftOffset:e[0].f7NavbarLeftOffset,rightOffset:e[0].f7NavbarRightOffset,isSliding:a,isSubnavbar:r,needsOpacityTransition:s}}return n&&(l=[],c=[],e.children(".navbar-inner").children(".left, .right, .title, .subnavbar").each((t=>{const o=ve(t);o.hasClass("left")&&r&&"forward"===s||o.hasClass("title")&&a||l.push(p(o,e.children(".navbar-inner")))})),t.hasClass("navbar-master")&&o.params.masterDetailBreakpoint>0&&o.app.width>=o.params.masterDetailBreakpoint||t.children(".navbar-inner").children(".left, .right, .title, .subnavbar").each((e=>{const o=ve(e);o.hasClass("left")&&a&&!r&&"forward"===s||o.hasClass("left")&&a&&"backward"===s||o.hasClass("title")&&r||c.push(p(o,t.children(".navbar-inner")))})),[c,l].forEach((e=>{e.forEach((t=>{const a=t,{isSliding:r,$el:s}=t,o=e===c?l:c;r&&s.hasClass("title")&&o&&o.forEach((e=>{if(e.isIconLabel){const t=e.$el[0];a.leftOffset+=t&&t.offsetLeft||0}}))}))}))),{newNavEls:l,oldNavEls:c}}animate(e,t,a,r,s,o,n){const i=this;if(i.params.animateCustom)return void i.params.animateCustom.apply(i,[e,t,a,r,s,n]);const l=i.dynamicNavbar,c="ios"===i.app.theme;if(o){const c=`router-transition-custom router-transition-${o}-${s}`,p=()=>{i.$el.removeClass(c),l&&i.$navbarsEl.length&&(r&&i.$navbarsEl.prepend(r),a&&i.$navbarsEl.prepend(a)),n&&n()};return("forward"===s?t:e).animationEnd(p),l&&(r&&t&&(i.setNavbarPosition(r,""),r.removeClass("navbar-next navbar-previous navbar-current"),t.prepend(r)),a&&e&&(i.setNavbarPosition(a,""),a.removeClass("navbar-next navbar-previous navbar-current"),e.prepend(a))),void i.$el.addClass(c)}const p=`router-transition-${s} router-transition`;let d,u,h,m,f,g,v;if(c&&l){i.params.masterDetailBreakpoint>0&&i.app.width>=i.params.masterDetailBreakpoint&&(a.hasClass("navbar-master")&&r.hasClass("navbar-master-detail")||a.hasClass("navbar-master-detail")&&r.hasClass("navbar-master"))||(g=a&&a.hasClass("navbar-large"),v=r&&r.hasClass("navbar-large"),h=g&&!a.hasClass("navbar-large-collapsed"),m=v&&!r.hasClass("navbar-large-collapsed"),f=h&&!m||m&&!h);const e=i.animatableNavElements(r,a,m,h,s);d=e.newNavEls,u=e.oldNavEls}function b(e){c&&l&&(1===e&&(m&&(r.addClass("router-navbar-transition-to-large"),a.addClass("router-navbar-transition-to-large")),h&&(r.addClass("router-navbar-transition-from-large"),a.addClass("router-navbar-transition-from-large"))),d.forEach((t=>{const a=t.$el,r="forward"===s?t.rightOffset:t.leftOffset;t.isSliding&&(t.isSubnavbar&&v?a[0].style.setProperty("transform",`translate3d(${r*(1-e)}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`,"important"):a.transform(`translate3d(${r*(1-e)}px,0,0)`))})),u.forEach((t=>{const a=t.$el,r="forward"===s?t.leftOffset:t.rightOffset;t.isSliding&&(t.isSubnavbar&&g?a.transform(`translate3d(${r*e}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`):a.transform(`translate3d(${r*e}px,0,0)`))})))}("forward"===s?t:e).animationEnd((()=>{i.dynamicNavbar&&(r&&(r.removeClass("router-navbar-transition-to-large router-navbar-transition-from-large"),r.addClass("navbar-no-title-large-transition"),Se((()=>{r.removeClass("navbar-no-title-large-transition")}))),a&&a.removeClass("router-navbar-transition-to-large router-navbar-transition-from-large"),r.hasClass("sliding")||r.children(".navbar-inner.sliding").length?r.find(".title, .left, .right, .left .icon, .subnavbar").transform(""):r.find(".sliding").transform(""),a.hasClass("sliding")||a.children(".navbar-inner.sliding").length?a.find(".title, .left, .right, .left .icon, .subnavbar").transform(""):a.find(".sliding").transform("")),i.$el.removeClass(p),n&&n()})),l?(b(0),Se((()=>{i.$el.addClass(p),f&&(i.el._clientLeft=i.el.clientLeft),b(1)}))):i.$el.addClass(p)}removeModal(e){this.removeEl(e)}removeTabContent(e){ve(e).html("")}removeNavbar(e){this.removeEl(e)}removePage(e){const t=ve(e),a=t&&t[0]&&t[0].f7Page;a&&a.route&&a.route.route&&a.route.route.keepAlive?t.remove():this.removeEl(e)}removeEl(e){if(!e)return;const t=this,a=ve(e);0!==a.length&&(a.find(".tab").each((e=>{ve(e).children().each((e=>{e.f7Component&&(ve(e).trigger("tab:beforeremove"),e.f7Component.destroy())}))})),a[0].f7Component&&a[0].f7Component.destroy&&a[0].f7Component.destroy(),t.params.removeElements&&(t.params.removeElementsWithTimeout?setTimeout((()=>{a.remove()}),t.params.removeElementsTimeout):a.remove()))}getPageEl(e){const t=this;if("string"==typeof e)t.tempDom.innerHTML=e;else{if(ve(e).hasClass("page"))return e;t.tempDom.innerHTML="",ve(t.tempDom).append(e)}return t.findElement(".page",t.tempDom)}findElement(e,t,a){const r=this,s=r.view,o=r.app,n=ve(t);let i=e;a&&(i+=":not(.stacked)");let l=n.find(i).filter((e=>0===ve(e).parents(".popup, .dialog, .popover, .actions-modal, .sheet-modal, .login-screen, .page").length));return l.length>1&&("string"==typeof s.selector&&(l=n.find(`${s.selector} ${i}`)),l.length>1&&(l=n.find(`.${o.params.viewMainClass} ${i}`))),1===l.length?l:(a||(l=r.findElement(i,n,!0)),l&&1===l.length?l:l&&l.length>1?ve(l[0]):void 0)}flattenRoutes(e){void 0===e&&(e=this.routes);const t=this;let a=[];return e.forEach((e=>{let r=!1;if("tabs"in e&&e.tabs){const s=e.tabs.map((t=>{const a=Re({},e,{path:`${e.path}/${t.path}`.replace("///","/").replace("//","/"),parentPath:e.path,tab:t});return delete a.tabs,delete a.routes,a}));r=!0,a=a.concat(t.flattenRoutes(s))}if("detailRoutes"in e){const r=e.detailRoutes.map((t=>{const a=Re({},t);return a.masterRoute=e,a.masterRoutePath=e.path,a}));a=a.concat(e,t.flattenRoutes(r))}if("routes"in e){const s=e.routes.map((t=>{const a=Re({},t);return a.path=`${e.path}/${a.path}`.replace("///","/").replace("//","/"),a}));a=r?a.concat(t.flattenRoutes(s)):a.concat(e,t.flattenRoutes(s))}"routes"in e||"tabs"in e&&e.tabs||"detailRoutes"in e||a.push(e)})),a}parseRouteUrl(e){if(!e)return{};const t=Me(e),a=e.split("#")[1],r=e.split("#")[0].split("?")[0];return{query:t,hash:a,params:{},url:e,path:r}}generateUrl(e){if(void 0===e&&(e={}),"string"==typeof e)return e;const{name:t,path:a,params:r,query:s}=e;if(!t&&!a)throw new Error('Framework7: "name" or "path" parameter is required');const o=this,n=t?o.findRouteByKey("name",t):o.findRouteByKey("path",a);if(!n)throw t?new Error(`Framework7: route with name "${t}" not found`):new Error(`Framework7: route with path "${a}" not found`);const i=o.constructRouteUrl(n,{params:r,query:s});if(!i)throw new Error(`Framework7: can't construct URL for route with name "${t}"`);return i}constructRouteUrl(e,t){let{params:a,query:r}=void 0===t?{}:t;const{path:s}=e,o=mt(s);let n;try{n=o(a||{})}catch(e){throw new Error(`Framework7: error constructing route URL from passed params:\nRoute: ${s}\n${e.toString()}`)}return r&&("string"==typeof r?n+=`?${r}`:Object.keys(r).length&&(n+=`?${Ie(r)}`)),n}findTabRouteUrl(e){const t=this,a=ve(e),r=t.currentRoute.route.parentPath,s=a.attr("id");let o;return t.flattenRoutes(t.routes).forEach((e=>{e.parentPath===r&&e.tab&&e.tab.id===s&&(o=t.currentRoute.params&&Object.keys(t.currentRoute.params).length>0?t.constructRouteUrl(e,{params:t.currentRoute.params,query:t.currentRoute.query}):e.path)})),o}findRouteByKey(e,t){const a=this.routes;let r;return this.flattenRoutes(a).forEach((a=>{r||a[e]===t&&(r=a)})),r}findMatchingRoute(e){if(!e)return;const t=this,a=t.routes,r=t.flattenRoutes(a),{path:s,query:o,hash:n,params:i}=t.parseRouteUrl(e);let l;return r.forEach((t=>{if(l)return;const a=[],r=[t.path];let c;if(t.alias&&("string"==typeof t.alias?r.push(t.alias):Array.isArray(t.alias)&&t.alias.forEach((e=>{r.push(e)}))),r.forEach((e=>{c||(c=bt(e,a).exec(s))})),c){let r;a.forEach(((e,t)=>{if("number"==typeof e.name)return;const a=c[t+1];i[e.name]=null==a?a:decodeURIComponent(a)})),t.parentPath&&(r=s.split("/").slice(0,t.parentPath.split("/").length-1).join("/")),l={query:o,hash:n,params:i,url:e,path:s,parentPath:r,route:t,name:t.name}}})),l}replaceRequestUrlParams(e,t){void 0===e&&(e=""),void 0===t&&(t={});let a=e;return"string"==typeof a&&a.indexOf("{{")>=0&&t&&t.route&&t.route.params&&Object.keys(t.route.params).length&&Object.keys(t.route.params).forEach((e=>{const r=new RegExp(`{{${e}}}`,"g");a=a.replace(r,t.route.params[e]||"")})),a}removeFromXhrCache(e){const t=this.cache.xhr;let a=!1;for(let r=0;r=0;return r.passRouteQueryToRequest&&t&&t.route&&t.route.query&&Object.keys(t.route.query).length&&(o+=`${n?"&":"?"}${Ie(t.route.query)}`,n=!0),r.passRouteParamsToRequest&&t&&t.route&&t.route.params&&Object.keys(t.route.params).length&&(o+=`${n?"&":"?"}${Ie(t.route.params)}`,n=!0),o.indexOf("{{")>=0&&(o=a.replaceRequestUrlParams(o,t)),r.xhrCacheIgnoreGetParameters&&o.indexOf("?")>=0&&(o=o.split("?")[0]),new Promise(((e,n)=>{if(r.xhrCache&&!s&&o.indexOf("nocache")<0&&r.xhrCacheIgnore.indexOf(o)<0)for(let t=0;t=200&&s.status<300||0===s.status?(r.xhrCache&&""!==s.responseText&&(a.removeFromXhrCache(o),a.cache.xhr.push({url:o,time:Pe(),content:s.responseText})),a.emit("routerAjaxSuccess",s,t),e(s.responseText)):(a.emit("routerAjaxError",s,t),n(s))},error(e){a.emit("routerAjaxError",e,t),n(e)}})}))}setNavbarPosition(e,t,a){e.removeClass("navbar-previous navbar-current navbar-next"),t&&e.addClass(`navbar-${t}`),!1===a?e.removeAttr("aria-hidden"):!0===a&&e.attr("aria-hidden","true"),e.trigger("navbar:position",{position:t}),this.emit("navbarPosition",e[0],t)}setPagePosition(e,t,a){e.removeClass("page-previous page-current page-next"),e.addClass(`page-${t}`),!1===a?e.removeAttr("aria-hidden"):!0===a&&e.attr("aria-hidden","true"),e.trigger("page:position",{position:t}),this.emit("pagePosition",e[0],t)}removeThemeElements(e){const t=this.app.theme;let a;"ios"===t?a=".md-only, .aurora-only, .if-md, .if-aurora, .if-not-ios, .not-ios":"md"===t?a=".ios-only, .aurora-only, .if-ios, .if-aurora, .if-not-md, .not-md":"aurora"===t&&(a=".ios-only, .md-only, .if-ios, .if-md, .if-not-aurora, .not-aurora"),ve(e).find(a).remove()}getPageData(e,t,a,r,s,o){void 0===s&&(s={});const n=this,i=ve(e).eq(0),l=ve(t).eq(0),c=i[0].f7Page||{};let p,d;if(("next"===a&&"current"===r||"current"===a&&"previous"===r)&&(p="forward"),("current"===a&&"next"===r||"previous"===a&&"current"===r)&&(p="backward"),c&&!c.fromPage){const e=ve(o);e.length&&(d=e[0].f7Page)}d=c.pageFrom||d,d&&d.pageFrom&&(d.pageFrom=null);const u={app:n.app,view:n.view,router:n,$el:i,el:i[0],$pageEl:i,pageEl:i[0],$navbarEl:l,navbarEl:l[0],name:i.attr("data-name"),position:a,from:a,to:r,direction:p,route:c.route?c.route:s,pageFrom:d};return i[0].f7Page=u,u}pageCallback(e,t,a,r,s,o,n){if(void 0===o&&(o={}),!t)return;const i=this,l=ve(t);if(!l.length)return;const c=ve(a),{route:p}=o,d=i.params.restoreScrollTopOnBack&&!(i.params.masterDetailBreakpoint>0&&l.hasClass("page-master")&&i.app.width>=i.params.masterDetailBreakpoint),u=l[0].f7Page&&l[0].f7Page.route&&l[0].f7Page.route.route&&l[0].f7Page.route.route.keepAlive;"beforeRemove"===e&&u&&(e="beforeUnmount");const h=`page${e[0].toUpperCase()+e.slice(1,e.length)}`,m=`page:${e.toLowerCase()}`;let f={};f="beforeRemove"===e&&l[0].f7Page?Re(l[0].f7Page,{from:r,to:s,position:r}):i.getPageData(l[0],c[0],r,s,p,n),f.swipeBack=!!o.swipeBack;const{on:g={},once:v={}}=o.route?o.route.route:{};function b(){l[0].f7RouteEventsAttached||(l[0].f7RouteEventsAttached=!0,g&&Object.keys(g).length>0&&(l[0].f7RouteEventsOn=g,Object.keys(g).forEach((e=>{g[e]=g[e].bind(i),l.on(Ee(e),g[e])}))),v&&Object.keys(v).length>0&&(l[0].f7RouteEventsOnce=v,Object.keys(v).forEach((e=>{v[e]=v[e].bind(i),l.once(Ee(e),v[e])}))))}if(o.on&&Re(g,o.on),o.once&&Re(v,o.once),"mounted"===e&&b(),"init"===e){if(d&&("previous"===r||!r)&&"current"===s&&i.scrollHistory[f.route.url]&&!l.hasClass("no-restore-scroll")){let e=l.find(".page-content");e.length>0&&(e=e.filter((e=>0===ve(e).parents(".tab:not(.tab-active)").length&&!ve(e).is(".tab:not(.tab-active)")))),e.scrollTop(i.scrollHistory[f.route.url])}if(b(),l[0].f7PageInitialized)return l.trigger("page:reinit",f),void i.emit("pageReinit",f);l[0].f7PageInitialized=!0}if(d&&"beforeOut"===e&&"current"===r&&"previous"===s){let e=l.find(".page-content");e.length>0&&(e=e.filter((e=>0===ve(e).parents(".tab:not(.tab-active)").length&&!ve(e).is(".tab:not(.tab-active)")))),i.scrollHistory[f.route.url]=e.scrollTop()}d&&"beforeOut"===e&&"current"===r&&"next"===s&&delete i.scrollHistory[f.route.url],l.trigger(m,f),i.emit(h,f),"beforeRemove"!==e&&"beforeUnmount"!==e||(l[0].f7RouteEventsAttached&&(l[0].f7RouteEventsOn&&Object.keys(l[0].f7RouteEventsOn).forEach((e=>{l.off(Ee(e),l[0].f7RouteEventsOn[e])})),l[0].f7RouteEventsOnce&&Object.keys(l[0].f7RouteEventsOnce).forEach((e=>{l.off(Ee(e),l[0].f7RouteEventsOnce[e])})),l[0].f7RouteEventsAttached=null,l[0].f7RouteEventsOn=null,l[0].f7RouteEventsOnce=null,delete l[0].f7RouteEventsAttached,delete l[0].f7RouteEventsOn,delete l[0].f7RouteEventsOnce),u||(l[0].f7Page&&l[0].f7Page.navbarEl&&delete l[0].f7Page.navbarEl.f7Page,l[0].f7Page=null))}saveHistory(){const e=this,t=o();e.view.history=e.history,e.params.browserHistory&&e.params.browserHistoryStoreHistory&&t.localStorage&&(t.localStorage[`f7router-${e.view.id}-history`]=JSON.stringify(e.history))}restoreHistory(){const e=this,t=o();e.params.browserHistory&&e.params.browserHistoryStoreHistory&&t.localStorage&&t.localStorage[`f7router-${e.view.id}-history`]&&(e.history=JSON.parse(t.localStorage[`f7router-${e.view.id}-history`]),e.view.history=e.history)}clearHistory(){const e=this;e.history=[],e.view&&(e.view.history=[]),e.saveHistory()}updateCurrentUrl(e){const t=this;kt(t,"updateCurrentUrl"),t.history.length?t.history[t.history.length-1]=e:t.history.push(e);const{query:a,hash:r,params:s,url:o,path:n}=t.parseRouteUrl(e);if(t.currentRoute&&Re(t.currentRoute,{query:a,hash:r,params:s,url:o,path:n}),t.params.browserHistory){const a=t.params.browserHistoryRoot||"";wt.replace(t.view.id,{url:e},a+t.params.browserHistorySeparator+e)}t.saveHistory(),t.emit("routeUrlUpdate",t.currentRoute,t)}getInitialUrl(){const e=this;if(e.initialUrl)return{initialUrl:e.initialUrl,historyRestored:e.historyRestored};const{app:t,view:a}=e,s=r(),n=o(),i=t.params.url&&"string"==typeof t.params.url&&"undefined"!=typeof URL?new URL(t.params.url):s.location;let l,c=e.params.url,p=i.href.split(i.origin)[1];const{browserHistory:d,browserHistoryOnLoad:u,browserHistorySeparator:h}=e.params;let{browserHistoryRoot:m}=e.params;return(n.cordova||n.Capacitor&&n.Capacitor.isNative)&&d&&!h&&!m&&i.pathname.indexOf("index.html")&&(console.warn("Framework7: wrong or not complete browserHistory configuration, trying to guess browserHistoryRoot"),m=i.pathname.split("index.html")[0]),d&&u?(m&&p.indexOf(m)>=0&&(p=p.substring(p.indexOf(m)+m.length),""===p&&(p="/")),c=h.length>0&&p.indexOf(h)>=0?p.substring(p.indexOf(h)+h.length):p,e.restoreHistory(),e.history.indexOf(c)>=0?e.history=e.history.slice(0,e.history.indexOf(c)+1):e.params.url===c?e.history=[c]:wt.state&&wt.state[a.id]&&wt.state[a.id].url===e.history[e.history.length-1]?c=e.history[e.history.length-1]:e.history=[p.split(h)[0]||"/",c],e.history.length>1?l=!0:e.history=[],e.saveHistory()):(c||(c=p),i.search&&c.indexOf("?")<0&&(c+=i.search),i.hash&&c.indexOf("#")<0&&(c+=i.hash)),e.initialUrl=c,e.historyRestored=l,{initialUrl:c,historyRestored:l}}init(){const e=this,{app:t,view:a}=e,s=r();e.mount();const{initialUrl:o,historyRestored:n}=e.getInitialUrl();(a&&e.params.iosSwipeBack&&"ios"===t.theme||a&&e.params.mdSwipeBack&&"md"===t.theme||a&&e.params.auroraSwipeBack&&"aurora"===t.theme)&&yt(e);const{browserHistory:i,browserHistoryOnLoad:l,browserHistoryAnimateOnLoad:c,browserHistoryInitialMatch:p}=e.params;let d;if(e.history.length>1){const t=p?o:e.history[0];d=e.findMatchingRoute(t),d||(d=Re(e.parseRouteUrl(t),{route:{url:t,path:t.split("?")[0]}}))}else d=e.findMatchingRoute(o),d||(d=Re(e.parseRouteUrl(o),{route:{url:o,path:o.split("?")[0]}}));if(e.params.stackPages&&e.$el.children(".page").each((t=>{const a=ve(t);e.initialPages.push(a[0]),e.dynamicNavbar&&a.children(".navbar").length>0&&e.initialNavbars.push(a.children(".navbar")[0])})),0===e.$el.children(".page:not(.stacked)").length&&o&&e.params.loadInitialPage)e.navigate(o,{initial:!0,reloadCurrent:!0,browserHistory:!1,animate:!1,once:{modalOpen(){if(!n)return;(e.params.preloadPreviousPage||e.params[`${t.theme}SwipeBack`])&&e.history.length>1&&e.back({preload:!0})},pageAfterIn(){if(!n)return;(e.params.preloadPreviousPage||e.params[`${t.theme}SwipeBack`])&&e.history.length>1&&e.back({preload:!0})}}});else if(e.$el.children(".page:not(.stacked)").length){let r;if(e.currentRoute=d,e.$el.children(".page:not(.stacked)").each((o=>{const n=ve(o);let i;e.setPagePosition(n,"current"),e.dynamicNavbar&&(i=n.children(".navbar"),i.length>0?(e.$navbarsEl.parents(s).length||e.$el.prepend(e.$navbarsEl),e.setNavbarPosition(i,"current"),e.$navbarsEl.append(i),i.children(".title-large").length&&i.addClass("navbar-large"),n.children(".navbar").remove()):(e.$navbarsEl.addClass("navbar-hidden"),i.children(".title-large").length&&e.$navbarsEl.addClass("navbar-hidden navbar-large-hidden"))),e.currentRoute&&e.currentRoute.route&&(!0===e.currentRoute.route.master||"function"==typeof e.currentRoute.route.master&&e.currentRoute.route.master(t,e))&&e.params.masterDetailBreakpoint>0&&(n.addClass("page-master"),n.trigger("page:role",{role:"master"}),i&&i.length&&i.addClass("navbar-master"),a.checkMasterDetailBreakpoint());const l={route:e.currentRoute};e.currentRoute&&e.currentRoute.route&&e.currentRoute.route.options&&Re(l,e.currentRoute.route.options),e.currentPageEl=n[0],e.dynamicNavbar&&i.length&&(e.currentNavbarEl=i[0]),e.removeThemeElements(n),e.dynamicNavbar&&i.length&&e.removeThemeElements(i),l.route.route.tab&&(r=!0,e.tabLoad(l.route.route.tab,Re({},l))),e.pageCallback("init",n,i,"current",void 0,l),e.pageCallback("beforeIn",n,i,"current",void 0,l),e.pageCallback("afterIn",n,i,"current",void 0,l)})),n)if(p){(e.params.preloadPreviousPage||e.params[`${t.theme}SwipeBack`])&&e.history.length>1&&e.back({preload:!0})}else e.navigate(o,{initial:!0,browserHistory:!1,history:!1,animate:c,once:{pageAfterIn(){(e.params.preloadPreviousPage||e.params[`${t.theme}SwipeBack`])&&e.history.length>2&&e.back({preload:!0})}}});n||r||(e.history.push(o),e.saveHistory())}!(o&&i&&l)||wt.state&&wt.state[a.id]||wt.initViewState(a.id,{url:o}),e.emit("local::init routerInit",e)}destroy(){let e=this;e.emit("local::destroy routerDestroy",e),Object.keys(e).forEach((t=>{e[t]=null,delete e[t]})),e=null}}Ot.prototype.navigate=function(e,t){void 0===t&&(t={});const a=this;if(a.swipeBackActive)return a;let r,s,o,n,i,l,c;if("string"==typeof e?r=e:(r=e.url,s=e.route,o=e.name,n=e.path,i=e.query,l=e.params),o||n)return r=a.generateUrl({path:n,name:o,params:l,query:i}),r?a.navigate(r,t):a;const p=a.app;if(kt(a,"navigate"),"#"===r||""===r)return a;let d=r.replace("./","");if("/"!==d[0]&&0!==d.indexOf("#")){const e=a.currentRoute.parentPath||a.currentRoute.path;d=((e?`${e}/`:"/")+d).replace("///","/").replace("//","/")}if(c=s?Re(a.parseRouteUrl(d),{route:Re({},s)}):a.findMatchingRoute(d),!c)return a;if(c.route&&c.route.viewName){const r=c.route.viewName,s=p.views[r];if(!s)throw new Error(`Framework7: There is no View with "${r}" name that was specified in this route`);if(s!==a.view)return s.router.navigate(e,t)}if(c.route.redirect)return $t.call(a,"forward",c,t);const u={};if(c.route.options?Re(u,c.route.options,t):Re(u,t),u.openIn&&(!a.params.ignoreOpenIn||a.params.ignoreOpenIn&&a.history.length>0))return a.openIn(a,d,u);function h(){let e=!1;function t(e,t){a.allowPageChange=!1;let r=!1;"popup popover sheet loginScreen actions customModal panel".split(" ").forEach((s=>{if(e[s]){r=!0;const o=Re({},c,{route:e});a.allowPageChange=!0,a.modalLoad(s,o,Re(u,t),"forward")}})),r||St(a,e,Re(u,t),!0)}function r(){a.allowPageChange=!0}"popup popover sheet loginScreen actions customModal panel".split(" ").forEach((t=>{c.route[t]&&!e&&(e=!0,a.modalLoad(t,c,u,"forward"))})),c.route.keepAlive&&c.route.keepAliveData&&(St(a,{el:c.route.keepAliveData.pageEl},u,!1),e=!0),"url content component pageName el componentUrl".split(" ").forEach((t=>{c.route[t]&&!e&&(e=!0,St(a,{[t]:c.route[t]},u,!1))})),e||(c.route.async&&(a.allowPageChange=!1,c.route.async.call(a,{router:a,to:u.route,from:a.currentRoute,resolve:t,reject:r,direction:"forward",app:p})),c.route.asyncComponent&&xt(a,c.route.asyncComponent,t,r))}function m(){a.allowPageChange=!0}if(u.route=c,a.params.masterDetailBreakpoint>0&&c.route.masterRoute){let r=!0,s=!1;if(a.currentRoute&&a.currentRoute.route&&(!(!0===a.currentRoute.route.master||"function"==typeof a.currentRoute.route.master&&a.currentRoute.route.master(p,a))||a.currentRoute.route!==c.route.masterRoute&&a.currentRoute.route.path!==c.route.masterRoute.path||(r=!1),!a.currentRoute.route.masterRoute||a.currentRoute.route.masterRoute!==c.route.masterRoute&&a.currentRoute.route.masterRoute.path!==c.route.masterRoute.path||(r=!1,s=!0)),r||s&&t.reloadAll)return a.navigate({path:c.route.masterRoute.path,params:c.params||{}},{animate:!1,reloadAll:t.reloadAll,reloadCurrent:t.reloadCurrent,reloadPrevious:t.reloadPrevious,browserHistory:!t.initial,history:!t.initial,once:{pageAfterIn(){a.navigate(e,Re({},t,{animate:!1,reloadAll:!1,reloadCurrent:!1,reloadPrevious:!1,history:!t.initial,browserHistory:!t.initial}))}}}),a}return Et.call(a,c,a.currentRoute,(()=>{c.route.modules?p.loadModules(Array.isArray(c.route.modules)?c.route.modules:[c.route.modules]).then((()=>{h()})).catch((()=>{m()})):h()}),(()=>{m()}),"forward"),a},Ot.prototype.refreshPage=function(e){void 0===e&&(e={});const t=this;return kt(t,"refreshPage"),t.navigate(t.currentRoute.url,{ignoreCache:!0,reloadCurrent:!0,props:e})},Ot.prototype.tabLoad=function(e,t){void 0===t&&(t={});const a=this,r=Re({animate:a.params.animate,browserHistory:!0,history:!0,parentPageEl:null,preload:!1,on:{}},t);let s,o;r.route&&(r.preload||r.route===a.currentRoute||(o=a.previousRoute,a.currentRoute=r.route),r.preload?(s=r.route,o=a.currentRoute):(s=a.currentRoute,o||(o=a.previousRoute)),a.params.browserHistory&&r.browserHistory&&!r.reloadPrevious&&wt[a.params.browserHistoryTabs](a.view.id,{url:r.route.url},(a.params.browserHistoryRoot||"")+a.params.browserHistorySeparator+r.route.url),r.history&&(a.history[Math.max(a.history.length-1,0)]=r.route.url,a.saveHistory()));const n=ve(r.parentPageEl||a.currentPageEl);let i;i=n.length&&n.find(`#${e.id}`).length?n.find(`#${e.id}`).eq(0):a.view.selector?`${a.view.selector} #${e.id}`:`#${e.id}`;const l=a.app.tab.show({tabEl:i,animate:r.animate,tabRoute:r.route}),{$newTabEl:c,$oldTabEl:p,animated:d,onTabsChanged:u}=l;if(c&&c.parents(".page").length>0&&r.route){const e=c.parents(".page")[0].f7Page;e&&r.route&&(e.route=r.route)}if(c[0].f7RouterTabLoaded)return p&&p.length?(d?u((()=>{a.emit("routeChanged",a.currentRoute,a.previousRoute,a)})):a.emit("routeChanged",a.currentRoute,a.previousRoute,a),a):a;function h(t,r){const{url:s,content:o,el:n,component:i,componentUrl:l}=t;function h(t){a.allowPageChange=!0,t&&("string"==typeof t?c.html(t):(c.html(""),t.f7Component?t.f7Component.mount((e=>{c.append(e)})):c.append(t)),c[0].f7RouterTabLoaded=!0,function(t){a.removeThemeElements(c);let r=c;"string"!=typeof t&&(r=ve(t)),r.trigger("tab:init tab:mounted",e),a.emit("tabInit tabMounted",c[0],e),p&&p.length&&(d?u((()=>{a.emit("routeChanged",a.currentRoute,a.previousRoute,a),a.params.unloadTabContent&&a.tabRemove(p,c,e)})):(a.emit("routeChanged",a.currentRoute,a.previousRoute,a),a.params.unloadTabContent&&a.tabRemove(p,c,e)))}(t))}if(o)h(o);else if(n)h(n);else if(i||l)try{a.tabComponentLoader({tabEl:c[0],component:i,componentUrl:l,options:r,resolve:h,reject:function(){return a.allowPageChange=!0,a}})}catch(e){throw a.allowPageChange=!0,e}else s&&(a.xhrAbortController&&(a.xhrAbortController.abort(),a.xhrAbortController=!1),a.xhrRequest(s,r).then((e=>{h(e)})).catch((()=>{a.allowPageChange=!0})))}let m;function f(e,t){h(e,Re(r,t))}function g(){a.allowPageChange=!0}return"url content component el componentUrl".split(" ").forEach((t=>{e[t]&&(m=!0,h({[t]:e[t]},r))})),e.async?e.async.call(a,{router:a,to:s,from:o,resolve:f,reject:g,app:a.app}):e.asyncComponent?xt(a,e.asyncComponent,f,g):m||(a.allowPageChange=!0),a},Ot.prototype.tabRemove=function(e,t,a){let r;e[0]&&(e[0].f7RouterTabLoaded=!1,delete e[0].f7RouterTabLoaded),e.children().each((e=>{e.f7Component&&(r=!0,ve(e).trigger("tab:beforeremove",a),e.f7Component.destroy())})),r||e.trigger("tab:beforeremove",a),this.emit("tabBeforeRemove",e[0],t[0],a),this.removeTabContent(e[0],a)},Ot.prototype.modalLoad=function(e,t,a,r){void 0===a&&(a={});const s=this,o=s.app,n="panel"===e,i=n?"panel":"modal",l=Re({animate:s.params.animate,browserHistory:!0,history:!0,on:{},once:{}},a),c=Re({},t.route[e]),p=t.route,d=(e,t)=>{const{on:a,once:r}=l;let s;"open"===t&&(s=a.modalOpen||r.modalOpen||a.panelOpen||r.panelOpen),"close"===t&&(s=a.modalClose||r.modalClose||a.panelClose||r.panelClose),"closed"===t&&(s=a.modalClosed||r.modalClosed||a.panelClosed||r.panelClosed),s&&s(e)};function u(){const a=o[e].create(c);p.modalInstance=a;const r=a.el;function u(){a.close()}a.on(`${i}Open`,(()=>{r||(s.removeThemeElements(a.el),a.$el.trigger(`${e.toLowerCase()}:init ${e.toLowerCase()}:mounted`,t,a),s.emit(`${n?"":"modalInit"} ${e}Init ${e}Mounted`,a.el,t,a)),s.once("swipeBackMove",u),d(a,"open")})),a.on(`${i}Close`,(()=>{s.off("swipeBackMove",u),a.closeByRouter||s.back(),d(a,"close")})),a.on(`${i}Closed`,(()=>{a.$el.trigger(`${e.toLowerCase()}:beforeremove`,t,a),a.emit(`${n?"":"modalBeforeRemove "}${e}BeforeRemove`,a.el,t,a);const r=a.el.f7Component;d(a,"closed"),r&&r.destroy(),Te((()=>{(r||c.component||c.asyncComponent)&&s.removeModal(a.el),a.destroy(),delete a.route,delete p.modalInstance}))})),l.route&&(s.params.browserHistory&&l.browserHistory&&wt.push(s.view.id,{url:l.route.url,modal:e},(s.params.browserHistoryRoot||"")+s.params.browserHistorySeparator+l.route.url),l.route!==s.currentRoute&&(a.route=Re(l.route,{modal:a}),s.currentRoute=a.route),l.history&&!l.reloadCurrent&&(s.history.push(l.route.url),s.saveHistory())),r&&(s.removeThemeElements(a.el),a.$el.trigger(`${e.toLowerCase()}:init ${e.toLowerCase()}:mounted`,t,a),s.emit(`${i}Init ${e}Init ${e}Mounted`,a.el,t,a)),a.open(!1===l.animate||!0===l.animate?l.animate:void 0)}function h(e,t){const{url:a,content:r,component:n,componentUrl:i}=e;function l(e){e&&("string"==typeof e?c.content=e:e.f7Component?e.f7Component.mount((e=>{c.el=e,o.$el.append(e)})):c.el=e,u())}if(r)l(r);else if(n||i)try{s.modalComponentLoader({rootEl:o.el,component:n,componentUrl:i,options:t,resolve:l,reject:function(){return s.allowPageChange=!0,s}})}catch(e){throw s.allowPageChange=!0,e}else a?(s.xhrAbortController&&(s.xhrAbortController.abort(),s.xhrAbortController=!1),s.xhrRequest(a,t).then((e=>{c.content=e,u()})).catch((()=>{s.allowPageChange=!0}))):u()}let m;function f(e,t){h(e,Re(l,t))}function g(){s.allowPageChange=!0}return"url content component el componentUrl template".split(" ").forEach((e=>{c[e]&&!m&&(m=!0,h({[e]:c[e]},l))})),m||"actions"!==e||u(),c.async&&c.async.call(s,{router:s,to:l.route,from:s.currentRoute,resolve:f,reject:g,direction:r,app:o}),c.asyncComponent&&xt(s,c.asyncComponent,f,g),s},Ot.prototype.modalRemove=function(e){Re(e,{closeByRouter:!0}),e.close()},Ot.prototype.back=function(){const e=this,t=Xe();if(e.swipeBackActive)return e;let a,r,s,o;"object"==typeof(arguments.length<=0?void 0:arguments[0])?r=(arguments.length<=0?void 0:arguments[0])||{}:(a=arguments.length<=0?void 0:arguments[0],r=(arguments.length<=1?void 0:arguments[1])||{});const{name:n,params:i,query:l}=r;if(n)return a=e.generateUrl({name:n,params:i,query:l}),a?e.back(a,Re({},r,{name:null,params:null,query:null})):e;const c=e.app;kt(e,"back");let p,d=e.currentRoute.modal;if(d||"popup popover sheet loginScreen actions customModal panel".split(" ").forEach((t=>{e.currentRoute.route[t]&&(d=!0,p=t)})),d&&!r.preload){const s=e.currentRoute.modal||e.currentRoute.route.modalInstance||c[p].get(),o=e.history[e.history.length-2];let n;if(s&&s.$el){const t=s.$el.prevAll(".modal-in");if(t.length&&t[0].f7Modal){const a=t[0];e.$el.parents(a).length||(n=a.f7Modal.route)}}if(n||(n=e.findMatchingRoute(o)),!n&&o&&(n={url:o,path:o.split("?")[0],query:Me(o),route:{path:o.split("?")[0],url:o}}),!(a&&0!==a.replace(/[# ]/g,"").trim().length||n&&s))return e;const i=r.force&&n&&a;if(n&&s){const o=t.ie||t.edge||t.firefox&&!t.ios,l=e.params.browserHistory&&!1!==r.browserHistory,c=e.currentRoute&&e.currentRoute.route&&e.currentRoute.route.options&&!1===e.currentRoute.route.options.browserHistory;!l||o||c||wt.back(),e.currentRoute=n,e.history.pop(),e.propsHistory.pop(),e.saveHistory(),l&&o&&!c&&wt.back(),e.modalRemove(s),i&&e.navigate(a,{reloadCurrent:!0})}else s&&(e.modalRemove(s),a&&e.navigate(a,{reloadCurrent:!0}));return e}let u,h=e.$el.children(".page-current").prevAll(".page-previous:not(.page-master)").eq(0);if(e.params.masterDetailBreakpoint>0){const t=[];e.$el.children(".page").each((e=>{t.push(e.className)}));const a=e.$el.children(".page-current").prevAll(".page-master").eq(0);if(a.length){const t=e.history[e.history.length-2],s=e.findMatchingRoute(t);s&&a[0].f7Page&&s.route===a[0].f7Page.route.route&&(h=a,r.preload||(u=c.width>=e.params.masterDetailBreakpoint))}}if(!r.force&&h.length&&!u){if(e.params.browserHistory&&h[0].f7Page&&e.history[e.history.length-2]!==h[0].f7Page.route.url)return e.back(e.history[e.history.length-2],Re(r,{force:!0,props:e.propsHistory[e.propsHistory.length-2]||{}})),e;const t=h[0].f7Page.route;return r.preload&&h.hasClass("stacked")?(Mt(e,{el:h},Re(r,{route:t})),e):(Et.call(e,t,e.currentRoute,(()=>{Mt(e,{el:h},Re(r,{route:t}))}),(()=>{}),"backward"),e)}if("#"===a&&(a=void 0),a&&"/"!==a[0]&&0!==a.indexOf("#")&&(a=((e.path||"/")+a).replace("//","/")),!a&&e.history.length>1&&(a=e.history[e.history.length-2],s=e.propsHistory[e.propsHistory.length-2]||{}),u&&!r.force&&e.history[e.history.length-3])return e.back(e.history[e.history.length-3],Re({},r||{},{force:!0,animate:!1,props:e.propsHistory[e.propsHistory.length-3]||{}}));if(u&&!r.force)return e;if(o=e.findMatchingRoute(a),o||a&&(o={url:a,path:a.split("?")[0],query:Me(a),route:{path:a.split("?")[0],url:a}}),!o)return e;if(o.route.redirect)return $t.call(e,"backward",o,r);const m={};let f;if(o.route.options?Re(m,o.route.options,r,{props:s||{}}):Re(m,r,{props:s||{}}),m.route=o,m.force&&e.params.stackPages&&(e.$el.children(".page-previous.stacked").each((t=>{t.f7Page&&t.f7Page.route&&t.f7Page.route.url===o.url&&(f=!0,Mt(e,{el:t},m))})),f))return e;function g(){let t=!1;function a(t,a){e.allowPageChange=!1,Mt(e,t,Re(m,a),!0)}function r(){e.allowPageChange=!0}o.route.keepAlive&&o.route.keepAliveData&&(Mt(e,{el:o.route.keepAliveData.pageEl},m),t=!0),"url content component pageName el componentUrl".split(" ").forEach((a=>{o.route[a]&&!t&&(t=!0,Mt(e,{[a]:o.route[a]},m))})),t||(o.route.async&&(e.allowPageChange=!1,o.route.async.call(e,{router:e,to:o,from:e.currentRoute,resolve:a,reject:r,direction:"backward",app:c})),o.route.asyncComponent&&xt(e,o.route.asyncComponent,a,r))}function v(){e.allowPageChange=!0}return m.preload?g():Et.call(e,o,e.currentRoute,(()=>{o.route.modules?c.loadModules(Array.isArray(o.route.modules)?o.route.modules:[o.route.modules]).then((()=>{g()})).catch((()=>{v()})):g()}),(()=>{v()}),"backward"),e},Ot.prototype.clearPreviousHistory=function(){const e=this;kt(e,"clearPreviousHistory");const t=e.history[e.history.length-1];!function(e){kt(e,"clearPreviousPages");const t=e.app,a=e.dynamicNavbar;e.$el.children(".page").filter((t=>!(!e.currentRoute||!e.currentRoute.modal&&!e.currentRoute.panel)||t!==e.currentPageEl)).each((r=>{const s=ve(r),o=ve(t.navbar.getElByPage(s));e.params.stackPages&&e.initialPages.indexOf(s[0])>=0?(s.addClass("stacked"),a&&o.addClass("stacked")):(e.pageCallback("beforeRemove",s,o,"previous",void 0,{}),e.removePage(s),a&&o.length&&e.removeNavbar(o))}))}(e),e.history=[t],e.view.history=[t],e.saveHistory()};var It={name:"router",static:{Router:Ot},instance:{cache:{xhr:[],templates:[],components:[]}},create(){const e=this;e.app?e.params.router&&(e.router=new Ot(e.app,e)):e.router=new Ot(e)}};function Bt(e){const t=e.app,a=We();if(e.resizableInitialized)return;Re(e,{resizable:!0,resizableWidth:null,resizableInitialized:!0});const r=ve("html"),{$el:s}=e;if(!s)return;let o,n,i;const l={};let c,p,d,u;function h(e){if(!e)return null;if(e.indexOf("%")>=0||e.indexOf("vw")>=0)return parseInt(e,10)/100*t.width;const a=parseInt(e,10);return Number.isNaN(a)?null:a}function m(t){if(!(e.resizable&&s.hasClass("view-resizable")&&s.hasClass("view-master-detail")))return;l.x="touchstart"===t.type?t.targetTouches[0].pageX:t.pageX,l.y="touchstart"===t.type?t.targetTouches[0].pageY:t.pageY,i=!1,n=!0;const a=s.children(".page-master");d=h(a.css("min-width")),u=h(a.css("max-width"))}function f(a){if(!n)return;a.f7PreventSwipePanel=!0;const h="touchmove"===a.type?a.targetTouches[0].pageX:a.pageX;i||(p=o[0].offsetLeft+o[0].offsetWidth,s.addClass("view-resizing"),r.css("cursor","col-resize")),i=!0,a.preventDefault(),c=h-l.x;let m=p+c;d&&!Number.isNaN(d)&&(m=Math.max(m,d)),u&&!Number.isNaN(u)&&(m=Math.min(m,u)),m=Math.min(Math.max(m,0),t.width),e.resizableWidth=m,r[0].style.setProperty("--f7-page-master-width",`${m}px`),s.trigger("view:resize",m),e.emit("local::resize viewResize",e,m)}function g(){if(ve("html").css("cursor",""),!n||!i)return n=!1,void(i=!1);n=!1,i=!1,r[0].style.setProperty("--f7-page-master-width",`${e.resizableWidth}px`),s.removeClass("view-resizing")}function v(){e.resizableWidth&&(d=h(o.css("min-width")),u=h(o.css("max-width")),d&&!Number.isNaN(d)&&e.resizableWidthu&&(e.resizableWidth=Math.min(e.resizableWidth,u)),e.resizableWidth=Math.min(Math.max(e.resizableWidth,0),t.width),r[0].style.setProperty("--f7-page-master-width",`${e.resizableWidth}px`))}o=e.$el.children(".view-resize-handler"),o.length||(e.$el.append('
'),o=e.$el.children(".view-resize-handler")),e.$resizeHandlerEl=o,s.addClass("view-resizable");const b=!!a.passiveListener&&{passive:!0};e.$el.on(t.touchEvents.start,".view-resize-handler",m,b),t.on("touchmove:active",f),t.on("touchend:passive",g),t.on("resize",v),e.on("beforeOpen",v),e.once("viewDestroy",(()=>{s.removeClass("view-resizable"),e.$resizeHandlerEl.remove(),e.$el.off(t.touchEvents.start,".view-resize-handler",m,b),t.off("touchmove:active",f),t.off("touchend:passive",g),t.off("resize",v),e.off("beforeOpen",v)}))}class Lt extends Ge{constructor(e,t,a){void 0===a&&(a={}),super(a,[e]);const r=this;if(!r.params.routerId){if(!ve(t).length){let e="Framework7: can't create a View instance because ";throw e+="string"==typeof t?`the selector "${t}" didn't match any element`:"el must be an HTMLElement or Dom7 object",new Error(e)}}let s;return r.params=Re({el:t},{routes:[],routesAdd:[]},e.params.view,a),r.params.routes.length>0?r.routes=r.params.routes:r.routes=[].concat(e.routes,r.params.routesAdd),Re(!1,r,{app:e,name:r.params.name,main:r.params.main,history:[],scrollHistory:{}}),r.useModules(),e.views.push(r),r.main&&(e.views.main=r),r.name&&(e.views[r.name]=r),r.index=e.views.indexOf(r),s=r.name?`view_${r.name}`:r.main?"view_main":`view_${r.index}`,r.id=s,r.params.init?(e.initialized?r.init():e.on("init",(()=>{r.init()})),r):r}destroy(){let e=this;const t=e.app;e.$el.trigger("view:beforedestroy"),e.emit("local::beforeDestroy viewBeforeDestroy",e),t.off("resize",e.checkMasterDetailBreakpoint),e.main?(t.views.main=null,delete t.views.main):e.name&&(t.views[e.name]=null,delete t.views[e.name]),e.$el[0].f7View=null,delete e.$el[0].f7View,t.views.splice(t.views.indexOf(e),1),e.params.router&&e.router&&e.router.destroy(),e.emit("local::destroy viewDestroy",e),Object.keys(e).forEach((t=>{e[t]=null,delete e[t]})),e=null}checkMasterDetailBreakpoint(e){const t=this,a=t.app,r=t.$el.hasClass("view-master-detail"),s=a.width>=t.params.masterDetailBreakpoint&&t.$el.children(".page-master").length;void 0===e&&s||!0===e?(t.$el.addClass("view-master-detail"),r||(t.emit("local::masterDetailBreakpoint viewMasterDetailBreakpoint",t),t.$el.trigger("view:masterDetailBreakpoint"))):(t.$el.removeClass("view-master-detail"),r&&(t.emit("local::masterDetailBreakpoint viewMasterDetailBreakpoint",t),t.$el.trigger("view:masterDetailBreakpoint")))}initMasterDetail(){const e=this,t=e.app;e.checkMasterDetailBreakpoint=e.checkMasterDetailBreakpoint.bind(e),e.checkMasterDetailBreakpoint(),e.params.masterDetailResizable&&Bt(e),t.on("resize",e.checkMasterDetailBreakpoint)}mount(e){const t=this,a=t.app,r=t.params.el||e,s=ve(r);let o,n;o="string"==typeof r?r:(s.attr("id")?`#${s.attr("id")}`:"")+(s.attr("class")?`.${s.attr("class").replace(/ /g,".").replace(".active","")}`:""),"ios"===a.theme&&t.params.iosDynamicNavbar&&(n=s.children(".navbars").eq(0),0===n.length&&(n=ve(''))),Re(t,{$el:s,el:s[0],main:t.main||s.hasClass("view-main"),$navbarsEl:n,navbarsEl:n?n[0]:void 0,selector:o}),t.main&&(a.views.main=t),s&&s[0]&&(s[0].f7View=t),t.emit("local::mount viewMount",t)}init(e){const t=this;t.mount(e),t.params.router&&(t.params.masterDetailBreakpoint>0&&t.initMasterDetail(),t.params.initRouterOnTabShow&&t.$el.hasClass("tab")&&!t.$el.hasClass("tab-active")?t.$el.once("tab:show",(()=>{t.router.init()})):t.router.init(),t.$el.trigger("view:init"),t.emit("local::init viewInit",t))}}Lt.use(It);var Rt={name:"clicks",params:{clicks:{externalLinks:".external"}},on:{init(){!function(e){e.on("click",(function(t){const a=o(),r=ve(t.target),s=r.closest("a"),n=s.length>0,i=n&&s.attr("href");if(n&&(s.is(e.params.clicks.externalLinks)||i&&i.indexOf("javascript:")>=0)){const e=s.attr("target");return void(i&&a.cordova&&a.cordova.InAppBrowser&&("_system"===e||"_blank"===e)?(t.preventDefault(),a.cordova.InAppBrowser.open(i,e)):i&&a.Capacitor&&a.Capacitor.Plugins&&a.Capacitor.Plugins.Browser&&("_system"===e||"_blank"===e)&&(t.preventDefault(),a.Capacitor.Plugins.Browser.open({url:i})))}Object.keys(e.modules).forEach((a=>{const s=e.modules[a].clicks;s&&(t.preventF7Router||Object.keys(s).forEach((a=>{const o=r.closest(a).eq(0);o.length>0&&s[a].call(e,o,o.dataset(),t)})))}));let l={};if(n&&(t.preventDefault(),l=s.dataset()),l.clickedEl=s[0],!t.preventF7Router&&!s.hasClass("prevent-router")&&!s.hasClass("router-prevent")&&(i&&i.length>0&&"#"!==i[0]||s.hasClass("back"))){let t;if(l.view&&"current"===l.view?t=e.views.current:l.view?t=ve(l.view)[0].f7View:(t=r.parents(".view")[0]&&r.parents(".view")[0].f7View,!s.hasClass("back")&&t&&t.params.linksView&&("string"==typeof t.params.linksView?t=ve(t.params.linksView)[0].f7View:t.params.linksView instanceof Lt&&(t=t.params.linksView))),t||e.views.main&&(t=e.views.main),!t||!t.router)return;s[0].f7RouteProps&&(l.props=s[0].f7RouteProps),s.hasClass("back")?t.router.back(i,l):t.router.navigate(i,l)}}))}(this)}}},At={name:"routerComponentLoader",proto:{openIn(e,t,a){const r={url:t,route:{path:t,options:{...a,openIn:void 0}}},s={...a};if("popup"===a.openIn&&(s.content=``,r.route.popup=s),"loginScreen"===a.openIn&&(s.content=``,r.route.loginScreen=s),"sheet"===a.openIn&&(s.content=`
`,r.route.sheet=s),"popover"===a.openIn&&(s.targetEl=a.clickedEl||a.targetEl,s.content=`
`,r.route.popover=s),a.openIn.indexOf("panel")>=0){const o=a.openIn.split(":"),n=o[1]||"left",i=o[2]||"cover";s.targetEl=a.clickedEl||a.targetEl,s.content=`
`,r.route.panel=s}return e.navigate(r)},componentLoader(e,t,a,r,s){void 0===a&&(a={});const o=this,{app:n}=o,i="string"==typeof e?e:t,l=o.replaceRequestUrlParams(i,a);function c(e){let t=a.context||{};if("function"==typeof t)t=t.call(o);else if("string"==typeof t)try{t=JSON.parse(t)}catch(e){throw s(e),e}const i=Le({},t,{f7route:a.route,f7router:o}),l=Le(a.route&&a.route.params||{},a.props||{},a.routeProps||{});let c,p;a.componentOptions&&a.componentOptions.el&&(c=a.componentOptions.el),a.componentOptions&&a.componentOptions.root&&(p=a.componentOptions.root),n.component.create(e,l,{context:i,el:c,root:p}).then((e=>{r(e.el)})).catch((e=>{throw s(e),new Error(e)}))}let p;l&&o.params.componentCache&&o.cache.components.forEach((e=>{e.url===l&&(p=e.component)})),l&&p?c(p):l&&!p?(o.xhrAbortController&&(o.xhrAbortController.abort(),o.xhrAbortController=!1),o.xhrRequest(i,a).then((e=>{const t=n.component.parse(e);o.params.componentCache&&o.cache.components.push({url:l,component:t}),c(t)})).catch((e=>{throw s(),e}))):c(e)},modalComponentLoader(e){let{component:t,componentUrl:a,options:r,resolve:s,reject:o}=void 0===e?{}:e;this.componentLoader(t,a,r,(e=>{s(e)}),o)},tabComponentLoader(e){let{component:t,componentUrl:a,options:r,resolve:s,reject:o}=void 0===e?{}:e;this.componentLoader(t,a,r,(e=>{s(e)}),o)},pageComponentLoader(e){let{component:t,componentUrl:a,options:r,resolve:s,reject:o}=void 0===e?{}:e;this.componentLoader(t,a,r,(function(e,t){void 0===t&&(t={}),s(e,t)}),o)}}},Dt=function(e,t,a,r){var s;t[0]=0;for(var o=1;o=5&&((s||!e&&5===r)&&(n.push(r,0,s,a),r=6),e&&(n.push(r,e,0,a),r=6)),s=""},l=0;l"===t?(r=1,s=""):s=t+s[0]:o?t===o?o="":s+=t:'"'===t||"'"===t?o=t:">"===t?(i(),r=1):r&&("="===t?(r=5,a=s,s=""):"/"===t&&(r<5||">"===e[l][c+1])?(i(),3===r&&(n=n[0]),r=n,(n=n[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(i(),r=2):s+=t),3===r&&"!--"===s&&(r=4,n=n[0])}return i(),n}(e)),t),arguments,[])).length>1?t:t[0]}.bind((function(e,t){for(var a=arguments.length,r=new Array(a>2?a-2:0),s=2;sHt.indexOf(e)<0)))}}));function Vt(e,t,a,r,s){return{sel:e,data:t,children:a,text:r,elm:s,key:void 0===t?void 0:t.key}}var Ft=Array.isArray;function qt(e){return"string"==typeof e||"number"==typeof e}function jt(e,t,a){if(e.ns="http://www.w3.org/2000/svg","foreignObject"!==a&&void 0!==t)for(var r=0;r"function"==typeof e.type?e.type.name||"CustomComponent":e.type,Kt=e=>e.split("-").map(((e,t)=>0===t?e.toLowerCase():e[0].toUpperCase()+e.substr(1))).join(""),Qt=function(){const e={};for(var t=arguments.length,a=new Array(t),r=0;r{e[Kt(a)]=t[a]}))})),e},Jt=e=>"function"==typeof e||e&&e.indexOf("-")>0&&Yt[e];function Zt(e,t,a,r,s){const o={},n=[],i=[],l=[],c=[];let p=!1,d=Gt(e);t&&t.attrs&&t.attrs.component&&(d=t.attrs.component,delete t.attrs.component,p=!0);const u=Jt(e.type);if(u&&(n.push((r=>{(r.sel===d||p)&&(e=>{let{f7:t,treeNode:a,vnode:r,data:s}=e;const o="function"==typeof a.type?a.type:Yt[a.type];t.component.create(o,Qt(s.attrs||{},s.props||{}),{el:r.elm,children:a.children}).then((e=>{r.data&&r.data.on&&e&&e.$el&&Object.keys(r.data.on).forEach((t=>{e.$el.on(t,r.data.on[t])})),r.elm.__component__=e}))})({f7:a,treeNode:e,vnode:r,data:t})})),i.push((e=>{(e=>{const t=e&&e.elm&&e.elm.__component__;if(t){const{el:a,$el:r}=t;e.data&&e.data.on&&r&&Object.keys(e.data.on).forEach((t=>{r.off(t,e.data.on[t])})),t.destroy&&t.destroy(),a&&a.parentNode&&a.parentNode.removeChild(a),delete e.elm.__component__}})(e)})),l.push(((e,t)=>{(e=>{const t=e&&e.elm&&e.elm.__component__;if(!t)return;const a=Qt(e.data.attrs||{},e.data.props||{});t.children=e.data.treeNode.children,Object.assign(t.props,a),t.update()})(t)}))),!u){if(!t||!t.attrs||!t.attrs.class)return o;t.attrs.class.split(" ").forEach((e=>{r||n.push(...a.getVnodeHooks("insert",e)),i.push(...a.getVnodeHooks("destroy",e)),l.push(...a.getVnodeHooks("update",e)),c.push(...a.getVnodeHooks("postpatch",e))}))}return s&&!r&&c.push(((e,t)=>{const a=t||e;a&&a.data&&a.data.component&&a.data.component.hook("onUpdated")})),0===n.length&&0===i.length&&0===l.length&&0===c.length||(n.length&&(o.insert=e=>{n.forEach((t=>t(e)))}),i.length&&(o.destroy=e=>{i.forEach((t=>t(e)))}),l.length&&(o.update=(e,t)=>{l.forEach((a=>a(e,t)))}),c.length&&(o.postpatch=(e,t)=>{c.forEach((a=>a(e,t)))})),o}const ea=(e,t,a,r)=>{if(e&&e.type&&Wt.indexOf(e.type)>=0)return[];const s=[],o=e.children;for(let e=0;e{if(!(e=>Be(e)&&"props"in e&&"type"in e&&"children"in e)(e))return String(e);if("slot"===e.type)return((e,t,a,r)=>{const s=e.props.name||"default",o=(t.children||[]).filter((e=>{let t="default";return e.props&&(t=e.props.slot||"default"),t===s}));return 0===o.length?ea(e,t,a,r):o.map((e=>ta(e,t,a,r)))})(e,t,a,r);const o=((e,t,a,r,s)=>{const o={component:t,treeNode:e},n=Gt(e);Object.keys(e.props).forEach((t=>{const a=e.props[t];if(void 0!==a)if(Xt.indexOf(t)>=0)o.props||(o.props={}),"readonly"===t&&(t="readOnly"),"routeProps"===t&&(t="f7RouteProps"),"option"===n&&"value"===t&&(o.attrs||(o.attrs={}),o.attrs.value=a),Ut.indexOf(t)>=0?o.props[t]=!1!==a:o.props[t]=a;else if("key"===t)o.key=a;else if(0===t.indexOf("@")||0===t.indexOf("on")&&t.length>2){o.on||(o.on={});let e=0===t.indexOf("@")?t.substr(1):Ee(t.substr(2)),r=!1,s=!1,n=!1;e.indexOf(".")>=0&&e.split(".").forEach(((t,a)=>{0===a?e=t:("stop"===t&&(r=!0),"prevent"===t&&(s=!0),"once"===t&&(n=!0))})),o.on[e]=function(e,t){let{stop:a,prevent:r,once:s}=void 0===t?{}:t,o=!1;return function(){const t=arguments.length<=0?void 0:arguments[0];s&&o||(a&&t.stopPropagation(),r&&t.preventDefault(),o=!0,e(...arguments))}}(a,{stop:r,prevent:s,once:n})}else"style"===t?"string"!=typeof a?o.style=a:(o.attrs||(o.attrs={}),o.attrs.style=a):(o.attrs||(o.attrs={}),o.attrs[t]=a,"id"!==t||o.key||s||(o.key=a))}));const i=Zt(e,o,a,r,s);return i.prepatch=(e,t)=>{e&&t&&e&&e.data&&e.data.props&&Object.keys(e.data.props).forEach((a=>{Ut.indexOf(a)<0||(t.data||(t.data={}),t.data.props||(t.data.props={}),!0!==e.data.props[a]||a in t.data.props||(t.data.props[a]=!1))}))},o.hook=i,o})(e,t,a,r,s),n=Jt(e.type)?[]:ea(e,t,a,r);return _t(Gt(e),o,n)};function aa(e,t,a){return void 0===e&&(e={}),ta(e,t,t.f7,a,!0)}var ra={createElement:function(e){return document.createElement(e)},createElementNS:function(e,t){return document.createElementNS(e,t)},createTextNode:function(e){return document.createTextNode(e)},createComment:function(e){return document.createComment(e)},insertBefore:function(e,t,a){a&&a.parentNode!==e&&a.__component__&&(a=a.__component__.el),e.insertBefore(t,a)},removeChild:function(e,t){e&&e.removeChild(t)},appendChild:function(e,t){e.appendChild(t)},parentNode:function(e){return e.parentNode},nextSibling:function(e){return e.nextSibling},tagName:function(e){return e.tagName},setTextContent:function(e,t){e.textContent=t},getTextContent:function(e){return e.textContent},isElement:function(e){return 1===e.nodeType},isText:function(e){return 3===e.nodeType},isComment:function(e){return 8===e.nodeType}};function sa(e){return void 0===e}function oa(e){return void 0!==e}var na=Vt("",{},[],void 0,void 0);function ia(e,t){return e.key===t.key&&e.sel===t.sel}function la(e,t,a){var r,s,o,n={};for(r=t;r<=a;++r)null!=(o=e[r])&&void 0!==(s=o.key)&&(n[s]=r);return n}var ca=["create","update","remove","destroy","pre","post"];function pa(e,t){var a,r=t.elm,s=e.data.attrs,o=t.data.attrs;if((s||o)&&s!==o){for(a in s=s||{},o=o||{}){var n=o[a];s[a]!==n&&(!0===n?r.setAttribute(a,""):!1===n?r.removeAttribute(a):120!==a.charCodeAt(0)?r.setAttribute(a,n):58===a.charCodeAt(3)?r.setAttributeNS("http://www.w3.org/XML/1998/namespace",a,n):58===a.charCodeAt(5)?r.setAttributeNS("http://www.w3.org/1999/xlink",a,n):r.setAttribute(a,n))}for(a in s)a in o||r.removeAttribute(a)}}var da={create:pa,update:pa};function ua(e,t){var a,r,s=t.elm,o=e.data.props,n=t.data.props;if((o||n)&&o!==n){for(a in n=n||{},o=o||{})n[a]||delete s[a];for(a in n)r=n[a],o[a]===r||"value"===a&&s[a]===r||(s[a]=r)}}var ha={create:ua,update:ua},ma="undefined"!=typeof window&&window.requestAnimationFrame||setTimeout;function fa(e,t,a){var r;r=function(){e[t]=a},ma((function(){ma(r)}))}function ga(e,t){var a,r,s=t.elm,o=e.data.style,n=t.data.style;if((o||n)&&o!==n){n=n||{};var i="delayed"in(o=o||{});for(r in o)n[r]||("-"===r[0]&&"-"===r[1]?s.style.removeProperty(r):s.style[r]="");for(r in n)if(a=n[r],"delayed"===r&&n.delayed)for(var l in n.delayed)a=n.delayed[l],i&&a===o.delayed[l]||fa(s.style,l,a);else"remove"!==r&&a!==o[r]&&("-"===r[0]&&"-"===r[1]?s.style.setProperty(r,a):s.style[r]=a)}}var va={create:ga,update:ga,destroy:function(e){var t,a,r=e.elm,s=e.data.style;if(s&&(t=s.destroy))for(a in t)r.style[a]=t[a]},remove:function(e,t){var a=e.data.style;if(a&&a.remove){var r,s=e.elm,o=0,n=a.remove,i=0,l=[];for(r in n)l.push(r),s.style[r]=n[r];for(var c=getComputedStyle(s)["transition-property"].split(", ");o{o[e]||ve(s).off(e,r)})):Object.keys(a).forEach((e=>{ve(s).off(e,r)}))),o)){const r=e.listener||function e(t){for(var a=arguments.length,r=new Array(a>1?a-1:0),s=1;s{a[e]||ve(n).on(e,r)})):Object.keys(o).forEach((e=>{ve(n).on(e,r)}))}}const ya=function(e,t){var a,r,s={},o=void 0!==t?t:ra;for(a=0;a0?l:i.length,u=p>0?p:i.length,h=-1!==l||-1!==p?i.slice(0,Math.min(d,u)):i,m=e.elm=oa(r)&&oa(a=r.ns)?o.createElementNS(a,h):o.createElement(h);for(d0&&m.setAttribute("class",i.slice(u+1).replace(/\./g," ")),a=0;am?p(e,null==a[v+1]?null:a[v+1].elm,a,d,v,r):u(e,t,l,m))}(i,l,d,a):oa(d)?(oa(e.text)&&o.setTextContent(i,""),p(i,null,d,0,d.length-1,a)):oa(l)?u(i,l,0,l.length-1):oa(e.text)&&o.setTextContent(i,""):e.text!==t.text&&o.setTextContent(i,t.text),oa(n)&&oa(r=n.postpatch)&&r(e,t)}}return function(e,t){var a,r,n,l=[];for(a=0;at(this.props,this.getComponentContext(!0));return new Promise(((e,t)=>{(e=>new Promise(((t,a)=>{"function"==typeof e?t(e):e instanceof Promise?e.then((e=>{t(e)})).catch((e=>{a(e)})):a(new Error('Framework7: Component render function is not a "function" type. Didn\'t you forget to "return $render"?'))})))(c()).then((t=>{this.renderFunction=t;const a=this.render();if(o)return this.vnode=aa(a,this,!0),this.style&&(this.styleEl=l.createElement("style"),this.styleEl.innerHTML=this.style),this.el=o,ya(this.el,this.vnode),this.el=this.vnode.elm,this.$el=ve(this.el),this.attachEvents(),this.el.f7Component=this,this.mount(),void e(this);a&&(this.vnode=aa(a,this,!0),this.el=l.createElement(this.vnode.sel||"div"),ya(this.el,this.vnode),this.$el=ve(this.el)),this.style&&(this.styleEl=l.createElement("style"),this.styleEl.innerHTML=this.style),this.attachEvents(),this.el&&(this.el.f7Component=this),e(this)})).catch((e=>{t(e)}))}))}on(e,t){this.__eventHandlers&&this.__eventHandlers.push({eventName:e,handler:t})}once(e,t){this.__eventHandlers&&this.__onceEventHandlers.push({eventName:e,handler:t})}getComponentRef(){const e=this;return t=>{let a=t;const r={};return Object.defineProperty(r,"value",{get:()=>a,set(t){a=t,e.update()}}),r}}getComponentStore(){const{state:e,_gettersPlain:t,dispatch:a}=this.f7.store,r={state:e,dispatch:a};return r.getters=new Proxy(t,{get:(e,t)=>{const a=e[t];return a.onUpdated((e=>{a.value=e,this.update()})),a}}),r}getComponentContext(e){const t={$f7route:this.context.f7route,$f7router:this.context.f7router,$h:Nt,$:ve,$id:this.id,$f7:this.f7,$f7ready:this.f7ready.bind(this),$theme:this.theme,$tick:this.tick.bind(this),$update:this.update.bind(this),$emit:this.emit.bind(this),$store:this.getComponentStore(),$ref:this.getComponentRef(),$el:{}};return Object.defineProperty(t.$el,"value",{get:()=>this.$el}),e&&Object.assign(t,{$on:this.on.bind(this),$once:this.once.bind(this),$onBeforeMount:e=>this.__onBeforeMount.push(e),$onMounted:e=>this.__onMounted.push(e),$onBeforeUpdate:e=>this.__onBeforeUpdate.push(e),$onUpdated:e=>this.__onUpdated.push(e),$onBeforeUnmount:e=>this.__onBeforeUnmount.push(e),$onUnmounted:e=>this.__onUnmounted.push(e)}),t}render(){return this.renderFunction(this.getComponentContext())}emit(e,t){this.el&&this.$el.trigger(e,t)}attachEvents(){const{$el:e}=this;this.__eventHandlers&&(this.__eventHandlers.forEach((t=>{let{eventName:a,handler:r}=t;e.on(Ee(a),r)})),this.__onceEventHandlers.forEach((t=>{let{eventName:a,handler:r}=t;e.once(Ee(a),r)})))}detachEvents(){const{$el:e}=this;this.__eventHandlers&&(this.__eventHandlers.forEach((t=>{let{eventName:a,handler:r}=t;e.on(Ee(a),r)})),this.__onceEventHandlers.forEach((t=>{let{eventName:a,handler:r}=t;e.once(Ee(a),r)})))}startUpdateQueue(){const e=o();if(this.__requestAnimationFrameId)return;const t=()=>{this.hook("onBeforeUpdate");const e=this.render();if(e){const t=aa(e,this,!1);this.vnode=ya(this.vnode,t)}};this.__requestAnimationFrameId=e.requestAnimationFrame((()=>{this.__updateIsPending&&t();let a=[...this.__updateQueue];this.__updateQueue=[],this.__updateIsPending=!1,e.cancelAnimationFrame(this.__requestAnimationFrameId),delete this.__requestAnimationFrameId,delete this.__updateIsPending,a.forEach((e=>e())),a=[]}))}tick(e){return new Promise((t=>{this.__updateQueue.push((function(){t(),e&&e()})),this.startUpdateQueue()}))}update(e){return this.__destroyed?new Promise((()=>{})):new Promise((t=>{this.__updateIsPending=!0,this.__updateQueue.push((()=>{t(),e&&e()})),this.startUpdateQueue()}))}setState(e){return this.update(e)}f7ready(e){this.f7.initialized?e(this.f7):this.f7.once("init",(()=>{e(this.f7)}))}mount(e){this.hook("onBeforeMount",this.$el),this.styleEl&&ve("head").append(this.styleEl),e&&e(this.el),this.hook("onMounted",this.$el)}destroy(){if(this.__destroyed)return;const e=o();this.hook("onBeforeUnmount"),this.styleEl&&ve(this.styleEl).remove(),this.detachEvents(),this.hook("onUnmounted"),this.el&&this.el.f7Component&&(this.el.f7Component=null,delete this.el.f7Component),this.vnode&&(this.vnode=ya(this.vnode,{sel:this.vnode.sel,data:{}})),e.cancelAnimationFrame(this.__requestAnimationFrameId),this.__updateQueue=[],this.__eventHandlers=[],this.__onceEventHandlers=[],this.__onBeforeMount=[],this.__onMounted=[],this.__onBeforeUpdate=[],this.__onUpdated=[],this.__onBeforeUnmount=[],this.__onUnmounted=[],ke(this),this.__destroyed=!0}hook(e){for(var t=arguments.length,a=new Array(t>1?t-1:0),r=1;r{e(...a)}))}}function Ea(e){const t=o(),a=r(),s=we(),n=`f7_component_create_callback_${s}`;let i;e.match(//)&&(i=e.split(//).filter(((e,t)=>t>0)).join("").filter(((e,t,a)=>t").replace(/{{#raw}}([ \n]*)