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